summaryrefslogtreecommitdiff
path: root/deskutils/py-paperless-ngx
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--deskutils/py-paperless-ngx/Makefile14
-rw-r--r--deskutils/py-paperless-ngx/distinfo10
-rw-r--r--deskutils/py-paperless-ngx/files/patch-paperless.conf.example10
-rw-r--r--deskutils/py-paperless-ngx/files/patch-src_paperless_settings.py25
-rw-r--r--deskutils/py-paperless-ngx/files/pkg-message.in21
-rw-r--r--deskutils/py-paperless-ngx/pkg-plist109
6 files changed, 159 insertions, 30 deletions
diff --git a/deskutils/py-paperless-ngx/Makefile b/deskutils/py-paperless-ngx/Makefile
index 36609cd699ee..0a133caa05b8 100644
--- a/deskutils/py-paperless-ngx/Makefile
+++ b/deskutils/py-paperless-ngx/Makefile
@@ -1,6 +1,6 @@
PORTNAME= paperless-ngx
-DISTVERSION= 2.16.3
DISTVERSIONPREFIX= v
+DISTVERSION= 2.18.2
CATEGORIES= deskutils python
MASTER_SITES= https://github.com/${PORTNAME}/${PORTNAME}/releases/download/${DISTVERSIONPREFIX}${DISTVERSION}/:webui \
GH:gh
@@ -17,9 +17,9 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Jinja2>=3.1.6:devel/py-Jinja2@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}bleach>=6.2.0:www/py-bleach@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}concurrent-log-handler>=0.9.19:sysutils/py-concurrent-log-handler@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}dateparser>=1.2.1:devel/py-dateparser@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}dj51-channels-redis>=4.2.1:www/py-dj51-channels-redis@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}dj51-django-allauth>=65.9.0:www/py-dj51-django-allauth@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}dateparser>=1.2.2:devel/py-dateparser@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}dj51-channels-redis>=4.3.0:www/py-dj51-channels-redis@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}dj51-django-allauth>=65.11.0:www/py-dj51-django-allauth@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj51-django-auditlog>=3.0.0:www/py-dj51-django-auditlog@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj51-django-celery-results>=2.6.0:www/py-dj51-django-celery-results@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj51-django-compression-middleware>=0.5.0:www/py-dj51-django-compression-middleware@${PY_FLAVOR} \
@@ -34,18 +34,18 @@ BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Jinja2>=3.1.6:devel/py-Jinja2@${PY_FLAVOR}
${PYTHON_PKGNAMEPREFIX}filelock>=3.17.0:sysutils/py-filelock@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}flower>=2.0.1:www/py-flower@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}gotenberg-client>=0.10.0:converters/py-gotenberg-client@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}granian>=2.3.3:www/py-granian@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}granian>=2.5.0:www/py-granian@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}h2>=4.1.0:www/py-h2@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}hiredis>=3.0.0:databases/py-hiredis@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}httptools>=0.6.4:www/py-httptools@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}httpx-oauth>=0.10.1:www/py-httpx-oauth@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}imap-tools>=1.10.0:mail/py-imap-tools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}imap-tools>=1.11.0:mail/py-imap-tools@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}inotifyrecursive>=0.3.5_2:devel/py-inotifyrecursive@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}langdetect>=1.0.9:textproc/py-langdetect@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}mysqlclient>=2.2.7:databases/py-mysqlclient@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}nltk>=3.8.1:textproc/py-nltk@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}ocrmypdf>=16.10.1:textproc/py-ocrmypdf@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}pathvalidate>=3.2.3:devel/py-pathvalidate@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pathvalidate>=3.3.1:devel/py-pathvalidate@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pdf2image>=1.17.0:graphics/py-pdf2image@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pdftotext>=3.0.0:textproc/py-pdftotext@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}psycopg2>=2.9.10:databases/py-psycopg2@${PY_FLAVOR} \
diff --git a/deskutils/py-paperless-ngx/distinfo b/deskutils/py-paperless-ngx/distinfo
index ba50a6293da7..3e1cea9d52a1 100644
--- a/deskutils/py-paperless-ngx/distinfo
+++ b/deskutils/py-paperless-ngx/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1749710100
-SHA256 (paperless-ngx-v2.16.3.tar.xz) = 8d26e989555b35929208b3693ff27e16d0e2eb1db8cbb5630c4766b8be349a00
-SIZE (paperless-ngx-v2.16.3.tar.xz) = 77068608
-SHA256 (paperless-ngx-paperless-ngx-v2.16.3_GH0.tar.gz) = d23ba8f354bc9b199d86fd363cfe1e93901471b4d45b55b804facaee2bc4aee5
-SIZE (paperless-ngx-paperless-ngx-v2.16.3_GH0.tar.gz) = 49816301
+TIMESTAMP = 1756049099
+SHA256 (paperless-ngx-v2.18.2.tar.xz) = a4150eb880fcc0e3e5c3e42f602ab317c91ebf8c53a7f5d2ae076d3537fc3f94
+SIZE (paperless-ngx-v2.18.2.tar.xz) = 81206704
+SHA256 (paperless-ngx-paperless-ngx-v2.18.2_GH0.tar.gz) = 20672668d988f69d52e536b6d33e3e881cfe820c5cf54221a3f5a94f31393be5
+SIZE (paperless-ngx-paperless-ngx-v2.18.2_GH0.tar.gz) = 49919387
diff --git a/deskutils/py-paperless-ngx/files/patch-paperless.conf.example b/deskutils/py-paperless-ngx/files/patch-paperless.conf.example
index fe40bb7b43a4..35e184176393 100644
--- a/deskutils/py-paperless-ngx/files/patch-paperless.conf.example
+++ b/deskutils/py-paperless-ngx/files/patch-paperless.conf.example
@@ -1,6 +1,6 @@
---- paperless.conf.example.orig 2024-04-08 01:44:14 UTC
+--- paperless.conf.example.orig 2025-08-17 20:46:35 UTC
+++ paperless.conf.example
-@@ -17,17 +17,29 @@
+@@ -13,17 +13,29 @@
# Paths and folders
@@ -34,7 +34,7 @@
#PAPERLESS_URL=https://example.com
#PAPERLESS_CSRF_TRUSTED_ORIGINS=https://example.com # can be set using PAPERLESS_URL
#PAPERLESS_ALLOWED_HOSTS=example.com,www.example.com # can be set using PAPERLESS_URL
-@@ -40,6 +52,7 @@
+@@ -36,6 +48,7 @@
# OCR settings
@@ -42,7 +42,7 @@
#PAPERLESS_OCR_LANGUAGE=eng
#PAPERLESS_OCR_MODE=skip
#PAPERLESS_OCR_SKIP_ARCHIVE_FILE=never
-@@ -56,6 +69,7 @@
+@@ -52,6 +65,7 @@
# Software tweaks
@@ -50,7 +50,7 @@
#PAPERLESS_TASK_WORKERS=1
#PAPERLESS_THREADS_PER_WORKER=1
#PAPERLESS_TIME_ZONE=UTC
-@@ -92,3 +106,7 @@
+@@ -88,3 +102,7 @@
#PAPERLESS_CONVERT_BINARY=/usr/bin/convert
#PAPERLESS_GS_BINARY=/usr/bin/gs
diff --git a/deskutils/py-paperless-ngx/files/patch-src_paperless_settings.py b/deskutils/py-paperless-ngx/files/patch-src_paperless_settings.py
index 0631a458caf6..c29b74ddd28c 100644
--- a/deskutils/py-paperless-ngx/files/patch-src_paperless_settings.py
+++ b/deskutils/py-paperless-ngx/files/patch-src_paperless_settings.py
@@ -1,15 +1,14 @@
---- src/paperless/settings.py.orig 2025-04-19 22:34:42 UTC
+--- src/paperless/settings.py.orig 2025-08-17 20:46:35 UTC
+++ src/paperless/settings.py
-@@ -21,8 +21,6 @@ if configuration_path and os.path.exists(configuration
- load_dotenv(configuration_path)
- elif os.path.exists("../paperless.conf"):
- load_dotenv("../paperless.conf")
--elif os.path.exists("/etc/paperless.conf"):
-- load_dotenv("/etc/paperless.conf")
- elif os.path.exists("/usr/local/etc/paperless.conf"):
- load_dotenv("/usr/local/etc/paperless.conf")
-
-@@ -267,7 +265,7 @@ THUMBNAIL_DIR = MEDIA_ROOT / "documents" / "thumbnails
+@@ -25,7 +25,6 @@ logger = logging.getLogger("paperless.settings")
+ for path in [
+ os.getenv("PAPERLESS_CONFIGURATION_PATH"),
+ "../paperless.conf",
+- "/etc/paperless.conf",
+ "/usr/local/etc/paperless.conf",
+ ]:
+ if path and Path(path).exists():
+@@ -273,7 +272,7 @@ THUMBNAIL_DIR = MEDIA_ROOT / "documents" / "thumbnails
DATA_DIR = __get_path("PAPERLESS_DATA_DIR", BASE_DIR.parent / "data")
@@ -17,8 +16,8 @@
+NLTK_DIR = __get_path("PAPERLESS_NLTK_DIR", "/usr/local/share/nltk_data")
# Check deprecated setting first
- EMPTY_TRASH_DIR = os.getenv(
-@@ -1106,7 +1104,7 @@ FILENAME_FORMAT_REMOVE_NONE = __get_boolean(
+ EMPTY_TRASH_DIR = (
+@@ -1279,7 +1278,7 @@ FILENAME_FORMAT_REMOVE_NONE = __get_boolean(
THUMBNAIL_FONT_NAME = os.getenv(
"PAPERLESS_THUMBNAIL_FONT_NAME",
diff --git a/deskutils/py-paperless-ngx/files/pkg-message.in b/deskutils/py-paperless-ngx/files/pkg-message.in
index 2abb73ca7ab0..6f38d15dc3ef 100644
--- a/deskutils/py-paperless-ngx/files/pkg-message.in
+++ b/deskutils/py-paperless-ngx/files/pkg-message.in
@@ -31,4 +31,25 @@ Please modify your %%PREFIX%%/etc/paperless.conf based on
`*NLTK*` settings found in %%PREFIX%%/etc/paperless.conf.sample.
EOM
}
+{ type: upgrade
+ minimum_version: "2.16.0"
+ maximum_version: "2.17.1"
+ message: <<EOM
+WARNING
+
+In versions 2.16.0 - 2.16.3, the interpretation of offset days for
+scheduled workflows was inverted. This has been corrected to restore
+the intuitive, pre-2.16 behavior:
+
+ Positive offsets now trigger workflows after the date
+ Negative offsets trigger workflows before the date
+
+If you configured scheduled workflows in v2.16.x with inverted offsets
+(or adjusted a trigger created in 2.15.x), you must now adjust the
+offset sign to match this corrected logic.
+
+If you did not alter your workflow triggers after upgrading from v2.15,
+no changes are required.
+EOM
+}
]
diff --git a/deskutils/py-paperless-ngx/pkg-plist b/deskutils/py-paperless-ngx/pkg-plist
index 7c0aa1863415..718317ed8afd 100644
--- a/deskutils/py-paperless-ngx/pkg-plist
+++ b/deskutils/py-paperless-ngx/pkg-plist
@@ -526,6 +526,7 @@ bin/paperless
%%PYTHON_SITELIBDIR%%/paperless/documents/tests/samples/barcodes/several-patcht-codes.pdf
%%PYTHON_SITELIBDIR%%/paperless/documents/tests/samples/barcodes/split-by-asn-1.pdf
%%PYTHON_SITELIBDIR%%/paperless/documents/tests/samples/barcodes/split-by-asn-2.pdf
+%%PYTHON_SITELIBDIR%%/paperless/documents/tests/samples/content.txt
%%PYTHON_SITELIBDIR%%/paperless/documents/tests/samples/documents/archive/0000001.pdf
%%PYTHON_SITELIBDIR%%/paperless/documents/tests/samples/documents/originals/0000001.pdf
%%PYTHON_SITELIBDIR%%/paperless/documents/tests/samples/documents/originals/0000002.pdf
@@ -541,7 +542,10 @@ bin/paperless
%%PYTHON_SITELIBDIR%%/paperless/documents/tests/samples/double-sided-odd.pdf
%%PYTHON_SITELIBDIR%%/paperless/documents/tests/samples/eml_with_umlaut.eml
%%PYTHON_SITELIBDIR%%/paperless/documents/tests/samples/invalid_pdf.pdf
+%%PYTHON_SITELIBDIR%%/paperless/documents/tests/samples/malicious.svg
%%PYTHON_SITELIBDIR%%/paperless/documents/tests/samples/password-is-test.pdf
+%%PYTHON_SITELIBDIR%%/paperless/documents/tests/samples/preprocessed_content.txt
+%%PYTHON_SITELIBDIR%%/paperless/documents/tests/samples/preprocessed_content_advanced.txt
%%PYTHON_SITELIBDIR%%/paperless/documents/tests/samples/simple-noalpha.png
%%PYTHON_SITELIBDIR%%/paperless/documents/tests/samples/simple.jpg
%%PYTHON_SITELIBDIR%%/paperless/documents/tests/samples/simple.pdf
@@ -570,6 +574,7 @@ bin/paperless
%%PYTHON_SITELIBDIR%%/paperless/documents/tests/test_api_workflows.py
%%PYTHON_SITELIBDIR%%/paperless/documents/tests/test_barcodes.py
%%PYTHON_SITELIBDIR%%/paperless/documents/tests/test_bulk_edit.py
+%%PYTHON_SITELIBDIR%%/paperless/documents/tests/test_caching.py
%%PYTHON_SITELIBDIR%%/paperless/documents/tests/test_checks.py
%%PYTHON_SITELIBDIR%%/paperless/documents/tests/test_classifier.py
%%PYTHON_SITELIBDIR%%/paperless/documents/tests/test_consumer.py
@@ -684,6 +689,8 @@ bin/paperless
%%PYTHON_SITELIBDIR%%/paperless/paperless/__pycache__/consumers%%PYTHON_TAG%%.pyc
%%PYTHON_SITELIBDIR%%/paperless/paperless/__pycache__/db%%PYTHON_TAG%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/paperless/paperless/__pycache__/db%%PYTHON_TAG%%.pyc
+%%PYTHON_SITELIBDIR%%/paperless/paperless/__pycache__/db_cache%%PYTHON_TAG%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/paperless/paperless/__pycache__/db_cache%%PYTHON_TAG%%.pyc
%%PYTHON_SITELIBDIR%%/paperless/paperless/__pycache__/filters%%PYTHON_TAG%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/paperless/paperless/__pycache__/filters%%PYTHON_TAG%%.pyc
%%PYTHON_SITELIBDIR%%/paperless/paperless/__pycache__/middleware%%PYTHON_TAG%%.opt-1.pyc
@@ -698,6 +705,10 @@ bin/paperless
%%PYTHON_SITELIBDIR%%/paperless/paperless/__pycache__/signals%%PYTHON_TAG%%.pyc
%%PYTHON_SITELIBDIR%%/paperless/paperless/__pycache__/urls%%PYTHON_TAG%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/paperless/paperless/__pycache__/urls%%PYTHON_TAG%%.pyc
+%%PYTHON_SITELIBDIR%%/paperless/paperless/__pycache__/utils%%PYTHON_TAG%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/paperless/paperless/__pycache__/utils%%PYTHON_TAG%%.pyc
+%%PYTHON_SITELIBDIR%%/paperless/paperless/__pycache__/validators%%PYTHON_TAG%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/paperless/paperless/__pycache__/validators%%PYTHON_TAG%%.pyc
%%PYTHON_SITELIBDIR%%/paperless/paperless/__pycache__/version%%PYTHON_TAG%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/paperless/paperless/__pycache__/version%%PYTHON_TAG%%.pyc
%%PYTHON_SITELIBDIR%%/paperless/paperless/__pycache__/views%%PYTHON_TAG%%.opt-1.pyc
@@ -714,6 +725,7 @@ bin/paperless
%%PYTHON_SITELIBDIR%%/paperless/paperless/config.py
%%PYTHON_SITELIBDIR%%/paperless/paperless/consumers.py
%%PYTHON_SITELIBDIR%%/paperless/paperless/db.py
+%%PYTHON_SITELIBDIR%%/paperless/paperless/db_cache.py
%%PYTHON_SITELIBDIR%%/paperless/paperless/filters.py
%%PYTHON_SITELIBDIR%%/paperless/paperless/middleware.py
%%PYTHON_SITELIBDIR%%/paperless/paperless/migrations/0001_initial.py
@@ -742,12 +754,15 @@ bin/paperless
%%PYTHON_SITELIBDIR%%/paperless/paperless/tests/__init__.py
%%PYTHON_SITELIBDIR%%/paperless/paperless/tests/test_adapter.py
%%PYTHON_SITELIBDIR%%/paperless/paperless/tests/test_checks.py
+%%PYTHON_SITELIBDIR%%/paperless/paperless/tests/test_db_cache.py
%%PYTHON_SITELIBDIR%%/paperless/paperless/tests/test_remote_user.py
%%PYTHON_SITELIBDIR%%/paperless/paperless/tests/test_settings.py
%%PYTHON_SITELIBDIR%%/paperless/paperless/tests/test_signals.py
%%PYTHON_SITELIBDIR%%/paperless/paperless/tests/test_views.py
%%PYTHON_SITELIBDIR%%/paperless/paperless/tests/test_websockets.py
%%PYTHON_SITELIBDIR%%/paperless/paperless/urls.py
+%%PYTHON_SITELIBDIR%%/paperless/paperless/utils.py
+%%PYTHON_SITELIBDIR%%/paperless/paperless/validators.py
%%PYTHON_SITELIBDIR%%/paperless/paperless/version.py
%%PYTHON_SITELIBDIR%%/paperless/paperless/views.py
%%PYTHON_SITELIBDIR%%/paperless/paperless/wsgi.py
@@ -2023,6 +2038,53 @@ share/man/man7/paperless-ngx.7.gz
%%WWWDIR%%/static/frontend/es-ES/styles.css
%%WWWDIR%%/static/frontend/es-ES/styles.css.br
%%WWWDIR%%/static/frontend/es-ES/styles.css.gz
+%%WWWDIR%%/static/frontend/fa-IR/3rdpartylicenses.txt
+%%WWWDIR%%/static/frontend/fa-IR/3rdpartylicenses.txt.br
+%%WWWDIR%%/static/frontend/fa-IR/3rdpartylicenses.txt.gz
+%%WWWDIR%%/static/frontend/fa-IR/apple-touch-icon.png
+%%WWWDIR%%/static/frontend/fa-IR/assets/document.png
+%%WWWDIR%%/static/frontend/fa-IR/assets/js/pdf.min.mjs
+%%WWWDIR%%/static/frontend/fa-IR/assets/js/pdf.min.mjs.br
+%%WWWDIR%%/static/frontend/fa-IR/assets/js/pdf.min.mjs.gz
+%%WWWDIR%%/static/frontend/fa-IR/assets/js/pdf.worker.min.mjs
+%%WWWDIR%%/static/frontend/fa-IR/assets/js/pdf.worker.min.mjs.br
+%%WWWDIR%%/static/frontend/fa-IR/assets/js/pdf.worker.min.mjs.gz
+%%WWWDIR%%/static/frontend/fa-IR/assets/logo-dark-notext.svg
+%%WWWDIR%%/static/frontend/fa-IR/assets/logo-dark-notext.svg.br
+%%WWWDIR%%/static/frontend/fa-IR/assets/logo-dark-notext.svg.gz
+%%WWWDIR%%/static/frontend/fa-IR/assets/logo-dark.svg
+%%WWWDIR%%/static/frontend/fa-IR/assets/logo-dark.svg.br
+%%WWWDIR%%/static/frontend/fa-IR/assets/logo-dark.svg.gz
+%%WWWDIR%%/static/frontend/fa-IR/assets/logo-notext.svg
+%%WWWDIR%%/static/frontend/fa-IR/assets/logo-notext.svg.br
+%%WWWDIR%%/static/frontend/fa-IR/assets/logo-notext.svg.gz
+%%WWWDIR%%/static/frontend/fa-IR/assets/logo-white-notext.svg
+%%WWWDIR%%/static/frontend/fa-IR/assets/logo-white-notext.svg.br
+%%WWWDIR%%/static/frontend/fa-IR/assets/logo-white-notext.svg.gz
+%%WWWDIR%%/static/frontend/fa-IR/assets/logo.svg
+%%WWWDIR%%/static/frontend/fa-IR/assets/logo.svg.br
+%%WWWDIR%%/static/frontend/fa-IR/assets/logo.svg.gz
+%%WWWDIR%%/static/frontend/fa-IR/favicon.ico
+%%WWWDIR%%/static/frontend/fa-IR/favicon.ico.br
+%%WWWDIR%%/static/frontend/fa-IR/favicon.ico.gz
+%%WWWDIR%%/static/frontend/fa-IR/index.html
+%%WWWDIR%%/static/frontend/fa-IR/index.html.br
+%%WWWDIR%%/static/frontend/fa-IR/index.html.gz
+%%WWWDIR%%/static/frontend/fa-IR/main.js
+%%WWWDIR%%/static/frontend/fa-IR/main.js.br
+%%WWWDIR%%/static/frontend/fa-IR/main.js.gz
+%%WWWDIR%%/static/frontend/fa-IR/manifest.webmanifest
+%%WWWDIR%%/static/frontend/fa-IR/manifest.webmanifest.br
+%%WWWDIR%%/static/frontend/fa-IR/manifest.webmanifest.gz
+%%WWWDIR%%/static/frontend/fa-IR/polyfills.js
+%%WWWDIR%%/static/frontend/fa-IR/polyfills.js.br
+%%WWWDIR%%/static/frontend/fa-IR/polyfills.js.gz
+%%WWWDIR%%/static/frontend/fa-IR/runtime.js
+%%WWWDIR%%/static/frontend/fa-IR/runtime.js.br
+%%WWWDIR%%/static/frontend/fa-IR/runtime.js.gz
+%%WWWDIR%%/static/frontend/fa-IR/styles.css
+%%WWWDIR%%/static/frontend/fa-IR/styles.css.br
+%%WWWDIR%%/static/frontend/fa-IR/styles.css.gz
%%WWWDIR%%/static/frontend/fi-FI/3rdpartylicenses.txt
%%WWWDIR%%/static/frontend/fi-FI/3rdpartylicenses.txt.br
%%WWWDIR%%/static/frontend/fi-FI/3rdpartylicenses.txt.gz
@@ -2963,6 +3025,53 @@ share/man/man7/paperless-ngx.7.gz
%%WWWDIR%%/static/frontend/uk-UA/styles.css
%%WWWDIR%%/static/frontend/uk-UA/styles.css.br
%%WWWDIR%%/static/frontend/uk-UA/styles.css.gz
+%%WWWDIR%%/static/frontend/vi-VN/3rdpartylicenses.txt
+%%WWWDIR%%/static/frontend/vi-VN/3rdpartylicenses.txt.br
+%%WWWDIR%%/static/frontend/vi-VN/3rdpartylicenses.txt.gz
+%%WWWDIR%%/static/frontend/vi-VN/apple-touch-icon.png
+%%WWWDIR%%/static/frontend/vi-VN/assets/document.png
+%%WWWDIR%%/static/frontend/vi-VN/assets/js/pdf.min.mjs
+%%WWWDIR%%/static/frontend/vi-VN/assets/js/pdf.min.mjs.br
+%%WWWDIR%%/static/frontend/vi-VN/assets/js/pdf.min.mjs.gz
+%%WWWDIR%%/static/frontend/vi-VN/assets/js/pdf.worker.min.mjs
+%%WWWDIR%%/static/frontend/vi-VN/assets/js/pdf.worker.min.mjs.br
+%%WWWDIR%%/static/frontend/vi-VN/assets/js/pdf.worker.min.mjs.gz
+%%WWWDIR%%/static/frontend/vi-VN/assets/logo-dark-notext.svg
+%%WWWDIR%%/static/frontend/vi-VN/assets/logo-dark-notext.svg.br
+%%WWWDIR%%/static/frontend/vi-VN/assets/logo-dark-notext.svg.gz
+%%WWWDIR%%/static/frontend/vi-VN/assets/logo-dark.svg
+%%WWWDIR%%/static/frontend/vi-VN/assets/logo-dark.svg.br
+%%WWWDIR%%/static/frontend/vi-VN/assets/logo-dark.svg.gz
+%%WWWDIR%%/static/frontend/vi-VN/assets/logo-notext.svg
+%%WWWDIR%%/static/frontend/vi-VN/assets/logo-notext.svg.br
+%%WWWDIR%%/static/frontend/vi-VN/assets/logo-notext.svg.gz
+%%WWWDIR%%/static/frontend/vi-VN/assets/logo-white-notext.svg
+%%WWWDIR%%/static/frontend/vi-VN/assets/logo-white-notext.svg.br
+%%WWWDIR%%/static/frontend/vi-VN/assets/logo-white-notext.svg.gz
+%%WWWDIR%%/static/frontend/vi-VN/assets/logo.svg
+%%WWWDIR%%/static/frontend/vi-VN/assets/logo.svg.br
+%%WWWDIR%%/static/frontend/vi-VN/assets/logo.svg.gz
+%%WWWDIR%%/static/frontend/vi-VN/favicon.ico
+%%WWWDIR%%/static/frontend/vi-VN/favicon.ico.br
+%%WWWDIR%%/static/frontend/vi-VN/favicon.ico.gz
+%%WWWDIR%%/static/frontend/vi-VN/index.html
+%%WWWDIR%%/static/frontend/vi-VN/index.html.br
+%%WWWDIR%%/static/frontend/vi-VN/index.html.gz
+%%WWWDIR%%/static/frontend/vi-VN/main.js
+%%WWWDIR%%/static/frontend/vi-VN/main.js.br
+%%WWWDIR%%/static/frontend/vi-VN/main.js.gz
+%%WWWDIR%%/static/frontend/vi-VN/manifest.webmanifest
+%%WWWDIR%%/static/frontend/vi-VN/manifest.webmanifest.br
+%%WWWDIR%%/static/frontend/vi-VN/manifest.webmanifest.gz
+%%WWWDIR%%/static/frontend/vi-VN/polyfills.js
+%%WWWDIR%%/static/frontend/vi-VN/polyfills.js.br
+%%WWWDIR%%/static/frontend/vi-VN/polyfills.js.gz
+%%WWWDIR%%/static/frontend/vi-VN/runtime.js
+%%WWWDIR%%/static/frontend/vi-VN/runtime.js.br
+%%WWWDIR%%/static/frontend/vi-VN/runtime.js.gz
+%%WWWDIR%%/static/frontend/vi-VN/styles.css
+%%WWWDIR%%/static/frontend/vi-VN/styles.css.br
+%%WWWDIR%%/static/frontend/vi-VN/styles.css.gz
%%WWWDIR%%/static/frontend/zh-CN/3rdpartylicenses.txt
%%WWWDIR%%/static/frontend/zh-CN/3rdpartylicenses.txt.br
%%WWWDIR%%/static/frontend/zh-CN/3rdpartylicenses.txt.gz