diff --git a/.build-config.json b/.build-config.json index 32cf968d5..8005e2fc1 100644 --- a/.build-config.json +++ b/.build-config.json @@ -1,6 +1,6 @@ { "qpdf": { - "version": "10.6.3" + "version": "11.1.0" }, "jbig2enc": { "version": "0.29", diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ddf23e253..a199ce7ad 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -121,7 +121,7 @@ jobs: - name: Get changed files id: changed-files-specific - uses: tj-actions/changed-files@v29.0.2 + uses: tj-actions/changed-files@v31.0.2 with: files: | src/** @@ -484,6 +484,18 @@ jobs: uses: actions/checkout@v3 with: ref: main + - + name: Install pipenv + run: | + pip3 install --upgrade pip setuptools wheel pipx + pipx install pipenv + - + name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: 3.9 + cache: "pipenv" + cache-dependency-path: 'Pipfile.lock' - name: Append Changelog to docs id: append-Changelog @@ -497,9 +509,10 @@ jobs: CURRENT_CHANGELOG=`tail --lines +2 changelog.md` echo -e "$CURRENT_CHANGELOG" >> changelog-new.md mv changelog-new.md changelog.md + pipenv run pre-commit --files changelog.md git config --global user.name "github-actions" git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com" - git commit -am "Changelog ${{ steps.get_version.outputs.version }} - GHA" + git commit -am "Changelog ${{ needs.publish-release.outputs.version }} - GHA" git push origin ${{ needs.publish-release.outputs.version }}-changelog - name: Create Pull Request diff --git a/.github/workflows/cleanup-tags.yml b/.github/workflows/cleanup-tags.yml index 55841e7f0..321c86cc1 100644 --- a/.github/workflows/cleanup-tags.yml +++ b/.github/workflows/cleanup-tags.yml @@ -39,7 +39,7 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} - name: Set up Python - uses: actions/setup-python@v3 + uses: actions/setup-python@v4 with: python-version: "3.10" - diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 92e384d4e..c742807e9 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -38,7 +38,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL diff --git a/.github/workflows/project-actions.yml b/.github/workflows/project-actions.yml index 0ec168a7a..2d3e4549e 100644 --- a/.github/workflows/project-actions.yml +++ b/.github/workflows/project-actions.yml @@ -28,7 +28,7 @@ jobs: if: github.event_name == 'issues' && (github.event.action == 'opened' || github.event.action == 'reopened') steps: - name: Add issue to project and set status to ${{ env.todo }} - uses: leonsteinhaeuser/project-beta-automations@v1.3.0 + uses: leonsteinhaeuser/project-beta-automations@v2.0.1 with: gh_token: ${{ secrets.GH_TOKEN }} organization: paperless-ngx @@ -44,7 +44,7 @@ jobs: if: github.event_name == 'pull_request_target' && (github.event.action == 'opened' || github.event.action == 'reopened') && github.event.pull_request.user.login != 'dependabot' steps: - name: Add PR to project and set status to "Needs Review" - uses: leonsteinhaeuser/project-beta-automations@v1.3.0 + uses: leonsteinhaeuser/project-beta-automations@v2.0.1 with: gh_token: ${{ secrets.GH_TOKEN }} organization: paperless-ngx diff --git a/Dockerfile b/Dockerfile index bc3808fa5..2eeaba1dc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -182,7 +182,7 @@ RUN --mount=type=bind,from=qpdf-builder,target=/qpdf \ --mount=type=bind,from=pikepdf-builder,target=/pikepdf \ set -eux \ && echo "Installing qpdf" \ - && apt-get install --yes --no-install-recommends /qpdf/usr/src/qpdf/libqpdf28_*.deb \ + && apt-get install --yes --no-install-recommends /qpdf/usr/src/qpdf/libqpdf29_*.deb \ && apt-get install --yes --no-install-recommends /qpdf/usr/src/qpdf/qpdf_*.deb \ && echo "Installing pikepdf and dependencies" \ && python3 -m pip install --no-cache-dir /pikepdf/usr/src/wheels/pyparsing*.whl \ diff --git a/Pipfile b/Pipfile index 16ad87f81..25a159b6a 100644 --- a/Pipfile +++ b/Pipfile @@ -22,7 +22,7 @@ imap-tools = "*" langdetect = "*" pathvalidate = "*" pillow = "~=9.2" -pikepdf = "~=5.6" +pikepdf = "*" python-gnupg = "*" python-dotenv = "*" python-dateutil = "*" @@ -38,7 +38,7 @@ whitenoise = "~=6.2" watchdog = "~=2.1" whoosh="~=2.7" inotifyrecursive = "~=0.3" -ocrmypdf = "~=13.7" +ocrmypdf = "~=14.0" tqdm = "*" tika = "*" # TODO: This will sadly also install daphne+dependencies, diff --git a/Pipfile.lock b/Pipfile.lock index 7eab75fbd..bd4794b3b 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -837,11 +837,11 @@ }, "ocrmypdf": { "hashes": [ - "sha256:45fa226f6753f6e0be1e6304d3363a6d8047bb4cb0cf0d25728c3b9c9a0bff40", - "sha256:bba8508d35c75bc1e9ecbbbfa546356215bdeccf7fdfce2068ea9bbb1fe5f3b6" + "sha256:19e29601a117ec7ea4d4ced6ad5e94f29f8a378d7d41862de31ef1de7e67f0f1", + "sha256:d54cf6d524b7cc34497208e07b9007b695dc60f82595d68f4f5cdbe7dd8e05ef" ], "index": "pypi", - "version": "==13.7.0" + "version": "==14.0.0" }, "packaging": { "hashes": [ @@ -869,42 +869,45 @@ }, "pikepdf": { "hashes": [ - "sha256:03fb70ff4fada9cba864d04033f4166b5bf7fa85c90cdc05afd0ab87c9ccaa1a", - "sha256:054a06e954d2c3efb79d64e11583f271490a6fbd5a0636eb3d903ceb4ae2d780", - "sha256:13d3c1a8112eddfa1090fcfd0478187e1e69ec43680a9cda91ff2594f67acd35", - "sha256:235456098db3e2ee30ff2996b8d59f7d096c38ef6da5655048038a86d23a3cc8", - "sha256:24c0d95e34b6f9030cabc06cc793e288c14f78897730ff4b78cd6e435cd0a6ff", - "sha256:45eae036f0b1483dfbb2a8739cb6ca245b94f9897373d85e8bbab14e3aca8f70", - "sha256:4a5c13455430c16f9c93f08e5f70d837a0a17b828e3a670295a7a1a24f663c38", - "sha256:5c59a87b0954f7e6ffc8566a3f48b98da3c3f746ee89e829608c4ba20642386c", - "sha256:5f7a18a54168e4f85b1fa72062048222240f644fb505b46f05f1d8acc917e78a", - "sha256:677ca2f6ebe6c9a4398870e00797adb4f53a83d6309f1d2ce0dd1dd7c9f20db6", - "sha256:6e9016d37c0a11ad8be7c3701ea789694aff415c13f4c92446b119a4dc6259a1", - "sha256:7553fa83875113ca8b851a6d122309cc636c41676a7d4c7c686bdb253fdf0b07", - "sha256:7dd968a073fd30a5b53cacebb99ce8bd6ecce629e1d76c7a94aace6cf328fe63", - "sha256:859ca4393846b83bea4b3ff05cc365886e0051db523936784cb8d5c9aecf6054", - "sha256:887a0e3cb0d051a20aef47a6ffa74070336d2cb29497ad0cac52c6bb1a4b2b12", - "sha256:9301ea6d5cf1130a17d9f35f7892689d51629999cdcb2418d42da9a9da1a7e64", - "sha256:97c303bffb50b8090f8f271edd64d939863a310c70e380f9d547ee290ca5a75e", - "sha256:9e30007a034a0e786baabb77fa2c65a01f8fb38d156d9c20aab2fb3e77e44d63", - "sha256:a3e57debada6be5cc64ad336e7c32da691b914a1b9b620d072e7470206dc77f1", - "sha256:a6e0d55e8e441c83be0dac8dd94eab51afd149e7619a0c1309e3236e19277f64", - "sha256:acbae016c146ff8d96be6cab2e28f6c178c064e9a2636b3cfb233999741a5d81", - "sha256:b93577f094756725591539da24233d289924802427785a123dcc4d15d10c74c2", - "sha256:ceb06aded3359bbddda4a4d281573b88d39fdcc7dcc80b42bff2e82904462cf6", - "sha256:d434141d12656d6fb0d6914e0ebe68db6a822bf96e0e74084960585756048467", - "sha256:d46346ea139da5036c9926939889ab8c92dc729f2e9c587963cf2f2080fb8c4f", - "sha256:d4c84d7f35928137a3d60829ce7ff48787cab9a54662a20bcc1f0917be1568f8", - "sha256:d77ee549208395ed92bd0f607f2a474e2c6077089be183832761001cc843416d", - "sha256:dd51c9de5f067d90c79989ff10d7c28bd34de193441877d0f08c3888a5374ab1", - "sha256:e2248e1e16af931406069d4eb4e7a64f553b5e40b79cf48542d69cc04eff0b34", - "sha256:e32e68e2cc94a13a8a9aeb60951b690d90d0a8f6f50788562977cd85b13f5f16", - "sha256:f5576a9d328775421a7e4c3dd0833c79d0b687f5df5344b57b116fd0b1861232", - "sha256:f681bb3664dcee052facb2265d978845d6faf22f049f872aa0e2aeefff1494bd", - "sha256:f720c07108df0161677a7400a35ec06910ec3f3e8f75e376836f3b7152f17b68" + "sha256:060bb152b5a0b08d0673add4a1f95aafe95f3414e5ff0f500284e189f9a94569", + "sha256:0e1509a2858b9170424a9259cd56ecd264bce1f5a1fbc98a5cb58f555768315b", + "sha256:1536a7b898dc59b8a1f0cd02dbf42981275634252f51b0a863afe494f8f6da76", + "sha256:1bdd1e64644209f27ea0672e26277bd8ea291e1403d6bcfb8394d2713db86d8b", + "sha256:1e2bbcd4b1228c55f6e12f4154b01e467926554be8505aa6791acbe5073956b1", + "sha256:1e77e68089a394105de192f84ac27d51b4f0c10c7cefc445a56b3254ccdacadd", + "sha256:23e988d57873c64e2592784fbffc18da21a99c12e0173fc8a9ce8b56024dfce7", + "sha256:3132f7c5d94030334d5fbca0a7834d92b9793a286445b85557ea33d030a7caad", + "sha256:339453b8f15fef409aa7384891b171045c31eba903aec7912dcd16738b6837f2", + "sha256:373ece605001244e8d552b563ebfe61e10da2895e0d94beae2d7c707bcd91f83", + "sha256:3fa1ae3bfe5afd20d62bc841a2ff410df1dbf6412d146cbe5768ea7f40a0df28", + "sha256:464cef231aafa9f598ef0a6d0a21a8829272b674a19091b8d12caedd829dbb5b", + "sha256:5afb4a49df2eec8cbc0055b409f78be840f6fb33bc28357c5990e39cd6d99239", + "sha256:5b73bebe892bc886f6336c856126e1b6e094c2a87fbed2a9acceef90c4283cb5", + "sha256:6b94bcc6263326643f2bed2f53ea158875cf31db8d3588a49b73abad70d52614", + "sha256:701229af97308a38f3b5a7e79a5fa9ae0a74c96f217ece100b4b65f98741b76d", + "sha256:78a2cb9f332a5330041acca870918a4d29653a4686efd9f59dcc03f73dae7778", + "sha256:7e51aa472d0013ec877e6554d111fc3b9d71d499cb9f51a34a699b6f7480b0b5", + "sha256:7e86dd5ba44bbbb7b4ab420191f681b05fcaf646c17ea7ed5d39e61296e4df12", + "sha256:82c10168ff18d9e13e55f3f15ccd7c0c548e1be81a864d88dbe9d25014bf834d", + "sha256:89c51487a7d6e125b56b677c06235646c9ac15e08dbd7399d0ee422f289fcf62", + "sha256:8cdbb3615964cb06e2f79b1613abbe0529a405eed4961d19d2f63b79d4f5f1fc", + "sha256:a2385a1ca24f51b0607888f632e8fa2fb0fc47b548eadf76c4456e259572480b", + "sha256:b0c4397ab58736e1d0d130a47aa68d8b84167a7af9ef9825f1cf54a4df417ea3", + "sha256:c65097ad7eee9152b484bb61dd87e465373bc0189b72b6a64325d75a808b0295", + "sha256:c76d3156a46882ee31db74a48533fec6e41937d27cc1944efaff752e5121d56d", + "sha256:d705ff78881bbbedf5db54342a19778cd2f141697548cd8fb418024efdb10bbd", + "sha256:d924a9eccd400b667c10ece6a72a8203b80093e66f620e5f2c9f5e4b288d1e12", + "sha256:dc6e5f7d2776fae35b5bee5114e4842ee4bd449557ad0e0feba52963fe88acf5", + "sha256:e1060bc736c5080d6367351e8367f25171d572f8f01c54a72ffd8337ef512144", + "sha256:e135991897b072725b7c5b332dc4156cc3cfd65b1c82fcf2dbd373d4e306ade0", + "sha256:e2ce76a3fd0ec5af184daad67cd37aa51d3745f676f55f10dc086cd528d7d3b7", + "sha256:e6d7099b8e9a7e0e7375da8f462162604d4e8cd2cf9c1a647d79b80e5e242d27", + "sha256:ea5c8ff7adff37ddac6813fd43a74a5236afed96585e908304a7522300e59e92", + "sha256:eab4823438a95b849699de02cb8780d4853b0c9de89548dd1ff4e3327371d7d4", + "sha256:f13671b1ded6b03baecfabbaec81b7bca38f5624cf0b74981eb1a61761e352b7" ], "index": "pypi", - "version": "==5.6.1" + "version": "==6.0.2" }, "pillow": { "hashes": [ @@ -2071,11 +2074,11 @@ }, "faker": { "hashes": [ - "sha256:2e28aaea60456857d4ce95dd12aed767769537ad23d13d51a545cd40a654e9d9", - "sha256:daad7badb4fd916bd047b28c8459ef4689e4fe6acf61f6dfebee8cc602e4d009" + "sha256:245fc7d23470dc57164bd9a59b7b1126e16289ffcf813d88a6c8e9b8a37ea3fb", + "sha256:84c83f0ac1a2c8ecabd784c501aa0ef1d082d4aee52c3d797d586081c166434c" ], - "markers": "python_version >= '3.6'", - "version": "==14.2.1" + "markers": "python_version >= '3.7'", + "version": "==15.0.0" }, "filelock": { "hashes": [ diff --git a/docker-builders/Dockerfile.pikepdf b/docker-builders/Dockerfile.pikepdf index 5f0c3eea2..750306360 100644 --- a/docker-builders/Dockerfile.pikepdf +++ b/docker-builders/Dockerfile.pikepdf @@ -60,7 +60,7 @@ RUN set -eux \ && apt-get update --quiet \ && apt-get install --yes --quiet --no-install-recommends ${BUILD_PACKAGES} \ && echo "Installing qpdf" \ - && dpkg --install libqpdf28_*.deb \ + && dpkg --install libqpdf29_*.deb \ && dpkg --install libqpdf-dev_*.deb \ && echo "Installing Python tools" \ && python3 -m pip install --no-cache-dir --upgrade \ diff --git a/docker-builders/Dockerfile.qpdf b/docker-builders/Dockerfile.qpdf index 0cc5fba24..de27b2d5d 100644 --- a/docker-builders/Dockerfile.qpdf +++ b/docker-builders/Dockerfile.qpdf @@ -1,7 +1,7 @@ # This Dockerfile compiles the jbig2enc library # Inputs: # - QPDF_VERSION - the version of qpdf to build a .deb. -# Must be preset as a deb-src +# Must be present as a deb-src in bookworm FROM debian:bullseye-slim as main @@ -22,27 +22,23 @@ ARG BUILD_PACKAGES="\ libjpeg62-turbo-dev \ libgnutls28-dev \ packaging-dev \ + cmake \ zlib1g-dev" WORKDIR /usr/src -# As this is an base image for a multi-stage final image -# the added size of the install is basically irrelevant - RUN set -eux \ && echo "Installing build tools" \ && apt-get update --quiet \ && apt-get install --yes --quiet --no-install-recommends $BUILD_PACKAGES \ - && echo "Building qpdf" \ + && echo "Getting qpdf src" \ && echo "deb-src http://deb.debian.org/debian/ bookworm main" > /etc/apt/sources.list.d/bookworm-src.list \ && apt-get update \ && mkdir qpdf \ && cd qpdf \ && apt-get source --yes --quiet qpdf=${QPDF_VERSION}-1/bookworm \ + && echo "Building qpdf" \ && cd qpdf-$QPDF_VERSION \ - # We don't need to build the tests (also don't run them) - && rm -rf libtests \ - && DEBEMAIL=hello@paperless-ngx.com debchange --bpo \ && export DEB_BUILD_OPTIONS="terse nocheck nodoc parallel=2" \ && dpkg-buildpackage --build=binary --unsigned-source --unsigned-changes --post-clean \ && ls -ahl ../*.deb \ diff --git a/docs/advanced_usage.rst b/docs/advanced_usage.rst index 7709da1c9..4723ff4b7 100644 --- a/docs/advanced_usage.rst +++ b/docs/advanced_usage.rst @@ -218,7 +218,8 @@ using the identifier which it has assigned to each document. You will end up get files like ``0000123.pdf`` in your media directory. This isn't necessarily a bad thing, because you normally don't have to access these files manually. However, if you wish to name your files differently, you can do that by adjusting the -``PAPERLESS_FILENAME_FORMAT`` configuration option. +``PAPERLESS_FILENAME_FORMAT`` configuration option. Paperless adds the correct +file extension e.g. ``.pdf``, ``.jpg`` automatically. This variable allows you to configure the filename (folders are allowed) using placeholders. For example, configuring this to diff --git a/docs/changelog.md b/docs/changelog.md index af0c48dc5..1caa00220 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,5 +1,204 @@ # Changelog +## paperless-ngx 1.9.1 + +### Bug Fixes + +- Bugfix: Fixes missing OCR mode skip_noarchive [@stumpylog](https://github.com/stumpylog) ([#1645](https://github.com/paperless-ngx/paperless-ngx/pull/1645)) +- Fix reset button padding on small screens [@shamoon](https://github.com/shamoon) ([#1646](https://github.com/paperless-ngx/paperless-ngx/pull/1646)) + +### Documentation + +- Improve docs re [@janis-ax](https://github.com/janis-ax) ([#1625](https://github.com/paperless-ngx/paperless-ngx/pull/1625)) +- [Documentation] Add v1.9.0 changelog [@github-actions](https://github.com/github-actions) ([#1639](https://github.com/paperless-ngx/paperless-ngx/pull/1639)) + +### All App Changes + +- Bugfix: Fixes missing OCR mode skip_noarchive [@stumpylog](https://github.com/stumpylog) ([#1645](https://github.com/paperless-ngx/paperless-ngx/pull/1645)) +- Fix reset button padding on small screens [@shamoon](https://github.com/shamoon) ([#1646](https://github.com/paperless-ngx/paperless-ngx/pull/1646)) + +## paperless-ngx 1.9.0 + +### Features + +- Feature: Faster, less memory barcode handling [@stumpylog](https://github.com/stumpylog) ([#1594](https://github.com/paperless-ngx/paperless-ngx/pull/1594)) +- Feature: Display django-q process names [@stumpylog](https://github.com/stumpylog) ([#1567](https://github.com/paperless-ngx/paperless-ngx/pull/1567)) +- Feature: Add MariaDB support [@bckelly1](https://github.com/bckelly1) ([#543](https://github.com/paperless-ngx/paperless-ngx/pull/543)) +- Feature: Simplify IMAP login for UTF-8 [@stumpylog](https://github.com/stumpylog) ([#1492](https://github.com/paperless-ngx/paperless-ngx/pull/1492)) +- Feature: Even better re-do of OCR [@stumpylog](https://github.com/stumpylog) ([#1451](https://github.com/paperless-ngx/paperless-ngx/pull/1451)) +- Feature: document comments [@tim-vogel](https://github.com/tim-vogel) ([#1375](https://github.com/paperless-ngx/paperless-ngx/pull/1375)) +- Adding date suggestions to the documents details view [@Eckii24](https://github.com/Eckii24) ([#1367](https://github.com/paperless-ngx/paperless-ngx/pull/1367)) +- Feature: Event driven consumer [@stumpylog](https://github.com/stumpylog) ([#1421](https://github.com/paperless-ngx/paperless-ngx/pull/1421)) +- Feature: Adds storage paths to re-tagger command [@stumpylog](https://github.com/stumpylog) ([#1446](https://github.com/paperless-ngx/paperless-ngx/pull/1446)) +- Feature: Preserve original filename in metadata [@GwynHannay](https://github.com/GwynHannay) ([#1440](https://github.com/paperless-ngx/paperless-ngx/pull/1440)) +- Handle tags for gmail email accounts [@sisao](https://github.com/sisao) ([#1433](https://github.com/paperless-ngx/paperless-ngx/pull/1433)) +- Update redis image [@tribut](https://github.com/tribut) ([#1436](https://github.com/paperless-ngx/paperless-ngx/pull/1436)) +- PAPERLESS_REDIS may be set via docker secrets [@DennisGaida](https://github.com/DennisGaida) ([#1405](https://github.com/paperless-ngx/paperless-ngx/pull/1405)) + +### Bug Fixes + +- paperless_cmd.sh: use exec to run supervisord [@lemmi](https://github.com/lemmi) ([#1617](https://github.com/paperless-ngx/paperless-ngx/pull/1617)) +- Fix: Double barcode separation creates empty file [@stumpylog](https://github.com/stumpylog) ([#1596](https://github.com/paperless-ngx/paperless-ngx/pull/1596)) +- Fix: Resolve issue with slow classifier [@stumpylog](https://github.com/stumpylog) ([#1576](https://github.com/paperless-ngx/paperless-ngx/pull/1576)) +- Fix document comments not updating on document navigation [@shamoon](https://github.com/shamoon) ([#1566](https://github.com/paperless-ngx/paperless-ngx/pull/1566)) +- Fix: Include storage paths in document exporter [@shamoon](https://github.com/shamoon) ([#1557](https://github.com/paperless-ngx/paperless-ngx/pull/1557)) +- Chore: Cleanup and validate settings [@stumpylog](https://github.com/stumpylog) ([#1551](https://github.com/paperless-ngx/paperless-ngx/pull/1551)) +- Bugfix: Better gunicorn settings for workers [@stumpylog](https://github.com/stumpylog) ([#1500](https://github.com/paperless-ngx/paperless-ngx/pull/1500)) +- Fix actions button in tasks table [@shamoon](https://github.com/shamoon) ([#1488](https://github.com/paperless-ngx/paperless-ngx/pull/1488)) +- Fix: Add missing filter rule types to SavedViewFilterRule model \& fix migrations [@shamoon](https://github.com/shamoon) ([#1463](https://github.com/paperless-ngx/paperless-ngx/pull/1463)) +- Fix paperless.conf.example typo [@qcasey](https://github.com/qcasey) ([#1460](https://github.com/paperless-ngx/paperless-ngx/pull/1460)) +- Bugfix: Fixes the creation of an archive file, even if noarchive was specified [@stumpylog](https://github.com/stumpylog) ([#1442](https://github.com/paperless-ngx/paperless-ngx/pull/1442)) +- Fix: created_date should not be required [@shamoon](https://github.com/shamoon) ([#1412](https://github.com/paperless-ngx/paperless-ngx/pull/1412)) +- Fix: dev backend testing [@stumpylog](https://github.com/stumpylog) ([#1420](https://github.com/paperless-ngx/paperless-ngx/pull/1420)) +- Bugfix: Catch all exceptions during the task signals [@stumpylog](https://github.com/stumpylog) ([#1387](https://github.com/paperless-ngx/paperless-ngx/pull/1387)) +- Fix: saved view page parameter [@shamoon](https://github.com/shamoon) ([#1376](https://github.com/paperless-ngx/paperless-ngx/pull/1376)) +- Fix: Correct browser unsaved changes warning [@shamoon](https://github.com/shamoon) ([#1369](https://github.com/paperless-ngx/paperless-ngx/pull/1369)) +- Fix: correct date pasting with other formats [@shamoon](https://github.com/shamoon) ([#1370](https://github.com/paperless-ngx/paperless-ngx/pull/1370)) +- Bugfix: Allow webserver bind address to be configured [@stumpylog](https://github.com/stumpylog) ([#1358](https://github.com/paperless-ngx/paperless-ngx/pull/1358)) +- Bugfix: Chain exceptions during exception handling [@stumpylog](https://github.com/stumpylog) ([#1354](https://github.com/paperless-ngx/paperless-ngx/pull/1354)) +- Fix: missing tooltip translation \& filter editor wrapping [@shamoon](https://github.com/shamoon) ([#1305](https://github.com/paperless-ngx/paperless-ngx/pull/1305)) +- Bugfix: Interaction between barcode and directories as tags [@stumpylog](https://github.com/stumpylog) ([#1303](https://github.com/paperless-ngx/paperless-ngx/pull/1303)) + +### Documentation + +- [Beta] Paperless-ngx v1.9.0 Release Candidate [@stumpylog](https://github.com/stumpylog) ([#1560](https://github.com/paperless-ngx/paperless-ngx/pull/1560)) +- docs/configuration: Fix binary variable defaults [@erikarvstedt](https://github.com/erikarvstedt) ([#1528](https://github.com/paperless-ngx/paperless-ngx/pull/1528)) +- Info about installing on subpath [@viktor-c](https://github.com/viktor-c) ([#1350](https://github.com/paperless-ngx/paperless-ngx/pull/1350)) +- Docs: move scanner \& software recs to GH wiki [@shamoon](https://github.com/shamoon) ([#1482](https://github.com/paperless-ngx/paperless-ngx/pull/1482)) +- Docs: Update mobile scanner section [@tooomm](https://github.com/tooomm) ([#1467](https://github.com/paperless-ngx/paperless-ngx/pull/1467)) +- Adding date suggestions to the documents details view [@Eckii24](https://github.com/Eckii24) ([#1367](https://github.com/paperless-ngx/paperless-ngx/pull/1367)) +- docs: scanners: add Brother ads4700w [@ocelotsloth](https://github.com/ocelotsloth) ([#1450](https://github.com/paperless-ngx/paperless-ngx/pull/1450)) +- Feature: Adds storage paths to re-tagger command [@stumpylog](https://github.com/stumpylog) ([#1446](https://github.com/paperless-ngx/paperless-ngx/pull/1446)) +- Changes to Redis documentation [@Zerteax](https://github.com/Zerteax) ([#1441](https://github.com/paperless-ngx/paperless-ngx/pull/1441)) +- Update scanners.rst [@glassbox-sco](https://github.com/glassbox-sco) ([#1430](https://github.com/paperless-ngx/paperless-ngx/pull/1430)) +- Update scanners.rst [@derlucas](https://github.com/derlucas) ([#1415](https://github.com/paperless-ngx/paperless-ngx/pull/1415)) +- Bugfix: Allow webserver bind address to be configured [@stumpylog](https://github.com/stumpylog) ([#1358](https://github.com/paperless-ngx/paperless-ngx/pull/1358)) +- docs: fix small typo [@tooomm](https://github.com/tooomm) ([#1352](https://github.com/paperless-ngx/paperless-ngx/pull/1352)) +- [Documentation] Add v1.8.0 changelog [@github-actions](https://github.com/github-actions) ([#1298](https://github.com/paperless-ngx/paperless-ngx/pull/1298)) + +### Maintenance + +- [Beta] Paperless-ngx v1.9.0 Release Candidate [@stumpylog](https://github.com/stumpylog) ([#1560](https://github.com/paperless-ngx/paperless-ngx/pull/1560)) +- paperless_cmd.sh: use exec to run supervisord [@lemmi](https://github.com/lemmi) ([#1617](https://github.com/paperless-ngx/paperless-ngx/pull/1617)) +- Chore: Extended container image cleanup [@stumpylog](https://github.com/stumpylog) ([#1556](https://github.com/paperless-ngx/paperless-ngx/pull/1556)) +- Chore: Smaller library images [@stumpylog](https://github.com/stumpylog) ([#1546](https://github.com/paperless-ngx/paperless-ngx/pull/1546)) +- Bump tj-actions/changed-files from 24 to 29.0.2 [@dependabot](https://github.com/dependabot) ([#1493](https://github.com/paperless-ngx/paperless-ngx/pull/1493)) +- Bugfix: Better gunicorn settings for workers [@stumpylog](https://github.com/stumpylog) ([#1500](https://github.com/paperless-ngx/paperless-ngx/pull/1500)) +- [CI] Fix release drafter issues [@qcasey](https://github.com/qcasey) ([#1301](https://github.com/paperless-ngx/paperless-ngx/pull/1301)) +- Fix: dev backend testing [@stumpylog](https://github.com/stumpylog) ([#1420](https://github.com/paperless-ngx/paperless-ngx/pull/1420)) +- Chore: Exclude dependabot PRs from Project, set status to Needs Review [@qcasey](https://github.com/qcasey) ([#1397](https://github.com/paperless-ngx/paperless-ngx/pull/1397)) +- Chore: Add to label PRs based on and title [@qcasey](https://github.com/qcasey) ([#1396](https://github.com/paperless-ngx/paperless-ngx/pull/1396)) +- Chore: use pre-commit in the Ci workflow [@stumpylog](https://github.com/stumpylog) ([#1362](https://github.com/paperless-ngx/paperless-ngx/pull/1362)) +- Chore: Fixes permissions for image tag cleanup [@stumpylog](https://github.com/stumpylog) ([#1315](https://github.com/paperless-ngx/paperless-ngx/pull/1315)) +- Bump leonsteinhaeuser/project-beta-automations from 1.2.1 to 1.3.0 [@dependabot](https://github.com/dependabot) ([#1328](https://github.com/paperless-ngx/paperless-ngx/pull/1328)) +- Bump tj-actions/changed-files from 23.1 to 24 [@dependabot](https://github.com/dependabot) ([#1329](https://github.com/paperless-ngx/paperless-ngx/pull/1329)) +- Feature: Remove requirements.txt and use pipenv everywhere [@stumpylog](https://github.com/stumpylog) ([#1316](https://github.com/paperless-ngx/paperless-ngx/pull/1316)) + +### Dependencies + +
+34 changes + +- Bump pikepdf from 5.5.0 to 5.6.1 [@dependabot](https://github.com/dependabot) ([#1537](https://github.com/paperless-ngx/paperless-ngx/pull/1537)) +- Bump black from 22.6.0 to 22.8.0 [@dependabot](https://github.com/dependabot) ([#1539](https://github.com/paperless-ngx/paperless-ngx/pull/1539)) +- Bump tqdm from 4.64.0 to 4.64.1 [@dependabot](https://github.com/dependabot) ([#1540](https://github.com/paperless-ngx/paperless-ngx/pull/1540)) +- Bump pytest from 7.1.2 to 7.1.3 [@dependabot](https://github.com/dependabot) ([#1538](https://github.com/paperless-ngx/paperless-ngx/pull/1538)) +- Bump tj-actions/changed-files from 24 to 29.0.2 [@dependabot](https://github.com/dependabot) ([#1493](https://github.com/paperless-ngx/paperless-ngx/pull/1493)) +- Bump angular packages, jest-preset-angular in src-ui [@dependabot](https://github.com/dependabot) ([#1502](https://github.com/paperless-ngx/paperless-ngx/pull/1502)) +- Bump jest-environment-jsdom from 28.1.3 to 29.0.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#1507](https://github.com/paperless-ngx/paperless-ngx/pull/1507)) +- Bump [@types/node from 18.6.3 to 18.7.14 in /src-ui @dependabot](https://github.com/types/node from 18.6.3 to 18.7.14 in /src-ui @dependabot) ([#1506](https://github.com/paperless-ngx/paperless-ngx/pull/1506)) +- Bump [@angular-builders/jest from 14.0.0 to 14.0.1 in /src-ui @dependabot](https://github.com/angular-builders/jest from 14.0.0 to 14.0.1 in /src-ui @dependabot) ([#1505](https://github.com/paperless-ngx/paperless-ngx/pull/1505)) +- Bump zone.js from 0.11.7 to 0.11.8 in /src-ui [@dependabot](https://github.com/dependabot) ([#1504](https://github.com/paperless-ngx/paperless-ngx/pull/1504)) +- Bump ngx-color from 8.0.1 to 8.0.2 in /src-ui [@dependabot](https://github.com/dependabot) ([#1494](https://github.com/paperless-ngx/paperless-ngx/pull/1494)) +- Bump cypress from 10.3.1 to 10.7.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1496](https://github.com/paperless-ngx/paperless-ngx/pull/1496)) +- Bump [@cypress/schematic from 2.0.0 to 2.1.1 in /src-ui @dependabot](https://github.com/cypress/schematic from 2.0.0 to 2.1.1 in /src-ui @dependabot) ([#1495](https://github.com/paperless-ngx/paperless-ngx/pull/1495)) +- Bump [@popperjs/core from 2.11.5 to 2.11.6 in /src-ui @dependabot](https://github.com/popperjs/core from 2.11.5 to 2.11.6 in /src-ui @dependabot) ([#1498](https://github.com/paperless-ngx/paperless-ngx/pull/1498)) +- Bump sphinx from 5.0.2 to 5.1.1 [@dependabot](https://github.com/dependabot) ([#1297](https://github.com/paperless-ngx/paperless-ngx/pull/1297)) +- Chore: Bump Python dependencies [@stumpylog](https://github.com/stumpylog) ([#1445](https://github.com/paperless-ngx/paperless-ngx/pull/1445)) +- Chore: Update Python deps [@stumpylog](https://github.com/stumpylog) ([#1391](https://github.com/paperless-ngx/paperless-ngx/pull/1391)) +- Bump watchfiles from 0.15.0 to 0.16.1 [@dependabot](https://github.com/dependabot) ([#1285](https://github.com/paperless-ngx/paperless-ngx/pull/1285)) +- Bump leonsteinhaeuser/project-beta-automations from 1.2.1 to 1.3.0 [@dependabot](https://github.com/dependabot) ([#1328](https://github.com/paperless-ngx/paperless-ngx/pull/1328)) +- Bump tj-actions/changed-files from 23.1 to 24 [@dependabot](https://github.com/dependabot) ([#1329](https://github.com/paperless-ngx/paperless-ngx/pull/1329)) +- Bump cypress from 10.3.0 to 10.3.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#1342](https://github.com/paperless-ngx/paperless-ngx/pull/1342)) +- Bump ngx-color from 7.3.3 to 8.0.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#1343](https://github.com/paperless-ngx/paperless-ngx/pull/1343)) +- Bump [@angular/cli from 14.0.4 to 14.1.0 in /src-ui @dependabot](https://github.com/angular/cli from 14.0.4 to 14.1.0 in /src-ui @dependabot) ([#1330](https://github.com/paperless-ngx/paperless-ngx/pull/1330)) +- Bump [@types/node from 18.0.0 to 18.6.3 in /src-ui @dependabot](https://github.com/types/node from 18.0.0 to 18.6.3 in /src-ui @dependabot) ([#1341](https://github.com/paperless-ngx/paperless-ngx/pull/1341)) +- Bump jest-preset-angular from 12.1.0 to 12.2.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1340](https://github.com/paperless-ngx/paperless-ngx/pull/1340)) +- Bump concurrently from 7.2.2 to 7.3.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1326](https://github.com/paperless-ngx/paperless-ngx/pull/1326)) +- Bump ng2-pdf-viewer from 9.0.0 to 9.1.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1337](https://github.com/paperless-ngx/paperless-ngx/pull/1337)) +- Bump jest-environment-jsdom from 28.1.2 to 28.1.3 in /src-ui [@dependabot](https://github.com/dependabot) ([#1336](https://github.com/paperless-ngx/paperless-ngx/pull/1336)) +- Bump ngx-file-drop from 13.0.0 to 14.0.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#1331](https://github.com/paperless-ngx/paperless-ngx/pull/1331)) +- Bump jest and [@types/jest in /src-ui @dependabot](https://github.com/types/jest in /src-ui @dependabot) ([#1333](https://github.com/paperless-ngx/paperless-ngx/pull/1333)) +- Bump bootstrap from 5.1.3 to 5.2.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1327](https://github.com/paperless-ngx/paperless-ngx/pull/1327)) +- Bump typescript from 4.6.4 to 4.7.4 in /src-ui [@dependabot](https://github.com/dependabot) ([#1324](https://github.com/paperless-ngx/paperless-ngx/pull/1324)) +- Bump ts-node from 10.8.1 to 10.9.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#1325](https://github.com/paperless-ngx/paperless-ngx/pull/1325)) +- Bump rxjs from 7.5.5 to 7.5.6 in /src-ui [@dependabot](https://github.com/dependabot) ([#1323](https://github.com/paperless-ngx/paperless-ngx/pull/1323)) +
+ +### All App Changes + +- [Beta] Paperless-ngx v1.9.0 Release Candidate [@stumpylog](https://github.com/stumpylog) ([#1560](https://github.com/paperless-ngx/paperless-ngx/pull/1560)) +- Feature: Faster, less memory barcode handling [@stumpylog](https://github.com/stumpylog) ([#1594](https://github.com/paperless-ngx/paperless-ngx/pull/1594)) +- Fix: Consume directory permissions were not updated [@stumpylog](https://github.com/stumpylog) ([#1605](https://github.com/paperless-ngx/paperless-ngx/pull/1605)) +- Fix: Double barcode separation creates empty file [@stumpylog](https://github.com/stumpylog) ([#1596](https://github.com/paperless-ngx/paperless-ngx/pull/1596)) +- Fix: Parsing Tika documents fails with AttributeError [@stumpylog](https://github.com/stumpylog) ([#1591](https://github.com/paperless-ngx/paperless-ngx/pull/1591)) +- Fix: Resolve issue with slow classifier [@stumpylog](https://github.com/stumpylog) ([#1576](https://github.com/paperless-ngx/paperless-ngx/pull/1576)) +- Feature: Display django-q process names [@stumpylog](https://github.com/stumpylog) ([#1567](https://github.com/paperless-ngx/paperless-ngx/pull/1567)) +- Fix document comments not updating on document navigation [@shamoon](https://github.com/shamoon) ([#1566](https://github.com/paperless-ngx/paperless-ngx/pull/1566)) +- Feature: Add MariaDB support [@bckelly1](https://github.com/bckelly1) ([#543](https://github.com/paperless-ngx/paperless-ngx/pull/543)) +- Fix: Include storage paths in document exporter [@shamoon](https://github.com/shamoon) ([#1557](https://github.com/paperless-ngx/paperless-ngx/pull/1557)) +- Chore: Cleanup and validate settings [@stumpylog](https://github.com/stumpylog) ([#1551](https://github.com/paperless-ngx/paperless-ngx/pull/1551)) +- Bump pikepdf from 5.5.0 to 5.6.1 [@dependabot](https://github.com/dependabot) ([#1537](https://github.com/paperless-ngx/paperless-ngx/pull/1537)) +- Bump black from 22.6.0 to 22.8.0 [@dependabot](https://github.com/dependabot) ([#1539](https://github.com/paperless-ngx/paperless-ngx/pull/1539)) +- Bump tqdm from 4.64.0 to 4.64.1 [@dependabot](https://github.com/dependabot) ([#1540](https://github.com/paperless-ngx/paperless-ngx/pull/1540)) +- Bump pytest from 7.1.2 to 7.1.3 [@dependabot](https://github.com/dependabot) ([#1538](https://github.com/paperless-ngx/paperless-ngx/pull/1538)) +- Bump angular packages, jest-preset-angular in src-ui [@dependabot](https://github.com/dependabot) ([#1502](https://github.com/paperless-ngx/paperless-ngx/pull/1502)) +- Bump jest-environment-jsdom from 28.1.3 to 29.0.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#1507](https://github.com/paperless-ngx/paperless-ngx/pull/1507)) +- Bump [@types/node from 18.6.3 to 18.7.14 in /src-ui @dependabot](https://github.com/types/node from 18.6.3 to 18.7.14 in /src-ui @dependabot) ([#1506](https://github.com/paperless-ngx/paperless-ngx/pull/1506)) +- Bump [@angular-builders/jest from 14.0.0 to 14.0.1 in /src-ui @dependabot](https://github.com/angular-builders/jest from 14.0.0 to 14.0.1 in /src-ui @dependabot) ([#1505](https://github.com/paperless-ngx/paperless-ngx/pull/1505)) +- Bump zone.js from 0.11.7 to 0.11.8 in /src-ui [@dependabot](https://github.com/dependabot) ([#1504](https://github.com/paperless-ngx/paperless-ngx/pull/1504)) +- Bump ngx-color from 8.0.1 to 8.0.2 in /src-ui [@dependabot](https://github.com/dependabot) ([#1494](https://github.com/paperless-ngx/paperless-ngx/pull/1494)) +- Bump cypress from 10.3.1 to 10.7.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1496](https://github.com/paperless-ngx/paperless-ngx/pull/1496)) +- Bump [@cypress/schematic from 2.0.0 to 2.1.1 in /src-ui @dependabot](https://github.com/cypress/schematic from 2.0.0 to 2.1.1 in /src-ui @dependabot) ([#1495](https://github.com/paperless-ngx/paperless-ngx/pull/1495)) +- Bump [@popperjs/core from 2.11.5 to 2.11.6 in /src-ui @dependabot](https://github.com/popperjs/core from 2.11.5 to 2.11.6 in /src-ui @dependabot) ([#1498](https://github.com/paperless-ngx/paperless-ngx/pull/1498)) +- Feature: Simplify IMAP login for UTF-8 [@stumpylog](https://github.com/stumpylog) ([#1492](https://github.com/paperless-ngx/paperless-ngx/pull/1492)) +- Fix actions button in tasks table [@shamoon](https://github.com/shamoon) ([#1488](https://github.com/paperless-ngx/paperless-ngx/pull/1488)) +- Fix: Add missing filter rule types to SavedViewFilterRule model \& fix migrations [@shamoon](https://github.com/shamoon) ([#1463](https://github.com/paperless-ngx/paperless-ngx/pull/1463)) +- Feature: Even better re-do of OCR [@stumpylog](https://github.com/stumpylog) ([#1451](https://github.com/paperless-ngx/paperless-ngx/pull/1451)) +- Feature: document comments [@tim-vogel](https://github.com/tim-vogel) ([#1375](https://github.com/paperless-ngx/paperless-ngx/pull/1375)) +- Adding date suggestions to the documents details view [@Eckii24](https://github.com/Eckii24) ([#1367](https://github.com/paperless-ngx/paperless-ngx/pull/1367)) +- Bump sphinx from 5.0.2 to 5.1.1 [@dependabot](https://github.com/dependabot) ([#1297](https://github.com/paperless-ngx/paperless-ngx/pull/1297)) +- Feature: Event driven consumer [@stumpylog](https://github.com/stumpylog) ([#1421](https://github.com/paperless-ngx/paperless-ngx/pull/1421)) +- Bugfix: Fixes the creation of an archive file, even if noarchive was specified [@stumpylog](https://github.com/stumpylog) ([#1442](https://github.com/paperless-ngx/paperless-ngx/pull/1442)) +- Feature: Adds storage paths to re-tagger command [@stumpylog](https://github.com/stumpylog) ([#1446](https://github.com/paperless-ngx/paperless-ngx/pull/1446)) +- Feature: Preserve original filename in metadata [@GwynHannay](https://github.com/GwynHannay) ([#1440](https://github.com/paperless-ngx/paperless-ngx/pull/1440)) +- Handle tags for gmail email accounts [@sisao](https://github.com/sisao) ([#1433](https://github.com/paperless-ngx/paperless-ngx/pull/1433)) +- Fix: should not be required [@shamoon](https://github.com/shamoon) ([#1412](https://github.com/paperless-ngx/paperless-ngx/pull/1412)) +- Bugfix: Catch all exceptions during the task signals [@stumpylog](https://github.com/stumpylog) ([#1387](https://github.com/paperless-ngx/paperless-ngx/pull/1387)) +- Fix: saved view page parameter [@shamoon](https://github.com/shamoon) ([#1376](https://github.com/paperless-ngx/paperless-ngx/pull/1376)) +- Fix: Correct browser unsaved changes warning [@shamoon](https://github.com/shamoon) ([#1369](https://github.com/paperless-ngx/paperless-ngx/pull/1369)) +- Fix: correct date pasting with other formats [@shamoon](https://github.com/shamoon) ([#1370](https://github.com/paperless-ngx/paperless-ngx/pull/1370)) +- Chore: use pre-commit in the Ci workflow [@stumpylog](https://github.com/stumpylog) ([#1362](https://github.com/paperless-ngx/paperless-ngx/pull/1362)) +- Bugfix: Chain exceptions during exception handling [@stumpylog](https://github.com/stumpylog) ([#1354](https://github.com/paperless-ngx/paperless-ngx/pull/1354)) +- Bump watchfiles from 0.15.0 to 0.16.1 [@dependabot](https://github.com/dependabot) ([#1285](https://github.com/paperless-ngx/paperless-ngx/pull/1285)) +- Bump cypress from 10.3.0 to 10.3.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#1342](https://github.com/paperless-ngx/paperless-ngx/pull/1342)) +- Bump ngx-color from 7.3.3 to 8.0.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#1343](https://github.com/paperless-ngx/paperless-ngx/pull/1343)) +- Bump [@angular/cli from 14.0.4 to 14.1.0 in /src-ui @dependabot](https://github.com/angular/cli from 14.0.4 to 14.1.0 in /src-ui @dependabot) ([#1330](https://github.com/paperless-ngx/paperless-ngx/pull/1330)) +- Bump [@types/node from 18.0.0 to 18.6.3 in /src-ui @dependabot](https://github.com/types/node from 18.0.0 to 18.6.3 in /src-ui @dependabot) ([#1341](https://github.com/paperless-ngx/paperless-ngx/pull/1341)) +- Bump jest-preset-angular from 12.1.0 to 12.2.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1340](https://github.com/paperless-ngx/paperless-ngx/pull/1340)) +- Bump concurrently from 7.2.2 to 7.3.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1326](https://github.com/paperless-ngx/paperless-ngx/pull/1326)) +- Bump ng2-pdf-viewer from 9.0.0 to 9.1.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1337](https://github.com/paperless-ngx/paperless-ngx/pull/1337)) +- Bump jest-environment-jsdom from 28.1.2 to 28.1.3 in /src-ui [@dependabot](https://github.com/dependabot) ([#1336](https://github.com/paperless-ngx/paperless-ngx/pull/1336)) +- Bump ngx-file-drop from 13.0.0 to 14.0.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#1331](https://github.com/paperless-ngx/paperless-ngx/pull/1331)) +- Bump jest and [@types/jest in /src-ui @dependabot](https://github.com/types/jest in /src-ui @dependabot) ([#1333](https://github.com/paperless-ngx/paperless-ngx/pull/1333)) +- Bump bootstrap from 5.1.3 to 5.2.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1327](https://github.com/paperless-ngx/paperless-ngx/pull/1327)) +- Bump typescript from 4.6.4 to 4.7.4 in /src-ui [@dependabot](https://github.com/dependabot) ([#1324](https://github.com/paperless-ngx/paperless-ngx/pull/1324)) +- Bump ts-node from 10.8.1 to 10.9.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#1325](https://github.com/paperless-ngx/paperless-ngx/pull/1325)) +- Bump rxjs from 7.5.5 to 7.5.6 in /src-ui [@dependabot](https://github.com/dependabot) ([#1323](https://github.com/paperless-ngx/paperless-ngx/pull/1323)) +- Fix: missing tooltip translation \& filter editor wrapping [@shamoon](https://github.com/shamoon) ([#1305](https://github.com/paperless-ngx/paperless-ngx/pull/1305)) +- Feature: Remove requirements.txt and use pipenv everywhere [@stumpylog](https://github.com/stumpylog) ([#1316](https://github.com/paperless-ngx/paperless-ngx/pull/1316)) +- Bugfix: Interaction between barcode and directories as tags [@stumpylog](https://github.com/stumpylog) ([#1303](https://github.com/paperless-ngx/paperless-ngx/pull/1303)) + ## paperless-ngx 1.8.0 ### Features diff --git a/docs/requirements.txt b/docs/requirements.txt index ac4588f3f..d911401cb 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1 +1 @@ -myst-parser==0.17.2 +myst-parser==0.18.1 diff --git a/src-ui/package-lock.json b/src-ui/package-lock.json index 2d4a6d5f7..7e9e0061c 100644 --- a/src-ui/package-lock.json +++ b/src-ui/package-lock.json @@ -8,49 +8,49 @@ "name": "paperless-ui", "version": "0.0.0", "dependencies": { - "@angular/common": "~14.2.0", - "@angular/compiler": "~14.2.0", - "@angular/core": "~14.2.0", - "@angular/forms": "~14.2.0", - "@angular/localize": "~14.2.0", - "@angular/platform-browser": "~14.2.0", - "@angular/platform-browser-dynamic": "~14.2.0", - "@angular/router": "~14.2.0", + "@angular/common": "~14.2.4", + "@angular/compiler": "~14.2.4", + "@angular/core": "~14.2.4", + "@angular/forms": "~14.2.4", + "@angular/localize": "~14.2.4", + "@angular/platform-browser": "~14.2.4", + "@angular/platform-browser-dynamic": "~14.2.4", + "@angular/router": "~14.2.4", "@ng-bootstrap/ng-bootstrap": "^13.0.0", "@ng-select/ng-select": "^9.0.2", "@ngneat/dirty-check-forms": "^3.0.2", "@popperjs/core": "^2.11.6", - "bootstrap": "^5.2.0", + "bootstrap": "^5.2.1", "file-saver": "^2.0.5", - "ng2-pdf-viewer": "^9.1.0", - "ngx-color": "^8.0.2", + "ng2-pdf-viewer": "^9.1.2", + "ngx-color": "^8.0.3", "ngx-cookie-service": "^14.0.1", "ngx-file-drop": "^14.0.1", - "rxjs": "~7.5.6", + "rxjs": "~7.5.7", "tslib": "^2.3.1", - "uuid": "^8.3.1", + "uuid": "^9.0.0", "zone.js": "~0.11.8" }, "devDependencies": { "@angular-builders/jest": "14.0.1", - "@angular-devkit/build-angular": "~14.2.1", - "@angular/cli": "~14.2.1", - "@angular/compiler-cli": "~14.2.0", + "@angular-devkit/build-angular": "~14.2.4", + "@angular/cli": "~14.2.4", + "@angular/compiler-cli": "~14.2.4", "@types/jest": "28.1.6", - "@types/node": "^18.7.14", + "@types/node": "^18.7.23", "codelyzer": "^6.0.2", - "concurrently": "7.3.0", + "concurrently": "7.4.0", "jest": "28.1.3", - "jest-environment-jsdom": "^29.0.1", + "jest-environment-jsdom": "^29.1.2", "jest-preset-angular": "^12.2.2", "ts-node": "~10.9.1", "tslint": "~6.1.3", - "typescript": "~4.7.4", + "typescript": "~4.8.4", "wait-on": "~6.0.1" }, "optionalDependencies": { "@cypress/schematic": "^2.1.1", - "cypress": "~10.7.0" + "cypress": "~10.9.0" } }, "node_modules/@adobe/css-tools": { @@ -260,12 +260,12 @@ } }, "node_modules/@angular-devkit/architect": { - "version": "0.1402.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1402.1.tgz", - "integrity": "sha512-OZ5mkVHSrk5WX6wIfvkxJUCqJRtfQh1S476qHIi80llhJufFTwoOwJrcz7XtNRvbZMLRMztf0aIhEDaUtEBRZQ==", + "version": "0.1402.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1402.4.tgz", + "integrity": "sha512-lOgyKJ+KjBYWzgcxJ3vAy3RFkqRmSw3RY4thNsWOHLvzT8o33u3USDuOr6cDAQW12NjX9K7JDuvNlPbadjQbSQ==", "devOptional": true, "dependencies": { - "@angular-devkit/core": "14.2.1", + "@angular-devkit/core": "14.2.4", "rxjs": "6.6.7" }, "engines": { @@ -293,15 +293,15 @@ "devOptional": true }, "node_modules/@angular-devkit/build-angular": { - "version": "14.2.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-14.2.1.tgz", - "integrity": "sha512-6FeIe2nsNH/fslZmTfbo+RCjLk3HuCQa5rb/SFf3w0mwzWCrhV0/SqnQ4+YYgkKrohmTX+q5JmJPwWnkqgdIgQ==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-14.2.4.tgz", + "integrity": "sha512-VvwLmb5fiorcLO6Fko3GIeNDWsdoZxviHcHjq2IGkgTNMlvWwZhuSZ8kOhNIXUKFCZYpj7FiUm/ft8v0ilxFBg==", "dev": true, "dependencies": { "@ampproject/remapping": "2.2.0", - "@angular-devkit/architect": "0.1402.1", - "@angular-devkit/build-webpack": "0.1402.1", - "@angular-devkit/core": "14.2.1", + "@angular-devkit/architect": "0.1402.4", + "@angular-devkit/build-webpack": "0.1402.4", + "@angular-devkit/core": "14.2.4", "@babel/core": "7.18.10", "@babel/generator": "7.18.12", "@babel/helper-annotate-as-pure": "7.18.6", @@ -312,7 +312,7 @@ "@babel/runtime": "7.18.9", "@babel/template": "7.18.10", "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "14.2.1", + "@ngtools/webpack": "14.2.4", "ansi-colors": "4.1.3", "babel-loader": "8.2.5", "babel-plugin-istanbul": "6.1.1", @@ -338,7 +338,7 @@ "parse5-html-rewriting-stream": "6.0.1", "piscina": "3.2.0", "postcss": "8.4.16", - "postcss-import": "14.1.0", + "postcss-import": "15.0.0", "postcss-loader": "7.0.1", "postcss-preset-env": "7.8.0", "regenerator-runtime": "0.13.9", @@ -357,7 +357,7 @@ "tslib": "2.4.0", "webpack": "5.74.0", "webpack-dev-middleware": "5.3.3", - "webpack-dev-server": "4.10.0", + "webpack-dev-server": "4.11.0", "webpack-merge": "5.8.0", "webpack-subresource-integrity": "5.1.0" }, @@ -419,12 +419,12 @@ "dev": true }, "node_modules/@angular-devkit/build-webpack": { - "version": "0.1402.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1402.1.tgz", - "integrity": "sha512-S9WvNKrHVgOWNqGCytJNPBEMojB9j6cgl5XlUMEQ+4NV5geOlDNiZltQ/gbC1jz19OU5N+Ky374mPI5IeIBqZg==", + "version": "0.1402.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1402.4.tgz", + "integrity": "sha512-hj80twvKlscktH3bILS4+iQckTQzUWO/hTrG0auvJIXHWOmfJDQTDEyIgoMUzhnibh/8xwf96cFAsFZc2d5kFA==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1402.1", + "@angular-devkit/architect": "0.1402.4", "rxjs": "6.6.7" }, "engines": { @@ -456,9 +456,9 @@ "dev": true }, "node_modules/@angular-devkit/core": { - "version": "14.2.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.1.tgz", - "integrity": "sha512-lW8oNGuJqr4r31FWBjfWQYkSXdiOHBGOThIEtHvUVBKfPF/oVrupLueCUgBPel+NvxENXdo93uPsqHN7bZbmsQ==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.4.tgz", + "integrity": "sha512-NsvN1U42goBcibVR75vDp2NOFeSU+Wcekwf1r3Jbyz6a2l9Unf0v9BOWLXdigFY8xztbrOHJPSIbC+2rkvOUnw==", "devOptional": true, "dependencies": { "ajv": "8.11.0", @@ -500,12 +500,12 @@ "devOptional": true }, "node_modules/@angular-devkit/schematics": { - "version": "14.2.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.2.1.tgz", - "integrity": "sha512-0U18FwDYt4zROBPrvewH6iBTkf2ozVHN4/gxUb9jWrqVw8mPU5AWc/iYxQLHBSinkr2Egjo1H/i9aBqgJSeh3g==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.2.4.tgz", + "integrity": "sha512-Pm2C7HBNslQavsqXh6/rcyAavmgzTxU3x7NoWwSBH+fIplLJjEFzHdnW9JJp59A2ONfqO0wND3yWKtjIoDAUqw==", "devOptional": true, "dependencies": { - "@angular-devkit/core": "14.2.1", + "@angular-devkit/core": "14.2.4", "jsonc-parser": "3.1.0", "magic-string": "0.26.2", "ora": "5.4.1", @@ -536,15 +536,15 @@ "devOptional": true }, "node_modules/@angular/cli": { - "version": "14.2.1", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-14.2.1.tgz", - "integrity": "sha512-ab/kpK3wYQvDOdhwfk3cVSiLMyl9lEVrNiwvrTnPLdt3jwqkT5Gm28WFShnOuNCaKea3iHP7LIItoRxeIWQQ9A==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-14.2.4.tgz", + "integrity": "sha512-3YqwjPYlLzqQB0y6A7c3l9X1e0z418NjSQQD2e12N8y68V8nkTK4UcsDVpqb/7ce+xnQ7xGz2wb6DJddU4Wogw==", "devOptional": true, "dependencies": { - "@angular-devkit/architect": "0.1402.1", - "@angular-devkit/core": "14.2.1", - "@angular-devkit/schematics": "14.2.1", - "@schematics/angular": "14.2.1", + "@angular-devkit/architect": "0.1402.4", + "@angular-devkit/core": "14.2.4", + "@angular-devkit/schematics": "14.2.4", + "@schematics/angular": "14.2.4", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.3", "debug": "4.3.4", @@ -571,10 +571,19 @@ "yarn": ">= 1.13.0" } }, + "node_modules/@angular/cli/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "devOptional": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/@angular/common": { - "version": "14.2.0", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-14.2.0.tgz", - "integrity": "sha512-dXCGuM/Yh9B8OVVHHfPuXLYdu0olemKmuYLZXGoqyzeYU5OpQ6+qcHYTrlREkWpF9QY+pk2ewfM9Hke1UENEHA==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-14.2.4.tgz", + "integrity": "sha512-nzmRUhdyKomgsf1vUdx7KOXS7OXkvdpF/1CSagqsIGYVLbL8cGZ6ROrdEuxkSsE9GUt/OAIkC4How4/LLPut1A==", "dependencies": { "tslib": "^2.3.0" }, @@ -582,14 +591,14 @@ "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/core": "14.2.0", + "@angular/core": "14.2.4", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "14.2.0", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-14.2.0.tgz", - "integrity": "sha512-csnvopy5a6ctdT7sHgwgn3wRni+UIk2zvs7WYsx+gtLTdH7SPg78CN0XZR/KQ142qLtuMnmkVON3D3ejmqC9xg==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-14.2.4.tgz", + "integrity": "sha512-fBvTPPWBYA65bAmrqKcnzUHAhZ/tfs+nG+IeDukn4TeyQplVjDYOlqjf84jYQubSIx8WTicZzRFn0dIGsPaSNw==", "dependencies": { "tslib": "^2.3.0" }, @@ -597,7 +606,7 @@ "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/core": "14.2.0" + "@angular/core": "14.2.4" }, "peerDependenciesMeta": { "@angular/core": { @@ -606,9 +615,9 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "14.2.0", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-14.2.0.tgz", - "integrity": "sha512-cMjMVmAitY4GIn45pIqzhy4GKWfVAJSktCtuAebaAYC6Nqo9LbvqF2dnHK0MHoqjAf98e5zmz9WeBOQ7YlRZFQ==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-14.2.4.tgz", + "integrity": "sha512-8kHA/Ujzr5aXic7T3iEJiu0JMfXRs/uDoi8W8dYWFe+0naGhxwWmHBHc/hhS1tpv9/wW2WOcT51RDa4OYHKDKw==", "dependencies": { "@babel/core": "^7.17.2", "chokidar": "^3.0.0", @@ -630,14 +639,14 @@ "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/compiler": "14.2.0", + "@angular/compiler": "14.2.4", "typescript": ">=4.6.2 <4.9" } }, "node_modules/@angular/core": { - "version": "14.2.0", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-14.2.0.tgz", - "integrity": "sha512-m00WZL+df90QjrNmA43W8oSP1hyePoEXgw36JcFLQ+2ISO1HvqoeuKXIccyIQKpCuQ9VLNv5ptlTio6pjmcCqg==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-14.2.4.tgz", + "integrity": "sha512-wB19wKmZE+X07mLbxYyqeg3v1JXy8m0+ShZD2oY3dmgk1mXOf5XVQxRZohGTrbPw83EdSWwx3vz+jjylGunVZQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -650,9 +659,9 @@ } }, "node_modules/@angular/forms": { - "version": "14.2.0", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-14.2.0.tgz", - "integrity": "sha512-KVAd4ITEUnP/MLNTDbTWEMoYIZgKawvoaNu4nBP0DAcZsADmB5a6IPYcg6GrgJ+teN0SnpiCxKvq1hRITj3d7g==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-14.2.4.tgz", + "integrity": "sha512-m1asD8SazzMPzcli054zwLYz7hiXiaCXfqmQOFdQQd3OnPNKeCGDS8GFX7Yd/+3fz4REGeSon9YRhq7/W0TDlA==", "dependencies": { "tslib": "^2.3.0" }, @@ -660,16 +669,16 @@ "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/common": "14.2.0", - "@angular/core": "14.2.0", - "@angular/platform-browser": "14.2.0", + "@angular/common": "14.2.4", + "@angular/core": "14.2.4", + "@angular/platform-browser": "14.2.4", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/localize": { - "version": "14.2.0", - "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-14.2.0.tgz", - "integrity": "sha512-sV+4itOllkgYkHMMtfYGsOvO+nuFMBlk6RKFVqWZcFO+XgOC4E9bXhRbkpGZ0JcIr42tlB63krjopnYfN9u+7A==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-14.2.4.tgz", + "integrity": "sha512-35BKWV5y5aGGbnLIY9xcPs4i8KGqYBidPtqlU1tg585y0szzFBuHdF4jNrAYTwjGk7fnxYYLZQygM/GtxFwLUA==", "dependencies": { "@babel/core": "7.18.9", "glob": "8.0.3", @@ -684,8 +693,8 @@ "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/compiler": "14.2.0", - "@angular/compiler-cli": "14.2.0" + "@angular/compiler": "14.2.4", + "@angular/compiler-cli": "14.2.4" } }, "node_modules/@angular/localize/node_modules/@babel/core": { @@ -752,9 +761,9 @@ } }, "node_modules/@angular/platform-browser": { - "version": "14.2.0", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-14.2.0.tgz", - "integrity": "sha512-zYWB9FtZQZEhPV2PuzaoXWChWS+7o4SP+0sF8hLddGNOezf1FsKKrqDhyYtQYgZ2qQPsS+uDFfkVry5dppALUQ==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-14.2.4.tgz", + "integrity": "sha512-/NAQXYLgyeb2L15EsaKgGEn50GH/O3t1FOjBvVZg6L423X0H6dIOL4bxbLcKAj9+bUDtdUzDiDoYyt6YEidH+g==", "dependencies": { "tslib": "^2.3.0" }, @@ -762,9 +771,9 @@ "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/animations": "14.2.0", - "@angular/common": "14.2.0", - "@angular/core": "14.2.0" + "@angular/animations": "14.2.4", + "@angular/common": "14.2.4", + "@angular/core": "14.2.4" }, "peerDependenciesMeta": { "@angular/animations": { @@ -773,9 +782,9 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "14.2.0", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-14.2.0.tgz", - "integrity": "sha512-CRSWbJiohfz4KBU4ts2kq2B2lATApMeG6uuxgXwNJAEUkn63EYbrFVY9JTaApyZ7X+3dUDZZtcsfNmQruK2UxQ==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-14.2.4.tgz", + "integrity": "sha512-6jEVKzIqT9lipq4xZftBskHKl3jrL1pQbK8diirJH0mNeuj0wvE+fqfKtVVl898OI/iJ3aAKyQf5YmOe1k8PAw==", "dependencies": { "tslib": "^2.3.0" }, @@ -783,16 +792,16 @@ "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/common": "14.2.0", - "@angular/compiler": "14.2.0", - "@angular/core": "14.2.0", - "@angular/platform-browser": "14.2.0" + "@angular/common": "14.2.4", + "@angular/compiler": "14.2.4", + "@angular/core": "14.2.4", + "@angular/platform-browser": "14.2.4" } }, "node_modules/@angular/router": { - "version": "14.2.0", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-14.2.0.tgz", - "integrity": "sha512-SvtmSlRCIWeLhbXYh09W7luPKTtpZL16PB4DbT3VVfZlt2PfMys/tAmOCvChNxjkOgV7yEGaqklWw/1wKxeRlg==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-14.2.4.tgz", + "integrity": "sha512-zjsiy/1zrZfZnfIbo2vVgZ+UhCo3okabVr43eIvJhBwcNKzM8Zv17oN9FFlWvSzKKkbsoNIgJkTI85L1YsKtjg==", "dependencies": { "tslib": "^2.3.0" }, @@ -800,9 +809,9 @@ "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/common": "14.2.0", - "@angular/core": "14.2.0", - "@angular/platform-browser": "14.2.0", + "@angular/common": "14.2.4", + "@angular/core": "14.2.4", + "@angular/platform-browser": "14.2.4", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -2858,6 +2867,15 @@ "node": ">= 6" } }, + "node_modules/@cypress/request/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "optional": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/@cypress/schematic": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/@cypress/schematic/-/schematic-2.1.1.tgz", @@ -3820,9 +3838,9 @@ } }, "node_modules/@ngtools/webpack": { - "version": "14.2.1", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-14.2.1.tgz", - "integrity": "sha512-9tsfx2ZQscnpszVkdoJIIxZZDwitgmbPNrsQmyfHhwqPeJ8UUnAk6RNTfHjtX31VCmIM+qdGJsX7vDR9ye3/uA==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-14.2.4.tgz", + "integrity": "sha512-rmoUTz3FNhQctsmsq1HM7OfoT+pJiI2dhK0u6SqKXkP3OJ+dGW7NHQ5jYR7IATa7wLFe0vDiEr8caxZ5JBAEsQ==", "dev": true, "engines": { "node": "^14.15.0 || >=16.10.0", @@ -3979,13 +3997,13 @@ } }, "node_modules/@schematics/angular": { - "version": "14.2.1", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-14.2.1.tgz", - "integrity": "sha512-Dchixep/FMETAMuyFchw9Nryi7tfuZQRumzIOtQpv+KaVtfjvcIlES0KuI0U3Qh7tGIYPBmO3Mkt3oojcl2RBA==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-14.2.4.tgz", + "integrity": "sha512-9n7HyxZvoSR+Ynyvr8oEQ3zy5trSjCQMTF+fZSTCzCBEVHKGxqMyisI6KO4qcGeIQYGXWeBYrMsy9jMQFgK8dQ==", "devOptional": true, "dependencies": { - "@angular-devkit/core": "14.2.1", - "@angular-devkit/schematics": "14.2.1", + "@angular-devkit/core": "14.2.4", + "@angular-devkit/schematics": "14.2.4", "jsonc-parser": "3.1.0" }, "engines": { @@ -4178,9 +4196,9 @@ "dev": true }, "node_modules/@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "version": "4.17.14", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", + "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", "dev": true, "dependencies": { "@types/body-parser": "*", @@ -4190,9 +4208,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.30", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.30.tgz", - "integrity": "sha512-gstzbTWro2/nFed1WXtf+TtrpwxH7Ggs4RLYTLbeVgIkUQOI3WG/JKjgeOU1zXDvezllupjrf8OPIdvTbIaVOQ==", + "version": "4.17.31", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", + "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", "dev": true, "dependencies": { "@types/node": "*", @@ -4300,9 +4318,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.7.14", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.14.tgz", - "integrity": "sha512-6bbDaETVi8oyIARulOE9qF1/Qdi/23z6emrUh0fNJRUmjznqrixD4MpGDdgOFk5Xb0m2H6Xu42JGdvAxaJR/wA==", + "version": "18.7.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.23.tgz", + "integrity": "sha512-DWNcCHolDq0ZKGizjx2DZjR/PqsYwAcYUJmfMWqtVU2MBMG5Mo+xFZrhGId5r/O5HOuMPyQEcM6KUBp5lBZZBg==", "devOptional": true }, "node_modules/@types/parse-json": { @@ -5481,9 +5499,9 @@ "dev": true }, "node_modules/bootstrap": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.2.0.tgz", - "integrity": "sha512-qlnS9GL6YZE6Wnef46GxGv1UpGGzAwO0aPL1yOjzDIJpeApeMvqV24iL+pjr2kU4dduoBA9fINKWKgMToobx9A==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.2.1.tgz", + "integrity": "sha512-UQi3v2NpVPEi1n35dmRRzBJFlgvWHYwyem6yHhuT6afYF+sziEt46McRbT//kVXZ7b1YUYEVGdXEH74Nx3xzGA==", "funding": [ { "type": "github", @@ -5495,7 +5513,7 @@ } ], "peerDependencies": { - "@popperjs/core": "^2.11.5" + "@popperjs/core": "^2.11.6" } }, "node_modules/brace-expansion": { @@ -6135,13 +6153,13 @@ "devOptional": true }, "node_modules/concurrently": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-7.3.0.tgz", - "integrity": "sha512-IiDwm+8DOcFEInca494A8V402tNTQlJaYq78RF2rijOrKEk/AOHTxhN4U1cp7GYKYX5Q6Ymh1dLTBlzIMN0ikA==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-7.4.0.tgz", + "integrity": "sha512-M6AfrueDt/GEna/Vg9BqQ+93yuvzkSKmoTixnwEJkH0LlcGrRC2eCmjeG1tLLHIYfpYJABokqSGyMcXjm96AFA==", "dev": true, "dependencies": { "chalk": "^4.1.0", - "date-fns": "^2.16.1", + "date-fns": "^2.29.1", "lodash": "^4.17.21", "rxjs": "^7.0.0", "shell-quote": "^1.7.3", @@ -6151,10 +6169,14 @@ "yargs": "^17.3.1" }, "bin": { + "conc": "dist/bin/concurrently.js", "concurrently": "dist/bin/concurrently.js" }, "engines": { "node": "^12.20.0 || ^14.13.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" } }, "node_modules/concurrently/node_modules/ansi-styles": { @@ -6708,9 +6730,9 @@ "dev": true }, "node_modules/cypress": { - "version": "10.7.0", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-10.7.0.tgz", - "integrity": "sha512-gTFvjrUoBnqPPOu9Vl5SBHuFlzx/Wxg/ZXIz2H4lzoOLFelKeF7mbwYUOzgzgF0oieU2WhJAestQdkgwJMMTvQ==", + "version": "10.9.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-10.9.0.tgz", + "integrity": "sha512-MjIWrRpc+bQM9U4kSSdATZWZ2hUqHGFEQTF7dfeZRa4MnalMtc88FIE49USWP2ZVtfy5WPBcgfBX+YorFqGElA==", "hasInstallScript": true, "optional": true, "dependencies": { @@ -6733,7 +6755,7 @@ "dayjs": "^1.10.4", "debug": "^4.3.2", "enquirer": "^2.3.6", - "eventemitter2": "^6.4.3", + "eventemitter2": "6.4.7", "execa": "4.1.0", "executable": "^4.1.1", "extract-zip": "2.0.1", @@ -10194,18 +10216,18 @@ } }, "node_modules/jest-environment-jsdom": { - "version": "29.0.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.0.1.tgz", - "integrity": "sha512-rMF501kfui+bw4AmwowLA2bNaYb633A3ejFMN5pVU0AeOqLv2NbMAY5XzzlMr/+lM1itEf+3ZdCr9dGGrUfoxg==", + "version": "29.1.2", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.1.2.tgz", + "integrity": "sha512-D+XNIKia5+uDjSMwL/G1l6N9MCb7LymKI8FpcLo7kkISjc/Sa9w+dXXEa7u1Wijo3f8sVLqfxdGqYtRhmca+Xw==", "dev": true, "dependencies": { - "@jest/environment": "^29.0.1", - "@jest/fake-timers": "^29.0.1", - "@jest/types": "^29.0.1", + "@jest/environment": "^29.1.2", + "@jest/fake-timers": "^29.1.2", + "@jest/types": "^29.1.2", "@types/jsdom": "^20.0.0", "@types/node": "*", - "jest-mock": "^29.0.1", - "jest-util": "^29.0.1", + "jest-mock": "^29.1.2", + "jest-util": "^29.1.2", "jsdom": "^20.0.0" }, "engines": { @@ -10213,32 +10235,32 @@ } }, "node_modules/jest-environment-jsdom/node_modules/@jest/environment": { - "version": "29.0.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.0.1.tgz", - "integrity": "sha512-iLcFfoq2K6DAB+Mc+2VNLzZVmHdwQFeSqvoM/X8SMON6s/+yEi1iuRX3snx/JfwSnvmiMXjSr0lktxNxOcqXYA==", + "version": "29.1.2", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.1.2.tgz", + "integrity": "sha512-rG7xZ2UeOfvOVzoLIJ0ZmvPl4tBEQ2n73CZJSlzUjPw4or1oSWC0s0Rk0ZX+pIBJ04aVr6hLWFn1DFtrnf8MhQ==", "dev": true, "dependencies": { - "@jest/fake-timers": "^29.0.1", - "@jest/types": "^29.0.1", + "@jest/fake-timers": "^29.1.2", + "@jest/types": "^29.1.2", "@types/node": "*", - "jest-mock": "^29.0.1" + "jest-mock": "^29.1.2" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-environment-jsdom/node_modules/@jest/fake-timers": { - "version": "29.0.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.0.1.tgz", - "integrity": "sha512-XZ+kAhLChVQ+KJNa5034p7O1Mz3vtWrelxDcMoxhZkgqmWDaEQAW9qJeutaeCfPvwaEwKYVyKDYfWpcyT8RiMw==", + "version": "29.1.2", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.1.2.tgz", + "integrity": "sha512-GppaEqS+QQYegedxVMpCe2xCXxxeYwQ7RsNx55zc8f+1q1qevkZGKequfTASI7ejmg9WwI+SJCrHe9X11bLL9Q==", "dev": true, "dependencies": { - "@jest/types": "^29.0.1", + "@jest/types": "^29.1.2", "@sinonjs/fake-timers": "^9.1.2", "@types/node": "*", - "jest-message-util": "^29.0.1", - "jest-mock": "^29.0.1", - "jest-util": "^29.0.1" + "jest-message-util": "^29.1.2", + "jest-mock": "^29.1.2", + "jest-util": "^29.1.2" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -10257,9 +10279,9 @@ } }, "node_modules/jest-environment-jsdom/node_modules/@jest/types": { - "version": "29.0.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.0.1.tgz", - "integrity": "sha512-ft01rxzVsbh9qZPJ6EFgAIj3PT9FCRfBF9Xljo2/33VDOUjLZr0ZJ2oKANqh9S/K0/GERCsHDAQlBwj7RxA+9g==", + "version": "29.1.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.1.2.tgz", + "integrity": "sha512-DcXGtoTykQB5jiwCmVr8H4vdg2OJhQex3qPkG+ISyDO7xQXbt/4R6dowcRyPemRnkH7JoHvZuxPBdlq+9JxFCg==", "dev": true, "dependencies": { "@jest/schemas": "^29.0.0", @@ -10332,18 +10354,18 @@ } }, "node_modules/jest-environment-jsdom/node_modules/jest-message-util": { - "version": "29.0.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.0.1.tgz", - "integrity": "sha512-wRMAQt3HrLpxSubdnzOo68QoTfQ+NLXFzU0Heb18ZUzO2S9GgaXNEdQ4rpd0fI9dq2NXkpCk1IUWSqzYKji64A==", + "version": "29.1.2", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.1.2.tgz", + "integrity": "sha512-9oJ2Os+Qh6IlxLpmvshVbGUiSkZVc2FK+uGOm6tghafnB2RyjKAxMZhtxThRMxfX1J1SOMhTn9oK3/MutRWQJQ==", "dev": true, "dependencies": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.0.1", + "@jest/types": "^29.1.2", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "micromatch": "^4.0.4", - "pretty-format": "^29.0.1", + "pretty-format": "^29.1.2", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, @@ -10352,25 +10374,26 @@ } }, "node_modules/jest-environment-jsdom/node_modules/jest-mock": { - "version": "29.0.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.0.1.tgz", - "integrity": "sha512-i1yTceg2GKJwUNZFjIzrH7Y74fN1SKJWxQX/Vu3LT4TiJerFARH5l+4URNyapZ+DNpchHYrGOP2deVbn3ma8JA==", + "version": "29.1.2", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.1.2.tgz", + "integrity": "sha512-PFDAdjjWbjPUtQPkQufvniXIS3N9Tv7tbibePEjIIprzjgo0qQlyUiVMrT4vL8FaSJo1QXifQUOuPH3HQC/aMA==", "dev": true, "dependencies": { - "@jest/types": "^29.0.1", - "@types/node": "*" + "@jest/types": "^29.1.2", + "@types/node": "*", + "jest-util": "^29.1.2" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-environment-jsdom/node_modules/jest-util": { - "version": "29.0.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.0.1.tgz", - "integrity": "sha512-GIWkgNfkeA9d84rORDHPGGTFBrRD13A38QVSKE0bVrGSnoR1KDn8Kqz+0yI5kezMgbT/7zrWaruWP1Kbghlb2A==", + "version": "29.1.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.1.2.tgz", + "integrity": "sha512-vPCk9F353i0Ymx3WQq3+a4lZ07NXu9Ca8wya6o4Fe4/aO1e1awMMprZ3woPFpKwghEOW+UXgd15vVotuNN9ONQ==", "dev": true, "dependencies": { - "@jest/types": "^29.0.1", + "@jest/types": "^29.1.2", "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", @@ -10382,9 +10405,9 @@ } }, "node_modules/jest-environment-jsdom/node_modules/pretty-format": { - "version": "29.0.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.0.1.tgz", - "integrity": "sha512-iTHy3QZMzuL484mSTYbQIM1AHhEQsH8mXWS2/vd2yFBYnG3EBqGiMONo28PlPgrW7P/8s/1ISv+y7WH306l8cw==", + "version": "29.1.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.1.2.tgz", + "integrity": "sha512-CGJ6VVGXVRP2o2Dorl4mAwwvDWT25luIsYhkyVQW32E4nL+TgW939J7LlKT/npq5Cpq6j3s+sy+13yk7xYpBmg==", "dev": true, "dependencies": { "@jest/schemas": "^29.0.0", @@ -12860,9 +12883,9 @@ "dev": true }, "node_modules/ng2-pdf-viewer": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/ng2-pdf-viewer/-/ng2-pdf-viewer-9.1.0.tgz", - "integrity": "sha512-sOOF3lbrpQbV2nn9kTkhWlJ+xeORCi+vox4hlL172PurR1W8s+az7Psusrnrkavbtv40dYGSdDryeadp2qY9hQ==", + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/ng2-pdf-viewer/-/ng2-pdf-viewer-9.1.2.tgz", + "integrity": "sha512-dVfrEOW0rusHjLGpGnkt2mDKdd3LKK9uXAbNxOCv94I2jS2QjciPHMELLKWCliBXiLNbDOTsQdCDQPvYT3vKgQ==", "dependencies": { "pdfjs-dist": "~2.14.305", "tslib": "^2.3.1" @@ -12872,9 +12895,9 @@ } }, "node_modules/ngx-color": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/ngx-color/-/ngx-color-8.0.2.tgz", - "integrity": "sha512-apVHCRCxU0iPCflNGtBQ/0XRvZGphcIH1Y7P/vryOMXggZ4ZDqQU5lrm4cCZxexTqcFmQzEyD84Mk+IOfLz7FA==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/ngx-color/-/ngx-color-8.0.3.tgz", + "integrity": "sha512-tuLP+uIoDEu2m0bh711kb2P1M1bh/oIrOn8mJd9mb8xGL2v+OcokcxPmVvWRn0avMG1lXL53CjSlWXGkdV4CDA==", "dependencies": { "@ctrl/tinycolor": "^3.4.1", "material-colors": "^1.2.6", @@ -14116,9 +14139,9 @@ } }, "node_modules/postcss-import": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz", - "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.0.0.tgz", + "integrity": "sha512-Y20shPQ07RitgBGv2zvkEAu9bqvrD77C9axhj/aA1BQj4czape2MdClCExvB27EwYEJdGgKZBpKanb0t1rK2Kg==", "dev": true, "dependencies": { "postcss-value-parser": "^4.0.0", @@ -14126,7 +14149,7 @@ "resolve": "^1.1.7" }, "engines": { - "node": ">=10.0.0" + "node": ">=14.0.0" }, "peerDependencies": { "postcss": "^8.0.0" @@ -15128,9 +15151,9 @@ } }, "node_modules/rxjs": { - "version": "7.5.6", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.6.tgz", - "integrity": "sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw==", + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.7.tgz", + "integrity": "sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==", "dependencies": { "tslib": "^2.1.0" } @@ -15275,9 +15298,9 @@ "dev": true }, "node_modules/selfsigned": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.1.tgz", - "integrity": "sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", + "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", "dev": true, "dependencies": { "node-forge": "^1" @@ -15633,6 +15656,15 @@ "websocket-driver": "^0.7.4" } }, + "node_modules/sockjs/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/socks": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.0.tgz", @@ -16761,9 +16793,9 @@ "dev": true }, "node_modules/typescript": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", - "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", + "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -16917,9 +16949,9 @@ } }, "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", "bin": { "uuid": "dist/bin/uuid" } @@ -17176,9 +17208,9 @@ } }, "node_modules/webpack-dev-server": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.10.0.tgz", - "integrity": "sha512-7dezwAs+k6yXVFZ+MaL8VnE+APobiO3zvpp3rBHe/HmWQ+avwh0Q3d0xxacOiBybZZ3syTZw9HXzpa3YNbAZDQ==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.0.tgz", + "integrity": "sha512-L5S4Q2zT57SK7tazgzjMiSMBdsw+rGYIX27MgPgx7LDhWO0lViPrHKoLS7jo5In06PWYAhlYu3PbyoC6yAThbw==", "dev": true, "dependencies": { "@types/bonjour": "^3.5.9", @@ -17791,12 +17823,12 @@ } }, "@angular-devkit/architect": { - "version": "0.1402.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1402.1.tgz", - "integrity": "sha512-OZ5mkVHSrk5WX6wIfvkxJUCqJRtfQh1S476qHIi80llhJufFTwoOwJrcz7XtNRvbZMLRMztf0aIhEDaUtEBRZQ==", + "version": "0.1402.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1402.4.tgz", + "integrity": "sha512-lOgyKJ+KjBYWzgcxJ3vAy3RFkqRmSw3RY4thNsWOHLvzT8o33u3USDuOr6cDAQW12NjX9K7JDuvNlPbadjQbSQ==", "devOptional": true, "requires": { - "@angular-devkit/core": "14.2.1", + "@angular-devkit/core": "14.2.4", "rxjs": "6.6.7" }, "dependencies": { @@ -17818,15 +17850,15 @@ } }, "@angular-devkit/build-angular": { - "version": "14.2.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-14.2.1.tgz", - "integrity": "sha512-6FeIe2nsNH/fslZmTfbo+RCjLk3HuCQa5rb/SFf3w0mwzWCrhV0/SqnQ4+YYgkKrohmTX+q5JmJPwWnkqgdIgQ==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-14.2.4.tgz", + "integrity": "sha512-VvwLmb5fiorcLO6Fko3GIeNDWsdoZxviHcHjq2IGkgTNMlvWwZhuSZ8kOhNIXUKFCZYpj7FiUm/ft8v0ilxFBg==", "dev": true, "requires": { "@ampproject/remapping": "2.2.0", - "@angular-devkit/architect": "0.1402.1", - "@angular-devkit/build-webpack": "0.1402.1", - "@angular-devkit/core": "14.2.1", + "@angular-devkit/architect": "0.1402.4", + "@angular-devkit/build-webpack": "0.1402.4", + "@angular-devkit/core": "14.2.4", "@babel/core": "7.18.10", "@babel/generator": "7.18.12", "@babel/helper-annotate-as-pure": "7.18.6", @@ -17837,7 +17869,7 @@ "@babel/runtime": "7.18.9", "@babel/template": "7.18.10", "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "14.2.1", + "@ngtools/webpack": "14.2.4", "ansi-colors": "4.1.3", "babel-loader": "8.2.5", "babel-plugin-istanbul": "6.1.1", @@ -17864,7 +17896,7 @@ "parse5-html-rewriting-stream": "6.0.1", "piscina": "3.2.0", "postcss": "8.4.16", - "postcss-import": "14.1.0", + "postcss-import": "15.0.0", "postcss-loader": "7.0.1", "postcss-preset-env": "7.8.0", "regenerator-runtime": "0.13.9", @@ -17883,7 +17915,7 @@ "tslib": "2.4.0", "webpack": "5.74.0", "webpack-dev-middleware": "5.3.3", - "webpack-dev-server": "4.10.0", + "webpack-dev-server": "4.11.0", "webpack-merge": "5.8.0", "webpack-subresource-integrity": "5.1.0" }, @@ -17908,12 +17940,12 @@ } }, "@angular-devkit/build-webpack": { - "version": "0.1402.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1402.1.tgz", - "integrity": "sha512-S9WvNKrHVgOWNqGCytJNPBEMojB9j6cgl5XlUMEQ+4NV5geOlDNiZltQ/gbC1jz19OU5N+Ky374mPI5IeIBqZg==", + "version": "0.1402.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1402.4.tgz", + "integrity": "sha512-hj80twvKlscktH3bILS4+iQckTQzUWO/hTrG0auvJIXHWOmfJDQTDEyIgoMUzhnibh/8xwf96cFAsFZc2d5kFA==", "dev": true, "requires": { - "@angular-devkit/architect": "0.1402.1", + "@angular-devkit/architect": "0.1402.4", "rxjs": "6.6.7" }, "dependencies": { @@ -17935,9 +17967,9 @@ } }, "@angular-devkit/core": { - "version": "14.2.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.1.tgz", - "integrity": "sha512-lW8oNGuJqr4r31FWBjfWQYkSXdiOHBGOThIEtHvUVBKfPF/oVrupLueCUgBPel+NvxENXdo93uPsqHN7bZbmsQ==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.4.tgz", + "integrity": "sha512-NsvN1U42goBcibVR75vDp2NOFeSU+Wcekwf1r3Jbyz6a2l9Unf0v9BOWLXdigFY8xztbrOHJPSIbC+2rkvOUnw==", "devOptional": true, "requires": { "ajv": "8.11.0", @@ -17965,12 +17997,12 @@ } }, "@angular-devkit/schematics": { - "version": "14.2.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.2.1.tgz", - "integrity": "sha512-0U18FwDYt4zROBPrvewH6iBTkf2ozVHN4/gxUb9jWrqVw8mPU5AWc/iYxQLHBSinkr2Egjo1H/i9aBqgJSeh3g==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.2.4.tgz", + "integrity": "sha512-Pm2C7HBNslQavsqXh6/rcyAavmgzTxU3x7NoWwSBH+fIplLJjEFzHdnW9JJp59A2ONfqO0wND3yWKtjIoDAUqw==", "devOptional": true, "requires": { - "@angular-devkit/core": "14.2.1", + "@angular-devkit/core": "14.2.4", "jsonc-parser": "3.1.0", "magic-string": "0.26.2", "ora": "5.4.1", @@ -17995,15 +18027,15 @@ } }, "@angular/cli": { - "version": "14.2.1", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-14.2.1.tgz", - "integrity": "sha512-ab/kpK3wYQvDOdhwfk3cVSiLMyl9lEVrNiwvrTnPLdt3jwqkT5Gm28WFShnOuNCaKea3iHP7LIItoRxeIWQQ9A==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-14.2.4.tgz", + "integrity": "sha512-3YqwjPYlLzqQB0y6A7c3l9X1e0z418NjSQQD2e12N8y68V8nkTK4UcsDVpqb/7ce+xnQ7xGz2wb6DJddU4Wogw==", "devOptional": true, "requires": { - "@angular-devkit/architect": "0.1402.1", - "@angular-devkit/core": "14.2.1", - "@angular-devkit/schematics": "14.2.1", - "@schematics/angular": "14.2.1", + "@angular-devkit/architect": "0.1402.4", + "@angular-devkit/core": "14.2.4", + "@angular-devkit/schematics": "14.2.4", + "@schematics/angular": "14.2.4", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.3", "debug": "4.3.4", @@ -18020,28 +18052,36 @@ "symbol-observable": "4.0.0", "uuid": "8.3.2", "yargs": "17.5.1" + }, + "dependencies": { + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "devOptional": true + } } }, "@angular/common": { - "version": "14.2.0", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-14.2.0.tgz", - "integrity": "sha512-dXCGuM/Yh9B8OVVHHfPuXLYdu0olemKmuYLZXGoqyzeYU5OpQ6+qcHYTrlREkWpF9QY+pk2ewfM9Hke1UENEHA==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-14.2.4.tgz", + "integrity": "sha512-nzmRUhdyKomgsf1vUdx7KOXS7OXkvdpF/1CSagqsIGYVLbL8cGZ6ROrdEuxkSsE9GUt/OAIkC4How4/LLPut1A==", "requires": { "tslib": "^2.3.0" } }, "@angular/compiler": { - "version": "14.2.0", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-14.2.0.tgz", - "integrity": "sha512-csnvopy5a6ctdT7sHgwgn3wRni+UIk2zvs7WYsx+gtLTdH7SPg78CN0XZR/KQ142qLtuMnmkVON3D3ejmqC9xg==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-14.2.4.tgz", + "integrity": "sha512-fBvTPPWBYA65bAmrqKcnzUHAhZ/tfs+nG+IeDukn4TeyQplVjDYOlqjf84jYQubSIx8WTicZzRFn0dIGsPaSNw==", "requires": { "tslib": "^2.3.0" } }, "@angular/compiler-cli": { - "version": "14.2.0", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-14.2.0.tgz", - "integrity": "sha512-cMjMVmAitY4GIn45pIqzhy4GKWfVAJSktCtuAebaAYC6Nqo9LbvqF2dnHK0MHoqjAf98e5zmz9WeBOQ7YlRZFQ==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-14.2.4.tgz", + "integrity": "sha512-8kHA/Ujzr5aXic7T3iEJiu0JMfXRs/uDoi8W8dYWFe+0naGhxwWmHBHc/hhS1tpv9/wW2WOcT51RDa4OYHKDKw==", "requires": { "@babel/core": "^7.17.2", "chokidar": "^3.0.0", @@ -18056,25 +18096,25 @@ } }, "@angular/core": { - "version": "14.2.0", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-14.2.0.tgz", - "integrity": "sha512-m00WZL+df90QjrNmA43W8oSP1hyePoEXgw36JcFLQ+2ISO1HvqoeuKXIccyIQKpCuQ9VLNv5ptlTio6pjmcCqg==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-14.2.4.tgz", + "integrity": "sha512-wB19wKmZE+X07mLbxYyqeg3v1JXy8m0+ShZD2oY3dmgk1mXOf5XVQxRZohGTrbPw83EdSWwx3vz+jjylGunVZQ==", "requires": { "tslib": "^2.3.0" } }, "@angular/forms": { - "version": "14.2.0", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-14.2.0.tgz", - "integrity": "sha512-KVAd4ITEUnP/MLNTDbTWEMoYIZgKawvoaNu4nBP0DAcZsADmB5a6IPYcg6GrgJ+teN0SnpiCxKvq1hRITj3d7g==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-14.2.4.tgz", + "integrity": "sha512-m1asD8SazzMPzcli054zwLYz7hiXiaCXfqmQOFdQQd3OnPNKeCGDS8GFX7Yd/+3fz4REGeSon9YRhq7/W0TDlA==", "requires": { "tslib": "^2.3.0" } }, "@angular/localize": { - "version": "14.2.0", - "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-14.2.0.tgz", - "integrity": "sha512-sV+4itOllkgYkHMMtfYGsOvO+nuFMBlk6RKFVqWZcFO+XgOC4E9bXhRbkpGZ0JcIr42tlB63krjopnYfN9u+7A==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-14.2.4.tgz", + "integrity": "sha512-35BKWV5y5aGGbnLIY9xcPs4i8KGqYBidPtqlU1tg585y0szzFBuHdF4jNrAYTwjGk7fnxYYLZQygM/GtxFwLUA==", "requires": { "@babel/core": "7.18.9", "glob": "8.0.3", @@ -18131,25 +18171,25 @@ } }, "@angular/platform-browser": { - "version": "14.2.0", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-14.2.0.tgz", - "integrity": "sha512-zYWB9FtZQZEhPV2PuzaoXWChWS+7o4SP+0sF8hLddGNOezf1FsKKrqDhyYtQYgZ2qQPsS+uDFfkVry5dppALUQ==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-14.2.4.tgz", + "integrity": "sha512-/NAQXYLgyeb2L15EsaKgGEn50GH/O3t1FOjBvVZg6L423X0H6dIOL4bxbLcKAj9+bUDtdUzDiDoYyt6YEidH+g==", "requires": { "tslib": "^2.3.0" } }, "@angular/platform-browser-dynamic": { - "version": "14.2.0", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-14.2.0.tgz", - "integrity": "sha512-CRSWbJiohfz4KBU4ts2kq2B2lATApMeG6uuxgXwNJAEUkn63EYbrFVY9JTaApyZ7X+3dUDZZtcsfNmQruK2UxQ==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-14.2.4.tgz", + "integrity": "sha512-6jEVKzIqT9lipq4xZftBskHKl3jrL1pQbK8diirJH0mNeuj0wvE+fqfKtVVl898OI/iJ3aAKyQf5YmOe1k8PAw==", "requires": { "tslib": "^2.3.0" } }, "@angular/router": { - "version": "14.2.0", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-14.2.0.tgz", - "integrity": "sha512-SvtmSlRCIWeLhbXYh09W7luPKTtpZL16PB4DbT3VVfZlt2PfMys/tAmOCvChNxjkOgV7yEGaqklWw/1wKxeRlg==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-14.2.4.tgz", + "integrity": "sha512-zjsiy/1zrZfZnfIbo2vVgZ+UhCo3okabVr43eIvJhBwcNKzM8Zv17oN9FFlWvSzKKkbsoNIgJkTI85L1YsKtjg==", "requires": { "tslib": "^2.3.0" } @@ -19537,6 +19577,14 @@ "tough-cookie": "~2.5.0", "tunnel-agent": "^0.6.0", "uuid": "^8.3.2" + }, + "dependencies": { + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "optional": true + } } }, "@cypress/schematic": { @@ -20272,9 +20320,9 @@ } }, "@ngtools/webpack": { - "version": "14.2.1", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-14.2.1.tgz", - "integrity": "sha512-9tsfx2ZQscnpszVkdoJIIxZZDwitgmbPNrsQmyfHhwqPeJ8UUnAk6RNTfHjtX31VCmIM+qdGJsX7vDR9ye3/uA==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-14.2.4.tgz", + "integrity": "sha512-rmoUTz3FNhQctsmsq1HM7OfoT+pJiI2dhK0u6SqKXkP3OJ+dGW7NHQ5jYR7IATa7wLFe0vDiEr8caxZ5JBAEsQ==", "dev": true, "requires": {} }, @@ -20385,13 +20433,13 @@ "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==" }, "@schematics/angular": { - "version": "14.2.1", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-14.2.1.tgz", - "integrity": "sha512-Dchixep/FMETAMuyFchw9Nryi7tfuZQRumzIOtQpv+KaVtfjvcIlES0KuI0U3Qh7tGIYPBmO3Mkt3oojcl2RBA==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-14.2.4.tgz", + "integrity": "sha512-9n7HyxZvoSR+Ynyvr8oEQ3zy5trSjCQMTF+fZSTCzCBEVHKGxqMyisI6KO4qcGeIQYGXWeBYrMsy9jMQFgK8dQ==", "devOptional": true, "requires": { - "@angular-devkit/core": "14.2.1", - "@angular-devkit/schematics": "14.2.1", + "@angular-devkit/core": "14.2.4", + "@angular-devkit/schematics": "14.2.4", "jsonc-parser": "3.1.0" } }, @@ -20576,9 +20624,9 @@ "dev": true }, "@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "version": "4.17.14", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", + "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", "dev": true, "requires": { "@types/body-parser": "*", @@ -20588,9 +20636,9 @@ } }, "@types/express-serve-static-core": { - "version": "4.17.30", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.30.tgz", - "integrity": "sha512-gstzbTWro2/nFed1WXtf+TtrpwxH7Ggs4RLYTLbeVgIkUQOI3WG/JKjgeOU1zXDvezllupjrf8OPIdvTbIaVOQ==", + "version": "4.17.31", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", + "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", "dev": true, "requires": { "@types/node": "*", @@ -20691,9 +20739,9 @@ "dev": true }, "@types/node": { - "version": "18.7.14", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.14.tgz", - "integrity": "sha512-6bbDaETVi8oyIARulOE9qF1/Qdi/23z6emrUh0fNJRUmjznqrixD4MpGDdgOFk5Xb0m2H6Xu42JGdvAxaJR/wA==", + "version": "18.7.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.23.tgz", + "integrity": "sha512-DWNcCHolDq0ZKGizjx2DZjR/PqsYwAcYUJmfMWqtVU2MBMG5Mo+xFZrhGId5r/O5HOuMPyQEcM6KUBp5lBZZBg==", "devOptional": true }, "@types/parse-json": { @@ -21658,9 +21706,9 @@ "dev": true }, "bootstrap": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.2.0.tgz", - "integrity": "sha512-qlnS9GL6YZE6Wnef46GxGv1UpGGzAwO0aPL1yOjzDIJpeApeMvqV24iL+pjr2kU4dduoBA9fINKWKgMToobx9A==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.2.1.tgz", + "integrity": "sha512-UQi3v2NpVPEi1n35dmRRzBJFlgvWHYwyem6yHhuT6afYF+sziEt46McRbT//kVXZ7b1YUYEVGdXEH74Nx3xzGA==", "requires": {} }, "brace-expansion": { @@ -22140,13 +22188,13 @@ "devOptional": true }, "concurrently": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-7.3.0.tgz", - "integrity": "sha512-IiDwm+8DOcFEInca494A8V402tNTQlJaYq78RF2rijOrKEk/AOHTxhN4U1cp7GYKYX5Q6Ymh1dLTBlzIMN0ikA==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-7.4.0.tgz", + "integrity": "sha512-M6AfrueDt/GEna/Vg9BqQ+93yuvzkSKmoTixnwEJkH0LlcGrRC2eCmjeG1tLLHIYfpYJABokqSGyMcXjm96AFA==", "dev": true, "requires": { "chalk": "^4.1.0", - "date-fns": "^2.16.1", + "date-fns": "^2.29.1", "lodash": "^4.17.21", "rxjs": "^7.0.0", "shell-quote": "^1.7.3", @@ -22553,9 +22601,9 @@ } }, "cypress": { - "version": "10.7.0", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-10.7.0.tgz", - "integrity": "sha512-gTFvjrUoBnqPPOu9Vl5SBHuFlzx/Wxg/ZXIz2H4lzoOLFelKeF7mbwYUOzgzgF0oieU2WhJAestQdkgwJMMTvQ==", + "version": "10.9.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-10.9.0.tgz", + "integrity": "sha512-MjIWrRpc+bQM9U4kSSdATZWZ2hUqHGFEQTF7dfeZRa4MnalMtc88FIE49USWP2ZVtfy5WPBcgfBX+YorFqGElA==", "optional": true, "requires": { "@cypress/request": "^2.88.10", @@ -22577,7 +22625,7 @@ "dayjs": "^1.10.4", "debug": "^4.3.2", "enquirer": "^2.3.6", - "eventemitter2": "^6.4.3", + "eventemitter2": "6.4.7", "execa": "4.1.0", "executable": "^4.1.1", "extract-zip": "2.0.1", @@ -25067,45 +25115,45 @@ } }, "jest-environment-jsdom": { - "version": "29.0.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.0.1.tgz", - "integrity": "sha512-rMF501kfui+bw4AmwowLA2bNaYb633A3ejFMN5pVU0AeOqLv2NbMAY5XzzlMr/+lM1itEf+3ZdCr9dGGrUfoxg==", + "version": "29.1.2", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.1.2.tgz", + "integrity": "sha512-D+XNIKia5+uDjSMwL/G1l6N9MCb7LymKI8FpcLo7kkISjc/Sa9w+dXXEa7u1Wijo3f8sVLqfxdGqYtRhmca+Xw==", "dev": true, "requires": { - "@jest/environment": "^29.0.1", - "@jest/fake-timers": "^29.0.1", - "@jest/types": "^29.0.1", + "@jest/environment": "^29.1.2", + "@jest/fake-timers": "^29.1.2", + "@jest/types": "^29.1.2", "@types/jsdom": "^20.0.0", "@types/node": "*", - "jest-mock": "^29.0.1", - "jest-util": "^29.0.1", + "jest-mock": "^29.1.2", + "jest-util": "^29.1.2", "jsdom": "^20.0.0" }, "dependencies": { "@jest/environment": { - "version": "29.0.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.0.1.tgz", - "integrity": "sha512-iLcFfoq2K6DAB+Mc+2VNLzZVmHdwQFeSqvoM/X8SMON6s/+yEi1iuRX3snx/JfwSnvmiMXjSr0lktxNxOcqXYA==", + "version": "29.1.2", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.1.2.tgz", + "integrity": "sha512-rG7xZ2UeOfvOVzoLIJ0ZmvPl4tBEQ2n73CZJSlzUjPw4or1oSWC0s0Rk0ZX+pIBJ04aVr6hLWFn1DFtrnf8MhQ==", "dev": true, "requires": { - "@jest/fake-timers": "^29.0.1", - "@jest/types": "^29.0.1", + "@jest/fake-timers": "^29.1.2", + "@jest/types": "^29.1.2", "@types/node": "*", - "jest-mock": "^29.0.1" + "jest-mock": "^29.1.2" } }, "@jest/fake-timers": { - "version": "29.0.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.0.1.tgz", - "integrity": "sha512-XZ+kAhLChVQ+KJNa5034p7O1Mz3vtWrelxDcMoxhZkgqmWDaEQAW9qJeutaeCfPvwaEwKYVyKDYfWpcyT8RiMw==", + "version": "29.1.2", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.1.2.tgz", + "integrity": "sha512-GppaEqS+QQYegedxVMpCe2xCXxxeYwQ7RsNx55zc8f+1q1qevkZGKequfTASI7ejmg9WwI+SJCrHe9X11bLL9Q==", "dev": true, "requires": { - "@jest/types": "^29.0.1", + "@jest/types": "^29.1.2", "@sinonjs/fake-timers": "^9.1.2", "@types/node": "*", - "jest-message-util": "^29.0.1", - "jest-mock": "^29.0.1", - "jest-util": "^29.0.1" + "jest-message-util": "^29.1.2", + "jest-mock": "^29.1.2", + "jest-util": "^29.1.2" } }, "@jest/schemas": { @@ -25118,9 +25166,9 @@ } }, "@jest/types": { - "version": "29.0.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.0.1.tgz", - "integrity": "sha512-ft01rxzVsbh9qZPJ6EFgAIj3PT9FCRfBF9Xljo2/33VDOUjLZr0ZJ2oKANqh9S/K0/GERCsHDAQlBwj7RxA+9g==", + "version": "29.1.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.1.2.tgz", + "integrity": "sha512-DcXGtoTykQB5jiwCmVr8H4vdg2OJhQex3qPkG+ISyDO7xQXbt/4R6dowcRyPemRnkH7JoHvZuxPBdlq+9JxFCg==", "dev": true, "requires": { "@jest/schemas": "^29.0.0", @@ -25172,39 +25220,40 @@ "dev": true }, "jest-message-util": { - "version": "29.0.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.0.1.tgz", - "integrity": "sha512-wRMAQt3HrLpxSubdnzOo68QoTfQ+NLXFzU0Heb18ZUzO2S9GgaXNEdQ4rpd0fI9dq2NXkpCk1IUWSqzYKji64A==", + "version": "29.1.2", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.1.2.tgz", + "integrity": "sha512-9oJ2Os+Qh6IlxLpmvshVbGUiSkZVc2FK+uGOm6tghafnB2RyjKAxMZhtxThRMxfX1J1SOMhTn9oK3/MutRWQJQ==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.0.1", + "@jest/types": "^29.1.2", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "micromatch": "^4.0.4", - "pretty-format": "^29.0.1", + "pretty-format": "^29.1.2", "slash": "^3.0.0", "stack-utils": "^2.0.3" } }, "jest-mock": { - "version": "29.0.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.0.1.tgz", - "integrity": "sha512-i1yTceg2GKJwUNZFjIzrH7Y74fN1SKJWxQX/Vu3LT4TiJerFARH5l+4URNyapZ+DNpchHYrGOP2deVbn3ma8JA==", + "version": "29.1.2", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.1.2.tgz", + "integrity": "sha512-PFDAdjjWbjPUtQPkQufvniXIS3N9Tv7tbibePEjIIprzjgo0qQlyUiVMrT4vL8FaSJo1QXifQUOuPH3HQC/aMA==", "dev": true, "requires": { - "@jest/types": "^29.0.1", - "@types/node": "*" + "@jest/types": "^29.1.2", + "@types/node": "*", + "jest-util": "^29.1.2" } }, "jest-util": { - "version": "29.0.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.0.1.tgz", - "integrity": "sha512-GIWkgNfkeA9d84rORDHPGGTFBrRD13A38QVSKE0bVrGSnoR1KDn8Kqz+0yI5kezMgbT/7zrWaruWP1Kbghlb2A==", + "version": "29.1.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.1.2.tgz", + "integrity": "sha512-vPCk9F353i0Ymx3WQq3+a4lZ07NXu9Ca8wya6o4Fe4/aO1e1awMMprZ3woPFpKwghEOW+UXgd15vVotuNN9ONQ==", "dev": true, "requires": { - "@jest/types": "^29.0.1", + "@jest/types": "^29.1.2", "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", @@ -25213,9 +25262,9 @@ } }, "pretty-format": { - "version": "29.0.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.0.1.tgz", - "integrity": "sha512-iTHy3QZMzuL484mSTYbQIM1AHhEQsH8mXWS2/vd2yFBYnG3EBqGiMONo28PlPgrW7P/8s/1ISv+y7WH306l8cw==", + "version": "29.1.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.1.2.tgz", + "integrity": "sha512-CGJ6VVGXVRP2o2Dorl4mAwwvDWT25luIsYhkyVQW32E4nL+TgW939J7LlKT/npq5Cpq6j3s+sy+13yk7xYpBmg==", "dev": true, "requires": { "@jest/schemas": "^29.0.0", @@ -27073,18 +27122,18 @@ "dev": true }, "ng2-pdf-viewer": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/ng2-pdf-viewer/-/ng2-pdf-viewer-9.1.0.tgz", - "integrity": "sha512-sOOF3lbrpQbV2nn9kTkhWlJ+xeORCi+vox4hlL172PurR1W8s+az7Psusrnrkavbtv40dYGSdDryeadp2qY9hQ==", + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/ng2-pdf-viewer/-/ng2-pdf-viewer-9.1.2.tgz", + "integrity": "sha512-dVfrEOW0rusHjLGpGnkt2mDKdd3LKK9uXAbNxOCv94I2jS2QjciPHMELLKWCliBXiLNbDOTsQdCDQPvYT3vKgQ==", "requires": { "pdfjs-dist": "~2.14.305", "tslib": "^2.3.1" } }, "ngx-color": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/ngx-color/-/ngx-color-8.0.2.tgz", - "integrity": "sha512-apVHCRCxU0iPCflNGtBQ/0XRvZGphcIH1Y7P/vryOMXggZ4ZDqQU5lrm4cCZxexTqcFmQzEyD84Mk+IOfLz7FA==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/ngx-color/-/ngx-color-8.0.3.tgz", + "integrity": "sha512-tuLP+uIoDEu2m0bh711kb2P1M1bh/oIrOn8mJd9mb8xGL2v+OcokcxPmVvWRn0avMG1lXL53CjSlWXGkdV4CDA==", "requires": { "@ctrl/tinycolor": "^3.4.1", "material-colors": "^1.2.6", @@ -27946,9 +27995,9 @@ } }, "postcss-import": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz", - "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.0.0.tgz", + "integrity": "sha512-Y20shPQ07RitgBGv2zvkEAu9bqvrD77C9axhj/aA1BQj4czape2MdClCExvB27EwYEJdGgKZBpKanb0t1rK2Kg==", "dev": true, "requires": { "postcss-value-parser": "^4.0.0", @@ -28669,9 +28718,9 @@ } }, "rxjs": { - "version": "7.5.6", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.6.tgz", - "integrity": "sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw==", + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.7.tgz", + "integrity": "sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==", "requires": { "tslib": "^2.1.0" } @@ -28768,9 +28817,9 @@ "dev": true }, "selfsigned": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.1.tgz", - "integrity": "sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", + "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", "dev": true, "requires": { "node-forge": "^1" @@ -29069,6 +29118,14 @@ "faye-websocket": "^0.11.3", "uuid": "^8.3.2", "websocket-driver": "^0.7.4" + }, + "dependencies": { + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true + } } }, "socks": { @@ -29889,9 +29946,9 @@ "dev": true }, "typescript": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", - "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==" + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", + "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==" }, "unicode-canonical-property-names-ecmascript": { "version": "2.0.0", @@ -29998,9 +30055,9 @@ "dev": true }, "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==" }, "v8-compile-cache-lib": { "version": "3.0.1", @@ -30232,9 +30289,9 @@ } }, "webpack-dev-server": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.10.0.tgz", - "integrity": "sha512-7dezwAs+k6yXVFZ+MaL8VnE+APobiO3zvpp3rBHe/HmWQ+avwh0Q3d0xxacOiBybZZ3syTZw9HXzpa3YNbAZDQ==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.0.tgz", + "integrity": "sha512-L5S4Q2zT57SK7tazgzjMiSMBdsw+rGYIX27MgPgx7LDhWO0lViPrHKoLS7jo5In06PWYAhlYu3PbyoC6yAThbw==", "dev": true, "requires": { "@types/bonjour": "^3.5.9", diff --git a/src-ui/package.json b/src-ui/package.json index e3e35fb43..513e1b2f7 100644 --- a/src-ui/package.json +++ b/src-ui/package.json @@ -13,48 +13,48 @@ }, "private": true, "dependencies": { - "@angular/common": "~14.2.0", - "@angular/compiler": "~14.2.0", - "@angular/core": "~14.2.0", - "@angular/forms": "~14.2.0", - "@angular/localize": "~14.2.0", - "@angular/platform-browser": "~14.2.0", - "@angular/platform-browser-dynamic": "~14.2.0", - "@angular/router": "~14.2.0", + "@angular/common": "~14.2.4", + "@angular/compiler": "~14.2.4", + "@angular/core": "~14.2.4", + "@angular/forms": "~14.2.4", + "@angular/localize": "~14.2.4", + "@angular/platform-browser": "~14.2.4", + "@angular/platform-browser-dynamic": "~14.2.4", + "@angular/router": "~14.2.4", "@ng-bootstrap/ng-bootstrap": "^13.0.0", "@ng-select/ng-select": "^9.0.2", "@ngneat/dirty-check-forms": "^3.0.2", "@popperjs/core": "^2.11.6", - "bootstrap": "^5.2.0", + "bootstrap": "^5.2.1", "file-saver": "^2.0.5", - "ng2-pdf-viewer": "^9.1.0", - "ngx-color": "^8.0.2", + "ng2-pdf-viewer": "^9.1.2", + "ngx-color": "^8.0.3", "ngx-cookie-service": "^14.0.1", "ngx-file-drop": "^14.0.1", - "rxjs": "~7.5.6", + "rxjs": "~7.5.7", "tslib": "^2.3.1", - "uuid": "^8.3.1", + "uuid": "^9.0.0", "zone.js": "~0.11.8" }, "devDependencies": { "@angular-builders/jest": "14.0.1", - "@angular-devkit/build-angular": "~14.2.1", - "@angular/cli": "~14.2.1", - "@angular/compiler-cli": "~14.2.0", + "@angular-devkit/build-angular": "~14.2.4", + "@angular/cli": "~14.2.4", + "@angular/compiler-cli": "~14.2.4", "@types/jest": "28.1.6", - "@types/node": "^18.7.14", + "@types/node": "^18.7.23", "codelyzer": "^6.0.2", - "concurrently": "7.3.0", + "concurrently": "7.4.0", "jest": "28.1.3", - "jest-environment-jsdom": "^29.0.1", + "jest-environment-jsdom": "^29.1.2", "jest-preset-angular": "^12.2.2", "ts-node": "~10.9.1", "tslint": "~6.1.3", - "typescript": "~4.7.4", + "typescript": "~4.8.4", "wait-on": "~6.0.1" }, "optionalDependencies": { "@cypress/schematic": "^2.1.1", - "cypress": "~10.7.0" + "cypress": "~10.9.0" } } diff --git a/src-ui/src/app/components/document-list/filter-editor/filter-editor.component.html b/src-ui/src/app/components/document-list/filter-editor/filter-editor.component.html index 6c9d9f8c7..bfc6d4925 100644 --- a/src-ui/src/app/components/document-list/filter-editor/filter-editor.component.html +++ b/src-ui/src/app/components/document-list/filter-editor/filter-editor.component.html @@ -64,9 +64,9 @@
-
+
diff --git a/src-ui/src/app/data/paperless-document.ts b/src-ui/src/app/data/paperless-document.ts index f5f83868c..8b038d79e 100644 --- a/src-ui/src/app/data/paperless-document.ts +++ b/src-ui/src/app/data/paperless-document.ts @@ -29,8 +29,6 @@ export interface PaperlessDocument extends ObjectWithId { content?: string - file_type?: string - tags$?: Observable tags?: number[] @@ -47,7 +45,7 @@ export interface PaperlessDocument extends ObjectWithId { added?: Date - file_name?: string + original_file_name?: string download_url?: string diff --git a/src-ui/src/environments/environment.prod.ts b/src-ui/src/environments/environment.prod.ts index ecfed31c7..a2c3b2bc9 100644 --- a/src-ui/src/environments/environment.prod.ts +++ b/src-ui/src/environments/environment.prod.ts @@ -5,7 +5,7 @@ export const environment = { apiBaseUrl: document.baseURI + 'api/', apiVersion: '2', appTitle: 'Paperless-ngx', - version: '1.9.0-dev', + version: '1.9.2-dev', webSocketHost: window.location.host, webSocketProtocol: window.location.protocol == 'https:' ? 'wss:' : 'ws:', webSocketBaseUrl: base_url.pathname + 'ws/', diff --git a/src/documents/consumer.py b/src/documents/consumer.py index d1b01290a..609ebed83 100644 --- a/src/documents/consumer.py +++ b/src/documents/consumer.py @@ -111,14 +111,16 @@ class Consumer(LoggingMixin): def pre_check_duplicate(self): with open(self.path, "rb") as f: checksum = hashlib.md5(f.read()).hexdigest() - if Document.objects.filter( + existing_doc = Document.objects.filter( Q(checksum=checksum) | Q(archive_checksum=checksum), - ).exists(): + ) + if existing_doc.exists(): if settings.CONSUMER_DELETE_DUPLICATES: os.unlink(self.path) self._fail( MESSAGE_DOCUMENT_ALREADY_EXISTS, - f"Not consuming {self.filename}: It is a duplicate.", + f"Not consuming {self.filename}: It is a duplicate of" + f" {existing_doc.get().title} (#{existing_doc.get().pk})", ) def pre_check_directories(self): diff --git a/src/paperless/checks.py b/src/paperless/checks.py index e592a5bf2..845ff2d0b 100644 --- a/src/paperless/checks.py +++ b/src/paperless/checks.py @@ -127,10 +127,10 @@ def settings_values_check(app_configs, **kwargs): Error(f'OCR output type "{settings.OCR_OUTPUT_TYPE}" is not valid'), ) - if settings.OCR_MODE not in {"force", "skip", "redo_ocr"}: + if settings.OCR_MODE not in {"force", "skip", "redo", "skip_noarchive"}: msgs.append(Error(f'OCR output mode "{settings.OCR_MODE}" is not valid')) - if settings.OCR_CLEAN not in {"clean", "clean_final"}: + if settings.OCR_CLEAN not in {"clean", "clean-final", "none"}: msgs.append(Error(f'OCR clean mode "{settings.OCR_CLEAN}" is not valid')) return msgs diff --git a/src/paperless/settings.py b/src/paperless/settings.py index 9b5efc6b7..6836f4ea0 100644 --- a/src/paperless/settings.py +++ b/src/paperless/settings.py @@ -322,6 +322,7 @@ DATABASES = { "default": { "ENGINE": "django.db.backends.sqlite3", "NAME": os.path.join(DATA_DIR, "db.sqlite3"), + "OPTIONS": {}, }, } @@ -343,21 +344,18 @@ if os.getenv("PAPERLESS_DBHOST"): # Leave room for future extensibility if os.getenv("PAPERLESS_DBENGINE") == "mariadb": engine = "django.db.backends.mysql" - options = {"read_default_file": "/etc/mysql/my.cnf"} + options = {"read_default_file": "/etc/mysql/my.cnf", "charset": "utf8mb4"} else: # Default to PostgresDB engine = "django.db.backends.postgresql_psycopg2" options = {"sslmode": os.getenv("PAPERLESS_DBSSLMODE", "prefer")} DATABASES["default"]["ENGINE"] = engine - for key, value in options.items(): - DATABASES["default"]["OPTIONS"][key] = value + DATABASES["default"]["OPTIONS"].update(options) if os.getenv("PAPERLESS_DB_TIMEOUT") is not None: - _new_opts = {"timeout": float(os.getenv("PAPERLESS_DB_TIMEOUT"))} - if "OPTIONS" in DATABASES["default"]: - DATABASES["default"]["OPTIONS"].update(_new_opts) - else: - DATABASES["default"]["OPTIONS"] = _new_opts + DATABASES["default"]["OPTIONS"].update( + {"timeout": float(os.getenv("PAPERLESS_DB_TIMEOUT"))}, + ) DEFAULT_AUTO_FIELD = "django.db.models.AutoField" diff --git a/src/paperless/version.py b/src/paperless/version.py index 1642e3f89..d196c358d 100644 --- a/src/paperless/version.py +++ b/src/paperless/version.py @@ -1,7 +1,7 @@ from typing import Final from typing import Tuple -__version__: Final[Tuple[int, int, int]] = (1, 9, 0) +__version__: Final[Tuple[int, int, int]] = (1, 9, 2) # Version string like X.Y.Z __full_version_str__: Final[str] = ".".join(map(str, __version__)) # Version string like X.Y diff --git a/src/paperless_text/signals.py b/src/paperless_text/signals.py index 3d025c14e..94d1ccc2e 100644 --- a/src/paperless_text/signals.py +++ b/src/paperless_text/signals.py @@ -11,5 +11,6 @@ def text_consumer_declaration(sender, **kwargs): "mime_types": { "text/plain": ".txt", "text/csv": ".csv", + "application/csv": ".csv", }, }