1024 Commits
Author SHA1 Message Date
voodev 0ae7451028 chore: rework the issue template 2026-08-01 01:46:10 +03:00
voo 1c48b2ccea Merge pull request 'chore: remove workflows for now' (#1) from chore/remove-workflows into main
Reviewed-on: #1
2026-08-01 00:37:33 +02:00
voodev 40328939b5 chore: remove workflows for now 2026-08-01 01:36:07 +03:00
voo ead2022b2c Upload files to "docs"
Docker Security / Security scan (push) Canceled after 0s
2026-08-01 00:30:16 +02:00
voo f48a75133d Update README.md
Docker Security / Security scan (push) Canceled after 0s
2026-08-01 00:29:18 +02:00
smp46 4bcdbfd1b1 fix(lang): dont set lang cookie from fallback value (#164)
Docker Security / Security scan (push) Canceled after 0s
2026-08-01 04:51:25 +10:00
Tom van der Laanandsmp46 d69281aeff feat: managed user shares (#63)
* Implement managed user shares features:
  - Add recipient restriction settings for shares
  - Add received shares overview page for logged in users
  - Support automatic linking of user accounts to shares based on email address
  - Stop exposing registered/unregistered status of recipient emails to prevent account enumeration
  - Enable folder uploads via drag-and-drop and selection
  - Allow administrators to bypass maximum file expiration limits
  - Swap and align recipient icons, hover tips, and colors in My Shares

* harden user recipient security validations on file downloads
  - Query recipient relations in FileSecurityGuard
  - Validate restrictToRecipients for direct/tokenless file downloads and throw a ForbiddenException
  - Credit to Leonardo for reporting this issue, that led to this patch, before the code was released.

* i18n: extract restrictToRecipients hardcoded string to translations key
  - Use share.restrictedToRecipients key in ShareSecurityGuard and FileSecurityGuard

---------

Co-authored-by: smp46 <me@smp46.me>
2026-08-01 04:51:20 +10:00
smp46andGitHub 27414e6d97 feat(uploads): text based progress indicator & time remaining (#154)
* feat(uploads): text based progress indicator

* fix(uploads): align other status icons with progress

* feat(uploads): time remaing on progress indicator hover

* fix(uploads): add callback function for more accurate progress

* fix(uploads): cap progress text at 99 to prevent ui uglyness

* feat(uploads): make upload progress customisable by admin

* fix(uploads): revert status icons to original size

* fix(translations): missing grammar on new string

* feat(uploads): add circle with text an progress option

* fix(translations): simplify new upload progress string
2026-07-24 19:51:54 +02:00
smp46andGitHub 57704e5943 feat(email): add option to set reply-to to creator's email (#159)
* feat(email): add option to set reply-to to creator's email

* style: formatted code
2026-07-24 18:04:02 +02:00
smp46andGitHub 3042f86adc chore(repo): clarify AI usage policy
.
2026-07-24 10:46:15 +02:00
smp46 48c9f571f0 feat(shares): allow admins to bypass max file expiration (#144)
* feat: admins can bypass max expiry

* style: formatted code

* revert max expiration override default timespan
2026-07-23 20:20:36 +10:00
smp46 be15cc828f feat: support folder uploads via drag'n'drop and selection (#142)
* feat(upload): add folder upload UI support in Dropzone

* feat(upload): upload folder paths in new and edited shares

* feat(upload): style directory hierarchy in upload and share file lists

* feat(upload): display relative folder paths in upload page file list

* feat(i18n): add translations for folder uploads

* make filename in file lists semi-bold

* feat(upload): replace dropdown with direct folder upload button

* refactor(upload): move getNormalizedFileName helper to a utility module

* fix(i18n): update source file to include folder uploads

* feat(upload): display Append folder if upload queue is not empty

* feat(upload): prevent uploading files with paths matching existingpaths
2026-07-23 20:20:36 +10:00
smp46 5611db86a4 build: add beta release channel 2026-07-23 20:20:36 +10:00
smp46 68ebf191fe release: 1.21.2 2026-07-23 20:04:45 +10:00
smp46 9af800f2a6 fix(deps): update backend sharp to non-vuln version 2026-07-23 20:01:18 +10:00
smp46 d0f7ecdd7c fix(deps): update sharp & brace-expansion to non-vuln version 2026-07-23 20:01:18 +10:00
smp46 945c5e572d fix(deps): resolve security vulns via npm audit 2026-07-23 20:01:05 +10:00
smp46 aad796dc24 release: 1.21.1 2026-07-17 21:43:31 +10:00
smp46 87832b62e0 chore(docs): resolve security vulns via npm audit 2026-07-17 21:41:45 +10:00
smp46andGitHub 426a5d9710 chore(translations): update translations via Crowdin (#117)
* New translations en-us.ts (Chinese Simplified)

[ci skip]

* New translations en-us.ts (Chinese Simplified)

[ci skip]

* New translations en-us.ts (Chinese Simplified)

[ci skip]

* New translations en-us.ts (Chinese Simplified)

[ci skip]

* New translations en-us.ts (Chinese Simplified)

[ci skip]

* New translations en-us.ts (Chinese Simplified)

[ci skip]

* New translations en-us.ts (Chinese Simplified)

[ci skip]

* New translations en-us.ts (Chinese Simplified)

[ci skip]

* New translations reverseshare.json (Chinese Simplified)

[ci skip]

* New translations auth.json (Chinese Simplified)

[ci skip]

* New translations oauth.json (Chinese Simplified)

[ci skip]

* New translations share.json (Chinese Simplified)

[ci skip]

* New translations en-us.ts (Bulgarian)

[ci skip]

* New translations auth.json (Bulgarian)

[ci skip]

* New translations en-us.ts (Chinese Traditional)

[ci skip]

* New translations oauth.json (Chinese Traditional)

[ci skip]

* New translations auth.json (Chinese Traditional)

[ci skip]

* New translations en-us.ts (Chinese Traditional)

[ci skip]

* New translations email.json (Chinese Traditional)

[ci skip]

* New translations reverseshare.json (Chinese Traditional)

[ci skip]

* New translations share.json (Chinese Traditional)

[ci skip]

* New translations en-us.ts (Chinese Traditional)

[ci skip]

* New translations en-us.ts (Chinese Traditional)

[ci skip]

* New translations auth.json (Chinese Traditional)

[ci skip]

* New translations en-us.ts (Russian)

[ci skip]

* New translations en-us.ts (Spanish)

[ci skip]

* New translations en-us.ts (Spanish)

[ci skip]

* New translations en-us.ts (Spanish)

[ci skip]
2026-07-17 13:40:12 +02:00
smp46 6f8794696a docs(intro): add back gh sponsor link 2026-07-17 21:27:55 +10:00
smp46 bb3c5ce76e chore: update caniuse browser list 2026-07-17 21:21:12 +10:00
smp46 4bf90e9562 fix(deps): update nodemailer to non-vuln version 2026-07-17 21:16:52 +10:00
smp46 4d04fdd52a build: disable caching to prevent use of vuln packages 2026-07-17 20:53:30 +10:00
Aleksey LapunovandGitHub 88f7d36805 fix(reverseShares): align max share size in modal with user/global settings (#136)
fix: use max share size value instead of hardcoded minimum
2026-07-15 14:20:13 +02:00
smp46andGitHub 58c2c4f87c Delete issue/pr labeler 2026-07-12 09:35:04 +02:00
patrickpilottiandGitHub 895ce5b003 fix(system): correctly detect disk usage on mounted filesystems (linux) (#126)
Check disk space for uploads directory

Changed disk space check to target the uploads subdirectory specifically instead of the entire data directory, ensuring accurate storage monitoring for uploaded files.
2026-07-12 09:33:49 +02:00
smp46 2c7e6960e0 release: 1.21.0 2026-07-01 21:58:14 +10:00
smp46 dbdad18546 chore(translations): update translations via Crowdin (#115)
* New translations en-us.ts (Persian)

[ci skip]

* New translations en-us.ts (French)

[ci skip]

* New translations en-us.ts (Spanish)

[ci skip]

* New translations en-us.ts (Bulgarian)

[ci skip]

* New translations en-us.ts (Catalan)

[ci skip]

* New translations en-us.ts (Czech)

[ci skip]

* New translations en-us.ts (Danish)

[ci skip]

* New translations en-us.ts (German)

[ci skip]

* New translations en-us.ts (Greek)

[ci skip]

* New translations en-us.ts (Finnish)

[ci skip]

* New translations en-us.ts (Hungarian)

[ci skip]

* New translations en-us.ts (Italian)

[ci skip]

* New translations en-us.ts (Japanese)

[ci skip]

* New translations en-us.ts (Korean)

[ci skip]

* New translations en-us.ts (Polish)

[ci skip]

* New translations en-us.ts (Russian)

[ci skip]

* New translations en-us.ts (Slovenian)

[ci skip]

* New translations en-us.ts (Serbian (Cyrillic))

[ci skip]

* New translations en-us.ts (Swedish)

[ci skip]

* New translations en-us.ts (Turkish)

[ci skip]

* New translations en-us.ts (Ukrainian)

[ci skip]

* New translations en-us.ts (Chinese Simplified)

[ci skip]

* New translations en-us.ts (Chinese Traditional)

[ci skip]

* New translations en-us.ts (Vietnamese)

[ci skip]

* New translations en-us.ts (Portuguese, Brazilian)

[ci skip]

* New translations en-us.ts (Thai)

[ci skip]

* New translations en-us.ts (Croatian)

[ci skip]

* New translations en-us.ts (Estonian)

[ci skip]

* New translations en-us.ts (Serbian (Latin))

[ci skip]

* New translations en-us.ts (Dutch, Belgium)

[ci skip]

* New translations en-us.ts (Arabic, Egypt)

[ci skip]

* New translations en-us.ts (Norwegian)

[ci skip]

* New translations en-us.ts (Persian)

[ci skip]

* New translations en-us.ts (Chinese Simplified)

[ci skip]
2026-07-01 21:50:34 +10:00
Synn95andsmp46 468bbde82b feat(reverse share): add simple mode policy in config (#106)
* feat(reverse share): add simple mode policy in config

Add a config to force a value for the simple mode for reverse share

* fix(reverse share): Modify config to boolean

If enabled, simple mode will be enable for all reverse shares. If disabled, users will be able to choose.
Renamed config to reverseShareSimpleOnly
2026-07-01 21:50:34 +10:00
smp46 57794249d8 chore(translations): update translations via Crowdin (#110)
* New translations en-us.ts (Norwegian)

[ci skip]

* New translations en-us.ts (French)

[ci skip]

* New translations en-us.ts (Spanish)

[ci skip]

* New translations en-us.ts (Bulgarian)

[ci skip]

* New translations en-us.ts (Catalan)

[ci skip]

* New translations en-us.ts (Czech)

[ci skip]

* New translations en-us.ts (Danish)

[ci skip]

* New translations en-us.ts (German)

[ci skip]

* New translations en-us.ts (Greek)

[ci skip]

* New translations en-us.ts (Finnish)

[ci skip]

* New translations en-us.ts (Hungarian)

[ci skip]

* New translations en-us.ts (Italian)

[ci skip]

* New translations en-us.ts (Japanese)

[ci skip]

* New translations en-us.ts (Korean)

[ci skip]

* New translations en-us.ts (Polish)

[ci skip]

* New translations en-us.ts (Russian)

[ci skip]

* New translations en-us.ts (Slovenian)

[ci skip]

* New translations en-us.ts (Serbian (Cyrillic))

[ci skip]

* New translations en-us.ts (Swedish)

[ci skip]

* New translations en-us.ts (Turkish)

[ci skip]

* New translations en-us.ts (Ukrainian)

[ci skip]

* New translations en-us.ts (Chinese Simplified)

[ci skip]

* New translations en-us.ts (Chinese Traditional)

[ci skip]

* New translations en-us.ts (Vietnamese)

[ci skip]

* New translations en-us.ts (Portuguese, Brazilian)

[ci skip]

* New translations en-us.ts (Thai)

[ci skip]

* New translations en-us.ts (Croatian)

[ci skip]

* New translations en-us.ts (Estonian)

[ci skip]

* New translations en-us.ts (Serbian (Latin))

[ci skip]

* New translations en-us.ts (Dutch, Belgium)

[ci skip]

* New translations en-us.ts (Arabic, Egypt)

[ci skip]

* New translations en-us.ts (Norwegian)

[ci skip]

* New translations en-us.ts (Chinese Simplified)

[ci skip]

* New translations auth.json (Chinese Simplified)

[ci skip]

* New translations en-us.ts (Chinese Simplified)

[ci skip]

* New translations en-us.ts (Czech)

[ci skip]

* New translations auth.json (Czech)

[ci skip]

* New translations en-us.ts (Czech)

[ci skip]

* New translations en-us.ts (Czech)

[ci skip]

* New translations en-us.ts (Chinese Simplified)

[ci skip]

* New translations en-us.ts (Persian)

[ci skip]

* New translations auth.json (Persian)

[ci skip]

* New translations config.json (Persian)

[ci skip]

* New translations email.json (Persian)

[ci skip]

* New translations file.json (Persian)

[ci skip]

* New translations ldap.json (Persian)

[ci skip]

* New translations oauth.json (Persian)

[ci skip]

* New translations reverseshare.json (Persian)

[ci skip]

* New translations share.json (Persian)

[ci skip]

* New translations validation.json (Persian)

[ci skip]
2026-07-01 21:50:34 +10:00
Hamid Mayeliandsmp46 d13350abbc feat: add Farsi/Persian (#112)
* feat(translation): Add Farsi/Persian

* Add backend translations

* fix: define type for locales

* chore: bump language count in readme

---------

Co-authored-by: smp46 <me@smp46.me>
2026-07-01 21:50:07 +10:00
smp46andGitHub 74d6701391 feat: per user share size limits (#109)
* feat: per user share size limits

* fix(shares): use creator size limit when editing shares

* fix(shares): prevent div by zero in progress calc

* fix: enforce max size for rev shares

* fix: include file queue for upload size calc in dropzone
2026-06-27 10:31:35 +03:00
smp46 949552379a chore(docs): resolve security vulns via npm audit and overrides 2026-06-27 16:49:10 +10:00
smp46andGitHub 8185f44a5f feat: norwegian language support & AI translations (#108) 2026-06-27 09:25:37 +03:00
smp46andGitHub e9d0ffe430 chore(translations): update translations via Crowdin (#103)
* New translations en-us.ts (Russian)

[ci skip]

* New translations auth.json (Russian)

[ci skip]

* New translations en-us.ts (Spanish)

[ci skip]

* New translations en-us.ts (Spanish)

[ci skip]

* New translations auth.json (Spanish)

[ci skip]

* New translations config.json (Spanish)

[ci skip]

* New translations en-us.ts (Hungarian)

[ci skip]

* New translations en-us.ts (Hungarian)

[ci skip]

* New translations auth.json (Hungarian)

[ci skip]

* New translations config.json (Hungarian)

[ci skip]

* New translations en-us.ts (Dutch, Belgium)

[ci skip]

* New translations config.json (Dutch, Belgium)

[ci skip]

* New translations en-us.ts (Dutch, Belgium)

[ci skip]

* New translations auth.json (Italian)

[ci skip]

* New translations en-us.ts (Italian)

[ci skip]

* New translations auth.json (Italian)

[ci skip]

* New translations config.json (Italian)

[ci skip]

* New translations oauth.json (Italian)

[ci skip]

* New translations en-us.ts (Norwegian)

[ci skip]

* New translations auth.json (Norwegian)

[ci skip]

* New translations config.json (Norwegian)

[ci skip]

* New translations email.json (Norwegian)

[ci skip]

* New translations file.json (Norwegian)

[ci skip]

* New translations ldap.json (Norwegian)

[ci skip]

* New translations oauth.json (Norwegian)

[ci skip]

* New translations reverseshare.json (Norwegian)

[ci skip]

* New translations share.json (Norwegian)

[ci skip]

* New translations validation.json (Norwegian)

[ci skip]

* New translations en-us.ts (French)

[ci skip]

* New translations en-us.ts (Spanish)

[ci skip]

* New translations en-us.ts (Bulgarian)

[ci skip]

* New translations en-us.ts (Catalan)

[ci skip]

* New translations en-us.ts (Czech)

[ci skip]

* New translations en-us.ts (Danish)

[ci skip]

* New translations en-us.ts (German)

[ci skip]

* New translations en-us.ts (Greek)

[ci skip]

* New translations en-us.ts (Finnish)

[ci skip]

* New translations en-us.ts (Hungarian)

[ci skip]

* New translations en-us.ts (Italian)

[ci skip]

* New translations en-us.ts (Japanese)

[ci skip]

* New translations en-us.ts (Korean)

[ci skip]

* New translations en-us.ts (Polish)

[ci skip]

* New translations en-us.ts (Russian)

[ci skip]

* New translations en-us.ts (Slovenian)

[ci skip]

* New translations en-us.ts (Serbian (Cyrillic))

[ci skip]

* New translations en-us.ts (Swedish)

[ci skip]

* New translations en-us.ts (Turkish)

[ci skip]

* New translations en-us.ts (Ukrainian)

[ci skip]

* New translations en-us.ts (Chinese Simplified)

[ci skip]

* New translations en-us.ts (Chinese Traditional)

[ci skip]

* New translations en-us.ts (Vietnamese)

[ci skip]

* New translations en-us.ts (Portuguese, Brazilian)

[ci skip]

* New translations en-us.ts (Thai)

[ci skip]

* New translations en-us.ts (Croatian)

[ci skip]

* New translations en-us.ts (Estonian)

[ci skip]

* New translations en-us.ts (Serbian (Latin))

[ci skip]

* New translations en-us.ts (Dutch, Belgium)

[ci skip]

* New translations en-us.ts (Arabic, Egypt)

[ci skip]

* New translations en-us.ts (Norwegian)

[ci skip]

* New translations auth.json (French)

[ci skip]
2026-06-27 08:55:35 +03:00
a38ec269e4 feat(email): add html email compatibility (#104)
Enable the capability to send html-formated emails, with an option in the config panel/file

Co-authored-by: smp46 <me@smp46.me>
2026-06-26 17:07:50 +03:00
smp46andGitHub 48d913fbda Update README.md 2026-06-20 18:47:29 +02:00
smp46 bd00ee8880 release: 1.20.1 2026-06-18 19:52:52 +10:00
smp46andGitHub 8b90f3211a chore(translations): update translations via Crowdin (#94)
* New translations en-us.ts (Japanese)

[ci skip]

* New translations en-us.ts (Japanese)

[ci skip]

* New translations en-us.ts (Polish)

[ci skip]

* New translations en-us.ts (Polish)

[ci skip]

* New translations en-us.ts (Catalan)

[ci skip]

* New translations auth.json (Catalan)

[ci skip]

* New translations config.json (Catalan)

[ci skip]

* New translations email.json (Catalan)

[ci skip]

* New translations file.json (Catalan)

[ci skip]

* New translations ldap.json (Catalan)

[ci skip]

* New translations oauth.json (Catalan)

[ci skip]

* New translations reverseshare.json (Catalan)

[ci skip]

* New translations share.json (Catalan)

[ci skip]

* New translations validation.json (Catalan)

[ci skip]

* New translations en-us.ts (French)

[ci skip]

* New translations en-us.ts (Spanish)

[ci skip]

* New translations en-us.ts (Bulgarian)

[ci skip]

* New translations en-us.ts (Catalan)

[ci skip]

* New translations en-us.ts (Czech)

[ci skip]

* New translations en-us.ts (Danish)

[ci skip]

* New translations en-us.ts (German)

[ci skip]

* New translations en-us.ts (Greek)

[ci skip]

* New translations en-us.ts (Finnish)

[ci skip]

* New translations en-us.ts (Hungarian)

[ci skip]

* New translations en-us.ts (Italian)

[ci skip]

* New translations en-us.ts (Japanese)

[ci skip]

* New translations en-us.ts (Korean)

[ci skip]

* New translations en-us.ts (Polish)

[ci skip]

* New translations en-us.ts (Russian)

[ci skip]

* New translations en-us.ts (Slovenian)

[ci skip]

* New translations en-us.ts (Serbian (Cyrillic))

[ci skip]

* New translations en-us.ts (Swedish)

[ci skip]

* New translations en-us.ts (Turkish)

[ci skip]

* New translations en-us.ts (Ukrainian)

[ci skip]

* New translations en-us.ts (Chinese Simplified)

[ci skip]

* New translations en-us.ts (Chinese Traditional)

[ci skip]

* New translations en-us.ts (Vietnamese)

[ci skip]

* New translations en-us.ts (Portuguese, Brazilian)

[ci skip]

* New translations en-us.ts (Thai)

[ci skip]

* New translations en-us.ts (Croatian)

[ci skip]

* New translations en-us.ts (Estonian)

[ci skip]

* New translations en-us.ts (Serbian (Latin))

[ci skip]

* New translations en-us.ts (Dutch, Belgium)

[ci skip]

* New translations en-us.ts (Arabic, Egypt)

[ci skip]

* New translations en-us.ts (French)

[ci skip]

* New translations en-us.ts (Spanish)

[ci skip]

* New translations en-us.ts (Bulgarian)

[ci skip]

* New translations en-us.ts (Catalan)

[ci skip]

* New translations en-us.ts (Czech)

[ci skip]

* New translations en-us.ts (Danish)

[ci skip]

* New translations en-us.ts (German)

[ci skip]

* New translations en-us.ts (Greek)

[ci skip]

* New translations en-us.ts (Finnish)

[ci skip]

* New translations en-us.ts (Hungarian)

[ci skip]

* New translations en-us.ts (Italian)

[ci skip]

* New translations en-us.ts (Japanese)

[ci skip]

* New translations en-us.ts (Korean)

[ci skip]

* New translations en-us.ts (Polish)

[ci skip]

* New translations en-us.ts (Russian)

[ci skip]

* New translations en-us.ts (Slovenian)

[ci skip]

* New translations en-us.ts (Serbian (Cyrillic))

[ci skip]

* New translations en-us.ts (Swedish)

[ci skip]

* New translations en-us.ts (Turkish)

[ci skip]

* New translations en-us.ts (Ukrainian)

[ci skip]

* New translations en-us.ts (Chinese Simplified)

[ci skip]

* New translations en-us.ts (Chinese Traditional)

[ci skip]

* New translations en-us.ts (Vietnamese)

[ci skip]

* New translations en-us.ts (Portuguese, Brazilian)

[ci skip]

* New translations en-us.ts (Thai)

[ci skip]

* New translations en-us.ts (Croatian)

[ci skip]

* New translations en-us.ts (Estonian)

[ci skip]

* New translations en-us.ts (Serbian (Latin))

[ci skip]

* New translations en-us.ts (Dutch, Belgium)

[ci skip]

* New translations en-us.ts (Arabic, Egypt)

[ci skip]

* New translations auth.json (French)

[ci skip]

* New translations auth.json (Spanish)

[ci skip]

* New translations auth.json (Bulgarian)

[ci skip]

* New translations auth.json (Catalan)

[ci skip]

* New translations auth.json (Czech)

[ci skip]

* New translations auth.json (Danish)

[ci skip]

* New translations auth.json (German)

[ci skip]

* New translations auth.json (Greek)

[ci skip]

* New translations auth.json (Finnish)

[ci skip]

* New translations auth.json (Hungarian)

[ci skip]

* New translations auth.json (Italian)

[ci skip]

* New translations auth.json (Japanese)

[ci skip]

* New translations auth.json (Korean)

[ci skip]

* New translations auth.json (Polish)

[ci skip]

* New translations auth.json (Russian)

[ci skip]

* New translations auth.json (Slovenian)

[ci skip]

* New translations auth.json (Serbian (Cyrillic))

[ci skip]

* New translations auth.json (Swedish)

[ci skip]

* New translations auth.json (Turkish)

[ci skip]

* New translations auth.json (Ukrainian)

[ci skip]

* New translations auth.json (Chinese Simplified)

[ci skip]

* New translations auth.json (Chinese Traditional)

[ci skip]

* New translations auth.json (Vietnamese)

[ci skip]

* New translations auth.json (Portuguese, Brazilian)

[ci skip]

* New translations auth.json (Thai)

[ci skip]

* New translations auth.json (Croatian)

[ci skip]

* New translations auth.json (Estonian)

[ci skip]

* New translations auth.json (Serbian (Latin))

[ci skip]

* New translations auth.json (Dutch, Belgium)

[ci skip]

* New translations auth.json (Arabic, Egypt)

[ci skip]

* New translations en-us.ts (Hungarian)

[ci skip]

* New translations en-us.ts (Hungarian)

[ci skip]

* New translations en-us.ts (Polish)

[ci skip]

* New translations en-us.ts (Polish)

[ci skip]

* New translations en-us.ts (Hungarian)

[ci skip]

* New translations en-us.ts (Hungarian)

[ci skip]

* New translations en-us.ts (French)

[ci skip]

* New translations en-us.ts (Spanish)

[ci skip]

* New translations en-us.ts (Bulgarian)

[ci skip]

* New translations en-us.ts (Catalan)

[ci skip]

* New translations en-us.ts (Czech)

[ci skip]

* New translations en-us.ts (Danish)

[ci skip]

* New translations en-us.ts (German)

[ci skip]

* New translations en-us.ts (Greek)

[ci skip]

* New translations en-us.ts (Finnish)

[ci skip]

* New translations en-us.ts (Hungarian)

[ci skip]

* New translations en-us.ts (Italian)

[ci skip]

* New translations en-us.ts (Japanese)

[ci skip]

* New translations en-us.ts (Korean)

[ci skip]

* New translations en-us.ts (Polish)

[ci skip]

* New translations en-us.ts (Russian)

[ci skip]

* New translations en-us.ts (Slovenian)

[ci skip]

* New translations en-us.ts (Serbian (Cyrillic))

[ci skip]

* New translations en-us.ts (Swedish)

[ci skip]

* New translations en-us.ts (Turkish)

[ci skip]

* New translations en-us.ts (Ukrainian)

[ci skip]

* New translations en-us.ts (Chinese Simplified)

[ci skip]

* New translations en-us.ts (Chinese Traditional)

[ci skip]

* New translations en-us.ts (Vietnamese)

[ci skip]

* New translations en-us.ts (Portuguese, Brazilian)

[ci skip]

* New translations en-us.ts (Thai)

[ci skip]

* New translations en-us.ts (Croatian)

[ci skip]

* New translations en-us.ts (Estonian)

[ci skip]

* New translations en-us.ts (Serbian (Latin))

[ci skip]

* New translations en-us.ts (Dutch, Belgium)

[ci skip]

* New translations en-us.ts (Arabic, Egypt)

[ci skip]
2026-06-18 11:50:58 +02:00
smp46 93508a73b4 release: 1.20.0 2026-06-18 19:24:35 +10:00
smp46 500e91af36 fix(deps): resolve security vulns via overrides 2026-06-18 18:55:45 +10:00
smp46 e748463282 fix(deps): resolve security vulns via npm audit 2026-06-18 18:09:30 +10:00
smp46 5c852ff422 chore(repo): switch workflow target to fix gh perms 2026-06-17 21:44:18 +10:00
Till EhrengruberandGitHub f1f829f090 fix(email): localize email variables via defaultLanguage (#101) 2026-06-17 13:36:07 +02:00
smp46andGitHub 02968027a1 feat: optional email verification (#99)
* feat: email verification

* feat: resend verify email button

* fix: add i18n keys for email verify

* fix: skip email verify for oauth users

* style: formatted code

* refactor: simplify verif check, normalise emails

* fix: throttle verify endpoints

* fix: use DTO for verify token

* feat: admin view & change user verification

* fix: use transacs to rollback failed user signups
2026-06-17 11:05:23 +02:00
smp46 b4e2d8a135 fix(reverseShares): support admin file retention 2026-06-12 09:01:12 +02:00
smp46 f6905fed9b feat(shares): add infinite file retention period 2026-06-12 09:01:12 +02:00
smp46andGitHub 7eff4ecbd9 feat: catalan language support & AI translations (#96) 2026-06-10 12:31:31 +02:00
smp46 add126ad02 fix: add missing permissions to label workflows 2026-06-10 19:45:24 +10:00