From d4c7766f5ace73e8c197761ecdde6a123171799e Mon Sep 17 00:00:00 2001 From: eikek Date: Wed, 31 Jan 2024 19:40:02 +0100 Subject: [PATCH 001/162] Mention minimum MariaDB version --- website/site/content/docs/install/prereq.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/website/site/content/docs/install/prereq.md b/website/site/content/docs/install/prereq.md index 00d648cd..6111b180 100644 --- a/website/site/content/docs/install/prereq.md +++ b/website/site/content/docs/install/prereq.md @@ -105,7 +105,7 @@ contains all data (including binary files by default) and is the central component of docspell. Docspell has support these databases: - PostreSQL -- MariaDB +- MariaDB (>= 10.6) - H2 The H2 database is an interesting option for personal and mid-size @@ -120,6 +120,6 @@ add the options of the url. See the [config page](@/docs/configure/database.md) for an example. -For large installations, PostgreSQL or MariaDB is recommended. Create -a database and a user with enough privileges (read, write, create -table) to that database. +For larger installations, PostgreSQL is recommended. Create a database +and a user with enough privileges (read, write, create table) to that +database. From 9220c4205d610d7e4dedc37ae25106001e9916f9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 16 Feb 2024 06:20:07 +0000 Subject: [PATCH 002/162] Update dependency postcss-import to v16.0.1 --- modules/webapp/package-lock.json | 12 ++++++------ website/yarn.lock | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/modules/webapp/package-lock.json b/modules/webapp/package-lock.json index b9b2cc19..5cfe35ab 100644 --- a/modules/webapp/package-lock.json +++ b/modules/webapp/package-lock.json @@ -1460,9 +1460,9 @@ } }, "node_modules/postcss-import": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-16.0.0.tgz", - "integrity": "sha512-e77lhVvrD1I2y7dYmBv0k9ULTdArgEYZt97T4w6sFIU5uxIHvDFQlKgUUyY7v7Barj0Yf/zm5A4OquZN7jKm5Q==", + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-16.0.1.tgz", + "integrity": "sha512-i2Pci0310NaLHr/5JUFSw1j/8hf1CzwMY13g6ZDxgOavmRHQi2ba3PmUHoihO+sjaum+KmCNzskNsw7JDrg03g==", "dev": true, "dependencies": { "postcss-value-parser": "^4.0.0", @@ -3444,9 +3444,9 @@ "requires": {} }, "postcss-import": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-16.0.0.tgz", - "integrity": "sha512-e77lhVvrD1I2y7dYmBv0k9ULTdArgEYZt97T4w6sFIU5uxIHvDFQlKgUUyY7v7Barj0Yf/zm5A4OquZN7jKm5Q==", + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-16.0.1.tgz", + "integrity": "sha512-i2Pci0310NaLHr/5JUFSw1j/8hf1CzwMY13g6ZDxgOavmRHQi2ba3PmUHoihO+sjaum+KmCNzskNsw7JDrg03g==", "dev": true, "requires": { "postcss-value-parser": "^4.0.0", diff --git a/website/yarn.lock b/website/yarn.lock index ccd8de05..9c295fd8 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -593,9 +593,9 @@ graceful-fs@^4.1.6, graceful-fs@^4.2.0: integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== hasown@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" - integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== + version "2.0.1" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.1.tgz#26f48f039de2c0f8d3356c223fb8d50253519faa" + integrity sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA== dependencies: function-bind "^1.1.2" @@ -928,9 +928,9 @@ postcss-import@^15.1.0: resolve "^1.1.7" postcss-import@^16.0.0: - version "16.0.0" - resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-16.0.0.tgz#2be1c78391b3f43f129fccfe5cc0cc1a11baef54" - integrity sha512-e77lhVvrD1I2y7dYmBv0k9ULTdArgEYZt97T4w6sFIU5uxIHvDFQlKgUUyY7v7Barj0Yf/zm5A4OquZN7jKm5Q== + version "16.0.1" + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-16.0.1.tgz#c2e0478c5af8cb39ab3964c35d8fee8e70c362b8" + integrity sha512-i2Pci0310NaLHr/5JUFSw1j/8hf1CzwMY13g6ZDxgOavmRHQi2ba3PmUHoihO+sjaum+KmCNzskNsw7JDrg03g== dependencies: postcss-value-parser "^4.0.0" read-cache "^1.0.0" From d29d6adbac630118d8dd01af239a0f4514948d7e Mon Sep 17 00:00:00 2001 From: nekrondev Date: Sat, 17 Feb 2024 12:07:26 +0100 Subject: [PATCH 003/162] fix(webapp): downstream keep-alive events to backend preventing timeout Updated http4s component fixed idleTimeout between backend and proxy / client that requires now to send keep-alive messages from client to backend to prevent a timeout after 60s. This resolves #2497. --- modules/webapp/src/main/webjar/docspell.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/webapp/src/main/webjar/docspell.js b/modules/webapp/src/main/webjar/docspell.js index 8a9d24f6..1c5d5b5d 100644 --- a/modules/webapp/src/main/webjar/docspell.js +++ b/modules/webapp/src/main/webjar/docspell.js @@ -152,6 +152,8 @@ function initWS() { var dataJSON = JSON.parse(event.data); if (dataJSON.tag !== "keep-alive") { elmApp.ports.receiveWsMessage.send(dataJSON); + } else { + dsWebSocket.send(event.data); } } }); From 62f3cefc44e512f07778100cf01ff3c53e74c207 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Wed, 21 Feb 2024 06:10:49 +0000 Subject: [PATCH 004/162] Update mariadb-java-client to 3.3.3 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 06ddee2e..57ed59a6 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -32,7 +32,7 @@ object Dependencies { val LevigoJbig2Version = "2.0" val Log4sVersion = "1.10.0" val LogbackVersion = "1.2.10" - val MariaDbVersion = "3.3.2" + val MariaDbVersion = "3.3.3" val MUnitVersion = "0.7.29" val MUnitCatsEffectVersion = "1.0.7" val PdfboxVersion = "3.0.1" From 16db17d35c2a734cc4045f3e1894afa5d8078343 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Wed, 21 Feb 2024 06:10:53 +0000 Subject: [PATCH 005/162] Update postgresql to 42.7.2 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 06ddee2e..7a6925b3 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -38,7 +38,7 @@ object Dependencies { val PdfboxVersion = "3.0.1" val PdfjsViewerVersion = "2.12.313" val PoiVersion = "4.1.2" - val PostgresVersion = "42.7.1" + val PostgresVersion = "42.7.2" val PureConfigVersion = "0.17.5" val ScalaJavaTimeVersion = "2.5.0" val ScodecBitsVersion = "1.1.38" From 3a69bc5ee0a850ea368597a3981682446b84c769 Mon Sep 17 00:00:00 2001 From: John Baumlin Date: Wed, 21 Feb 2024 20:24:34 +0900 Subject: [PATCH 006/162] Adds manual backup and restore documentation for PostgreSQL as the recommended database. --- .../site/content/docs/install/download_run.md | 67 +++++++++++++++++-- 1 file changed, 61 insertions(+), 6 deletions(-) diff --git a/website/site/content/docs/install/download_run.md b/website/site/content/docs/install/download_run.md index aecfe49b..97641911 100644 --- a/website/site/content/docs/install/download_run.md +++ b/website/site/content/docs/install/download_run.md @@ -102,16 +102,71 @@ your package manager or download and unpack the new zip files. You might want to have a look at the changelog, since it is sometimes necessary to modify the config file. -## More +## Backup & Restore + +There are several supported [databases](https://docspell.org/docs/configure/database/) but PostgreSQL is recommended for Docspell. + +First to prevent any currently queued data from being lost, it's good practice to +shutdown `docspell-joex` and `docspell-restserver` system services +before taking a database backup of Docspell. In order to stop Docspell, +you need to perform these on the system that docspell is running on. +```bash +sudo systemctl stop docspell-joex +sudo systemctl stop docspell-restserver +``` + +Next, you can become the `postgres` user or database admin user on +your PostgreSQL server/microservice and backup the database. +Note that this will take some time to complete depending on the size of your database. +We'll assume in our guide example that `docspelldb` is the name of your database: +```bash +pg_dump docspelldb > docspelldb_backup.sql +``` + +Optionally, once the docspell backup is complete you can +use `rsync` or `scp` to send `docspelldb_backup.sql` to a backup server. +Now that you have known backup(s) of Docspell, you may one day have to restore a backup. + +Let's test restoring a backup. You can start a PostgreSQL shell by using +the `psql` command as the `postgres` user or a PostgreSQL admin account. +If the database is corrupted or still exists, you will first need to remove it. +Warning: By performing this next step you are *deleting* your database. +```sql +DROP DATABASE docspelldb; +``` + +And now we'll create a new database for your backup to restore to. +Optionally, you can add UTF-8 encoding for better multilingual support. +This example will assume the owner of the database is named `docspell`. +```sql +CREATE DATABASE docspelldb WITH OWNER = 'docspell' ENCODING = 'UTF8' template = 'template0'; +``` + +Now that we have a new database, we can restore the backup. +Exit your database with `\q` and in bash execute the following +commands as the `postgres` or admin user. +This command will also take some time to complete. +```bash +psql docspelldb < docspelldb_backup.sql +``` + +Now your database should be fully restored from your backup! +Let's go to the Docspell server and restart the Docspell services. +```bash +sudo systemctl stop docspell-joex +sudo systemctl stop docspell-restserver +``` + +If your database and owner are the same as your initial configuration, +and you see your docspell data restored, you have sucessfully restored +your PostgreSQL backup of Docspell manually. ### Fulltext Search -Fulltext search is powered by [SOLR](https://solr.apache.org). You -need to install solr and create a core for docspell. Then cange the +Fulltext search can also be powered by [SOLR](https://solr.apache.org). +You need to install solr and create a core for docspell. Then cange the solr url for both components (restserver and joex) accordingly. See -the relevant section in the [config -page](@/docs/configure/fulltext-search.md). - +the relevant section in the [config page](@/docs/configure/fulltext-search.md). ### Watching a directory From 063a702a941bbcb32280a933a2e1c5caee3ee62c Mon Sep 17 00:00:00 2001 From: John Baumlin Date: Fri, 23 Feb 2024 00:21:52 +0900 Subject: [PATCH 007/162] Also including a minor documentation update for JpnVert --- website/site/content/docs/dev/add-language.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/site/content/docs/dev/add-language.md b/website/site/content/docs/dev/add-language.md index 479111bc..f3fdb325 100644 --- a/website/site/content/docs/dev/add-language.md +++ b/website/site/content/docs/dev/add-language.md @@ -11,7 +11,7 @@ Then there are other commits and issues to look at: - [Add Polish](https://github.com/eikek/docspell/issues/1345) and [PR](https://github.com/eikek/docspell/pull/1559/commits/5ec311c331f1f78cc483cce54d5ab0e08454fea8) - [Add Spanish language](https://github.com/eikek/docspell/commit/26dff18ae0d32ce2b32b4d11ce381ada0e99314f) - [Add Latvian language](https://github.com/eikek/docspell/issues/679) and [PR](https://github.com/eikek/docspell/pull/694/commits/9991ad5fcc43ccefe011a6cc4d01bdae4bcd4573) -- [Add Japanese language](https://github.com/eikek/docspell/issues/948) and [PR](https://github.com/eikek/docspell/pull/961/commits/f994d4b2488e64668ee064676f8c6469d9ccc1be), had some corrections: [1](https://github.com/eikek/docspell/commit/c59d4f8a6d021ec4b01a92320c211248503f16a5), [Issue](https://github.com/eikek/docspell/issues/973) +- [Add Japanese language](https://github.com/eikek/docspell/issues/948) and [PR](https://github.com/eikek/docspell/pull/961/commits/f994d4b2488e64668ee064676f8c6469d9ccc1be), had some corrections: [1](https://github.com/eikek/docspell/commit/c59d4f8a6d021ec4b01a92320c211248503f16a5), [Issue](https://github.com/eikek/docspell/issues/973), [2](https://github.com/eikek/docspell/pull/2505), [Issue](https://github.com/eikek/docspell/issues/2445) - [Add Hebrew language](https://github.com/eikek/docspell/pull/1027) Some older commits may be a bit out of date, but still show the From c82496292551f14be661f6d99af2d8d1a69661bd Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Fri, 23 Feb 2024 06:12:46 +0000 Subject: [PATCH 008/162] Update pureconfig, pureconfig-ip4s to 0.17.6 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 2f9e1219..d1909b98 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -39,7 +39,7 @@ object Dependencies { val PdfjsViewerVersion = "2.12.313" val PoiVersion = "4.1.2" val PostgresVersion = "42.7.2" - val PureConfigVersion = "0.17.5" + val PureConfigVersion = "0.17.6" val ScalaJavaTimeVersion = "2.5.0" val ScodecBitsVersion = "1.1.38" val ScribeVersion = "3.13.0" From 21bbe67b0988763568404d75ab10dc1353a58c83 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Fri, 23 Feb 2024 06:12:50 +0000 Subject: [PATCH 009/162] Update sbt to 1.9.9 --- project/build.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/build.properties b/project/build.properties index abbbce5d..04267b14 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1 +1 @@ -sbt.version=1.9.8 +sbt.version=1.9.9 From bad82d01a5b2e9f298085db8b58ddd14642ab1cf Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 23 Feb 2024 06:21:58 +0000 Subject: [PATCH 010/162] Update postgres Docker tag to v16.2 --- docker/docker-compose/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/docker-compose/docker-compose.yml b/docker/docker-compose/docker-compose.yml index 4a8af01c..f801b8fa 100644 --- a/docker/docker-compose/docker-compose.yml +++ b/docker/docker-compose/docker-compose.yml @@ -109,7 +109,7 @@ services: - restserver db: - image: postgres:16.1 + image: postgres:16.2 container_name: postgres_db restart: unless-stopped volumes: From 10036cd57bb41b31856309f9fd4232d6af09ce45 Mon Sep 17 00:00:00 2001 From: eikek Date: Mon, 26 Feb 2024 10:20:45 +0100 Subject: [PATCH 011/162] Fix build when bloop plugin is present When using sbt-bloop, the build doesn't compile anymore. The reason seems to be incomptible `sbt-io` dependencies pulled in from `sbt-bloop` and `sbt-native-packager` (as well as `sbt-github-pages`). Interestingly, the build compiles fine if either one of these plugins is removed. Only together with `sbt-bloop` the build fails to compile. The workaround is to explicitely pull in the io depenency based on the sbt version in use. --- project/build.sbt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/project/build.sbt b/project/build.sbt index 6bb9a065..4f90b20e 100644 --- a/project/build.sbt +++ b/project/build.sbt @@ -1,2 +1,7 @@ -libraryDependencies ++= - Seq("com.typesafe" % "config" % "1.4.3") +libraryDependencies ++= Seq( + "com.typesafe" % "config" % "1.4.3", + // sbt-native-packager and sbt-github-pages pull in an incompatible + // version of sbt-io which will break the build as soon as the + // sbt-bloop plugin is also present + "org.scala-sbt" %% "io" % sbtVersion.value +) From d4eeb01c7c0faba65471540f9cb160fda54706b8 Mon Sep 17 00:00:00 2001 From: eikek Date: Mon, 26 Feb 2024 17:32:32 +0100 Subject: [PATCH 012/162] Fix link to modheader plugin --- Changelog.md | 2 +- website/site/config.toml | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Changelog.md b/Changelog.md index efa13671..6b67a983 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1020,7 +1020,7 @@ Additionally there are some other minor features and bug fixes. to be able to add a request header. Check [this for firefox](https://addons.mozilla.org/en-US/firefox/addon/modheader-firefox/) or [this for - chromium](https://chrome.google.com/webstore/detail/modheader/idgpnmonknjnojddfkpgkljpfnnfcklj) + chromium](https://chromewebstore.google.com/detail/modheader-modify-http-hea/idgpnmonknjnojddfkpgkljpfnnfcklj) - then add the request header `Docspell-Ui` with value `1`. Reloading the page gets you back the old ui. - With new Web-UI, certain features and fixes were realized, but not diff --git a/website/site/config.toml b/website/site/config.toml index 0b82167c..afc00c09 100644 --- a/website/site/config.toml +++ b/website/site/config.toml @@ -24,7 +24,8 @@ skip_prefixes = [ "http://localhost", "https://docs.github.com", # doesn't allow checking anymore "/openapi", - "https://www.abisource.com" # has bad ssl config + "https://www.abisource.com", # has bad ssl config + "https://chromewebstore.google.com" # too many redirects reported ] skip_anchor_prefixes = [ "https://github.com", From 3e76385d083e803cea854b3212bec947348dca60 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Tue, 27 Feb 2024 06:11:48 +0000 Subject: [PATCH 013/162] Update scala-library to 2.13.13 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index b51afe39..913d3e1d 100644 --- a/build.sbt +++ b/build.sbt @@ -15,7 +15,7 @@ val scalafixSettings = Seq( val sharedSettings = Seq( organization := "com.github.eikek", - scalaVersion := "2.13.12", + scalaVersion := "2.13.13", organizationName := "Eike K. & Contributors", licenses += ("AGPL-3.0-or-later", url( "https://spdx.org/licenses/AGPL-3.0-or-later.html" From 0a987f5b66f02ba6c74081479e3f2923123fc7a9 Mon Sep 17 00:00:00 2001 From: eikek Date: Thu, 29 Feb 2024 21:52:00 +0100 Subject: [PATCH 014/162] Change docker base images to 3.19.1 See #2504, alpine edge introduced a version of tesseract that is problematic to use from within docspell --- docker/dockerfiles/joex.dockerfile | 2 +- docker/dockerfiles/restserver.dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/dockerfiles/joex.dockerfile b/docker/dockerfiles/joex.dockerfile index c99f5e19..df9c90c6 100644 --- a/docker/dockerfiles/joex.dockerfile +++ b/docker/dockerfiles/joex.dockerfile @@ -1,4 +1,4 @@ -FROM alpine:20231219 +FROM alpine:3.19.1 ARG version= ARG joex_url= diff --git a/docker/dockerfiles/restserver.dockerfile b/docker/dockerfiles/restserver.dockerfile index 482324f8..84726bf3 100644 --- a/docker/dockerfiles/restserver.dockerfile +++ b/docker/dockerfiles/restserver.dockerfile @@ -1,4 +1,4 @@ -FROM alpine:20231219 +FROM alpine:3.19.1 ARG version= ARG restserver_url= From 4200edf67544e9e2afd94c7f4f7ee3238234715e Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Fri, 1 Mar 2024 06:12:14 +0000 Subject: [PATCH 015/162] Update swagger-ui to 5.11.8 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index d1909b98..1f43274f 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -48,7 +48,7 @@ object Dependencies { val StanfordNlpVersion = "4.5.6" val TikaVersion = "2.9.1" val YamuscaVersion = "0.10.0" - val SwaggerUIVersion = "5.10.3" + val SwaggerUIVersion = "5.11.8" val TestContainerVersion = "0.40.14" val TwelveMonkeysVersion = "3.10.1" val JQueryVersion = "3.5.1" From d30cc73e539ec809d749183a60827bbdb1ca4668 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Sun, 3 Mar 2024 06:11:56 +0000 Subject: [PATCH 016/162] Update sbt-scalafix to 0.12.0 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index c0842f3c..d49c952b 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,4 +1,4 @@ -addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.11.1") +addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.12.0") addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.11.0") addSbtPlugin("com.github.eikek" % "sbt-openapi-schema" % "0.11.0") addSbtPlugin("com.github.sbt" % "sbt-pgp" % "2.2.1") From 7ea9d2e6345419d3ab0b95e7036ef63451046b49 Mon Sep 17 00:00:00 2001 From: John Baumlin Date: Sun, 3 Mar 2024 17:25:04 +0900 Subject: [PATCH 017/162] Pushing a minor fix to the bash commands. --- website/site/content/docs/install/download_run.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/website/site/content/docs/install/download_run.md b/website/site/content/docs/install/download_run.md index 97641911..9ce95d30 100644 --- a/website/site/content/docs/install/download_run.md +++ b/website/site/content/docs/install/download_run.md @@ -125,12 +125,12 @@ pg_dump docspelldb > docspelldb_backup.sql Optionally, once the docspell backup is complete you can use `rsync` or `scp` to send `docspelldb_backup.sql` to a backup server. -Now that you have known backup(s) of Docspell, you may one day have to restore a backup. +Now that you have known backup(s) of Docspell's database, you may one day have to restore this backup. -Let's test restoring a backup. You can start a PostgreSQL shell by using +Let's test try restoring it. You can start a PostgreSQL shell by using the `psql` command as the `postgres` user or a PostgreSQL admin account. If the database is corrupted or still exists, you will first need to remove it. -Warning: By performing this next step you are *deleting* your database. +Warning: By performing this next step you are **deleting** your database. ```sql DROP DATABASE docspelldb; ``` @@ -153,8 +153,8 @@ psql docspelldb < docspelldb_backup.sql Now your database should be fully restored from your backup! Let's go to the Docspell server and restart the Docspell services. ```bash -sudo systemctl stop docspell-joex -sudo systemctl stop docspell-restserver +sudo systemctl start docspell-joex +sudo systemctl start docspell-restserver ``` If your database and owner are the same as your initial configuration, From cea7948c2ebb6387836dc2b7e333b49c49842781 Mon Sep 17 00:00:00 2001 From: eikek Date: Sun, 3 Mar 2024 09:46:15 +0100 Subject: [PATCH 018/162] Remove stackoverflow from external link check It returns FORBIDDEN, so can not be checked it seems --- website/site/config.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/website/site/config.toml b/website/site/config.toml index afc00c09..b8ad4b2e 100644 --- a/website/site/config.toml +++ b/website/site/config.toml @@ -26,6 +26,7 @@ skip_prefixes = [ "/openapi", "https://www.abisource.com", # has bad ssl config "https://chromewebstore.google.com" # too many redirects reported + "https://stackoverflow.com/" # forbidden ] skip_anchor_prefixes = [ "https://github.com", From 924aaf720e3ee6e07ea49a3d50d63b2254da4273 Mon Sep 17 00:00:00 2001 From: eikek Date: Sun, 3 Mar 2024 18:43:54 +0100 Subject: [PATCH 019/162] Fix compile warnings after scala update --- .../docspell/addons/AddonExecutorTest.scala | 2 +- .../docspell/addons/AddonGenerator.scala | 9 +-- .../test/scala/docspell/addons/Fixtures.scala | 6 +- .../nlp/StanfordNerAnnotatorSuite.scala | 2 +- .../main/scala/docspell/backend/Config.scala | 2 +- .../scala/docspell/backend/auth/Login.scala | 22 +++++-- .../docspell/backend/joex/AddonOps.scala | 2 +- .../docspell/backend/joex/AddonPrepare.scala | 2 +- .../docspell/backend/ops/OCollective.scala | 13 +++- .../docspell/backend/ops/ONotification.scala | 4 +- .../scala/docspell/backend/ops/OTotp.scala | 16 +++-- .../scala/docspell/backend/ops/OUpload.scala | 2 +- .../docspell/backend/auth/AuthTokenTest.scala | 14 ++-- .../scala/docspell/common/LenientUri.scala | 10 ++- .../main/scala/docspell/common/MimeType.scala | 2 +- .../scala/docspell/common/UrlMatcher.scala | 2 +- .../docspell/convert/extern/OcrMyPdf.scala | 2 +- .../docspell/convert/extern/Tesseract.scala | 2 +- .../docspell/convert/extern/Unoconv.scala | 2 +- .../docspell/convert/ConversionTest.scala | 4 +- .../docspell/ftssolr/SolrMigration.scala | 6 +- .../scala/docspell/ftssolr/SolrSetup.scala | 16 +++-- .../joex/emptytrash/EmptyTrashTask.scala | 2 +- .../docspell/joex/filecopy/FileCopyTask.scala | 16 +++-- .../docspell/joex/hk/CleanupResult.scala | 4 +- .../docspell/joex/hk/HouseKeepingTask.scala | 2 +- .../docspell/joex/process/FindProposal.scala | 4 +- .../docspell/joex/process/ReProcessItem.scala | 4 +- .../docspell/joex/process/TextAnalysis.scala | 2 +- .../docspell/joex/routes/JoexRoutes.scala | 8 ++- .../joex/scanmailbox/ScanMailboxTask.scala | 2 +- .../docspell/notification/api/Event.scala | 2 +- .../scala/docspell/query/ParseFailure.scala | 10 ++- .../restserver/conv/Conversions.scala | 64 ++++++++++--------- .../restserver/http4s/BinaryUtil.scala | 10 +-- .../http4s/ThrowableResponseMapper.scala | 4 +- .../routes/AddonArchiveRoutes.scala | 12 ++-- .../restserver/routes/AddonRoutes.scala | 2 +- .../routes/AddonRunConfigRoutes.scala | 12 ++-- .../restserver/routes/AddonRunRoutes.scala | 2 +- .../restserver/routes/AttachmentRoutes.scala | 30 +++++---- .../routes/CalEventCheckRoutes.scala | 4 +- .../routes/ClientSettingsRoutes.scala | 4 +- .../restserver/routes/CollectiveRoutes.scala | 4 +- .../restserver/routes/CustomFieldRoutes.scala | 2 +- .../restserver/routes/DownloadAllRoutes.scala | 2 +- .../restserver/routes/FolderRoutes.scala | 8 +-- .../restserver/routes/ItemLinkRoutes.scala | 14 ++-- .../restserver/routes/ItemRoutes.scala | 6 +- .../restserver/routes/ItemSearchPart.scala | 6 +- .../restserver/routes/LoginRoutes.scala | 18 +++++- .../restserver/routes/MailSendRoutes.scala | 10 +-- .../routes/MailSettingsRoutes.scala | 24 +++---- .../routes/NotificationRoutes.scala | 6 +- .../routes/NotifyDueItemsRoutes.scala | 3 +- .../routes/PeriodicQueryRoutes.scala | 3 +- .../restserver/routes/RegisterRoutes.scala | 16 ++--- .../restserver/routes/ScanMailboxRoutes.scala | 3 +- .../restserver/routes/ShareItemRoutes.scala | 2 +- .../restserver/routes/ShareRoutes.scala | 64 ++++++++++++++----- .../restserver/routes/TotpRoutes.scala | 17 +++-- .../restserver/routes/UserRoutes.scala | 8 +-- .../impl/PeriodicSchedulerImpl.scala | 2 +- .../scheduler/impl/SchedulerImpl.scala | 2 +- .../common/MigrateDueItemTasks.scala | 7 +- .../migration/common/MigrateNotifyTasks.scala | 2 +- .../docspell/store/SchemaMigrateConfig.scala | 6 +- .../docspell/store/file/FileUrlReader.scala | 2 +- .../scala/docspell/store/qb/DBFunction.scala | 2 +- .../main/scala/docspell/store/qb/DSL.scala | 16 ++--- .../main/scala/docspell/store/qb/Select.scala | 18 ++++-- .../docspell/store/records/RCollective.scala | 2 +- .../scala/docspell/store/records/RTag.scala | 4 +- .../scala/docspell/store/records/RTotp.scala | 2 +- .../docspell/store/records/RUserEmail.scala | 4 +- .../docspell/store/records/RUserImap.scala | 4 +- .../scala/docspell/store/StoreFixture.scala | 2 +- .../docspell/store/fts/TempFtsOpsTest.scala | 2 +- .../docspell/store/qb/QueryBuilderTest.scala | 4 +- 79 files changed, 383 insertions(+), 256 deletions(-) diff --git a/modules/addonlib/src/test/scala/docspell/addons/AddonExecutorTest.scala b/modules/addonlib/src/test/scala/docspell/addons/AddonExecutorTest.scala index ec2bd862..940fe091 100644 --- a/modules/addonlib/src/test/scala/docspell/addons/AddonExecutorTest.scala +++ b/modules/addonlib/src/test/scala/docspell/addons/AddonExecutorTest.scala @@ -142,7 +142,7 @@ class AddonExecutorTest extends CatsEffectSuite with Fixtures with TestLoggingCo AddonExecutionResult.executionResultMonoid .combine( AddonExecutionResult.empty, - AddonExecutionResult(Nil, true) + AddonExecutionResult(Nil, pure = true) ) .pure ) diff --git a/modules/addonlib/src/test/scala/docspell/addons/AddonGenerator.scala b/modules/addonlib/src/test/scala/docspell/addons/AddonGenerator.scala index 63c162ee..1f80f5d2 100644 --- a/modules/addonlib/src/test/scala/docspell/addons/AddonGenerator.scala +++ b/modules/addonlib/src/test/scala/docspell/addons/AddonGenerator.scala @@ -27,9 +27,9 @@ object AddonGenerator { ): Resource[IO, AddonArchive] = output match { case None => - generate(name, version, false)("exit 0") + generate(name, version, collectOutput = false)("exit 0") case Some(out) => - generate(name, version, true)( + generate(name, version, collectOutput = true)( s""" |cat <<-EOF |${out.asJson.noSpaces} @@ -77,8 +77,9 @@ object AddonGenerator { meta = AddonMeta.Meta(name, version, None), triggers = Set(AddonTriggerType.ExistingItem: AddonTriggerType).some, args = None, - runner = - AddonMeta.Runner(None, None, AddonMeta.TrivialRunner(true, "addon.sh").some).some, + runner = AddonMeta + .Runner(None, None, AddonMeta.TrivialRunner(enable = true, "addon.sh").some) + .some, options = AddonMeta.Options(networking = !collectOutput, collectOutput = collectOutput).some ) diff --git a/modules/addonlib/src/test/scala/docspell/addons/Fixtures.scala b/modules/addonlib/src/test/scala/docspell/addons/Fixtures.scala index 12cb24c8..f169d3dd 100644 --- a/modules/addonlib/src/test/scala/docspell/addons/Fixtures.scala +++ b/modules/addonlib/src/test/scala/docspell/addons/Fixtures.scala @@ -40,13 +40,13 @@ trait Fixtures extends TestLoggingConfig { self: CatsEffectSuite => ), None, runner = Runner( - nix = NixRunner(true).some, + nix = NixRunner(enable = true).some, docker = DockerRunner( enable = true, image = None, build = "Dockerfile".some ).some, - trivial = TrivialRunner(true, "src/addon.sh").some + trivial = TrivialRunner(enable = true, "src/addon.sh").some ).some, options = Options(networking = true, collectOutput = true).some ) @@ -65,7 +65,7 @@ trait Fixtures extends TestLoggingConfig { self: CatsEffectSuite => runner: RunnerType, runners: RunnerType* ): AddonExecutorConfig = { - val nspawn = NSpawn(false, "sudo", "systemd-nspawn", Duration.millis(100)) + val nspawn = NSpawn(enabled = false, "sudo", "systemd-nspawn", Duration.millis(100)) AddonExecutorConfig( runner = runner :: runners.toList, runTimeout = Duration.minutes(2), diff --git a/modules/analysis/src/test/scala/docspell/analysis/nlp/StanfordNerAnnotatorSuite.scala b/modules/analysis/src/test/scala/docspell/analysis/nlp/StanfordNerAnnotatorSuite.scala index 15bc0704..fc4b0010 100644 --- a/modules/analysis/src/test/scala/docspell/analysis/nlp/StanfordNerAnnotatorSuite.scala +++ b/modules/analysis/src/test/scala/docspell/analysis/nlp/StanfordNerAnnotatorSuite.scala @@ -22,7 +22,7 @@ import munit._ class StanfordNerAnnotatorSuite extends FunSuite with TestLoggingConfig { lazy val germanClassifier = - new StanfordCoreNLP(Properties.nerGerman(None, false)) + new StanfordCoreNLP(Properties.nerGerman(None, highRecall = false)) lazy val englishClassifier = new StanfordCoreNLP(Properties.nerEnglish(None)) diff --git a/modules/backend/src/main/scala/docspell/backend/Config.scala b/modules/backend/src/main/scala/docspell/backend/Config.scala index 721f30d5..9f4497fc 100644 --- a/modules/backend/src/main/scala/docspell/backend/Config.scala +++ b/modules/backend/src/main/scala/docspell/backend/Config.scala @@ -90,6 +90,6 @@ object Config { } object Addons { val disabled: Addons = - Addons(false, false, UrlMatcher.False, UrlMatcher.True) + Addons(enabled = false, allowImpure = false, UrlMatcher.False, UrlMatcher.True) } } diff --git a/modules/backend/src/main/scala/docspell/backend/auth/Login.scala b/modules/backend/src/main/scala/docspell/backend/auth/Login.scala index f8003505..00403b7f 100644 --- a/modules/backend/src/main/scala/docspell/backend/auth/Login.scala +++ b/modules/backend/src/main/scala/docspell/backend/auth/Login.scala @@ -127,7 +127,7 @@ object Login { _ <- logF.trace(s"Account lookup: $data") res <- data match { case Some(d) if checkNoPassword(d, Set(AccountSource.OpenId)) => - doLogin(config, d.account, false) + doLogin(config, d.account, rememberMe = false) case Some(d) if checkNoPassword(d, Set(AccountSource.Local)) => config.onAccountSourceConflict match { case OnAccountSourceConflict.Fail => @@ -145,7 +145,7 @@ object Login { AccountSource.OpenId ) ) - res <- doLogin(config, d.account, false) + res <- doLogin(config, d.account, rememberMe = false) } yield res } case _ => @@ -212,7 +212,12 @@ object Login { val okResult: F[Result] = for { _ <- store.transact(RUser.updateLogin(sf.token.account)) - newToken <- AuthToken.user(sf.token.account, false, config.serverSecret, None) + newToken <- AuthToken.user( + sf.token.account, + requireSecondFactor = false, + config.serverSecret, + None + ) rem <- OptionT .whenF(sf.rememberMe && config.rememberMe.enabled)( insertRememberToken(store, sf.token.account, config) @@ -239,7 +244,9 @@ object Login { (for { _ <- validateToken key <- EitherT.fromOptionF( - store.transact(RTotp.findEnabledByUserId(sf.token.account.userId, true)), + store.transact( + RTotp.findEnabledByUserId(sf.token.account.userId, enabled = true) + ), Result.invalidAuth ) now <- EitherT.right[Result](Timestamp.current[F]) @@ -255,7 +262,12 @@ object Login { def okResult(acc: AccountInfo) = for { _ <- store.transact(RUser.updateLogin(acc)) - token <- AuthToken.user(acc, false, config.serverSecret, None) + token <- AuthToken.user( + acc, + requireSecondFactor = false, + config.serverSecret, + None + ) } yield Result.ok(token, None) def rememberedLogin(rid: Ident) = diff --git a/modules/backend/src/main/scala/docspell/backend/joex/AddonOps.scala b/modules/backend/src/main/scala/docspell/backend/joex/AddonOps.scala index 1cfa2a9e..52ccaf8c 100644 --- a/modules/backend/src/main/scala/docspell/backend/joex/AddonOps.scala +++ b/modules/backend/src/main/scala/docspell/backend/joex/AddonOps.scala @@ -93,7 +93,7 @@ object AddonOps { AddonResult.executionFailed( new Exception(s"Addon run config ${id.id} not found.") ) :: Nil, - false + pure = false ) :: Nil, Nil ) diff --git a/modules/backend/src/main/scala/docspell/backend/joex/AddonPrepare.scala b/modules/backend/src/main/scala/docspell/backend/joex/AddonPrepare.scala index 505b781d..63d4c7d0 100644 --- a/modules/backend/src/main/scala/docspell/backend/joex/AddonPrepare.scala +++ b/modules/backend/src/main/scala/docspell/backend/joex/AddonPrepare.scala @@ -72,7 +72,7 @@ private[joex] class AddonPrepare[F[_]: Sync](store: Store[F]) extends LoggerExte token <- AuthToken.user( account, - false, + requireSecondFactor = false, secret.getOrElse(ByteVector.empty), tokenValidity.some ) diff --git a/modules/backend/src/main/scala/docspell/backend/ops/OCollective.scala b/modules/backend/src/main/scala/docspell/backend/ops/OCollective.scala index d96a7333..b75db20e 100644 --- a/modules/backend/src/main/scala/docspell/backend/ops/OCollective.scala +++ b/modules/backend/src/main/scala/docspell/backend/ops/OCollective.scala @@ -194,7 +194,14 @@ object OCollective { id <- Ident.randomId[F] settings = sett.emptyTrash.getOrElse(EmptyTrash.default) args = EmptyTrashArgs(cid, settings.minAge) - ut = UserTask(id, EmptyTrashArgs.taskName, true, settings.schedule, None, args) + ut = UserTask( + id, + EmptyTrashArgs.taskName, + enabled = true, + settings.schedule, + None, + args + ) _ <- uts.updateOneTask(UserTaskScope.collective(cid), args.makeSubject.some, ut) _ <- joex.notifyAllNodes } yield () @@ -220,7 +227,7 @@ object OCollective { ut = UserTask( id, LearnClassifierArgs.taskName, - true, + enabled = true, CalEvent(WeekdayComponent.All, DateEvent.All, TimeEvent.All), None, args @@ -239,7 +246,7 @@ object OCollective { ut = UserTask( id, EmptyTrashArgs.taskName, - true, + enabled = true, CalEvent(WeekdayComponent.All, DateEvent.All, TimeEvent.All), None, args diff --git a/modules/backend/src/main/scala/docspell/backend/ops/ONotification.scala b/modules/backend/src/main/scala/docspell/backend/ops/ONotification.scala index 445efab6..1cfb793b 100644 --- a/modules/backend/src/main/scala/docspell/backend/ops/ONotification.scala +++ b/modules/backend/src/main/scala/docspell/backend/ops/ONotification.scala @@ -114,14 +114,14 @@ object ONotification { ) _ <- notMod.send(logbuf._2.andThen(log), ev, ch) logs <- logbuf._1.get - res = SendTestResult(true, logs) + res = SendTestResult(success = true, logs) } yield res).attempt .map { case Right(res) => res case Left(ex) => val ev = LogEvent.of(Level.Error, "Failed sending sample event").addError(ex) - SendTestResult(false, Vector(ev)) + SendTestResult(success = false, Vector(ev)) } def listChannels(userId: Ident): F[Vector[Channel]] = diff --git a/modules/backend/src/main/scala/docspell/backend/ops/OTotp.scala b/modules/backend/src/main/scala/docspell/backend/ops/OTotp.scala index 4f18a52a..768ba552 100644 --- a/modules/backend/src/main/scala/docspell/backend/ops/OTotp.scala +++ b/modules/backend/src/main/scala/docspell/backend/ops/OTotp.scala @@ -120,7 +120,9 @@ object OTotp { def confirmInit(accountId: AccountInfo, otp: OnetimePassword): F[ConfirmResult] = for { _ <- log.info(s"Confirm TOTP setup for account ${accountId.asString}") - key <- store.transact(RTotp.findEnabledByUserId(accountId.userId, false)) + key <- store.transact( + RTotp.findEnabledByUserId(accountId.userId, enabled = false) + ) now <- Timestamp.current[F] res <- key match { case None => @@ -129,7 +131,7 @@ object OTotp { val check = totp.checkPassword(r.secret, otp, now.value) if (check) store - .transact(RTotp.setEnabled(accountId.userId, true)) + .transact(RTotp.setEnabled(accountId.userId, enabled = true)) .map(_ => ConfirmResult.Success) else ConfirmResult.Failed.pure[F] } @@ -140,7 +142,7 @@ object OTotp { case Some(pw) => for { _ <- log.info(s"Validating TOTP, because it is requested to disable it.") - key <- store.transact(RTotp.findEnabledByLogin(accountId, true)) + key <- store.transact(RTotp.findEnabledByLogin(accountId, enabled = true)) now <- Timestamp.current[F] res <- key match { case None => @@ -149,7 +151,7 @@ object OTotp { val check = totp.checkPassword(r.secret, pw, now.value) if (check) UpdateResult.fromUpdate( - store.transact(RTotp.setEnabled(r.userId, false)) + store.transact(RTotp.setEnabled(r.userId, enabled = false)) ) else log.info(s"TOTP code was invalid. Not disabling it.") *> UpdateResult @@ -160,15 +162,15 @@ object OTotp { case None => UpdateResult.fromUpdate { (for { - key <- OptionT(RTotp.findEnabledByLogin(accountId, true)) - n <- OptionT.liftF(RTotp.setEnabled(key.userId, false)) + key <- OptionT(RTotp.findEnabledByLogin(accountId, enabled = true)) + n <- OptionT.liftF(RTotp.setEnabled(key.userId, enabled = false)) } yield n).mapK(store.transform).getOrElse(0) } } def state(acc: AccountInfo): F[OtpState] = for { - record <- store.transact(RTotp.findEnabledByUserId(acc.userId, true)) + record <- store.transact(RTotp.findEnabledByUserId(acc.userId, enabled = true)) result = record match { case Some(r) => OtpState.Enabled(r.created) diff --git a/modules/backend/src/main/scala/docspell/backend/ops/OUpload.scala b/modules/backend/src/main/scala/docspell/backend/ops/OUpload.scala index 398543d4..a5e5f9eb 100644 --- a/modules/backend/src/main/scala/docspell/backend/ops/OUpload.scala +++ b/modules/backend/src/main/scala/docspell/backend/ops/OUpload.scala @@ -159,7 +159,7 @@ object OUpload { data.meta.skipDuplicates, data.meta.fileFilter.some, data.meta.tags.some, - false, + reprocess = false, data.meta.attachmentsOnly, data.meta.customData ) diff --git a/modules/backend/src/test/scala/docspell/backend/auth/AuthTokenTest.scala b/modules/backend/src/test/scala/docspell/backend/auth/AuthTokenTest.scala index 8c6e111f..4f453bf3 100644 --- a/modules/backend/src/test/scala/docspell/backend/auth/AuthTokenTest.scala +++ b/modules/backend/src/test/scala/docspell/backend/auth/AuthTokenTest.scala @@ -32,9 +32,12 @@ class AuthTokenTest extends CatsEffectSuite { val otherSecret = ByteVector.fromValidHex("16bad") test("validate") { - val token1 = AuthToken.user[IO](user, false, secret, None).unsafeRunSync() + val token1 = + AuthToken.user[IO](user, requireSecondFactor = false, secret, None).unsafeRunSync() val token2 = - AuthToken.user[IO](user, false, secret, Duration.seconds(10).some).unsafeRunSync() + AuthToken + .user[IO](user, requireSecondFactor = false, secret, Duration.seconds(10).some) + .unsafeRunSync() assert(token1.validate(secret, Duration.seconds(5))) assert(!token1.validate(otherSecret, Duration.seconds(5))) assert(!token1.copy(account = john).validate(secret, Duration.seconds(5))) @@ -46,9 +49,12 @@ class AuthTokenTest extends CatsEffectSuite { } test("signature") { - val token1 = AuthToken.user[IO](user, false, secret, None).unsafeRunSync() + val token1 = + AuthToken.user[IO](user, requireSecondFactor = false, secret, None).unsafeRunSync() val token2 = - AuthToken.user[IO](user, false, secret, Duration.seconds(10).some).unsafeRunSync() + AuthToken + .user[IO](user, requireSecondFactor = false, secret, Duration.seconds(10).some) + .unsafeRunSync() assert(token1.sigValid(secret)) assert(token1.sigInvalid(otherSecret)) diff --git a/modules/common/src/main/scala/docspell/common/LenientUri.scala b/modules/common/src/main/scala/docspell/common/LenientUri.scala index c9f797ab..2e2e17a0 100644 --- a/modules/common/src/main/scala/docspell/common/LenientUri.scala +++ b/modules/common/src/main/scala/docspell/common/LenientUri.scala @@ -78,7 +78,11 @@ case class LenientUri( .covary[F] .rethrow .flatMap(url => - fs2.io.readInputStream(Sync[F].delay(url.openStream()), chunkSize, true) + fs2.io.readInputStream( + Sync[F].delay(url.openStream()), + chunkSize, + closeAfterUse = true + ) ) def readText[F[_]: Sync](chunkSize: Int): F[String] = @@ -121,7 +125,7 @@ object LenientUri { val isRoot = true val isEmpty = false def /(seg: String): Path = - NonEmptyPath(NonEmptyList.of(seg), false) + NonEmptyPath(NonEmptyList.of(seg), trailingSlash = false) def asString = "/" } case object EmptyPath extends Path { @@ -129,7 +133,7 @@ object LenientUri { val isRoot = false val isEmpty = true def /(seg: String): Path = - NonEmptyPath(NonEmptyList.of(seg), false) + NonEmptyPath(NonEmptyList.of(seg), trailingSlash = false) def asString = "" } case class NonEmptyPath(segs: NonEmptyList[String], trailingSlash: Boolean) diff --git a/modules/common/src/main/scala/docspell/common/MimeType.scala b/modules/common/src/main/scala/docspell/common/MimeType.scala index 9a0e29af..8b74a2c7 100644 --- a/modules/common/src/main/scala/docspell/common/MimeType.scala +++ b/modules/common/src/main/scala/docspell/common/MimeType.scala @@ -194,7 +194,7 @@ object MimeType { val csValueStart = in.substring(n + "charset=".length).trim val csName = csValueStart.indexOf(';') match { case -1 => unquote(csValueStart).trim - case n => unquote(csValueStart.substring(0, n)).trim + case n2 => unquote(csValueStart.substring(0, n2)).trim } if (Charset.isSupported(csName)) Right((Some(Charset.forName(csName)), "")) else Right((None, "")) diff --git a/modules/common/src/main/scala/docspell/common/UrlMatcher.scala b/modules/common/src/main/scala/docspell/common/UrlMatcher.scala index de978dd9..7c58d5d7 100644 --- a/modules/common/src/main/scala/docspell/common/UrlMatcher.scala +++ b/modules/common/src/main/scala/docspell/common/UrlMatcher.scala @@ -62,7 +62,7 @@ object UrlMatcher { // strip path to only match prefixes val mPath: LenientUri.Path = NonEmptyList.fromList(url.path.segments.take(pathSegmentCount)) match { - case Some(nel) => LenientUri.NonEmptyPath(nel, false) + case Some(nel) => LenientUri.NonEmptyPath(nel, trailingSlash = false) case None => LenientUri.RootPath } diff --git a/modules/convert/src/main/scala/docspell/convert/extern/OcrMyPdf.scala b/modules/convert/src/main/scala/docspell/convert/extern/OcrMyPdf.scala index 1fc778ef..1150d913 100644 --- a/modules/convert/src/main/scala/docspell/convert/extern/OcrMyPdf.scala +++ b/modules/convert/src/main/scala/docspell/convert/extern/OcrMyPdf.scala @@ -31,7 +31,7 @@ object OcrMyPdf { "ocrmypdf", cfg.command.replace(Map("{{lang}}" -> lang.iso3)), cfg.workingDir, - false, + useStdin = false, logger, reader )(in, handler) diff --git a/modules/convert/src/main/scala/docspell/convert/extern/Tesseract.scala b/modules/convert/src/main/scala/docspell/convert/extern/Tesseract.scala index 95875f8f..39007c6c 100644 --- a/modules/convert/src/main/scala/docspell/convert/extern/Tesseract.scala +++ b/modules/convert/src/main/scala/docspell/convert/extern/Tesseract.scala @@ -31,7 +31,7 @@ object Tesseract { "tesseract", cfg.command.replace(Map("{{lang}}" -> lang.iso3)), cfg.workingDir, - false, + useStdin = false, logger, reader )(in, handler) diff --git a/modules/convert/src/main/scala/docspell/convert/extern/Unoconv.scala b/modules/convert/src/main/scala/docspell/convert/extern/Unoconv.scala index cbe0db87..01b9a444 100644 --- a/modules/convert/src/main/scala/docspell/convert/extern/Unoconv.scala +++ b/modules/convert/src/main/scala/docspell/convert/extern/Unoconv.scala @@ -29,7 +29,7 @@ object Unoconv { "unoconv", cfg.command, cfg.workingDir, - false, + useStdin = false, logger, reader )( diff --git a/modules/convert/src/test/scala/docspell/convert/ConversionTest.scala b/modules/convert/src/test/scala/docspell/convert/ConversionTest.scala index 35dfcfa6..0cb2ca65 100644 --- a/modules/convert/src/test/scala/docspell/convert/ConversionTest.scala +++ b/modules/convert/src/test/scala/docspell/convert/ConversionTest.scala @@ -69,7 +69,7 @@ class ConversionTest extends FunSuite with FileChecks with TestLoggingConfig { target ), OcrMyPdfConfig( - true, + enabled = true, SystemCommand.Config( "ocrmypdf", Seq( @@ -86,7 +86,7 @@ class ConversionTest extends FunSuite with FileChecks with TestLoggingConfig { ), target ), - ConvertConfig.DecryptPdf(true, Nil) + ConvertConfig.DecryptPdf(enabled = true, Nil) ) val conversion = diff --git a/modules/fts-solr/src/main/scala/docspell/ftssolr/SolrMigration.scala b/modules/fts-solr/src/main/scala/docspell/ftssolr/SolrMigration.scala index 2a61dac8..1ee5301a 100644 --- a/modules/fts-solr/src/main/scala/docspell/ftssolr/SolrMigration.scala +++ b/modules/fts-solr/src/main/scala/docspell/ftssolr/SolrMigration.scala @@ -45,7 +45,7 @@ object SolrMigration { description, FtsMigration.Result.reIndexAll.pure[F] ), - true + dataChangeOnly = true ) def indexAll[F[_]: Applicative]( @@ -59,7 +59,7 @@ object SolrMigration { description, FtsMigration.Result.indexAll.pure[F] ), - true + dataChangeOnly = true ) def apply[F[_]: Functor]( @@ -74,6 +74,6 @@ object SolrMigration { description, task.map(_ => FtsMigration.Result.workDone) ), - false + dataChangeOnly = false ) } diff --git a/modules/fts-solr/src/main/scala/docspell/ftssolr/SolrSetup.scala b/modules/fts-solr/src/main/scala/docspell/ftssolr/SolrSetup.scala index cf4f7edf..05649747 100644 --- a/modules/fts-solr/src/main/scala/docspell/ftssolr/SolrSetup.scala +++ b/modules/fts-solr/src/main/scala/docspell/ftssolr/SolrSetup.scala @@ -299,14 +299,22 @@ object SolrSetup { Map("add-field" -> body.asJson).asJson def string(field: Field): AddField = - AddField(field, "string", true, true, false) + AddField(field, "string", stored = true, indexed = true, multiValued = false) def textGeneral(field: Field): AddField = - AddField(field, "text_general", true, true, false) + AddField(field, "text_general", stored = true, indexed = true, multiValued = false) def textLang(field: Field, lang: Language): AddField = - if (lang == Language.Czech) AddField(field, s"text_cz", true, true, false) - else AddField(field, s"text_${lang.iso2}", true, true, false) + if (lang == Language.Czech) + AddField(field, s"text_cz", stored = true, indexed = true, multiValued = false) + else + AddField( + field, + s"text_${lang.iso2}", + stored = true, + indexed = true, + multiValued = false + ) } case class DeleteField(name: Field) diff --git a/modules/joex/src/main/scala/docspell/joex/emptytrash/EmptyTrashTask.scala b/modules/joex/src/main/scala/docspell/joex/emptytrash/EmptyTrashTask.scala index 536fd83f..41a03b3a 100644 --- a/modules/joex/src/main/scala/docspell/joex/emptytrash/EmptyTrashTask.scala +++ b/modules/joex/src/main/scala/docspell/joex/emptytrash/EmptyTrashTask.scala @@ -30,7 +30,7 @@ object EmptyTrashTask { UserTask( args.periodicTaskId, EmptyTrashArgs.taskName, - true, + enabled = true, ce, None, args diff --git a/modules/joex/src/main/scala/docspell/joex/filecopy/FileCopyTask.scala b/modules/joex/src/main/scala/docspell/joex/filecopy/FileCopyTask.scala index c3b4a660..7f044fe5 100644 --- a/modules/joex/src/main/scala/docspell/joex/filecopy/FileCopyTask.scala +++ b/modules/joex/src/main/scala/docspell/joex/filecopy/FileCopyTask.scala @@ -29,23 +29,23 @@ object FileCopyTask { case class CopyResult(success: Boolean, message: String, counter: List[Counter]) object CopyResult { def noSourceImpl: CopyResult = - CopyResult(false, "No source BinaryStore implementation found!", Nil) + CopyResult(success = false, "No source BinaryStore implementation found!", Nil) def noTargetImpl: CopyResult = - CopyResult(false, "No target BinaryStore implementation found!", Nil) + CopyResult(success = false, "No target BinaryStore implementation found!", Nil) def noSourceStore(id: Ident): CopyResult = CopyResult( - false, + success = false, s"No source file repo found with id: ${id.id}. Make sure it is present in the config.", Nil ) def noTargetStore: CopyResult = - CopyResult(false, "No target file repositories defined", Nil) + CopyResult(success = false, "No target file repositories defined", Nil) def success(counter: NonEmptyList[Counter]): CopyResult = - CopyResult(true, "Done", counter.toList) + CopyResult(success = true, "Done", counter.toList) implicit val binaryIdCodec: Codec[BinaryId] = Codec.from( @@ -96,8 +96,10 @@ object FileCopyTask { .fromList(targets.filter(_ != srcConfig)) .toRight(CopyResult.noTargetStore) - srcRepo = store.createFileRepository(srcConfig, true) - targetRepos = trgConfig.map(store.createFileRepository(_, false)) + srcRepo = store.createFileRepository(srcConfig, withAttributeStore = true) + targetRepos = trgConfig.map( + store.createFileRepository(_, withAttributeStore = false) + ) } yield (srcRepo, targetRepos) data match { diff --git a/modules/joex/src/main/scala/docspell/joex/hk/CleanupResult.scala b/modules/joex/src/main/scala/docspell/joex/hk/CleanupResult.scala index 931f6714..04b82435 100644 --- a/modules/joex/src/main/scala/docspell/joex/hk/CleanupResult.scala +++ b/modules/joex/src/main/scala/docspell/joex/hk/CleanupResult.scala @@ -13,8 +13,8 @@ case class CleanupResult(removed: Int, disabled: Boolean) { def asString = if (disabled) "disabled" else s"$removed" } object CleanupResult { - def of(n: Int): CleanupResult = CleanupResult(n, false) - def disabled: CleanupResult = CleanupResult(0, true) + def of(n: Int): CleanupResult = CleanupResult(n, disabled = false) + def disabled: CleanupResult = CleanupResult(0, disabled = true) implicit val jsonEncoder: Encoder[CleanupResult] = deriveEncoder diff --git a/modules/joex/src/main/scala/docspell/joex/hk/HouseKeepingTask.scala b/modules/joex/src/main/scala/docspell/joex/hk/HouseKeepingTask.scala index 519cfa03..5aa9c58a 100644 --- a/modules/joex/src/main/scala/docspell/joex/hk/HouseKeepingTask.scala +++ b/modules/joex/src/main/scala/docspell/joex/hk/HouseKeepingTask.scala @@ -55,7 +55,7 @@ object HouseKeepingTask { UserTask( periodicId, taskName, - true, + enabled = true, ce, "Docspell house-keeping".some, () diff --git a/modules/joex/src/main/scala/docspell/joex/process/FindProposal.scala b/modules/joex/src/main/scala/docspell/joex/process/FindProposal.scala index b5cf948a..5581d555 100644 --- a/modules/joex/src/main/scala/docspell/joex/process/FindProposal.scala +++ b/modules/joex/src/main/scala/docspell/joex/process/FindProposal.scala @@ -222,13 +222,13 @@ object FindProposal { def searchExact[F[_]: Sync](ctx: Context[F, Args], store: Store[F]): Finder[F] = labels => labels.toList - .traverse(nl => search(nl, true, ctx, store)) + .traverse(nl => search(nl, exact = true, ctx, store)) .map(MetaProposalList.flatten) def searchFuzzy[F[_]: Sync](ctx: Context[F, Args], store: Store[F]): Finder[F] = labels => labels.toList - .traverse(nl => search(nl, false, ctx, store)) + .traverse(nl => search(nl, exact = false, ctx, store)) .map(MetaProposalList.flatten) } diff --git a/modules/joex/src/main/scala/docspell/joex/process/ReProcessItem.scala b/modules/joex/src/main/scala/docspell/joex/process/ReProcessItem.scala index 19a5193d..39337ee7 100644 --- a/modules/joex/src/main/scala/docspell/joex/process/ReProcessItem.scala +++ b/modules/joex/src/main/scala/docspell/joex/process/ReProcessItem.scala @@ -131,10 +131,10 @@ object ReProcessItem { data.item.source, // source-id None, // folder Seq.empty, - false, + skipDuplicate = false, None, None, - true, + reprocess = true, None, // attachOnly (not used when reprocessing attachments) None // cannot retain customData from an already existing item ), diff --git a/modules/joex/src/main/scala/docspell/joex/process/TextAnalysis.scala b/modules/joex/src/main/scala/docspell/joex/process/TextAnalysis.scala index ee268949..30ff4494 100644 --- a/modules/joex/src/main/scala/docspell/joex/process/TextAnalysis.scala +++ b/modules/joex/src/main/scala/docspell/joex/process/TextAnalysis.scala @@ -75,7 +75,7 @@ object TextAnalysis { analyser: TextAnalyser[F], nerFile: RegexNerFile[F] )(rm: RAttachmentMeta): F[(RAttachmentMeta, AttachmentDates)] = { - val settings = NlpSettings(ctx.args.meta.language, false, None) + val settings = NlpSettings(ctx.args.meta.language, highRecall = false, None) for { customNer <- nerFile.makeFile(ctx.args.meta.collective) sett = settings.copy(regexNer = customNer) diff --git a/modules/joex/src/main/scala/docspell/joex/routes/JoexRoutes.scala b/modules/joex/src/main/scala/docspell/joex/routes/JoexRoutes.scala index e02ff31d..0bbc5264 100644 --- a/modules/joex/src/main/scala/docspell/joex/routes/JoexRoutes.scala +++ b/modules/joex/src/main/scala/docspell/joex/routes/JoexRoutes.scala @@ -28,7 +28,7 @@ object JoexRoutes { for { _ <- app.scheduler.notifyChange _ <- app.periodicScheduler.notifyChange - resp <- Ok(BasicResult(true, "Schedulers notified.")) + resp <- Ok(BasicResult(success = true, "Schedulers notified.")) } yield resp case GET -> Root / "running" => @@ -43,7 +43,7 @@ object JoexRoutes { _ <- Async[F].start( Temporal[F].sleep(Duration.seconds(1).toScala) *> app.initShutdown ) - resp <- Ok(BasicResult(true, "Shutdown initiated.")) + resp <- Ok(BasicResult(success = true, "Shutdown initiated.")) } yield resp case GET -> Root / "job" / Ident(id) => @@ -54,7 +54,9 @@ object JoexRoutes { job <- optJob log <- optLog } yield mkJobLog(job, log) - resp <- jAndL.map(Ok(_)).getOrElse(NotFound(BasicResult(false, "Not found"))) + resp <- jAndL + .map(Ok(_)) + .getOrElse(NotFound(BasicResult(success = false, "Not found"))) } yield resp case POST -> Root / "job" / Ident(id) / "cancel" => diff --git a/modules/joex/src/main/scala/docspell/joex/scanmailbox/ScanMailboxTask.scala b/modules/joex/src/main/scala/docspell/joex/scanmailbox/ScanMailboxTask.scala index e0219121..cdff89ea 100644 --- a/modules/joex/src/main/scala/docspell/joex/scanmailbox/ScanMailboxTask.scala +++ b/modules/joex/src/main/scala/docspell/joex/scanmailbox/ScanMailboxTask.scala @@ -323,7 +323,7 @@ object ScanMailboxTask { s"mailbox-${ctx.args.account.login.id}", args.itemFolder, Seq.empty, - true, + skipDuplicates = true, args.fileFilter.getOrElse(Glob.all), args.tags.getOrElse(Nil), args.language, diff --git a/modules/notification/api/src/main/scala/docspell/notification/api/Event.scala b/modules/notification/api/src/main/scala/docspell/notification/api/Event.scala index 47519dfc..54aff624 100644 --- a/modules/notification/api/src/main/scala/docspell/notification/api/Event.scala +++ b/modules/notification/api/src/main/scala/docspell/notification/api/Event.scala @@ -164,7 +164,7 @@ object Event { for { id1 <- Ident.randomId[F] id2 <- Ident.randomId[F] - } yield ItemSelection(account, Nel.of(id1, id2), true, baseUrl, None) + } yield ItemSelection(account, Nel.of(id1, id2), more = true, baseUrl, None) } /** Event when a new job is added to the queue */ diff --git a/modules/query/shared/src/main/scala/docspell/query/ParseFailure.scala b/modules/query/shared/src/main/scala/docspell/query/ParseFailure.scala index 9f24383c..cd63e4f2 100644 --- a/modules/query/shared/src/main/scala/docspell/query/ParseFailure.scala +++ b/modules/query/shared/src/main/scala/docspell/query/ParseFailure.scala @@ -87,10 +87,10 @@ object ParseFailure { SimpleMessage(offset, message) case InRange(offset, lower, upper) => - if (lower == upper) ExpectMessage(offset, List(lower.toString), true) + if (lower == upper) ExpectMessage(offset, List(lower.toString), exhaustive = true) else { val expect = s"$lower-$upper" - ExpectMessage(offset, List(expect), true) + ExpectMessage(offset, List(expect), exhaustive = true) } case Length(offset, expected, actual) => @@ -110,6 +110,10 @@ object ParseFailure { ExpectMessage(offset, options.take(7), options.size < 8) case WithContext(ctx, expect) => - ExpectMessage(expect.offset, s"Failed to parse near: $ctx" :: Nil, true) + ExpectMessage( + expect.offset, + s"Failed to parse near: $ctx" :: Nil, + exhaustive = true + ) } } diff --git a/modules/restserver/src/main/scala/docspell/restserver/conv/Conversions.scala b/modules/restserver/src/main/scala/docspell/restserver/conv/Conversions.scala index cc745186..78babc04 100644 --- a/modules/restserver/src/main/scala/docspell/restserver/conv/Conversions.scala +++ b/modules/restserver/src/main/scala/docspell/restserver/conv/Conversions.scala @@ -329,7 +329,7 @@ trait Conversions { sourceName, None, validFileTypes, - false, + skipDuplicates = false, Glob.all, Nil, None, @@ -641,82 +641,86 @@ trait Conversions { def basicResult(r: SetValueResult): BasicResult = r match { case SetValueResult.FieldNotFound => - BasicResult(false, "The given field is unknown") + BasicResult(success = false, "The given field is unknown") case SetValueResult.ItemNotFound => - BasicResult(false, "The given item is unknown") + BasicResult(success = false, "The given item is unknown") case SetValueResult.ValueInvalid(msg) => - BasicResult(false, s"The value is invalid: $msg") + BasicResult(success = false, s"The value is invalid: $msg") case SetValueResult.Success => - BasicResult(true, "Custom field value set successfully.") + BasicResult(success = true, "Custom field value set successfully.") } def basicResult(cr: JobCancelResult): BasicResult = cr match { - case JobCancelResult.JobNotFound => BasicResult(false, "Job not found") + case JobCancelResult.JobNotFound => BasicResult(success = false, "Job not found") case JobCancelResult.CancelRequested => - BasicResult(true, "Cancel was requested at the job executor") + BasicResult(success = true, "Cancel was requested at the job executor") case JobCancelResult.Removed => - BasicResult(true, "The job has been removed from the queue.") + BasicResult(success = true, "The job has been removed from the queue.") } def idResult(ar: AddResult, id: Ident, successMsg: String): IdResult = ar match { - case AddResult.Success => IdResult(true, successMsg, id) - case AddResult.EntityExists(msg) => IdResult(false, msg, Ident.unsafe("")) + case AddResult.Success => IdResult(success = true, successMsg, id) + case AddResult.EntityExists(msg) => IdResult(success = false, msg, Ident.unsafe("")) case AddResult.Failure(ex) => - IdResult(false, s"Internal error: ${ex.getMessage}", Ident.unsafe("")) + IdResult(success = false, s"Internal error: ${ex.getMessage}", Ident.unsafe("")) } def basicResult(ar: AddResult, successMsg: String): BasicResult = ar match { - case AddResult.Success => BasicResult(true, successMsg) - case AddResult.EntityExists(msg) => BasicResult(false, msg) + case AddResult.Success => BasicResult(success = true, successMsg) + case AddResult.EntityExists(msg) => BasicResult(success = false, msg) case AddResult.Failure(ex) => - BasicResult(false, s"Internal error: ${ex.getMessage}") + BasicResult(success = false, s"Internal error: ${ex.getMessage}") } def basicResult(ar: UpdateResult, successMsg: String): BasicResult = ar match { - case UpdateResult.Success => BasicResult(true, successMsg) - case UpdateResult.NotFound => BasicResult(false, "Not found") + case UpdateResult.Success => BasicResult(success = true, successMsg) + case UpdateResult.NotFound => BasicResult(success = false, "Not found") case UpdateResult.Failure(ex) => - BasicResult(false, s"Error: ${ex.getMessage}") + BasicResult(success = false, s"Error: ${ex.getMessage}") } def basicResult(ur: OUpload.UploadResult): BasicResult = ur match { - case UploadResult.Success => BasicResult(true, "Files submitted.") - case UploadResult.NoFiles => BasicResult(false, "There were no files to submit.") - case UploadResult.NoSource => BasicResult(false, "The source id is not valid.") - case UploadResult.NoItem => BasicResult(false, "The item could not be found.") + case UploadResult.Success => BasicResult(success = true, "Files submitted.") + case UploadResult.NoFiles => + BasicResult(success = false, "There were no files to submit.") + case UploadResult.NoSource => + BasicResult(success = false, "The source id is not valid.") + case UploadResult.NoItem => + BasicResult(success = false, "The item could not be found.") case UploadResult.NoCollective => - BasicResult(false, "The collective could not be found.") + BasicResult(success = false, "The collective could not be found.") case UploadResult.StoreFailure(_) => BasicResult( - false, + success = false, "There were errors storing a file! See the server logs for details." ) } def basicResult(cr: PassChangeResult): BasicResult = cr match { - case PassChangeResult.Success => BasicResult(true, "Password changed.") + case PassChangeResult.Success => BasicResult(success = true, "Password changed.") case PassChangeResult.UpdateFailed => - BasicResult(false, "The database update failed.") + BasicResult(success = false, "The database update failed.") case PassChangeResult.PasswordMismatch => - BasicResult(false, "The current password is incorrect.") - case PassChangeResult.UserNotFound => BasicResult(false, "User not found.") + BasicResult(success = false, "The current password is incorrect.") + case PassChangeResult.UserNotFound => + BasicResult(success = false, "User not found.") case PassChangeResult.InvalidSource(source) => BasicResult( - false, + success = false, s"User has invalid soure: $source. Passwords are managed elsewhere." ) } def basicResult(e: Either[Throwable, _], successMsg: String): BasicResult = e match { - case Right(_) => BasicResult(true, successMsg) - case Left(ex) => BasicResult(false, ex.getMessage) + case Right(_) => BasicResult(success = true, successMsg) + case Left(ex) => BasicResult(success = false, ex.getMessage) } // MIME Type diff --git a/modules/restserver/src/main/scala/docspell/restserver/http4s/BinaryUtil.scala b/modules/restserver/src/main/scala/docspell/restserver/http4s/BinaryUtil.scala index d0bca31c..12534f47 100644 --- a/modules/restserver/src/main/scala/docspell/restserver/http4s/BinaryUtil.scala +++ b/modules/restserver/src/main/scala/docspell/restserver/http4s/BinaryUtil.scala @@ -38,7 +38,7 @@ object BinaryUtil { if (matches) withResponseHeaders(dsl, NotModified())(data) else makeByteResp(dsl)(data) } - .getOrElse(NotFound(BasicResult(false, "Not found"))) + .getOrElse(NotFound(BasicResult(success = false, "Not found"))) } def respondHead[F[_]: Async](dsl: Http4sDsl[F])( @@ -48,7 +48,7 @@ object BinaryUtil { fileData .map(data => withResponseHeaders(dsl, Ok())(data)) - .getOrElse(NotFound(BasicResult(false, "Not found"))) + .getOrElse(NotFound(BasicResult(success = false, "Not found"))) } def respondPreview[F[_]: Async](dsl: Http4sDsl[F], req: Request[F])( @@ -56,7 +56,7 @@ object BinaryUtil { ): F[Response[F]] = { import dsl._ def notFound = - NotFound(BasicResult(false, "Not found")) + NotFound(BasicResult(success = false, "Not found")) QP.WithFallback.unapply(req.multiParams) match { case Some(bool) => @@ -75,7 +75,7 @@ object BinaryUtil { ) case None => - BadRequest(BasicResult(false, "Invalid query parameter 'withFallback'")) + BadRequest(BasicResult(success = false, "Invalid query parameter 'withFallback'")) } } @@ -85,7 +85,7 @@ object BinaryUtil { import dsl._ fileData .map(data => withResponseHeaders(dsl, Ok())(data)) - .getOrElse(NotFound(BasicResult(false, "Not found"))) + .getOrElse(NotFound(BasicResult(success = false, "Not found"))) } def withResponseHeaders[F[_]: Sync](dsl: Http4sDsl[F], resp: F[Response[F]])( diff --git a/modules/restserver/src/main/scala/docspell/restserver/http4s/ThrowableResponseMapper.scala b/modules/restserver/src/main/scala/docspell/restserver/http4s/ThrowableResponseMapper.scala index ceeabadc..dd25a00a 100644 --- a/modules/restserver/src/main/scala/docspell/restserver/http4s/ThrowableResponseMapper.scala +++ b/modules/restserver/src/main/scala/docspell/restserver/http4s/ThrowableResponseMapper.scala @@ -33,10 +33,10 @@ object ThrowableResponseMapper { def toResponse(ex: Throwable): F[Response[F]] = ex match { case _: IllegalArgumentException => - BadRequest(BasicResult(false, ex.getMessage)) + BadRequest(BasicResult(success = false, ex.getMessage)) case _ => - InternalServerError(BasicResult(false, ex.getMessage)) + InternalServerError(BasicResult(success = false, ex.getMessage)) } } } diff --git a/modules/restserver/src/main/scala/docspell/restserver/routes/AddonArchiveRoutes.scala b/modules/restserver/src/main/scala/docspell/restserver/routes/AddonArchiveRoutes.scala index 637b6763..10e1e655 100644 --- a/modules/restserver/src/main/scala/docspell/restserver/routes/AddonArchiveRoutes.scala +++ b/modules/restserver/src/main/scala/docspell/restserver/routes/AddonArchiveRoutes.scala @@ -52,7 +52,7 @@ object AddonArchiveRoutes extends AddonValidationSupport { case req @ POST -> Root :? Sync(sync) => def create(r: Option[RAddonArchive]) = IdResult( - true, + success = true, r.fold("Addon submitted for installation")(r => s"Addon installed: ${r.id.id}" ), @@ -77,7 +77,7 @@ object AddonArchiveRoutes extends AddonValidationSupport { case PUT -> Root / Ident(id) :? Sync(sync) => def create(r: Option[AddonMeta]) = BasicResult( - true, + success = true, r.fold("Addon updated in background")(m => s"Addon updated: ${m.nameAndVersion}" ) @@ -99,8 +99,8 @@ object AddonArchiveRoutes extends AddonValidationSupport { for { flag <- backend.addons.deleteAddon(token.account.collectiveId, id) resp <- - if (flag) Ok(BasicResult(true, "Addon deleted")) - else NotFound(BasicResult(false, "Addon not found")) + if (flag) Ok(BasicResult(success = true, "Addon deleted")) + else NotFound(BasicResult(success = false, "Addon not found")) } yield resp } } @@ -112,11 +112,11 @@ object AddonArchiveRoutes extends AddonValidationSupport { import dsl._ def failWith(msg: String): F[Response[F]] = - Ok(IdResult(false, msg, Ident.unsafe(""))) + Ok(IdResult(success = false, msg, Ident.unsafe(""))) e match { case AddonValidationError.AddonNotFound => - NotFound(BasicResult(false, "Addon not found.")) + NotFound(BasicResult(success = false, "Addon not found.")) case _ => failWith(validationErrorToMessage(e)) diff --git a/modules/restserver/src/main/scala/docspell/restserver/routes/AddonRoutes.scala b/modules/restserver/src/main/scala/docspell/restserver/routes/AddonRoutes.scala index 192f6ccb..d9b4fb59 100644 --- a/modules/restserver/src/main/scala/docspell/restserver/routes/AddonRoutes.scala +++ b/modules/restserver/src/main/scala/docspell/restserver/routes/AddonRoutes.scala @@ -35,5 +35,5 @@ object AddonRoutes { "run" -> AddonRunRoutes(backend, token) ) else - Responses.notFoundRoute(BasicResult(false, "Addons disabled")) + Responses.notFoundRoute(BasicResult(success = false, "Addons disabled")) } diff --git a/modules/restserver/src/main/scala/docspell/restserver/routes/AddonRunConfigRoutes.scala b/modules/restserver/src/main/scala/docspell/restserver/routes/AddonRunConfigRoutes.scala index 4f93c9cf..4b6a7496 100644 --- a/modules/restserver/src/main/scala/docspell/restserver/routes/AddonRunConfigRoutes.scala +++ b/modules/restserver/src/main/scala/docspell/restserver/routes/AddonRunConfigRoutes.scala @@ -43,8 +43,8 @@ object AddonRunConfigRoutes { .map(_.leftMap(_.message)) ) resp <- res.fold( - msg => Ok(BasicResult(false, msg)), - id => Ok(IdResult(true, s"Addon run config added", id)) + msg => Ok(BasicResult(success = false, msg)), + id => Ok(IdResult(success = true, s"Addon run config added", id)) ) } yield resp @@ -58,8 +58,8 @@ object AddonRunConfigRoutes { .map(_.leftMap(_.message)) ) resp <- res.fold( - msg => Ok(BasicResult(false, msg)), - id => Ok(IdResult(true, s"Addon run config updated", id)) + msg => Ok(BasicResult(success = false, msg)), + id => Ok(IdResult(success = true, s"Addon run config updated", id)) ) } yield resp @@ -67,8 +67,8 @@ object AddonRunConfigRoutes { for { flag <- backend.addons.deleteAddonRunConfig(token.account.collectiveId, id) resp <- - if (flag) Ok(BasicResult(true, "Addon task deleted")) - else NotFound(BasicResult(false, "Addon task not found")) + if (flag) Ok(BasicResult(success = true, "Addon task deleted")) + else NotFound(BasicResult(success = false, "Addon task not found")) } yield resp } } diff --git a/modules/restserver/src/main/scala/docspell/restserver/routes/AddonRunRoutes.scala b/modules/restserver/src/main/scala/docspell/restserver/routes/AddonRunRoutes.scala index 7b7a977d..c46b5880 100644 --- a/modules/restserver/src/main/scala/docspell/restserver/routes/AddonRunRoutes.scala +++ b/modules/restserver/src/main/scala/docspell/restserver/routes/AddonRunRoutes.scala @@ -35,7 +35,7 @@ object AddonRunRoutes { input.addonRunConfigIds.toSet, UserTaskScope(token.account) ) - resp <- Ok(BasicResult(true, "Job for running addons submitted.")) + resp <- Ok(BasicResult(success = true, "Job for running addons submitted.")) } yield resp } } diff --git a/modules/restserver/src/main/scala/docspell/restserver/routes/AttachmentRoutes.scala b/modules/restserver/src/main/scala/docspell/restserver/routes/AttachmentRoutes.scala index ac43b3ba..89a59af4 100644 --- a/modules/restserver/src/main/scala/docspell/restserver/routes/AttachmentRoutes.scala +++ b/modules/restserver/src/main/scala/docspell/restserver/routes/AttachmentRoutes.scala @@ -66,7 +66,7 @@ object AttachmentRoutes { resp <- fileData .map(data => withResponseHeaders(Ok())(data)) - .getOrElse(NotFound(BasicResult(false, "Not found"))) + .getOrElse(NotFound(BasicResult(success = false, "Not found"))) } yield resp case req @ GET -> Root / Ident(id) / "original" => @@ -83,7 +83,7 @@ object AttachmentRoutes { if (matches) withResponseHeaders(NotModified())(data) else makeByteResp(data) } - .getOrElse(NotFound(BasicResult(false, "Not found"))) + .getOrElse(NotFound(BasicResult(success = false, "Not found"))) } yield resp case HEAD -> Root / Ident(id) / "archive" => @@ -93,7 +93,7 @@ object AttachmentRoutes { resp <- fileData .map(data => withResponseHeaders(Ok())(data)) - .getOrElse(NotFound(BasicResult(false, "Not found"))) + .getOrElse(NotFound(BasicResult(success = false, "Not found"))) } yield resp case req @ GET -> Root / Ident(id) / "archive" => @@ -108,7 +108,7 @@ object AttachmentRoutes { if (matches) withResponseHeaders(NotModified())(data) else makeByteResp(data) } - .getOrElse(NotFound(BasicResult(false, "Not found"))) + .getOrElse(NotFound(BasicResult(success = false, "Not found"))) } yield resp case req @ GET -> Root / Ident(id) / "preview" => @@ -148,7 +148,9 @@ object AttachmentRoutes { for { rm <- backend.itemSearch.findAttachmentMeta(id, user.account.collectiveId) md = rm.map(Conversions.mkAttachmentMeta) - resp <- md.map(Ok(_)).getOrElse(NotFound(BasicResult(false, "Not found."))) + resp <- md + .map(Ok(_)) + .getOrElse(NotFound(BasicResult(success = false, "Not found."))) } yield resp case req @ POST -> Root / Ident(id) / "name" => @@ -169,8 +171,11 @@ object AttachmentRoutes { backend.attachment .setExtractedText(user.account.collectiveId, itemId, id, newText) ) - resp <- OptionT.liftF(Ok(BasicResult(true, "Extracted text updated."))) - } yield resp).getOrElseF(NotFound(BasicResult(false, "Attachment not found"))) + resp <- OptionT.liftF( + Ok(BasicResult(success = true, "Extracted text updated.")) + ) + } yield resp) + .getOrElseF(NotFound(BasicResult(success = false, "Attachment not found"))) case DELETE -> Root / Ident(id) / "extracted-text" => (for { @@ -181,7 +186,9 @@ object AttachmentRoutes { backend.attachment .setExtractedText(user.account.collectiveId, itemId, id, "".pure[F]) ) - resp <- OptionT.liftF(Ok(BasicResult(true, "Extracted text cleared."))) + resp <- OptionT.liftF( + Ok(BasicResult(success = true, "Extracted text cleared.")) + ) } yield resp).getOrElseF(NotFound()) case GET -> Root / Ident(id) / "extracted-text" => @@ -190,14 +197,15 @@ object AttachmentRoutes { backend.itemSearch.findAttachmentMeta(id, user.account.collectiveId) ) resp <- OptionT.liftF(Ok(OptionalText(meta.content))) - } yield resp).getOrElseF(NotFound(BasicResult(false, "Attachment not found"))) + } yield resp) + .getOrElseF(NotFound(BasicResult(success = false, "Attachment not found"))) case DELETE -> Root / Ident(id) => for { n <- backend.item.deleteAttachment(id, user.account.collectiveId) res = - if (n == 0) BasicResult(false, "Attachment not found") - else BasicResult(true, "Attachment deleted.") + if (n == 0) BasicResult(success = false, "Attachment not found") + else BasicResult(success = true, "Attachment deleted.") resp <- Ok(res) } yield resp } diff --git a/modules/restserver/src/main/scala/docspell/restserver/routes/CalEventCheckRoutes.scala b/modules/restserver/src/main/scala/docspell/restserver/routes/CalEventCheckRoutes.scala index 39689f73..7ac2b4f0 100644 --- a/modules/restserver/src/main/scala/docspell/restserver/routes/CalEventCheckRoutes.scala +++ b/modules/restserver/src/main/scala/docspell/restserver/routes/CalEventCheckRoutes.scala @@ -40,9 +40,9 @@ object CalEventCheckRoutes { val next = ev .nextElapses(now.toUtcDateTime, 2) .map(Timestamp.atUtc) - CalEventCheckResult(true, "Valid.", ev.some, next) + CalEventCheckResult(success = true, "Valid.", ev.some, next) case Left(err) => - CalEventCheckResult(false, err, None, Nil) + CalEventCheckResult(success = false, err, None, Nil) } } } diff --git a/modules/restserver/src/main/scala/docspell/restserver/routes/ClientSettingsRoutes.scala b/modules/restserver/src/main/scala/docspell/restserver/routes/ClientSettingsRoutes.scala index f259103c..f61aa37f 100644 --- a/modules/restserver/src/main/scala/docspell/restserver/routes/ClientSettingsRoutes.scala +++ b/modules/restserver/src/main/scala/docspell/restserver/routes/ClientSettingsRoutes.scala @@ -66,7 +66,7 @@ object ClientSettingsRoutes { for { data <- req.as[Json] _ <- backend.clientSettings.saveUser(clientId, user.account.userId, data) - res <- Ok(BasicResult(true, "Settings stored")) + res <- Ok(BasicResult(success = true, "Settings stored")) } yield res case GET -> Root / "user" / Ident(clientId) => @@ -97,7 +97,7 @@ object ClientSettingsRoutes { user.account.collectiveId, data ) - res <- Ok(BasicResult(true, "Settings stored")) + res <- Ok(BasicResult(success = true, "Settings stored")) } yield res case GET -> Root / "collective" / Ident(clientId) => diff --git a/modules/restserver/src/main/scala/docspell/restserver/routes/CollectiveRoutes.scala b/modules/restserver/src/main/scala/docspell/restserver/routes/CollectiveRoutes.scala index faedbac0..ee80d567 100644 --- a/modules/restserver/src/main/scala/docspell/restserver/routes/CollectiveRoutes.scala +++ b/modules/restserver/src/main/scala/docspell/restserver/routes/CollectiveRoutes.scala @@ -118,7 +118,7 @@ object CollectiveRoutes { case POST -> Root / "classifier" / "startonce" => for { _ <- backend.collective.startLearnClassifier(user.account.collectiveId) - resp <- Ok(BasicResult(true, "Task submitted")) + resp <- Ok(BasicResult(success = true, "Task submitted")) } yield resp case req @ POST -> Root / "emptytrash" / "startonce" => @@ -127,7 +127,7 @@ object CollectiveRoutes { _ <- backend.collective.startEmptyTrash( EmptyTrashArgs(user.account.collectiveId, data.minAge) ) - resp <- Ok(BasicResult(true, "Task submitted")) + resp <- Ok(BasicResult(success = true, "Task submitted")) } yield resp } } diff --git a/modules/restserver/src/main/scala/docspell/restserver/routes/CustomFieldRoutes.scala b/modules/restserver/src/main/scala/docspell/restserver/routes/CustomFieldRoutes.scala index 83492974..4942da27 100644 --- a/modules/restserver/src/main/scala/docspell/restserver/routes/CustomFieldRoutes.scala +++ b/modules/restserver/src/main/scala/docspell/restserver/routes/CustomFieldRoutes.scala @@ -56,7 +56,7 @@ object CustomFieldRoutes { (for { field <- OptionT(backend.customFields.findById(user.account.collectiveId, id)) res <- OptionT.liftF(Ok(convertField(field))) - } yield res).getOrElseF(NotFound(BasicResult(false, "Not found"))) + } yield res).getOrElseF(NotFound(BasicResult(success = false, "Not found"))) case req @ PUT -> Root / Ident(id) => for { diff --git a/modules/restserver/src/main/scala/docspell/restserver/routes/DownloadAllRoutes.scala b/modules/restserver/src/main/scala/docspell/restserver/routes/DownloadAllRoutes.scala index 65cf2b7c..e6bde446 100644 --- a/modules/restserver/src/main/scala/docspell/restserver/routes/DownloadAllRoutes.scala +++ b/modules/restserver/src/main/scala/docspell/restserver/routes/DownloadAllRoutes.scala @@ -126,7 +126,7 @@ object DownloadAllRoutes { case DELETE -> Root / "file" / Ident(id) => for { _ <- backend.downloadAll.deleteFile(id) - resp <- Ok(BasicResult(true, "File deleted.")) + resp <- Ok(BasicResult(success = true, "File deleted.")) } yield resp case PUT -> Root / "cancel" / Ident(id) => diff --git a/modules/restserver/src/main/scala/docspell/restserver/routes/FolderRoutes.scala b/modules/restserver/src/main/scala/docspell/restserver/routes/FolderRoutes.scala index 463f20e1..f9e10320 100644 --- a/modules/restserver/src/main/scala/docspell/restserver/routes/FolderRoutes.scala +++ b/modules/restserver/src/main/scala/docspell/restserver/routes/FolderRoutes.scala @@ -118,12 +118,12 @@ object FolderRoutes { private def mkFolderChangeResult(r: OFolder.FolderChangeResult): BasicResult = r match { case OFolder.FolderChangeResult.Success => - BasicResult(true, "Successfully changed folder.") + BasicResult(success = true, "Successfully changed folder.") case OFolder.FolderChangeResult.NotFound => - BasicResult(false, "Folder or user not found.") + BasicResult(success = false, "Folder or user not found.") case OFolder.FolderChangeResult.Forbidden => - BasicResult(false, "Not allowed to edit folder.") + BasicResult(success = false, "Not allowed to edit folder.") case OFolder.FolderChangeResult.Exists => - BasicResult(false, "The member already exists.") + BasicResult(success = false, "The member already exists.") } } diff --git a/modules/restserver/src/main/scala/docspell/restserver/routes/ItemLinkRoutes.scala b/modules/restserver/src/main/scala/docspell/restserver/routes/ItemLinkRoutes.scala index 097f162e..5a9c70bc 100644 --- a/modules/restserver/src/main/scala/docspell/restserver/routes/ItemLinkRoutes.scala +++ b/modules/restserver/src/main/scala/docspell/restserver/routes/ItemLinkRoutes.scala @@ -37,7 +37,7 @@ class ItemLinkRoutes[F[_]: Async](account: AccountInfo, backend: OItemLink[F]) case DELETE -> Root / Ident(target) / Ident(id) => for { _ <- backend.removeAll(account.collectiveId, target, NonEmptyList.of(id)) - resp <- Ok(BasicResult(true, "Related items removed")) + resp <- Ok(BasicResult(success = true, "Related items removed")) } yield resp case req @ POST -> Root / "addAll" => @@ -58,19 +58,21 @@ class ItemLinkRoutes[F[_]: Async](account: AccountInfo, backend: OItemLink[F]) _ <- related .map(backend.removeAll(account.collectiveId, input.item, _)) .getOrElse( - BadRequest(BasicResult(false, "List of related items must not be empty")) + BadRequest( + BasicResult(success = false, "List of related items must not be empty") + ) ) - resp <- Ok(BasicResult(true, "Related items removed")) + resp <- Ok(BasicResult(success = true, "Related items removed")) } yield resp } private def convertResult(r: Option[LinkResult]): BasicResult = r match { - case Some(LinkResult.Success) => BasicResult(true, "Related items added") + case Some(LinkResult.Success) => BasicResult(success = true, "Related items added") case Some(LinkResult.LinkTargetItemError) => - BasicResult(false, "Items cannot be related to itself.") + BasicResult(success = false, "Items cannot be related to itself.") case None => - BasicResult(false, "List of related items must not be empty") + BasicResult(success = false, "List of related items must not be empty") } } diff --git a/modules/restserver/src/main/scala/docspell/restserver/routes/ItemRoutes.scala b/modules/restserver/src/main/scala/docspell/restserver/routes/ItemRoutes.scala index 464bacff..1c3e2954 100644 --- a/modules/restserver/src/main/scala/docspell/restserver/routes/ItemRoutes.scala +++ b/modules/restserver/src/main/scala/docspell/restserver/routes/ItemRoutes.scala @@ -49,7 +49,7 @@ object ItemRoutes { resp <- result .map(r => Ok(r)) - .getOrElse(NotFound(BasicResult(false, "Not found."))) + .getOrElse(NotFound(BasicResult(success = false, "Not found."))) } yield resp case POST -> Root / Ident(id) / "confirm" => @@ -285,7 +285,7 @@ object ItemRoutes { case req @ GET -> Root / Ident(id) / "preview" :? QP.WithFallback(flag) => def notFound = - NotFound(BasicResult(false, "Not found")) + NotFound(BasicResult(success = false, "Not found")) for { preview <- backend.itemSearch.findItemPreview(id, user.account.collectiveId) inm = req.headers.get[`If-None-Match`].flatMap(_.tags) @@ -309,7 +309,7 @@ object ItemRoutes { resp <- preview .map(data => BinaryUtil.withResponseHeaders(dsl, Ok())(data)) - .getOrElse(NotFound(BasicResult(false, "Not found"))) + .getOrElse(NotFound(BasicResult(success = false, "Not found"))) } yield resp case req @ POST -> Root / Ident(id) / "reprocess" => diff --git a/modules/restserver/src/main/scala/docspell/restserver/routes/ItemSearchPart.scala b/modules/restserver/src/main/scala/docspell/restserver/routes/ItemSearchPart.scala index 3b9e8d3a..4aea2b8e 100644 --- a/modules/restserver/src/main/scala/docspell/restserver/routes/ItemSearchPart.scala +++ b/modules/restserver/src/main/scala/docspell/restserver/routes/ItemSearchPart.scala @@ -196,17 +196,17 @@ final class ItemSearchPart[F[_]: Async]( Right(s) case QueryParseResult.ParseFailed(err) => - BadRequest(BasicResult(false, s"Invalid query: $err")).asLeft + BadRequest(BasicResult(success = false, s"Invalid query: $err")).asLeft case QueryParseResult.FulltextMismatch(Result.TooMany) => BadRequest( - BasicResult(false, "Only one fulltext search expression is allowed.") + BasicResult(success = false, "Only one fulltext search expression is allowed.") ).asLeft case QueryParseResult.FulltextMismatch(Result.UnsupportedPosition) => BadRequest( BasicResult( - false, + success = false, "A fulltext search may only appear in the root and expression." ) ).asLeft diff --git a/modules/restserver/src/main/scala/docspell/restserver/routes/LoginRoutes.scala b/modules/restserver/src/main/scala/docspell/restserver/routes/LoginRoutes.scala index 464bd149..5c3d4775 100644 --- a/modules/restserver/src/main/scala/docspell/restserver/routes/LoginRoutes.scala +++ b/modules/restserver/src/main/scala/docspell/restserver/routes/LoginRoutes.scala @@ -41,7 +41,9 @@ object LoginRoutes { makeResponse(dsl, cfg, req, result, token.account.asString) ) case Left(err) => - BadRequest(BasicResult(false, s"Invalid authentication token: $err")) + BadRequest( + BasicResult(success = false, s"Invalid authentication token: $err") + ) } } yield resp @@ -97,7 +99,7 @@ object LoginRoutes { AuthResult( token.account.collective.id, token.account.login.id, - true, + success = true, "Login successful", Some(cd.asString), cfg.auth.sessionValid.millis, @@ -112,7 +114,17 @@ object LoginRoutes { } yield resp case _ => - Ok(AuthResult("", account, false, "Login failed.", None, 0L, false)) + Ok( + AuthResult( + "", + account, + success = false, + "Login failed.", + None, + 0L, + requireSecondFactor = false + ) + ) } } diff --git a/modules/restserver/src/main/scala/docspell/restserver/routes/MailSendRoutes.scala b/modules/restserver/src/main/scala/docspell/restserver/routes/MailSendRoutes.scala index 15ceceac..076b153b 100644 --- a/modules/restserver/src/main/scala/docspell/restserver/routes/MailSendRoutes.scala +++ b/modules/restserver/src/main/scala/docspell/restserver/routes/MailSendRoutes.scala @@ -36,7 +36,7 @@ object MailSendRoutes { backend.mail.sendMail(user.account.userId, user.account.collectiveId, name, m) ) resp <- res.fold( - err => Ok(BasicResult(false, s"Invalid mail data: $err")), + err => Ok(BasicResult(success = false, s"Invalid mail data: $err")), res => Ok(convertOut(res)) ) } yield resp @@ -56,15 +56,15 @@ object MailSendRoutes { def convertOut(res: SendResult): BasicResult = res match { case SendResult.Success(_) => - BasicResult(true, "Mail sent.") + BasicResult(success = true, "Mail sent.") case SendResult.SendFailure(ex) => - BasicResult(false, s"Mail sending failed: ${ex.getMessage}") + BasicResult(success = false, s"Mail sending failed: ${ex.getMessage}") case SendResult.StoreFailure(ex) => BasicResult( - false, + success = false, s"Mail was sent, but could not be store to database: ${ex.getMessage}" ) case SendResult.NotFound => - BasicResult(false, s"There was no mail-connection or item found.") + BasicResult(success = false, s"There was no mail-connection or item found.") } } diff --git a/modules/restserver/src/main/scala/docspell/restserver/routes/MailSettingsRoutes.scala b/modules/restserver/src/main/scala/docspell/restserver/routes/MailSettingsRoutes.scala index ff391d67..6e9ed286 100644 --- a/modules/restserver/src/main/scala/docspell/restserver/routes/MailSettingsRoutes.scala +++ b/modules/restserver/src/main/scala/docspell/restserver/routes/MailSettingsRoutes.scala @@ -69,7 +69,7 @@ object MailSettingsRoutes { resp <- OptionT.liftF( Ok( up.fold( - err => BasicResult(false, err), + err => BasicResult(success = false, err), ar => Conversions.basicResult(ar, "Mail settings stored.") ) ) @@ -86,7 +86,7 @@ object MailSettingsRoutes { resp <- OptionT.liftF( Ok( up.fold( - err => BasicResult(false, err), + err => BasicResult(success = false, err), ar => Conversions.basicResult(ar, "Mail settings stored.") ) ) @@ -105,10 +105,10 @@ object MailSettingsRoutes { resp <- OptionT.liftF( Ok( up.fold( - err => BasicResult(false, err), + err => BasicResult(success = false, err), n => - if (n > 0) BasicResult(true, "Mail settings stored.") - else BasicResult(false, "Mail settings could not be saved") + if (n > 0) BasicResult(success = true, "Mail settings stored.") + else BasicResult(success = false, "Mail settings could not be saved") ) ) ) @@ -126,10 +126,10 @@ object MailSettingsRoutes { resp <- OptionT.liftF( Ok( up.fold( - err => BasicResult(false, err), + err => BasicResult(success = false, err), n => - if (n > 0) BasicResult(true, "Mail settings stored.") - else BasicResult(false, "Mail settings could not be saved") + if (n > 0) BasicResult(success = true, "Mail settings stored.") + else BasicResult(success = false, "Mail settings could not be saved") ) ) ) @@ -139,8 +139,8 @@ object MailSettingsRoutes { for { n <- backend.mail.deleteSmtpSettings(user.account.userId, name) resp <- Ok( - if (n > 0) BasicResult(true, "Mail settings removed") - else BasicResult(false, "Mail settings could not be removed") + if (n > 0) BasicResult(success = true, "Mail settings removed") + else BasicResult(success = false, "Mail settings could not be removed") ) } yield resp @@ -148,8 +148,8 @@ object MailSettingsRoutes { for { n <- backend.mail.deleteImapSettings(user.account.userId, name) resp <- Ok( - if (n > 0) BasicResult(true, "Mail settings removed") - else BasicResult(false, "Mail settings could not be removed") + if (n > 0) BasicResult(success = true, "Mail settings removed") + else BasicResult(success = false, "Mail settings could not be removed") ) } yield resp } diff --git a/modules/restserver/src/main/scala/docspell/restserver/routes/NotificationRoutes.scala b/modules/restserver/src/main/scala/docspell/restserver/routes/NotificationRoutes.scala index 2e5940d0..b28b6852 100644 --- a/modules/restserver/src/main/scala/docspell/restserver/routes/NotificationRoutes.scala +++ b/modules/restserver/src/main/scala/docspell/restserver/routes/NotificationRoutes.scala @@ -72,7 +72,7 @@ object NotificationRoutes extends NonEmptyListSupport { .createChannel(c, user.account.userId) .map(res => Conversions.basicResult(res, "Channel created")) } - .foldF(ex => BadRequest(BasicResult(false, ex.getMessage)), Ok(_)) + .foldF(ex => BadRequest(BasicResult(success = false, ex.getMessage)), Ok(_)) } yield resp case req @ PUT -> Root => @@ -86,7 +86,7 @@ object NotificationRoutes extends NonEmptyListSupport { .updateChannel(c, user.account.userId) .map(res => Conversions.basicResult(res, "Channel created")) } - .foldF(ex => BadRequest(BasicResult(false, ex.getMessage)), Ok(_)) + .foldF(ex => BadRequest(BasicResult(success = false, ex.getMessage)), Ok(_)) } yield resp } } @@ -173,7 +173,7 @@ object NotificationRoutes extends NonEmptyListSupport { resp <- data.asJsonWithMessage match { case Right(m) => Ok(m) case Left(err) => - BadRequest(BasicResult(false, s"Unable to render message: $err")) + BadRequest(BasicResult(success = false, s"Unable to render message: $err")) } } yield resp } diff --git a/modules/restserver/src/main/scala/docspell/restserver/routes/NotifyDueItemsRoutes.scala b/modules/restserver/src/main/scala/docspell/restserver/routes/NotifyDueItemsRoutes.scala index c09cd1f4..50c3db70 100644 --- a/modules/restserver/src/main/scala/docspell/restserver/routes/NotifyDueItemsRoutes.scala +++ b/modules/restserver/src/main/scala/docspell/restserver/routes/NotifyDueItemsRoutes.scala @@ -86,7 +86,8 @@ object NotifyDueItemsRoutes extends MailAddressCodec with NonEmptyListSupport { for { data <- req.as[PeriodicDueItemsSettings] resp <- - if (data.id.isEmpty) Ok(BasicResult(false, "Empty id is not allowed")) + if (data.id.isEmpty) + Ok(BasicResult(success = false, "Empty id is not allowed")) else run(data) } yield resp diff --git a/modules/restserver/src/main/scala/docspell/restserver/routes/PeriodicQueryRoutes.scala b/modules/restserver/src/main/scala/docspell/restserver/routes/PeriodicQueryRoutes.scala index 0245216a..910dbd5a 100644 --- a/modules/restserver/src/main/scala/docspell/restserver/routes/PeriodicQueryRoutes.scala +++ b/modules/restserver/src/main/scala/docspell/restserver/routes/PeriodicQueryRoutes.scala @@ -87,7 +87,8 @@ object PeriodicQueryRoutes extends MailAddressCodec with NonEmptyListSupport { for { data <- req.as[PeriodicQuerySettings] resp <- - if (data.id.isEmpty) Ok(BasicResult(false, "Empty id is not allowed")) + if (data.id.isEmpty) + Ok(BasicResult(success = false, "Empty id is not allowed")) else run(data) } yield resp diff --git a/modules/restserver/src/main/scala/docspell/restserver/routes/RegisterRoutes.scala b/modules/restserver/src/main/scala/docspell/restserver/routes/RegisterRoutes.scala index d8efaacb..685dc6ed 100644 --- a/modules/restserver/src/main/scala/docspell/restserver/routes/RegisterRoutes.scala +++ b/modules/restserver/src/main/scala/docspell/restserver/routes/RegisterRoutes.scala @@ -48,26 +48,26 @@ object RegisterRoutes { def convert(r: NewInviteResult): InviteResult = r match { case NewInviteResult.Success(id) => - InviteResult(true, "New invitation created.", Some(id)) + InviteResult(success = true, "New invitation created.", Some(id)) case NewInviteResult.InvitationDisabled => - InviteResult(false, "Signing up is not enabled for invitations.", None) + InviteResult(success = false, "Signing up is not enabled for invitations.", None) case NewInviteResult.PasswordMismatch => - InviteResult(false, "Password is invalid.", None) + InviteResult(success = false, "Password is invalid.", None) } def convert(r: SignupResult): BasicResult = r match { case SignupResult.CollectiveExists => - BasicResult(false, "A collective with this name already exists.") + BasicResult(success = false, "A collective with this name already exists.") case SignupResult.InvalidInvitationKey => - BasicResult(false, "Invalid invitation key.") + BasicResult(success = false, "Invalid invitation key.") case SignupResult.SignupClosed => - BasicResult(false, "Sorry, registration is closed.") + BasicResult(success = false, "Sorry, registration is closed.") case SignupResult.Failure(ex) => logger.error(ex)("Error signing up") - BasicResult(false, s"Internal error: ${ex.getMessage}") + BasicResult(success = false, s"Internal error: ${ex.getMessage}") case SignupResult.Success => - BasicResult(true, "Signup successful") + BasicResult(success = true, "Signup successful") } def convert(r: Registration): RegisterData = diff --git a/modules/restserver/src/main/scala/docspell/restserver/routes/ScanMailboxRoutes.scala b/modules/restserver/src/main/scala/docspell/restserver/routes/ScanMailboxRoutes.scala index 563eb795..07764333 100644 --- a/modules/restserver/src/main/scala/docspell/restserver/routes/ScanMailboxRoutes.scala +++ b/modules/restserver/src/main/scala/docspell/restserver/routes/ScanMailboxRoutes.scala @@ -82,7 +82,8 @@ object ScanMailboxRoutes { for { data <- req.as[ScanMailboxSettings] resp <- - if (data.id.isEmpty) Ok(BasicResult(false, "Empty id is not allowed")) + if (data.id.isEmpty) + Ok(BasicResult(success = false, "Empty id is not allowed")) else run(data) } yield resp diff --git a/modules/restserver/src/main/scala/docspell/restserver/routes/ShareItemRoutes.scala b/modules/restserver/src/main/scala/docspell/restserver/routes/ShareItemRoutes.scala index 38c3d041..fe883366 100644 --- a/modules/restserver/src/main/scala/docspell/restserver/routes/ShareItemRoutes.scala +++ b/modules/restserver/src/main/scala/docspell/restserver/routes/ShareItemRoutes.scala @@ -34,7 +34,7 @@ object ShareItemRoutes { resp <- result .map(r => Ok(r)) - .getOrElse(NotFound(BasicResult(false, "Not found."))) + .getOrElse(NotFound(BasicResult(success = false, "Not found."))) } yield resp } } diff --git a/modules/restserver/src/main/scala/docspell/restserver/routes/ShareRoutes.scala b/modules/restserver/src/main/scala/docspell/restserver/routes/ShareRoutes.scala index d40b766f..9e56f942 100644 --- a/modules/restserver/src/main/scala/docspell/restserver/routes/ShareRoutes.scala +++ b/modules/restserver/src/main/scala/docspell/restserver/routes/ShareRoutes.scala @@ -81,7 +81,7 @@ object ShareRoutes { .sendMail(user.account.collectiveId, user.account.userId, name, m) ) resp <- res.fold( - err => Ok(BasicResult(false, s"Invalid mail data: $err")), + err => Ok(BasicResult(success = false, s"Invalid mail data: $err")), res => Ok(convertOut(res)) ) } yield resp @@ -100,14 +100,46 @@ object ShareRoutes { resp <- res match { case VerifyResult.Success(token, name) => val cd = ShareCookieData(token) - Ok(ShareVerifyResult(true, token.asString, false, "Success", name)) + Ok( + ShareVerifyResult( + success = true, + token.asString, + passwordRequired = false, + "Success", + name + ) + ) .map(cd.addCookie(ClientRequestInfo.getBaseUrl(cfg, req))) case VerifyResult.PasswordMismatch => - Ok(ShareVerifyResult(false, "", true, "Failed", None)) + Ok( + ShareVerifyResult( + success = false, + "", + passwordRequired = true, + "Failed", + None + ) + ) case VerifyResult.NotFound => - Ok(ShareVerifyResult(false, "", false, "Failed", None)) + Ok( + ShareVerifyResult( + success = false, + "", + passwordRequired = false, + "Failed", + None + ) + ) case VerifyResult.InvalidToken => - Ok(ShareVerifyResult(false, "", false, "Failed", None)) + Ok( + ShareVerifyResult( + success = false, + "", + passwordRequired = false, + "Failed", + None + ) + ) } } yield resp } @@ -125,18 +157,18 @@ object ShareRoutes { def mkIdResult(r: OShare.ChangeResult, msg: => String): IdResult = r match { - case OShare.ChangeResult.Success(id) => IdResult(true, msg, id) + case OShare.ChangeResult.Success(id) => IdResult(success = true, msg, id) case OShare.ChangeResult.PublishUntilInPast => - IdResult(false, "Until date must not be in the past", Ident.unsafe("")) + IdResult(success = false, "Until date must not be in the past", Ident.unsafe("")) case OShare.ChangeResult.NotFound => IdResult( - false, + success = false, "Share not found or not owner. Only the owner can update a share.", Ident.unsafe("") ) case OShare.ChangeResult.QueryWithFulltext => IdResult( - false, + success = false, "Sorry, shares with fulltext queries are currently not supported.", Ident.unsafe("") ) @@ -144,17 +176,17 @@ object ShareRoutes { def mkBasicResult(r: OShare.ChangeResult, msg: => String): BasicResult = r match { - case OShare.ChangeResult.Success(_) => BasicResult(true, msg) + case OShare.ChangeResult.Success(_) => BasicResult(success = true, msg) case OShare.ChangeResult.PublishUntilInPast => - BasicResult(false, "Until date must not be in the past") + BasicResult(success = false, "Until date must not be in the past") case OShare.ChangeResult.NotFound => BasicResult( - false, + success = false, "Share not found or not owner. Only the owner can update a share." ) case OShare.ChangeResult.QueryWithFulltext => BasicResult( - false, + success = false, "Sorry, shares with fulltext queries are currently not supported." ) } @@ -184,10 +216,10 @@ object ShareRoutes { def convertOut(res: SendResult): BasicResult = res match { case SendResult.Success(_) => - BasicResult(true, "Mail sent.") + BasicResult(success = true, "Mail sent.") case SendResult.SendFailure(ex) => - BasicResult(false, s"Mail sending failed: ${ex.getMessage}") + BasicResult(success = false, s"Mail sending failed: ${ex.getMessage}") case SendResult.NotFound => - BasicResult(false, s"There was no mail-connection or item found.") + BasicResult(success = false, s"There was no mail-connection or item found.") } } diff --git a/modules/restserver/src/main/scala/docspell/restserver/routes/TotpRoutes.scala b/modules/restserver/src/main/scala/docspell/restserver/routes/TotpRoutes.scala index 1199eb06..b4825710 100644 --- a/modules/restserver/src/main/scala/docspell/restserver/routes/TotpRoutes.scala +++ b/modules/restserver/src/main/scala/docspell/restserver/routes/TotpRoutes.scala @@ -36,7 +36,10 @@ object TotpRoutes { for { result <- backend.totp.state(user.account) resp <- Ok( - result.fold(en => OtpState(true, en.created.some), _ => OtpState(false, None)) + result.fold( + en => OtpState(enabled = true, en.created.some), + _ => OtpState(enabled = false, None) + ) ) } yield resp case POST -> Root / "init" => @@ -44,11 +47,13 @@ object TotpRoutes { result <- backend.totp.initialize(user.account) resp <- result match { case OTotp.InitResult.AlreadyExists => - UnprocessableEntity(BasicResult(false, "A totp setup already exists!")) + UnprocessableEntity( + BasicResult(success = false, "A totp setup already exists!") + ) case OTotp.InitResult.NotFound => - NotFound(BasicResult(false, "User not found")) + NotFound(BasicResult(success = false, "User not found")) case OTotp.InitResult.Failed(ex) => - InternalServerError(BasicResult(false, ex.getMessage)) + InternalServerError(BasicResult(success = false, ex.getMessage)) case s @ OTotp.InitResult.Success(_, key) => val issuer = cfg.appName val uri = s.authenticatorUrl(issuer) @@ -62,9 +67,9 @@ object TotpRoutes { result <- backend.totp.confirmInit(user.account, OnetimePassword(data.otp.pass)) resp <- result match { case OTotp.ConfirmResult.Success => - Ok(BasicResult(true, "TOTP setup successful.")) + Ok(BasicResult(success = true, "TOTP setup successful.")) case OTotp.ConfirmResult.Failed => - Ok(BasicResult(false, "TOTP setup failed!")) + Ok(BasicResult(success = false, "TOTP setup failed!")) } } yield resp diff --git a/modules/restserver/src/main/scala/docspell/restserver/routes/UserRoutes.scala b/modules/restserver/src/main/scala/docspell/restserver/routes/UserRoutes.scala index a3f84aff..b93829c0 100644 --- a/modules/restserver/src/main/scala/docspell/restserver/routes/UserRoutes.scala +++ b/modules/restserver/src/main/scala/docspell/restserver/routes/UserRoutes.scala @@ -97,7 +97,7 @@ object UserRoutes { ) case None => - NotFound(BasicResult(false, s"User '${username.id}' not found")) + NotFound(BasicResult(success = false, s"User '${username.id}' not found")) } } yield resp } @@ -119,16 +119,16 @@ object UserRoutes { ) resp <- Ok(result match { case OCollective.PassResetResult.Success(np) => - ResetPasswordResult(true, np, "Password updated") + ResetPasswordResult(success = true, np, "Password updated") case OCollective.PassResetResult.NotFound => ResetPasswordResult( - false, + success = false, Password(""), "Password update failed. User not found." ) case OCollective.PassResetResult.InvalidSource(source) => ResetPasswordResult( - false, + success = false, Password(""), s"Password update failed. User has unexpected source: $source. Passwords are managed externally." ) diff --git a/modules/scheduler/impl/src/main/scala/docspell/scheduler/impl/PeriodicSchedulerImpl.scala b/modules/scheduler/impl/src/main/scala/docspell/scheduler/impl/PeriodicSchedulerImpl.scala index ada53b9d..45797b7d 100644 --- a/modules/scheduler/impl/src/main/scala/docspell/scheduler/impl/PeriodicSchedulerImpl.scala +++ b/modules/scheduler/impl/src/main/scala/docspell/scheduler/impl/PeriodicSchedulerImpl.scala @@ -169,7 +169,7 @@ final class PeriodicSchedulerImpl[F[_]: Async]( object PeriodicSchedulerImpl { def emptyState[F[_]]: State[F] = - State(false, None) + State(shutdownRequest = false, None) case class State[F[_]]( shutdownRequest: Boolean, diff --git a/modules/scheduler/impl/src/main/scala/docspell/scheduler/impl/SchedulerImpl.scala b/modules/scheduler/impl/src/main/scala/docspell/scheduler/impl/SchedulerImpl.scala index 5d427700..5a7e8197 100644 --- a/modules/scheduler/impl/src/main/scala/docspell/scheduler/impl/SchedulerImpl.scala +++ b/modules/scheduler/impl/src/main/scala/docspell/scheduler/impl/SchedulerImpl.scala @@ -348,7 +348,7 @@ object SchedulerImpl { type CancelToken[F[_]] = F[Unit] def emptyState[F[_]]: State[F] = - State(Map.empty, Set.empty, Map.empty, false) + State(Map.empty, Set.empty, Map.empty, shutdownRequest = false) case class State[F[_]]( counters: Map[Ident, CountingScheme], diff --git a/modules/store/src/main/scala/db/migration/common/MigrateDueItemTasks.scala b/modules/store/src/main/scala/db/migration/common/MigrateDueItemTasks.scala index c169c42f..e421dcf6 100644 --- a/modules/store/src/main/scala/db/migration/common/MigrateDueItemTasks.scala +++ b/modules/store/src/main/scala/db/migration/common/MigrateDueItemTasks.scala @@ -43,8 +43,11 @@ object MigrateDueItemTasks extends TransactorSupport with JsonCodecs { ) _ <- tasks2.traverse(migratePeriodicDueItemsTask) _ <- tasks3.traverse(migratePeriodicQueryTask) - _ <- RPeriodicTask.setEnabledByTask(PeriodicQueryArgsOld.taskName, false) - _ <- RPeriodicTask.setEnabledByTask(PeriodicDueItemsArgsOld.taskName, false) + _ <- RPeriodicTask.setEnabledByTask(PeriodicQueryArgsOld.taskName, enabled = false) + _ <- RPeriodicTask.setEnabledByTask( + PeriodicDueItemsArgsOld.taskName, + enabled = false + ) } yield () private def migratePeriodicQueryTask(old: RPeriodicTask): ConnectionIO[Int] = diff --git a/modules/store/src/main/scala/db/migration/common/MigrateNotifyTasks.scala b/modules/store/src/main/scala/db/migration/common/MigrateNotifyTasks.scala index df3d85bd..f06636ec 100644 --- a/modules/store/src/main/scala/db/migration/common/MigrateNotifyTasks.scala +++ b/modules/store/src/main/scala/db/migration/common/MigrateNotifyTasks.scala @@ -38,7 +38,7 @@ object MigrateNotifyTasks extends TransactorSupport { logger.info(s"Starting to migrate ${tasks.size} user tasks") ) _ <- tasks.traverse(migrateDueItemTask1) - _ <- RPeriodicTask.setEnabledByTask(NotifyDueItemsArgs.taskName, false) + _ <- RPeriodicTask.setEnabledByTask(NotifyDueItemsArgs.taskName, enabled = false) } yield () private def migrateDueItemTask1(old: RPeriodicTask): ConnectionIO[Int] = { diff --git a/modules/store/src/main/scala/docspell/store/SchemaMigrateConfig.scala b/modules/store/src/main/scala/docspell/store/SchemaMigrateConfig.scala index 8659ef99..de3d33f7 100644 --- a/modules/store/src/main/scala/docspell/store/SchemaMigrateConfig.scala +++ b/modules/store/src/main/scala/docspell/store/SchemaMigrateConfig.scala @@ -13,5 +13,9 @@ case class SchemaMigrateConfig( ) object SchemaMigrateConfig { - val defaults = SchemaMigrateConfig(true, true, false) + val defaults = SchemaMigrateConfig( + runMainMigrations = true, + runFixupMigrations = true, + repairSchema = false + ) } diff --git a/modules/store/src/main/scala/docspell/store/file/FileUrlReader.scala b/modules/store/src/main/scala/docspell/store/file/FileUrlReader.scala index bd4e41ee..dfdd1bd1 100644 --- a/modules/store/src/main/scala/docspell/store/file/FileUrlReader.scala +++ b/modules/store/src/main/scala/docspell/store/file/FileUrlReader.scala @@ -25,7 +25,7 @@ object FileUrlReader { authority = Some(""), path = LenientUri.NonEmptyPath( Nel.of(key.collective.valueAsString, key.category.id.id, key.id.id), - false + trailingSlash = false ), query = None, fragment = None diff --git a/modules/store/src/main/scala/docspell/store/qb/DBFunction.scala b/modules/store/src/main/scala/docspell/store/qb/DBFunction.scala index 1f83a318..d7a64bff 100644 --- a/modules/store/src/main/scala/docspell/store/qb/DBFunction.scala +++ b/modules/store/src/main/scala/docspell/store/qb/DBFunction.scala @@ -15,7 +15,7 @@ object DBFunction { val countAll: DBFunction = CountAll def countAs[A](column: Column[A]): DBFunction = - Count(column, false) + Count(column, distinct = false) case object CountAll extends DBFunction diff --git a/modules/store/src/main/scala/docspell/store/qb/DSL.scala b/modules/store/src/main/scala/docspell/store/qb/DSL.scala index f5c8ddb4..01055373 100644 --- a/modules/store/src/main/scala/docspell/store/qb/DSL.scala +++ b/modules/store/src/main/scala/docspell/store/qb/DSL.scala @@ -78,10 +78,10 @@ trait DSL extends DoobieMeta { FromExpr.From(sel, alias) def count(c: Column[_]): DBFunction = - DBFunction.Count(c, false) + DBFunction.Count(c, distinct = false) def countDistinct(c: Column[_]): DBFunction = - DBFunction.Count(c, true) + DBFunction.Count(c, distinct = true) def countAll: DBFunction = DBFunction.CountAll @@ -250,22 +250,22 @@ trait DSL extends DoobieMeta { in(subsel).negate def in(values: Nel[A])(implicit P: Put[A]): Condition = - Condition.InValues(col.s, values, false) + Condition.InValues(col.s, values, lower = false) def notIn(values: Nel[A])(implicit P: Put[A]): Condition = in(values).negate def inLower(values: Nel[String]): Condition = - Condition.InValues(col.s, values.map(_.toLowerCase), true) + Condition.InValues(col.s, values.map(_.toLowerCase), lower = true) def inLowerA(values: Nel[A])(implicit P: Put[A]): Condition = - Condition.InValues(col.s, values, true) + Condition.InValues(col.s, values, lower = true) def notInLower(values: Nel[String]): Condition = - Condition.InValues(col.s, values.map(_.toLowerCase), true).negate + Condition.InValues(col.s, values.map(_.toLowerCase), lower = true).negate def notInLowerA(values: Nel[A])(implicit P: Put[A]): Condition = - Condition.InValues(col.s, values, true).negate + Condition.InValues(col.s, values, lower = true).negate def isNull: Condition = Condition.IsNull(col.s) @@ -382,7 +382,7 @@ trait DSL extends DoobieMeta { Condition.CompareFVal(sel, Operator.Neq, value) def in[A](values: Nel[A])(implicit P: Put[A]): Condition = - Condition.InValues(sel, values, false) + Condition.InValues(sel, values, lower = false) } } diff --git a/modules/store/src/main/scala/docspell/store/qb/Select.scala b/modules/store/src/main/scala/docspell/store/qb/Select.scala index 7f2e6916..45773834 100644 --- a/modules/store/src/main/scala/docspell/store/qb/Select.scala +++ b/modules/store/src/main/scala/docspell/store/qb/Select.scala @@ -76,32 +76,38 @@ sealed trait Select { object Select { def apply(projection: SelectExpr) = - SimpleSelect(false, Nel.of(projection), None, Condition.unit, None) + SimpleSelect(distinctFlag = false, Nel.of(projection), None, Condition.unit, None) def apply(projection: Nel[SelectExpr], from: FromExpr) = - SimpleSelect(false, projection, from.some, Condition.unit, None) + SimpleSelect(distinctFlag = false, projection, from.some, Condition.unit, None) def apply(projection: SelectExpr, from: FromExpr) = - SimpleSelect(false, Nel.of(projection), from.some, Condition.unit, None) + SimpleSelect( + distinctFlag = false, + Nel.of(projection), + from.some, + Condition.unit, + None + ) def apply( projection: Nel[SelectExpr], from: FromExpr, where: Condition - ) = SimpleSelect(false, projection, from.some, where, None) + ) = SimpleSelect(distinctFlag = false, projection, from.some, where, None) def apply( projection: SelectExpr, from: FromExpr, where: Condition - ) = SimpleSelect(false, Nel.of(projection), from.some, where, None) + ) = SimpleSelect(distinctFlag = false, Nel.of(projection), from.some, where, None) def apply( projection: Nel[SelectExpr], from: FromExpr, where: Condition, groupBy: GroupBy - ) = SimpleSelect(false, projection, from.some, where, Some(groupBy)) + ) = SimpleSelect(distinctFlag = false, projection, from.some, where, Some(groupBy)) case class SimpleSelect( distinctFlag: Boolean, diff --git a/modules/store/src/main/scala/docspell/store/records/RCollective.scala b/modules/store/src/main/scala/docspell/store/records/RCollective.scala index 48b431c6..1454f186 100644 --- a/modules/store/src/main/scala/docspell/store/records/RCollective.scala +++ b/modules/store/src/main/scala/docspell/store/records/RCollective.scala @@ -46,7 +46,7 @@ object RCollective { collName, CollectiveState.Active, Language.German, - true, + integrationEnabled = true, created ) diff --git a/modules/store/src/main/scala/docspell/store/records/RTag.scala b/modules/store/src/main/scala/docspell/store/records/RTag.scala index fc66f6e8..b1e432c6 100644 --- a/modules/store/src/main/scala/docspell/store/records/RTag.scala +++ b/modules/store/src/main/scala/docspell/store/records/RTag.scala @@ -180,8 +180,8 @@ object RTag { .sortBy(_._1) byCat match { - case (None, tags) :: rest => - rest.flatMap(_._2) ++ tags + case (None, tagsByCat) :: rest => + rest.flatMap(_._2) ++ tagsByCat case _ => byCat.flatMap(_._2) } diff --git a/modules/store/src/main/scala/docspell/store/records/RTotp.scala b/modules/store/src/main/scala/docspell/store/records/RTotp.scala index 00148b18..4a67d389 100644 --- a/modules/store/src/main/scala/docspell/store/records/RTotp.scala +++ b/modules/store/src/main/scala/docspell/store/records/RTotp.scala @@ -44,7 +44,7 @@ object RTotp { for { now <- Timestamp.current[F] key <- Key.generate[F](mac) - } yield RTotp(userId, false, key, now) + } yield RTotp(userId, enabled = false, key, now) def insert(r: RTotp): ConnectionIO[Int] = DML.insert(T, T.all, sql"${r.userId},${r.enabled},${r.secret},${r.created}") diff --git a/modules/store/src/main/scala/docspell/store/records/RUserEmail.scala b/modules/store/src/main/scala/docspell/store/records/RUserEmail.scala index 22995f1d..e6952954 100644 --- a/modules/store/src/main/scala/docspell/store/records/RUserEmail.scala +++ b/modules/store/src/main/scala/docspell/store/records/RUserEmail.scala @@ -199,10 +199,10 @@ object RUserEmail { userId: Ident, nameQ: Option[String] ): ConnectionIO[Vector[RUserEmail]] = - findByAccount0(userId, nameQ, false).to[Vector] + findByAccount0(userId, nameQ, exact = false).to[Vector] def getByName(userId: Ident, name: Ident): ConnectionIO[Option[RUserEmail]] = - findByAccount0(userId, Some(name.id), true).option + findByAccount0(userId, Some(name.id), exact = true).option def getById(id: Ident): ConnectionIO[Option[RUserEmail]] = { val t = Table(None) diff --git a/modules/store/src/main/scala/docspell/store/records/RUserImap.scala b/modules/store/src/main/scala/docspell/store/records/RUserImap.scala index 127d82fe..fefe1e8d 100644 --- a/modules/store/src/main/scala/docspell/store/records/RUserImap.scala +++ b/modules/store/src/main/scala/docspell/store/records/RUserImap.scala @@ -195,13 +195,13 @@ object RUserImap { userId: Ident, nameQ: Option[String] ): ConnectionIO[Vector[RUserImap]] = - findByAccount0(userId, nameQ, false).to[Vector] + findByAccount0(userId, nameQ, exact = false).to[Vector] def getByName( userId: Ident, name: Ident ): ConnectionIO[Option[RUserImap]] = - findByAccount0(userId, Some(name.id), true).option + findByAccount0(userId, Some(name.id), exact = true).option def delete( userId: Ident, diff --git a/modules/store/src/test/scala/docspell/store/StoreFixture.scala b/modules/store/src/test/scala/docspell/store/StoreFixture.scala index a6696a39..e95844aa 100644 --- a/modules/store/src/test/scala/docspell/store/StoreFixture.scala +++ b/modules/store/src/test/scala/docspell/store/StoreFixture.scala @@ -106,7 +106,7 @@ object StoreFixture { for { xa <- makeXA(ds) cfg = FileRepositoryConfig.Database(64 * 1024) - fr = FileRepository[IO](xa, ds, cfg, true) + fr = FileRepository[IO](xa, ds, cfg, withAttributeStore = true) store = new StoreImpl[IO](fr, jdbc, schemaMigrateConfig, ds, xa) _ <- Resource.eval(store.migrate) } yield store diff --git a/modules/store/src/test/scala/docspell/store/fts/TempFtsOpsTest.scala b/modules/store/src/test/scala/docspell/store/fts/TempFtsOpsTest.scala index 83d5006a..ee0f5a4b 100644 --- a/modules/store/src/test/scala/docspell/store/fts/TempFtsOpsTest.scala +++ b/modules/store/src/test/scala/docspell/store/fts/TempFtsOpsTest.scala @@ -193,7 +193,7 @@ class TempFtsOpsTest extends DatabaseTest { DocspellSystem.account.collective, CollectiveState.Active, Language.English, - true, + integrationEnabled = true, ts ) diff --git a/modules/store/src/test/scala/docspell/store/qb/QueryBuilderTest.scala b/modules/store/src/test/scala/docspell/store/qb/QueryBuilderTest.scala index 69a63410..059df6cd 100644 --- a/modules/store/src/test/scala/docspell/store/qb/QueryBuilderTest.scala +++ b/modules/store/src/test/scala/docspell/store/qb/QueryBuilderTest.scala @@ -39,7 +39,7 @@ class QueryBuilderTest extends FunSuite with TestLoggingConfig { val q = Select(proj, tables, cond).orderBy(c.name.desc) q match { case Select.Ordered( - Select.SimpleSelect(false, proj, from, where, group), + Select.SimpleSelect(false, projs, from, where, group), sb, vempty ) => @@ -48,7 +48,7 @@ class QueryBuilderTest extends FunSuite with TestLoggingConfig { sb, OrderBy(SelectExpr.SelectColumn(c.name, None), OrderBy.OrderType.Desc) ) - assertEquals(11, proj.size) + assertEquals(11, projs.size) from match { case None => fail("Unexpected from value") From 3d6643e98f1b1a60cf564a70caf0d68c09c2d073 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Wed, 6 Mar 2024 06:13:22 +0000 Subject: [PATCH 020/162] Update flyway-core, ... to 10.9.0 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 1f43274f..0a1b7992 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -19,7 +19,7 @@ object Dependencies { val DoobieVersion = "1.0.0-RC5" val EmilVersion = "0.17.0" val FlexmarkVersion = "0.64.8" - val FlywayVersion = "10.8.1" + val FlywayVersion = "10.9.0" val Fs2Version = "3.9.4" val H2Version = "2.2.224" val Http4sVersion = "0.23.25" From 7411766ff0f8f2987b20cf7233749c4d0d0a953f Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Wed, 6 Mar 2024 06:13:26 +0000 Subject: [PATCH 021/162] Update http4s-circe, http4s-dsl, ... to 0.23.26 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 1f43274f..d0c95fcd 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -22,7 +22,7 @@ object Dependencies { val FlywayVersion = "10.8.1" val Fs2Version = "3.9.4" val H2Version = "2.2.224" - val Http4sVersion = "0.23.25" + val Http4sVersion = "0.23.26" val Icu4jVersion = "74.2" val JavaOtpVersion = "0.4.0" val JsoupVersion = "1.17.2" From 44bc8ac9ff4cf3f38b15b4814fd47ee6a6bcb33b Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Wed, 6 Mar 2024 06:13:31 +0000 Subject: [PATCH 022/162] Update cats-effect to 3.5.4 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 1f43274f..2df6852a 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -10,7 +10,7 @@ object Dependencies { val BinnyVersion = "0.11.0" val CalevVersion = "0.7.0" val CatsVersion = "2.10.0" - val CatsEffectVersion = "3.5.3" + val CatsEffectVersion = "3.5.4" val CatsParseVersion = "1.0.0" val CirceVersion = "0.15.0-M1" val CirceGenericExtrasVersion = "0.14.3" From 1691909d8f8c151e8ac9b31efe27bb04e917f82c Mon Sep 17 00:00:00 2001 From: eikek Date: Thu, 7 Mar 2024 21:35:42 +0100 Subject: [PATCH 023/162] Try give more resources to ci job --- .github/workflows/ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0748dfc0..873d0ab2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -29,6 +29,8 @@ jobs: # uses: coursier/cache-action@v6 - name: sbt ci ${{ github.ref }} run: sbt ci + env: + SBT_OPTS: "-Xmx2G -Xss4m" ci: runs-on: ubuntu-22.04 needs: [ci-matrix] From 012ef62b8222e054a19337deac55e16753d081e7 Mon Sep 17 00:00:00 2001 From: eikek Date: Thu, 7 Mar 2024 21:46:14 +0100 Subject: [PATCH 024/162] Try give more resources to sbt ci jobs --- .github/workflows/release-nightly.yml | 4 ++++ .github/workflows/release.yml | 2 ++ 2 files changed, 6 insertions(+) diff --git a/.github/workflows/release-nightly.yml b/.github/workflows/release-nightly.yml index 100a044b..fa371efa 100644 --- a/.github/workflows/release-nightly.yml +++ b/.github/workflows/release-nightly.yml @@ -29,8 +29,12 @@ jobs: run: echo "DOCSPELL_VERSION=$(cat version.sbt | grep version | cut -d= -f2 | xargs)" >> $GITHUB_ENV - name: sbt ci ${{ github.ref }} run: sbt ci + env: + SBT_OPTS: "-Xmx2G -Xss4m" - name: sbt make-pkg (${{ env.DOCSPELL_VERSION }}) run: sbt make-pkg + env: + SBT_OPTS: "-Xmx2G -Xss4m" - uses: "marvinpinto/action-automatic-releases@latest" with: repo_token: "${{ secrets.GITHUB_TOKEN }}" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 411e57fc..49d33cb9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -29,6 +29,8 @@ jobs: run: echo "DOCSPELL_VERSION=$(cat version.sbt | grep version | cut -d= -f2 | xargs)" >> $GITHUB_ENV - name: sbt make-pkg (${{ env.DOCSPELL_VERSION }}) run: sbt make-pkg + env: + SBT_OPTS: "-Xmx2G -Xss4m" - uses: meeDamian/github-release@2.0 with: token: ${{ secrets.GITHUB_TOKEN }} From c9f2ed7185c0680b2988820ac1f1684ed6892bf5 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Fri, 8 Mar 2024 06:11:34 +0000 Subject: [PATCH 025/162] Update flyway-core, ... to 10.9.1 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 9de8fc43..198db707 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -19,7 +19,7 @@ object Dependencies { val DoobieVersion = "1.0.0-RC5" val EmilVersion = "0.17.0" val FlexmarkVersion = "0.64.8" - val FlywayVersion = "10.9.0" + val FlywayVersion = "10.9.1" val Fs2Version = "3.9.4" val H2Version = "2.2.224" val Http4sVersion = "0.23.26" From 572afd2dc1aa8e2108660f64df021d4e96e7945b Mon Sep 17 00:00:00 2001 From: eikek Date: Fri, 8 Mar 2024 21:24:40 +0100 Subject: [PATCH 026/162] Fix array definition in config.toml --- website/site/config.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/site/config.toml b/website/site/config.toml index b8ad4b2e..854a9517 100644 --- a/website/site/config.toml +++ b/website/site/config.toml @@ -25,7 +25,7 @@ skip_prefixes = [ "https://docs.github.com", # doesn't allow checking anymore "/openapi", "https://www.abisource.com", # has bad ssl config - "https://chromewebstore.google.com" # too many redirects reported + "https://chromewebstore.google.com", # too many redirects reported "https://stackoverflow.com/" # forbidden ] skip_anchor_prefixes = [ From 8269a73a8369780b58b4cbb8bb5a2c8d0c94aa0c Mon Sep 17 00:00:00 2001 From: eikek <701128+eikek@users.noreply.github.com> Date: Fri, 8 Mar 2024 21:34:42 +0100 Subject: [PATCH 027/162] Extend config for external commands (#2536) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Allows to configure external commands and provide different arguments based on runtime values, like language. It extends the current config of a command to allow a `arg-mappings` section. An example for ocrmypdf: ```conf ocrmypdf = { enabled = true command = { program = "ocrmypdf" ### new arg-mappings arg-mappings = { "mylang" = { value = "{{lang}}" mappings = [ { matches = "deu" args = [ "-l", "deu", "--pdf-renderer", "sandwich" ] }, { matches = ".*" args = [ "-l", "{{lang}}" ] } ] } } #### end new arg-mappings args = [ ### will be replaced with corresponding args from "mylang" mapping "{{mylang}}", "--skip-text", "--deskew", "-j", "1", "{{infile}}", "{{outfile}}" ] timeout = "5 minutes" } working-dir = ${java.io.tmpdir}"/docspell-convert" } ``` The whole section will be first processed to replace all `{{…}}` patterns with corresponding values. Then `arg-mappings` will be looked at and the first match (value == matches) in its `mappings` array is used to replace its name in the arguments to the command. --- .../scala/docspell/common/SystemCommand.scala | 212 ------------------ .../main/scala/docspell/common/exec/Env.scala | 3 + .../common/exec/ExternalCommand.scala | 89 ++++++++ .../scala/docspell/common/exec/SysExec.scala | 53 +++++ .../common/exec/ExternalCommandTest.scala | 74 ++++++ .../docspell/convert/extern/ExternConv.scala | 62 ++--- .../docspell/convert/extern/OcrMyPdf.scala | 6 +- .../convert/extern/OcrMyPdfConfig.scala | 4 +- .../docspell/convert/extern/Tesseract.scala | 7 +- .../convert/extern/TesseractConfig.scala | 4 +- .../docspell/convert/extern/Unoconv.scala | 7 +- .../convert/extern/UnoconvConfig.scala | 4 +- .../docspell/convert/extern/Weasyprint.scala | 5 +- .../convert/extern/WeasyprintConfig.scala | 4 +- .../docspell/convert/extern/WkHtmlPdf.scala | 5 +- .../convert/extern/WkHtmlPdfConfig.scala | 4 +- .../docspell/convert/ConversionTest.scala | 11 +- .../convert/extern/ExternConvTest.scala | 8 +- .../main/scala/docspell/extract/ocr/Ocr.scala | 76 ++++--- .../docspell/extract/ocr/OcrConfig.scala | 44 +--- .../extract/ocr/TextExtractionSuite.scala | 43 +++- 21 files changed, 368 insertions(+), 357 deletions(-) delete mode 100644 modules/common/src/main/scala/docspell/common/SystemCommand.scala create mode 100644 modules/common/src/main/scala/docspell/common/exec/ExternalCommand.scala create mode 100644 modules/common/src/test/scala/docspell/common/exec/ExternalCommandTest.scala diff --git a/modules/common/src/main/scala/docspell/common/SystemCommand.scala b/modules/common/src/main/scala/docspell/common/SystemCommand.scala deleted file mode 100644 index 702c546d..00000000 --- a/modules/common/src/main/scala/docspell/common/SystemCommand.scala +++ /dev/null @@ -1,212 +0,0 @@ -/* - * Copyright 2020 Eike K. & Contributors - * - * SPDX-License-Identifier: AGPL-3.0-or-later - */ - -package docspell.common - -import java.io.InputStream -import java.lang.ProcessBuilder.Redirect -import java.util.concurrent.TimeUnit - -import scala.jdk.CollectionConverters._ - -import cats.effect._ -import cats.implicits._ -import fs2.io.file.Path -import fs2.{Stream, io, text} - -import docspell.common.{exec => newExec} -import docspell.logging.Logger - -// better use `SysCmd` and `SysExec` -object SystemCommand { - - final case class Config( - program: String, - args: Seq[String], - timeout: Duration, - env: Map[String, String] = Map.empty - ) { - - def toSysCmd = newExec - .SysCmd(program, newExec.Args(args)) - .withTimeout(timeout) - .addEnv(newExec.Env(env)) - - def mapArgs(f: String => String): Config = - Config(program, args.map(f), timeout) - - def replace(repl: Map[String, String]): Config = - mapArgs(s => - repl.foldLeft(s) { case (res, (k, v)) => - res.replace(k, v) - } - ) - - def withEnv(key: String, value: String): Config = - copy(env = env.updated(key, value)) - - def addEnv(moreEnv: Map[String, String]): Config = - copy(env = env ++ moreEnv) - - def appendArgs(extraArgs: Args): Config = - copy(args = args ++ extraArgs.args) - - def appendArgs(extraArgs: Seq[String]): Config = - copy(args = args ++ extraArgs) - - def toCmd: List[String] = - program :: args.toList - - lazy val cmdString: String = - toCmd.mkString(" ") - } - - final case class Args(args: Vector[String]) extends Iterable[String] { - override def iterator = args.iterator - - def prepend(a: String): Args = Args(a +: args) - - def prependWhen(flag: Boolean)(a: String): Args = - prependOption(Option.when(flag)(a)) - - def prependOption(value: Option[String]): Args = - value.map(prepend).getOrElse(this) - - def append(a: String, as: String*): Args = - Args(args ++ (a +: as.toVector)) - - def appendOption(value: Option[String]): Args = - value.map(append(_)).getOrElse(this) - - def appendOptionVal(first: String, second: Option[String]): Args = - second.map(b => append(first, b)).getOrElse(this) - - def appendWhen(flag: Boolean)(a: String, as: String*): Args = - if (flag) append(a, as: _*) else this - - def appendWhenNot(flag: Boolean)(a: String, as: String*): Args = - if (!flag) append(a, as: _*) else this - - def append(p: Path): Args = - append(p.toString) - - def append(as: Iterable[String]): Args = - Args(args ++ as.toVector) - } - object Args { - val empty: Args = Args() - - def apply(as: String*): Args = - Args(as.toVector) - } - - final case class Result(rc: Int, stdout: String, stderr: String) - - def exec[F[_]: Sync]( - cmd: Config, - logger: Logger[F], - wd: Option[Path] = None, - stdin: Stream[F, Byte] = Stream.empty - ): Stream[F, Result] = - startProcess(cmd, wd, logger, stdin) { proc => - Stream.eval { - for { - _ <- writeToProcess(stdin, proc) - term <- Sync[F].blocking(proc.waitFor(cmd.timeout.seconds, TimeUnit.SECONDS)) - _ <- - if (term) - logger.debug(s"Command `${cmd.cmdString}` finished: ${proc.exitValue}") - else - logger.warn( - s"Command `${cmd.cmdString}` did not finish in ${cmd.timeout.formatExact}!" - ) - _ <- if (!term) timeoutError(proc, cmd) else Sync[F].pure(()) - out <- - if (term) inputStreamToString(proc.getInputStream) - else Sync[F].pure("") - err <- - if (term) inputStreamToString(proc.getErrorStream) - else Sync[F].pure("") - } yield Result(proc.exitValue, out, err) - } - } - - def execSuccess[F[_]: Sync]( - cmd: Config, - logger: Logger[F], - wd: Option[Path] = None, - stdin: Stream[F, Byte] = Stream.empty - ): Stream[F, Result] = - exec(cmd, logger, wd, stdin).flatMap { r => - if (r.rc != 0) - Stream.raiseError[F]( - new Exception( - s"Command `${cmd.cmdString}` returned non-zero exit code ${r.rc}. Stderr: ${r.stderr}" - ) - ) - else Stream.emit(r) - } - - private def startProcess[F[_]: Sync, A]( - cmd: Config, - wd: Option[Path], - logger: Logger[F], - stdin: Stream[F, Byte] - )( - f: Process => Stream[F, A] - ): Stream[F, A] = { - val log = logger.debug(s"Running external command: ${cmd.cmdString}") - val hasStdin = stdin.take(1).compile.last.map(_.isDefined) - val proc = log *> hasStdin.flatMap(flag => - Sync[F].blocking { - val pb = new ProcessBuilder(cmd.toCmd.asJava) - .redirectInput(if (flag) Redirect.PIPE else Redirect.INHERIT) - .redirectError(Redirect.PIPE) - .redirectOutput(Redirect.PIPE) - - val pbEnv = pb.environment() - cmd.env.foreach { case (key, value) => - pbEnv.put(key, value) - } - wd.map(_.toNioPath.toFile).foreach(pb.directory) - pb.start() - } - ) - Stream - .bracket(proc)(p => - logger.debug(s"Closing process: `${cmd.cmdString}`").map(_ => p.destroy()) - ) - .flatMap(f) - } - - private def inputStreamToString[F[_]: Sync](in: InputStream): F[String] = - io.readInputStream(Sync[F].pure(in), 16 * 1024, closeAfterUse = false) - .through(text.utf8.decode) - .chunks - .map(_.toVector.mkString) - .fold1(_ + _) - .compile - .last - .map(_.getOrElse("")) - - private def writeToProcess[F[_]: Sync]( - data: Stream[F, Byte], - proc: Process - ): F[Unit] = - data - .through(io.writeOutputStream(Sync[F].blocking(proc.getOutputStream))) - .compile - .drain - - private def timeoutError[F[_]: Sync](proc: Process, cmd: Config): F[Unit] = - Sync[F].blocking(proc.destroyForcibly()).attempt *> { - Sync[F].raiseError( - new Exception( - s"Command `${cmd.cmdString}` timed out (${cmd.timeout.formatExact})" - ) - ) - } -} diff --git a/modules/common/src/main/scala/docspell/common/exec/Env.scala b/modules/common/src/main/scala/docspell/common/exec/Env.scala index 2524d35a..c4bdfafb 100644 --- a/modules/common/src/main/scala/docspell/common/exec/Env.scala +++ b/modules/common/src/main/scala/docspell/common/exec/Env.scala @@ -17,6 +17,9 @@ case class Env(values: Map[String, String]) { def addAll(e: Env): Env = Env(values ++ e.values) + def modifyValue(f: String => String): Env = + Env(values.view.mapValues(f).toMap) + def ++(e: Env) = addAll(e) def foreach(f: (String, String) => Unit): Unit = diff --git a/modules/common/src/main/scala/docspell/common/exec/ExternalCommand.scala b/modules/common/src/main/scala/docspell/common/exec/ExternalCommand.scala new file mode 100644 index 00000000..47b003b0 --- /dev/null +++ b/modules/common/src/main/scala/docspell/common/exec/ExternalCommand.scala @@ -0,0 +1,89 @@ +/* + * Copyright 2020 Eike K. & Contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +package docspell.common.exec + +import docspell.common.Duration +import docspell.common.Ident +import docspell.common.exec.Env +import docspell.common.exec.ExternalCommand.ArgMapping +import docspell.common.exec.SysCmd + +final case class ExternalCommand( + program: String, + args: Seq[String], + timeout: Duration, + env: Map[String, String] = Map.empty, + argMappings: Map[Ident, ArgMapping] = Map.empty +) { + def withVars(vars: Map[String, String]): ExternalCommand.WithVars = + ExternalCommand.WithVars(this, vars) + + import ExternalCommand.pattern + + def resolve(vars: Map[String, String]): SysCmd = { + val replace = ExternalCommand.replaceString(vars) _ + val resolvedArgMappings = + argMappings.view.mapValues(_.resolve(replace).firstMatch).toMap + val resolvedArgs = args.map(replace).flatMap { arg => + resolvedArgMappings + .find(e => pattern(e._1.id) == arg) + .map(_._2) + .getOrElse(List(arg)) + } + + SysCmd(replace(program), resolvedArgs: _*) + .withTimeout(timeout) + .withEnv(_ => Env(env).modifyValue(replace)) + } +} + +object ExternalCommand { + private val openPattern = "{{" + private val closePattern = "}}" + + private def pattern(s: String): String = s"${openPattern}${s}${closePattern}" + + def apply(program: String, args: Seq[String], timeout: Duration): ExternalCommand = + ExternalCommand(program, args, timeout, Map.empty, Map.empty) + + final case class ArgMapping( + value: String, + mappings: List[ArgMatch] + ) { + private[exec] def resolve(replace: String => String): ArgMapping = + ArgMapping(replace(value), mappings.map(_.resolve(replace))) + + def firstMatch: List[String] = + mappings.find(am => value.matches(am.matches)).map(_.args).getOrElse(Nil) + } + + final case class ArgMatch( + matches: String, + args: List[String] + ) { + private[exec] def resolve(replace: String => String): ArgMatch = + ArgMatch(replace(matches), args.map(replace)) + } + + private def replaceString(vars: Map[String, String])(in: String): String = + vars.foldLeft(in) { case (result, (name, value)) => + val key = s"{{$name}}" + result.replace(key, value) + } + + final case class WithVars(cmd: ExternalCommand, vars: Map[String, String]) { + def resolved: SysCmd = cmd.resolve(vars) + def append(more: (String, String)*): WithVars = + WithVars(cmd, vars ++ more.toMap) + + def withVar(key: String, value: String): WithVars = + WithVars(cmd, vars.updated(key, value)) + + def withVarOption(key: String, value: Option[String]): WithVars = + value.map(withVar(key, _)).getOrElse(this) + } +} diff --git a/modules/common/src/main/scala/docspell/common/exec/SysExec.scala b/modules/common/src/main/scala/docspell/common/exec/SysExec.scala index da7b10c2..a53a4c6f 100644 --- a/modules/common/src/main/scala/docspell/common/exec/SysExec.scala +++ b/modules/common/src/main/scala/docspell/common/exec/SysExec.scala @@ -38,6 +38,20 @@ trait SysExec[F[_]] { def waitFor(timeout: Option[Duration] = None): F[Int] + /** Uses `waitFor` and throws when return code is non-zero. Logs stderr and stdout while + * waiting. + */ + def runToSuccess(logger: Logger[F], timeout: Option[Duration] = None)(implicit + F: Async[F] + ): F[Int] + + /** Uses `waitFor` and throws when return code is non-zero. Logs stderr while waiting + * and collects stdout once finished successfully. + */ + def runToSuccessStdout(logger: Logger[F], timeout: Option[Duration] = None)(implicit + F: Async[F] + ): F[String] + /** Sends a signal to the process to terminate it immediately */ def cancel: F[Unit] @@ -75,6 +89,12 @@ object SysExec { proc <- startProcess(logger, cmd, workdir, stdin) fibers <- Resource.eval(Ref.of[F, List[F[Unit]]](Nil)) } yield new SysExec[F] { + private lazy val basicName: String = + cmd.program.lastIndexOf(java.io.File.separatorChar.toInt) match { + case n if n > 0 => cmd.program.drop(n + 1) + case _ => cmd.program.takeRight(16) + } + def stdout: Stream[F, Byte] = fs2.io.readInputStream( Sync[F].blocking(proc.getInputStream), @@ -107,6 +127,39 @@ object SysExec { ) } + def runToSuccess(logger: Logger[F], timeout: Option[Duration])(implicit + F: Async[F] + ): F[Int] = + logOutputs(logger, basicName).use(_.waitFor(timeout).flatMap { + case rc if rc == 0 => Sync[F].pure(0) + case rc => + Sync[F].raiseError( + new Exception(s"Command `${cmd.program}` returned non-zero exit code ${rc}") + ) + }) + + def runToSuccessStdout(logger: Logger[F], timeout: Option[Duration])(implicit + F: Async[F] + ): F[String] = + F.background( + stderrLines + .through(line => Stream.eval(logger.debug(s"[$basicName (err)]: $line"))) + .compile + .drain + ).use { f1 => + waitFor(timeout) + .flatMap { + case rc if rc == 0 => stdout.through(fs2.text.utf8.decode).compile.string + case rc => + Sync[F].raiseError[String]( + new Exception( + s"Command `${cmd.program}` returned non-zero exit code ${rc}" + ) + ) + } + .flatTap(_ => f1) + } + def consumeOutputs(out: Pipe[F, String, Unit], err: Pipe[F, String, Unit])(implicit F: Async[F] ): Resource[F, SysExec[F]] = diff --git a/modules/common/src/test/scala/docspell/common/exec/ExternalCommandTest.scala b/modules/common/src/test/scala/docspell/common/exec/ExternalCommandTest.scala new file mode 100644 index 00000000..120e68cf --- /dev/null +++ b/modules/common/src/test/scala/docspell/common/exec/ExternalCommandTest.scala @@ -0,0 +1,74 @@ +/* + * Copyright 2020 Eike K. & Contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +package docspell.common.exec + +import docspell.common.Duration +import docspell.common.Ident +import docspell.common.exec.Args +import docspell.common.exec.Env +import docspell.common.exec.ExternalCommand._ +import docspell.common.exec.SysCmd + +import munit.FunSuite + +class ExternalCommandTest extends FunSuite { + + test("resolve") { + val cmd = ExternalCommand( + program = "tesseract", + args = "{{infile}}" :: "{{lang-spec}}" :: "out" :: "pdf" :: "txt" :: Nil, + timeout = Duration.minutes(5), + env = Map.empty, + argMappings = Map( + Ident.unsafe("lang-spec") -> ArgMapping( + value = "{{lang}}", + mappings = List( + ArgMatch( + matches = "jpn_vert", + args = List("-l", "jpn_vert", "-c", "preserve_interword_spaces=1") + ), + ArgMatch( + matches = ".*", + args = List("-l", "{{lang}}") + ) + ) + ) + ) + ) + + val varsDe = Map("lang" -> "de", "encoding" -> "UTF_8", "infile" -> "text.jpg") + assertEquals( + cmd.resolve(varsDe), + SysCmd( + "tesseract", + Args.of("text.jpg", "-l", "de", "out", "pdf", "txt"), + Env.empty, + Duration.minutes(5) + ) + ) + + val varsJpnVert = varsDe.updated("lang", "jpn_vert") + assertEquals( + cmd.resolve(varsJpnVert), + SysCmd( + "tesseract", + Args.of( + "text.jpg", + "-l", + "jpn_vert", + "-c", + "preserve_interword_spaces=1", + "out", + "pdf", + "txt" + ), + Env.empty, + Duration.minutes(5) + ) + ) + } +} diff --git a/modules/convert/src/main/scala/docspell/convert/extern/ExternConv.scala b/modules/convert/src/main/scala/docspell/convert/extern/ExternConv.scala index 5f1253f5..0b7981cd 100644 --- a/modules/convert/src/main/scala/docspell/convert/extern/ExternConv.scala +++ b/modules/convert/src/main/scala/docspell/convert/extern/ExternConv.scala @@ -11,7 +11,8 @@ import cats.implicits._ import fs2.io.file.{Files, Path} import fs2.{Pipe, Stream} -import docspell.common._ +import docspell.common.exec.ExternalCommand +import docspell.common.exec.SysExec import docspell.common.util.File import docspell.convert.ConversionResult import docspell.convert.ConversionResult.{Handler, successPdf, successPdfTxt} @@ -21,11 +22,11 @@ private[extern] object ExternConv { def toPDF[F[_]: Async: Files, A]( name: String, - cmdCfg: SystemCommand.Config, + cmdCfg: ExternalCommand.WithVars, wd: Path, useStdin: Boolean, logger: Logger[F], - reader: (Path, SystemCommand.Result) => F[ConversionResult[F]] + reader: (Path, Int) => F[ConversionResult[F]] )(in: Stream[F, Byte], handler: Handler[F, A]): F[A] = Stream .resource(File.withTempDir[F](wd, s"docspell-$name")) @@ -33,32 +34,21 @@ private[extern] object ExternConv { val inFile = dir.resolve("infile").absolute.normalize val out = dir.resolve("out.pdf").absolute.normalize val sysCfg = - cmdCfg.replace( - Map( - "{{outfile}}" -> out.toString - ) ++ - (if (!useStdin) Map("{{infile}}" -> inFile.toString) - else Map.empty) - ) + cmdCfg + .withVar("outfile", out.toString) + .withVarOption("infile", Option.when(!useStdin)(inFile.toString)) + .resolved val createInput: Pipe[F, Byte, Unit] = if (useStdin) _ => Stream.emit(()) else storeDataToFile(name, logger, inFile) - in.through(createInput).flatMap { _ => - SystemCommand - .exec[F]( - sysCfg, - logger, - Some(dir), - if (useStdin) in - else Stream.empty - ) - .evalMap(result => - logResult(name, result, logger) - .flatMap(_ => reader(out, result)) - .flatMap(handler.run) - ) + in.through(createInput).evalMap { _ => + SysExec(sysCfg, logger, Some(dir), Option.when(useStdin)(in)) + .flatMap(_.logOutputs(logger, name)) + .use { proc => + proc.waitFor().flatMap(rc => reader(out, rc).flatMap(handler.run)) + } } } .compile @@ -74,9 +64,9 @@ private[extern] object ExternConv { def readResult[F[_]: Async: Files]( chunkSize: Int, logger: Logger[F] - )(out: Path, result: SystemCommand.Result): F[ConversionResult[F]] = + )(out: Path, result: Int): F[ConversionResult[F]] = File.existsNonEmpty[F](out).flatMap { - case true if result.rc == 0 => + case true if result == 0 => val outTxt = out.resolveSibling(out.fileName.toString + ".txt") File.existsNonEmpty[F](outTxt).flatMap { case true => @@ -88,13 +78,13 @@ private[extern] object ExternConv { successPdf(File.readAll(out, chunkSize)).pure[F] } case true => - logger.warn(s"Command not successful (rc=${result.rc}), but file exists.") *> + logger.warn(s"Command not successful (rc=${result}), but file exists.") *> successPdf(File.readAll(out, chunkSize)).pure[F] case false => ConversionResult .failure[F]( - new Exception(s"Command result=${result.rc}. No output file found.") + new Exception(s"Command result=${result}. No output file found.") ) .pure[F] } @@ -103,25 +93,25 @@ private[extern] object ExternConv { outPrefix: String, chunkSize: Int, logger: Logger[F] - )(out: Path, result: SystemCommand.Result): F[ConversionResult[F]] = { + )(out: Path, result: Int): F[ConversionResult[F]] = { val outPdf = out.resolveSibling(s"$outPrefix.pdf") File.existsNonEmpty[F](outPdf).flatMap { case true => val outTxt = out.resolveSibling(s"$outPrefix.txt") File.exists(outTxt).flatMap { txtExists => val pdfData = File.readAll(out, chunkSize) - if (result.rc == 0) + if (result == 0) if (txtExists) successPdfTxt(pdfData, File.readText(outTxt)).pure[F] else successPdf(pdfData).pure[F] else - logger.warn(s"Command not successful (rc=${result.rc}), but file exists.") *> + logger.warn(s"Command not successful (rc=${result}), but file exists.") *> successPdf(pdfData).pure[F] } case false => ConversionResult .failure[F]( - new Exception(s"Command result=${result.rc}. No output file found.") + new Exception(s"Command result=${result}. No output file found.") ) .pure[F] } @@ -138,14 +128,6 @@ private[extern] object ExternConv { .drain ++ Stream.eval(storeFile(in, inFile)) - private def logResult[F[_]: Sync]( - name: String, - result: SystemCommand.Result, - logger: Logger[F] - ): F[Unit] = - logger.debug(s"$name stdout: ${result.stdout}") *> - logger.debug(s"$name stderr: ${result.stderr}") - private def storeFile[F[_]: Async: Files]( in: Stream[F, Byte], target: Path diff --git a/modules/convert/src/main/scala/docspell/convert/extern/OcrMyPdf.scala b/modules/convert/src/main/scala/docspell/convert/extern/OcrMyPdf.scala index 1150d913..9b350ba4 100644 --- a/modules/convert/src/main/scala/docspell/convert/extern/OcrMyPdf.scala +++ b/modules/convert/src/main/scala/docspell/convert/extern/OcrMyPdf.scala @@ -24,12 +24,14 @@ object OcrMyPdf { logger: Logger[F] )(in: Stream[F, Byte], handler: Handler[F, A]): F[A] = if (cfg.enabled) { - val reader: (Path, SystemCommand.Result) => F[ConversionResult[F]] = + val reader: (Path, Int) => F[ConversionResult[F]] = ExternConv.readResult[F](chunkSize, logger) + val cmd = cfg.command.withVars(Map("lang" -> lang.iso3)) + ExternConv.toPDF[F, A]( "ocrmypdf", - cfg.command.replace(Map("{{lang}}" -> lang.iso3)), + cmd, cfg.workingDir, useStdin = false, logger, diff --git a/modules/convert/src/main/scala/docspell/convert/extern/OcrMyPdfConfig.scala b/modules/convert/src/main/scala/docspell/convert/extern/OcrMyPdfConfig.scala index 726469ce..fa85b4ee 100644 --- a/modules/convert/src/main/scala/docspell/convert/extern/OcrMyPdfConfig.scala +++ b/modules/convert/src/main/scala/docspell/convert/extern/OcrMyPdfConfig.scala @@ -8,10 +8,10 @@ package docspell.convert.extern import fs2.io.file.Path -import docspell.common.SystemCommand +import docspell.common.exec.ExternalCommand case class OcrMyPdfConfig( enabled: Boolean, - command: SystemCommand.Config, + command: ExternalCommand, workingDir: Path ) diff --git a/modules/convert/src/main/scala/docspell/convert/extern/Tesseract.scala b/modules/convert/src/main/scala/docspell/convert/extern/Tesseract.scala index 39007c6c..50ea2dd9 100644 --- a/modules/convert/src/main/scala/docspell/convert/extern/Tesseract.scala +++ b/modules/convert/src/main/scala/docspell/convert/extern/Tesseract.scala @@ -24,17 +24,18 @@ object Tesseract { logger: Logger[F] )(in: Stream[F, Byte], handler: Handler[F, A]): F[A] = { val outBase = cfg.command.args.tail.headOption.getOrElse("out") - val reader: (Path, SystemCommand.Result) => F[ConversionResult[F]] = + val reader: (Path, Int) => F[ConversionResult[F]] = ExternConv.readResultTesseract[F](outBase, chunkSize, logger) + val cmd = cfg.command.withVars(Map("lang" -> lang.iso3)) + ExternConv.toPDF[F, A]( "tesseract", - cfg.command.replace(Map("{{lang}}" -> lang.iso3)), + cmd, cfg.workingDir, useStdin = false, logger, reader )(in, handler) } - } diff --git a/modules/convert/src/main/scala/docspell/convert/extern/TesseractConfig.scala b/modules/convert/src/main/scala/docspell/convert/extern/TesseractConfig.scala index d2f09780..aae31fcc 100644 --- a/modules/convert/src/main/scala/docspell/convert/extern/TesseractConfig.scala +++ b/modules/convert/src/main/scala/docspell/convert/extern/TesseractConfig.scala @@ -8,6 +8,6 @@ package docspell.convert.extern import fs2.io.file.Path -import docspell.common.SystemCommand +import docspell.common.exec.ExternalCommand -case class TesseractConfig(command: SystemCommand.Config, workingDir: Path) +case class TesseractConfig(command: ExternalCommand, workingDir: Path) diff --git a/modules/convert/src/main/scala/docspell/convert/extern/Unoconv.scala b/modules/convert/src/main/scala/docspell/convert/extern/Unoconv.scala index 01b9a444..102987d2 100644 --- a/modules/convert/src/main/scala/docspell/convert/extern/Unoconv.scala +++ b/modules/convert/src/main/scala/docspell/convert/extern/Unoconv.scala @@ -10,7 +10,6 @@ import cats.effect._ import fs2.Stream import fs2.io.file.{Files, Path} -import docspell.common._ import docspell.convert.ConversionResult import docspell.convert.ConversionResult.Handler import docspell.logging.Logger @@ -22,12 +21,13 @@ object Unoconv { chunkSize: Int, logger: Logger[F] )(in: Stream[F, Byte], handler: Handler[F, A]): F[A] = { - val reader: (Path, SystemCommand.Result) => F[ConversionResult[F]] = + val reader: (Path, Int) => F[ConversionResult[F]] = ExternConv.readResult[F](chunkSize, logger) + val cmd = cfg.command.withVars(Map.empty) ExternConv.toPDF[F, A]( "unoconv", - cfg.command, + cmd, cfg.workingDir, useStdin = false, logger, @@ -37,5 +37,4 @@ object Unoconv { handler ) } - } diff --git a/modules/convert/src/main/scala/docspell/convert/extern/UnoconvConfig.scala b/modules/convert/src/main/scala/docspell/convert/extern/UnoconvConfig.scala index 8fe0d209..14084966 100644 --- a/modules/convert/src/main/scala/docspell/convert/extern/UnoconvConfig.scala +++ b/modules/convert/src/main/scala/docspell/convert/extern/UnoconvConfig.scala @@ -8,6 +8,6 @@ package docspell.convert.extern import fs2.io.file.Path -import docspell.common.SystemCommand +import docspell.common.exec.ExternalCommand -case class UnoconvConfig(command: SystemCommand.Config, workingDir: Path) +case class UnoconvConfig(command: ExternalCommand, workingDir: Path) diff --git a/modules/convert/src/main/scala/docspell/convert/extern/Weasyprint.scala b/modules/convert/src/main/scala/docspell/convert/extern/Weasyprint.scala index 2470d0fe..5c411d34 100644 --- a/modules/convert/src/main/scala/docspell/convert/extern/Weasyprint.scala +++ b/modules/convert/src/main/scala/docspell/convert/extern/Weasyprint.scala @@ -27,10 +27,10 @@ object Weasyprint { sanitizeHtml: SanitizeHtml, logger: Logger[F] )(in: Stream[F, Byte], handler: Handler[F, A]): F[A] = { - val reader: (Path, SystemCommand.Result) => F[ConversionResult[F]] = + val reader: (Path, Int) => F[ConversionResult[F]] = ExternConv.readResult[F](chunkSize, logger) - val cmdCfg = cfg.command.replace(Map("{{encoding}}" -> charset.name())) + val cmdCfg = cfg.command.withVars(Map("encoding" -> charset.name())) // html sanitize should (among other) remove links to invalid // protocols like cid: which is not supported by further @@ -51,5 +51,4 @@ object Weasyprint { handler ) } - } diff --git a/modules/convert/src/main/scala/docspell/convert/extern/WeasyprintConfig.scala b/modules/convert/src/main/scala/docspell/convert/extern/WeasyprintConfig.scala index 2ce485cc..dca425a8 100644 --- a/modules/convert/src/main/scala/docspell/convert/extern/WeasyprintConfig.scala +++ b/modules/convert/src/main/scala/docspell/convert/extern/WeasyprintConfig.scala @@ -8,6 +8,6 @@ package docspell.convert.extern import fs2.io.file.Path -import docspell.common.SystemCommand +import docspell.common.exec.ExternalCommand -case class WeasyprintConfig(command: SystemCommand.Config, workingDir: Path) +case class WeasyprintConfig(command: ExternalCommand, workingDir: Path) diff --git a/modules/convert/src/main/scala/docspell/convert/extern/WkHtmlPdf.scala b/modules/convert/src/main/scala/docspell/convert/extern/WkHtmlPdf.scala index 04e973fe..f22d9ada 100644 --- a/modules/convert/src/main/scala/docspell/convert/extern/WkHtmlPdf.scala +++ b/modules/convert/src/main/scala/docspell/convert/extern/WkHtmlPdf.scala @@ -27,10 +27,10 @@ object WkHtmlPdf { sanitizeHtml: SanitizeHtml, logger: Logger[F] )(in: Stream[F, Byte], handler: Handler[F, A]): F[A] = { - val reader: (Path, SystemCommand.Result) => F[ConversionResult[F]] = + val reader: (Path, Int) => F[ConversionResult[F]] = ExternConv.readResult[F](chunkSize, logger) - val cmdCfg = cfg.command.replace(Map("{{encoding}}" -> charset.name())) + val cmdCfg = cfg.command.withVars(Map("encoding" -> charset.name())) // html sanitize should (among other) remove links to invalid // protocols like cid: which is not supported by further @@ -58,5 +58,4 @@ object WkHtmlPdf { handler ) } - } diff --git a/modules/convert/src/main/scala/docspell/convert/extern/WkHtmlPdfConfig.scala b/modules/convert/src/main/scala/docspell/convert/extern/WkHtmlPdfConfig.scala index 52b71ea3..293d15aa 100644 --- a/modules/convert/src/main/scala/docspell/convert/extern/WkHtmlPdfConfig.scala +++ b/modules/convert/src/main/scala/docspell/convert/extern/WkHtmlPdfConfig.scala @@ -8,6 +8,6 @@ package docspell.convert.extern import fs2.io.file.Path -import docspell.common.SystemCommand +import docspell.common.exec.ExternalCommand -case class WkHtmlPdfConfig(command: SystemCommand.Config, workingDir: Path) +case class WkHtmlPdfConfig(command: ExternalCommand, workingDir: Path) diff --git a/modules/convert/src/test/scala/docspell/convert/ConversionTest.scala b/modules/convert/src/test/scala/docspell/convert/ConversionTest.scala index 0cb2ca65..cfbd0837 100644 --- a/modules/convert/src/test/scala/docspell/convert/ConversionTest.scala +++ b/modules/convert/src/test/scala/docspell/convert/ConversionTest.scala @@ -15,6 +15,7 @@ import cats.implicits._ import fs2.Stream import docspell.common._ +import docspell.common.exec._ import docspell.common.util.File import docspell.convert.ConversionResult.Handler import docspell.convert.ConvertConfig.HtmlConverter @@ -36,7 +37,7 @@ class ConversionTest extends FunSuite with FileChecks with TestLoggingConfig { 3000 * 3000, MarkdownConfig("body { padding: 2em 5em; }"), WkHtmlPdfConfig( - SystemCommand.Config( + ExternalCommand( "wkhtmltopdf", Seq("-s", "A4", "--encoding", "UTF-8", "-", "{{outfile}}"), Duration.seconds(20) @@ -44,7 +45,7 @@ class ConversionTest extends FunSuite with FileChecks with TestLoggingConfig { target ), WeasyprintConfig( - SystemCommand.Config( + ExternalCommand( "weasyprint", Seq("--encoding", "UTF-8", "-", "{{outfile}}"), Duration.seconds(20) @@ -53,7 +54,7 @@ class ConversionTest extends FunSuite with FileChecks with TestLoggingConfig { ), HtmlConverter.Wkhtmltopdf, TesseractConfig( - SystemCommand.Config( + ExternalCommand( "tesseract", Seq("{{infile}}", "out", "-l", "deu", "pdf", "txt"), Duration.seconds(20) @@ -61,7 +62,7 @@ class ConversionTest extends FunSuite with FileChecks with TestLoggingConfig { target ), UnoconvConfig( - SystemCommand.Config( + ExternalCommand( "unoconv", Seq("-f", "pdf", "-o", "{{outfile}}", "{{infile}}"), Duration.seconds(20) @@ -70,7 +71,7 @@ class ConversionTest extends FunSuite with FileChecks with TestLoggingConfig { ), OcrMyPdfConfig( enabled = true, - SystemCommand.Config( + ExternalCommand( "ocrmypdf", Seq( "-l", diff --git a/modules/convert/src/test/scala/docspell/convert/extern/ExternConvTest.scala b/modules/convert/src/test/scala/docspell/convert/extern/ExternConvTest.scala index 9beaed28..67d1e5ae 100644 --- a/modules/convert/src/test/scala/docspell/convert/extern/ExternConvTest.scala +++ b/modules/convert/src/test/scala/docspell/convert/extern/ExternConvTest.scala @@ -14,6 +14,7 @@ import cats.effect.unsafe.implicits.global import fs2.io.file.Path import docspell.common._ +import docspell.common.exec._ import docspell.common.util.File import docspell.convert._ import docspell.files.ExampleFiles @@ -27,7 +28,7 @@ class ExternConvTest extends FunSuite with FileChecks with TestLoggingConfig { val target = File.path(Paths.get("target")) test("convert html to pdf") { - val cfg = SystemCommand.Config( + val cfg = ExternalCommand( "wkhtmltopdf", Seq("-s", "A4", "--encoding", "UTF-8", "-", "{{outfile}}"), Duration.seconds(20) @@ -53,7 +54,7 @@ class ExternConvTest extends FunSuite with FileChecks with TestLoggingConfig { } test("convert office to pdf") { - val cfg = SystemCommand.Config( + val cfg = ExternalCommand( "unoconv", Seq("-f", "pdf", "-o", "{{outfile}}", "{{infile}}"), Duration.seconds(20) @@ -80,7 +81,7 @@ class ExternConvTest extends FunSuite with FileChecks with TestLoggingConfig { } test("convert image to pdf") { - val cfg = SystemCommand.Config( + val cfg = ExternalCommand( "tesseract", Seq("{{infile}}", "out", "-l", "deu", "pdf", "txt"), Duration.seconds(20) @@ -105,5 +106,4 @@ class ExternConvTest extends FunSuite with FileChecks with TestLoggingConfig { ) .unsafeRunSync() } - } diff --git a/modules/extract/src/main/scala/docspell/extract/ocr/Ocr.scala b/modules/extract/src/main/scala/docspell/extract/ocr/Ocr.scala index b0828201..f70c46b6 100644 --- a/modules/extract/src/main/scala/docspell/extract/ocr/Ocr.scala +++ b/modules/extract/src/main/scala/docspell/extract/ocr/Ocr.scala @@ -10,7 +10,8 @@ import cats.effect._ import fs2.Stream import fs2.io.file.{Files, Path} -import docspell.common._ +import docspell.common.exec.ExternalCommand +import docspell.common.exec.SysExec import docspell.common.util.File import docspell.logging.Logger @@ -77,14 +78,17 @@ object Ocr { else cfg.ghostscript.command.args val cmd = cfg.ghostscript.command .copy(args = xargs) - .replace( + .withVars( Map( - "{{infile}}" -> "-", - "{{outfile}}" -> "%d.tif" + "infile" -> "-", + "outfile" -> "%d.tif" ) ) - SystemCommand - .execSuccess(cmd, logger, wd = Some(wd), stdin = pdf) + .resolved + + Stream + .resource(SysExec(cmd, logger, Some(wd), Some(pdf))) + .evalMap(_.runToSuccess(logger)) .flatMap(_ => File.listFiles(pathEndsWith(".tif"), wd)) } @@ -93,18 +97,22 @@ object Ocr { */ private[extract] def runGhostscriptFile[F[_]: Async: Files]( pdf: Path, - ghostscript: SystemCommand.Config, + ghostscript: ExternalCommand, wd: Path, logger: Logger[F] ): Stream[F, Path] = { - val cmd = ghostscript.replace( - Map( - "{{infile}}" -> pdf.absolute.toString, - "{{outfile}}" -> "%d.tif" + val cmd = ghostscript + .withVars( + Map( + "infile" -> pdf.absolute.toString, + "outfile" -> "%d.tif" + ) ) - ) - SystemCommand - .execSuccess[F](cmd, logger, wd = Some(wd)) + .resolved + + Stream + .resource(SysExec(cmd, logger, Some(wd))) + .evalMap(_.runToSuccess(logger)) .flatMap(_ => File.listFiles(pathEndsWith(".tif"), wd)) } @@ -116,19 +124,23 @@ object Ocr { */ private[extract] def runUnpaperFile[F[_]: Async]( img: Path, - unpaper: SystemCommand.Config, + unpaper: ExternalCommand, wd: Option[Path], logger: Logger[F] ): Stream[F, Path] = { val targetFile = img.resolveSibling("u-" + img.fileName.toString).absolute - val cmd = unpaper.replace( - Map( - "{{infile}}" -> img.absolute.toString, - "{{outfile}}" -> targetFile.toString + val cmd = unpaper + .withVars( + Map( + "infile" -> img.absolute.toString, + "outfile" -> targetFile.toString + ) ) - ) - SystemCommand - .execSuccess[F](cmd, logger, wd = wd) + .resolved + + Stream + .resource(SysExec(cmd, logger, wd)) + .evalMap(_.runToSuccess(logger)) .map(_ => targetFile) .handleErrorWith { th => logger @@ -150,12 +162,14 @@ object Ocr { // so use the parent as working dir runUnpaperFile(img, config.unpaper.command, img.parent, logger).flatMap { uimg => val cmd = config.tesseract.command - .replace( - Map("{{file}}" -> uimg.fileName.toString, "{{lang}}" -> fixLanguage(lang)) + .withVars( + Map("file" -> uimg.fileName.toString, "lang" -> fixLanguage(lang)) ) - SystemCommand - .execSuccess[F](cmd, logger, wd = uimg.parent) - .map(_.stdout) + .resolved + + Stream + .resource(SysExec(cmd, logger, uimg.parent)) + .evalMap(_.runToSuccessStdout(logger)) } /** Run tesseract on the given image file and return the extracted text. */ @@ -166,8 +180,12 @@ object Ocr { config: OcrConfig ): Stream[F, String] = { val cmd = config.tesseract.command - .replace(Map("{{file}}" -> "stdin", "{{lang}}" -> fixLanguage(lang))) - SystemCommand.execSuccess(cmd, logger, stdin = img).map(_.stdout) + .withVars(Map("file" -> "stdin", "lang" -> fixLanguage(lang))) + .resolved + + Stream + .resource(SysExec(cmd, logger, None, Some(img))) + .evalMap(_.runToSuccessStdout(logger)) } private def fixLanguage(lang: String): String = diff --git a/modules/extract/src/main/scala/docspell/extract/ocr/OcrConfig.scala b/modules/extract/src/main/scala/docspell/extract/ocr/OcrConfig.scala index 856c21a3..6170f62b 100644 --- a/modules/extract/src/main/scala/docspell/extract/ocr/OcrConfig.scala +++ b/modules/extract/src/main/scala/docspell/extract/ocr/OcrConfig.scala @@ -6,12 +6,9 @@ package docspell.extract.ocr -import java.nio.file.Paths - import fs2.io.file.Path -import docspell.common._ -import docspell.common.util.File +import docspell.common.exec.ExternalCommand case class OcrConfig( maxImageSize: Int, @@ -25,43 +22,10 @@ object OcrConfig { case class PageRange(begin: Int) - case class Ghostscript(command: SystemCommand.Config, workingDir: Path) + case class Ghostscript(command: ExternalCommand, workingDir: Path) - case class Tesseract(command: SystemCommand.Config) + case class Tesseract(command: ExternalCommand) - case class Unpaper(command: SystemCommand.Config) + case class Unpaper(command: ExternalCommand) - val default = OcrConfig( - maxImageSize = 3000 * 3000, - pageRange = PageRange(10), - ghostscript = Ghostscript( - SystemCommand.Config( - "gs", - Seq( - "-dNOPAUSE", - "-dBATCH", - "-dSAFER", - "-sDEVICE=tiffscaled8", - "-sOutputFile={{outfile}}", - "{{infile}}" - ), - Duration.seconds(30) - ), - File.path( - Paths.get(System.getProperty("java.io.tmpdir")).resolve("docspell-extraction") - ) - ), - unpaper = Unpaper( - SystemCommand - .Config("unpaper", Seq("{{infile}}", "{{outfile}}"), Duration.seconds(30)) - ), - tesseract = Tesseract( - SystemCommand - .Config( - "tesseract", - Seq("{{file}}", "stdout", "-l", "{{lang}}"), - Duration.minutes(1) - ) - ) - ) } diff --git a/modules/extract/src/test/scala/docspell/extract/ocr/TextExtractionSuite.scala b/modules/extract/src/test/scala/docspell/extract/ocr/TextExtractionSuite.scala index 71d55ad8..7aa6a072 100644 --- a/modules/extract/src/test/scala/docspell/extract/ocr/TextExtractionSuite.scala +++ b/modules/extract/src/test/scala/docspell/extract/ocr/TextExtractionSuite.scala @@ -6,9 +6,14 @@ package docspell.extract.ocr +import java.nio.file.Paths + import cats.effect.IO import cats.effect.unsafe.implicits.global +import docspell.common.Duration +import docspell.common.exec.ExternalCommand +import docspell.common.util.File import docspell.files.TestFiles import docspell.logging.TestLoggingConfig @@ -21,7 +26,7 @@ class TextExtractionSuite extends FunSuite with TestLoggingConfig { test("extract english pdf".ignore) { val text = TextExtract - .extract[IO](letterSourceEN, logger, "eng", OcrConfig.default) + .extract[IO](letterSourceEN, logger, "eng", TextExtractionSuite.defaultConfig) .compile .lastOrError .unsafeRunSync() @@ -31,7 +36,7 @@ class TextExtractionSuite extends FunSuite with TestLoggingConfig { test("extract german pdf".ignore) { val expect = TestFiles.letterDEText val extract = TextExtract - .extract[IO](letterSourceDE, logger, "deu", OcrConfig.default) + .extract[IO](letterSourceDE, logger, "deu", TextExtractionSuite.defaultConfig) .compile .lastOrError .unsafeRunSync() @@ -39,3 +44,37 @@ class TextExtractionSuite extends FunSuite with TestLoggingConfig { assertEquals(extract.value, expect) } } + +object TextExtractionSuite { + val defaultConfig = OcrConfig( + maxImageSize = 3000 * 3000, + pageRange = OcrConfig.PageRange(10), + ghostscript = OcrConfig.Ghostscript( + ExternalCommand( + "gs", + Seq( + "-dNOPAUSE", + "-dBATCH", + "-dSAFER", + "-sDEVICE=tiffscaled8", + "-sOutputFile={{outfile}}", + "{{infile}}" + ), + Duration.seconds(30) + ), + File.path( + Paths.get(System.getProperty("java.io.tmpdir")).resolve("docspell-extraction") + ) + ), + unpaper = OcrConfig.Unpaper( + ExternalCommand("unpaper", Seq("{{infile}}", "{{outfile}}"), Duration.seconds(30)) + ), + tesseract = OcrConfig.Tesseract( + ExternalCommand( + "tesseract", + Seq("{{file}}", "stdout", "-l", "{{lang}}"), + Duration.minutes(1) + ) + ) + ) +} From 9ef934f8b1db2ca81dcc4a72c2ddd329f7c51a9b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 8 Mar 2024 20:50:43 +0000 Subject: [PATCH 028/162] Update dependency @fontsource/montserrat to v5.0.17 --- website/yarn.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/website/yarn.lock b/website/yarn.lock index 9c295fd8..0428ed44 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -8,19 +8,19 @@ integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== "@fontsource/montserrat@^5.0.0": - version "5.0.16" - resolved "https://registry.yarnpkg.com/@fontsource/montserrat/-/montserrat-5.0.16.tgz#caa1b11b1d0ee1d6a028a73cedb5b27f8d881242" - integrity sha512-g27g1cvkyVm74QM0HKOCnI4iifMqf/3cSJYedjbjtW/Ygb271qfDz5gGMJCl9MinD4nimDdENsU3K1vGR50S2Q== + version "5.0.17" + resolved "https://registry.yarnpkg.com/@fontsource/montserrat/-/montserrat-5.0.17.tgz#ea8003b028dc41d5baab1ab7765193fd342548c3" + integrity sha512-3V3F8GqeN8wawLmAkAfTCYsBYRKu+JLm6ivWWX/v0dCYYPcwtQX0h5Z8j68N1YumuT75MqrghqU42w9DnFHojQ== "@fontsource/source-code-pro@^5.0.0": - version "5.0.16" - resolved "https://registry.yarnpkg.com/@fontsource/source-code-pro/-/source-code-pro-5.0.16.tgz#5943c67cfec5493b0f1a5bc416e14ab7d5ebe760" - integrity sha512-ErErGXjKo9/fAJE49fyU8M6DuJUpdqR5YLM8jGJOC5ZcKIDSTQ5m+R3DTa0VYHAGGFbk2qLWVWD/r5sfCLA/jQ== + version "5.0.17" + resolved "https://registry.yarnpkg.com/@fontsource/source-code-pro/-/source-code-pro-5.0.17.tgz#a69df6b9fc19fe8b2d04126ce28ad9213cf0049b" + integrity sha512-Q5GfthInOTW+Ek5k97/LH6FWLmD+IwHwBEEXF+KStvsyPwSZz+0ssdWJfz/ZRaTZxOk7FwlRgysXAWo41fq6bQ== "@fontsource/spectral@^5.0.0": - version "5.0.8" - resolved "https://registry.yarnpkg.com/@fontsource/spectral/-/spectral-5.0.8.tgz#013d48a177ce6b9eba8bdb4ed99a8a37aac57fd2" - integrity sha512-Gp/tqCe9scBJHwH0RgGasf5KkLYgW4Y2rKgQqMe3j5cYpZyCJA2g0OOVVvF8U7VQfvfw3TW8d3hWT4IISXqQCQ== + version "5.0.12" + resolved "https://registry.yarnpkg.com/@fontsource/spectral/-/spectral-5.0.12.tgz#cfdc1608258c1edf69dd18996501604ab69bcd2c" + integrity sha512-tscRgEvVW/eRnBaGRnnlg86rx0NUMGzXFNePFBIXqdZE++9hOH0RTUqtpzUR+zS037kgbkitaVqotyGY8Vq+jw== "@fortawesome/fontawesome-free@^6.0.0": version "6.5.1" From 95a28afa69dccfb9c07da457c5048dc052cb4ed8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 8 Mar 2024 22:02:53 +0000 Subject: [PATCH 029/162] Update dependency cssnano to v6.1.0 --- modules/webapp/package-lock.json | 593 ++++++++++++++++--------------- website/yarn.lock | 402 +++++++++++---------- 2 files changed, 508 insertions(+), 487 deletions(-) diff --git a/modules/webapp/package-lock.json b/modules/webapp/package-lock.json index 5cfe35ab..f2f41f88 100644 --- a/modules/webapp/package-lock.json +++ b/modules/webapp/package-lock.json @@ -293,9 +293,9 @@ } }, "node_modules/browserslist": { - "version": "4.22.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", - "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "dev": true, "funding": [ { @@ -312,8 +312,8 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001565", - "electron-to-chromium": "^1.4.601", + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", "node-releases": "^2.0.14", "update-browserslist-db": "^1.0.13" }, @@ -346,9 +346,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001578", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001578.tgz", - "integrity": "sha512-J/jkFgsQ3NEl4w2lCoM9ZPxrD+FoBNJ7uJUpGVjIg/j0OwJosWM36EPDv+Yyi0V4twBk9pPmlFS+PLykgEvUmg==", + "version": "1.0.30001596", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001596.tgz", + "integrity": "sha512-zpkZ+kEr6We7w63ORkoJ2pOfBwBkY/bJrG/UZ90qNb45Isblu8wzDgevEOrRL1r9dWayHjYiiyCMEXPn4DweGQ==", "dev": true, "funding": [ { @@ -508,13 +508,13 @@ } }, "node_modules/cssnano": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.0.3.tgz", - "integrity": "sha512-MRq4CIj8pnyZpcI2qs6wswoYoDD1t0aL28n+41c1Ukcpm56m1h6mCexIHBGjfZfnTqtGSSCP4/fB1ovxgjBOiw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.1.0.tgz", + "integrity": "sha512-e2v4w/t3OFM6HTuSweI4RSdABaqgVgHlJp5FZrQsopHnKKHLFIvK2D3C4kHWeFIycN/1L1J5VIrg5KlDzn3r/g==", "dev": true, "dependencies": { - "cssnano-preset-default": "^6.0.3", - "lilconfig": "^3.0.0" + "cssnano-preset-default": "^6.1.0", + "lilconfig": "^3.1.1" }, "engines": { "node": "^14 || ^16 || >=18.0" @@ -528,40 +528,41 @@ } }, "node_modules/cssnano-preset-default": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.0.3.tgz", - "integrity": "sha512-4y3H370aZCkT9Ev8P4SO4bZbt+AExeKhh8wTbms/X7OLDo5E7AYUUy6YPxa/uF5Grf+AJwNcCnxKhZynJ6luBA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.0.tgz", + "integrity": "sha512-4DUXZoDj+PI3fRl3MqMjl9DwLGjcsFP4qt+92nLUcN1RGfw2TY+GwNoG2B38Usu1BrcTs8j9pxNfSusmvtSjfg==", "dev": true, "dependencies": { + "browserslist": "^4.23.0", "css-declaration-sorter": "^7.1.1", - "cssnano-utils": "^4.0.1", + "cssnano-utils": "^4.0.2", "postcss-calc": "^9.0.1", - "postcss-colormin": "^6.0.2", - "postcss-convert-values": "^6.0.2", - "postcss-discard-comments": "^6.0.1", - "postcss-discard-duplicates": "^6.0.1", - "postcss-discard-empty": "^6.0.1", - "postcss-discard-overridden": "^6.0.1", - "postcss-merge-longhand": "^6.0.2", - "postcss-merge-rules": "^6.0.3", - "postcss-minify-font-values": "^6.0.1", - "postcss-minify-gradients": "^6.0.1", - "postcss-minify-params": "^6.0.2", - "postcss-minify-selectors": "^6.0.2", - "postcss-normalize-charset": "^6.0.1", - "postcss-normalize-display-values": "^6.0.1", - "postcss-normalize-positions": "^6.0.1", - "postcss-normalize-repeat-style": "^6.0.1", - "postcss-normalize-string": "^6.0.1", - "postcss-normalize-timing-functions": "^6.0.1", - "postcss-normalize-unicode": "^6.0.2", - "postcss-normalize-url": "^6.0.1", - "postcss-normalize-whitespace": "^6.0.1", - "postcss-ordered-values": "^6.0.1", - "postcss-reduce-initial": "^6.0.2", - "postcss-reduce-transforms": "^6.0.1", - "postcss-svgo": "^6.0.2", - "postcss-unique-selectors": "^6.0.2" + "postcss-colormin": "^6.1.0", + "postcss-convert-values": "^6.1.0", + "postcss-discard-comments": "^6.0.2", + "postcss-discard-duplicates": "^6.0.3", + "postcss-discard-empty": "^6.0.3", + "postcss-discard-overridden": "^6.0.2", + "postcss-merge-longhand": "^6.0.4", + "postcss-merge-rules": "^6.1.0", + "postcss-minify-font-values": "^6.0.3", + "postcss-minify-gradients": "^6.0.3", + "postcss-minify-params": "^6.1.0", + "postcss-minify-selectors": "^6.0.3", + "postcss-normalize-charset": "^6.0.2", + "postcss-normalize-display-values": "^6.0.2", + "postcss-normalize-positions": "^6.0.2", + "postcss-normalize-repeat-style": "^6.0.2", + "postcss-normalize-string": "^6.0.2", + "postcss-normalize-timing-functions": "^6.0.2", + "postcss-normalize-unicode": "^6.1.0", + "postcss-normalize-url": "^6.0.2", + "postcss-normalize-whitespace": "^6.0.2", + "postcss-ordered-values": "^6.0.2", + "postcss-reduce-initial": "^6.1.0", + "postcss-reduce-transforms": "^6.0.2", + "postcss-svgo": "^6.0.3", + "postcss-unique-selectors": "^6.0.3" }, "engines": { "node": "^14 || ^16 || >=18.0" @@ -571,9 +572,9 @@ } }, "node_modules/cssnano-utils": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.1.tgz", - "integrity": "sha512-6qQuYDqsGoiXssZ3zct6dcMxiqfT6epy7x4R0TQJadd4LWO3sPR6JH6ZByOvVLoZ6EdwPGgd7+DR1EmX3tiXQQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.2.tgz", + "integrity": "sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==", "dev": true, "engines": { "node": "^14 || ^16 || >=18.0" @@ -583,12 +584,15 @@ } }, "node_modules/cssnano/node_modules/lilconfig": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", - "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", + "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", "dev": true, "engines": { "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" } }, "node_modules/csso": { @@ -701,9 +705,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.618", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.618.tgz", - "integrity": "sha512-mTM2HieHLxs1RbD/R/ZoQLMsGI8lWIkP17G7cx32mJRBJt9wlNPkXwE3sYg/OnNb5GBkus98lXatSthoL8Y5Ag==", + "version": "1.4.699", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.699.tgz", + "integrity": "sha512-I7q3BbQi6e4tJJN5CRcyvxhK0iJb34TV8eJQcgh+fR2fQ8miMgZcEInckCo1U9exDHbfz7DLDnFn8oqH/VcRKw==", "dev": true }, "node_modules/emoji-regex": { @@ -1378,14 +1382,14 @@ } }, "node_modules/postcss-colormin": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.0.2.tgz", - "integrity": "sha512-TXKOxs9LWcdYo5cgmcSHPkyrLAh86hX1ijmyy6J8SbOhyv6ua053M3ZAM/0j44UsnQNIWdl8gb5L7xX2htKeLw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.1.0.tgz", + "integrity": "sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==", "dev": true, "dependencies": { - "browserslist": "^4.22.2", + "browserslist": "^4.23.0", "caniuse-api": "^3.0.0", - "colord": "^2.9.1", + "colord": "^2.9.3", "postcss-value-parser": "^4.2.0" }, "engines": { @@ -1396,12 +1400,12 @@ } }, "node_modules/postcss-convert-values": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.0.2.tgz", - "integrity": "sha512-aeBmaTnGQ+NUSVQT8aY0sKyAD/BaLJenEKZ03YK0JnDE1w1Rr8XShoxdal2V2H26xTJKr3v5haByOhJuyT4UYw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz", + "integrity": "sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==", "dev": true, "dependencies": { - "browserslist": "^4.22.2", + "browserslist": "^4.23.0", "postcss-value-parser": "^4.2.0" }, "engines": { @@ -1412,9 +1416,9 @@ } }, "node_modules/postcss-discard-comments": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.1.tgz", - "integrity": "sha512-f1KYNPtqYLUeZGCHQPKzzFtsHaRuECe6jLakf/RjSRqvF5XHLZnM2+fXLhb8Qh/HBFHs3M4cSLb1k3B899RYIg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz", + "integrity": "sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==", "dev": true, "engines": { "node": "^14 || ^16 || >=18.0" @@ -1424,9 +1428,9 @@ } }, "node_modules/postcss-discard-duplicates": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.1.tgz", - "integrity": "sha512-1hvUs76HLYR8zkScbwyJ8oJEugfPV+WchpnA+26fpJ7Smzs51CzGBHC32RS03psuX/2l0l0UKh2StzNxOrKCYg==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz", + "integrity": "sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==", "dev": true, "engines": { "node": "^14 || ^16 || >=18.0" @@ -1436,9 +1440,9 @@ } }, "node_modules/postcss-discard-empty": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.1.tgz", - "integrity": "sha512-yitcmKwmVWtNsrrRqGJ7/C0YRy53i0mjexBDQ9zYxDwTWVBgbU4+C9jIZLmQlTDT9zhml+u0OMFJh8+31krmOg==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz", + "integrity": "sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==", "dev": true, "engines": { "node": "^14 || ^16 || >=18.0" @@ -1448,9 +1452,9 @@ } }, "node_modules/postcss-discard-overridden": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.1.tgz", - "integrity": "sha512-qs0ehZMMZpSESbRkw1+inkf51kak6OOzNRaoLd/U7Fatp0aN2HQ1rxGOrJvYcRAN9VpX8kUF13R2ofn8OlvFVA==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz", + "integrity": "sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==", "dev": true, "engines": { "node": "^14 || ^16 || >=18.0" @@ -1525,13 +1529,13 @@ } }, "node_modules/postcss-merge-longhand": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.2.tgz", - "integrity": "sha512-+yfVB7gEM8SrCo9w2lCApKIEzrTKl5yS1F4yGhV3kSim6JzbfLGJyhR1B6X+6vOT0U33Mgx7iv4X9MVWuaSAfw==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.4.tgz", + "integrity": "sha512-vAfWGcxUUGlFiPM3nDMZA+/Yo9sbpc3JNkcYZez8FfJDv41Dh7tAgA3QGVTocaHCZZL6aXPXPOaBMJsjujodsA==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0", - "stylehacks": "^6.0.2" + "stylehacks": "^6.1.0" }, "engines": { "node": "^14 || ^16 || >=18.0" @@ -1541,14 +1545,14 @@ } }, "node_modules/postcss-merge-rules": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.0.3.tgz", - "integrity": "sha512-yfkDqSHGohy8sGYIJwBmIGDv4K4/WrJPX355XrxQb/CSsT4Kc/RxDi6akqn5s9bap85AWgv21ArcUWwWdGNSHA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.1.0.tgz", + "integrity": "sha512-lER+W3Gr6XOvxOYk1Vi/6UsAgKMg6MDBthmvbNqi2XxAk/r9XfhdYZSigfWjuWWn3zYw2wLelvtM8XuAEFqRkA==", "dev": true, "dependencies": { - "browserslist": "^4.22.2", + "browserslist": "^4.23.0", "caniuse-api": "^3.0.0", - "cssnano-utils": "^4.0.1", + "cssnano-utils": "^4.0.2", "postcss-selector-parser": "^6.0.15" }, "engines": { @@ -1559,9 +1563,9 @@ } }, "node_modules/postcss-minify-font-values": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.0.1.tgz", - "integrity": "sha512-tIwmF1zUPoN6xOtA/2FgVk1ZKrLcCvE0dpZLtzyyte0j9zUeB8RTbCqrHZGjJlxOvNWKMYtunLrrl7HPOiR46w==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.0.3.tgz", + "integrity": "sha512-SmAeTA1We5rMnN3F8X9YBNo9bj9xB4KyDHnaNJnBfQIPi+60fNiR9OTRnIaMqkYzAQX0vObIw4Pn0vuKEOettg==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" @@ -1574,13 +1578,13 @@ } }, "node_modules/postcss-minify-gradients": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.1.tgz", - "integrity": "sha512-M1RJWVjd6IOLPl1hYiOd5HQHgpp6cvJVLrieQYS9y07Yo8itAr6jaekzJphaJFR0tcg4kRewCk3kna9uHBxn/w==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz", + "integrity": "sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==", "dev": true, "dependencies": { - "colord": "^2.9.1", - "cssnano-utils": "^4.0.1", + "colord": "^2.9.3", + "cssnano-utils": "^4.0.2", "postcss-value-parser": "^4.2.0" }, "engines": { @@ -1591,13 +1595,13 @@ } }, "node_modules/postcss-minify-params": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.0.2.tgz", - "integrity": "sha512-zwQtbrPEBDj+ApELZ6QylLf2/c5zmASoOuA4DzolyVGdV38iR2I5QRMsZcHkcdkZzxpN8RS4cN7LPskOkTwTZw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz", + "integrity": "sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==", "dev": true, "dependencies": { - "browserslist": "^4.22.2", - "cssnano-utils": "^4.0.1", + "browserslist": "^4.23.0", + "cssnano-utils": "^4.0.2", "postcss-value-parser": "^4.2.0" }, "engines": { @@ -1608,9 +1612,9 @@ } }, "node_modules/postcss-minify-selectors": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.2.tgz", - "integrity": "sha512-0b+m+w7OAvZejPQdN2GjsXLv5o0jqYHX3aoV0e7RBKPCsB7TYG5KKWBFhGnB/iP3213Ts8c5H4wLPLMm7z28Sg==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.3.tgz", + "integrity": "sha512-IcV7ZQJcaXyhx4UBpWZMsinGs2NmiUC60rJSkyvjPCPqhNjVGsrJUM+QhAtCaikZ0w0/AbZuH4wVvF/YMuMhvA==", "dev": true, "dependencies": { "postcss-selector-parser": "^6.0.15" @@ -1642,9 +1646,9 @@ } }, "node_modules/postcss-normalize-charset": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.1.tgz", - "integrity": "sha512-aW5LbMNRZ+oDV57PF9K+WI1Z8MPnF+A8qbajg/T8PP126YrGX1f9IQx21GI2OlGz7XFJi/fNi0GTbY948XJtXg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz", + "integrity": "sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==", "dev": true, "engines": { "node": "^14 || ^16 || >=18.0" @@ -1654,9 +1658,9 @@ } }, "node_modules/postcss-normalize-display-values": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.1.tgz", - "integrity": "sha512-mc3vxp2bEuCb4LgCcmG1y6lKJu1Co8T+rKHrcbShJwUmKJiEl761qb/QQCfFwlrvSeET3jksolCR/RZuMURudw==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz", + "integrity": "sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" @@ -1669,9 +1673,9 @@ } }, "node_modules/postcss-normalize-positions": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.1.tgz", - "integrity": "sha512-HRsq8u/0unKNvm0cvwxcOUEcakFXqZ41fv3FOdPn916XFUrympjr+03oaLkuZENz3HE9RrQE9yU0Xv43ThWjQg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz", + "integrity": "sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" @@ -1684,9 +1688,9 @@ } }, "node_modules/postcss-normalize-repeat-style": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.1.tgz", - "integrity": "sha512-Gbb2nmCy6tTiA7Sh2MBs3fj9W8swonk6lw+dFFeQT68B0Pzwp1kvisJQkdV6rbbMSd9brMlS8I8ts52tAGWmGQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz", + "integrity": "sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" @@ -1699,9 +1703,9 @@ } }, "node_modules/postcss-normalize-string": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.1.tgz", - "integrity": "sha512-5Fhx/+xzALJD9EI26Aq23hXwmv97Zfy2VFrt5PLT8lAhnBIZvmaT5pQk+NuJ/GWj/QWaKSKbnoKDGLbV6qnhXg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz", + "integrity": "sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" @@ -1714,9 +1718,9 @@ } }, "node_modules/postcss-normalize-timing-functions": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.1.tgz", - "integrity": "sha512-4zcczzHqmCU7L5dqTB9rzeqPWRMc0K2HoR+Bfl+FSMbqGBUcP5LRfgcH4BdRtLuzVQK1/FHdFoGT3F7rkEnY+g==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz", + "integrity": "sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" @@ -1729,12 +1733,12 @@ } }, "node_modules/postcss-normalize-unicode": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.2.tgz", - "integrity": "sha512-Ff2VdAYCTGyMUwpevTZPZ4w0+mPjbZzLLyoLh/RMpqUqeQKZ+xMm31hkxBavDcGKcxm6ACzGk0nBfZ8LZkStKA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz", + "integrity": "sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==", "dev": true, "dependencies": { - "browserslist": "^4.22.2", + "browserslist": "^4.23.0", "postcss-value-parser": "^4.2.0" }, "engines": { @@ -1745,9 +1749,9 @@ } }, "node_modules/postcss-normalize-url": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.1.tgz", - "integrity": "sha512-jEXL15tXSvbjm0yzUV7FBiEXwhIa9H88JOXDGQzmcWoB4mSjZIsmtto066s2iW9FYuIrIF4k04HA2BKAOpbsaQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz", + "integrity": "sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" @@ -1760,9 +1764,9 @@ } }, "node_modules/postcss-normalize-whitespace": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.1.tgz", - "integrity": "sha512-76i3NpWf6bB8UHlVuLRxG4zW2YykF9CTEcq/9LGAiz2qBuX5cBStadkk0jSkg9a9TCIXbMQz7yzrygKoCW9JuA==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz", + "integrity": "sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" @@ -1775,12 +1779,12 @@ } }, "node_modules/postcss-ordered-values": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.1.tgz", - "integrity": "sha512-XXbb1O/MW9HdEhnBxitZpPFbIvDgbo9NK4c/5bOfiKpnIGZDoL2xd7/e6jW5DYLsWxBbs+1nZEnVgnjnlFViaA==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz", + "integrity": "sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==", "dev": true, "dependencies": { - "cssnano-utils": "^4.0.1", + "cssnano-utils": "^4.0.2", "postcss-value-parser": "^4.2.0" }, "engines": { @@ -1804,12 +1808,12 @@ } }, "node_modules/postcss-reduce-initial": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.0.2.tgz", - "integrity": "sha512-YGKalhNlCLcjcLvjU5nF8FyeCTkCO5UtvJEt0hrPZVCTtRLSOH4z00T1UntQPj4dUmIYZgMj8qK77JbSX95hSw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz", + "integrity": "sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==", "dev": true, "dependencies": { - "browserslist": "^4.22.2", + "browserslist": "^4.23.0", "caniuse-api": "^3.0.0" }, "engines": { @@ -1820,9 +1824,9 @@ } }, "node_modules/postcss-reduce-transforms": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.1.tgz", - "integrity": "sha512-fUbV81OkUe75JM+VYO1gr/IoA2b/dRiH6HvMwhrIBSUrxq3jNZQZitSnugcTLDi1KkQh1eR/zi+iyxviUNBkcQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz", + "integrity": "sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" @@ -1868,9 +1872,9 @@ } }, "node_modules/postcss-svgo": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.2.tgz", - "integrity": "sha512-IH5R9SjkTkh0kfFOQDImyy1+mTCb+E830+9SV1O+AaDcoHTvfsvt6WwJeo7KwcHbFnevZVCsXhDmjFiGVuwqFQ==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.3.tgz", + "integrity": "sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0", @@ -1884,9 +1888,9 @@ } }, "node_modules/postcss-unique-selectors": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.2.tgz", - "integrity": "sha512-8IZGQ94nechdG7Y9Sh9FlIY2b4uS8/k8kdKRX040XHsS3B6d1HrJAkXrBSsSu4SuARruSsUjW3nlSw8BHkaAYQ==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.3.tgz", + "integrity": "sha512-NFXbYr8qdmCr/AFceaEfdcsKGCvWTeGO6QVC9h2GvtWgj0/0dklKQcaMMVzs6tr8bY+ase8hOtHW8OBTTRvS8A==", "dev": true, "dependencies": { "postcss-selector-parser": "^6.0.15" @@ -2085,12 +2089,12 @@ } }, "node_modules/stylehacks": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.0.2.tgz", - "integrity": "sha512-00zvJGnCu64EpMjX8b5iCZ3us2Ptyw8+toEkb92VdmkEaRaSGBNKAoK6aWZckhXxmQP8zWiTaFaiMGIU8Ve8sg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.1.0.tgz", + "integrity": "sha512-ETErsPFgwlfYZ/CSjMO2Ddf+TsnkCVPBPaoB99Ro8WMAxf7cglzmFsRBhRmKObFjibtcvlNxFFPHuyr3sNlNUQ==", "dev": true, "dependencies": { - "browserslist": "^4.22.2", + "browserslist": "^4.23.0", "postcss-selector-parser": "^6.0.15" }, "engines": { @@ -2642,13 +2646,13 @@ } }, "browserslist": { - "version": "4.22.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", - "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001565", - "electron-to-chromium": "^1.4.601", + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", "node-releases": "^2.0.14", "update-browserslist-db": "^1.0.13" } @@ -2672,9 +2676,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001578", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001578.tgz", - "integrity": "sha512-J/jkFgsQ3NEl4w2lCoM9ZPxrD+FoBNJ7uJUpGVjIg/j0OwJosWM36EPDv+Yyi0V4twBk9pPmlFS+PLykgEvUmg==", + "version": "1.0.30001596", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001596.tgz", + "integrity": "sha512-zpkZ+kEr6We7w63ORkoJ2pOfBwBkY/bJrG/UZ90qNb45Isblu8wzDgevEOrRL1r9dWayHjYiiyCMEXPn4DweGQ==", "dev": true }, "chokidar": { @@ -2780,64 +2784,65 @@ "dev": true }, "cssnano": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.0.3.tgz", - "integrity": "sha512-MRq4CIj8pnyZpcI2qs6wswoYoDD1t0aL28n+41c1Ukcpm56m1h6mCexIHBGjfZfnTqtGSSCP4/fB1ovxgjBOiw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.1.0.tgz", + "integrity": "sha512-e2v4w/t3OFM6HTuSweI4RSdABaqgVgHlJp5FZrQsopHnKKHLFIvK2D3C4kHWeFIycN/1L1J5VIrg5KlDzn3r/g==", "dev": true, "requires": { - "cssnano-preset-default": "^6.0.3", - "lilconfig": "^3.0.0" + "cssnano-preset-default": "^6.1.0", + "lilconfig": "^3.1.1" }, "dependencies": { "lilconfig": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", - "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", + "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", "dev": true } } }, "cssnano-preset-default": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.0.3.tgz", - "integrity": "sha512-4y3H370aZCkT9Ev8P4SO4bZbt+AExeKhh8wTbms/X7OLDo5E7AYUUy6YPxa/uF5Grf+AJwNcCnxKhZynJ6luBA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.0.tgz", + "integrity": "sha512-4DUXZoDj+PI3fRl3MqMjl9DwLGjcsFP4qt+92nLUcN1RGfw2TY+GwNoG2B38Usu1BrcTs8j9pxNfSusmvtSjfg==", "dev": true, "requires": { + "browserslist": "^4.23.0", "css-declaration-sorter": "^7.1.1", - "cssnano-utils": "^4.0.1", + "cssnano-utils": "^4.0.2", "postcss-calc": "^9.0.1", - "postcss-colormin": "^6.0.2", - "postcss-convert-values": "^6.0.2", - "postcss-discard-comments": "^6.0.1", - "postcss-discard-duplicates": "^6.0.1", - "postcss-discard-empty": "^6.0.1", - "postcss-discard-overridden": "^6.0.1", - "postcss-merge-longhand": "^6.0.2", - "postcss-merge-rules": "^6.0.3", - "postcss-minify-font-values": "^6.0.1", - "postcss-minify-gradients": "^6.0.1", - "postcss-minify-params": "^6.0.2", - "postcss-minify-selectors": "^6.0.2", - "postcss-normalize-charset": "^6.0.1", - "postcss-normalize-display-values": "^6.0.1", - "postcss-normalize-positions": "^6.0.1", - "postcss-normalize-repeat-style": "^6.0.1", - "postcss-normalize-string": "^6.0.1", - "postcss-normalize-timing-functions": "^6.0.1", - "postcss-normalize-unicode": "^6.0.2", - "postcss-normalize-url": "^6.0.1", - "postcss-normalize-whitespace": "^6.0.1", - "postcss-ordered-values": "^6.0.1", - "postcss-reduce-initial": "^6.0.2", - "postcss-reduce-transforms": "^6.0.1", - "postcss-svgo": "^6.0.2", - "postcss-unique-selectors": "^6.0.2" + "postcss-colormin": "^6.1.0", + "postcss-convert-values": "^6.1.0", + "postcss-discard-comments": "^6.0.2", + "postcss-discard-duplicates": "^6.0.3", + "postcss-discard-empty": "^6.0.3", + "postcss-discard-overridden": "^6.0.2", + "postcss-merge-longhand": "^6.0.4", + "postcss-merge-rules": "^6.1.0", + "postcss-minify-font-values": "^6.0.3", + "postcss-minify-gradients": "^6.0.3", + "postcss-minify-params": "^6.1.0", + "postcss-minify-selectors": "^6.0.3", + "postcss-normalize-charset": "^6.0.2", + "postcss-normalize-display-values": "^6.0.2", + "postcss-normalize-positions": "^6.0.2", + "postcss-normalize-repeat-style": "^6.0.2", + "postcss-normalize-string": "^6.0.2", + "postcss-normalize-timing-functions": "^6.0.2", + "postcss-normalize-unicode": "^6.1.0", + "postcss-normalize-url": "^6.0.2", + "postcss-normalize-whitespace": "^6.0.2", + "postcss-ordered-values": "^6.0.2", + "postcss-reduce-initial": "^6.1.0", + "postcss-reduce-transforms": "^6.0.2", + "postcss-svgo": "^6.0.3", + "postcss-unique-selectors": "^6.0.3" } }, "cssnano-utils": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.1.tgz", - "integrity": "sha512-6qQuYDqsGoiXssZ3zct6dcMxiqfT6epy7x4R0TQJadd4LWO3sPR6JH6ZByOvVLoZ6EdwPGgd7+DR1EmX3tiXQQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.2.tgz", + "integrity": "sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==", "dev": true, "requires": {} }, @@ -2924,9 +2929,9 @@ } }, "electron-to-chromium": { - "version": "1.4.618", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.618.tgz", - "integrity": "sha512-mTM2HieHLxs1RbD/R/ZoQLMsGI8lWIkP17G7cx32mJRBJt9wlNPkXwE3sYg/OnNb5GBkus98lXatSthoL8Y5Ag==", + "version": "1.4.699", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.699.tgz", + "integrity": "sha512-I7q3BbQi6e4tJJN5CRcyvxhK0iJb34TV8eJQcgh+fR2fQ8miMgZcEInckCo1U9exDHbfz7DLDnFn8oqH/VcRKw==", "dev": true }, "emoji-regex": { @@ -3394,52 +3399,52 @@ } }, "postcss-colormin": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.0.2.tgz", - "integrity": "sha512-TXKOxs9LWcdYo5cgmcSHPkyrLAh86hX1ijmyy6J8SbOhyv6ua053M3ZAM/0j44UsnQNIWdl8gb5L7xX2htKeLw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.1.0.tgz", + "integrity": "sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==", "dev": true, "requires": { - "browserslist": "^4.22.2", + "browserslist": "^4.23.0", "caniuse-api": "^3.0.0", - "colord": "^2.9.1", + "colord": "^2.9.3", "postcss-value-parser": "^4.2.0" } }, "postcss-convert-values": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.0.2.tgz", - "integrity": "sha512-aeBmaTnGQ+NUSVQT8aY0sKyAD/BaLJenEKZ03YK0JnDE1w1Rr8XShoxdal2V2H26xTJKr3v5haByOhJuyT4UYw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz", + "integrity": "sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==", "dev": true, "requires": { - "browserslist": "^4.22.2", + "browserslist": "^4.23.0", "postcss-value-parser": "^4.2.0" } }, "postcss-discard-comments": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.1.tgz", - "integrity": "sha512-f1KYNPtqYLUeZGCHQPKzzFtsHaRuECe6jLakf/RjSRqvF5XHLZnM2+fXLhb8Qh/HBFHs3M4cSLb1k3B899RYIg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz", + "integrity": "sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==", "dev": true, "requires": {} }, "postcss-discard-duplicates": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.1.tgz", - "integrity": "sha512-1hvUs76HLYR8zkScbwyJ8oJEugfPV+WchpnA+26fpJ7Smzs51CzGBHC32RS03psuX/2l0l0UKh2StzNxOrKCYg==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz", + "integrity": "sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==", "dev": true, "requires": {} }, "postcss-discard-empty": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.1.tgz", - "integrity": "sha512-yitcmKwmVWtNsrrRqGJ7/C0YRy53i0mjexBDQ9zYxDwTWVBgbU4+C9jIZLmQlTDT9zhml+u0OMFJh8+31krmOg==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz", + "integrity": "sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==", "dev": true, "requires": {} }, "postcss-discard-overridden": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.1.tgz", - "integrity": "sha512-qs0ehZMMZpSESbRkw1+inkf51kak6OOzNRaoLd/U7Fatp0aN2HQ1rxGOrJvYcRAN9VpX8kUF13R2ofn8OlvFVA==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz", + "integrity": "sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==", "dev": true, "requires": {} }, @@ -3474,62 +3479,62 @@ } }, "postcss-merge-longhand": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.2.tgz", - "integrity": "sha512-+yfVB7gEM8SrCo9w2lCApKIEzrTKl5yS1F4yGhV3kSim6JzbfLGJyhR1B6X+6vOT0U33Mgx7iv4X9MVWuaSAfw==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.4.tgz", + "integrity": "sha512-vAfWGcxUUGlFiPM3nDMZA+/Yo9sbpc3JNkcYZez8FfJDv41Dh7tAgA3QGVTocaHCZZL6aXPXPOaBMJsjujodsA==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0", - "stylehacks": "^6.0.2" + "stylehacks": "^6.1.0" } }, "postcss-merge-rules": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.0.3.tgz", - "integrity": "sha512-yfkDqSHGohy8sGYIJwBmIGDv4K4/WrJPX355XrxQb/CSsT4Kc/RxDi6akqn5s9bap85AWgv21ArcUWwWdGNSHA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.1.0.tgz", + "integrity": "sha512-lER+W3Gr6XOvxOYk1Vi/6UsAgKMg6MDBthmvbNqi2XxAk/r9XfhdYZSigfWjuWWn3zYw2wLelvtM8XuAEFqRkA==", "dev": true, "requires": { - "browserslist": "^4.22.2", + "browserslist": "^4.23.0", "caniuse-api": "^3.0.0", - "cssnano-utils": "^4.0.1", + "cssnano-utils": "^4.0.2", "postcss-selector-parser": "^6.0.15" } }, "postcss-minify-font-values": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.0.1.tgz", - "integrity": "sha512-tIwmF1zUPoN6xOtA/2FgVk1ZKrLcCvE0dpZLtzyyte0j9zUeB8RTbCqrHZGjJlxOvNWKMYtunLrrl7HPOiR46w==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.0.3.tgz", + "integrity": "sha512-SmAeTA1We5rMnN3F8X9YBNo9bj9xB4KyDHnaNJnBfQIPi+60fNiR9OTRnIaMqkYzAQX0vObIw4Pn0vuKEOettg==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0" } }, "postcss-minify-gradients": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.1.tgz", - "integrity": "sha512-M1RJWVjd6IOLPl1hYiOd5HQHgpp6cvJVLrieQYS9y07Yo8itAr6jaekzJphaJFR0tcg4kRewCk3kna9uHBxn/w==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz", + "integrity": "sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==", "dev": true, "requires": { - "colord": "^2.9.1", - "cssnano-utils": "^4.0.1", + "colord": "^2.9.3", + "cssnano-utils": "^4.0.2", "postcss-value-parser": "^4.2.0" } }, "postcss-minify-params": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.0.2.tgz", - "integrity": "sha512-zwQtbrPEBDj+ApELZ6QylLf2/c5zmASoOuA4DzolyVGdV38iR2I5QRMsZcHkcdkZzxpN8RS4cN7LPskOkTwTZw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz", + "integrity": "sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==", "dev": true, "requires": { - "browserslist": "^4.22.2", - "cssnano-utils": "^4.0.1", + "browserslist": "^4.23.0", + "cssnano-utils": "^4.0.2", "postcss-value-parser": "^4.2.0" } }, "postcss-minify-selectors": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.2.tgz", - "integrity": "sha512-0b+m+w7OAvZejPQdN2GjsXLv5o0jqYHX3aoV0e7RBKPCsB7TYG5KKWBFhGnB/iP3213Ts8c5H4wLPLMm7z28Sg==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.3.tgz", + "integrity": "sha512-IcV7ZQJcaXyhx4UBpWZMsinGs2NmiUC60rJSkyvjPCPqhNjVGsrJUM+QhAtCaikZ0w0/AbZuH4wVvF/YMuMhvA==", "dev": true, "requires": { "postcss-selector-parser": "^6.0.15" @@ -3545,92 +3550,92 @@ } }, "postcss-normalize-charset": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.1.tgz", - "integrity": "sha512-aW5LbMNRZ+oDV57PF9K+WI1Z8MPnF+A8qbajg/T8PP126YrGX1f9IQx21GI2OlGz7XFJi/fNi0GTbY948XJtXg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz", + "integrity": "sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==", "dev": true, "requires": {} }, "postcss-normalize-display-values": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.1.tgz", - "integrity": "sha512-mc3vxp2bEuCb4LgCcmG1y6lKJu1Co8T+rKHrcbShJwUmKJiEl761qb/QQCfFwlrvSeET3jksolCR/RZuMURudw==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz", + "integrity": "sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-positions": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.1.tgz", - "integrity": "sha512-HRsq8u/0unKNvm0cvwxcOUEcakFXqZ41fv3FOdPn916XFUrympjr+03oaLkuZENz3HE9RrQE9yU0Xv43ThWjQg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz", + "integrity": "sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-repeat-style": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.1.tgz", - "integrity": "sha512-Gbb2nmCy6tTiA7Sh2MBs3fj9W8swonk6lw+dFFeQT68B0Pzwp1kvisJQkdV6rbbMSd9brMlS8I8ts52tAGWmGQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz", + "integrity": "sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-string": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.1.tgz", - "integrity": "sha512-5Fhx/+xzALJD9EI26Aq23hXwmv97Zfy2VFrt5PLT8lAhnBIZvmaT5pQk+NuJ/GWj/QWaKSKbnoKDGLbV6qnhXg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz", + "integrity": "sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-timing-functions": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.1.tgz", - "integrity": "sha512-4zcczzHqmCU7L5dqTB9rzeqPWRMc0K2HoR+Bfl+FSMbqGBUcP5LRfgcH4BdRtLuzVQK1/FHdFoGT3F7rkEnY+g==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz", + "integrity": "sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-unicode": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.2.tgz", - "integrity": "sha512-Ff2VdAYCTGyMUwpevTZPZ4w0+mPjbZzLLyoLh/RMpqUqeQKZ+xMm31hkxBavDcGKcxm6ACzGk0nBfZ8LZkStKA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz", + "integrity": "sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==", "dev": true, "requires": { - "browserslist": "^4.22.2", + "browserslist": "^4.23.0", "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-url": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.1.tgz", - "integrity": "sha512-jEXL15tXSvbjm0yzUV7FBiEXwhIa9H88JOXDGQzmcWoB4mSjZIsmtto066s2iW9FYuIrIF4k04HA2BKAOpbsaQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz", + "integrity": "sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-whitespace": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.1.tgz", - "integrity": "sha512-76i3NpWf6bB8UHlVuLRxG4zW2YykF9CTEcq/9LGAiz2qBuX5cBStadkk0jSkg9a9TCIXbMQz7yzrygKoCW9JuA==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz", + "integrity": "sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0" } }, "postcss-ordered-values": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.1.tgz", - "integrity": "sha512-XXbb1O/MW9HdEhnBxitZpPFbIvDgbo9NK4c/5bOfiKpnIGZDoL2xd7/e6jW5DYLsWxBbs+1nZEnVgnjnlFViaA==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz", + "integrity": "sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==", "dev": true, "requires": { - "cssnano-utils": "^4.0.1", + "cssnano-utils": "^4.0.2", "postcss-value-parser": "^4.2.0" } }, @@ -3644,19 +3649,19 @@ } }, "postcss-reduce-initial": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.0.2.tgz", - "integrity": "sha512-YGKalhNlCLcjcLvjU5nF8FyeCTkCO5UtvJEt0hrPZVCTtRLSOH4z00T1UntQPj4dUmIYZgMj8qK77JbSX95hSw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz", + "integrity": "sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==", "dev": true, "requires": { - "browserslist": "^4.22.2", + "browserslist": "^4.23.0", "caniuse-api": "^3.0.0" } }, "postcss-reduce-transforms": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.1.tgz", - "integrity": "sha512-fUbV81OkUe75JM+VYO1gr/IoA2b/dRiH6HvMwhrIBSUrxq3jNZQZitSnugcTLDi1KkQh1eR/zi+iyxviUNBkcQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz", + "integrity": "sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0" @@ -3683,9 +3688,9 @@ } }, "postcss-svgo": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.2.tgz", - "integrity": "sha512-IH5R9SjkTkh0kfFOQDImyy1+mTCb+E830+9SV1O+AaDcoHTvfsvt6WwJeo7KwcHbFnevZVCsXhDmjFiGVuwqFQ==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.3.tgz", + "integrity": "sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0", @@ -3693,9 +3698,9 @@ } }, "postcss-unique-selectors": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.2.tgz", - "integrity": "sha512-8IZGQ94nechdG7Y9Sh9FlIY2b4uS8/k8kdKRX040XHsS3B6d1HrJAkXrBSsSu4SuARruSsUjW3nlSw8BHkaAYQ==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.3.tgz", + "integrity": "sha512-NFXbYr8qdmCr/AFceaEfdcsKGCvWTeGO6QVC9h2GvtWgj0/0dklKQcaMMVzs6tr8bY+ase8hOtHW8OBTTRvS8A==", "dev": true, "requires": { "postcss-selector-parser": "^6.0.15" @@ -3822,12 +3827,12 @@ } }, "stylehacks": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.0.2.tgz", - "integrity": "sha512-00zvJGnCu64EpMjX8b5iCZ3us2Ptyw8+toEkb92VdmkEaRaSGBNKAoK6aWZckhXxmQP8zWiTaFaiMGIU8Ve8sg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.1.0.tgz", + "integrity": "sha512-ETErsPFgwlfYZ/CSjMO2Ddf+TsnkCVPBPaoB99Ro8WMAxf7cglzmFsRBhRmKObFjibtcvlNxFFPHuyr3sNlNUQ==", "dev": true, "requires": { - "browserslist": "^4.22.2", + "browserslist": "^4.23.0", "postcss-selector-parser": "^6.0.15" } }, diff --git a/website/yarn.lock b/website/yarn.lock index 0428ed44..dc68c4a1 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -195,7 +195,17 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" -browserslist@^4.0.0, browserslist@^4.22.2: +browserslist@^4.0.0, browserslist@^4.23.0: + version "4.23.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab" + integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== + dependencies: + caniuse-lite "^1.0.30001587" + electron-to-chromium "^1.4.668" + node-releases "^2.0.14" + update-browserslist-db "^1.0.13" + +browserslist@^4.22.2: version "4.22.2" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b" integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A== @@ -220,12 +230,12 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0: - version "1.0.30001572" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001572.tgz#1ccf7dc92d2ee2f92ed3a54e11b7b4a3041acfa0" - integrity sha512-1Pbh5FLmn5y4+QhNyJE9j3/7dK44dGB83/ZMjv/qJk86TvDbjk0LosiZo0i0WB0Vx607qMX9jYrn1VLHCkN4rw== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001565, caniuse-lite@^1.0.30001587: + version "1.0.30001596" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001596.tgz#da06b79c3d9c3d9958eb307aa832ac68ead79bee" + integrity sha512-zpkZ+kEr6We7w63ORkoJ2pOfBwBkY/bJrG/UZ90qNb45Isblu8wzDgevEOrRL1r9dWayHjYiiyCMEXPn4DweGQ== -caniuse-lite@^1.0.30001565, caniuse-lite@^1.0.30001578: +caniuse-lite@^1.0.30001578: version "1.0.30001578" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001578.tgz#11741580434ce60aae4b4a9abee9f9f8d7bf5be5" integrity sha512-J/jkFgsQ3NEl4w2lCoM9ZPxrD+FoBNJ7uJUpGVjIg/j0OwJosWM36EPDv+Yyi0V4twBk9pPmlFS+PLykgEvUmg== @@ -266,7 +276,7 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -colord@^2.9.1: +colord@^2.9.3: version "2.9.3" resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== @@ -337,53 +347,54 @@ cssesc@^3.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssnano-preset-default@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-6.0.3.tgz#b4ce755974f4dc8d3d09ac13bb6281cce3ced45e" - integrity sha512-4y3H370aZCkT9Ev8P4SO4bZbt+AExeKhh8wTbms/X7OLDo5E7AYUUy6YPxa/uF5Grf+AJwNcCnxKhZynJ6luBA== +cssnano-preset-default@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-6.1.0.tgz#b6f2da3c984c0e84a162862203419cce52a2fa0e" + integrity sha512-4DUXZoDj+PI3fRl3MqMjl9DwLGjcsFP4qt+92nLUcN1RGfw2TY+GwNoG2B38Usu1BrcTs8j9pxNfSusmvtSjfg== dependencies: + browserslist "^4.23.0" css-declaration-sorter "^7.1.1" - cssnano-utils "^4.0.1" + cssnano-utils "^4.0.2" postcss-calc "^9.0.1" - postcss-colormin "^6.0.2" - postcss-convert-values "^6.0.2" - postcss-discard-comments "^6.0.1" - postcss-discard-duplicates "^6.0.1" - postcss-discard-empty "^6.0.1" - postcss-discard-overridden "^6.0.1" - postcss-merge-longhand "^6.0.2" - postcss-merge-rules "^6.0.3" - postcss-minify-font-values "^6.0.1" - postcss-minify-gradients "^6.0.1" - postcss-minify-params "^6.0.2" - postcss-minify-selectors "^6.0.2" - postcss-normalize-charset "^6.0.1" - postcss-normalize-display-values "^6.0.1" - postcss-normalize-positions "^6.0.1" - postcss-normalize-repeat-style "^6.0.1" - postcss-normalize-string "^6.0.1" - postcss-normalize-timing-functions "^6.0.1" - postcss-normalize-unicode "^6.0.2" - postcss-normalize-url "^6.0.1" - postcss-normalize-whitespace "^6.0.1" - postcss-ordered-values "^6.0.1" - postcss-reduce-initial "^6.0.2" - postcss-reduce-transforms "^6.0.1" - postcss-svgo "^6.0.2" - postcss-unique-selectors "^6.0.2" + postcss-colormin "^6.1.0" + postcss-convert-values "^6.1.0" + postcss-discard-comments "^6.0.2" + postcss-discard-duplicates "^6.0.3" + postcss-discard-empty "^6.0.3" + postcss-discard-overridden "^6.0.2" + postcss-merge-longhand "^6.0.4" + postcss-merge-rules "^6.1.0" + postcss-minify-font-values "^6.0.3" + postcss-minify-gradients "^6.0.3" + postcss-minify-params "^6.1.0" + postcss-minify-selectors "^6.0.3" + postcss-normalize-charset "^6.0.2" + postcss-normalize-display-values "^6.0.2" + postcss-normalize-positions "^6.0.2" + postcss-normalize-repeat-style "^6.0.2" + postcss-normalize-string "^6.0.2" + postcss-normalize-timing-functions "^6.0.2" + postcss-normalize-unicode "^6.1.0" + postcss-normalize-url "^6.0.2" + postcss-normalize-whitespace "^6.0.2" + postcss-ordered-values "^6.0.2" + postcss-reduce-initial "^6.1.0" + postcss-reduce-transforms "^6.0.2" + postcss-svgo "^6.0.3" + postcss-unique-selectors "^6.0.3" -cssnano-utils@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-4.0.1.tgz#fd18b42f95938bf55ab47967705355d6047bf1da" - integrity sha512-6qQuYDqsGoiXssZ3zct6dcMxiqfT6epy7x4R0TQJadd4LWO3sPR6JH6ZByOvVLoZ6EdwPGgd7+DR1EmX3tiXQQ== +cssnano-utils@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-4.0.2.tgz#56f61c126cd0f11f2eef1596239d730d9fceff3c" + integrity sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ== cssnano@^6.0.0: - version "6.0.3" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-6.0.3.tgz#46db972da71aa159437287fb4c6bc9c5d3cc5d93" - integrity sha512-MRq4CIj8pnyZpcI2qs6wswoYoDD1t0aL28n+41c1Ukcpm56m1h6mCexIHBGjfZfnTqtGSSCP4/fB1ovxgjBOiw== + version "6.1.0" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-6.1.0.tgz#f36de7311d7f7cefe4c6d9045927611d56b6b9eb" + integrity sha512-e2v4w/t3OFM6HTuSweI4RSdABaqgVgHlJp5FZrQsopHnKKHLFIvK2D3C4kHWeFIycN/1L1J5VIrg5KlDzn3r/g== dependencies: - cssnano-preset-default "^6.0.3" - lilconfig "^3.0.0" + cssnano-preset-default "^6.1.0" + lilconfig "^3.1.1" csso@^5.0.5: version "5.0.5" @@ -442,10 +453,10 @@ eastasianwidth@^0.2.0: resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== -electron-to-chromium@^1.4.601: - version "1.4.636" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.636.tgz#302cf4c3016d9d714ba246243a7c97b528e22fe7" - integrity sha512-NLE0GIy1OL9wRiKL20h9TkctBEYZuc99tquSS9MVdTahnuHputoETHeqDzgqGqyOY9NUH0g9wjfEuw5OD+wRcQ== +electron-to-chromium@^1.4.601, electron-to-chromium@^1.4.668: + version "1.4.699" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.699.tgz#dd53c939e13da64e94b341e563f0a3011b4ef0e9" + integrity sha512-I7q3BbQi6e4tJJN5CRcyvxhK0iJb34TV8eJQcgh+fR2fQ8miMgZcEInckCo1U9exDHbfz7DLDnFn8oqH/VcRKw== emoji-regex@^8.0.0: version "8.0.0" @@ -463,9 +474,9 @@ entities@^4.2.0: integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + version "3.1.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== fast-glob@^3.3.0, fast-glob@^3.3.2: version "3.3.2" @@ -691,6 +702,11 @@ lilconfig@^3.0.0: resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.0.0.tgz#f8067feb033b5b74dab4602a5f5029420be749bc" integrity sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g== +lilconfig@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.1.tgz#9d8a246fa753106cfc205fd2d77042faca56e5e3" + integrity sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ== + lines-and-columns@^1.1.6: version "1.2.4" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" @@ -880,43 +896,43 @@ postcss-cli@^11.0.0: slash "^5.0.0" yargs "^17.0.0" -postcss-colormin@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-6.0.2.tgz#2af9ce753937b08e058dbc6879e4aedfab42806b" - integrity sha512-TXKOxs9LWcdYo5cgmcSHPkyrLAh86hX1ijmyy6J8SbOhyv6ua053M3ZAM/0j44UsnQNIWdl8gb5L7xX2htKeLw== +postcss-colormin@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-6.1.0.tgz#076e8d3fb291fbff7b10e6b063be9da42ff6488d" + integrity sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw== dependencies: - browserslist "^4.22.2" + browserslist "^4.23.0" caniuse-api "^3.0.0" - colord "^2.9.1" + colord "^2.9.3" postcss-value-parser "^4.2.0" -postcss-convert-values@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-6.0.2.tgz#c4a7509aeb1cc7ac3f6948fcbffc2bf8cac7c56a" - integrity sha512-aeBmaTnGQ+NUSVQT8aY0sKyAD/BaLJenEKZ03YK0JnDE1w1Rr8XShoxdal2V2H26xTJKr3v5haByOhJuyT4UYw== +postcss-convert-values@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz#3498387f8efedb817cbc63901d45bd1ceaa40f48" + integrity sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w== dependencies: - browserslist "^4.22.2" + browserslist "^4.23.0" postcss-value-parser "^4.2.0" -postcss-discard-comments@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-6.0.1.tgz#46176212bd9c3e5f48aa4b8b4868786726c41d36" - integrity sha512-f1KYNPtqYLUeZGCHQPKzzFtsHaRuECe6jLakf/RjSRqvF5XHLZnM2+fXLhb8Qh/HBFHs3M4cSLb1k3B899RYIg== +postcss-discard-comments@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz#e768dcfdc33e0216380623652b0a4f69f4678b6c" + integrity sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw== -postcss-discard-duplicates@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.1.tgz#112b1a95948e69b3484fdd43584dda6930977939" - integrity sha512-1hvUs76HLYR8zkScbwyJ8oJEugfPV+WchpnA+26fpJ7Smzs51CzGBHC32RS03psuX/2l0l0UKh2StzNxOrKCYg== +postcss-discard-duplicates@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz#d121e893c38dc58a67277f75bb58ba43fce4c3eb" + integrity sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw== -postcss-discard-empty@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-6.0.1.tgz#b34cb45ec891246da4506b53e352390fdef126c4" - integrity sha512-yitcmKwmVWtNsrrRqGJ7/C0YRy53i0mjexBDQ9zYxDwTWVBgbU4+C9jIZLmQlTDT9zhml+u0OMFJh8+31krmOg== +postcss-discard-empty@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz#ee39c327219bb70473a066f772621f81435a79d9" + integrity sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ== -postcss-discard-overridden@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-6.0.1.tgz#c63c559237758d74bc505452393a64dda9b19ef4" - integrity sha512-qs0ehZMMZpSESbRkw1+inkf51kak6OOzNRaoLd/U7Fatp0aN2HQ1rxGOrJvYcRAN9VpX8kUF13R2ofn8OlvFVA== +postcss-discard-overridden@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz#4e9f9c62ecd2df46e8fdb44dc17e189776572e2d" + integrity sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ== postcss-import@^15.1.0: version "15.1.0" @@ -959,53 +975,53 @@ postcss-load-config@^5.0.0: lilconfig "^3.0.0" yaml "^2.3.4" -postcss-merge-longhand@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-6.0.2.tgz#cd4e83014851da59545e9a906b245615550f4064" - integrity sha512-+yfVB7gEM8SrCo9w2lCApKIEzrTKl5yS1F4yGhV3kSim6JzbfLGJyhR1B6X+6vOT0U33Mgx7iv4X9MVWuaSAfw== +postcss-merge-longhand@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-6.0.4.tgz#a96f23a31953bdf1683a66059c8a8d469d7e20e6" + integrity sha512-vAfWGcxUUGlFiPM3nDMZA+/Yo9sbpc3JNkcYZez8FfJDv41Dh7tAgA3QGVTocaHCZZL6aXPXPOaBMJsjujodsA== dependencies: postcss-value-parser "^4.2.0" - stylehacks "^6.0.2" + stylehacks "^6.1.0" -postcss-merge-rules@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-6.0.3.tgz#08fcf714faaad75b1980ecd961b080ae2f8ddeb3" - integrity sha512-yfkDqSHGohy8sGYIJwBmIGDv4K4/WrJPX355XrxQb/CSsT4Kc/RxDi6akqn5s9bap85AWgv21ArcUWwWdGNSHA== +postcss-merge-rules@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-6.1.0.tgz#f3edd175056599a284444aa6553a09d5a4440266" + integrity sha512-lER+W3Gr6XOvxOYk1Vi/6UsAgKMg6MDBthmvbNqi2XxAk/r9XfhdYZSigfWjuWWn3zYw2wLelvtM8XuAEFqRkA== dependencies: - browserslist "^4.22.2" + browserslist "^4.23.0" caniuse-api "^3.0.0" - cssnano-utils "^4.0.1" + cssnano-utils "^4.0.2" postcss-selector-parser "^6.0.15" -postcss-minify-font-values@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-6.0.1.tgz#788eb930168be90225f3937f0b70aa19d8b532b2" - integrity sha512-tIwmF1zUPoN6xOtA/2FgVk1ZKrLcCvE0dpZLtzyyte0j9zUeB8RTbCqrHZGjJlxOvNWKMYtunLrrl7HPOiR46w== +postcss-minify-font-values@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-6.0.3.tgz#ed07f0e76c1345a9eaafe48b4bc15fdf62822775" + integrity sha512-SmAeTA1We5rMnN3F8X9YBNo9bj9xB4KyDHnaNJnBfQIPi+60fNiR9OTRnIaMqkYzAQX0vObIw4Pn0vuKEOettg== dependencies: postcss-value-parser "^4.2.0" -postcss-minify-gradients@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-6.0.1.tgz#4faf1880b483dc37016658aa186b42194ff9b5bc" - integrity sha512-M1RJWVjd6IOLPl1hYiOd5HQHgpp6cvJVLrieQYS9y07Yo8itAr6jaekzJphaJFR0tcg4kRewCk3kna9uHBxn/w== +postcss-minify-gradients@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz#ca3eb55a7bdb48a1e187a55c6377be918743dbd6" + integrity sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q== dependencies: - colord "^2.9.1" - cssnano-utils "^4.0.1" + colord "^2.9.3" + cssnano-utils "^4.0.2" postcss-value-parser "^4.2.0" -postcss-minify-params@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-6.0.2.tgz#bd64af642fa5610281b8a9461598bbb91f92ae05" - integrity sha512-zwQtbrPEBDj+ApELZ6QylLf2/c5zmASoOuA4DzolyVGdV38iR2I5QRMsZcHkcdkZzxpN8RS4cN7LPskOkTwTZw== +postcss-minify-params@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz#54551dec77b9a45a29c3cb5953bf7325a399ba08" + integrity sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA== dependencies: - browserslist "^4.22.2" - cssnano-utils "^4.0.1" + browserslist "^4.23.0" + cssnano-utils "^4.0.2" postcss-value-parser "^4.2.0" -postcss-minify-selectors@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-6.0.2.tgz#62065b38d3453ddc6627ba50e4f4a2154b031aa0" - integrity sha512-0b+m+w7OAvZejPQdN2GjsXLv5o0jqYHX3aoV0e7RBKPCsB7TYG5KKWBFhGnB/iP3213Ts8c5H4wLPLMm7z28Sg== +postcss-minify-selectors@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-6.0.3.tgz#ffc51655d52a01cc09cf90c88923d167d9012396" + integrity sha512-IcV7ZQJcaXyhx4UBpWZMsinGs2NmiUC60rJSkyvjPCPqhNjVGsrJUM+QhAtCaikZ0w0/AbZuH4wVvF/YMuMhvA== dependencies: postcss-selector-parser "^6.0.15" @@ -1016,74 +1032,74 @@ postcss-nested@^6.0.1: dependencies: postcss-selector-parser "^6.0.11" -postcss-normalize-charset@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-6.0.1.tgz#5f70e1eb8bbdbcfcbed060ef70f179e8fef57d0c" - integrity sha512-aW5LbMNRZ+oDV57PF9K+WI1Z8MPnF+A8qbajg/T8PP126YrGX1f9IQx21GI2OlGz7XFJi/fNi0GTbY948XJtXg== - -postcss-normalize-display-values@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.1.tgz#ff9aa30bbf1283294bfd9cc8b6fb81ff060a7f2d" - integrity sha512-mc3vxp2bEuCb4LgCcmG1y6lKJu1Co8T+rKHrcbShJwUmKJiEl761qb/QQCfFwlrvSeET3jksolCR/RZuMURudw== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-positions@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-6.0.1.tgz#41ffdc72994f024c6cd6e91dbfb40ab9abe6fe90" - integrity sha512-HRsq8u/0unKNvm0cvwxcOUEcakFXqZ41fv3FOdPn916XFUrympjr+03oaLkuZENz3HE9RrQE9yU0Xv43ThWjQg== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-repeat-style@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.1.tgz#55dc54b6f80305b280a379899a6626e0a07b04a8" - integrity sha512-Gbb2nmCy6tTiA7Sh2MBs3fj9W8swonk6lw+dFFeQT68B0Pzwp1kvisJQkdV6rbbMSd9brMlS8I8ts52tAGWmGQ== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-string@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-6.0.1.tgz#7605e0fb4ec7bf2709709991d13a949e4419db1d" - integrity sha512-5Fhx/+xzALJD9EI26Aq23hXwmv97Zfy2VFrt5PLT8lAhnBIZvmaT5pQk+NuJ/GWj/QWaKSKbnoKDGLbV6qnhXg== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-timing-functions@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.1.tgz#ef937b7ca2fd62ed0b46645ea5728b842a3600db" - integrity sha512-4zcczzHqmCU7L5dqTB9rzeqPWRMc0K2HoR+Bfl+FSMbqGBUcP5LRfgcH4BdRtLuzVQK1/FHdFoGT3F7rkEnY+g== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-unicode@^6.0.2: +postcss-normalize-charset@^6.0.2: version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.2.tgz#361026744ff11baebaec771b60c2a5f36f274fd0" - integrity sha512-Ff2VdAYCTGyMUwpevTZPZ4w0+mPjbZzLLyoLh/RMpqUqeQKZ+xMm31hkxBavDcGKcxm6ACzGk0nBfZ8LZkStKA== - dependencies: - browserslist "^4.22.2" - postcss-value-parser "^4.2.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz#1ec25c435057a8001dac942942a95ffe66f721e1" + integrity sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ== -postcss-normalize-url@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-6.0.1.tgz#eae58cb4f5f9a4fa5bbbf6d4222dff534ad46186" - integrity sha512-jEXL15tXSvbjm0yzUV7FBiEXwhIa9H88JOXDGQzmcWoB4mSjZIsmtto066s2iW9FYuIrIF4k04HA2BKAOpbsaQ== +postcss-normalize-display-values@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz#54f02764fed0b288d5363cbb140d6950dbbdd535" + integrity sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg== dependencies: postcss-value-parser "^4.2.0" -postcss-normalize-whitespace@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.1.tgz#b5933750b938814c028d3d2b2e5c0199e0037b53" - integrity sha512-76i3NpWf6bB8UHlVuLRxG4zW2YykF9CTEcq/9LGAiz2qBuX5cBStadkk0jSkg9a9TCIXbMQz7yzrygKoCW9JuA== +postcss-normalize-positions@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz#e982d284ec878b9b819796266f640852dbbb723a" + integrity sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q== dependencies: postcss-value-parser "^4.2.0" -postcss-ordered-values@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-6.0.1.tgz#553e735d009065b362da93340e57f43d5f2d0fbc" - integrity sha512-XXbb1O/MW9HdEhnBxitZpPFbIvDgbo9NK4c/5bOfiKpnIGZDoL2xd7/e6jW5DYLsWxBbs+1nZEnVgnjnlFViaA== +postcss-normalize-repeat-style@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz#f8006942fd0617c73f049dd8b6201c3a3040ecf3" + integrity sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ== dependencies: - cssnano-utils "^4.0.1" + postcss-value-parser "^4.2.0" + +postcss-normalize-string@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz#e3cc6ad5c95581acd1fc8774b309dd7c06e5e363" + integrity sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-timing-functions@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz#40cb8726cef999de984527cbd9d1db1f3e9062c0" + integrity sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-unicode@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz#aaf8bbd34c306e230777e80f7f12a4b7d27ce06e" + integrity sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg== + dependencies: + browserslist "^4.23.0" + postcss-value-parser "^4.2.0" + +postcss-normalize-url@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz#292792386be51a8de9a454cb7b5c58ae22db0f79" + integrity sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-whitespace@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz#fbb009e6ebd312f8b2efb225c2fcc7cf32b400cd" + integrity sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-ordered-values@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz#366bb663919707093451ab70c3f99c05672aaae5" + integrity sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q== + dependencies: + cssnano-utils "^4.0.2" postcss-value-parser "^4.2.0" postcss-purgecss@^5.0.0: @@ -1093,18 +1109,18 @@ postcss-purgecss@^5.0.0: dependencies: purgecss "^5.0.0" -postcss-reduce-initial@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-6.0.2.tgz#763d25902406c872264041df69f182eb15a5d9be" - integrity sha512-YGKalhNlCLcjcLvjU5nF8FyeCTkCO5UtvJEt0hrPZVCTtRLSOH4z00T1UntQPj4dUmIYZgMj8qK77JbSX95hSw== +postcss-reduce-initial@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz#4401297d8e35cb6e92c8e9586963e267105586ba" + integrity sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw== dependencies: - browserslist "^4.22.2" + browserslist "^4.23.0" caniuse-api "^3.0.0" -postcss-reduce-transforms@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.1.tgz#7bf59d7c6e7066e3b18ef17237d2344bd3da6d75" - integrity sha512-fUbV81OkUe75JM+VYO1gr/IoA2b/dRiH6HvMwhrIBSUrxq3jNZQZitSnugcTLDi1KkQh1eR/zi+iyxviUNBkcQ== +postcss-reduce-transforms@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz#6fa2c586bdc091a7373caeee4be75a0f3e12965d" + integrity sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA== dependencies: postcss-value-parser "^4.2.0" @@ -1132,18 +1148,18 @@ postcss-selector-parser@^6.0.7: cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss-svgo@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-6.0.2.tgz#dbc9d03e7f346bc0d82443078602a951e0214836" - integrity sha512-IH5R9SjkTkh0kfFOQDImyy1+mTCb+E830+9SV1O+AaDcoHTvfsvt6WwJeo7KwcHbFnevZVCsXhDmjFiGVuwqFQ== +postcss-svgo@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-6.0.3.tgz#1d6e180d6df1fa8a3b30b729aaa9161e94f04eaa" + integrity sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g== dependencies: postcss-value-parser "^4.2.0" svgo "^3.2.0" -postcss-unique-selectors@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-6.0.2.tgz#09a34a5a31a649d3e9bca5962af0616f39d071d2" - integrity sha512-8IZGQ94nechdG7Y9Sh9FlIY2b4uS8/k8kdKRX040XHsS3B6d1HrJAkXrBSsSu4SuARruSsUjW3nlSw8BHkaAYQ== +postcss-unique-selectors@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-6.0.3.tgz#dbba572b842ab6fc410307172f13d362e0a836e7" + integrity sha512-NFXbYr8qdmCr/AFceaEfdcsKGCvWTeGO6QVC9h2GvtWgj0/0dklKQcaMMVzs6tr8bY+ase8hOtHW8OBTTRvS8A== dependencies: postcss-selector-parser "^6.0.15" @@ -1280,12 +1296,12 @@ strip-ansi@^7.0.1: dependencies: ansi-regex "^6.0.1" -stylehacks@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-6.0.2.tgz#5bf2654561752547d4548765f35c9a49659b3742" - integrity sha512-00zvJGnCu64EpMjX8b5iCZ3us2Ptyw8+toEkb92VdmkEaRaSGBNKAoK6aWZckhXxmQP8zWiTaFaiMGIU8Ve8sg== +stylehacks@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-6.1.0.tgz#42b922c77a0f2c83692a5c9ef07d722d4d174ecb" + integrity sha512-ETErsPFgwlfYZ/CSjMO2Ddf+TsnkCVPBPaoB99Ro8WMAxf7cglzmFsRBhRmKObFjibtcvlNxFFPHuyr3sNlNUQ== dependencies: - browserslist "^4.22.2" + browserslist "^4.23.0" postcss-selector-parser "^6.0.15" sucrase@^3.32.0: From 443ba47cfbbf918a92abafa7f38b1c70e79b311f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 8 Mar 2024 22:02:57 +0000 Subject: [PATCH 030/162] Update cachix/install-nix-action action to v26 --- .github/workflows/ci-docs.yml | 2 +- .github/workflows/website.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-docs.yml b/.github/workflows/ci-docs.yml index 4d3bb379..2ae985e7 100644 --- a/.github/workflows/ci-docs.yml +++ b/.github/workflows/ci-docs.yml @@ -16,7 +16,7 @@ jobs: - uses: jorelali/setup-elm@v5 with: elm-version: 0.19.1 - - uses: cachix/install-nix-action@v25 + - uses: cachix/install-nix-action@v26 with: nix_path: nixpkgs=channel:nixos-23.05 - name: Print nixpkgs version diff --git a/.github/workflows/website.yml b/.github/workflows/website.yml index d402cab0..585b7ff7 100644 --- a/.github/workflows/website.yml +++ b/.github/workflows/website.yml @@ -15,7 +15,7 @@ jobs: - uses: jorelali/setup-elm@v5 with: elm-version: 0.19.1 - - uses: cachix/install-nix-action@v25 + - uses: cachix/install-nix-action@v26 with: nix_path: nixpkgs=channel:nixos-23.05 - name: Print nixpkgs version From 442e389537d994e4f230ffb92475510cf850c892 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Sat, 9 Mar 2024 06:12:48 +0000 Subject: [PATCH 031/162] Update kittens to 3.3.0 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 198db707..b7a806bf 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -28,7 +28,7 @@ object Dependencies { val JsoupVersion = "1.17.2" val JwtScalaVersion = "10.0.0" val KindProjectorVersion = "0.10.3" - val KittensVersion = "3.2.0" + val KittensVersion = "3.3.0" val LevigoJbig2Version = "2.0" val Log4sVersion = "1.10.0" val LogbackVersion = "1.2.10" From 4167b64e31d05b80bcc32825fa0abe32239dcc21 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 9 Mar 2024 06:21:12 +0000 Subject: [PATCH 032/162] Update dependency autoprefixer to v10.4.18 --- modules/webapp/package-lock.json | 20 ++++++++++---------- website/yarn.lock | 29 +++++++---------------------- 2 files changed, 17 insertions(+), 32 deletions(-) diff --git a/modules/webapp/package-lock.json b/modules/webapp/package-lock.json index f2f41f88..bfd50c04 100644 --- a/modules/webapp/package-lock.json +++ b/modules/webapp/package-lock.json @@ -214,9 +214,9 @@ "dev": true }, "node_modules/autoprefixer": { - "version": "10.4.17", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.17.tgz", - "integrity": "sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==", + "version": "10.4.18", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.18.tgz", + "integrity": "sha512-1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g==", "dev": true, "funding": [ { @@ -233,8 +233,8 @@ } ], "dependencies": { - "browserslist": "^4.22.2", - "caniuse-lite": "^1.0.30001578", + "browserslist": "^4.23.0", + "caniuse-lite": "^1.0.30001591", "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", @@ -2596,13 +2596,13 @@ "dev": true }, "autoprefixer": { - "version": "10.4.17", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.17.tgz", - "integrity": "sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==", + "version": "10.4.18", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.18.tgz", + "integrity": "sha512-1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g==", "dev": true, "requires": { - "browserslist": "^4.22.2", - "caniuse-lite": "^1.0.30001578", + "browserslist": "^4.23.0", + "caniuse-lite": "^1.0.30001591", "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", diff --git a/website/yarn.lock b/website/yarn.lock index dc68c4a1..83226b94 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -155,12 +155,12 @@ arg@^5.0.2: integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== autoprefixer@^10.4: - version "10.4.17" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.17.tgz#35cd5695cbbe82f536a50fa025d561b01fdec8be" - integrity sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg== + version "10.4.18" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.18.tgz#fcb171a3b017be7cb5d8b7a825f5aacbf2045163" + integrity sha512-1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g== dependencies: - browserslist "^4.22.2" - caniuse-lite "^1.0.30001578" + browserslist "^4.23.0" + caniuse-lite "^1.0.30001591" fraction.js "^4.3.7" normalize-range "^0.1.2" picocolors "^1.0.0" @@ -205,16 +205,6 @@ browserslist@^4.0.0, browserslist@^4.23.0: node-releases "^2.0.14" update-browserslist-db "^1.0.13" -browserslist@^4.22.2: - version "4.22.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b" - integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A== - dependencies: - caniuse-lite "^1.0.30001565" - electron-to-chromium "^1.4.601" - node-releases "^2.0.14" - update-browserslist-db "^1.0.13" - camelcase-css@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" @@ -230,16 +220,11 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001565, caniuse-lite@^1.0.30001587: +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001587, caniuse-lite@^1.0.30001591: version "1.0.30001596" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001596.tgz#da06b79c3d9c3d9958eb307aa832ac68ead79bee" integrity sha512-zpkZ+kEr6We7w63ORkoJ2pOfBwBkY/bJrG/UZ90qNb45Isblu8wzDgevEOrRL1r9dWayHjYiiyCMEXPn4DweGQ== -caniuse-lite@^1.0.30001578: - version "1.0.30001578" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001578.tgz#11741580434ce60aae4b4a9abee9f9f8d7bf5be5" - integrity sha512-J/jkFgsQ3NEl4w2lCoM9ZPxrD+FoBNJ7uJUpGVjIg/j0OwJosWM36EPDv+Yyi0V4twBk9pPmlFS+PLykgEvUmg== - chokidar@^3.3.0, chokidar@^3.5.3: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" @@ -453,7 +438,7 @@ eastasianwidth@^0.2.0: resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== -electron-to-chromium@^1.4.601, electron-to-chromium@^1.4.668: +electron-to-chromium@^1.4.668: version "1.4.699" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.699.tgz#dd53c939e13da64e94b341e563f0a3011b4ef0e9" integrity sha512-I7q3BbQi6e4tJJN5CRcyvxhK0iJb34TV8eJQcgh+fR2fQ8miMgZcEInckCo1U9exDHbfz7DLDnFn8oqH/VcRKw== From 2e182748032cbd36d2360a1fb19a9e58e0b16bf3 Mon Sep 17 00:00:00 2001 From: eikek Date: Sat, 9 Mar 2024 01:28:44 +0100 Subject: [PATCH 033/162] Extend nix flake setup --- flake.lock | 130 +++++++++ flake.nix | 164 +++++++++++ nix/checks/configuration-test.nix | 31 +-- nix/checks/default.nix | 3 +- nix/dev-vm/default.nix | 28 -- nix/docker.nix | 79 ++++++ nix/flake.lock | 26 -- nix/flake.nix | 134 --------- nix/modules/joex.nix | 329 +++++++++++------------ nix/modules/server.nix | 155 ++++++----- nix/pkg.nix | 57 ++++ nix/test-vm.nix | 77 ++++++ project/build.nix | 44 +-- website/shell.nix | 25 +- website/site/content/docs/install/nix.md | 33 ++- 15 files changed, 824 insertions(+), 491 deletions(-) create mode 100644 flake.lock create mode 100644 flake.nix delete mode 100644 nix/dev-vm/default.nix create mode 100644 nix/docker.nix delete mode 100644 nix/flake.lock delete mode 100644 nix/flake.nix create mode 100644 nix/pkg.nix create mode 100644 nix/test-vm.nix diff --git a/flake.lock b/flake.lock new file mode 100644 index 00000000..d2dfeb62 --- /dev/null +++ b/flake.lock @@ -0,0 +1,130 @@ +{ + "nodes": { + "devshell-tools": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1709936258, + "narHash": "sha256-ziYmDU/5v++oYSSwyMqEOr2V75rO+dMQA5aEdwH8amw=", + "owner": "eikek", + "repo": "devshell-tools", + "rev": "59900a3731a88508257525754a704ad2f8a3278e", + "type": "github" + }, + "original": { + "owner": "eikek", + "repo": "devshell-tools", + "type": "github" + } + }, + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1709126324, + "narHash": "sha256-q6EQdSeUZOG26WelxqkmR7kArjgWCdw5sfJVHPH/7j8=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "d465f4819400de7c8d874d50b982301f28a84605", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { + "inputs": { + "systems": "systems_2" + }, + "locked": { + "lastModified": 1709126324, + "narHash": "sha256-q6EQdSeUZOG26WelxqkmR7kArjgWCdw5sfJVHPH/7j8=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "d465f4819400de7c8d874d50b982301f28a84605", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1709309926, + "narHash": "sha256-VZFBtXGVD9LWTecGi6eXrE0hJ/mVB3zGUlHImUs2Qak=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "79baff8812a0d68e24a836df0a364c678089e2c7", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1709677081, + "narHash": "sha256-tix36Y7u0rkn6mTm0lA45b45oab2cFLqAzDbJxeXS+c=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "880992dcc006a5e00dd0591446fdf723e6a51a64", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "devshell-tools": "devshell-tools", + "flake-utils": "flake-utils_2", + "nixpkgs": "nixpkgs_2" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 00000000..af1469a6 --- /dev/null +++ b/flake.nix @@ -0,0 +1,164 @@ +{ + description = "Docspell"; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.11"; + devshell-tools.url = "github:eikek/devshell-tools"; + flake-utils.url = "github:numtide/flake-utils"; + }; + + outputs = { + self, + nixpkgs, + flake-utils, + devshell-tools, + }: + flake-utils.lib.eachDefaultSystem (system: let + pkgs = nixpkgs.legacyPackages.${system}; + devshellPkgs = with pkgs; [ + jq + scala-cli + sbt + + netcat + jdk17 + wget + which + dpkg + elmPackages.elm + fakeroot + zola + yarn + ]; + docspellPkgs = pkgs.callPackage (import ./nix/pkg.nix) {}; + dockerAmd64 = pkgs.pkgsCross.gnu64.callPackage (import ./nix/docker.nix) { + inherit (docspellPkgs) docspell-server docspell-joex; + }; + dockerArm64 = pkgs.pkgsCross.aarch64-multiplatform.callPackage (import ./nix/docker.nix) { + inherit (docspellPkgs) docspell-server docspell-joex; + }; + in { + formatter = pkgs.alejandra; + + packages = { + inherit (docspellPkgs) docspell-server docspell-joex; + }; + + legacyPackages = { + docker = { + amd64 = { + inherit (dockerAmd64) docspell-server docspell-joex; + }; + arm64 = { + inherit (dockerArm64) docspell-server docspell-joex; + }; + }; + }; + + checks = { + build-server = self.packages.${system}.docspell-server; + build-joex = self.packages.${system}.docspell-joex; + + test = with import (nixpkgs + "/nixos/lib/testing-python.nix") + { + inherit system; + }; + makeTest { + name = "docspell"; + nodes = { + machine = {...}: { + nixpkgs.overlays = [self.overlays.default]; + imports = [ + self.nixosModules.default + ./nix/checks + ]; + }; + }; + + testScript = builtins.readFile ./nix/checks/testScript.py; + }; + }; + + devShells = { + dev-cnt = pkgs.mkShellNoCC { + buildInputs = + (builtins.attrValues devshell-tools.legacyPackages.${system}.cnt-scripts) + ++ devshellPkgs; + + DEV_CONTAINER = "docsp-dev"; + SBT_OPTS = "-Xmx2G -Xss4m"; + }; + dev-vm = pkgs.mkShellNoCC { + buildInputs = + (builtins.attrValues devshell-tools.legacyPackages.${system}.vm-scripts) + ++ devshellPkgs; + + SBT_OPTS = "-Xmx2G -Xss4m"; + DEV_VM = "dev-vm"; + VM_SSH_PORT = "10022"; + }; + }; + }) + // { + nixosModules = { + default = {...}: { + imports = [ + ./nix/modules/server.nix + ./nix/modules/joex.nix + ]; + }; + server = import ./nix/modules/server.nix; + joex = import ./nix/modules/joex.nix; + }; + + overlays.default = final: prev: let + docspellPkgs = final.callPackage (import ./nix/pkg.nix) {}; + in { + inherit (docspellPkgs) docspell-server docspell-joex; + }; + + nixosConfigurations = { + test-vm = devshell-tools.lib.mkVm { + system = "x86_64-linux"; + modules = [ + self.nixosModules.default + { + nixpkgs.overlays = [self.overlays.default]; + } + ./nix/test-vm.nix + ]; + }; + docsp-dev = devshell-tools.lib.mkContainer { + system = "x86_64-linux"; + modules = [ + { + services.dev-postgres.enable = true; + services.dev-email.enable = true; + services.dev-minio.enable = true; + services.dev-solr.enable = true; + } + ]; + }; + dev-vm = devshell-tools.lib.mkVm { + system = "x86_64-linux"; + modules = [ + { + services.dev-postgres.enable = true; + services.dev-email.enable = true; + services.dev-minio.enable = true; + services.dev-solr.enable = true; + port-forward.ssh = 10022; + port-forward.dev-postgres = 6534; + port-forward.dev-smtp = 10025; + port-forward.dev-imap = 10143; + port-forward.dev-webmail = 8080; + port-forward.dev-minio-api = 9000; + port-forward.dev-minio-console = 9001; + port-forward.dev-solr = 8983; + networking.hostName = "dev-vm"; + } + ]; + }; + }; + }; +} diff --git a/nix/checks/configuration-test.nix b/nix/checks/configuration-test.nix index 84ccb577..ac1ec897 100644 --- a/nix/checks/configuration-test.nix +++ b/nix/checks/configuration-test.nix @@ -1,5 +1,8 @@ -{ config, pkgs, ... }: -let +{ + config, + pkgs, + ... +}: let full-text-search = { enabled = true; backend = "postgresql"; @@ -9,9 +12,7 @@ let }; }; }; -in -{ - +in { i18n = { defaultLocale = "en_US.UTF-8"; }; @@ -21,12 +22,11 @@ in password = "root"; }; - services.docspell-joex = { enable = true; bind.address = "0.0.0.0"; base-url = "http://localhost:7878"; - jvmArgs = [ "-J-Xmx1536M" ]; + jvmArgs = ["-J-Xmx1536M"]; inherit full-text-search; }; services.docspell-restserver = { @@ -69,14 +69,12 @@ in }; }; - environment.systemPackages = - [ - pkgs.jq - pkgs.inetutils - pkgs.htop - pkgs.jdk17 - ]; - + environment.systemPackages = [ + pkgs.jq + pkgs.inetutils + pkgs.htop + pkgs.jdk17 + ]; services.xserver = { enable = false; @@ -84,12 +82,11 @@ in networking = { hostName = "docspelltest"; - firewall.allowedTCPPorts = [ 7880 ]; + firewall.allowedTCPPorts = [7880]; }; system.stateVersion = "22.11"; # This slows down the build of a vm documentation.enable = false; - } diff --git a/nix/checks/default.nix b/nix/checks/default.nix index d3eb6f37..97ae31c1 100644 --- a/nix/checks/default.nix +++ b/nix/checks/default.nix @@ -1,5 +1,4 @@ -{ ... }: -{ +{...}: { imports = [ ./configuration-test.nix ]; diff --git a/nix/dev-vm/default.nix b/nix/dev-vm/default.nix deleted file mode 100644 index 01e172a1..00000000 --- a/nix/dev-vm/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -# NOTE: modulesPath and imports are taken from nixpkgs#59219 -{ modulesPath, pkgs, lib, ... }: { - imports = [ (modulesPath + "/virtualisation/qemu-vm.nix") ]; - services.openssh = { - enable = true; - permitRootLogin = "yes"; - }; - - services.docspell-restserver = { - openid = lib.mkForce [ ]; - backend = lib.mkForce { - signup = { - mode = "open"; - }; - }; - }; - - # Otherwise oomkiller kills docspell - virtualisation.memorySize = 4096; - - virtualisation.forwardPorts = [ - # SSH - { from = "host"; host.port = 64022; guest.port = 22; } - # Docspell - { from = "host"; host.port = 64080; guest.port = 7880; } - ]; - -} diff --git a/nix/docker.nix b/nix/docker.nix new file mode 100644 index 00000000..d0e69596 --- /dev/null +++ b/nix/docker.nix @@ -0,0 +1,79 @@ +{ + dockerTools, + busybox, + cacert, + wget, + unpaper, + ghostscript, + ocrmypdf, + tesseract4, + python3Packages, + unoconv, + docspell-server, + docspell-joex, +}: let + mkImage = { + name, + port, + pkg, + tools, + }: + dockerTools.buildLayeredImage { + inherit name; + created = "now"; + contents = + [ + busybox + cacert + wget + pkg + ] + ++ tools; + + extraCommands = "mkdir -m 0777 tmp"; + + #https://github.com/moby/docker-image-spec/blob/main/spec.md#image-json-description + config = { + Entrypoint = ["bin/${name}" "-Dconfig.file="]; + #Cmd = ["bin/${name}" "-Dconfig.file="]; + ExposedPorts = { + "${builtins.toString port}/tcp" = {}; + }; + Env = [ + "PATH=/bin" + "SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt" + ]; + Healthcheck = { + Test = [ + "CMD" + "wget" + "--spider" + "http://localhost:${builtins.toString port}/api/info/version" + ]; + Interval = 60000000000; #1min + Timeout = 10000000000; #10s + Retries = 2; + StartInterval = 10000000000; + }; + Labels = { + #https://github.com/microscaling/microscaling/blob/55a2d7b91ce7513e07f8b1fd91bbed8df59aed5a/Dockerfile#L22-L33 + "org.label-schema.vcs-ref" = "v${pkg.version}"; + "org.label-schema.vcs-url" = "https://github.com/eikek/docspell"; + }; + }; + tag = "v${pkg.version}"; + }; +in { + docspell-server = mkImage { + name = "docspell-restserver"; + port = 7880; + pkg = docspell-server; + tools = []; + }; + docspell-joex = mkImage { + name = "docspell-joex"; + port = 7878; + pkg = docspell-joex; + tools = [unpaper ghostscript ocrmypdf tesseract4 python3Packages.weasyprint unoconv]; + }; +} diff --git a/nix/flake.lock b/nix/flake.lock deleted file mode 100644 index 61eca2df..00000000 --- a/nix/flake.lock +++ /dev/null @@ -1,26 +0,0 @@ -{ - "nodes": { - "nixpkgs": { - "locked": { - "lastModified": 1706373441, - "narHash": "sha256-S1hbgNbVYhuY2L05OANWqmRzj4cElcbLuIkXTb69xkk=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "56911ef3403a9318b7621ce745f5452fb9ef6867", - "type": "github" - }, - "original": { - "id": "nixpkgs", - "ref": "nixos-23.11", - "type": "indirect" - } - }, - "root": { - "inputs": { - "nixpkgs": "nixpkgs" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/nix/flake.nix b/nix/flake.nix deleted file mode 100644 index a8cb0785..00000000 --- a/nix/flake.nix +++ /dev/null @@ -1,134 +0,0 @@ -{ - description = "Docspell flake"; - inputs = { - nixpkgs.url = "nixpkgs/nixos-23.11"; - }; - - outputs = { self, nixpkgs }: - let - supportedSystems = [ "x86_64-linux" "aarch64-linux" ]; - forAllSystems = nixpkgs.lib.genAttrs supportedSystems; - nixpkgsFor = forAllSystems (system: import nixpkgs { inherit system; }); - # Version config - cfg = { - v0_41_0 = rec { - version = "0.41.0"; - server = { - url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-restserver-${version}.zip"; - sha256 = "sha256-JFftIzI94UNLLh96I++qFsBZhOkquPIPhNhtS2Ov8wI="; - }; - joex = { - url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-joex-${version}.zip"; - sha256 = "sha256-flKWjEsMd2/XT3Bu6EjFgf3lCojvLbKFDEXemP1K+/8="; - }; - }; - }; - current_version = cfg.v0_41_0; - inherit (current_version) version; - in - rec - { - overlays.default = final: prev: { - docspell-server = with final; stdenv.mkDerivation { - inherit version; - pname = "docspell-server"; - - src = fetchzip current_version.server; - buildInputs = [ jdk17 ]; - buildPhase = "true"; - - installPhase = '' - mkdir -p $out/{bin,docspell-restserver-${version}} - cp -R * $out/docspell-restserver-${version}/ - cat > $out/bin/docspell-restserver <<-EOF - #!${bash}/bin/bash - $out/docspell-restserver-${version}/bin/docspell-restserver -java-home ${jdk17} "\$@" - EOF - chmod 755 $out/bin/docspell-restserver - ''; - }; - docspell-joex = with final; stdenv.mkDerivation rec { - inherit version; - - pname = "docspell-joex"; - - src = fetchzip current_version.joex; - - buildInputs = [ jdk17 ]; - - buildPhase = "true"; - - installPhase = '' - mkdir -p $out/{bin,docspell-joex-${version}} - cp -R * $out/docspell-joex-${version}/ - cat > $out/bin/docspell-joex <<-EOF - #!${bash}/bin/bash - $out/docspell-joex-${version}/bin/docspell-joex -java-home ${jdk17} "\$@" - EOF - chmod 755 $out/bin/docspell-joex - ''; - }; - - }; - - packages = forAllSystems (system: - { - default = (import nixpkgs { - inherit system; - overlays = [ self.overlays.default ]; - }).docspell-joex; - }); - - checks = forAllSystems - (system: { - build = self.packages.${system}.default; - - test = - with import (nixpkgs + "/nixos/lib/testing-python.nix") - { - inherit system; - }; - - makeTest { - name = "docspell"; - nodes = { - machine = { ... }: { - imports = [ - self.nixosModules.default - ./checks - ]; - }; - }; - - testScript = builtins.readFile ./checks/testScript.py; - }; - }); - - nixosModules = { - default = { ... }: { - imports = [ - ((import ./modules/server.nix) self.overlays.default) - ((import ./modules/joex.nix) self.overlays.default) - ]; - }; - server = ((import ./modules/server.nix) self.overlays.default); - joex = ((import ./modules/joex.nix) self.overlays.default); - }; - - nixosConfigurations = - let - lib = nixpkgs.lib; - in - { - dev-vm = lib.makeOverridable nixpkgs.lib.nixosSystem { - system = "x86_64-linux"; - modules = [ - self.nixosModules.default - ./checks - # nixos-shell specific module. Should be kept outside nix flake checks - ./dev-vm - ]; - }; - }; - }; -} diff --git a/nix/modules/joex.nix b/nix/modules/joex.nix index 7890d690..5e893be6 100644 --- a/nix/modules/joex.nix +++ b/nix/modules/joex.nix @@ -1,11 +1,17 @@ -overlay: { config, lib, pkgs, ... }: - -with lib; -let +{ + config, + lib, + pkgs, + ... +}: +with lib; let cfg = config.services.docspell-joex; # Extract the config without the extraConfig attribute. It will be merged later declared_config = attrsets.filterAttrs (n: v: n != "extraConfig") cfg; - user = if cfg.runAs == null then "docspell" else cfg.runAs; + user = + if cfg.runAs == null + then "docspell" + else cfg.runAs; configFile = pkgs.writeText "docspell-joex.conf" '' {"docspell": { "joex": ${builtins.toJSON (lib.recursiveUpdate declared_config cfg.extraConfig)} @@ -85,7 +91,7 @@ let schedule = "Sun *-*-* 00:00:00 UTC"; sender-account = ""; smtp-id = ""; - recipients = [ ]; + recipients = []; subject = "Docspell {{ latestVersion }} is available"; body = '' Hello, @@ -116,21 +122,21 @@ let working-dir = "/tmp/docspell-extraction"; command = { program = "${pkgs.ghostscript}/bin/gs"; - args = [ "-dNOPAUSE" "-dBATCH" "-dSAFER" "-sDEVICE=tiffscaled8" "-sOutputFile={{outfile}}" "{{infile}}" ]; + args = ["-dNOPAUSE" "-dBATCH" "-dSAFER" "-sDEVICE=tiffscaled8" "-sOutputFile={{outfile}}" "{{infile}}"]; timeout = "5 minutes"; }; }; unpaper = { command = { program = "${pkgs.unpaper}/bin/unpaper"; - args = [ "{{infile}}" "{{outfile}}" ]; + args = ["{{infile}}" "{{outfile}}"]; timeout = "5 minutes"; }; }; tesseract = { command = { program = "${pkgs.tesseract4}/bin/tesseract"; - args = [ "{{file}}" "stdout" "-l" "{{lang}}" ]; + args = ["{{file}}" "stdout" "-l" "{{lang}}"]; timeout = "5 minutes"; }; }; @@ -179,7 +185,7 @@ let wkhtmlpdf = { command = { program = ""; - args = [ "--encoding" "UTF-8" "-" "{{outfile}}" ]; + args = ["--encoding" "UTF-8" "-" "{{outfile}}"]; timeout = "2 minutes"; }; working-dir = "/tmp/docspell-convert"; @@ -204,7 +210,7 @@ let tesseract = { command = { program = "${pkgs.tesseract4}/bin/tesseract"; - args = [ "{{infile}}" "out" "-l" "{{lang}}" "pdf" "txt" ]; + args = ["{{infile}}" "out" "-l" "{{lang}}" "pdf" "txt"]; timeout = "5 minutes"; }; working-dir = "/tmp/docspell-convert"; @@ -213,7 +219,7 @@ let unoconv = { command = { program = "${pkgs.unoconv}/bin/unoconv"; - args = [ "-f" "pdf" "-o" "{{outfile}}" "{{infile}}" ]; + args = ["-f" "pdf" "-o" "{{outfile}}" "{{infile}}"]; timeout = "2 minutes"; }; working-dir = "/tmp/docspell-convert"; @@ -240,7 +246,7 @@ let }; files = { chunk-size = 524288; - valid-mime-types = [ ]; + valid-mime-types = []; }; full-text-search = { enabled = false; @@ -259,9 +265,9 @@ let user = "pguser"; password = ""; }; - pg-config = { }; + pg-config = {}; pg-query-parser = "websearch_to_tsquery"; - pg-rank-normalization = [ 4 ]; + pg-rank-normalization = [4]; }; migration = { index-all-chunk = 10; @@ -291,9 +297,7 @@ let }; }; }; -in -{ - +in { ## interface options = { services.docspell-joex = { @@ -321,12 +325,11 @@ in }; jvmArgs = mkOption { type = types.listOf types.str; - default = [ ]; - example = [ "-J-Xmx1G" ]; + default = []; + example = ["-J-Xmx1G"]; description = "The options passed to the executable for setting jvm arguments."; }; - app-id = mkOption { type = types.str; default = defaults.app-id; @@ -340,7 +343,7 @@ in }; bind = mkOption { - type = types.submodule ({ + type = types.submodule { options = { address = mkOption { type = types.str; @@ -353,13 +356,13 @@ in description = "The port to bind the REST server"; }; }; - }); + }; default = defaults.bind; description = "Address and port bind the rest server."; }; logging = mkOption { - type = types.submodule ({ + type = types.submodule { options = { minimum-level = mkOption { type = types.str; @@ -377,7 +380,7 @@ in description = "Set of logger and their levels"; }; }; - }); + }; default = defaults.logging; description = "Settings for logging"; }; @@ -394,7 +397,7 @@ in }; jdbc = mkOption { - type = types.submodule ({ + type = types.submodule { options = { url = mkOption { type = types.str; @@ -421,13 +424,13 @@ in description = "The password to connect to the database."; }; }; - }); + }; default = defaults.jdbc; description = "Database connection settings"; }; send-mail = mkOption { - type = types.submodule ({ + type = types.submodule { options = { list-id = mkOption { type = types.str; @@ -443,15 +446,14 @@ in https://tools.ietf.org/html/rfc2919 for a formal specification ''; }; - }; - }); + }; default = defaults.send-mail; description = "Settings for sending mails."; }; scheduler = mkOption { - type = types.submodule ({ + type = types.submodule { options = { pool-size = mkOption { type = types.int; @@ -501,13 +503,13 @@ in ''; }; }; - }); + }; default = defaults.scheduler; description = "Settings for the scheduler"; }; periodic-scheduler = mkOption { - type = types.submodule ({ + type = types.submodule { options = { wakeup-period = mkOption { type = types.str; @@ -520,7 +522,7 @@ in ''; }; }; - }); + }; default = defaults.periodic-scheduler; description = '' Settings for the periodic scheduler. @@ -528,10 +530,10 @@ in }; user-tasks = mkOption { - type = types.submodule ({ + type = types.submodule { options = { scan-mailbox = mkOption { - type = types.submodule ({ + type = types.submodule { options = { max-folders = mkOption { type = types.int; @@ -565,18 +567,18 @@ in ''; }; }; - }); + }; default = defaults.user-tasks.scan-mailbox; description = "Allows to import e-mails by scanning a mailbox."; }; }; - }); + }; default = defaults.user-tasks; description = "Configuration for the user tasks."; }; house-keeping = mkOption { - type = types.submodule ({ + type = types.submodule { options = { schedule = mkOption { type = types.str; @@ -587,7 +589,7 @@ in ''; }; cleanup-invites = mkOption { - type = types.submodule ({ + type = types.submodule { options = { enabled = mkOption { type = types.bool; @@ -600,7 +602,7 @@ in description = "The minimum age of invites to be deleted."; }; }; - }); + }; default = defaults.house-keeping.cleanup-invites; description = '' This task removes invitation keys that have been created but not @@ -609,7 +611,7 @@ in ''; }; cleanup-jobs = mkOption { - type = types.submodule ({ + type = types.submodule { options = { enabled = mkOption { type = types.bool; @@ -633,9 +635,8 @@ in whether more or less memory should be used. ''; }; - }; - }); + }; default = defaults.house-keeping.cleanup-jobs; description = '' Jobs store their log output in the database. Normally this data @@ -644,7 +645,7 @@ in ''; }; cleanup-remember-me = mkOption { - type = types.submodule ({ + type = types.submodule { options = { enabled = mkOption { type = types.bool; @@ -657,13 +658,13 @@ in description = "The miminum age of remember me tokens to delete."; }; }; - }); + }; default = defaults.house-keeping.cleanup-remember-me; description = "Settings for cleaning up remember me tokens."; }; cleanup-downloads = mkOption { - type = types.submodule ({ + type = types.submodule { options = { enabled = mkOption { type = types.bool; @@ -676,13 +677,13 @@ in description = "The miminum age of a download file to delete."; }; }; - }); + }; default = defaults.house-keeping.cleanup-downloads; description = ""; }; check-nodes = mkOption { - type = types.submodule ({ + type = types.submodule { options = { enabled = mkOption { type = types.bool; @@ -695,12 +696,12 @@ in description = "How often the node must be unreachable, before it is removed."; }; }; - }); + }; default = defaults.house-keeping.cleanup-nodes; description = "Removes node entries that are not reachable anymore."; }; }; - }); + }; default = defaults.house-keeping; description = '' Docspell uses periodic house keeping tasks, like cleaning expired @@ -709,7 +710,7 @@ in }; update-check = mkOption { - type = types.submodule ({ + type = types.submodule { options = { enabled = mkOption { type = types.bool; @@ -753,7 +754,7 @@ in recipients = mkOption { type = types.listOf types.str; default = defaults.update-check.recipients; - example = [ "josh.doe@gmail.com" ]; + example = ["josh.doe@gmail.com"]; description = '' A list of recipient e-mail addresses. ''; @@ -781,7 +782,7 @@ in ''; }; }; - }); + }; default = defaults.update-check; description = '' A periodic task to check for new releases of docspell. It can @@ -791,10 +792,10 @@ in }; extraction = mkOption { - type = types.submodule ({ + type = types.submodule { options = { pdf = mkOption { - type = types.submodule ({ + type = types.submodule { options = { min-text-len = mkOption { type = types.int; @@ -808,12 +809,12 @@ in ''; }; }; - }); + }; default = defaults.extraction.pdf; description = "Settings for PDF extraction"; }; preview = mkOption { - type = types.submodule ({ + type = types.submodule { options = { dpi = mkOption { type = types.int; @@ -830,12 +831,12 @@ in ''; }; }; - }); + }; default = defaults.extraction.preview; description = ""; }; ocr = mkOption { - type = types.submodule ({ + type = types.submodule { options = { max-image-size = mkOption { type = types.int; @@ -846,7 +847,7 @@ in ''; }; page-range = mkOption { - type = types.submodule ({ + type = types.submodule { options = { begin = mkOption { type = types.int; @@ -854,7 +855,7 @@ in description = "Specifies the first N pages of a file to process."; }; }; - }); + }; default = defaults.extraction.page-range; description = '' Defines what pages to process. If a PDF with 600 pages is @@ -871,7 +872,7 @@ in ''; }; ghostscript = mkOption { - type = types.submodule ({ + type = types.submodule { options = { working-dir = mkOption { type = types.str; @@ -879,7 +880,7 @@ in description = "Directory where the extraction processes can put their temp files"; }; command = mkOption { - type = types.submodule ({ + type = types.submodule { options = { program = mkOption { type = types.str; @@ -897,20 +898,20 @@ in description = "The timeout when executing the command"; }; }; - }); + }; default = defaults.extraction.ghostscript.command; description = "The system command"; }; }; - }); + }; default = defaults.extraction.ghostscript; description = "The ghostscript command."; }; unpaper = mkOption { - type = types.submodule ({ + type = types.submodule { options = { command = mkOption { - type = types.submodule ({ + type = types.submodule { options = { program = mkOption { type = types.str; @@ -928,20 +929,20 @@ in description = "The timeout when executing the command"; }; }; - }); + }; default = defaults.extraction.unpaper.command; description = "The system command"; }; }; - }); + }; default = defaults.extraction.unpaper; description = "The unpaper command."; }; tesseract = mkOption { - type = types.submodule ({ + type = types.submodule { options = { command = mkOption { - type = types.submodule ({ + type = types.submodule { options = { program = mkOption { type = types.str; @@ -959,23 +960,22 @@ in description = "The timeout when executing the command"; }; }; - }); + }; default = defaults.extraction.tesseract.command; description = "The system command"; }; }; - }); + }; default = defaults.extraction.tesseract; description = "The tesseract command."; }; - }; - }); + }; default = defaults.extraction.ocr; description = ""; }; }; - }); + }; default = defaults.extraction; description = '' Configuration of text extraction @@ -990,7 +990,7 @@ in }; text-analysis = mkOption { - type = types.submodule ({ + type = types.submodule { options = { max-length = mkOption { type = types.int; @@ -1015,7 +1015,7 @@ in }; nlp = mkOption { - type = types.submodule ({ + type = types.submodule { options = { mode = mkOption { type = types.str; @@ -1073,7 +1073,7 @@ in }; regex-ner = mkOption { - type = types.submodule ({ + type = types.submodule { options = { max-entries = mkOption { type = types.int; @@ -1104,18 +1104,18 @@ in ''; }; }; - }); + }; default = defaults.text-analysis.nlp.regex-ner; description = ""; }; }; - }); + }; default = defaults.text-analysis.nlp; description = "Configure NLP"; }; classification = mkOption { - type = types.submodule ({ + type = types.submodule { options = { enabled = mkOption { type = types.bool; @@ -1147,9 +1147,8 @@ in good results with *my* dataset. ''; }; - }; - }); + }; default = defaults.text-analysis.classification; description = '' Settings for doing document classification. @@ -1167,13 +1166,13 @@ in ''; }; }; - }); + }; default = defaults.text-analysis; description = "Settings for text analysis"; }; convert = mkOption { - type = types.submodule ({ + type = types.submodule { options = { chunk-size = mkOption { type = types.int; @@ -1202,7 +1201,7 @@ in ''; }; markdown = mkOption { - type = types.submodule ({ + type = types.submodule { options = { internal-css = mkOption { type = types.str; @@ -1212,7 +1211,7 @@ in ''; }; }; - }); + }; default = defaults.convert.markdown; description = '' Settings when processing markdown files (and other text files) @@ -1224,12 +1223,12 @@ in ''; }; html-converter = mkOption { - type = types.enum [ "wkhtmlpdf" "weasyprint" ]; + type = types.enum ["wkhtmlpdf" "weasyprint"]; default = "weasyprint"; description = "Which tool to use for converting html to pdfs"; }; wkhtmlpdf = mkOption { - type = types.submodule ({ + type = types.submodule { options = { working-dir = mkOption { type = types.str; @@ -1237,7 +1236,7 @@ in description = "Directory where the conversion processes can put their temp files"; }; command = mkOption { - type = types.submodule ({ + type = types.submodule { options = { program = mkOption { type = types.str; @@ -1255,12 +1254,12 @@ in description = "The timeout when executing the command"; }; }; - }); + }; default = defaults.convert.wkhtmlpdf.command; description = "The system command"; }; }; - }); + }; default = defaults.convert.wkhtmlpdf; description = '' To convert HTML files into PDF files, the external tool @@ -1268,7 +1267,7 @@ in ''; }; weasyprint = mkOption { - type = types.submodule ({ + type = types.submodule { options = { working-dir = mkOption { type = types.str; @@ -1276,7 +1275,7 @@ in description = "Directory where the conversion processes can put their temp files"; }; command = mkOption { - type = types.submodule ({ + type = types.submodule { options = { program = mkOption { type = types.str; @@ -1294,12 +1293,12 @@ in description = "The timeout when executing the command"; }; }; - }); + }; default = defaults.convert.weasyprint.command; description = "The system command"; }; }; - }); + }; default = defaults.convert.weasyprint; description = '' To convert HTML files into PDF files, the external tool @@ -1307,7 +1306,7 @@ in ''; }; tesseract = mkOption { - type = types.submodule ({ + type = types.submodule { options = { working-dir = mkOption { type = types.str; @@ -1315,7 +1314,7 @@ in description = "Directory where the conversion processes can put their temp files"; }; command = mkOption { - type = types.submodule ({ + type = types.submodule { options = { program = mkOption { type = types.str; @@ -1333,12 +1332,12 @@ in description = "The timeout when executing the command"; }; }; - }); + }; default = defaults.convert.tesseract.command; description = "The system command"; }; }; - }); + }; default = defaults.convert.tesseract; description = '' To convert image files to PDF files, tesseract is used. This @@ -1346,7 +1345,7 @@ in ''; }; unoconv = mkOption { - type = types.submodule ({ + type = types.submodule { options = { working-dir = mkOption { type = types.str; @@ -1354,7 +1353,7 @@ in description = "Directory where the conversion processes can put their temp files"; }; command = mkOption { - type = types.submodule ({ + type = types.submodule { options = { program = mkOption { type = types.str; @@ -1372,12 +1371,12 @@ in description = "The timeout when executing the command"; }; }; - }); + }; default = defaults.convert.unoconv.command; description = "The system command"; }; }; - }); + }; default = defaults.convert.unoconv; description = '' To convert "office" files to PDF files, the external tool @@ -1392,7 +1391,7 @@ in }; ocrmypdf = mkOption { - type = types.submodule ({ + type = types.submodule { options = { enabled = mkOption { type = types.bool; @@ -1405,7 +1404,7 @@ in description = "Directory where the conversion processes can put their temp files"; }; command = mkOption { - type = types.submodule ({ + type = types.submodule { options = { program = mkOption { type = types.str; @@ -1423,12 +1422,12 @@ in description = "The timeout when executing the command"; }; }; - }); + }; default = defaults.convert.ocrmypdf.command; description = "The system command"; }; }; - }); + }; default = defaults.convert.ocrmypdf; description = '' The tool ocrmypdf can be used to convert pdf files to pdf files @@ -1449,9 +1448,8 @@ in converted to PDF/A. ''; }; - }; - }); + }; default = defaults.convert; description = '' Configuration for converting files into PDFs. @@ -1462,7 +1460,7 @@ in ''; }; files = mkOption { - type = types.submodule ({ + type = types.submodule { options = { chunk-size = mkOption { type = types.int; @@ -1489,12 +1487,12 @@ in ''; }; }; - }); + }; default = defaults.files; description = "Settings for how files are stored."; }; full-text-search = mkOption { - type = types.submodule ({ + type = types.submodule { options = { enabled = mkOption { type = types.bool; @@ -1514,7 +1512,7 @@ in }; solr = mkOption { - type = types.submodule ({ + type = types.submodule { options = { url = mkOption { type = types.str; @@ -1546,13 +1544,13 @@ in description = "The default combiner for tokens. One of {AND, OR}."; }; }; - }); + }; default = defaults.full-text-search.solr; description = "Configuration for the SOLR backend."; }; postgresql = mkOption { - type = types.submodule ({ + type = types.submodule { options = { use-default-connection = mkOption { type = types.bool; @@ -1560,7 +1558,7 @@ in description = "Whether to use the primary db connection."; }; jdbc = mkOption { - type = types.submodule ({ + type = types.submodule { options = { url = mkOption { type = types.str; @@ -1580,7 +1578,7 @@ in description = "The password to connect to the database."; }; }; - }); + }; default = defaults.full-text-search.postgresql.jdbc; description = "Database connection settings"; }; @@ -1600,13 +1598,13 @@ in description = ""; }; }; - }); + }; default = defaults.full-text-search.postgresql; description = "PostgreSQL for fulltext search"; }; migration = mkOption { - type = types.submodule ({ + type = types.submodule { options = { index-all-chunk = mkOption { type = types.int; @@ -1618,17 +1616,17 @@ in ''; }; }; - }); + }; default = defaults.full-text-search.migration; description = "Settings for running the index migration tasks"; }; }; - }); + }; default = defaults.full-text-search; description = "Configuration for full-text search."; }; addons = mkOption { - type = types.submodule ({ + type = types.submodule { options = { working-dir = mkOption { type = types.str; @@ -1641,7 +1639,7 @@ in description = "Cache directory"; }; executor-config = mkOption { - type = types.submodule ({ + type = types.submodule { options = { runner = mkOption { type = types.str; @@ -1659,7 +1657,7 @@ in description = ""; }; nspawn = mkOption { - type = types.submodule ({ + type = types.submodule { options = { enabled = mkOption { type = types.bool; @@ -1682,12 +1680,12 @@ in description = ""; }; }; - }); + }; default = defaults.addons.executor-config.nspawn; description = ""; }; nix-runner = mkOption { - type = types.submodule ({ + type = types.submodule { options = { nix-binary = mkOption { type = types.str; @@ -1700,12 +1698,12 @@ in description = ""; }; }; - }); + }; default = defaults.addons.executor-config.nix-runner; description = ""; }; docker-runner = mkOption { - type = types.submodule ({ + type = types.submodule { options = { docker-binary = mkOption { type = types.str; @@ -1718,24 +1716,24 @@ in description = ""; }; }; - }); + }; default = defaults.addons.executor-config.docker-runner; description = ""; }; }; - }); + }; default = defaults.addons.executor-config; description = ""; }; }; - }); + }; default = defaults.addons; description = "Addon executor config"; }; extraConfig = mkOption { type = types.attrs; description = "Extra configuration for docspell server. Overwrites values in case of a conflict."; - default = { }; + default = {}; example = '' { files = { @@ -1754,9 +1752,6 @@ in ## implementation config = mkIf config.services.docspell-joex.enable { - - nixpkgs.overlays = [ overlay ]; - users.users."${user}" = mkIf (cfg.runAs == null) { name = user; isSystemUser = true; @@ -1765,43 +1760,35 @@ in description = "Docspell user"; group = user; }; - users.groups."${user}" = mkIf (cfg.runAs == null) { }; + users.groups."${user}" = mkIf (cfg.runAs == null) {}; # Setting up a unoconv listener to improve conversion performance - systemd.services.unoconv = - let - cmd = "${pkgs.unoconv}/bin/unoconv --listener -v"; - in - { - description = "Unoconv Listener"; - after = [ "networking.target" ]; - wantedBy = [ "multi-user.target" ]; - serviceConfig = { - Restart = "always"; - }; - script = - "${pkgs.su}/bin/su -s ${pkgs.bash}/bin/sh ${user} -c \"${cmd}\""; + systemd.services.unoconv = let + cmd = "${pkgs.unoconv}/bin/unoconv --listener -v"; + in { + description = "Unoconv Listener"; + after = ["networking.target"]; + wantedBy = ["multi-user.target"]; + serviceConfig = { + Restart = "always"; }; + script = "${pkgs.su}/bin/su -s ${pkgs.bash}/bin/sh ${user} -c \"${cmd}\""; + }; - systemd.services.docspell-joex = - let - args = builtins.concatStringsSep " " cfg.jvmArgs; - cmd = "${pkgs.docspell-joex}/bin/docspell-joex ${args} -- ${configFile}"; - waitTarget = - if cfg.waitForTarget != null - then - [ cfg.waitForTarget ] - else - [ ]; - in - { - description = "Docspell Joex"; - after = ([ "networking.target" ] ++ waitTarget); - wantedBy = [ "multi-user.target" ]; - path = [ pkgs.gawk ]; + systemd.services.docspell-joex = let + args = builtins.concatStringsSep " " cfg.jvmArgs; + cmd = "${pkgs.docspell-joex}/bin/docspell-joex ${args} -- ${configFile}"; + waitTarget = + if cfg.waitForTarget != null + then [cfg.waitForTarget] + else []; + in { + description = "Docspell Joex"; + after = ["networking.target"] ++ waitTarget; + wantedBy = ["multi-user.target"]; + path = [pkgs.gawk]; - script = - "${pkgs.su}/bin/su -s ${pkgs.bash}/bin/sh ${user} -c \"${cmd}\""; - }; + script = "${pkgs.su}/bin/su -s ${pkgs.bash}/bin/sh ${user} -c \"${cmd}\""; + }; }; } diff --git a/nix/modules/server.nix b/nix/modules/server.nix index 4a98c8dc..925c2352 100644 --- a/nix/modules/server.nix +++ b/nix/modules/server.nix @@ -1,11 +1,17 @@ -overlay: { config, lib, pkgs, ... }: - -with lib; -let +{ + config, + lib, + pkgs, + ... +}: +with lib; let cfg = config.services.docspell-restserver; # Extract the config without the extraConfig attribute. It will be merged later declared_config = attrsets.filterAttrs (n: v: n != "extraConfig") cfg; - user = if cfg.runAs == null then "docspell" else cfg.runAs; + user = + if cfg.runAs == null + then "docspell" + else cfg.runAs; configFile = pkgs.writeText "docspell-server.conf" '' {"docspell": {"server": ${builtins.toJSON (lib.recursiveUpdate declared_config cfg.extraConfig)} @@ -44,7 +50,7 @@ let source-name = "integration"; allowed-ips = { enabled = false; - ips = [ "127.0.0.1" ]; + ips = ["127.0.0.1"]; }; http-basic = { enabled = false; @@ -78,9 +84,9 @@ let user = "pguser"; password = ""; }; - pg-config = { }; + pg-config = {}; pg-query-parser = "websearch_to_tsquery"; - pg-rank-normalization = [ 4 ]; + pg-rank-normalization = [4]; }; }; auth = { @@ -126,19 +132,17 @@ let }; files = { chunk-size = 524288; - valid-mime-types = [ ]; + valid-mime-types = []; }; addons = { enabled = false; allow-impure = true; - allowed-urls = [ "*" ]; - denied-urls = [ ]; + allowed-urls = ["*"]; + denied-urls = []; }; }; }; -in -{ - +in { ## interface options = { services.docspell-restserver = { @@ -156,12 +160,11 @@ in }; jvmArgs = mkOption { type = types.listOf types.str; - default = [ ]; - example = [ "-J-Xmx1G" ]; + default = []; + example = ["-J-Xmx1G"]; description = "The options passed to the executable for setting jvm arguments."; }; - app-name = mkOption { type = types.str; default = defaults.app-name; @@ -232,7 +235,7 @@ in }; bind = mkOption { - type = types.submodule ({ + type = types.submodule { options = { address = mkOption { type = types.str; @@ -245,13 +248,13 @@ in description = "The port to bind the REST server"; }; }; - }); + }; default = defaults.bind; description = "Address and port bind the rest server."; }; server-options = mkOption { - type = types.submodule ({ + type = types.submodule { options = { enable-http-2 = mkOption { type = types.bool; @@ -269,13 +272,13 @@ in description = "Timeout when waiting for the response."; }; }; - }); + }; default = defaults.server-options; description = "Tuning the http server"; }; logging = mkOption { - type = types.submodule ({ + type = types.submodule { options = { minimum-level = mkOption { type = types.str; @@ -293,13 +296,13 @@ in description = "Set of logger and their levels"; }; }; - }); + }; default = defaults.logging; description = "Settings for logging"; }; auth = mkOption { - type = types.submodule ({ + type = types.submodule { options = { server-secret = mkOption { type = types.str; @@ -320,7 +323,7 @@ in ''; }; remember-me = mkOption { - type = types.submodule ({ + type = types.submodule { options = { enabled = mkOption { type = types.bool; @@ -333,18 +336,18 @@ in description = "The time a remember-me token is valid."; }; }; - }); + }; default = defaults.auth.remember-me; description = "Settings for Remember-Me"; }; }; - }); + }; default = defaults.auth; description = "Authentication"; }; download-all = mkOption { - type = types.submodule ({ + type = types.submodule { options = { max-files = mkOption { type = types.int; @@ -357,7 +360,7 @@ in description = "The maximum (uncompressed) size of the zip file contents."; }; }; - }); + }; default = defaults.download-all; description = ""; }; @@ -387,7 +390,7 @@ in description = "How to retrieve the collective name."; }; provider = mkOption { - type = (types.submodule { + type = types.submodule { options = { provider-id = mkOption { type = types.str; @@ -436,18 +439,18 @@ in description = "The expected algorithm used to sign the token."; }; }; - }); + }; default = defaults.openid.provider; description = "The config for an OpenID Connect provider."; }; }; }); - default = [ ]; + default = []; description = "A list of OIDC provider configurations."; }; integration-endpoint = mkOption { - type = types.submodule ({ + type = types.submodule { options = { enabled = mkOption { type = types.bool; @@ -467,7 +470,7 @@ in ''; }; allowed-ips = mkOption { - type = types.submodule ({ + type = types.submodule { options = { enabled = mkOption { type = types.bool; @@ -480,7 +483,7 @@ in description = "The ips/ip patterns to allow"; }; }; - }); + }; default = defaults.integration-endpoint.allowed-ips; description = '' IPv4 addresses to allow access. An empty list, if enabled, @@ -491,7 +494,7 @@ in ''; }; http-basic = mkOption { - type = types.submodule ({ + type = types.submodule { options = { enabled = mkOption { type = types.bool; @@ -514,14 +517,14 @@ in description = "The password to check."; }; }; - }); + }; default = defaults.integration-endpoint.http-basic; description = '' Requests are expected to use http basic auth when uploading files. ''; }; http-header = mkOption { - type = types.submodule ({ + type = types.submodule { options = { enabled = mkOption { type = types.bool; @@ -539,7 +542,7 @@ in description = "The value of the header to check."; }; }; - }); + }; default = defaults.integration-endpoint.http-header; description = '' Requests are expected to supply some specific header when @@ -547,7 +550,7 @@ in ''; }; }; - }); + }; default = defaults.integration-endpoint; description = '' This endpoint allows to upload files to any collective. The @@ -566,7 +569,7 @@ in }; admin-endpoint = mkOption { - type = types.submodule ({ + type = types.submodule { options = { secret = mkOption { type = types.str; @@ -574,13 +577,13 @@ in description = "The secret used to call admin endpoints."; }; }; - }); + }; default = defaults.admin-endpoint; description = "An endpoint for administration tasks."; }; full-text-search = mkOption { - type = types.submodule ({ + type = types.submodule { options = { enabled = mkOption { type = types.bool; @@ -597,7 +600,7 @@ in description = "The backend to use, either solr or postgresql"; }; solr = mkOption { - type = types.submodule ({ + type = types.submodule { options = { url = mkOption { type = types.str; @@ -629,13 +632,13 @@ in description = "The default combiner for tokens. One of {AND, OR}."; }; }; - }); + }; default = defaults.full-text-search.solr; description = "Configuration for the SOLR backend."; }; postgresql = mkOption { - type = types.submodule ({ + type = types.submodule { options = { use-default-connection = mkOption { type = types.bool; @@ -643,7 +646,7 @@ in description = "Whether to use the primary db connection."; }; jdbc = mkOption { - type = types.submodule ({ + type = types.submodule { options = { url = mkOption { type = types.str; @@ -663,7 +666,7 @@ in description = "The password to connect to the database."; }; }; - }); + }; default = defaults.full-text-search.postgresql.jdbc; description = "Database connection settings"; }; @@ -683,18 +686,18 @@ in description = ""; }; }; - }); + }; default = defaults.full-text-search.postgresql; description = "PostgreSQL for fulltext search"; }; }; - }); + }; default = defaults.full-text-search; description = "Configuration for full-text search."; }; backend = mkOption { - type = types.submodule ({ + type = types.submodule { options = { mail-debug = mkOption { type = types.bool; @@ -707,7 +710,7 @@ in ''; }; jdbc = mkOption { - type = types.submodule ({ + type = types.submodule { options = { url = mkOption { type = types.str; @@ -734,12 +737,12 @@ in description = "The password to connect to the database."; }; }; - }); + }; default = defaults.backend.jdbc; description = "Database connection settings"; }; signup = mkOption { - type = types.submodule ({ + type = types.submodule { options = { mode = mkOption { type = types.str; @@ -772,12 +775,12 @@ in ''; }; }; - }); + }; default = defaults.backend.signup; description = "Registration settings"; }; files = mkOption { - type = types.submodule ({ + type = types.submodule { options = { chunk-size = mkOption { type = types.int; @@ -804,12 +807,12 @@ in ''; }; }; - }); + }; default = defaults.backend.files; description = "Settings for how files are stored."; }; addons = mkOption { - type = types.submodule ({ + type = types.submodule { options = { enabled = mkOption { type = types.bool; @@ -832,19 +835,19 @@ in description = "Url patterns to deny to install"; }; }; - }); + }; default = defaults.backend.addons; description = "Addon config"; }; }; - }); + }; default = defaults.backend; description = "Configuration for the backend"; }; extraConfig = mkOption { type = types.attrs; description = "Extra configuration for docspell server. Overwrites values in case of a conflict."; - default = { }; + default = {}; example = '' { files = { @@ -863,8 +866,6 @@ in ## implementation config = mkIf config.services.docspell-restserver.enable { - - nixpkgs.overlays = [ overlay ]; users.users."${user}" = mkIf (cfg.runAs == null) { name = user; isSystemUser = true; @@ -873,24 +874,20 @@ in description = "Docspell user"; group = user; }; - users.groups."${user}" = mkIf (cfg.runAs == null) { }; + users.groups."${user}" = mkIf (cfg.runAs == null) {}; - - systemd.services.docspell-restserver = - let - args = builtins.concatStringsSep " " cfg.jvmArgs; - cmd = "${pkgs.docspell-server}/bin/docspell-restserver ${args} -- ${configFile}"; - in - { - description = "Docspell Rest Server"; - after = [ "networking.target" ]; - wantedBy = [ "multi-user.target" ]; - path = [ pkgs.gawk ]; - preStart = '' + systemd.services.docspell-restserver = let + args = builtins.concatStringsSep " " cfg.jvmArgs; + cmd = "${pkgs.docspell-server}/bin/docspell-restserver ${args} -- ${configFile}"; + in { + description = "Docspell Rest Server"; + after = ["networking.target"]; + wantedBy = ["multi-user.target"]; + path = [pkgs.gawk]; + preStart = '' ''; - script = - "${pkgs.su}/bin/su -s ${pkgs.bash}/bin/sh ${user} -c \"${cmd}\""; - }; + script = "${pkgs.su}/bin/su -s ${pkgs.bash}/bin/sh ${user} -c \"${cmd}\""; + }; }; } diff --git a/nix/pkg.nix b/nix/pkg.nix new file mode 100644 index 00000000..1b5733ba --- /dev/null +++ b/nix/pkg.nix @@ -0,0 +1,57 @@ +{ + stdenv, + bash, + fetchzip, + jdk17, +}: let + version = "0.41.0"; + server = { + url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-restserver-${version}.zip"; + sha256 = "sha256-JFftIzI94UNLLh96I++qFsBZhOkquPIPhNhtS2Ov8wI="; + }; + joex = { + url = "https://github.com/eikek/docspell/releases/download/v${version}/docspell-joex-${version}.zip"; + sha256 = "sha256-flKWjEsMd2/XT3Bu6EjFgf3lCojvLbKFDEXemP1K+/8="; + }; +in { + docspell-server = stdenv.mkDerivation { + inherit version; + pname = "docspell-server"; + + src = fetchzip server; + buildInputs = [jdk17]; + buildPhase = "true"; + + installPhase = '' + mkdir -p $out/{bin,docspell-restserver-${version}} + cp -R * $out/docspell-restserver-${version}/ + cat > $out/bin/docspell-restserver <<-EOF + #!${bash}/bin/bash + $out/docspell-restserver-${version}/bin/docspell-restserver -java-home ${jdk17} "\$@" + EOF + chmod 755 $out/bin/docspell-restserver + ''; + }; + + docspell-joex = stdenv.mkDerivation rec { + inherit version; + + pname = "docspell-joex"; + + src = fetchzip joex; + + buildInputs = [jdk17]; + + buildPhase = "true"; + + installPhase = '' + mkdir -p $out/{bin,docspell-joex-${version}} + cp -R * $out/docspell-joex-${version}/ + cat > $out/bin/docspell-joex <<-EOF + #!${bash}/bin/bash + $out/docspell-joex-${version}/bin/docspell-joex -java-home ${jdk17} "\$@" + EOF + chmod 755 $out/bin/docspell-joex + ''; + }; +} diff --git a/nix/test-vm.nix b/nix/test-vm.nix new file mode 100644 index 00000000..673b26de --- /dev/null +++ b/nix/test-vm.nix @@ -0,0 +1,77 @@ +{ + config, + pkgs, + ... +}: let + full-text-search = { + enabled = true; + backend = "solr"; + solr.url = "http://localhost:8983/solr/docspell"; + }; + jdbc = { + url = "jdbc:postgresql://localhost:5432/docspell"; + user = "dev"; + password = "dev"; + }; +in { + services.dev-postgres = { + enable = true; + databases = ["docspell"]; + }; + services.dev-email.enable = true; + services.dev-solr = { + enable = true; + cores = ["docspell"]; + }; + + port-forward.dev-webmail = 8080; + port-forward.dev-solr = 8983; + + networking = { + hostName = "docspell-test-vm"; + firewall.allowedTCPPorts = [7880]; + }; + + virtualisation.memorySize = 6144; + + virtualisation.forwardPorts = [ + { + from = "host"; + host.port = 7881; + guest.port = 7880; + } + ]; + + services.docspell-restserver = { + enable = true; + bind.address = "0.0.0.0"; + backend = { + addons.enabled = true; + signup.mode = "open"; + inherit jdbc; + }; + integration-endpoint = { + enabled = true; + http-header = { + enabled = true; + header-value = "test123"; + }; + }; + admin-endpoint = { + secret = "admin123"; + }; + inherit full-text-search; + }; + + services.docspell-joex = { + enable = true; + bind.address = "0.0.0.0"; + inherit jdbc full-text-search; + addons = { + executor-config = { + runner = "nix-flake,trivial"; + nspawn.enabled = true; + }; + }; + }; +} diff --git a/project/build.nix b/project/build.nix index 0693a950..73f21840 100644 --- a/project/build.nix +++ b/project/build.nix @@ -1,23 +1,35 @@ let nixpkgs = builtins.fetchTarball { #url = "https://github.com/NixOS/nixpkgs/archive/92e990a8d6bc35f1089c76dd8ba68b78da90da59.tar.gz"; - url = "channel:nixos-23.05"; + url = "channel:nixos-23.05"; }; - pkgs = import nixpkgs { }; + pkgs = import nixpkgs {}; initScript = pkgs.writeScript "docspell-build-init" '' - export LD_LIBRARY_PATH= - ${pkgs.bash}/bin/bash -c "sbt -mem 4096 -java-home ${pkgs.openjdk17}/lib/openjdk" + export LD_LIBRARY_PATH= + ${pkgs.bash}/bin/bash -c "sbt -mem 4096 -java-home ${pkgs.openjdk17}/lib/openjdk" ''; -in with pkgs; +in + with pkgs; + buildFHSUserEnv { + name = "docspell-sbt"; + targetPkgs = pkgs: + with pkgs; [ + netcat + jdk17 + wget + which + dpkg + sbt + git + elmPackages.elm + ncurses + fakeroot + mc + zola + yarn -buildFHSUserEnv { - name = "docspell-sbt"; - targetPkgs = pkgs: with pkgs; [ - netcat jdk17 wget which dpkg sbt git elmPackages.elm ncurses fakeroot mc - zola yarn - - # haskells http client needs this (to download elm packages) - iana-etc - ]; - runScript = initScript; -} + # haskells http client needs this (to download elm packages) + iana-etc + ]; + runScript = initScript; + } diff --git a/website/shell.nix b/website/shell.nix index 8c531cfc..3811e5bc 100644 --- a/website/shell.nix +++ b/website/shell.nix @@ -4,17 +4,16 @@ let #url = "https://github.com/NixOS/nixpkgs/archive/e6badb26fc0d238fda2432c45b7dd4e782eb8200.tar.gz"; #url = "https://github.com/NixOs/nixpkgs/archive/0f316e4d72daed659233817ffe52bf08e081b5de.tar.gz"; #21.11 }; - pkgs = import nixpkgs { }; + pkgs = import nixpkgs {}; in -with pkgs; - - mkShell { - buildInputs = [ - zola - yarn - sbt - elmPackages.elm - nodejs - inotifyTools - ]; - } + with pkgs; + mkShell { + buildInputs = [ + zola + yarn + sbt + elmPackages.elm + nodejs + inotifyTools + ]; + } diff --git a/website/site/content/docs/install/nix.md b/website/site/content/docs/install/nix.md index 343b4e0c..296d6911 100644 --- a/website/site/content/docs/install/nix.md +++ b/website/site/content/docs/install/nix.md @@ -8,9 +8,9 @@ weight = 24 ## Install via Nix Docspell can be installed via the [nix](https://nixos.org/nix) package -manager, which is available for Linux and OSX. Docspell is currently not -part of the [nixpkgs collection](https://nixos.org/nixpkgs/), but you -can use the flake from this repository. +manager. Docspell is currently not part of the [nixpkgs +collection](https://nixos.org/nixpkgs/), but you can use the flake +from this repository. ## Upgrading @@ -31,7 +31,7 @@ There are the following modules provided: ```nix # flake.nix -inputs.docspell.url = "github:eikek/docspell?dir=nix/"; +inputs.docspell.url = "github:eikek/docspell"; # in modules imports = [ @@ -134,10 +134,33 @@ inputs.docspell.url = "github:eikek/docspell?dir=nix/"; ''; }; - networking = { hostName = "docspellexample"; firewall.allowedTCPPorts = [7880]; }; } ``` + +You can also look at `nix/test-vm.nix` for another example. + +## Without Flakes + +Of course, you can also use it without flakes. There is `nix/pkg.nix` +which contains the derivation of both packages, `docspell-server` and +`docspell-joex`. Just call it with your nixpkgs instance as usual: + +``` nix +let + repo = fetchurl { + url = "https://github.com/eikek/docspell"; + sha256 = "sha256-X2mM+Z5s8Xm1E6zrZ0wcRaivLEvqbk5Dn+GSXkZHdLM="; + }; + docspellPkgs = pkgs.callPackage (import "${repo}/nix/pkg.nix") {}; +in + # + # use docspellPkgs.docspell-server or docspellPkgs.docspell-joex + # +``` + +The same way import NixOS modules from +`nix/modules/{joex|server}.nix`. From 8bcc88ed658fa859cc37f86fc404d415f7aa2275 Mon Sep 17 00:00:00 2001 From: eikek Date: Sun, 10 Mar 2024 00:59:56 +0100 Subject: [PATCH 034/162] Document flake dev setup --- .gitignore | 1 + flake.lock | 6 +- flake.nix | 26 ++- nix/test-vm.nix | 7 + website/site/content/docs/dev/development.md | 186 ++++++++++++++---- website/site/content/docs/install/nix.md | 42 ++++ .../site/content/docs/install/quickstart.md | 8 +- 7 files changed, 231 insertions(+), 45 deletions(-) diff --git a/.gitignore b/.gitignore index 18234e40..a921d704 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ #artwork/*.png +.envrc target/ local/ node_modules/ diff --git a/flake.lock b/flake.lock index d2dfeb62..e2f18d87 100644 --- a/flake.lock +++ b/flake.lock @@ -6,11 +6,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1709936258, - "narHash": "sha256-ziYmDU/5v++oYSSwyMqEOr2V75rO+dMQA5aEdwH8amw=", + "lastModified": 1710025500, + "narHash": "sha256-niJf4WZ4GHQ+RaP+Qj4+6P/2SWN1Z4co36/ETvIg0Qg=", "owner": "eikek", "repo": "devshell-tools", - "rev": "59900a3731a88508257525754a704ad2f8a3278e", + "rev": "57d7d292571e291fe8213a1655529f739cfa174d", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index af1469a6..c2ae0178 100644 --- a/flake.nix +++ b/flake.nix @@ -15,10 +15,11 @@ }: flake-utils.lib.eachDefaultSystem (system: let pkgs = nixpkgs.legacyPackages.${system}; + sbt17 = pkgs.sbt.override { jre = pkgs.jdk17; }; devshellPkgs = with pkgs; [ jq scala-cli - sbt + sbt17 netcat jdk17 @@ -85,6 +86,7 @@ (builtins.attrValues devshell-tools.legacyPackages.${system}.cnt-scripts) ++ devshellPkgs; + DOCSPELL_ENV = "dev"; DEV_CONTAINER = "docsp-dev"; SBT_OPTS = "-Xmx2G -Xss4m"; }; @@ -93,6 +95,7 @@ (builtins.attrValues devshell-tools.legacyPackages.${system}.vm-scripts) ++ devshellPkgs; + DOCSPELL_ENV = "dev"; SBT_OPTS = "-Xmx2G -Xss4m"; DEV_VM = "dev-vm"; VM_SSH_PORT = "10022"; @@ -132,10 +135,16 @@ system = "x86_64-linux"; modules = [ { - services.dev-postgres.enable = true; + services.dev-postgres = { + enable = true; + databases = ["docspell"]; + }; services.dev-email.enable = true; services.dev-minio.enable = true; - services.dev-solr.enable = true; + services.dev-solr = { + enable = true; + cores = ["docspell"]; + }; } ]; }; @@ -143,10 +152,17 @@ system = "x86_64-linux"; modules = [ { - services.dev-postgres.enable = true; + services.dev-postgres = { + enable = true; + databases = ["docspell"]; + }; services.dev-email.enable = true; services.dev-minio.enable = true; - services.dev-solr.enable = true; + services.dev-solr = { + enable = true; + cores = ["docspell"]; + }; + port-forward.ssh = 10022; port-forward.dev-postgres = 6534; port-forward.dev-smtp = 10025; diff --git a/nix/test-vm.nix b/nix/test-vm.nix index 673b26de..91ae32f3 100644 --- a/nix/test-vm.nix +++ b/nix/test-vm.nix @@ -27,6 +27,13 @@ in { port-forward.dev-webmail = 8080; port-forward.dev-solr = 8983; + environment.systemPackages = with pkgs; [ + jq + htop + iotop + coreutils + ]; + networking = { hostName = "docspell-test-vm"; firewall.allowedTCPPorts = [7880]; diff --git a/website/site/content/docs/dev/development.md b/website/site/content/docs/dev/development.md index 3cc95543..4fb379ba 100644 --- a/website/site/content/docs/dev/development.md +++ b/website/site/content/docs/dev/development.md @@ -65,6 +65,159 @@ docspell.joex { } ``` +## Installing Nix + +It is recommended to install [nix](https://nixos.org/nix). You can use +the official installer or [this +one](https://github.com/DeterminateSystems/nix-installer), which will +enable Flakes by default. + +If not enabled, enable flakes by creating a config file: + +``` +mkdir -p ~/.config/nix #on Linux +echo "experimental-features = nix-command flakes" >> ~/.config/nix/nix.conf +``` + +With nix installed you can use the provided development environments +to get started quickly. + +# Nix Expressions + +The soure root contains a `flake.nix` file to install docspell via the +nix package manager and to integrate it into NixOS. + +The flake provides docspell packages of the latest release and NixOS +modules. It doesn't provide package builds from the current source +tree. + +## Dev Environments + +Additionally it provides devshells that can be used to create a +development environment for docspell. + +These two `devShell` definitions address two different setups: one +uses a NixOS container and the other a VM. Both provide the same set +of services that can be used with the local docspell instance: + +- postgresql database, with a database `docspell` and user `dev` +- solr with a core `docspell` +- email setup with smtp/imap and webmail +- minio with root user `minioadmin` + +If you are on NixOS the container is probably more convenient to use. +For other systems, the vm should be good. Drop into either shell by +running: + +``` bash +# drop into the environment setup for using a vm +nix develop .#dev-vm + +# drop into the environment setup for using a container +nix deveop .#docsp-dev +``` + +Once in such an environment, you can create the container or vm like +this: + +```bash +# dev-vm env +# - build the vm +vm-build + +# -run the vm +vm-run + +# - ssh into the vm +vm-ssh + +# docsp-dev container env +# - create the container +cnt-recreate + +# - login +cnt-login +``` + +You can use tab completion on `vm-` or `cnt-` and see other useful +commands. For instance it allows to recreate solr cores or check logs +of services on the container or vm. + +Then you can adjust your dev config file in `local/dev.conf` to +connect to the services on the vm or container. The container exposes +the default ports while the vm uses port-forwarding from the host to +the guest machine. The ports are define in `flake.nix`. For example, a +jdbc connection to postgres on the container can look like this: + +``` +jdbc.url = "jdbc:postgresql://docsp-dev:5432/docspelldev" +``` + +on the vm, it would be +``` +jdbc.url = "jdbc:postgresql://localhost:6543/docspelldev" +``` + +You can reach the webmail on both versions at port `8080`. In order to +enable sending mails between users, you need to login as some +arbitrary user so the underlying services can create the data +directories. In your dev docspell you can then connect to smtp on the +vm or container. Mails send from docspell can be checked in the +webmail. Conversely, you can send mails using webmail to any user and +have their mailbox scanned by docspell. + +### Direnv + +Using [direnv](https://direnv.net) entering the dev environment is +very convenient. Install this tool (it also has integration in several +IDEs and editors) and create a file `.envrc` in the source root: + +``` +use flake .# +``` + +The file `.envrc` is git-ignored, because are different ones possible. +Here `` refers to either `dev-cnt` or `dev-vm` - one of the +devshells defined in `flake.nix`. + +After allowing direnv to execute this file via `direnv allow` you will +be dropped into this environment whenever you enter the directory. It +will also preserve your shell, don't need to use bash. + +## Checks + +The command `nix flake check` would run all checks defined in the +flake. It will build both packages and runs a vm with docspell +installed (via NixOS modules) and check whether the services come up. + +## Test VM + +There is another VM defined in the flake that provides a full setup +for docspell. It contains docspell server and joex, a postgresql, a +solr and a email setup. The intention is to use it as an easy 'getting +started' approach with nix. + +Once it has started, you can connect to `localhost:7881` to reach +docspell. The webmail will be available at `localhost:8080`. + +You can run this vm with a single command: + +``` +nix run github:eikek/docspell#nixosConfigurations.test-vm.config.system.build.vm +``` + +It uses the same setup as the dev-vm, so you can drop into the +`.#dev-vm` development shell and use `vm-ssh` to connect to the +running test vm. + +Once connected to the machine, you can see the docspell config file via + +```bash +systemctl show docspell-joex.service | grep "ExecStart=" | sed 's/^ExecStart=.*path=\([^;]*\).*/\1/' | xargs tac | grep -m 1 . | awk '{print $NF}' | tr -d '"' | xargs jq '.' +# or replace "joex" with "restserver" +systemctl show docspell-restserver.service | grep "ExecStart=" | sed 's/^ExecStart=.*path=\([^;]*\).*/\1/' | xargs tac | grep -m 1 . | awk '{print $NF}' | tr -d '"' | xargs jq '.' +``` + # Developing Frontend The frontend is a SPA written in [Elm](https://elm-lang.org). The UI @@ -124,39 +277,6 @@ These tasks must not show any errors (it is checked by the CI). The warnings should also be fixed. -# Nix Expressions - -The directory `/nix` contains Nix Flake to install docspell via -the nix package manager and to integrate it into NixOS. - -Flake implements `checks` output which can be run with `nix flake check` -and it defines a development VM which can be used to interactively work -with docspell. - -To run the VM, issue: - -```bash -cd $PROJECT_ROOT/nix -nix run '.#nixosConfigurations.dev-vm.config.system.build.vm -``` - -To open docspell, wait for docspell-restserver service to report that -http listener is up and connect to `localhost:64080`. - -To ssh into the machine, run: - -```bash -ssh -o StrictHostKeyChecking=no \ - -o UserKnownHostsFile=/dev/null \ - -p 64022 root@localhost -``` - -Once connected to the machine, you can see the docspell config file via - -```bash -systemd-show docspell-joex.service | grep ExecStart | cut -d'=' -f2 | xargs cat | tail -n1 | awk '{print $NF}'| sed 's/.$//' | xargs cat | jq -``` - # Release The CI and making a release is done via github actions. The workflow diff --git a/website/site/content/docs/install/nix.md b/website/site/content/docs/install/nix.md index 296d6911..dce291d5 100644 --- a/website/site/content/docs/install/nix.md +++ b/website/site/content/docs/install/nix.md @@ -5,6 +5,34 @@ weight = 24 # Nix +Docspell is a flake, you need to enable flakes in order to make use of +it. You can also use the provided expressions without Flakes, which is +described below. + +## Try it out {try-it-out} + +You can try out the server and joex packages by running the following: + +``` +nix run github:eikek/docspell#docspell-server +nix run github:eikek/docspell#docspell-joex +``` + +While this works, it will be only a very basic setup. The database +defaults to a directory in `/tmp` and no fulltext search enabled. Then +for processing documents, some external tools are required which would +need to be present on yout system to make it work. + +A more elaborate setup with PostgreSQL and SOLR can be started using +the `test-vm`: + +``` +nix run github:eikek/docspell#nixosConfigurations.test-vm.config.system.build.vm +``` + +The vm contains all the required tools. After starting up, you can +find docspell at `http://localhost:7881`. + ## Install via Nix Docspell can be installed via the [nix](https://nixos.org/nix) package @@ -12,6 +40,16 @@ manager. Docspell is currently not part of the [nixpkgs collection](https://nixos.org/nixpkgs/), but you can use the flake from this repository. +You could install the server and joex by running the following: +``` +nix profile install github:eikek/docspell#docspell-server +nix profile install github:eikek/docspell#docspell-joex +``` + +This would install the packages on your system. If you use NixOS you +probably want to use the provided [NixOS modules](#nixos) instead. + + ## Upgrading Since [downgrading](@/docs/install/downgrading.md) is not supported, @@ -164,3 +202,7 @@ in The same way import NixOS modules from `nix/modules/{joex|server}.nix`. + +An alternative can be to use `builtins.getFlake` to fetch the flake +and get access to its output. But this requires to use a flake enabled +nix, which then defeats the idea of "not using flakes". diff --git a/website/site/content/docs/install/quickstart.md b/website/site/content/docs/install/quickstart.md index fa02b4e1..4aaefdb7 100644 --- a/website/site/content/docs/install/quickstart.md +++ b/website/site/content/docs/install/quickstart.md @@ -20,10 +20,10 @@ To get started, here are some quick links: applies to the `zip` and `deb` files. The files can be downloaded from the [release page](https://github.com/eikek/docspell/releases/latest). -- via the [nix package manager](@/docs/install/nix.md) and/or as a - [NixOS module](@/docs/install/nix.md#nixos) through a flake. - If you use nix/nixos, you know what to do. The linked page contains - some examples. +- via the [nix package manager](@/docs/install/nix.md#try-it-out) + and/or as a [NixOS module](@/docs/install/nix.md#nixos) through a + flake. If you use nix/nixos, you know what to do. The linked page + contains some examples. - [Unraid](https://www.unraid.net/): There are user provided [notes and unraid templates](https://github.com/vakilando/unraid-docker-templates) From f3f246d798f965276448ad580caa71b48790b587 Mon Sep 17 00:00:00 2001 From: eikek Date: Sun, 10 Mar 2024 10:22:36 +0100 Subject: [PATCH 035/162] Rename server -> restserver in nix setup While I'd like to rename it the other way around, it would be a much more breaking change. So for now, this way. --- flake.nix | 14 +++++++------- nix/docker.nix | 6 +++--- nix/modules/server.nix | 4 ++-- nix/pkg.nix | 5 +++-- website/site/content/docs/install/nix.md | 8 ++++---- 5 files changed, 19 insertions(+), 18 deletions(-) diff --git a/flake.nix b/flake.nix index c2ae0178..b8a8cdc0 100644 --- a/flake.nix +++ b/flake.nix @@ -33,31 +33,31 @@ ]; docspellPkgs = pkgs.callPackage (import ./nix/pkg.nix) {}; dockerAmd64 = pkgs.pkgsCross.gnu64.callPackage (import ./nix/docker.nix) { - inherit (docspellPkgs) docspell-server docspell-joex; + inherit (docspellPkgs) docspell-restserver docspell-joex; }; dockerArm64 = pkgs.pkgsCross.aarch64-multiplatform.callPackage (import ./nix/docker.nix) { - inherit (docspellPkgs) docspell-server docspell-joex; + inherit (docspellPkgs) docspell-restserver docspell-joex; }; in { formatter = pkgs.alejandra; packages = { - inherit (docspellPkgs) docspell-server docspell-joex; + inherit (docspellPkgs) docspell-restserver docspell-joex; }; legacyPackages = { docker = { amd64 = { - inherit (dockerAmd64) docspell-server docspell-joex; + inherit (dockerAmd64) docspell-restserver docspell-joex; }; arm64 = { - inherit (dockerArm64) docspell-server docspell-joex; + inherit (dockerArm64) docspell-restserver docspell-joex; }; }; }; checks = { - build-server = self.packages.${system}.docspell-server; + build-server = self.packages.${system}.docspell-restserver; build-joex = self.packages.${system}.docspell-joex; test = with import (nixpkgs + "/nixos/lib/testing-python.nix") @@ -117,7 +117,7 @@ overlays.default = final: prev: let docspellPkgs = final.callPackage (import ./nix/pkg.nix) {}; in { - inherit (docspellPkgs) docspell-server docspell-joex; + inherit (docspellPkgs) docspell-restserver docspell-joex; }; nixosConfigurations = { diff --git a/nix/docker.nix b/nix/docker.nix index d0e69596..29e9f870 100644 --- a/nix/docker.nix +++ b/nix/docker.nix @@ -9,7 +9,7 @@ tesseract4, python3Packages, unoconv, - docspell-server, + docspell-restserver, docspell-joex, }: let mkImage = { @@ -64,10 +64,10 @@ tag = "v${pkg.version}"; }; in { - docspell-server = mkImage { + docspell-restserver = mkImage { name = "docspell-restserver"; port = 7880; - pkg = docspell-server; + pkg = docspell-restserver; tools = []; }; docspell-joex = mkImage { diff --git a/nix/modules/server.nix b/nix/modules/server.nix index 925c2352..0943e42e 100644 --- a/nix/modules/server.nix +++ b/nix/modules/server.nix @@ -12,7 +12,7 @@ with lib; let if cfg.runAs == null then "docspell" else cfg.runAs; - configFile = pkgs.writeText "docspell-server.conf" '' + configFile = pkgs.writeText "docspell-restserver.conf" '' {"docspell": {"server": ${builtins.toJSON (lib.recursiveUpdate declared_config cfg.extraConfig)} }} @@ -878,7 +878,7 @@ in { systemd.services.docspell-restserver = let args = builtins.concatStringsSep " " cfg.jvmArgs; - cmd = "${pkgs.docspell-server}/bin/docspell-restserver ${args} -- ${configFile}"; + cmd = "${pkgs.docspell-restserver}/bin/docspell-restserver ${args} -- ${configFile}"; in { description = "Docspell Rest Server"; after = ["networking.target"]; diff --git a/nix/pkg.nix b/nix/pkg.nix index 1b5733ba..a37db9c2 100644 --- a/nix/pkg.nix +++ b/nix/pkg.nix @@ -14,9 +14,9 @@ sha256 = "sha256-flKWjEsMd2/XT3Bu6EjFgf3lCojvLbKFDEXemP1K+/8="; }; in { - docspell-server = stdenv.mkDerivation { + docspell-restserver = stdenv.mkDerivation { inherit version; - pname = "docspell-server"; + pname = "docspell-restserver"; src = fetchzip server; buildInputs = [jdk17]; @@ -30,6 +30,7 @@ in { $out/docspell-restserver-${version}/bin/docspell-restserver -java-home ${jdk17} "\$@" EOF chmod 755 $out/bin/docspell-restserver + ''; }; diff --git a/website/site/content/docs/install/nix.md b/website/site/content/docs/install/nix.md index dce291d5..be705a14 100644 --- a/website/site/content/docs/install/nix.md +++ b/website/site/content/docs/install/nix.md @@ -14,7 +14,7 @@ described below. You can try out the server and joex packages by running the following: ``` -nix run github:eikek/docspell#docspell-server +nix run github:eikek/docspell#docspell-restserver nix run github:eikek/docspell#docspell-joex ``` @@ -42,7 +42,7 @@ from this repository. You could install the server and joex by running the following: ``` -nix profile install github:eikek/docspell#docspell-server +nix profile install github:eikek/docspell#docspell-restserver nix profile install github:eikek/docspell#docspell-joex ``` @@ -184,7 +184,7 @@ You can also look at `nix/test-vm.nix` for another example. ## Without Flakes Of course, you can also use it without flakes. There is `nix/pkg.nix` -which contains the derivation of both packages, `docspell-server` and +which contains the derivation of both packages, `docspell-restserver` and `docspell-joex`. Just call it with your nixpkgs instance as usual: ``` nix @@ -196,7 +196,7 @@ let docspellPkgs = pkgs.callPackage (import "${repo}/nix/pkg.nix") {}; in # - # use docspellPkgs.docspell-server or docspellPkgs.docspell-joex + # use docspellPkgs.docspell-restserver or docspellPkgs.docspell-joex # ``` From 3aad3b7be452264774e816e90efece52d85ce5e9 Mon Sep 17 00:00:00 2001 From: eikek Date: Sun, 10 Mar 2024 15:36:40 +0100 Subject: [PATCH 036/162] Remove other now obsolete nix files --- .github/workflows/ci-docs.yml | 6 +--- .github/workflows/website.yml | 8 ++--- flake.nix | 1 + project/build.nix | 35 ------------------- website/README.md | 11 +++--- website/push-docs.sh | 2 +- website/shell.nix | 19 ---------- .../content/blog/2022-01-31_create_post.md | 10 +++--- 8 files changed, 16 insertions(+), 76 deletions(-) delete mode 100644 project/build.nix delete mode 100644 website/shell.nix diff --git a/.github/workflows/ci-docs.yml b/.github/workflows/ci-docs.yml index 2ae985e7..15de027f 100644 --- a/.github/workflows/ci-docs.yml +++ b/.github/workflows/ci-docs.yml @@ -17,9 +17,5 @@ jobs: with: elm-version: 0.19.1 - uses: cachix/install-nix-action@v26 - with: - nix_path: nixpkgs=channel:nixos-23.05 - - name: Print nixpkgs version - run: nix-instantiate --eval -E '(import {}).lib.version' - name: Build website (${{ env.DOCSPELL_VERSION }}) - run: nix-shell website/shell.nix --run "sbt make-website" + run: nix develop .#dev-cnt --command sbt make-website diff --git a/.github/workflows/website.yml b/.github/workflows/website.yml index 585b7ff7..375d7f67 100644 --- a/.github/workflows/website.yml +++ b/.github/workflows/website.yml @@ -16,13 +16,9 @@ jobs: with: elm-version: 0.19.1 - uses: cachix/install-nix-action@v26 - with: - nix_path: nixpkgs=channel:nixos-23.05 - - name: Print nixpkgs version - run: nix-instantiate --eval -E '(import {}).lib.version' - name: Build website (${{ env.DOCSPELL_VERSION }}) - run: nix-shell website/shell.nix --run "sbt make-website" + run: nix develop .#dev-cnt --command sbt make-website - name: Publish website (${{ env.DOCSPELL_VERSION }}) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: sbt publish-website + run: nix develop .#dev-cnt --command sbt publish-website diff --git a/flake.nix b/flake.nix index b8a8cdc0..4acb2d17 100644 --- a/flake.nix +++ b/flake.nix @@ -30,6 +30,7 @@ fakeroot zola yarn + inotifyTools ]; docspellPkgs = pkgs.callPackage (import ./nix/pkg.nix) {}; dockerAmd64 = pkgs.pkgsCross.gnu64.callPackage (import ./nix/docker.nix) { diff --git a/project/build.nix b/project/build.nix deleted file mode 100644 index 73f21840..00000000 --- a/project/build.nix +++ /dev/null @@ -1,35 +0,0 @@ -let - nixpkgs = builtins.fetchTarball { - #url = "https://github.com/NixOS/nixpkgs/archive/92e990a8d6bc35f1089c76dd8ba68b78da90da59.tar.gz"; - url = "channel:nixos-23.05"; - }; - pkgs = import nixpkgs {}; - initScript = pkgs.writeScript "docspell-build-init" '' - export LD_LIBRARY_PATH= - ${pkgs.bash}/bin/bash -c "sbt -mem 4096 -java-home ${pkgs.openjdk17}/lib/openjdk" - ''; -in - with pkgs; - buildFHSUserEnv { - name = "docspell-sbt"; - targetPkgs = pkgs: - with pkgs; [ - netcat - jdk17 - wget - which - dpkg - sbt - git - elmPackages.elm - ncurses - fakeroot - mc - zola - yarn - - # haskells http client needs this (to download elm packages) - iana-etc - ]; - runScript = initScript; - } diff --git a/website/README.md b/website/README.md index 66c63ed6..a3d2df97 100644 --- a/website/README.md +++ b/website/README.md @@ -15,19 +15,20 @@ Sbt is used to build the site. Install things by running `yarn install`. -Open terminal for each script below: +Use a dev [environment](https://docspell.org/docs/dev/development/) +and open terminal for each script below: 1. Starting the server ``` shell - nix-shell --run "cd site && zola serve" + cd site && zola serve ``` 2. Building the stylesheet ``` shell - nix-shell --run ./scripts/run-styles.sh + ./scripts/run-styles.sh ``` 3. Building some javascript files ``` shell - nix-shell --run ./scripts/run-elm.sh + ./scripts/run-elm.sh ``` Open browser at `localhost:1111`. @@ -40,7 +41,7 @@ be finally deployed. To see this, start sbt and change into the website project. ``` shell -nix-shell website/shell.nix --run sbt +$ sbt sbt> project website ``` diff --git a/website/push-docs.sh b/website/push-docs.sh index bc017433..d2c090a6 100755 --- a/website/push-docs.sh +++ b/website/push-docs.sh @@ -37,7 +37,7 @@ git clone git@github.com:eikek/docspell.git "$temp" cd "$temp" && git checkout --track origin/gh-pages && rm -rf "$temp"/* echo "Create new website from current working directory" -cd $cdir && nix-shell website/shell.nix --run 'sbt make-website' +cd $cdir && sbt make-website echo "Copying new site to target" cp -R "$cdir"/website/target/zola-site/* "$temp/" diff --git a/website/shell.nix b/website/shell.nix deleted file mode 100644 index 3811e5bc..00000000 --- a/website/shell.nix +++ /dev/null @@ -1,19 +0,0 @@ -let - nixpkgs = builtins.fetchTarball { - url = "channel:nixos-23.05"; - #url = "https://github.com/NixOS/nixpkgs/archive/e6badb26fc0d238fda2432c45b7dd4e782eb8200.tar.gz"; - #url = "https://github.com/NixOs/nixpkgs/archive/0f316e4d72daed659233817ffe52bf08e081b5de.tar.gz"; #21.11 - }; - pkgs = import nixpkgs {}; -in - with pkgs; - mkShell { - buildInputs = [ - zola - yarn - sbt - elmPackages.elm - nodejs - inotifyTools - ]; - } diff --git a/website/site/content/blog/2022-01-31_create_post.md b/website/site/content/blog/2022-01-31_create_post.md index 69bd8ab2..e330694c 100644 --- a/website/site/content/blog/2022-01-31_create_post.md +++ b/website/site/content/blog/2022-01-31_create_post.md @@ -63,11 +63,11 @@ you can look at the results while writing. If you want to see a live view of the page while editing, some tools are required. The easiest way to get these is to install -[nix](https://nixos.org/) and run `nix-shell website/shell.nix` to get -an environment with all these tools installed. Otherwise install the -programs mentioned in `website/shell.nix`, which are: -[yarn](https://yarnpkg.com/), [zola](https://www.getzola.org/), -[elm](https://elm-lang.org) and [sbt](https://scala-sbt.org). +[nix](https://nixos.org/) and run `nix develop .#dev-vm` to get an +environment with all these tools installed. Otherwise install the +programs: [yarn](https://yarnpkg.com/), +[zola](https://www.getzola.org/), [elm](https://elm-lang.org) and +[sbt](https://scala-sbt.org). Then clone the sources to your machine and build the complete site once, so that all assets and required stuff is present: From 8a41ed3fd382334ac4fa9509317ff0b566871f7e Mon Sep 17 00:00:00 2001 From: eikek Date: Sun, 10 Mar 2024 15:50:06 +0100 Subject: [PATCH 037/162] Github actions use nix --- .github/workflows/ci-docs.yml | 9 +++------ .github/workflows/ci.yml | 20 +++----------------- .github/workflows/docker-image.yml | 2 +- .github/workflows/release-nightly.yml | 24 ++++-------------------- .github/workflows/release.yml | 20 +++----------------- .github/workflows/website.yml | 11 ++++------- flake.nix | 22 ++++++++++++++-------- 7 files changed, 32 insertions(+), 76 deletions(-) diff --git a/.github/workflows/ci-docs.yml b/.github/workflows/ci-docs.yml index 15de027f..e2fa7bca 100644 --- a/.github/workflows/ci-docs.yml +++ b/.github/workflows/ci-docs.yml @@ -6,16 +6,13 @@ on: - "master" jobs: check-website: - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest steps: - uses: actions/checkout@v4.1.1 with: fetch-depth: 0 + - uses: cachix/install-nix-action@v26 - name: Set current version run: echo "DOCSPELL_VERSION=$(cat version.sbt | grep version | cut -d= -f2 | xargs)" >> $GITHUB_ENV - - uses: jorelali/setup-elm@v5 - with: - elm-version: 0.19.1 - - uses: cachix/install-nix-action@v26 - name: Build website (${{ env.DOCSPELL_VERSION }}) - run: nix develop .#dev-cnt --command sbt make-website + run: nix develop .#ci --command sbt make-website diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 873d0ab2..272a9654 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,32 +5,18 @@ on: - master jobs: ci-matrix: - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest strategy: fail-fast: false - matrix: - java: [ 'openjdk@1.17' ] steps: - uses: actions/checkout@v4.1.1 with: fetch-depth: 100 - - uses: jorelali/setup-elm@v5 - with: - elm-version: 0.19.1 - - uses: bahmutov/npm-install@v1 - with: - working-directory: modules/webapp - name: Fetch tags run: git fetch --depth=100 origin +refs/tags/*:refs/tags/* - - uses: olafurpg/setup-scala@v14 - with: - java-version: ${{ matrix.java }} - # - name: Coursier cache - # uses: coursier/cache-action@v6 + - uses: cachix/install-nix-action@v26 - name: sbt ci ${{ github.ref }} - run: sbt ci - env: - SBT_OPTS: "-Xmx2G -Xss4m" + run: nix develop .#ci --command sbt ci ci: runs-on: ubuntu-22.04 needs: [ci-matrix] diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 997e0972..77e2a3a0 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -4,7 +4,7 @@ on: types: [ published ] jobs: docker-images: - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest steps: - uses: actions/checkout@v4.1.1 with: diff --git a/.github/workflows/release-nightly.yml b/.github/workflows/release-nightly.yml index fa371efa..ec18ef90 100644 --- a/.github/workflows/release-nightly.yml +++ b/.github/workflows/release-nightly.yml @@ -5,36 +5,20 @@ on: - "master" jobs: release-nightly: - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest strategy: fail-fast: true - matrix: - java: [ 'openjdk@1.17' ] steps: - uses: actions/checkout@v4.1.1 with: fetch-depth: 0 - - uses: olafurpg/setup-scala@v14 - with: - java-version: ${{ matrix.java }} - - uses: jorelali/setup-elm@v5 - with: - elm-version: 0.19.1 - - uses: bahmutov/npm-install@v1 - with: - working-directory: modules/webapp - # - name: Coursier cache - # uses: coursier/cache-action@v6 + - uses: cachix/install-nix-action@v26 - name: Set current version run: echo "DOCSPELL_VERSION=$(cat version.sbt | grep version | cut -d= -f2 | xargs)" >> $GITHUB_ENV - name: sbt ci ${{ github.ref }} - run: sbt ci - env: - SBT_OPTS: "-Xmx2G -Xss4m" + run: nix develop .#ci --command sbt ci - name: sbt make-pkg (${{ env.DOCSPELL_VERSION }}) - run: sbt make-pkg - env: - SBT_OPTS: "-Xmx2G -Xss4m" + run: nix develop .#ci --command sbt make-pkg - uses: "marvinpinto/action-automatic-releases@latest" with: repo_token: "${{ secrets.GITHUB_TOKEN }}" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 49d33cb9..9a55c2f2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -5,32 +5,18 @@ on: - 'v*' jobs: release: - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest strategy: fail-fast: true - matrix: - java: [ 'openjdk@1.17' ] steps: - uses: actions/checkout@v4.1.1 with: fetch-depth: 0 - - uses: olafurpg/setup-scala@v14 - with: - java-version: ${{ matrix.java }} - - uses: jorelali/setup-elm@v5 - with: - elm-version: 0.19.1 - - uses: bahmutov/npm-install@v1 - with: - working-directory: modules/webapp - # - name: Coursier cache - # uses: coursier/cache-action@v6 + - uses: cachix/install-nix-action@v26 - name: Set current version run: echo "DOCSPELL_VERSION=$(cat version.sbt | grep version | cut -d= -f2 | xargs)" >> $GITHUB_ENV - name: sbt make-pkg (${{ env.DOCSPELL_VERSION }}) - run: sbt make-pkg - env: - SBT_OPTS: "-Xmx2G -Xss4m" + run: nix develop .#ci --command sbt make-pkg - uses: meeDamian/github-release@2.0 with: token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/website.yml b/.github/workflows/website.yml index 375d7f67..fa02f578 100644 --- a/.github/workflows/website.yml +++ b/.github/workflows/website.yml @@ -5,20 +5,17 @@ on: - "current-docs" jobs: publish-website: - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest steps: - uses: actions/checkout@v4.1.1 with: fetch-depth: 0 + - uses: cachix/install-nix-action@v26 - name: Set current version run: echo "DOCSPELL_VERSION=$(cat version.sbt | grep version | cut -d= -f2 | xargs)" >> $GITHUB_ENV - - uses: jorelali/setup-elm@v5 - with: - elm-version: 0.19.1 - - uses: cachix/install-nix-action@v26 - name: Build website (${{ env.DOCSPELL_VERSION }}) - run: nix develop .#dev-cnt --command sbt make-website + run: nix develop .#ci --command sbt make-website - name: Publish website (${{ env.DOCSPELL_VERSION }}) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: nix develop .#dev-cnt --command sbt publish-website + run: nix develop .#ci --command sbt publish-website diff --git a/flake.nix b/flake.nix index 4acb2d17..513af86f 100644 --- a/flake.nix +++ b/flake.nix @@ -16,22 +16,24 @@ flake-utils.lib.eachDefaultSystem (system: let pkgs = nixpkgs.legacyPackages.${system}; sbt17 = pkgs.sbt.override { jre = pkgs.jdk17; }; - devshellPkgs = with pkgs; [ - jq - scala-cli + ciPkgs = with pkgs; [ sbt17 - - netcat jdk17 - wget - which dpkg elmPackages.elm fakeroot zola yarn - inotifyTools + nodejs ]; + devshellPkgs = ciPkgs ++ (with pkgs; [ + jq + scala-cli + netcat + wget + which + inotifyTools + ]); docspellPkgs = pkgs.callPackage (import ./nix/pkg.nix) {}; dockerAmd64 = pkgs.pkgsCross.gnu64.callPackage (import ./nix/docker.nix) { inherit (docspellPkgs) docspell-restserver docspell-joex; @@ -101,6 +103,10 @@ DEV_VM = "dev-vm"; VM_SSH_PORT = "10022"; }; + ci = pkgs.mkShellNoCC { + buildInputs = ciPkgs; + SBT_OPTS = "-Xmx2G -Xss4m"; + }; }; }) // { From ba8435c7dcfdff1916f1523ce0617767a4837cb3 Mon Sep 17 00:00:00 2001 From: eikek Date: Sun, 10 Mar 2024 16:44:31 +0100 Subject: [PATCH 038/162] Disable strict external link checking This is so brittle, only works sometimes. --- website/site/config.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/website/site/config.toml b/website/site/config.toml index c8df8075..3c513b60 100644 --- a/website/site/config.toml +++ b/website/site/config.toml @@ -20,6 +20,7 @@ highlight_themes_css = [ ] [link_checker] +external_level = "warn" skip_prefixes = [ "http://localhost", "https://docs.github.com", # doesn't allow checking anymore From 7b53f3699f89bcc0df6290481acaf192f067be0c Mon Sep 17 00:00:00 2001 From: eikek Date: Sun, 10 Mar 2024 19:53:36 +0100 Subject: [PATCH 039/162] Update redocly setup --- build.sbt | 12 ++++++++++-- flake.nix | 1 + modules/joexapi/src/main/resources/joex-openapi.yml | 2 ++ .../restapi/src/main/resources/docspell-openapi.yml | 2 ++ project/plugins.sbt | 2 +- project/redocly.yml | 2 ++ 6 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 project/redocly.yml diff --git a/build.sbt b/build.sbt index 913d3e1d..e91909d6 100644 --- a/build.sbt +++ b/build.sbt @@ -677,7 +677,11 @@ val restapi = project openapiTargetLanguage := Language.Scala, openapiPackage := Pkg("docspell.restapi.model"), openapiSpec := (Compile / resourceDirectory).value / "docspell-openapi.yml", - openapiStaticGen := OpenApiDocGenerator.Redoc + openapiStaticGen := OpenApiDocGenerator.Redoc, + openapiRedoclyCmd := Seq("redocly-cli"), + openapiRedoclyConfig := Some( + (LocalRootProject / baseDirectory).value / "project" / "redocly.yml" + ) ) .dependsOn(common, query.jvm, notificationApi, jsonminiq, addonlib) @@ -697,7 +701,11 @@ val joexapi = project openapiTargetLanguage := Language.Scala, openapiPackage := Pkg("docspell.joexapi.model"), openapiSpec := (Compile / resourceDirectory).value / "joex-openapi.yml", - openapiStaticGen := OpenApiDocGenerator.Redoc + openapiStaticGen := OpenApiDocGenerator.Redoc, + openapiRedoclyCmd := Seq("redocly-cli"), + openapiRedoclyConfig := Some( + (LocalRootProject / baseDirectory).value / "project" / "redocly.yml" + ) ) .dependsOn(common, loggingScribe, addonlib) diff --git a/flake.nix b/flake.nix index 513af86f..d13543d5 100644 --- a/flake.nix +++ b/flake.nix @@ -25,6 +25,7 @@ zola yarn nodejs + redocly-cli ]; devshellPkgs = ciPkgs ++ (with pkgs; [ jq diff --git a/modules/joexapi/src/main/resources/joex-openapi.yml b/modules/joexapi/src/main/resources/joex-openapi.yml index e840a918..b6e05c7e 100644 --- a/modules/joexapi/src/main/resources/joex-openapi.yml +++ b/modules/joexapi/src/main/resources/joex-openapi.yml @@ -18,6 +18,8 @@ servers: - url: /api/v1 description: Current host +security: [] + paths: /api/info/version: get: diff --git a/modules/restapi/src/main/resources/docspell-openapi.yml b/modules/restapi/src/main/resources/docspell-openapi.yml index 39366ab8..added30a 100644 --- a/modules/restapi/src/main/resources/docspell-openapi.yml +++ b/modules/restapi/src/main/resources/docspell-openapi.yml @@ -27,6 +27,8 @@ servers: - url: /api/v1 description: Current host +security: [] + paths: /api/info/version: get: diff --git a/project/plugins.sbt b/project/plugins.sbt index d49c952b..6259bd9d 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,6 +1,6 @@ addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.12.0") addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.11.0") -addSbtPlugin("com.github.eikek" % "sbt-openapi-schema" % "0.11.0") +addSbtPlugin("com.github.eikek" % "sbt-openapi-schema" % "0.13.1") addSbtPlugin("com.github.sbt" % "sbt-pgp" % "2.2.1") addSbtPlugin("com.github.sbt" % "sbt-release" % "1.4.0") addSbtPlugin("com.github.sbt" % "sbt-git" % "2.0.1") diff --git a/project/redocly.yml b/project/redocly.yml new file mode 100644 index 00000000..c2373f57 --- /dev/null +++ b/project/redocly.yml @@ -0,0 +1,2 @@ +extends: + - recommended From 7c123db1a3e7635df4fcf92951f977ce9ffe3496 Mon Sep 17 00:00:00 2001 From: eikek Date: Sun, 10 Mar 2024 20:13:41 +0100 Subject: [PATCH 040/162] Use tailwindcss standalone cli --- flake.nix | 1 + modules/webapp/package-lock.json | 3639 ++++------------------ modules/webapp/package.json | 9 +- modules/webapp/src/main/elm/Messages.elm | 6 +- modules/webapp/src/main/styles/index.css | 2 +- modules/webapp/tailwind.config.js | 1 - project/StylesPlugin.scala | 39 +- project/dev-ui-build.sh | 4 +- 8 files changed, 567 insertions(+), 3134 deletions(-) diff --git a/flake.nix b/flake.nix index d13543d5..909a8451 100644 --- a/flake.nix +++ b/flake.nix @@ -26,6 +26,7 @@ yarn nodejs redocly-cli + tailwindcss ]; devshellPkgs = ciPkgs ++ (with pkgs; [ jq diff --git a/modules/webapp/package-lock.json b/modules/webapp/package-lock.json index bfd50c04..0f33abd6 100644 --- a/modules/webapp/package-lock.json +++ b/modules/webapp/package-lock.json @@ -1,7 +1,7 @@ { "name": "docspell-css", "version": "1.0.0", - "lockfileVersion": 2, + "lockfileVersion": 3, "requires": true, "packages": { "": { @@ -10,14 +10,7 @@ "devDependencies": { "@fortawesome/fontawesome-free": "^6.0.0", "@tailwindcss/forms": "^0.5.0", - "autoprefixer": "^10.4.2", - "cssnano": "^6.0.0", - "flag-icon-css": "^3.5.0", - "postcss": "^8.4.7", - "postcss-cli": "^11.0.0", - "postcss-import": "^16.0.0", - "postcss-purgecss": "^5.0.0", - "tailwindcss": "^3.0.23" + "flag-icons": "^7.2.0" } }, "node_modules/@alloc/quick-lru": { @@ -25,6 +18,7 @@ "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", "dev": true, + "peer": true, "engines": { "node": ">=10" }, @@ -42,34 +36,55 @@ "node": ">=6" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, + "peer": true, "dependencies": { - "@jridgewell/set-array": "^1.0.1", + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "peer": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, + "peer": true, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, + "peer": true, "engines": { "node": ">=6.0.0" } @@ -78,29 +93,26 @@ "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true + "dev": true, + "peer": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, + "peer": true, "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, + "peer": true, "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -114,6 +126,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, + "peer": true, "engines": { "node": ">= 8" } @@ -123,6 +136,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "peer": true, "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -131,16 +145,15 @@ "node": ">= 8" } }, - "node_modules/@sindresorhus/merge-streams": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-1.0.0.tgz", - "integrity": "sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw==", + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "dev": true, + "optional": true, + "peer": true, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=14" } }, "node_modules/@tailwindcss/forms": { @@ -155,34 +168,27 @@ "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1" } }, - "node_modules/@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", - "dev": true, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, + "peer": true, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, + "peer": true, "engines": { - "node": ">=8" + "node": ">=12" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" @@ -192,13 +198,15 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true + "dev": true, + "peer": true }, "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, + "peer": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -211,71 +219,32 @@ "version": "5.0.2", "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "dev": true - }, - "node_modules/autoprefixer": { - "version": "10.4.18", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.18.tgz", - "integrity": "sha512-1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "browserslist": "^4.23.0", - "caniuse-lite": "^1.0.30001591", - "fraction.js": "^4.3.7", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } + "peer": true }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "dev": true, + "peer": true }, "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true, + "peer": true, "engines": { "node": ">=8" } }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true - }, "node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "peer": true, "dependencies": { "balanced-match": "^1.0.0" } @@ -285,6 +254,7 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, + "peer": true, "dependencies": { "fill-range": "^7.0.1" }, @@ -292,90 +262,22 @@ "node": ">=8" } }, - "node_modules/browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, "node_modules/camelcase-css": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", "dev": true, + "peer": true, "engines": { "node": ">= 6" } }, - "node_modules/caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "dev": true, - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001596", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001596.tgz", - "integrity": "sha512-zpkZ+kEr6We7w63ORkoJ2pOfBwBkY/bJrG/UZ90qNb45Isblu8wzDgevEOrRL1r9dWayHjYiiyCMEXPn4DweGQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], + "peer": true, "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -388,19 +290,24 @@ "engines": { "node": ">= 8.10.0" }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, "optionalDependencies": { "fsevents": "~2.3.2" } }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "peer": true, "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" } }, "node_modules/color-convert": { @@ -408,6 +315,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -419,80 +327,32 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/colord": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", - "dev": true + "dev": true, + "peer": true }, "node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/css-declaration-sorter": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.1.1.tgz", - "integrity": "sha512-dZ3bVTEEc1vxr3Bek9vGwfB5Z6ESPULhcRvO472mfjVnj8jRcTnKO8/JTczlvxM10Myb+wBM++1MtdO76eWcaQ==", - "dev": true, - "engines": { - "node": "^14 || ^16 || >=18" - }, - "peerDependencies": { - "postcss": "^8.0.9" - } - }, - "node_modules/css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-tree": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", - "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", - "dev": true, - "dependencies": { - "mdn-data": "2.0.30", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" - } - }, - "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", "dev": true, + "peer": true, "engines": { "node": ">= 6" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "peer": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, - "funding": { - "url": "https://github.com/sponsors/fb55" + "engines": { + "node": ">= 8" } }, "node_modules/cssesc": { @@ -500,6 +360,7 @@ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true, + "peer": true, "bin": { "cssesc": "bin/cssesc" }, @@ -507,241 +368,40 @@ "node": ">=4" } }, - "node_modules/cssnano": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.1.0.tgz", - "integrity": "sha512-e2v4w/t3OFM6HTuSweI4RSdABaqgVgHlJp5FZrQsopHnKKHLFIvK2D3C4kHWeFIycN/1L1J5VIrg5KlDzn3r/g==", - "dev": true, - "dependencies": { - "cssnano-preset-default": "^6.1.0", - "lilconfig": "^3.1.1" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/cssnano" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/cssnano-preset-default": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.0.tgz", - "integrity": "sha512-4DUXZoDj+PI3fRl3MqMjl9DwLGjcsFP4qt+92nLUcN1RGfw2TY+GwNoG2B38Usu1BrcTs8j9pxNfSusmvtSjfg==", - "dev": true, - "dependencies": { - "browserslist": "^4.23.0", - "css-declaration-sorter": "^7.1.1", - "cssnano-utils": "^4.0.2", - "postcss-calc": "^9.0.1", - "postcss-colormin": "^6.1.0", - "postcss-convert-values": "^6.1.0", - "postcss-discard-comments": "^6.0.2", - "postcss-discard-duplicates": "^6.0.3", - "postcss-discard-empty": "^6.0.3", - "postcss-discard-overridden": "^6.0.2", - "postcss-merge-longhand": "^6.0.4", - "postcss-merge-rules": "^6.1.0", - "postcss-minify-font-values": "^6.0.3", - "postcss-minify-gradients": "^6.0.3", - "postcss-minify-params": "^6.1.0", - "postcss-minify-selectors": "^6.0.3", - "postcss-normalize-charset": "^6.0.2", - "postcss-normalize-display-values": "^6.0.2", - "postcss-normalize-positions": "^6.0.2", - "postcss-normalize-repeat-style": "^6.0.2", - "postcss-normalize-string": "^6.0.2", - "postcss-normalize-timing-functions": "^6.0.2", - "postcss-normalize-unicode": "^6.1.0", - "postcss-normalize-url": "^6.0.2", - "postcss-normalize-whitespace": "^6.0.2", - "postcss-ordered-values": "^6.0.2", - "postcss-reduce-initial": "^6.1.0", - "postcss-reduce-transforms": "^6.0.2", - "postcss-svgo": "^6.0.3", - "postcss-unique-selectors": "^6.0.3" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/cssnano-utils": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.2.tgz", - "integrity": "sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==", - "dev": true, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/cssnano/node_modules/lilconfig": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", - "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/csso": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", - "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", - "dev": true, - "dependencies": { - "css-tree": "~2.2.0" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/csso/node_modules/css-tree": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", - "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", - "dev": true, - "dependencies": { - "mdn-data": "2.0.28", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/csso/node_modules/mdn-data": { - "version": "2.0.28", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", - "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", - "dev": true - }, - "node_modules/dependency-graph": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", - "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, "node_modules/didyoumean": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true + "dev": true, + "peer": true }, "node_modules/dlv": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true - }, - "node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", "dev": true, - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } + "peer": true }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dev": true, - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", - "dev": true, - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.4.699", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.699.tgz", - "integrity": "sha512-I7q3BbQi6e4tJJN5CRcyvxhK0iJb34TV8eJQcgh+fR2fQ8miMgZcEInckCo1U9exDHbfz7DLDnFn8oqH/VcRKw==", - "dev": true + "peer": true }, "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true, - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } + "peer": true }, "node_modules/fast-glob": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, + "peer": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -753,11 +413,25 @@ "node": ">=8.6.0" } }, - "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "peer": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "peer": true, "dependencies": { "reusify": "^1.0.4" } @@ -767,6 +441,7 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, + "peer": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -774,186 +449,109 @@ "node": ">=8" } }, - "node_modules/flag-icon-css": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/flag-icon-css/-/flag-icon-css-3.5.0.tgz", - "integrity": "sha512-pgJnJLrtb0tcDgU1fzGaQXmR8h++nXvILJ+r5SmOXaaL/2pocunQo2a8TAXhjQnBpRLPtZ1KCz/TYpqeNuE2ew==", - "deprecated": "The project has been renamed to flag-icons", + "node_modules/flag-icons": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/flag-icons/-/flag-icons-7.2.0.tgz", + "integrity": "sha512-0ZQ5gzCoCBb6A6QQS59DUazZWxs9za8olMXnuYbvtUbBfM45+/CQm+i2lvn6aDct6SKyAe6MUFQLgYk7kn49+A==", "dev": true }, - "node_modules/fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", "dev": true, + "peer": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, "engines": { - "node": "*" + "node": ">=14" }, "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/fs-extra": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", - "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, "optional": true, "os": [ "darwin" ], + "peer": true, "engines": { "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-stdin": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", - "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", - "dev": true, - "engines": { - "node": ">=12" - }, + "peer": true, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", "dev": true, + "peer": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=12" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "peer": true, "dependencies": { - "is-glob": "^4.0.1" + "is-glob": "^4.0.3" }, "engines": { - "node": ">= 6" + "node": ">=10.13.0" } }, - "node_modules/globby": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.0.tgz", - "integrity": "sha512-/1WM/LNHRAOH9lZta77uGbq0dAEQM+XjNesWwhlERDVenqothRbnzTrL3/LrIoEPPjeUHC3vrS6TwoyxeHs7MQ==", + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, + "peer": true, "dependencies": { - "@sindresorhus/merge-streams": "^1.0.0", - "fast-glob": "^3.3.2", - "ignore": "^5.2.4", - "path-type": "^5.0.0", - "slash": "^5.1.0", - "unicorn-magic": "^0.1.0" + "function-bind": "^1.1.2" }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.4" } }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/ignore": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", - "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, + "peer": true, "dependencies": { "binary-extensions": "^2.0.0" }, @@ -962,12 +560,13 @@ } }, "node_modules/is-core-module": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", - "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, + "peer": true, "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -976,8 +575,9 @@ "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -987,6 +587,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -996,6 +597,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "peer": true, "dependencies": { "is-extglob": "^2.1.1" }, @@ -1008,36 +610,53 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "peer": true, "engines": { "node": ">=0.12.0" } }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "peer": true + }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dev": true, + "peer": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/jiti": { "version": "1.21.0", "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", "dev": true, + "peer": true, "bin": { "jiti": "bin/jiti.js" } }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, "node_modules/lilconfig": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", "dev": true, + "peer": true, "engines": { "node": ">=10" } @@ -1046,31 +665,25 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true + "dev": true, + "peer": true }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", - "dev": true - }, - "node_modules/mdn-data": { - "version": "2.0.30", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", - "dev": true + "node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "dev": true, + "peer": true, + "engines": { + "node": "14 || >=16.14" + } }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, + "peer": true, "engines": { "node": ">= 8" } @@ -1080,6 +693,7 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, + "peer": true, "dependencies": { "braces": "^3.0.2", "picomatch": "^2.3.1" @@ -1089,24 +703,38 @@ } }, "node_modules/mini-svg-data-uri": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.3.tgz", - "integrity": "sha512-gSfqpMRC8IxghvMcxzzmMnWpXAChSA+vy4cia33RgerMS8Fex95akUyQZPbxJJmeBGiGmK7n/1OpUX8ksRjIdA==", + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", + "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==", "dev": true, "bin": { "mini-svg-data-uri": "cli.js" } }, "node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, + "peer": true, "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=16 || 14 >=14.17" } }, "node_modules/mz": { @@ -1114,6 +742,7 @@ "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", "dev": true, + "peer": true, "dependencies": { "any-promise": "^1.0.0", "object-assign": "^4.0.1", @@ -1131,6 +760,7 @@ "url": "https://github.com/sponsors/ai" } ], + "peer": true, "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -1138,47 +768,22 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true - }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, + "peer": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -1188,57 +793,58 @@ "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", "dev": true, + "peer": true, "engines": { "node": ">= 6" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, + "peer": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-type": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", - "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", "dev": true, + "peer": true + }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dev": true, + "peer": true, + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, "engines": { - "node": ">=12" + "node": ">=16 || 14 >=14.17" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "dev": true, + "peer": true }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "peer": true, "engines": { "node": ">=8.6" }, @@ -1249,17 +855,19 @@ "node_modules/pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", "dev": true, + "peer": true, "engines": { "node": ">=0.10.0" } }, "node_modules/pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", "dev": true, + "peer": true, "engines": { "node": ">= 6" } @@ -1283,6 +891,7 @@ "url": "https://github.com/sponsors/ai" } ], + "peer": true, "dependencies": { "nanoid": "^3.3.7", "picocolors": "^1.0.0", @@ -1292,189 +901,19 @@ "node": "^10 || ^12 || >=14" } }, - "node_modules/postcss-calc": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz", - "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.11", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.2" - } - }, - "node_modules/postcss-cli": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-11.0.0.tgz", - "integrity": "sha512-xMITAI7M0u1yolVcXJ9XTZiO9aO49mcoKQy6pCDFdMh9kGqhzLVpWxeD/32M/QBmkhcGypZFFOLNLmIW4Pg4RA==", - "dev": true, - "dependencies": { - "chokidar": "^3.3.0", - "dependency-graph": "^0.11.0", - "fs-extra": "^11.0.0", - "get-stdin": "^9.0.0", - "globby": "^14.0.0", - "picocolors": "^1.0.0", - "postcss-load-config": "^5.0.0", - "postcss-reporter": "^7.0.0", - "pretty-hrtime": "^1.0.3", - "read-cache": "^1.0.0", - "slash": "^5.0.0", - "yargs": "^17.0.0" - }, - "bin": { - "postcss": "index.js" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-cli/node_modules/lilconfig": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", - "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/postcss-cli/node_modules/postcss-load-config": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-5.0.2.tgz", - "integrity": "sha512-Q8QR3FYbqOKa0bnC1UQ2bFq9/ulHX5Bi34muzitMr8aDtUelO5xKeJEYC/5smE0jNE9zdB/NBnOwXKexELbRlw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "lilconfig": "^3.0.0", - "yaml": "^2.3.4" - }, - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "jiti": ">=1.21.0", - "postcss": ">=8.0.9" - }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - }, - "postcss": { - "optional": true - } - } - }, - "node_modules/postcss-colormin": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.1.0.tgz", - "integrity": "sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==", - "dev": true, - "dependencies": { - "browserslist": "^4.23.0", - "caniuse-api": "^3.0.0", - "colord": "^2.9.3", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-convert-values": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz", - "integrity": "sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==", - "dev": true, - "dependencies": { - "browserslist": "^4.23.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-discard-comments": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz", - "integrity": "sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==", - "dev": true, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-discard-duplicates": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz", - "integrity": "sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==", - "dev": true, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-discard-empty": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz", - "integrity": "sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==", - "dev": true, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-discard-overridden": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz", - "integrity": "sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==", - "dev": true, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, "node_modules/postcss-import": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-16.0.1.tgz", - "integrity": "sha512-i2Pci0310NaLHr/5JUFSw1j/8hf1CzwMY13g6ZDxgOavmRHQi2ba3PmUHoihO+sjaum+KmCNzskNsw7JDrg03g==", + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", "dev": true, + "peer": true, "dependencies": { "postcss-value-parser": "^4.0.0", "read-cache": "^1.0.0", "resolve": "^1.1.7" }, "engines": { - "node": ">=18.0.0" + "node": ">=14.0.0" }, "peerDependencies": { "postcss": "^8.0.0" @@ -1485,6 +924,7 @@ "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", "dev": true, + "peer": true, "dependencies": { "camelcase-css": "^2.0.1" }, @@ -1500,21 +940,28 @@ } }, "node_modules/postcss-load-config": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", - "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "peer": true, "dependencies": { - "lilconfig": "^2.0.5", - "yaml": "^2.1.1" + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" }, "engines": { "node": ">= 14" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, "peerDependencies": { "postcss": ">=8.0.9", "ts-node": ">=9.0.0" @@ -1528,102 +975,17 @@ } } }, - "node_modules/postcss-merge-longhand": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.4.tgz", - "integrity": "sha512-vAfWGcxUUGlFiPM3nDMZA+/Yo9sbpc3JNkcYZez8FfJDv41Dh7tAgA3QGVTocaHCZZL6aXPXPOaBMJsjujodsA==", + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", + "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0", - "stylehacks": "^6.1.0" - }, + "peer": true, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": ">=14" }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-merge-rules": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.1.0.tgz", - "integrity": "sha512-lER+W3Gr6XOvxOYk1Vi/6UsAgKMg6MDBthmvbNqi2XxAk/r9XfhdYZSigfWjuWWn3zYw2wLelvtM8XuAEFqRkA==", - "dev": true, - "dependencies": { - "browserslist": "^4.23.0", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^4.0.2", - "postcss-selector-parser": "^6.0.15" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-minify-font-values": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.0.3.tgz", - "integrity": "sha512-SmAeTA1We5rMnN3F8X9YBNo9bj9xB4KyDHnaNJnBfQIPi+60fNiR9OTRnIaMqkYzAQX0vObIw4Pn0vuKEOettg==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-minify-gradients": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz", - "integrity": "sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==", - "dev": true, - "dependencies": { - "colord": "^2.9.3", - "cssnano-utils": "^4.0.2", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-minify-params": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz", - "integrity": "sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==", - "dev": true, - "dependencies": { - "browserslist": "^4.23.0", - "cssnano-utils": "^4.0.2", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-minify-selectors": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.3.tgz", - "integrity": "sha512-IcV7ZQJcaXyhx4UBpWZMsinGs2NmiUC60rJSkyvjPCPqhNjVGsrJUM+QhAtCaikZ0w0/AbZuH4wVvF/YMuMhvA==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.15" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" + "funding": { + "url": "https://github.com/sponsors/antonk52" } }, "node_modules/postcss-nested": { @@ -1631,6 +993,7 @@ "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", "dev": true, + "peer": true, "dependencies": { "postcss-selector-parser": "^6.0.11" }, @@ -1645,224 +1008,12 @@ "postcss": "^8.2.14" } }, - "node_modules/postcss-normalize-charset": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz", - "integrity": "sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==", - "dev": true, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-normalize-display-values": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz", - "integrity": "sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-normalize-positions": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz", - "integrity": "sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-normalize-repeat-style": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz", - "integrity": "sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-normalize-string": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz", - "integrity": "sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-normalize-timing-functions": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz", - "integrity": "sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-normalize-unicode": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz", - "integrity": "sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==", - "dev": true, - "dependencies": { - "browserslist": "^4.23.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-normalize-url": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz", - "integrity": "sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-normalize-whitespace": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz", - "integrity": "sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-ordered-values": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz", - "integrity": "sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==", - "dev": true, - "dependencies": { - "cssnano-utils": "^4.0.2", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-purgecss": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-purgecss/-/postcss-purgecss-5.0.0.tgz", - "integrity": "sha512-qmvyvcy9ph0Fgsjq4z8ilm3+/B/EG52XKgITe5J7Txhk7EpfRo2hDl6dXDOlp8uEUO8TLnGkxfLPnEejT+/nAQ==", - "deprecated": "use @fullhuman/postcss-purgecss instead", - "dev": true, - "dependencies": { - "purgecss": "^5.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-reduce-initial": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz", - "integrity": "sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==", - "dev": true, - "dependencies": { - "browserslist": "^4.23.0", - "caniuse-api": "^3.0.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-reduce-transforms": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz", - "integrity": "sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-reporter": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.0.5.tgz", - "integrity": "sha512-glWg7VZBilooZGOFPhN9msJ3FQs19Hie7l5a/eE6WglzYqVeH3ong3ShFcp9kDWJT1g2Y/wd59cocf9XxBtkWA==", - "dev": true, - "dependencies": { - "picocolors": "^1.0.0", - "thenby": "^1.3.4" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, "node_modules/postcss-selector-parser": { "version": "6.0.15", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", "dev": true, + "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -1871,75 +1022,12 @@ "node": ">=4" } }, - "node_modules/postcss-svgo": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.3.tgz", - "integrity": "sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0", - "svgo": "^3.2.0" - }, - "engines": { - "node": "^14 || ^16 || >= 18" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-unique-selectors": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.3.tgz", - "integrity": "sha512-NFXbYr8qdmCr/AFceaEfdcsKGCvWTeGO6QVC9h2GvtWgj0/0dklKQcaMMVzs6tr8bY+ase8hOtHW8OBTTRvS8A==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.15" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, "node_modules/postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "node_modules/pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/purgecss": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/purgecss/-/purgecss-5.0.0.tgz", - "integrity": "sha512-RAnuxrGuVyLLTr8uMbKaxDRGWMgK5CCYDfRyUNNcaz5P3kGgD2b7ymQGYEyo2ST7Tl/ScwFgf5l3slKMxHSbrw==", - "dev": true, - "dependencies": { - "commander": "^9.0.0", - "glob": "^8.0.3", - "postcss": "^8.4.4", - "postcss-selector-parser": "^6.0.7" - }, - "bin": { - "purgecss": "bin/purgecss.js" - } - }, - "node_modules/purgecss/node_modules/commander": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || >=14" - } + "peer": true }, "node_modules/queue-microtask": { "version": "1.2.3", @@ -1959,13 +1047,15 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "peer": true }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", "dev": true, + "peer": true, "dependencies": { "pify": "^2.3.0" } @@ -1975,6 +1065,7 @@ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, + "peer": true, "dependencies": { "picomatch": "^2.2.1" }, @@ -1982,22 +1073,14 @@ "node": ">=8.10.0" } }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, + "peer": true, "dependencies": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -2013,6 +1096,7 @@ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, + "peer": true, "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -2037,20 +1121,45 @@ "url": "https://feross.org/support" } ], + "peer": true, "dependencies": { "queue-microtask": "^1.2.2" } }, - "node_modules/slash": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", - "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "peer": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, "engines": { - "node": ">=14.16" + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=14" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/source-map-js": { @@ -2058,15 +1167,36 @@ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", "dev": true, + "peer": true, "engines": { "node": ">=0.10.0" } }, "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "peer": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "peer": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -2076,11 +1206,29 @@ "node": ">=8" } }, - "node_modules/strip-ansi": { + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "peer": true + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "peer": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -2088,31 +1236,56 @@ "node": ">=8" } }, - "node_modules/stylehacks": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.1.0.tgz", - "integrity": "sha512-ETErsPFgwlfYZ/CSjMO2Ddf+TsnkCVPBPaoB99Ro8WMAxf7cglzmFsRBhRmKObFjibtcvlNxFFPHuyr3sNlNUQ==", + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "peer": true, "dependencies": { - "browserslist": "^4.23.0", - "postcss-selector-parser": "^6.0.15" + "ansi-regex": "^6.0.1" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": ">=12" }, - "peerDependencies": { - "postcss": "^8.4.31" + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" } }, "node_modules/sucrase": { - "version": "3.32.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.32.0.tgz", - "integrity": "sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==", + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", "dev": true, + "peer": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.2", "commander": "^4.0.0", - "glob": "7.1.6", + "glob": "^10.3.10", "lines-and-columns": "^1.1.6", "mz": "^2.7.0", "pirates": "^4.0.1", @@ -2123,58 +1296,7 @@ "sucrase-node": "bin/sucrase-node" }, "engines": { - "node": ">=8" - } - }, - "node_modules/sucrase/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/sucrase/node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/sucrase/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/sucrase/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" + "node": ">=16 || 14 >=14.17" } }, "node_modules/supports-preserve-symlinks-flag": { @@ -2182,6 +1304,7 @@ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, + "peer": true, "engines": { "node": ">= 0.4" }, @@ -2189,36 +1312,12 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/svgo": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.2.0.tgz", - "integrity": "sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==", - "dev": true, - "dependencies": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^5.1.0", - "css-tree": "^2.3.1", - "css-what": "^6.1.0", - "csso": "^5.0.5", - "picocolors": "^1.0.0" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/svgo" - } - }, "node_modules/tailwindcss": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.1.tgz", "integrity": "sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==", "dev": true, + "peer": true, "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", @@ -2251,46 +1350,12 @@ "node": ">=14.0.0" } }, - "node_modules/tailwindcss/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/tailwindcss/node_modules/postcss-import": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/thenby": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", - "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==", - "dev": true - }, "node_modules/thenify": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", "dev": true, + "peer": true, "dependencies": { "any-promise": "^1.0.0" } @@ -2300,6 +1365,7 @@ "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", "dev": true, + "peer": true, "dependencies": { "thenify": ">= 3.1.0 < 4" }, @@ -2312,6 +1378,7 @@ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "peer": true, "dependencies": { "is-number": "^7.0.0" }, @@ -2323,70 +1390,57 @@ "version": "0.1.13", "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true - }, - "node_modules/unicorn-magic": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", - "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", "dev": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } + "peer": true }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "peer": true + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "peer": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } }, "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "peer": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -2399,1688 +1453,79 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yaml": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", - "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", - "dev": true, - "engines": { - "node": ">= 14" - } - }, - "node_modules/yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", - "dev": true, - "engines": { - "node": ">=12" - } - } - }, - "dependencies": { - "@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "dev": true - }, - "@fortawesome/fontawesome-free": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.5.1.tgz", - "integrity": "sha512-CNy5vSwN3fsUStPRLX7fUYojyuzoEMSXPl7zSLJ8TgtRfjv24LOnOWKT2zYwaHZCJGkdyRnTmstR0P+Ah503Gw==", - "dev": true - }, - "@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true - }, - "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - }, - "dependencies": { - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - } - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@sindresorhus/merge-streams": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-1.0.0.tgz", - "integrity": "sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw==", - "dev": true - }, - "@tailwindcss/forms": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.7.tgz", - "integrity": "sha512-QE7X69iQI+ZXwldE+rzasvbJiyV/ju1FGHH0Qn2W3FKbuYtqp8LKcy6iSw79fVUT5/Vvf+0XgLCeYVG+UV6hOw==", - "dev": true, - "requires": { - "mini-svg-data-uri": "^1.2.3" - } - }, - "@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", - "dev": true - }, - "ansi-regex": { + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } }, - "ansi-styles": { + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "requires": { + "peer": true, + "dependencies": { "color-convert": "^2.0.1" - } - }, - "any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "dev": true - }, - "autoprefixer": { - "version": "10.4.18", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.18.tgz", - "integrity": "sha512-1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g==", - "dev": true, - "requires": { - "browserslist": "^4.23.0", - "caniuse-lite": "^1.0.30001591", - "fraction.js": "^4.3.7", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true - }, - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - } - }, - "camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "dev": true - }, - "caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "caniuse-lite": { - "version": "1.0.30001596", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001596.tgz", - "integrity": "sha512-zpkZ+kEr6We7w63ORkoJ2pOfBwBkY/bJrG/UZ90qNb45Isblu8wzDgevEOrRL1r9dWayHjYiiyCMEXPn4DweGQ==", - "dev": true - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "colord": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", - "dev": true - }, - "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "css-declaration-sorter": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.1.1.tgz", - "integrity": "sha512-dZ3bVTEEc1vxr3Bek9vGwfB5Z6ESPULhcRvO472mfjVnj8jRcTnKO8/JTczlvxM10Myb+wBM++1MtdO76eWcaQ==", - "dev": true, - "requires": {} - }, - "css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", - "dev": true, - "requires": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" - } - }, - "css-tree": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", - "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", - "dev": true, - "requires": { - "mdn-data": "2.0.30", - "source-map-js": "^1.0.1" - } - }, - "css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "dev": true - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true - }, - "cssnano": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.1.0.tgz", - "integrity": "sha512-e2v4w/t3OFM6HTuSweI4RSdABaqgVgHlJp5FZrQsopHnKKHLFIvK2D3C4kHWeFIycN/1L1J5VIrg5KlDzn3r/g==", - "dev": true, - "requires": { - "cssnano-preset-default": "^6.1.0", - "lilconfig": "^3.1.1" }, - "dependencies": { - "lilconfig": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", - "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", - "dev": true - } - } - }, - "cssnano-preset-default": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.0.tgz", - "integrity": "sha512-4DUXZoDj+PI3fRl3MqMjl9DwLGjcsFP4qt+92nLUcN1RGfw2TY+GwNoG2B38Usu1BrcTs8j9pxNfSusmvtSjfg==", - "dev": true, - "requires": { - "browserslist": "^4.23.0", - "css-declaration-sorter": "^7.1.1", - "cssnano-utils": "^4.0.2", - "postcss-calc": "^9.0.1", - "postcss-colormin": "^6.1.0", - "postcss-convert-values": "^6.1.0", - "postcss-discard-comments": "^6.0.2", - "postcss-discard-duplicates": "^6.0.3", - "postcss-discard-empty": "^6.0.3", - "postcss-discard-overridden": "^6.0.2", - "postcss-merge-longhand": "^6.0.4", - "postcss-merge-rules": "^6.1.0", - "postcss-minify-font-values": "^6.0.3", - "postcss-minify-gradients": "^6.0.3", - "postcss-minify-params": "^6.1.0", - "postcss-minify-selectors": "^6.0.3", - "postcss-normalize-charset": "^6.0.2", - "postcss-normalize-display-values": "^6.0.2", - "postcss-normalize-positions": "^6.0.2", - "postcss-normalize-repeat-style": "^6.0.2", - "postcss-normalize-string": "^6.0.2", - "postcss-normalize-timing-functions": "^6.0.2", - "postcss-normalize-unicode": "^6.1.0", - "postcss-normalize-url": "^6.0.2", - "postcss-normalize-whitespace": "^6.0.2", - "postcss-ordered-values": "^6.0.2", - "postcss-reduce-initial": "^6.1.0", - "postcss-reduce-transforms": "^6.0.2", - "postcss-svgo": "^6.0.3", - "postcss-unique-selectors": "^6.0.3" - } - }, - "cssnano-utils": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.2.tgz", - "integrity": "sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==", - "dev": true, - "requires": {} - }, - "csso": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", - "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", - "dev": true, - "requires": { - "css-tree": "~2.2.0" + "engines": { + "node": ">=8" }, - "dependencies": { - "css-tree": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", - "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", - "dev": true, - "requires": { - "mdn-data": "2.0.28", - "source-map-js": "^1.0.1" - } - }, - "mdn-data": { - "version": "2.0.28", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", - "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", - "dev": true - } + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "dependency-graph": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", - "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", - "dev": true - }, - "didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true - }, - "dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true - }, - "dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "dev": true, - "requires": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - } - }, - "domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true - }, - "domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dev": true, - "requires": { - "domelementtype": "^2.3.0" - } - }, - "domutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", - "dev": true, - "requires": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" - } - }, - "electron-to-chromium": { - "version": "1.4.699", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.699.tgz", - "integrity": "sha512-I7q3BbQi6e4tJJN5CRcyvxhK0iJb34TV8eJQcgh+fR2fQ8miMgZcEInckCo1U9exDHbfz7DLDnFn8oqH/VcRKw==", - "dev": true - }, - "emoji-regex": { + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - } + "peer": true }, - "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "flag-icon-css": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/flag-icon-css/-/flag-icon-css-3.5.0.tgz", - "integrity": "sha512-pgJnJLrtb0tcDgU1fzGaQXmR8h++nXvILJ+r5SmOXaaL/2pocunQo2a8TAXhjQnBpRLPtZ1KCz/TYpqeNuE2ew==", - "dev": true - }, - "fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", - "dev": true - }, - "fs-extra": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", - "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-stdin": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", - "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", - "dev": true - }, - "glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "globby": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.0.tgz", - "integrity": "sha512-/1WM/LNHRAOH9lZta77uGbq0dAEQM+XjNesWwhlERDVenqothRbnzTrL3/LrIoEPPjeUHC3vrS6TwoyxeHs7MQ==", - "dev": true, - "requires": { - "@sindresorhus/merge-streams": "^1.0.0", - "fast-glob": "^3.3.2", - "ignore": "^5.2.4", - "path-type": "^5.0.0", - "slash": "^5.1.0", - "unicorn-magic": "^0.1.0" - } - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "ignore": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", - "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-core-module": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", - "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "jiti": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", - "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", - "dev": true - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "dev": true - }, - "lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", - "dev": true - }, - "mdn-data": { - "version": "2.0.30", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", - "dev": true - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "mini-svg-data-uri": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.3.tgz", - "integrity": "sha512-gSfqpMRC8IxghvMcxzzmMnWpXAChSA+vy4cia33RgerMS8Fex95akUyQZPbxJJmeBGiGmK7n/1OpUX8ksRjIdA==", - "dev": true - }, - "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dev": true, - "requires": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "dev": true - }, - "node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true - }, - "nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dev": true, - "requires": { - "boolbase": "^1.0.0" - } - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true - }, - "object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-type": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", - "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", - "dev": true - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", - "dev": true - }, - "postcss": { - "version": "8.4.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", - "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", - "dev": true, - "requires": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - } - }, - "postcss-calc": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz", - "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", - "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.11", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-cli": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-11.0.0.tgz", - "integrity": "sha512-xMITAI7M0u1yolVcXJ9XTZiO9aO49mcoKQy6pCDFdMh9kGqhzLVpWxeD/32M/QBmkhcGypZFFOLNLmIW4Pg4RA==", - "dev": true, - "requires": { - "chokidar": "^3.3.0", - "dependency-graph": "^0.11.0", - "fs-extra": "^11.0.0", - "get-stdin": "^9.0.0", - "globby": "^14.0.0", - "picocolors": "^1.0.0", - "postcss-load-config": "^5.0.0", - "postcss-reporter": "^7.0.0", - "pretty-hrtime": "^1.0.3", - "read-cache": "^1.0.0", - "slash": "^5.0.0", - "yargs": "^17.0.0" - }, - "dependencies": { - "lilconfig": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", - "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==", - "dev": true - }, - "postcss-load-config": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-5.0.2.tgz", - "integrity": "sha512-Q8QR3FYbqOKa0bnC1UQ2bFq9/ulHX5Bi34muzitMr8aDtUelO5xKeJEYC/5smE0jNE9zdB/NBnOwXKexELbRlw==", - "dev": true, - "requires": { - "lilconfig": "^3.0.0", - "yaml": "^2.3.4" - } - } - } - }, - "postcss-colormin": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.1.0.tgz", - "integrity": "sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==", - "dev": true, - "requires": { - "browserslist": "^4.23.0", - "caniuse-api": "^3.0.0", - "colord": "^2.9.3", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-convert-values": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz", - "integrity": "sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==", - "dev": true, - "requires": { - "browserslist": "^4.23.0", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-discard-comments": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz", - "integrity": "sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==", - "dev": true, - "requires": {} - }, - "postcss-discard-duplicates": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz", - "integrity": "sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==", - "dev": true, - "requires": {} - }, - "postcss-discard-empty": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz", - "integrity": "sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==", - "dev": true, - "requires": {} - }, - "postcss-discard-overridden": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz", - "integrity": "sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==", - "dev": true, - "requires": {} - }, - "postcss-import": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-16.0.1.tgz", - "integrity": "sha512-i2Pci0310NaLHr/5JUFSw1j/8hf1CzwMY13g6ZDxgOavmRHQi2ba3PmUHoihO+sjaum+KmCNzskNsw7JDrg03g==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - } - }, - "postcss-js": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", - "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "dev": true, - "requires": { - "camelcase-css": "^2.0.1" - } - }, - "postcss-load-config": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", - "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", - "dev": true, - "requires": { - "lilconfig": "^2.0.5", - "yaml": "^2.1.1" - } - }, - "postcss-merge-longhand": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.4.tgz", - "integrity": "sha512-vAfWGcxUUGlFiPM3nDMZA+/Yo9sbpc3JNkcYZez8FfJDv41Dh7tAgA3QGVTocaHCZZL6aXPXPOaBMJsjujodsA==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0", - "stylehacks": "^6.1.0" - } - }, - "postcss-merge-rules": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.1.0.tgz", - "integrity": "sha512-lER+W3Gr6XOvxOYk1Vi/6UsAgKMg6MDBthmvbNqi2XxAk/r9XfhdYZSigfWjuWWn3zYw2wLelvtM8XuAEFqRkA==", - "dev": true, - "requires": { - "browserslist": "^4.23.0", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^4.0.2", - "postcss-selector-parser": "^6.0.15" - } - }, - "postcss-minify-font-values": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.0.3.tgz", - "integrity": "sha512-SmAeTA1We5rMnN3F8X9YBNo9bj9xB4KyDHnaNJnBfQIPi+60fNiR9OTRnIaMqkYzAQX0vObIw4Pn0vuKEOettg==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-minify-gradients": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz", - "integrity": "sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==", - "dev": true, - "requires": { - "colord": "^2.9.3", - "cssnano-utils": "^4.0.2", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-minify-params": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz", - "integrity": "sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==", - "dev": true, - "requires": { - "browserslist": "^4.23.0", - "cssnano-utils": "^4.0.2", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-minify-selectors": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.3.tgz", - "integrity": "sha512-IcV7ZQJcaXyhx4UBpWZMsinGs2NmiUC60rJSkyvjPCPqhNjVGsrJUM+QhAtCaikZ0w0/AbZuH4wVvF/YMuMhvA==", - "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.15" - } - }, - "postcss-nested": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", - "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", - "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.11" - } - }, - "postcss-normalize-charset": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz", - "integrity": "sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==", - "dev": true, - "requires": {} - }, - "postcss-normalize-display-values": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz", - "integrity": "sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-positions": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz", - "integrity": "sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-repeat-style": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz", - "integrity": "sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-string": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz", - "integrity": "sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-timing-functions": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz", - "integrity": "sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-unicode": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz", - "integrity": "sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==", - "dev": true, - "requires": { - "browserslist": "^4.23.0", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-url": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz", - "integrity": "sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-whitespace": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz", - "integrity": "sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-ordered-values": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz", - "integrity": "sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==", - "dev": true, - "requires": { - "cssnano-utils": "^4.0.2", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-purgecss": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-purgecss/-/postcss-purgecss-5.0.0.tgz", - "integrity": "sha512-qmvyvcy9ph0Fgsjq4z8ilm3+/B/EG52XKgITe5J7Txhk7EpfRo2hDl6dXDOlp8uEUO8TLnGkxfLPnEejT+/nAQ==", - "dev": true, - "requires": { - "purgecss": "^5.0.0" - } - }, - "postcss-reduce-initial": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz", - "integrity": "sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==", - "dev": true, - "requires": { - "browserslist": "^4.23.0", - "caniuse-api": "^3.0.0" - } - }, - "postcss-reduce-transforms": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz", - "integrity": "sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-reporter": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.0.5.tgz", - "integrity": "sha512-glWg7VZBilooZGOFPhN9msJ3FQs19Hie7l5a/eE6WglzYqVeH3ong3ShFcp9kDWJT1g2Y/wd59cocf9XxBtkWA==", - "dev": true, - "requires": { - "picocolors": "^1.0.0", - "thenby": "^1.3.4" - } - }, - "postcss-selector-parser": { - "version": "6.0.15", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", - "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - } - }, - "postcss-svgo": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.3.tgz", - "integrity": "sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0", - "svgo": "^3.2.0" - } - }, - "postcss-unique-selectors": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.3.tgz", - "integrity": "sha512-NFXbYr8qdmCr/AFceaEfdcsKGCvWTeGO6QVC9h2GvtWgj0/0dklKQcaMMVzs6tr8bY+ase8hOtHW8OBTTRvS8A==", - "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.15" - } - }, - "postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", - "dev": true - }, - "purgecss": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/purgecss/-/purgecss-5.0.0.tgz", - "integrity": "sha512-RAnuxrGuVyLLTr8uMbKaxDRGWMgK5CCYDfRyUNNcaz5P3kGgD2b7ymQGYEyo2ST7Tl/ScwFgf5l3slKMxHSbrw==", - "dev": true, - "requires": { - "commander": "^9.0.0", - "glob": "^8.0.3", - "postcss": "^8.4.4", - "postcss-selector-parser": "^6.0.7" - }, - "dependencies": { - "commander": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", - "dev": true - } - } - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", - "dev": true, - "requires": { - "pify": "^2.3.0" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true - }, - "resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", - "dev": true, - "requires": { - "is-core-module": "^2.11.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "slash": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", - "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", - "dev": true - }, - "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true - }, - "string-width": { + "node_modules/wrap-ansi-cjs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, - "requires": { + "peer": true, + "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" } }, - "strip-ansi": { + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "requires": { + "peer": true, + "dependencies": { "ansi-regex": "^5.0.1" - } - }, - "stylehacks": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.1.0.tgz", - "integrity": "sha512-ETErsPFgwlfYZ/CSjMO2Ddf+TsnkCVPBPaoB99Ro8WMAxf7cglzmFsRBhRmKObFjibtcvlNxFFPHuyr3sNlNUQ==", - "dev": true, - "requires": { - "browserslist": "^4.23.0", - "postcss-selector-parser": "^6.0.15" - } - }, - "sucrase": { - "version": "3.32.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.32.0.tgz", - "integrity": "sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "7.1.6", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" }, - "dependencies": { - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } + "engines": { + "node": ">=8" } }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "svgo": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.2.0.tgz", - "integrity": "sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==", + "node_modules/yaml": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz", + "integrity": "sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==", "dev": true, - "requires": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^5.1.0", - "css-tree": "^2.3.1", - "css-what": "^6.1.0", - "csso": "^5.0.5", - "picocolors": "^1.0.0" - } - }, - "tailwindcss": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.1.tgz", - "integrity": "sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==", - "dev": true, - "requires": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.5.3", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.3.0", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.19.1", - "lilconfig": "^2.1.0", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.23", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.1", - "postcss-nested": "^6.0.1", - "postcss-selector-parser": "^6.0.11", - "resolve": "^1.22.2", - "sucrase": "^3.32.0" + "peer": true, + "bin": { + "yaml": "bin.mjs" }, - "dependencies": { - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - }, - "postcss-import": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - } - } + "engines": { + "node": ">= 14" } - }, - "thenby": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", - "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==", - "dev": true - }, - "thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dev": true, - "requires": { - "any-promise": "^1.0.0" - } - }, - "thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dev": true, - "requires": { - "thenify": ">= 3.1.0 < 4" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true - }, - "unicorn-magic": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", - "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", - "dev": true - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true - }, - "update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yaml": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", - "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", - "dev": true - }, - "yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - } - }, - "yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", - "dev": true } } } diff --git a/modules/webapp/package.json b/modules/webapp/package.json index c9bd65c0..cb22d3df 100644 --- a/modules/webapp/package.json +++ b/modules/webapp/package.json @@ -5,13 +5,6 @@ "devDependencies": { "@fortawesome/fontawesome-free": "^6.0.0", "@tailwindcss/forms": "^0.5.0", - "autoprefixer": "^10.4.2", - "cssnano": "^6.0.0", - "flag-icon-css": "^3.5.0", - "postcss": "^8.4.7", - "postcss-cli": "^11.0.0", - "postcss-import": "^16.0.0", - "postcss-purgecss": "^5.0.0", - "tailwindcss": "^3.0.23" + "flag-icons": "^7.2.0" } } diff --git a/modules/webapp/src/main/elm/Messages.elm b/modules/webapp/src/main/elm/Messages.elm index d3cd405c..75517c7e 100644 --- a/modules/webapp/src/main/elm/Messages.elm +++ b/modules/webapp/src/main/elm/Messages.elm @@ -109,7 +109,7 @@ gb tz = , timeZone = tz , iso2 = "gb" , label = "English" - , flagIcon = "flag-icon flag-icon-gb" + , flagIcon = "fi fi-gb" , app = Messages.App.gb , collectiveSettings = Messages.Page.CollectiveSettings.gb tz , login = Messages.Page.Login.gb @@ -133,7 +133,7 @@ de tz = , timeZone = tz , iso2 = "de" , label = "Deutsch" - , flagIcon = "flag-icon flag-icon-de" + , flagIcon = "fi fi-de" , app = Messages.App.de , collectiveSettings = Messages.Page.CollectiveSettings.de tz , login = Messages.Page.Login.de @@ -157,7 +157,7 @@ fr tz = , timeZone = tz , iso2 = "fr" , label = "Français" - , flagIcon = "flag-icon flag-icon-fr" + , flagIcon = "fi fi-fr" , app = Messages.App.fr , collectiveSettings = Messages.Page.CollectiveSettings.fr tz , login = Messages.Page.Login.fr diff --git a/modules/webapp/src/main/styles/index.css b/modules/webapp/src/main/styles/index.css index d6be45b1..581638dc 100644 --- a/modules/webapp/src/main/styles/index.css +++ b/modules/webapp/src/main/styles/index.css @@ -1,5 +1,5 @@ @import "@fortawesome/fontawesome-free/css/all"; -@import "flag-icon-css/css/flag-icon.min"; +@import "flag-icons/css/flag-icons.min"; @import "tailwindcss/base"; @import "tailwindcss/components"; diff --git a/modules/webapp/tailwind.config.js b/modules/webapp/tailwind.config.js index 3e25d8b8..e9306ac6 100644 --- a/modules/webapp/tailwind.config.js +++ b/modules/webapp/tailwind.config.js @@ -28,5 +28,4 @@ module.exports = { plugins: [ require('@tailwindcss/forms') ] -// prefix: 'tw-' } diff --git a/project/StylesPlugin.scala b/project/StylesPlugin.scala index f47b27fb..b04ab2e5 100644 --- a/project/StylesPlugin.scala +++ b/project/StylesPlugin.scala @@ -23,7 +23,7 @@ object StylesPlugin extends AutoPlugin { val stylesDirectory = settingKey[File]("The directory containing source styles") val stylesOutputDir = settingKey[File]("The directory to put the final outcome") val stylesMode = settingKey[StylesMode]("The compile mode, dev or production") - val stylesNpxCommand = settingKey[String]("The npx executable") + val stylesTwCommand = settingKey[String]("The tailwindcss executable") val stylesNpmCommand = settingKey[String]("The npm executable for installing dependencies") @@ -40,19 +40,19 @@ object StylesPlugin extends AutoPlugin { stylesDirectory := (Compile / sourceDirectory).value / "styles", stylesOutputDir := (Compile / resourceManaged).value / "META-INF" / "resources" / "webjars" / name.value / version.value, - stylesNpxCommand := "npx", + stylesTwCommand := "tailwindcss", stylesNpmCommand := "npm", stylesMode := StylesMode.Dev, stylesBuild := { val logger = streams.value.log - val npx = stylesNpxCommand.value + val tw = stylesTwCommand.value val npm = stylesNpmCommand.value val inDir = stylesDirectory.value val outDir = stylesOutputDir.value val wd = (Compile / baseDirectory).value val mode = stylesMode.value npmInstall(npm, wd, logger) - val files = postCss(npx, inDir, outDir, wd, mode, logger) ++ + val files = runTailwind(tw, inDir, outDir, wd, mode, logger) ++ copyWebfonts(wd, outDir, logger) ++ copyFlags(wd, outDir, logger) logger.info(s"Styles built at $outDir") @@ -77,8 +77,8 @@ object StylesPlugin extends AutoPlugin { } } - def postCss( - npx: String, + def runTailwind( + tailwind: String, inDir: File, outDir: File, wd: File, @@ -86,25 +86,20 @@ object StylesPlugin extends AutoPlugin { logger: Logger ): Seq[File] = { val env = mode match { - case StylesMode.Dev => "development" - case StylesMode.Prod => "production" + case StylesMode.Dev => Seq.empty + case StylesMode.Prod => Seq("--minify") } val target = outDir / "css" / "styles.css" IO.createDirectory(target.getParentFile) logger.info("Compiling css stylesheets…") - Cmd.run( - Seq( - npx, - "postcss", - s"$inDir/index.css", - "-o", - target.absolutePath, - "--env", - env - ), - wd, - logger - ) + val cmd = Seq( + tailwind, + "--input", + s"$inDir/index.css", + "-o", + target.absolutePath + ) ++ env + Cmd.run(cmd, wd, logger) val gz = file(target.toString + ".gz") IO.gzip(target, gz) Seq(target, gz) @@ -121,7 +116,7 @@ object StylesPlugin extends AutoPlugin { def copyFlags(baseDir: File, outDir: File, logger: Logger): Seq[File] = { val flagDir = - baseDir / "node_modules" / "flag-icon-css" / "flags" + baseDir / "node_modules" / "flag-icons" / "flags" val targetDir = outDir / "flags" IO.createDirectory(targetDir) diff --git a/project/dev-ui-build.sh b/project/dev-ui-build.sh index 0fa46b5f..a6d291fc 100755 --- a/project/dev-ui-build.sh +++ b/project/dev-ui-build.sh @@ -23,7 +23,7 @@ compile_css() { echo "Building css …" local srcs="$wdir/modules/webapp/src/main/styles/index.css" local target="$targetbase/css/styles.css" - cd $wdir/modules/webapp && npx tailwindcss --input "$srcs" -o "$target" --config ./tailwind.config.js --postcss ./postcss.config.js --env development && cd - + cd $wdir/modules/webapp && tailwindcss --input "$srcs" -o "$target" --config ./tailwind.config.js --postcss ./postcss.config.js --env development && cd - cat "$target" | gzip > "$targetbase/css/styles.css.gz" cp "$targetbase/css/styles.css" "$resourcebase/css/" cp "$targetbase/css/styles.css.gz" "$resourcebase/css/" @@ -47,7 +47,7 @@ watch_css() { local srcs="$wdir/modules/webapp/src/main/styles/index.css" local target="$targetbase/css/styles.css" cd $wdir/modules/webapp && \ - npx tailwindcss --input "$srcs" \ + tailwindcss --input "$srcs" \ -o "$target" -m \ --config ./tailwind.config.js \ --postcss ./postcss.config.js --watch From 3d93439b28881adb7cbe537257cb81b1d1938c14 Mon Sep 17 00:00:00 2001 From: eikek Date: Sun, 10 Mar 2024 20:49:56 +0100 Subject: [PATCH 041/162] Lower memory requirement for test-vm --- flake.lock | 6 +++--- flake.nix | 26 +++++++++++++++----------- nix/test-vm.nix | 4 +++- 3 files changed, 21 insertions(+), 15 deletions(-) diff --git a/flake.lock b/flake.lock index e2f18d87..8b912198 100644 --- a/flake.lock +++ b/flake.lock @@ -6,11 +6,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1710025500, - "narHash": "sha256-niJf4WZ4GHQ+RaP+Qj4+6P/2SWN1Z4co36/ETvIg0Qg=", + "lastModified": 1710099997, + "narHash": "sha256-WmBKTLdth6I/D+0//9enbIXohGsBjepbjIAm9pCYj0U=", "owner": "eikek", "repo": "devshell-tools", - "rev": "57d7d292571e291fe8213a1655529f739cfa174d", + "rev": "e82faf976d318b3829f6f7f6785db6f3c7b65267", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 909a8451..cb6bc2e0 100644 --- a/flake.nix +++ b/flake.nix @@ -15,7 +15,7 @@ }: flake-utils.lib.eachDefaultSystem (system: let pkgs = nixpkgs.legacyPackages.${system}; - sbt17 = pkgs.sbt.override { jre = pkgs.jdk17; }; + sbt17 = pkgs.sbt.override {jre = pkgs.jdk17;}; ciPkgs = with pkgs; [ sbt17 jdk17 @@ -28,14 +28,16 @@ redocly-cli tailwindcss ]; - devshellPkgs = ciPkgs ++ (with pkgs; [ - jq - scala-cli - netcat - wget - which - inotifyTools - ]); + devshellPkgs = + ciPkgs + ++ (with pkgs; [ + jq + scala-cli + netcat + wget + which + inotifyTools + ]); docspellPkgs = pkgs.callPackage (import ./nix/pkg.nix) {}; dockerAmd64 = pkgs.pkgsCross.gnu64.callPackage (import ./nix/docker.nix) { inherit (docspellPkgs) docspell-restserver docspell-joex; @@ -161,6 +163,9 @@ system = "x86_64-linux"; modules = [ { + networking.hostName = "dev-vm"; + virtualisation.memorySize = 2048; + services.dev-postgres = { enable = true; databases = ["docspell"]; @@ -170,8 +175,8 @@ services.dev-solr = { enable = true; cores = ["docspell"]; + heap = 512; }; - port-forward.ssh = 10022; port-forward.dev-postgres = 6534; port-forward.dev-smtp = 10025; @@ -180,7 +185,6 @@ port-forward.dev-minio-api = 9000; port-forward.dev-minio-console = 9001; port-forward.dev-solr = 8983; - networking.hostName = "dev-vm"; } ]; }; diff --git a/nix/test-vm.nix b/nix/test-vm.nix index 91ae32f3..96ddf039 100644 --- a/nix/test-vm.nix +++ b/nix/test-vm.nix @@ -22,6 +22,7 @@ in { services.dev-solr = { enable = true; cores = ["docspell"]; + heap = 512; }; port-forward.dev-webmail = 8080; @@ -39,7 +40,8 @@ in { firewall.allowedTCPPorts = [7880]; }; - virtualisation.memorySize = 6144; + virtualisation.memorySize = 2048; + virtualisation.cores = 2; virtualisation.forwardPorts = [ { From 7c2a57966ba1f1f0be416f89e28baeb5e961886f Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Tue, 5 Mar 2024 06:11:35 +0000 Subject: [PATCH 042/162] Update sbt-github-pages to 0.14.0 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index 6259bd9d..d86b4c25 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -6,7 +6,7 @@ addSbtPlugin("com.github.sbt" % "sbt-release" % "1.4.0") addSbtPlugin("com.github.sbt" % "sbt-git" % "2.0.1") addSbtPlugin("com.github.sbt" % "sbt-native-packager" % "1.9.16") addSbtPlugin("de.heikoseeberger" % "sbt-header" % "5.10.0") -addSbtPlugin("io.kevinlee" % "sbt-github-pages" % "0.13.0") +addSbtPlugin("io.kevinlee" % "sbt-github-pages" % "0.14.0") addSbtPlugin("io.spray" % "sbt-revolver" % "0.10.0") addSbtPlugin("org.portable-scala" % "sbt-scalajs-crossproject" % "1.3.2") addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.15.0") From 67284d1f6a44b3ac3d21c36d9272f890199b5491 Mon Sep 17 00:00:00 2001 From: eikek Date: Sun, 10 Mar 2024 21:24:44 +0100 Subject: [PATCH 043/162] Fix tailwindcss warnings --- .../src/main/styles/custom-utilities.css | 61 +++++++++---------- modules/webapp/tailwind.config.js | 6 -- 2 files changed, 28 insertions(+), 39 deletions(-) diff --git a/modules/webapp/src/main/styles/custom-utilities.css b/modules/webapp/src/main/styles/custom-utilities.css index 0da52b61..b1390228 100644 --- a/modules/webapp/src/main/styles/custom-utilities.css +++ b/modules/webapp/src/main/styles/custom-utilities.css @@ -24,11 +24,8 @@ z-index: 35; } - @variants responsive { - .min-h-7 { - min-height: 1.75rem; - } - + .min-h-7 { + min-height: 1.75rem; } .scrollbar-none { @@ -47,37 +44,35 @@ width: 8px; } - @variants dark { - .scrollbar-dark-sidebar { - scrollbar-color: rgba(15,23,42,0.9) rgba(15,23,42,0.3); - } - .scrollbar-light-sidebar { - scrollbar-color: rgba(219, 234, 254, 1.0) rgba(219, 234, 254,0.3); - } - .scrollbar-main { - scrollbar-color: rgba(156, 163, 175,0.9) rgba(156, 163, 175,0.3); - } + .scrollbar-dark-sidebar { + scrollbar-color: rgba(15,23,42,0.9) rgba(15,23,42,0.3); + } + .scrollbar-light-sidebar { + scrollbar-color: rgba(219, 234, 254, 1.0) rgba(219, 234, 254,0.3); + } + .scrollbar-main { + scrollbar-color: rgba(156, 163, 175,0.9) rgba(156, 163, 175,0.3); + } - .scrollbar-dark-sidebar::-webkit-scrollbar { - background-color: rgba(15,23,42,0.3); - } - .scrollbar-dark-sidebar::-webkit-scrollbar-thumb { - background: rgba(15,23,42,0.9); - } + .scrollbar-dark-sidebar::-webkit-scrollbar { + background-color: rgba(15,23,42,0.3); + } + .scrollbar-dark-sidebar::-webkit-scrollbar-thumb { + background: rgba(15,23,42,0.9); + } - .scrollbar-light-sidebar::-webkit-scrollbar { - background-color: rgba(219, 234, 254, 0.3); - } - .scrollbar-light-sidebar::-webkit-scrollbar-thumb { - background: rgba(219, 234, 254, 1.0); - } + .scrollbar-light-sidebar::-webkit-scrollbar { + background-color: rgba(219, 234, 254, 0.3); + } + .scrollbar-light-sidebar::-webkit-scrollbar-thumb { + background: rgba(219, 234, 254, 1.0); + } - .scrollbar-main::-webkit-scrollbar { - background-color: rgba(156, 163, 175, 0.3); - } - .scrollbar-main::-webkit-scrollbar-thumb { - background: rgba(156, 163, 175, 0.9); - } + .scrollbar-main::-webkit-scrollbar { + background-color: rgba(156, 163, 175, 0.3); + } + .scrollbar-main::-webkit-scrollbar-thumb { + background: rgba(156, 163, 175, 0.9); } .ds-card-search-hl strong { diff --git a/modules/webapp/tailwind.config.js b/modules/webapp/tailwind.config.js index e9306ac6..5ab402fa 100644 --- a/modules/webapp/tailwind.config.js +++ b/modules/webapp/tailwind.config.js @@ -19,12 +19,6 @@ module.exports = { } } }, - variants: { - extend: { - backgroundOpacity: ['dark'] - } - }, - purge: false, plugins: [ require('@tailwindcss/forms') ] From f6d22523d1ef17b8f0df2c98901e07e586ca28c7 Mon Sep 17 00:00:00 2001 From: eikek Date: Mon, 11 Mar 2024 12:00:08 +0100 Subject: [PATCH 044/162] Convert to stale action --- .github/stale.yml | 16 ---------------- .github/workflows/stale.yml | 21 +++++++++++++++++++++ 2 files changed, 21 insertions(+), 16 deletions(-) delete mode 100644 .github/stale.yml create mode 100644 .github/workflows/stale.yml diff --git a/.github/stale.yml b/.github/stale.yml deleted file mode 100644 index 2ee655a6..00000000 --- a/.github/stale.yml +++ /dev/null @@ -1,16 +0,0 @@ -# Number of days of inactivity before an issue becomes stale -daysUntilStale: 30 -# Number of days of inactivity before a stale issue is closed -daysUntilClose: 7 -onlyLabels: - - question -# Label to use when marking an issue as stale -staleLabel: stale -# Comment to post when marking an issue as stale. Set to `false` to disable -markComment: > - This issue has been automatically marked as stale because it has not - had recent activity. It will be closed if no further activity - occurs. This only applies to 'question' issues. Always feel free to - reopen or create new issues. Thank you! -# Comment to post when closing a stale issue. Set to `false` to disable -closeComment: false diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml new file mode 100644 index 00000000..acd334f9 --- /dev/null +++ b/.github/workflows/stale.yml @@ -0,0 +1,21 @@ +name: 'Handle stale issues' +on: + schedule: + - cron: '30 1 * * *' + +jobs: + stale: + runs-on: ubuntu-latest + steps: + # https://github.com/actions/stale + - uses: actions/stale@v9 + with: + days-before-stale: 30 + days-before-close: 7 + only-labels: question + stale-issue-label: stale + stale-issue-message: > + This issue has been automatically marked as stale because it has not + had recent activity. It will be closed if no further activity + occurs. This only applies to 'question' issues. Always feel free to + reopen or create new issues. Thank you! From c223ba63aab94a8067e0ba32b9055782930f1549 Mon Sep 17 00:00:00 2001 From: Eike Kettner Date: Fri, 15 Mar 2024 09:23:59 +0100 Subject: [PATCH 045/162] Fix renamed elm package --- modules/webapp/elm.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/webapp/elm.json b/modules/webapp/elm.json index 2d5a8a4a..3fe27352 100644 --- a/modules/webapp/elm.json +++ b/modules/webapp/elm.json @@ -25,7 +25,7 @@ "justinmimbs/timezone-data": "5.1.2", "norpan/elm-html5-drag-drop": "3.1.4", "pablohirafuji/elm-qrcode": "4.0.1", - "ryannhg/date-format": "2.3.0", + "ryan-haskell/date-format": "1.0.0", "truqu/elm-base64": "2.0.4", "ursi/elm-scroll": "1.0.0", "ursi/elm-throttle": "1.0.1" From f0b09067852b1f51713dd2abd2bdb41f2e17606e Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Fri, 15 Mar 2024 06:25:32 +0000 Subject: [PATCH 046/162] Update postgresql to 42.7.3 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index b7a806bf..1efdf3f4 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -38,7 +38,7 @@ object Dependencies { val PdfboxVersion = "3.0.1" val PdfjsViewerVersion = "2.12.313" val PoiVersion = "4.1.2" - val PostgresVersion = "42.7.2" + val PostgresVersion = "42.7.3" val PureConfigVersion = "0.17.6" val ScalaJavaTimeVersion = "2.5.0" val ScodecBitsVersion = "1.1.38" From 7a27fbf8fbb5886d5529c14f458505f612d887db Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Fri, 15 Mar 2024 06:25:27 +0000 Subject: [PATCH 047/162] Update flyway-core, ... to 10.10.0 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index b7a806bf..a0b6665c 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -19,7 +19,7 @@ object Dependencies { val DoobieVersion = "1.0.0-RC5" val EmilVersion = "0.17.0" val FlexmarkVersion = "0.64.8" - val FlywayVersion = "10.9.1" + val FlywayVersion = "10.10.0" val Fs2Version = "3.9.4" val H2Version = "2.2.224" val Http4sVersion = "0.23.26" From 9253783ef04988f49344b121dadaedef77197f89 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Fri, 15 Mar 2024 06:25:22 +0000 Subject: [PATCH 048/162] Update pdfbox to 3.0.2 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index b7a806bf..fba80d67 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -35,7 +35,7 @@ object Dependencies { val MariaDbVersion = "3.3.3" val MUnitVersion = "0.7.29" val MUnitCatsEffectVersion = "1.0.7" - val PdfboxVersion = "3.0.1" + val PdfboxVersion = "3.0.2" val PdfjsViewerVersion = "2.12.313" val PoiVersion = "4.1.2" val PostgresVersion = "42.7.2" From 1b7ffd40873a97a6ac6b41678ea0a6ee203390fd Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Wed, 13 Mar 2024 06:25:29 +0000 Subject: [PATCH 049/162] Update swagger-ui to 5.11.10 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index b7a806bf..9ae1dfac 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -48,7 +48,7 @@ object Dependencies { val StanfordNlpVersion = "4.5.6" val TikaVersion = "2.9.1" val YamuscaVersion = "0.10.0" - val SwaggerUIVersion = "5.11.8" + val SwaggerUIVersion = "5.11.10" val TestContainerVersion = "0.40.14" val TwelveMonkeysVersion = "3.10.1" val JQueryVersion = "3.5.1" From cd9b49e4cc22e1ca3e788a663f07e0c07de2438b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 17 Mar 2024 22:43:55 +0000 Subject: [PATCH 050/162] Update dependency postcss to v8.4.36 --- website/yarn.lock | 46 ++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 38 insertions(+), 8 deletions(-) diff --git a/website/yarn.lock b/website/yarn.lock index 83226b94..186a4908 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -1154,13 +1154,13 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== postcss@^8.4.23, postcss@^8.4.4, postcss@^8.4.5: - version "8.4.35" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.35.tgz#60997775689ce09011edf083a549cea44aabe2f7" - integrity sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA== + version "8.4.36" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.36.tgz#dba513c3c3733c44e0288a712894f8910bbaabc6" + integrity sha512-/n7eumA6ZjFHAsbX30yhHup/IMkOmlmvtEi7P+6RMYf+bGJSUHc3geH4a0NSZxAz/RJfiS9tooCTs9LAVYUZKw== dependencies: nanoid "^3.3.7" picocolors "^1.0.0" - source-map-js "^1.0.2" + source-map-js "^1.1.0" pretty-hrtime@^1.0.3: version "1.0.3" @@ -1244,12 +1244,26 @@ slash@^5.0.0, slash@^5.1.0: resolved "https://registry.yarnpkg.com/slash/-/slash-5.1.0.tgz#be3adddcdf09ac38eebe8dcdc7b1a57a75b095ce" integrity sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg== -source-map-js@^1.0.1, source-map-js@^1.0.2: +source-map-js@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== -"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +source-map-js@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.1.0.tgz#9e7d5cb46f0689fb6691b30f226937558d0fa94b" + integrity sha512-9vC2SfsJzlej6MAaMPLu8HiBSHGdRAJ9hVFYN1ibZoNkeanmDmLUcIrj6G9DGL7XMJ54AKg/G75akXl1/izTOw== + +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -1267,7 +1281,14 @@ string-width@^5.0.1, string-width@^5.1.2: emoji-regex "^9.2.2" strip-ansi "^7.0.1" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -1409,7 +1430,16 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== From 6db2d25e081fe8015e87a355900379e1043ce97f Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Tue, 19 Mar 2024 06:24:44 +0000 Subject: [PATCH 051/162] Update fs2-core, fs2-io to 3.10.0 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 86cb774a..349d0233 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -20,7 +20,7 @@ object Dependencies { val EmilVersion = "0.17.0" val FlexmarkVersion = "0.64.8" val FlywayVersion = "10.10.0" - val Fs2Version = "3.9.4" + val Fs2Version = "3.10.0" val H2Version = "2.2.224" val Http4sVersion = "0.23.26" val Icu4jVersion = "74.2" From 2a4f37cc802f7ce9ffba07c32c73d6b09ff9685e Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Tue, 19 Mar 2024 06:24:49 +0000 Subject: [PATCH 052/162] Update swagger-ui to 5.12.0 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 86cb774a..f07e0c24 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -48,7 +48,7 @@ object Dependencies { val StanfordNlpVersion = "4.5.6" val TikaVersion = "2.9.1" val YamuscaVersion = "0.10.0" - val SwaggerUIVersion = "5.11.10" + val SwaggerUIVersion = "5.12.0" val TestContainerVersion = "0.40.14" val TwelveMonkeysVersion = "3.10.1" val JQueryVersion = "3.5.1" From cd45407c2d5d6e7e83e8864d681dc490864691a4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 19 Mar 2024 19:08:41 +0000 Subject: [PATCH 053/162] Update dependency postcss to v8.4.37 --- website/yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/website/yarn.lock b/website/yarn.lock index 186a4908..be4c9913 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -1154,13 +1154,13 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== postcss@^8.4.23, postcss@^8.4.4, postcss@^8.4.5: - version "8.4.36" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.36.tgz#dba513c3c3733c44e0288a712894f8910bbaabc6" - integrity sha512-/n7eumA6ZjFHAsbX30yhHup/IMkOmlmvtEi7P+6RMYf+bGJSUHc3geH4a0NSZxAz/RJfiS9tooCTs9LAVYUZKw== + version "8.4.37" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.37.tgz#4505f992cd0c20e03d25f13b31901640b2db731a" + integrity sha512-7iB/v/r7Woof0glKLH8b1SPHrsX7uhdO+Geb41QpF/+mWZHU3uxxSlN+UXGVit1PawOYDToO+AbZzhBzWRDwbQ== dependencies: nanoid "^3.3.7" picocolors "^1.0.0" - source-map-js "^1.1.0" + source-map-js "^1.2.0" pretty-hrtime@^1.0.3: version "1.0.3" @@ -1249,10 +1249,10 @@ source-map-js@^1.0.1: resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== -source-map-js@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.1.0.tgz#9e7d5cb46f0689fb6691b30f226937558d0fa94b" - integrity sha512-9vC2SfsJzlej6MAaMPLu8HiBSHGdRAJ9hVFYN1ibZoNkeanmDmLUcIrj6G9DGL7XMJ54AKg/G75akXl1/izTOw== +source-map-js@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" + integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== "string-width-cjs@npm:string-width@^4.2.0": version "4.2.3" From e1e1e39606811285111c5af6811a13f9d7fe7234 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Wed, 20 Mar 2024 06:25:48 +0000 Subject: [PATCH 054/162] Update sbt-buildinfo to 0.12.0 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index d86b4c25..cdb8e641 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,5 +1,5 @@ addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.12.0") -addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.11.0") +addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.12.0") addSbtPlugin("com.github.eikek" % "sbt-openapi-schema" % "0.13.1") addSbtPlugin("com.github.sbt" % "sbt-pgp" % "2.2.1") addSbtPlugin("com.github.sbt" % "sbt-release" % "1.4.0") From 00ada494c482546589078837174bae00942f142b Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Wed, 20 Mar 2024 06:25:54 +0000 Subject: [PATCH 055/162] Update scribe, scribe-slf4j2 to 3.13.1 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 47bf17db..9fd04c8b 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -42,7 +42,7 @@ object Dependencies { val PureConfigVersion = "0.17.6" val ScalaJavaTimeVersion = "2.5.0" val ScodecBitsVersion = "1.1.38" - val ScribeVersion = "3.13.0" + val ScribeVersion = "3.13.1" val Slf4jVersion = "2.0.12" val SourcecodeVersion = "0.3.1" val StanfordNlpVersion = "4.5.6" From 2ece300b811f1b9d57959db9ccbb755c608eaf22 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Wed, 20 Mar 2024 06:25:58 +0000 Subject: [PATCH 056/162] Update sbt-scalajs, scalajs-compiler, ... to 1.16.0 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index d86b4c25..8db1ced4 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -9,6 +9,6 @@ addSbtPlugin("de.heikoseeberger" % "sbt-header" % "5.10.0") addSbtPlugin("io.kevinlee" % "sbt-github-pages" % "0.14.0") addSbtPlugin("io.spray" % "sbt-revolver" % "0.10.0") addSbtPlugin("org.portable-scala" % "sbt-scalajs-crossproject" % "1.3.2") -addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.15.0") +addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.16.0") addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.2") addSbtPlugin("org.xerial.sbt" % "sbt-sonatype" % "3.10.0") From bfa551044233cfae4d34018b4f77636a217c148d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 20 Mar 2024 18:42:40 +0000 Subject: [PATCH 057/162] Update dependency cssnano to v6.1.1 --- website/yarn.lock | 112 +++++++++++++++++++++++----------------------- 1 file changed, 56 insertions(+), 56 deletions(-) diff --git a/website/yarn.lock b/website/yarn.lock index be4c9913..2ba48d21 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -220,7 +220,12 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001587, caniuse-lite@^1.0.30001591: +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001587: + version "1.0.30001599" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001599.tgz#571cf4f3f1506df9bf41fcbb6d10d5d017817bce" + integrity sha512-LRAQHZ4yT1+f9LemSMeqdMpMxZcc4RMWdj4tiFe3G8tNkWK+E58g+/tzotb5cU6TbcVJLr4fySiAW7XmxQvZQA== + +caniuse-lite@^1.0.30001591: version "1.0.30001596" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001596.tgz#da06b79c3d9c3d9958eb307aa832ac68ead79bee" integrity sha512-zpkZ+kEr6We7w63ORkoJ2pOfBwBkY/bJrG/UZ90qNb45Isblu8wzDgevEOrRL1r9dWayHjYiiyCMEXPn4DweGQ== @@ -332,10 +337,10 @@ cssesc@^3.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssnano-preset-default@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-6.1.0.tgz#b6f2da3c984c0e84a162862203419cce52a2fa0e" - integrity sha512-4DUXZoDj+PI3fRl3MqMjl9DwLGjcsFP4qt+92nLUcN1RGfw2TY+GwNoG2B38Usu1BrcTs8j9pxNfSusmvtSjfg== +cssnano-preset-default@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-6.1.1.tgz#d46c4022535cbc8f26da9296f45ce3471a233dab" + integrity sha512-XW/dYN2p8Jdkp1lovFd0UVRh6RB0iMyXJbAE9Qm+taR3p2LGu492AW34lVaukUrXoK9IxK5aK3CUmFpUorU4oA== dependencies: browserslist "^4.23.0" css-declaration-sorter "^7.1.1" @@ -347,12 +352,12 @@ cssnano-preset-default@^6.1.0: postcss-discard-duplicates "^6.0.3" postcss-discard-empty "^6.0.3" postcss-discard-overridden "^6.0.2" - postcss-merge-longhand "^6.0.4" - postcss-merge-rules "^6.1.0" - postcss-minify-font-values "^6.0.3" + postcss-merge-longhand "^6.0.5" + postcss-merge-rules "^6.1.1" + postcss-minify-font-values "^6.1.0" postcss-minify-gradients "^6.0.3" postcss-minify-params "^6.1.0" - postcss-minify-selectors "^6.0.3" + postcss-minify-selectors "^6.0.4" postcss-normalize-charset "^6.0.2" postcss-normalize-display-values "^6.0.2" postcss-normalize-positions "^6.0.2" @@ -366,7 +371,7 @@ cssnano-preset-default@^6.1.0: postcss-reduce-initial "^6.1.0" postcss-reduce-transforms "^6.0.2" postcss-svgo "^6.0.3" - postcss-unique-selectors "^6.0.3" + postcss-unique-selectors "^6.0.4" cssnano-utils@^4.0.2: version "4.0.2" @@ -374,11 +379,11 @@ cssnano-utils@^4.0.2: integrity sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ== cssnano@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-6.1.0.tgz#f36de7311d7f7cefe4c6d9045927611d56b6b9eb" - integrity sha512-e2v4w/t3OFM6HTuSweI4RSdABaqgVgHlJp5FZrQsopHnKKHLFIvK2D3C4kHWeFIycN/1L1J5VIrg5KlDzn3r/g== + version "6.1.1" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-6.1.1.tgz#4a5f2602256efc9198a47ab549ce21028485cfcb" + integrity sha512-paTFZuiVohpaXJuau8l7buFt9+FTmfjwEO70EKitzYOQw3frib/It4sb6cQ+gJyDEyY+myDSni6IbBvKZ0N8Lw== dependencies: - cssnano-preset-default "^6.1.0" + cssnano-preset-default "^6.1.1" lilconfig "^3.1.1" csso@^5.0.5: @@ -439,9 +444,9 @@ eastasianwidth@^0.2.0: integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== electron-to-chromium@^1.4.668: - version "1.4.699" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.699.tgz#dd53c939e13da64e94b341e563f0a3011b4ef0e9" - integrity sha512-I7q3BbQi6e4tJJN5CRcyvxhK0iJb34TV8eJQcgh+fR2fQ8miMgZcEInckCo1U9exDHbfz7DLDnFn8oqH/VcRKw== + version "1.4.711" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.711.tgz#f9fd04007878cc27ac327d5c6ce300f8b516f635" + integrity sha512-hRg81qzvUEibX2lDxnFlVCHACa+LtrCPIsWAxo161LDYIB3jauf57RGsMZV9mvGwE98yGH06icj3zBEoOkxd/w== emoji-regex@^8.0.0: version "8.0.0" @@ -960,28 +965,28 @@ postcss-load-config@^5.0.0: lilconfig "^3.0.0" yaml "^2.3.4" -postcss-merge-longhand@^6.0.4: - version "6.0.4" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-6.0.4.tgz#a96f23a31953bdf1683a66059c8a8d469d7e20e6" - integrity sha512-vAfWGcxUUGlFiPM3nDMZA+/Yo9sbpc3JNkcYZez8FfJDv41Dh7tAgA3QGVTocaHCZZL6aXPXPOaBMJsjujodsA== +postcss-merge-longhand@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz#ba8a8d473617c34a36abbea8dda2b215750a065a" + integrity sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w== dependencies: postcss-value-parser "^4.2.0" - stylehacks "^6.1.0" + stylehacks "^6.1.1" -postcss-merge-rules@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-6.1.0.tgz#f3edd175056599a284444aa6553a09d5a4440266" - integrity sha512-lER+W3Gr6XOvxOYk1Vi/6UsAgKMg6MDBthmvbNqi2XxAk/r9XfhdYZSigfWjuWWn3zYw2wLelvtM8XuAEFqRkA== +postcss-merge-rules@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz#7aa539dceddab56019469c0edd7d22b64c3dea9d" + integrity sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ== dependencies: browserslist "^4.23.0" caniuse-api "^3.0.0" cssnano-utils "^4.0.2" - postcss-selector-parser "^6.0.15" + postcss-selector-parser "^6.0.16" -postcss-minify-font-values@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-6.0.3.tgz#ed07f0e76c1345a9eaafe48b4bc15fdf62822775" - integrity sha512-SmAeTA1We5rMnN3F8X9YBNo9bj9xB4KyDHnaNJnBfQIPi+60fNiR9OTRnIaMqkYzAQX0vObIw4Pn0vuKEOettg== +postcss-minify-font-values@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz#a0e574c02ee3f299be2846369211f3b957ea4c59" + integrity sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg== dependencies: postcss-value-parser "^4.2.0" @@ -1003,12 +1008,12 @@ postcss-minify-params@^6.1.0: cssnano-utils "^4.0.2" postcss-value-parser "^4.2.0" -postcss-minify-selectors@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-6.0.3.tgz#ffc51655d52a01cc09cf90c88923d167d9012396" - integrity sha512-IcV7ZQJcaXyhx4UBpWZMsinGs2NmiUC60rJSkyvjPCPqhNjVGsrJUM+QhAtCaikZ0w0/AbZuH4wVvF/YMuMhvA== +postcss-minify-selectors@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz#197f7d72e6dd19eed47916d575d69dc38b396aff" + integrity sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ== dependencies: - postcss-selector-parser "^6.0.15" + postcss-selector-parser "^6.0.16" postcss-nested@^6.0.1: version "6.0.1" @@ -1117,10 +1122,10 @@ postcss-reporter@^7.0.0: picocolors "^1.0.0" thenby "^1.3.4" -postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.15: - version "6.0.15" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz#11cc2b21eebc0b99ea374ffb9887174855a01535" - integrity sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw== +postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.16: + version "6.0.16" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz#3b88b9f5c5abd989ef4e2fc9ec8eedd34b20fb04" + integrity sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" @@ -1141,12 +1146,12 @@ postcss-svgo@^6.0.3: postcss-value-parser "^4.2.0" svgo "^3.2.0" -postcss-unique-selectors@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-6.0.3.tgz#dbba572b842ab6fc410307172f13d362e0a836e7" - integrity sha512-NFXbYr8qdmCr/AFceaEfdcsKGCvWTeGO6QVC9h2GvtWgj0/0dklKQcaMMVzs6tr8bY+ase8hOtHW8OBTTRvS8A== +postcss-unique-selectors@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz#983ab308896b4bf3f2baaf2336e14e52c11a2088" + integrity sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg== dependencies: - postcss-selector-parser "^6.0.15" + postcss-selector-parser "^6.0.16" postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: version "4.2.0" @@ -1244,12 +1249,7 @@ slash@^5.0.0, slash@^5.1.0: resolved "https://registry.yarnpkg.com/slash/-/slash-5.1.0.tgz#be3adddcdf09ac38eebe8dcdc7b1a57a75b095ce" integrity sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg== -source-map-js@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" - integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== - -source-map-js@^1.2.0: +source-map-js@^1.0.1, source-map-js@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== @@ -1302,13 +1302,13 @@ strip-ansi@^7.0.1: dependencies: ansi-regex "^6.0.1" -stylehacks@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-6.1.0.tgz#42b922c77a0f2c83692a5c9ef07d722d4d174ecb" - integrity sha512-ETErsPFgwlfYZ/CSjMO2Ddf+TsnkCVPBPaoB99Ro8WMAxf7cglzmFsRBhRmKObFjibtcvlNxFFPHuyr3sNlNUQ== +stylehacks@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-6.1.1.tgz#543f91c10d17d00a440430362d419f79c25545a6" + integrity sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg== dependencies: browserslist "^4.23.0" - postcss-selector-parser "^6.0.15" + postcss-selector-parser "^6.0.16" sucrase@^3.32.0: version "3.35.0" From fcb986eca2fa3868ad98d6a359e1fdb23f20afdd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 20 Mar 2024 21:30:17 +0000 Subject: [PATCH 058/162] Update dependency postcss-import to v16.1.0 --- website/yarn.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/yarn.lock b/website/yarn.lock index 2ba48d21..a07a2d17 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -594,9 +594,9 @@ graceful-fs@^4.1.6, graceful-fs@^4.2.0: integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== hasown@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.1.tgz#26f48f039de2c0f8d3356c223fb8d50253519faa" - integrity sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA== + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== dependencies: function-bind "^1.1.2" @@ -934,9 +934,9 @@ postcss-import@^15.1.0: resolve "^1.1.7" postcss-import@^16.0.0: - version "16.0.1" - resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-16.0.1.tgz#c2e0478c5af8cb39ab3964c35d8fee8e70c362b8" - integrity sha512-i2Pci0310NaLHr/5JUFSw1j/8hf1CzwMY13g6ZDxgOavmRHQi2ba3PmUHoihO+sjaum+KmCNzskNsw7JDrg03g== + version "16.1.0" + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-16.1.0.tgz#258732175518129667fe1e2e2a05b19b5654b96a" + integrity sha512-7hsAZ4xGXl4MW+OKEWCnF6T5jqBw80/EE9aXg1r2yyn1RsVEU8EtKXbijEODa+rg7iih4bKf7vlvTGYR4CnPNg== dependencies: postcss-value-parser "^4.0.0" read-cache "^1.0.0" From 2357547e70d5ed4cd508814c187d009b8b5b32cc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 21 Mar 2024 02:31:23 +0000 Subject: [PATCH 059/162] Update dependency autoprefixer to v10.4.19 --- website/yarn.lock | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/website/yarn.lock b/website/yarn.lock index a07a2d17..f5c54aab 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -155,12 +155,12 @@ arg@^5.0.2: integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== autoprefixer@^10.4: - version "10.4.18" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.18.tgz#fcb171a3b017be7cb5d8b7a825f5aacbf2045163" - integrity sha512-1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g== + version "10.4.19" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.19.tgz#ad25a856e82ee9d7898c59583c1afeb3fa65f89f" + integrity sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew== dependencies: browserslist "^4.23.0" - caniuse-lite "^1.0.30001591" + caniuse-lite "^1.0.30001599" fraction.js "^4.3.7" normalize-range "^0.1.2" picocolors "^1.0.0" @@ -220,16 +220,11 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001587: +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001587, caniuse-lite@^1.0.30001599: version "1.0.30001599" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001599.tgz#571cf4f3f1506df9bf41fcbb6d10d5d017817bce" integrity sha512-LRAQHZ4yT1+f9LemSMeqdMpMxZcc4RMWdj4tiFe3G8tNkWK+E58g+/tzotb5cU6TbcVJLr4fySiAW7XmxQvZQA== -caniuse-lite@^1.0.30001591: - version "1.0.30001596" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001596.tgz#da06b79c3d9c3d9958eb307aa832ac68ead79bee" - integrity sha512-zpkZ+kEr6We7w63ORkoJ2pOfBwBkY/bJrG/UZ90qNb45Isblu8wzDgevEOrRL1r9dWayHjYiiyCMEXPn4DweGQ== - chokidar@^3.3.0, chokidar@^3.5.3: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" @@ -444,9 +439,9 @@ eastasianwidth@^0.2.0: integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== electron-to-chromium@^1.4.668: - version "1.4.711" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.711.tgz#f9fd04007878cc27ac327d5c6ce300f8b516f635" - integrity sha512-hRg81qzvUEibX2lDxnFlVCHACa+LtrCPIsWAxo161LDYIB3jauf57RGsMZV9mvGwE98yGH06icj3zBEoOkxd/w== + version "1.4.713" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.713.tgz#7cd8e4083c948f8d0cc686fcfdde97d97fd76556" + integrity sha512-vDarADhwntXiULEdmWd77g2dV6FrNGa8ecAC29MZ4TwPut2fvosD0/5sJd1qWNNe8HcJFAC+F5Lf9jW1NPtWmw== emoji-regex@^8.0.0: version "8.0.0" From 753db5f9e4995d7d7eb8ec124931ced5dde0d2d2 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Thu, 21 Mar 2024 06:25:02 +0000 Subject: [PATCH 060/162] Update calev-circe, calev-core, calev-fs2 to 0.7.2 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 9fd04c8b..6d7e9687 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -8,7 +8,7 @@ object Dependencies { val BcryptVersion = "0.4" val BetterMonadicForVersion = "0.3.1" val BinnyVersion = "0.11.0" - val CalevVersion = "0.7.0" + val CalevVersion = "0.7.2" val CatsVersion = "2.10.0" val CatsEffectVersion = "3.5.4" val CatsParseVersion = "1.0.0" From aaedb45d966499a38ed344ce9541be330b230e43 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 21 Mar 2024 03:05:32 +0000 Subject: [PATCH 061/162] Update dependency postcss to v8.4.38 --- website/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/website/yarn.lock b/website/yarn.lock index f5c54aab..e4bcf529 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -1154,9 +1154,9 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== postcss@^8.4.23, postcss@^8.4.4, postcss@^8.4.5: - version "8.4.37" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.37.tgz#4505f992cd0c20e03d25f13b31901640b2db731a" - integrity sha512-7iB/v/r7Woof0glKLH8b1SPHrsX7uhdO+Geb41QpF/+mWZHU3uxxSlN+UXGVit1PawOYDToO+AbZzhBzWRDwbQ== + version "8.4.38" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.38.tgz#b387d533baf2054288e337066d81c6bee9db9e0e" + integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A== dependencies: nanoid "^3.3.7" picocolors "^1.0.0" From faf5caffbeea231ab21e6e7d21a3f04d02273c4f Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Fri, 22 Mar 2024 06:25:14 +0000 Subject: [PATCH 062/162] Update scribe, scribe-slf4j2 to 3.13.2 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 6d7e9687..3736d55d 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -42,7 +42,7 @@ object Dependencies { val PureConfigVersion = "0.17.6" val ScalaJavaTimeVersion = "2.5.0" val ScodecBitsVersion = "1.1.38" - val ScribeVersion = "3.13.1" + val ScribeVersion = "3.13.2" val Slf4jVersion = "2.0.12" val SourcecodeVersion = "0.3.1" val StanfordNlpVersion = "4.5.6" From 78d8e7c054dbe9d6fda34c2e324988fae16f654a Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Mon, 25 Mar 2024 06:27:04 +0000 Subject: [PATCH 063/162] Update fs2-core, fs2-io to 3.10.1 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 3736d55d..fad284e9 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -20,7 +20,7 @@ object Dependencies { val EmilVersion = "0.17.0" val FlexmarkVersion = "0.64.8" val FlywayVersion = "10.10.0" - val Fs2Version = "3.10.0" + val Fs2Version = "3.10.1" val H2Version = "2.2.224" val Http4sVersion = "0.23.26" val Icu4jVersion = "74.2" From 0b1c924997e0284d87f6d9534ac91302c3c57391 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 25 Mar 2024 19:41:29 +0000 Subject: [PATCH 064/162] Update dependency cssnano to v6.1.2 --- website/yarn.lock | 39 ++++++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/website/yarn.lock b/website/yarn.lock index e4bcf529..1a9a054f 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -220,7 +220,12 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001587, caniuse-lite@^1.0.30001599: +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001587: + version "1.0.30001600" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001600.tgz#93a3ee17a35aa6a9f0c6ef1b2ab49507d1ab9079" + integrity sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ== + +caniuse-lite@^1.0.30001599: version "1.0.30001599" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001599.tgz#571cf4f3f1506df9bf41fcbb6d10d5d017817bce" integrity sha512-LRAQHZ4yT1+f9LemSMeqdMpMxZcc4RMWdj4tiFe3G8tNkWK+E58g+/tzotb5cU6TbcVJLr4fySiAW7XmxQvZQA== @@ -290,10 +295,10 @@ cross-spawn@^7.0.0: shebang-command "^2.0.0" which "^2.0.1" -css-declaration-sorter@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-7.1.1.tgz#9796bcc257b4647c39993bda8d431ce32b666f80" - integrity sha512-dZ3bVTEEc1vxr3Bek9vGwfB5Z6ESPULhcRvO472mfjVnj8jRcTnKO8/JTczlvxM10Myb+wBM++1MtdO76eWcaQ== +css-declaration-sorter@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz#6dec1c9523bc4a643e088aab8f09e67a54961024" + integrity sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow== css-select@^5.1.0: version "5.1.0" @@ -332,13 +337,13 @@ cssesc@^3.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssnano-preset-default@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-6.1.1.tgz#d46c4022535cbc8f26da9296f45ce3471a233dab" - integrity sha512-XW/dYN2p8Jdkp1lovFd0UVRh6RB0iMyXJbAE9Qm+taR3p2LGu492AW34lVaukUrXoK9IxK5aK3CUmFpUorU4oA== +cssnano-preset-default@^6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz#adf4b89b975aa775f2750c89dbaf199bbd9da35e" + integrity sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg== dependencies: browserslist "^4.23.0" - css-declaration-sorter "^7.1.1" + css-declaration-sorter "^7.2.0" cssnano-utils "^4.0.2" postcss-calc "^9.0.1" postcss-colormin "^6.1.0" @@ -374,11 +379,11 @@ cssnano-utils@^4.0.2: integrity sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ== cssnano@^6.0.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-6.1.1.tgz#4a5f2602256efc9198a47ab549ce21028485cfcb" - integrity sha512-paTFZuiVohpaXJuau8l7buFt9+FTmfjwEO70EKitzYOQw3frib/It4sb6cQ+gJyDEyY+myDSni6IbBvKZ0N8Lw== + version "6.1.2" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-6.1.2.tgz#4bd19e505bd37ee7cf0dc902d3d869f6d79c66b8" + integrity sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA== dependencies: - cssnano-preset-default "^6.1.1" + cssnano-preset-default "^6.1.2" lilconfig "^3.1.1" csso@^5.0.5: @@ -439,9 +444,9 @@ eastasianwidth@^0.2.0: integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== electron-to-chromium@^1.4.668: - version "1.4.713" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.713.tgz#7cd8e4083c948f8d0cc686fcfdde97d97fd76556" - integrity sha512-vDarADhwntXiULEdmWd77g2dV6FrNGa8ecAC29MZ4TwPut2fvosD0/5sJd1qWNNe8HcJFAC+F5Lf9jW1NPtWmw== + version "1.4.716" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.716.tgz#90c229ce0af2ad3b6e54472af1200e07f10293a4" + integrity sha512-t/MXMzFKQC3UfMDpw7V5wdB/UAB8dWx4hEsy+fpPYJWW3gqh3u5T1uXp6vR+H6dGCPBxkRo+YBcapBLvbGQHRw== emoji-regex@^8.0.0: version "8.0.0" From e8f2bedecd8390dbcf368cfeae42742996975b66 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 26 Mar 2024 21:54:46 +0000 Subject: [PATCH 065/162] Update dependency flag-icons to v7.2.1 --- modules/webapp/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/webapp/package-lock.json b/modules/webapp/package-lock.json index 0f33abd6..a015ad3c 100644 --- a/modules/webapp/package-lock.json +++ b/modules/webapp/package-lock.json @@ -450,9 +450,9 @@ } }, "node_modules/flag-icons": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/flag-icons/-/flag-icons-7.2.0.tgz", - "integrity": "sha512-0ZQ5gzCoCBb6A6QQS59DUazZWxs9za8olMXnuYbvtUbBfM45+/CQm+i2lvn6aDct6SKyAe6MUFQLgYk7kn49+A==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/flag-icons/-/flag-icons-7.2.1.tgz", + "integrity": "sha512-EaU4XZmFt1BOilz9nMmJKjma5pOaNjzL7somOhadrrilollh4xj6aaXI2M1sd00VUfVWN0E25Q6xaW3SNt0k/Q==", "dev": true }, "node_modules/foreground-child": { From cdf6a75b4e61c57822a03c61028fff1d9d54df92 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Wed, 27 Mar 2024 06:24:58 +0000 Subject: [PATCH 066/162] Update swagger-ui to 5.12.2 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index fad284e9..822896d9 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -48,7 +48,7 @@ object Dependencies { val StanfordNlpVersion = "4.5.6" val TikaVersion = "2.9.1" val YamuscaVersion = "0.10.0" - val SwaggerUIVersion = "5.12.0" + val SwaggerUIVersion = "5.12.2" val TestContainerVersion = "0.40.14" val TwelveMonkeysVersion = "3.10.1" val JQueryVersion = "3.5.1" From 21beefdc39b1510574e68e6da4245cbcdacf8102 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 27 Mar 2024 16:49:18 +0000 Subject: [PATCH 067/162] Update dependency tailwindcss to v3.4.2 --- website/yarn.lock | 90 ++++++++++++++++++++++++++--------------------- 1 file changed, 50 insertions(+), 40 deletions(-) diff --git a/website/yarn.lock b/website/yarn.lock index 1a9a054f..4ca6c41f 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -40,33 +40,33 @@ wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" "@jridgewell/gen-mapping@^0.3.2": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" - integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== dependencies: - "@jridgewell/set-array" "^1.0.1" + "@jridgewell/set-array" "^1.2.1" "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" + "@jridgewell/trace-mapping" "^0.3.24" "@jridgewell/resolve-uri@^3.1.0": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" - integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== -"@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": version "1.4.15" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== -"@jridgewell/trace-mapping@^0.3.9": - version "0.3.20" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f" - integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q== +"@jridgewell/trace-mapping@^0.3.24": + version "0.3.25" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== dependencies: "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" @@ -172,9 +172,9 @@ balanced-match@^1.0.0: integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + version "2.3.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== boolbase@^1.0.0: version "1.0.0" @@ -230,7 +230,7 @@ caniuse-lite@^1.0.30001599: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001599.tgz#571cf4f3f1506df9bf41fcbb6d10d5d017817bce" integrity sha512-LRAQHZ4yT1+f9LemSMeqdMpMxZcc4RMWdj4tiFe3G8tNkWK+E58g+/tzotb5cU6TbcVJLr4fySiAW7XmxQvZQA== -chokidar@^3.3.0, chokidar@^3.5.3: +chokidar@^3.3.0: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -245,6 +245,21 @@ chokidar@^3.3.0, chokidar@^3.5.3: optionalDependencies: fsevents "~2.3.2" +chokidar@^3.5.3: + version "3.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + cliui@^8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" @@ -480,9 +495,9 @@ fast-glob@^3.3.0, fast-glob@^3.3.2: micromatch "^4.0.4" fastq@^1.6.0: - version "1.16.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.16.0.tgz#83b9a9375692db77a822df081edb6a9cf6839320" - integrity sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA== + version "1.17.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" + integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== dependencies: reusify "^1.0.4" @@ -668,7 +683,7 @@ jackspeak@^2.3.5: optionalDependencies: "@pkgjs/parseargs" "^0.11.0" -jiti@^1.19.1: +jiti@^1.21.0: version "1.21.0" resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d" integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== @@ -687,12 +702,7 @@ lilconfig@^2.1.0: resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== -lilconfig@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.0.0.tgz#f8067feb033b5b74dab4602a5f5029420be749bc" - integrity sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g== - -lilconfig@^3.1.1: +lilconfig@^3.0.0, lilconfig@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.1.tgz#9d8a246fa753106cfc205fd2d77042faca56e5e3" integrity sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ== @@ -713,9 +723,9 @@ lodash.uniq@^4.5.0: integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== "lru-cache@^9.1.1 || ^10.0.0": - version "10.1.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.1.0.tgz#2098d41c2dc56500e6c88584aa656c84de7d0484" - integrity sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag== + version "10.2.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.0.tgz#0bd445ca57363465900f4d1f9bd8db343a4d95c3" + integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q== mdn-data@2.0.28: version "2.0.28" @@ -1342,9 +1352,9 @@ svgo@^3.2.0: picocolors "^1.0.0" tailwindcss@^3.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.1.tgz#f512ca5d1dd4c9503c7d3d28a968f1ad8f5c839d" - integrity sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA== + version "3.4.2" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.2.tgz#c983ea21ec1e561ede9a2fe98aadb840bee89fda" + integrity sha512-1kIzVecynNKMhhX8mPTOwTkkVHupUTMbEvk4n1ByxdM8sQTJ8fE41Y4TdORG6GmiVXHhfZ/++0hiIFJFwfadsA== dependencies: "@alloc/quick-lru" "^5.2.0" arg "^5.0.2" @@ -1354,7 +1364,7 @@ tailwindcss@^3.0: fast-glob "^3.3.0" glob-parent "^6.0.2" is-glob "^4.0.3" - jiti "^1.19.1" + jiti "^1.21.0" lilconfig "^2.1.0" micromatch "^4.0.5" normalize-path "^3.0.0" @@ -1468,9 +1478,9 @@ y18n@^5.0.5: integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== yaml@^2.3.4: - version "2.3.4" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.4.tgz#53fc1d514be80aabf386dc6001eb29bf3b7523b2" - integrity sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA== + version "2.4.1" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.1.tgz#2e57e0b5e995292c25c75d2658f0664765210eed" + integrity sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg== yargs-parser@^21.1.1: version "21.1.1" From 53efb79cbc06d6e5b1bf75fe7256c9a4a8fb8f95 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 27 Mar 2024 21:10:38 +0000 Subject: [PATCH 068/162] Update dependency tailwindcss to v3.4.3 --- website/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/website/yarn.lock b/website/yarn.lock index 4ca6c41f..a3ec623e 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -1352,9 +1352,9 @@ svgo@^3.2.0: picocolors "^1.0.0" tailwindcss@^3.0: - version "3.4.2" - resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.2.tgz#c983ea21ec1e561ede9a2fe98aadb840bee89fda" - integrity sha512-1kIzVecynNKMhhX8mPTOwTkkVHupUTMbEvk4n1ByxdM8sQTJ8fE41Y4TdORG6GmiVXHhfZ/++0hiIFJFwfadsA== + version "3.4.3" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.3.tgz#be48f5283df77dfced705451319a5dffb8621519" + integrity sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A== dependencies: "@alloc/quick-lru" "^5.2.0" arg "^5.0.2" From cf4f0738dab7062ddf6a17286b628ee80d6ed54e Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Fri, 29 Mar 2024 06:24:59 +0000 Subject: [PATCH 069/162] Update fs2-core, fs2-io to 3.10.2 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 822896d9..0db95089 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -20,7 +20,7 @@ object Dependencies { val EmilVersion = "0.17.0" val FlexmarkVersion = "0.64.8" val FlywayVersion = "10.10.0" - val Fs2Version = "3.10.1" + val Fs2Version = "3.10.2" val H2Version = "2.2.224" val Http4sVersion = "0.23.26" val Icu4jVersion = "74.2" From 93a320bb72d1ecb863d473ed86db70f2ea2d9666 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Fri, 29 Mar 2024 06:25:04 +0000 Subject: [PATCH 070/162] Update commons-io to 2.16.0 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 822896d9..87dc40d4 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -219,7 +219,7 @@ object Dependencies { "org.apache.tika" % "tika-core" % TikaVersion ) val commonsIO = Seq( - "commons-io" % "commons-io" % "2.15.1" + "commons-io" % "commons-io" % "2.16.0" ) val tikaParser = Seq( "org.apache.tika" % "tika-parsers" % TikaVersion From 38b4562dc540130bcfbbb9adbb025a54d4fddc00 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Sat, 30 Mar 2024 06:24:29 +0000 Subject: [PATCH 071/162] Update scalafmt-core to 3.8.1 --- .scalafmt.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.scalafmt.conf b/.scalafmt.conf index 45fff15e..34c79196 100644 --- a/.scalafmt.conf +++ b/.scalafmt.conf @@ -1,4 +1,4 @@ -version = "3.7.17" +version = "3.8.1" preset = default align.preset = some From 231ce0022d5575f417ec638058bfe3c7fc4c544e Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Sat, 30 Mar 2024 06:24:48 +0000 Subject: [PATCH 072/162] Update swagger-ui to 5.13.0 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index dbe766a6..70719c77 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -48,7 +48,7 @@ object Dependencies { val StanfordNlpVersion = "4.5.6" val TikaVersion = "2.9.1" val YamuscaVersion = "0.10.0" - val SwaggerUIVersion = "5.12.2" + val SwaggerUIVersion = "5.13.0" val TestContainerVersion = "0.40.14" val TwelveMonkeysVersion = "3.10.1" val JQueryVersion = "3.5.1" From 76523d77b4f253b954ff19618bfdb932c501c4f2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 2 Apr 2024 19:07:05 +0000 Subject: [PATCH 073/162] Update dependency @fortawesome/fontawesome-free to v6.5.2 --- modules/webapp/package-lock.json | 6 +++--- website/yarn.lock | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/webapp/package-lock.json b/modules/webapp/package-lock.json index a015ad3c..33182ff0 100644 --- a/modules/webapp/package-lock.json +++ b/modules/webapp/package-lock.json @@ -27,9 +27,9 @@ } }, "node_modules/@fortawesome/fontawesome-free": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.5.1.tgz", - "integrity": "sha512-CNy5vSwN3fsUStPRLX7fUYojyuzoEMSXPl7zSLJ8TgtRfjv24LOnOWKT2zYwaHZCJGkdyRnTmstR0P+Ah503Gw==", + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.5.2.tgz", + "integrity": "sha512-hRILoInAx8GNT5IMkrtIt9blOdrqHOnPBH+k70aWUAqPZPgopb9G5EQJFpaBx/S8zp2fC+mPW349Bziuk1o28Q==", "dev": true, "hasInstallScript": true, "engines": { diff --git a/website/yarn.lock b/website/yarn.lock index a3ec623e..bc67303f 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -23,9 +23,9 @@ integrity sha512-tscRgEvVW/eRnBaGRnnlg86rx0NUMGzXFNePFBIXqdZE++9hOH0RTUqtpzUR+zS037kgbkitaVqotyGY8Vq+jw== "@fortawesome/fontawesome-free@^6.0.0": - version "6.5.1" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-6.5.1.tgz#55cc8410abf1003b726324661ce5b0d1c10de258" - integrity sha512-CNy5vSwN3fsUStPRLX7fUYojyuzoEMSXPl7zSLJ8TgtRfjv24LOnOWKT2zYwaHZCJGkdyRnTmstR0P+Ah503Gw== + version "6.5.2" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-6.5.2.tgz#310fe90cb5a8dee9698833171b98e7835404293d" + integrity sha512-hRILoInAx8GNT5IMkrtIt9blOdrqHOnPBH+k70aWUAqPZPgopb9G5EQJFpaBx/S8zp2fC+mPW349Bziuk1o28Q== "@isaacs/cliui@^8.0.2": version "8.0.2" From 84174056ade6f6bd836e3e57baf5efe621a16244 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Wed, 3 Apr 2024 06:24:52 +0000 Subject: [PATCH 074/162] Update tika-core to 2.9.2 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 70719c77..de2d51b0 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -46,7 +46,7 @@ object Dependencies { val Slf4jVersion = "2.0.12" val SourcecodeVersion = "0.3.1" val StanfordNlpVersion = "4.5.6" - val TikaVersion = "2.9.1" + val TikaVersion = "2.9.2" val YamuscaVersion = "0.10.0" val SwaggerUIVersion = "5.13.0" val TestContainerVersion = "0.40.14" From 9d072f31e0fc50fbf47bf664b992f908d9cd4e72 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Tue, 9 Apr 2024 06:25:47 +0000 Subject: [PATCH 075/162] Update commons-io to 2.16.1 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index de2d51b0..47c87316 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -219,7 +219,7 @@ object Dependencies { "org.apache.tika" % "tika-core" % TikaVersion ) val commonsIO = Seq( - "commons-io" % "commons-io" % "2.16.0" + "commons-io" % "commons-io" % "2.16.1" ) val tikaParser = Seq( "org.apache.tika" % "tika-parsers" % TikaVersion From 9ac3055d2064b2c67b74c7db523f46aedcff9afc Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Thu, 11 Apr 2024 06:25:36 +0000 Subject: [PATCH 076/162] Update swagger-ui to 5.15.0 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 47c87316..1645c518 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -48,7 +48,7 @@ object Dependencies { val StanfordNlpVersion = "4.5.6" val TikaVersion = "2.9.2" val YamuscaVersion = "0.10.0" - val SwaggerUIVersion = "5.13.0" + val SwaggerUIVersion = "5.15.0" val TestContainerVersion = "0.40.14" val TwelveMonkeysVersion = "3.10.1" val JQueryVersion = "3.5.1" From e97dda23a8eb71b95ca86a588aff2cee65a1d6a4 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Fri, 12 Apr 2024 06:25:59 +0000 Subject: [PATCH 077/162] Update swagger-ui to 5.15.1 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 1645c518..6c1783f9 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -48,7 +48,7 @@ object Dependencies { val StanfordNlpVersion = "4.5.6" val TikaVersion = "2.9.2" val YamuscaVersion = "0.10.0" - val SwaggerUIVersion = "5.15.0" + val SwaggerUIVersion = "5.15.1" val TestContainerVersion = "0.40.14" val TwelveMonkeysVersion = "3.10.1" val JQueryVersion = "3.5.1" From 15b73be1d7834610ebc0df1df98ac7f9ffe849de Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Sat, 13 Apr 2024 06:20:39 +0000 Subject: [PATCH 078/162] Update sbt-native-packager to 1.10.0 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index 4390668f..3259f9c4 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -4,7 +4,7 @@ addSbtPlugin("com.github.eikek" % "sbt-openapi-schema" % "0.13.1") addSbtPlugin("com.github.sbt" % "sbt-pgp" % "2.2.1") addSbtPlugin("com.github.sbt" % "sbt-release" % "1.4.0") addSbtPlugin("com.github.sbt" % "sbt-git" % "2.0.1") -addSbtPlugin("com.github.sbt" % "sbt-native-packager" % "1.9.16") +addSbtPlugin("com.github.sbt" % "sbt-native-packager" % "1.10.0") addSbtPlugin("de.heikoseeberger" % "sbt-header" % "5.10.0") addSbtPlugin("io.kevinlee" % "sbt-github-pages" % "0.14.0") addSbtPlugin("io.spray" % "sbt-revolver" % "0.10.0") From 826930827fda419b4b7dbd76c1c639fd4de3d5e4 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Sat, 13 Apr 2024 06:20:43 +0000 Subject: [PATCH 079/162] Update jcl-over-slf4j to 2.0.13 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 6c1783f9..fcdcfe8c 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -43,7 +43,7 @@ object Dependencies { val ScalaJavaTimeVersion = "2.5.0" val ScodecBitsVersion = "1.1.38" val ScribeVersion = "3.13.2" - val Slf4jVersion = "2.0.12" + val Slf4jVersion = "2.0.13" val SourcecodeVersion = "0.3.1" val StanfordNlpVersion = "4.5.6" val TikaVersion = "2.9.2" From fa9c42f4b13d90c4a6012982ad6b75ea1b4f23a1 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Mon, 15 Apr 2024 06:25:10 +0000 Subject: [PATCH 080/162] Update sourcecode to 0.4.0 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index fcdcfe8c..a6ff93a8 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -44,7 +44,7 @@ object Dependencies { val ScodecBitsVersion = "1.1.38" val ScribeVersion = "3.13.2" val Slf4jVersion = "2.0.13" - val SourcecodeVersion = "0.3.1" + val SourcecodeVersion = "0.4.0" val StanfordNlpVersion = "4.5.6" val TikaVersion = "2.9.2" val YamuscaVersion = "0.10.0" From ca32f248045828049342a5c0dae3fce1eb080722 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Tue, 16 Apr 2024 06:25:50 +0000 Subject: [PATCH 081/162] Update sourcecode to 0.4.1 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index a6ff93a8..a0d147dd 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -44,7 +44,7 @@ object Dependencies { val ScodecBitsVersion = "1.1.38" val ScribeVersion = "3.13.2" val Slf4jVersion = "2.0.13" - val SourcecodeVersion = "0.4.0" + val SourcecodeVersion = "0.4.1" val StanfordNlpVersion = "4.5.6" val TikaVersion = "2.9.2" val YamuscaVersion = "0.10.0" From e731d822dc1958b3a162a20b3b2bce0cb94bbf70 Mon Sep 17 00:00:00 2001 From: tenpai Date: Tue, 16 Apr 2024 18:24:57 +0000 Subject: [PATCH 082/162] Add Japanese Vertical Support Branch for Tesseract and Ocrmypdf OCR (#2505) * Add Japanese Vertical Support * Adds Japanese Vertical mappings to default configuration. --- docker/dockerfiles/joex.dockerfile | 2 +- .../docspell/analysis/date/DateFind.scala | 1 + .../docspell/analysis/date/MonthName.scala | 2 + .../main/scala/docspell/common/Language.scala | 6 +++ .../docspell/ftspsql/FtsRepository.scala | 1 + .../joex/src/main/resources/reference.conf | 48 +++++++++++++++++-- modules/webapp/package.json | 3 ++ modules/webapp/src/main/elm/Data/Language.elm | 8 ++++ .../src/main/elm/Messages/Data/Language.elm | 9 ++++ 9 files changed, 75 insertions(+), 5 deletions(-) diff --git a/docker/dockerfiles/joex.dockerfile b/docker/dockerfiles/joex.dockerfile index df9c90c6..6d996521 100644 --- a/docker/dockerfiles/joex.dockerfile +++ b/docker/dockerfiles/joex.dockerfile @@ -77,7 +77,7 @@ RUN \ wget https://github.com/tesseract-ocr/tessdata/raw/main/khm.traineddata && \ mv khm.traineddata /usr/share/tessdata -# Using these data files for japanese, because they work better. See #973 +# Using these data files for japanese, because they work better. Includes vertical data. See #973 and #2445. RUN \ wget https://raw.githubusercontent.com/tesseract-ocr/tessdata_fast/master/jpn_vert.traineddata && \ wget https://raw.githubusercontent.com/tesseract-ocr/tessdata_fast/master/jpn.traineddata && \ diff --git a/modules/analysis/src/main/scala/docspell/analysis/date/DateFind.scala b/modules/analysis/src/main/scala/docspell/analysis/date/DateFind.scala index 1260a3db..c78bc81b 100644 --- a/modules/analysis/src/main/scala/docspell/analysis/date/DateFind.scala +++ b/modules/analysis/src/main/scala/docspell/analysis/date/DateFind.scala @@ -125,6 +125,7 @@ object DateFind { case Language.Dutch => dmy.or(ymd).or(mdy) case Language.Latvian => dmy.or(lavLong).or(ymd) case Language.Japanese => ymd + case Language.JpnVert => ymd case Language.Hebrew => dmy case Language.Lithuanian => ymd case Language.Polish => dmy diff --git a/modules/analysis/src/main/scala/docspell/analysis/date/MonthName.scala b/modules/analysis/src/main/scala/docspell/analysis/date/MonthName.scala index b646b46b..4693440e 100644 --- a/modules/analysis/src/main/scala/docspell/analysis/date/MonthName.scala +++ b/modules/analysis/src/main/scala/docspell/analysis/date/MonthName.scala @@ -54,6 +54,8 @@ object MonthName { latvian case Language.Japanese => japanese + case Language.JpnVert => + japanese case Language.Hebrew => hebrew case Language.Lithuanian => diff --git a/modules/common/src/main/scala/docspell/common/Language.scala b/modules/common/src/main/scala/docspell/common/Language.scala index 7b7ef815..d1ae6e06 100644 --- a/modules/common/src/main/scala/docspell/common/Language.scala +++ b/modules/common/src/main/scala/docspell/common/Language.scala @@ -123,6 +123,11 @@ object Language { val iso3 = "jpn" } + /*It's not an ISO value, but this needs to be unique and tesseract will need jpn_vert for it's scan from the config of /etc/docspell-joex/docspell-joex.conf.*/ + case object JpnVert extends Language { + val iso2 = "ja_vert" + val iso3 = "jpn_vert" + } case object Hebrew extends Language { val iso2 = "he" val iso3 = "heb" @@ -172,6 +177,7 @@ object Language { Romanian, Latvian, Japanese, + JpnVert, Hebrew, Lithuanian, Polish, diff --git a/modules/fts-psql/src/main/scala/docspell/ftspsql/FtsRepository.scala b/modules/fts-psql/src/main/scala/docspell/ftspsql/FtsRepository.scala index eecacbc9..1be93be7 100644 --- a/modules/fts-psql/src/main/scala/docspell/ftspsql/FtsRepository.scala +++ b/modules/fts-psql/src/main/scala/docspell/ftspsql/FtsRepository.scala @@ -201,6 +201,7 @@ object FtsRepository extends DoobieMeta { case Language.Czech => "simple" case Language.Latvian => "simple" case Language.Japanese => "simple" + case Language.JpnVert => "simple" case Language.Hebrew => "simple" case Language.Lithuanian => "simple" case Language.Polish => "simple" diff --git a/modules/joex/src/main/resources/reference.conf b/modules/joex/src/main/resources/reference.conf index 3f740c7d..fc54bae4 100644 --- a/modules/joex/src/main/resources/reference.conf +++ b/modules/joex/src/main/resources/reference.conf @@ -593,13 +593,32 @@ Docpell Update Check # To convert image files to PDF files, tesseract is used. This # also extracts the text in one go. tesseract = { + # Custom Language Mappings Below + # Japanese Vertical Mapping + arg-mappings = { + "tesseract_lang" = { + value = "{{lang}}" + mappings = [ + { + matches = "jpn_vert" + args = [ "-l", "jpn_vert", "-c", "preserve_interword_spaces=1" ] + }, + # Start Other Custom Language Mappings Here + # Default Mapping Below + { + matches = ".*" + args = [ "-l", "{{lang}}" ] + } + ] + } + } command = { program = "tesseract" + # Default arguments for all processing go below. args = [ "{{infile}}", "out", - "-l", - "{{lang}}", + "{{tesseract_lang}}", "pdf", "txt" ] @@ -648,11 +667,32 @@ Docpell Update Check # (where ocr is not necessary). In this case, the pdf will be # converted to PDF/A. ocrmypdf = { + # Custom argument mappings for this program. + arg-mappings = { + "ocr_lang" = { + value = "{{lang}}" + # Custom Language Mappings Below + # Japanese Vertical Mapping + mappings = [ + { + matches = "jpn_vert" + args = [ "-l", "jpn_vert", "--pdf-renderer", "sandwich", "--tesseract-pagesegmode", "5" ] + }, + # Start Other Custom Language Mappings Here + # Default Mapping Below + { + matches = ".*" + args = [ "-l", "{{lang}}" ] + } + ] + } + } enabled = true command = { program = "ocrmypdf" + # Default arguments for all processing go below. args = [ - "-l", "{{lang}}", + "{{ocr_lang}}", "--skip-text", "--deskew", "-j", "1", @@ -893,4 +933,4 @@ Docpell Update Check } } } -} \ No newline at end of file +} diff --git a/modules/webapp/package.json b/modules/webapp/package.json index cb22d3df..689843cf 100644 --- a/modules/webapp/package.json +++ b/modules/webapp/package.json @@ -6,5 +6,8 @@ "@fortawesome/fontawesome-free": "^6.0.0", "@tailwindcss/forms": "^0.5.0", "flag-icons": "^7.2.0" + }, + "dependencies": { + "tailwindcss": "^3.4.1" } } diff --git a/modules/webapp/src/main/elm/Data/Language.elm b/modules/webapp/src/main/elm/Data/Language.elm index 0d863f38..56a6f69b 100644 --- a/modules/webapp/src/main/elm/Data/Language.elm +++ b/modules/webapp/src/main/elm/Data/Language.elm @@ -30,6 +30,7 @@ type Language | Dutch | Latvian | Japanese + | JpnVert | Hebrew | Hungarian | Lithuanian @@ -90,6 +91,9 @@ fromString str = else if str == "jpn" || str == "ja" || str == "japanese" then Just Japanese + else if str == "jpn_vert" || str == "ja_vert" || str == "jpnvert" then + Just JpnVert + else if str == "heb" || str == "he" || str == "hebrew" then Just Hebrew @@ -169,6 +173,9 @@ toIso3 lang = Japanese -> "jpn" + JpnVert -> + "jpn_vert" + Hebrew -> "heb" @@ -212,6 +219,7 @@ all = , Romanian , Latvian , Japanese + , JpnVert , Hebrew , Hungarian , Lithuanian diff --git a/modules/webapp/src/main/elm/Messages/Data/Language.elm b/modules/webapp/src/main/elm/Messages/Data/Language.elm index 2369a5a4..3bba9d7e 100644 --- a/modules/webapp/src/main/elm/Messages/Data/Language.elm +++ b/modules/webapp/src/main/elm/Messages/Data/Language.elm @@ -65,6 +65,9 @@ gb lang = Japanese -> "Japanese" + JpnVert -> + "JpnVert" + Hebrew -> "Hebrew" @@ -141,6 +144,9 @@ de lang = Japanese -> "Japanisch" + JpnVert -> + "JpnVert" + Hebrew -> "Hebräisch" @@ -217,6 +223,9 @@ fr lang = Japanese -> "Japonnais" + JpnVert -> + "JpnVert" + Hebrew -> "Hébreu" From 0b901ea4302c7f7890d188e45bff6e5502536082 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Wed, 17 Apr 2024 06:28:07 +0000 Subject: [PATCH 083/162] Update icu4j to 75.1 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index a0d147dd..fe759350 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -23,7 +23,7 @@ object Dependencies { val Fs2Version = "3.10.2" val H2Version = "2.2.224" val Http4sVersion = "0.23.26" - val Icu4jVersion = "74.2" + val Icu4jVersion = "75.1" val JavaOtpVersion = "0.4.0" val JsoupVersion = "1.17.2" val JwtScalaVersion = "10.0.0" From 21b1590a1d58de425197ab9d29e1d2394d8e2a1c Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Wed, 17 Apr 2024 06:28:14 +0000 Subject: [PATCH 084/162] Update swagger-ui to 5.15.2 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index a0d147dd..396af96c 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -48,7 +48,7 @@ object Dependencies { val StanfordNlpVersion = "4.5.6" val TikaVersion = "2.9.2" val YamuscaVersion = "0.10.0" - val SwaggerUIVersion = "5.15.1" + val SwaggerUIVersion = "5.15.2" val TestContainerVersion = "0.40.14" val TwelveMonkeysVersion = "3.10.1" val JQueryVersion = "3.5.1" From c3a7c1347c942aa707a0298afd13b4824aedd9ce Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Thu, 18 Apr 2024 06:26:58 +0000 Subject: [PATCH 085/162] Update swagger-ui to 5.15.2-1 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 95eba697..d6214e2e 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -48,7 +48,7 @@ object Dependencies { val StanfordNlpVersion = "4.5.6" val TikaVersion = "2.9.2" val YamuscaVersion = "0.10.0" - val SwaggerUIVersion = "5.15.2" + val SwaggerUIVersion = "5.15.2-1" val TestContainerVersion = "0.40.14" val TwelveMonkeysVersion = "3.10.1" val JQueryVersion = "3.5.1" From 1425b7d21a9b88eefbc28fcb24034715bfff24f9 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Fri, 19 Apr 2024 06:26:23 +0000 Subject: [PATCH 086/162] Update scribe, scribe-slf4j2 to 3.13.3 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index d6214e2e..cd440266 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -42,7 +42,7 @@ object Dependencies { val PureConfigVersion = "0.17.6" val ScalaJavaTimeVersion = "2.5.0" val ScodecBitsVersion = "1.1.38" - val ScribeVersion = "3.13.2" + val ScribeVersion = "3.13.3" val Slf4jVersion = "2.0.13" val SourcecodeVersion = "0.4.1" val StanfordNlpVersion = "4.5.6" From f96a3e6bb9ed1bc89b3ad315ed7d63d503f5e7e4 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Fri, 19 Apr 2024 06:26:27 +0000 Subject: [PATCH 087/162] Update flyway-core, ... to 10.11.1 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index d6214e2e..7ff83644 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -19,7 +19,7 @@ object Dependencies { val DoobieVersion = "1.0.0-RC5" val EmilVersion = "0.17.0" val FlexmarkVersion = "0.64.8" - val FlywayVersion = "10.10.0" + val FlywayVersion = "10.11.1" val Fs2Version = "3.10.2" val H2Version = "2.2.224" val Http4sVersion = "0.23.26" From 788ffab63c11d6158ea552db8ccde6d6fb123755 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Sat, 20 Apr 2024 06:24:14 +0000 Subject: [PATCH 088/162] Update stanford-corenlp to 4.5.7 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 9aa8abd0..5c51971e 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -45,7 +45,7 @@ object Dependencies { val ScribeVersion = "3.13.3" val Slf4jVersion = "2.0.13" val SourcecodeVersion = "0.4.1" - val StanfordNlpVersion = "4.5.6" + val StanfordNlpVersion = "4.5.7" val TikaVersion = "2.9.2" val YamuscaVersion = "0.10.0" val SwaggerUIVersion = "5.15.2-1" From 6f46521a286a26d36d68596f32eb6dd512f8cbbc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 20 Apr 2024 18:53:20 +0000 Subject: [PATCH 089/162] Update dependency @fontsource/montserrat to v5.0.18 --- website/yarn.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/website/yarn.lock b/website/yarn.lock index bc67303f..fa14c74b 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -8,19 +8,19 @@ integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== "@fontsource/montserrat@^5.0.0": - version "5.0.17" - resolved "https://registry.yarnpkg.com/@fontsource/montserrat/-/montserrat-5.0.17.tgz#ea8003b028dc41d5baab1ab7765193fd342548c3" - integrity sha512-3V3F8GqeN8wawLmAkAfTCYsBYRKu+JLm6ivWWX/v0dCYYPcwtQX0h5Z8j68N1YumuT75MqrghqU42w9DnFHojQ== + version "5.0.18" + resolved "https://registry.yarnpkg.com/@fontsource/montserrat/-/montserrat-5.0.18.tgz#eecb91b0f0062787a0eee5622988ed21f2899a90" + integrity sha512-85JBs2rCdFK/VBdSb401e2lXk5gynVo2zi3Rh2Guem4WNtT2q52+V90o3KzjmajY3TPJvCZA/kI7R05ev7148g== "@fontsource/source-code-pro@^5.0.0": - version "5.0.17" - resolved "https://registry.yarnpkg.com/@fontsource/source-code-pro/-/source-code-pro-5.0.17.tgz#a69df6b9fc19fe8b2d04126ce28ad9213cf0049b" - integrity sha512-Q5GfthInOTW+Ek5k97/LH6FWLmD+IwHwBEEXF+KStvsyPwSZz+0ssdWJfz/ZRaTZxOk7FwlRgysXAWo41fq6bQ== + version "5.0.18" + resolved "https://registry.yarnpkg.com/@fontsource/source-code-pro/-/source-code-pro-5.0.18.tgz#fbb6989cdae05e4717c82c5da6b99ed5817c2c2c" + integrity sha512-5z+MFKaj+qs0PGAzv+WpMBTd8wEvAJEqATj6cGFVFJmFk6A6liJB07F2HAzLe/83FYikGeE4okh1sHM2JDVV+Q== "@fontsource/spectral@^5.0.0": - version "5.0.12" - resolved "https://registry.yarnpkg.com/@fontsource/spectral/-/spectral-5.0.12.tgz#cfdc1608258c1edf69dd18996501604ab69bcd2c" - integrity sha512-tscRgEvVW/eRnBaGRnnlg86rx0NUMGzXFNePFBIXqdZE++9hOH0RTUqtpzUR+zS037kgbkitaVqotyGY8Vq+jw== + version "5.0.13" + resolved "https://registry.yarnpkg.com/@fontsource/spectral/-/spectral-5.0.13.tgz#decc0b840c31972000917c9678f86a562e09038e" + integrity sha512-t/E81Rp78LtpwSO19BErGP2HxWAib2/lBriYqJ1OsmYwdFTS4k3wqUJ6+vlr1dKWvjbMks+M3e999JyQC5JaMA== "@fortawesome/fontawesome-free@^6.0.0": version "6.5.2" From 2a5b7fab122009d8392338875b1574ae499e4ac2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 22 Apr 2024 15:07:16 +0000 Subject: [PATCH 090/162] Update actions/checkout action to v4.1.3 --- .github/workflows/ci-docs.yml | 2 +- .github/workflows/ci.yml | 2 +- .github/workflows/docker-image.yml | 2 +- .github/workflows/release-nightly.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/website.yml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci-docs.yml b/.github/workflows/ci-docs.yml index e2fa7bca..a64d0ffb 100644 --- a/.github/workflows/ci-docs.yml +++ b/.github/workflows/ci-docs.yml @@ -8,7 +8,7 @@ jobs: check-website: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4.1.1 + - uses: actions/checkout@v4.1.3 with: fetch-depth: 0 - uses: cachix/install-nix-action@v26 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 272a9654..44ec4cfb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,7 +9,7 @@ jobs: strategy: fail-fast: false steps: - - uses: actions/checkout@v4.1.1 + - uses: actions/checkout@v4.1.3 with: fetch-depth: 100 - name: Fetch tags diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 77e2a3a0..846f9306 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -6,7 +6,7 @@ jobs: docker-images: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4.1.1 + - uses: actions/checkout@v4.1.3 with: fetch-depth: 0 - name: Set current version diff --git a/.github/workflows/release-nightly.yml b/.github/workflows/release-nightly.yml index ec18ef90..1b50bcaa 100644 --- a/.github/workflows/release-nightly.yml +++ b/.github/workflows/release-nightly.yml @@ -9,7 +9,7 @@ jobs: strategy: fail-fast: true steps: - - uses: actions/checkout@v4.1.1 + - uses: actions/checkout@v4.1.3 with: fetch-depth: 0 - uses: cachix/install-nix-action@v26 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9a55c2f2..e0421871 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -9,7 +9,7 @@ jobs: strategy: fail-fast: true steps: - - uses: actions/checkout@v4.1.1 + - uses: actions/checkout@v4.1.3 with: fetch-depth: 0 - uses: cachix/install-nix-action@v26 diff --git a/.github/workflows/website.yml b/.github/workflows/website.yml index fa02f578..fc189c66 100644 --- a/.github/workflows/website.yml +++ b/.github/workflows/website.yml @@ -7,7 +7,7 @@ jobs: publish-website: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4.1.1 + - uses: actions/checkout@v4.1.3 with: fetch-depth: 0 - uses: cachix/install-nix-action@v26 From e8dada872024c9c03b1cfd1a6cbcdf0beb7b3a03 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Wed, 24 Apr 2024 06:28:53 +0000 Subject: [PATCH 091/162] Update swagger-ui to 5.17.0 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 5c51971e..7670edde 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -48,7 +48,7 @@ object Dependencies { val StanfordNlpVersion = "4.5.7" val TikaVersion = "2.9.2" val YamuscaVersion = "0.10.0" - val SwaggerUIVersion = "5.15.2-1" + val SwaggerUIVersion = "5.17.0" val TestContainerVersion = "0.40.14" val TwelveMonkeysVersion = "3.10.1" val JQueryVersion = "3.5.1" From dcc25805fd9659974d69f78473b0faee9a29ee43 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 25 Apr 2024 00:57:02 +0000 Subject: [PATCH 092/162] Update dependency cssnano to v7 --- website/package.json | 2 +- website/yarn.lock | 306 +++++++++++++++++++++---------------------- 2 files changed, 154 insertions(+), 154 deletions(-) diff --git a/website/package.json b/website/package.json index 270947b0..e1a6368d 100644 --- a/website/package.json +++ b/website/package.json @@ -7,7 +7,7 @@ "@fortawesome/fontawesome-free": "^6.0.0", "@tailwindcss/forms": "^0.5.0", "autoprefixer": "^10.4", - "cssnano": "^6.0.0", + "cssnano": "^7.0.0", "postcss": "^8.4.5", "postcss-cli": "^11.0.0", "postcss-import": "^16.0.0", diff --git a/website/yarn.lock b/website/yarn.lock index fa14c74b..02ce9a6c 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -352,53 +352,53 @@ cssesc@^3.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssnano-preset-default@^6.1.2: - version "6.1.2" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz#adf4b89b975aa775f2750c89dbaf199bbd9da35e" - integrity sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg== +cssnano-preset-default@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-7.0.0.tgz#f76184863fb1ca39e9278045a00f2b25cfbf6eba" + integrity sha512-3YdcG6aHxALLdT0Gjq44zA45PcgW+qWuODq4XNtwpx1olR08cX+tozlXOU25IjeXeaYyqvTUxicIr2fcdJHRZg== dependencies: browserslist "^4.23.0" css-declaration-sorter "^7.2.0" - cssnano-utils "^4.0.2" + cssnano-utils "^5.0.0" postcss-calc "^9.0.1" - postcss-colormin "^6.1.0" - postcss-convert-values "^6.1.0" - postcss-discard-comments "^6.0.2" - postcss-discard-duplicates "^6.0.3" - postcss-discard-empty "^6.0.3" - postcss-discard-overridden "^6.0.2" - postcss-merge-longhand "^6.0.5" - postcss-merge-rules "^6.1.1" - postcss-minify-font-values "^6.1.0" - postcss-minify-gradients "^6.0.3" - postcss-minify-params "^6.1.0" - postcss-minify-selectors "^6.0.4" - postcss-normalize-charset "^6.0.2" - postcss-normalize-display-values "^6.0.2" - postcss-normalize-positions "^6.0.2" - postcss-normalize-repeat-style "^6.0.2" - postcss-normalize-string "^6.0.2" - postcss-normalize-timing-functions "^6.0.2" - postcss-normalize-unicode "^6.1.0" - postcss-normalize-url "^6.0.2" - postcss-normalize-whitespace "^6.0.2" - postcss-ordered-values "^6.0.2" - postcss-reduce-initial "^6.1.0" - postcss-reduce-transforms "^6.0.2" - postcss-svgo "^6.0.3" - postcss-unique-selectors "^6.0.4" + postcss-colormin "^7.0.0" + postcss-convert-values "^7.0.0" + postcss-discard-comments "^7.0.0" + postcss-discard-duplicates "^7.0.0" + postcss-discard-empty "^7.0.0" + postcss-discard-overridden "^7.0.0" + postcss-merge-longhand "^7.0.0" + postcss-merge-rules "^7.0.0" + postcss-minify-font-values "^7.0.0" + postcss-minify-gradients "^7.0.0" + postcss-minify-params "^7.0.0" + postcss-minify-selectors "^7.0.0" + postcss-normalize-charset "^7.0.0" + postcss-normalize-display-values "^7.0.0" + postcss-normalize-positions "^7.0.0" + postcss-normalize-repeat-style "^7.0.0" + postcss-normalize-string "^7.0.0" + postcss-normalize-timing-functions "^7.0.0" + postcss-normalize-unicode "^7.0.0" + postcss-normalize-url "^7.0.0" + postcss-normalize-whitespace "^7.0.0" + postcss-ordered-values "^7.0.0" + postcss-reduce-initial "^7.0.0" + postcss-reduce-transforms "^7.0.0" + postcss-svgo "^7.0.0" + postcss-unique-selectors "^7.0.0" -cssnano-utils@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-4.0.2.tgz#56f61c126cd0f11f2eef1596239d730d9fceff3c" - integrity sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ== +cssnano-utils@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-5.0.0.tgz#b53a0343dd5d21012911882db6ae7d2eae0e3687" + integrity sha512-Uij0Xdxc24L6SirFr25MlwC2rCFX6scyUmuKpzI+JQ7cyqDEwD42fJ0xfB3yLfOnRDU5LKGgjQ9FA6LYh76GWQ== -cssnano@^6.0.0: - version "6.1.2" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-6.1.2.tgz#4bd19e505bd37ee7cf0dc902d3d869f6d79c66b8" - integrity sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA== +cssnano@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-7.0.0.tgz#eb373676fd25b642f1b04adbe4734f624b5ac63c" + integrity sha512-hhVRaaGbEDpb99AHBTaNJf6oXpnU4B7evBi7rt3ShiOh5JEnWsBWYsldywE9L0twVTLPBY9jT/zY6YODXP3TEg== dependencies: - cssnano-preset-default "^6.1.2" + cssnano-preset-default "^7.0.0" lilconfig "^3.1.1" csso@^5.0.5: @@ -896,43 +896,43 @@ postcss-cli@^11.0.0: slash "^5.0.0" yargs "^17.0.0" -postcss-colormin@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-6.1.0.tgz#076e8d3fb291fbff7b10e6b063be9da42ff6488d" - integrity sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw== +postcss-colormin@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-7.0.0.tgz#76b9e40eff69a363c1fc5ce2f0ece1d4a01d1de8" + integrity sha512-5CN6fqtsEtEtwf3mFV3B4UaZnlYljPpzmGeDB4yCK067PnAtfLe9uX2aFZaEwxHE7HopG5rUkW8gyHrNAesHEg== dependencies: browserslist "^4.23.0" caniuse-api "^3.0.0" colord "^2.9.3" postcss-value-parser "^4.2.0" -postcss-convert-values@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz#3498387f8efedb817cbc63901d45bd1ceaa40f48" - integrity sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w== +postcss-convert-values@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-7.0.0.tgz#4a53e79c4bd81cfed8a7ed3fffb7b255a2f5f300" + integrity sha512-bMuzDgXBbFbByPgj+/r6va8zNuIDUaIIbvAFgdO1t3zdgJZ77BZvu6dfWyd6gHEJnYzmeVr9ayUsAQL3/qLJ0w== dependencies: browserslist "^4.23.0" postcss-value-parser "^4.2.0" -postcss-discard-comments@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz#e768dcfdc33e0216380623652b0a4f69f4678b6c" - integrity sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw== +postcss-discard-comments@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-7.0.0.tgz#3919e4237630f74927f3976ac5789cfc26731494" + integrity sha512-xpSdzRqYmy4YIVmjfGyYXKaI1SRnK6CTr+4Zmvyof8ANwvgfZgGdVtmgAvzh59gJm808mJCWQC9tFN0KF5dEXA== -postcss-discard-duplicates@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz#d121e893c38dc58a67277f75bb58ba43fce4c3eb" - integrity sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw== +postcss-discard-duplicates@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-7.0.0.tgz#47ae1154cc89ad0a50099fbac1f74c942214c961" + integrity sha512-bAnSuBop5LpAIUmmOSsuvtKAAKREB6BBIYStWUTGq8oG5q9fClDMMuY8i4UPI/cEcDx2TN+7PMnXYIId20UVDw== -postcss-discard-empty@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz#ee39c327219bb70473a066f772621f81435a79d9" - integrity sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ== +postcss-discard-empty@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-7.0.0.tgz#218829d1ef0a5d5142dd62f0aa60e00e599d2033" + integrity sha512-e+QzoReTZ8IAwhnSdp/++7gBZ/F+nBq9y6PomfwORfP7q9nBpK5AMP64kOt0bA+lShBFbBDcgpJ3X4etHg4lzA== -postcss-discard-overridden@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz#4e9f9c62ecd2df46e8fdb44dc17e189776572e2d" - integrity sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ== +postcss-discard-overridden@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-7.0.0.tgz#b123ea51e3d4e1d0a254cf71eaff1201926d319c" + integrity sha512-GmNAzx88u3k2+sBTZrJSDauR0ccpE24omTQCVmaTTZFz1du6AasspjaUPMJ2ud4RslZpoFKyf+6MSPETLojc6w== postcss-import@^15.1.0: version "15.1.0" @@ -975,53 +975,53 @@ postcss-load-config@^5.0.0: lilconfig "^3.0.0" yaml "^2.3.4" -postcss-merge-longhand@^6.0.5: - version "6.0.5" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz#ba8a8d473617c34a36abbea8dda2b215750a065a" - integrity sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w== +postcss-merge-longhand@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-7.0.0.tgz#aabfae74428a5506c4d50842445845c1cc10c9c6" + integrity sha512-0X8I4/9+G03X5/5NnrfopG/YEln2XU8heDh7YqBaiq2SeaKIG3n66ShZPjIolmVuLBQ0BEm3yS8o1mlCLHdW7A== dependencies: postcss-value-parser "^4.2.0" - stylehacks "^6.1.1" + stylehacks "^7.0.0" -postcss-merge-rules@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz#7aa539dceddab56019469c0edd7d22b64c3dea9d" - integrity sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ== +postcss-merge-rules@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-7.0.0.tgz#069a427807fdb1e2dcca3bf218d0a9f70103526a" + integrity sha512-Zty3VlOsD6VSjBMu6PiHCVpLegtBT/qtZRVBcSeyEZ6q1iU5qTYT0WtEoLRV+YubZZguS5/ycfP+NRiKfjv6aw== dependencies: browserslist "^4.23.0" caniuse-api "^3.0.0" - cssnano-utils "^4.0.2" + cssnano-utils "^5.0.0" postcss-selector-parser "^6.0.16" -postcss-minify-font-values@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz#a0e574c02ee3f299be2846369211f3b957ea4c59" - integrity sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg== +postcss-minify-font-values@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-7.0.0.tgz#d16a75a2548e000779566b3568fc874ee5d0aa17" + integrity sha512-2ckkZtgT0zG8SMc5aoNwtm5234eUx1GGFJKf2b1bSp8UflqaeFzR50lid4PfqVI9NtGqJ2J4Y7fwvnP/u1cQog== dependencies: postcss-value-parser "^4.2.0" -postcss-minify-gradients@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz#ca3eb55a7bdb48a1e187a55c6377be918743dbd6" - integrity sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q== +postcss-minify-gradients@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-7.0.0.tgz#f6d84456e6d49164a55d0e45bb1b1809c6cf0959" + integrity sha512-pdUIIdj/C93ryCHew0UgBnL2DtUS3hfFa5XtERrs4x+hmpMYGhbzo6l/Ir5de41O0GaKVpK1ZbDNXSY6GkXvtg== dependencies: colord "^2.9.3" - cssnano-utils "^4.0.2" + cssnano-utils "^5.0.0" postcss-value-parser "^4.2.0" -postcss-minify-params@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz#54551dec77b9a45a29c3cb5953bf7325a399ba08" - integrity sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA== +postcss-minify-params@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-7.0.0.tgz#dfa8263d38570b1116da2c72f69190ea665b17aa" + integrity sha512-XOJAuX8Q/9GT1sGxlUvaFEe2H9n50bniLZblXXsAT/BwSfFYvzSZeFG7uupwc0KbKpTnflnQ7aMwGzX6JUWliQ== dependencies: browserslist "^4.23.0" - cssnano-utils "^4.0.2" + cssnano-utils "^5.0.0" postcss-value-parser "^4.2.0" -postcss-minify-selectors@^6.0.4: - version "6.0.4" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz#197f7d72e6dd19eed47916d575d69dc38b396aff" - integrity sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ== +postcss-minify-selectors@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-7.0.0.tgz#5dedb26806f58d683a3bb362e095ad5aa24f1bf6" + integrity sha512-f00CExZhD6lNw2vTZbcnmfxVgaVKzUw6IRsIFX3JTT8GdsoABc1WnhhGwL1i8YPJ3sSWw39fv7XPtvLb+3Uitw== dependencies: postcss-selector-parser "^6.0.16" @@ -1032,74 +1032,74 @@ postcss-nested@^6.0.1: dependencies: postcss-selector-parser "^6.0.11" -postcss-normalize-charset@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz#1ec25c435057a8001dac942942a95ffe66f721e1" - integrity sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ== +postcss-normalize-charset@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-7.0.0.tgz#92244ae73c31bf8f8885d5f16ff69e857ac6c001" + integrity sha512-ABisNUXMeZeDNzCQxPxBCkXexvBrUHV+p7/BXOY+ulxkcjUZO0cp8ekGBwvIh2LbCwnWbyMPNJVtBSdyhM2zYQ== -postcss-normalize-display-values@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz#54f02764fed0b288d5363cbb140d6950dbbdd535" - integrity sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg== +postcss-normalize-display-values@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-7.0.0.tgz#01fb50e5e97ef8935363629bea5a6d3b3aac1342" + integrity sha512-lnFZzNPeDf5uGMPYgGOw7v0BfB45+irSRz9gHQStdkkhiM0gTfvWkWB5BMxpn0OqgOQuZG/mRlZyJxp0EImr2Q== dependencies: postcss-value-parser "^4.2.0" -postcss-normalize-positions@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz#e982d284ec878b9b819796266f640852dbbb723a" - integrity sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q== +postcss-normalize-positions@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-7.0.0.tgz#4eebd7c9d3dde40c97b8047cad38124fc844c463" + integrity sha512-I0yt8wX529UKIGs2y/9Ybs2CelSvItfmvg/DBIjTnoUSrPxSV7Z0yZ8ShSVtKNaV/wAY+m7bgtyVQLhB00A1NQ== dependencies: postcss-value-parser "^4.2.0" -postcss-normalize-repeat-style@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz#f8006942fd0617c73f049dd8b6201c3a3040ecf3" - integrity sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ== +postcss-normalize-repeat-style@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-7.0.0.tgz#0cb784655d5714d29bd3bda6dee2fb628aa7227b" + integrity sha512-o3uSGYH+2q30ieM3ppu9GTjSXIzOrRdCUn8UOMGNw7Af61bmurHTWI87hRybrP6xDHvOe5WlAj3XzN6vEO8jLw== dependencies: postcss-value-parser "^4.2.0" -postcss-normalize-string@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz#e3cc6ad5c95581acd1fc8774b309dd7c06e5e363" - integrity sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ== +postcss-normalize-string@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-7.0.0.tgz#a119d3e63a9614570d8413d572fb9fc8c6a64e8c" + integrity sha512-w/qzL212DFVOpMy3UGyxrND+Kb0fvCiBBujiaONIihq7VvtC7bswjWgKQU/w4VcRyDD8gpfqUiBQ4DUOwEJ6Qg== dependencies: postcss-value-parser "^4.2.0" -postcss-normalize-timing-functions@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz#40cb8726cef999de984527cbd9d1db1f3e9062c0" - integrity sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA== +postcss-normalize-timing-functions@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-7.0.0.tgz#99d0ee8c4b23b7f4355fafb91385833b9b07108b" + integrity sha512-tNgw3YV0LYoRwg43N3lTe3AEWZ66W7Dh7lVEpJbHoKOuHc1sLrzMLMFjP8SNULHaykzsonUEDbKedv8C+7ej6g== dependencies: postcss-value-parser "^4.2.0" -postcss-normalize-unicode@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz#aaf8bbd34c306e230777e80f7f12a4b7d27ce06e" - integrity sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg== +postcss-normalize-unicode@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-7.0.0.tgz#bd66bfc238bf4d1eaea356639260c04fce408476" + integrity sha512-OnKV52/VFFDAim4n0pdI+JAhsolLBdnCKxE6VV5lW5Q/JeVGFN8UM8ur6/A3EAMLsT1ZRm3fDHh/rBoBQpqi2w== dependencies: browserslist "^4.23.0" postcss-value-parser "^4.2.0" -postcss-normalize-url@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz#292792386be51a8de9a454cb7b5c58ae22db0f79" - integrity sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ== +postcss-normalize-url@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-7.0.0.tgz#c88cb7cf8952d3ff631e4eba924e7b060ca802f6" + integrity sha512-+d7+PpE+jyPX1hDQZYG+NaFD+Nd2ris6r8fPTBAjE8z/U41n/bib3vze8x7rKs5H1uEw5ppe9IojewouHk0klQ== dependencies: postcss-value-parser "^4.2.0" -postcss-normalize-whitespace@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz#fbb009e6ebd312f8b2efb225c2fcc7cf32b400cd" - integrity sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q== +postcss-normalize-whitespace@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-7.0.0.tgz#46b025f0bea72139ddee63015619b0c21cebd845" + integrity sha512-37/toN4wwZErqohedXYqWgvcHUGlT8O/m2jVkAfAe9Bd4MzRqlBmXrJRePH0e9Wgnz2X7KymTgTOaaFizQe3AQ== dependencies: postcss-value-parser "^4.2.0" -postcss-ordered-values@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz#366bb663919707093451ab70c3f99c05672aaae5" - integrity sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q== +postcss-ordered-values@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-7.0.0.tgz#cea4e2a140ed1c7b055e0ab967b82a36b584debf" + integrity sha512-KROvC63A8UQW1eYDljQe1dtwc1E/M+mMwDT6z7khV/weHYLWTghaLRLunU7x1xw85lWFwVZOAGakxekYvKV+0w== dependencies: - cssnano-utils "^4.0.2" + cssnano-utils "^5.0.0" postcss-value-parser "^4.2.0" postcss-purgecss@^5.0.0: @@ -1109,18 +1109,18 @@ postcss-purgecss@^5.0.0: dependencies: purgecss "^5.0.0" -postcss-reduce-initial@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz#4401297d8e35cb6e92c8e9586963e267105586ba" - integrity sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw== +postcss-reduce-initial@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-7.0.0.tgz#a9e64778dd44604c2bda109e2fd14b99ab0d1416" + integrity sha512-iqGgmBxY9LrblZ0BKLjmrA1mC/cf9A/wYCCqSmD6tMi+xAyVl0+DfixZIHSVDMbCPRPjNmVF0DFGth/IDGelFQ== dependencies: browserslist "^4.23.0" caniuse-api "^3.0.0" -postcss-reduce-transforms@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz#6fa2c586bdc091a7373caeee4be75a0f3e12965d" - integrity sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA== +postcss-reduce-transforms@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-7.0.0.tgz#0386080a14e5faad9f8eda33375b79fe7c4f9677" + integrity sha512-pnt1HKKZ07/idH8cpATX/ujMbtOGhUfE+m8gbqwJE05aTaNw8gbo34a2e3if0xc0dlu75sUOiqvwCGY3fzOHew== dependencies: postcss-value-parser "^4.2.0" @@ -1148,18 +1148,18 @@ postcss-selector-parser@^6.0.7: cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss-svgo@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-6.0.3.tgz#1d6e180d6df1fa8a3b30b729aaa9161e94f04eaa" - integrity sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g== +postcss-svgo@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-7.0.0.tgz#2f11b45c6fa42da155fd7c16c44e69bf086c5992" + integrity sha512-Xj5DRdvA97yRy3wjbCH2NKXtDUwEnph6EHr5ZXszsBVKCNrKXYBjzAXqav7/Afz5WwJ/1peZoTguCEJIg7ytmA== dependencies: postcss-value-parser "^4.2.0" svgo "^3.2.0" -postcss-unique-selectors@^6.0.4: - version "6.0.4" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz#983ab308896b4bf3f2baaf2336e14e52c11a2088" - integrity sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg== +postcss-unique-selectors@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-7.0.0.tgz#8cc2f919bce33c429cce93624f2b8f9bbd4bd882" + integrity sha512-NYFqcft7vVQMZlQPsMdMPy+qU/zDpy95Malpw4GeA9ZZjM6dVXDshXtDmLc0m4WCD6XeZCJqjTfPT1USsdt+rA== dependencies: postcss-selector-parser "^6.0.16" @@ -1312,10 +1312,10 @@ strip-ansi@^7.0.1: dependencies: ansi-regex "^6.0.1" -stylehacks@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-6.1.1.tgz#543f91c10d17d00a440430362d419f79c25545a6" - integrity sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg== +stylehacks@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-7.0.0.tgz#68e8ee54724671c0c698be82e1299c6548c31921" + integrity sha512-47Nw4pQ6QJb4CA6dzF2m9810sjQik4dfk4UwAm5wlwhrW3syzZKF8AR4/cfO3Cr6lsFgAoznQq0Wg57qhjTA2A== dependencies: browserslist "^4.23.0" postcss-selector-parser "^6.0.16" From c9b1720aa5dcc8f7f79cb4bbc10e28a1522ae7bd Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Thu, 25 Apr 2024 06:26:35 +0000 Subject: [PATCH 093/162] Update scribe, scribe-slf4j2 to 3.13.4 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 7670edde..392cc74e 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -42,7 +42,7 @@ object Dependencies { val PureConfigVersion = "0.17.6" val ScalaJavaTimeVersion = "2.5.0" val ScodecBitsVersion = "1.1.38" - val ScribeVersion = "3.13.3" + val ScribeVersion = "3.13.4" val Slf4jVersion = "2.0.13" val SourcecodeVersion = "0.4.1" val StanfordNlpVersion = "4.5.7" From 893386b281e00c61db5f2267eec31c4d3c0ecf7a Mon Sep 17 00:00:00 2001 From: Chance Harrison <7481945+ChanceHarrison@users.noreply.github.com> Date: Thu, 25 Apr 2024 01:43:04 -0700 Subject: [PATCH 094/162] docs(development.md): Fix minor typos --- website/site/content/docs/dev/development.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/site/content/docs/dev/development.md b/website/site/content/docs/dev/development.md index 4fb379ba..5316603b 100644 --- a/website/site/content/docs/dev/development.md +++ b/website/site/content/docs/dev/development.md @@ -114,7 +114,7 @@ running: nix develop .#dev-vm # drop into the environment setup for using a container -nix deveop .#docsp-dev +nix develop .#docsp-dev ``` Once in such an environment, you can create the container or vm like @@ -176,7 +176,7 @@ IDEs and editors) and create a file `.envrc` in the source root: use flake .# ``` -The file `.envrc` is git-ignored, because are different ones possible. +The file `.envrc` is git-ignored, because different ones are possible. Here `` refers to either `dev-cnt` or `dev-vm` - one of the devshells defined in `flake.nix`. From 08a71b1bad4914a089b07e1a11ad1e1acd51a6d9 Mon Sep 17 00:00:00 2001 From: ChanceHarrison <7481945+ChanceHarrison@users.noreply.github.com> Date: Thu, 25 Apr 2024 12:11:10 +0000 Subject: [PATCH 095/162] Add page to website about contributing to docs (#2612) --- .../site/content/docs/dev/documentation.md | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 website/site/content/docs/dev/documentation.md diff --git a/website/site/content/docs/dev/documentation.md b/website/site/content/docs/dev/documentation.md new file mode 100644 index 00000000..9fd2e554 --- /dev/null +++ b/website/site/content/docs/dev/documentation.md @@ -0,0 +1,59 @@ ++++ +title = "Documentation" +weight = 0 ++++ + +# Documentation + +## About + +Docspell's documentation primarily lives on this website, but +there is also valuable information contained with in the main +[README.md](https://github.com/eikek/docspell/blob/master/README.md) +and [various other +READMEs](https://github.com/search?q=repo%3Aeikek%2Fdocspell+path%3A.md+NOT+path%3A%2F%5Ewebsite%5C%2Fsite%5C%2F%2F&type=code) +in the repository. + +## Contributing + +First, please take a look at the ["Documentation" portion of the +README](https://github.com/eikek/docspell/blob/master/Contributing.md#Documentation). + +Please note that the documentation hosted at https://docspell.org/ is for +the current version of Docspell and will not reflect any unreleased changes +to the code or documentation. Given that, before proposing a documentation +improvement, please check the latest version of the documentation (on the +`master` branch) to avoid potentially duplicating effort. + +### Simple Changes + +If you would like to contribute to this documentation website, simple edits +to existing pages can be made by clicking the "Edit" button at the bottom +of the live website page you wish to propose changes to. Doing so will take +you to GitHub where you can make your changes, commit them to a branch on +your fork of the repository, and ultimately create a pull request to get +them reviewed and merged into the official documentation. + +Similarly, READMEs in the `docspell` repository can be made by opening +the file on GitHub and clicking the "Edit" icon. New files can be added as +well. The process is then the same as above. + +Of course, if you would like to make your changes locally or make more complex +changes, you can fork the repository, clone your fork, make your changes, +push them to the fork, and then open a pull request. + +### Local Preview + +If you would like to also preview your local changes, you can do so as follows. + +The subsequent commands assume you have already locally cloned the repository +(or a fork), and have a working development environment. + +```bash +# in repository root +sbt website/zolaBuild +cd website/site && zola serve +``` + +As you write changes to the website content (to disk), Zola will live-reload +the site. From f93a6701dbee4c2e81d094f072987ba6029d62a2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 25 Apr 2024 13:30:40 +0000 Subject: [PATCH 096/162] chore(deps): update actions/checkout action to v4.1.4 --- .github/workflows/ci-docs.yml | 2 +- .github/workflows/ci.yml | 2 +- .github/workflows/docker-image.yml | 2 +- .github/workflows/release-nightly.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/website.yml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci-docs.yml b/.github/workflows/ci-docs.yml index a64d0ffb..539a87d7 100644 --- a/.github/workflows/ci-docs.yml +++ b/.github/workflows/ci-docs.yml @@ -8,7 +8,7 @@ jobs: check-website: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4.1.3 + - uses: actions/checkout@v4.1.4 with: fetch-depth: 0 - uses: cachix/install-nix-action@v26 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 44ec4cfb..f3fa26cf 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,7 +9,7 @@ jobs: strategy: fail-fast: false steps: - - uses: actions/checkout@v4.1.3 + - uses: actions/checkout@v4.1.4 with: fetch-depth: 100 - name: Fetch tags diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 846f9306..610ea444 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -6,7 +6,7 @@ jobs: docker-images: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4.1.3 + - uses: actions/checkout@v4.1.4 with: fetch-depth: 0 - name: Set current version diff --git a/.github/workflows/release-nightly.yml b/.github/workflows/release-nightly.yml index 1b50bcaa..a735f31f 100644 --- a/.github/workflows/release-nightly.yml +++ b/.github/workflows/release-nightly.yml @@ -9,7 +9,7 @@ jobs: strategy: fail-fast: true steps: - - uses: actions/checkout@v4.1.3 + - uses: actions/checkout@v4.1.4 with: fetch-depth: 0 - uses: cachix/install-nix-action@v26 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e0421871..7e989e68 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -9,7 +9,7 @@ jobs: strategy: fail-fast: true steps: - - uses: actions/checkout@v4.1.3 + - uses: actions/checkout@v4.1.4 with: fetch-depth: 0 - uses: cachix/install-nix-action@v26 diff --git a/.github/workflows/website.yml b/.github/workflows/website.yml index fc189c66..79293b35 100644 --- a/.github/workflows/website.yml +++ b/.github/workflows/website.yml @@ -7,7 +7,7 @@ jobs: publish-website: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4.1.3 + - uses: actions/checkout@v4.1.4 with: fetch-depth: 0 - uses: cachix/install-nix-action@v26 From ed86bfe1825e4ee016d5c708ee5edc7f4ebb49b0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 25 Apr 2024 17:30:55 +0000 Subject: [PATCH 097/162] chore(deps): update dependency tailwindcss to v3.4.3 --- modules/webapp/package-lock.json | 275 +++---------------------------- 1 file changed, 26 insertions(+), 249 deletions(-) diff --git a/modules/webapp/package-lock.json b/modules/webapp/package-lock.json index 33182ff0..4d19b8ee 100644 --- a/modules/webapp/package-lock.json +++ b/modules/webapp/package-lock.json @@ -7,6 +7,9 @@ "": { "name": "docspell-css", "version": "1.0.0", + "dependencies": { + "tailwindcss": "^3.4.1" + }, "devDependencies": { "@fortawesome/fontawesome-free": "^6.0.0", "@tailwindcss/forms": "^0.5.0", @@ -17,8 +20,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "dev": true, - "peer": true, "engines": { "node": ">=10" }, @@ -40,8 +41,6 @@ "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "peer": true, "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -58,8 +57,6 @@ "version": "0.3.5", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "dev": true, - "peer": true, "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -73,8 +70,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "peer": true, "engines": { "node": ">=6.0.0" } @@ -83,8 +78,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, - "peer": true, "engines": { "node": ">=6.0.0" } @@ -92,16 +85,12 @@ "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true, - "peer": true + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "peer": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -111,8 +100,6 @@ "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "peer": true, "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -125,8 +112,6 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "peer": true, "engines": { "node": ">= 8" } @@ -135,8 +120,6 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "peer": true, "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -149,9 +132,7 @@ "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, "optional": true, - "peer": true, "engines": { "node": ">=14" } @@ -172,8 +153,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "peer": true, "engines": { "node": ">=12" }, @@ -185,8 +164,6 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "peer": true, "engines": { "node": ">=12" }, @@ -197,16 +174,12 @@ "node_modules/any-promise": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true, - "peer": true + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "peer": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -218,23 +191,17 @@ "node_modules/arg": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "dev": true, - "peer": true + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "peer": true + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "peer": true, "engines": { "node": ">=8" } @@ -243,8 +210,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "peer": true, "dependencies": { "balanced-match": "^1.0.0" } @@ -253,8 +218,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "peer": true, "dependencies": { "fill-range": "^7.0.1" }, @@ -266,8 +229,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "dev": true, - "peer": true, "engines": { "node": ">= 6" } @@ -276,8 +237,6 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "peer": true, "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -301,8 +260,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "peer": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -314,8 +271,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -326,16 +281,12 @@ "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "peer": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/commander": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "peer": true, "engines": { "node": ">= 6" } @@ -344,8 +295,6 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "peer": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -359,8 +308,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "peer": true, "bin": { "cssesc": "bin/cssesc" }, @@ -371,37 +318,27 @@ "node_modules/didyoumean": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true, - "peer": true + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" }, "node_modules/dlv": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true, - "peer": true + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true, - "peer": true + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" }, "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "peer": true + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" }, "node_modules/fast-glob": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dev": true, - "peer": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -417,8 +354,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "peer": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -430,8 +365,6 @@ "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", - "dev": true, - "peer": true, "dependencies": { "reusify": "^1.0.4" } @@ -440,8 +373,6 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "peer": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -459,8 +390,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "dev": true, - "peer": true, "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" @@ -476,13 +405,11 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, "hasInstallScript": true, "optional": true, "os": [ "darwin" ], - "peer": true, "engines": { "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } @@ -491,8 +418,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "peer": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -501,8 +426,6 @@ "version": "10.3.10", "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", - "dev": true, - "peer": true, "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^2.3.5", @@ -524,8 +447,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "peer": true, "dependencies": { "is-glob": "^4.0.3" }, @@ -537,8 +458,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, - "peer": true, "dependencies": { "function-bind": "^1.1.2" }, @@ -550,8 +469,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "peer": true, "dependencies": { "binary-extensions": "^2.0.0" }, @@ -563,8 +480,6 @@ "version": "2.13.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, - "peer": true, "dependencies": { "hasown": "^2.0.0" }, @@ -576,8 +491,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "peer": true, "engines": { "node": ">=0.10.0" } @@ -586,8 +499,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "peer": true, "engines": { "node": ">=8" } @@ -596,8 +507,6 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "peer": true, "dependencies": { "is-extglob": "^2.1.1" }, @@ -609,8 +518,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "peer": true, "engines": { "node": ">=0.12.0" } @@ -618,16 +525,12 @@ "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "peer": true + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "node_modules/jackspeak": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", - "dev": true, - "peer": true, "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -645,8 +548,6 @@ "version": "1.21.0", "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", - "dev": true, - "peer": true, "bin": { "jiti": "bin/jiti.js" } @@ -655,8 +556,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "dev": true, - "peer": true, "engines": { "node": ">=10" } @@ -664,16 +563,12 @@ "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true, - "peer": true + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" }, "node_modules/lru-cache": { "version": "10.2.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", - "dev": true, - "peer": true, "engines": { "node": "14 || >=16.14" } @@ -682,8 +577,6 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "peer": true, "engines": { "node": ">= 8" } @@ -692,8 +585,6 @@ "version": "4.0.5", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "peer": true, "dependencies": { "braces": "^3.0.2", "picomatch": "^2.3.1" @@ -715,8 +606,6 @@ "version": "9.0.3", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "peer": true, "dependencies": { "brace-expansion": "^2.0.1" }, @@ -731,8 +620,6 @@ "version": "7.0.4", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", - "dev": true, - "peer": true, "engines": { "node": ">=16 || 14 >=14.17" } @@ -741,8 +628,6 @@ "version": "2.7.0", "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dev": true, - "peer": true, "dependencies": { "any-promise": "^1.0.0", "object-assign": "^4.0.1", @@ -753,14 +638,12 @@ "version": "3.3.7", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "dev": true, "funding": [ { "type": "github", "url": "https://github.com/sponsors/ai" } ], - "peer": true, "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -772,8 +655,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "peer": true, "engines": { "node": ">=0.10.0" } @@ -782,8 +663,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "peer": true, "engines": { "node": ">=0.10.0" } @@ -792,8 +671,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "dev": true, - "peer": true, "engines": { "node": ">= 6" } @@ -802,8 +679,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "peer": true, "engines": { "node": ">=8" } @@ -811,16 +686,12 @@ "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true, - "peer": true + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "node_modules/path-scurry": { "version": "1.10.1", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", - "dev": true, - "peer": true, "dependencies": { "lru-cache": "^9.1.1 || ^10.0.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" @@ -835,16 +706,12 @@ "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true, - "peer": true + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "peer": true, "engines": { "node": ">=8.6" }, @@ -856,8 +723,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "peer": true, "engines": { "node": ">=0.10.0" } @@ -866,8 +731,6 @@ "version": "4.0.6", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true, - "peer": true, "engines": { "node": ">= 6" } @@ -876,7 +739,6 @@ "version": "8.4.35", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", - "dev": true, "funding": [ { "type": "opencollective", @@ -891,7 +753,6 @@ "url": "https://github.com/sponsors/ai" } ], - "peer": true, "dependencies": { "nanoid": "^3.3.7", "picocolors": "^1.0.0", @@ -905,8 +766,6 @@ "version": "15.1.0", "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dev": true, - "peer": true, "dependencies": { "postcss-value-parser": "^4.0.0", "read-cache": "^1.0.0", @@ -923,8 +782,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "dev": true, - "peer": true, "dependencies": { "camelcase-css": "^2.0.1" }, @@ -943,7 +800,6 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", - "dev": true, "funding": [ { "type": "opencollective", @@ -954,7 +810,6 @@ "url": "https://github.com/sponsors/ai" } ], - "peer": true, "dependencies": { "lilconfig": "^3.0.0", "yaml": "^2.3.4" @@ -979,8 +834,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", - "dev": true, - "peer": true, "engines": { "node": ">=14" }, @@ -992,8 +845,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", - "dev": true, - "peer": true, "dependencies": { "postcss-selector-parser": "^6.0.11" }, @@ -1012,8 +863,6 @@ "version": "6.0.15", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", - "dev": true, - "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -1025,15 +874,12 @@ "node_modules/postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true, - "peer": true + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, "funding": [ { "type": "github", @@ -1047,15 +893,12 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "peer": true + ] }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dev": true, - "peer": true, "dependencies": { "pify": "^2.3.0" } @@ -1064,8 +907,6 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "peer": true, "dependencies": { "picomatch": "^2.2.1" }, @@ -1077,8 +918,6 @@ "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "peer": true, "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -1095,8 +934,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "peer": true, "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -1106,7 +943,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, "funding": [ { "type": "github", @@ -1121,7 +957,6 @@ "url": "https://feross.org/support" } ], - "peer": true, "dependencies": { "queue-microtask": "^1.2.2" } @@ -1130,8 +965,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "peer": true, "dependencies": { "shebang-regex": "^3.0.0" }, @@ -1143,8 +976,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "peer": true, "engines": { "node": ">=8" } @@ -1153,8 +984,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "peer": true, "engines": { "node": ">=14" }, @@ -1166,8 +995,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true, - "peer": true, "engines": { "node": ">=0.10.0" } @@ -1176,8 +1003,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "peer": true, "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -1195,8 +1020,6 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "peer": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -1210,8 +1033,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "peer": true, "engines": { "node": ">=8" } @@ -1219,16 +1040,12 @@ "node_modules/string-width-cjs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "peer": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/string-width-cjs/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "peer": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -1240,8 +1057,6 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "peer": true, "dependencies": { "ansi-regex": "^6.0.1" }, @@ -1257,8 +1072,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "peer": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -1270,8 +1083,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "peer": true, "engines": { "node": ">=8" } @@ -1280,8 +1091,6 @@ "version": "3.35.0", "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", - "dev": true, - "peer": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.2", "commander": "^4.0.0", @@ -1303,8 +1112,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "peer": true, "engines": { "node": ">= 0.4" }, @@ -1313,11 +1120,9 @@ } }, "node_modules/tailwindcss": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.1.tgz", - "integrity": "sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==", - "dev": true, - "peer": true, + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.3.tgz", + "integrity": "sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==", "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", @@ -1327,7 +1132,7 @@ "fast-glob": "^3.3.0", "glob-parent": "^6.0.2", "is-glob": "^4.0.3", - "jiti": "^1.19.1", + "jiti": "^1.21.0", "lilconfig": "^2.1.0", "micromatch": "^4.0.5", "normalize-path": "^3.0.0", @@ -1354,8 +1159,6 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dev": true, - "peer": true, "dependencies": { "any-promise": "^1.0.0" } @@ -1364,8 +1167,6 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dev": true, - "peer": true, "dependencies": { "thenify": ">= 3.1.0 < 4" }, @@ -1377,8 +1178,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "peer": true, "dependencies": { "is-number": "^7.0.0" }, @@ -1389,23 +1188,17 @@ "node_modules/ts-interface-checker": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true, - "peer": true + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true, - "peer": true + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "peer": true, "dependencies": { "isexe": "^2.0.0" }, @@ -1420,8 +1213,6 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "peer": true, "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -1439,8 +1230,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "peer": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -1457,8 +1246,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "peer": true, "engines": { "node": ">=8" } @@ -1467,8 +1254,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -1482,16 +1267,12 @@ "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "peer": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/wrap-ansi-cjs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "peer": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -1505,8 +1286,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "peer": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -1518,8 +1297,6 @@ "version": "2.4.1", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz", "integrity": "sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==", - "dev": true, - "peer": true, "bin": { "yaml": "bin.mjs" }, From 2b4975fc0854dc7f902cfa2102baabcf911b8d4a Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Fri, 26 Apr 2024 06:27:57 +0000 Subject: [PATCH 098/162] Update swagger-ui to 5.17.2 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 392cc74e..c7dc41df 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -48,7 +48,7 @@ object Dependencies { val StanfordNlpVersion = "4.5.7" val TikaVersion = "2.9.2" val YamuscaVersion = "0.10.0" - val SwaggerUIVersion = "5.17.0" + val SwaggerUIVersion = "5.17.2" val TestContainerVersion = "0.40.14" val TwelveMonkeysVersion = "3.10.1" val JQueryVersion = "3.5.1" From 77f186f320540bd9c90658ce8b9b30ca196aac6c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 26 Apr 2024 14:24:26 +0000 Subject: [PATCH 099/162] chore(deps): update dependency cssnano to v7.0.1 --- website/yarn.lock | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/website/yarn.lock b/website/yarn.lock index 02ce9a6c..75d49894 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -221,9 +221,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001587: - version "1.0.30001600" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001600.tgz#93a3ee17a35aa6a9f0c6ef1b2ab49507d1ab9079" - integrity sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ== + version "1.0.30001612" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001612.tgz#d34248b4ec1f117b70b24ad9ee04c90e0b8a14ae" + integrity sha512-lFgnZ07UhaCcsSZgWW0K5j4e69dK1u/ltrL9lTUiFOwNHs12S3UMIEYgBV0Z6C6hRDev7iRnMzzYmKabYdXF9g== caniuse-lite@^1.0.30001599: version "1.0.30001599" @@ -352,15 +352,15 @@ cssesc@^3.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssnano-preset-default@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-7.0.0.tgz#f76184863fb1ca39e9278045a00f2b25cfbf6eba" - integrity sha512-3YdcG6aHxALLdT0Gjq44zA45PcgW+qWuODq4XNtwpx1olR08cX+tozlXOU25IjeXeaYyqvTUxicIr2fcdJHRZg== +cssnano-preset-default@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-7.0.1.tgz#b05c93a29868dd7bd810fa8bbf89f482804da922" + integrity sha512-Fumyr+uZMcjYQeuHssAZxn0cKj3cdQc5GcxkBcmEzISGB+UW9CLNlU4tBOJbJGcPukFDlicG32eFbrc8K9V5pw== dependencies: browserslist "^4.23.0" css-declaration-sorter "^7.2.0" cssnano-utils "^5.0.0" - postcss-calc "^9.0.1" + postcss-calc "^10.0.0" postcss-colormin "^7.0.0" postcss-convert-values "^7.0.0" postcss-discard-comments "^7.0.0" @@ -394,11 +394,11 @@ cssnano-utils@^5.0.0: integrity sha512-Uij0Xdxc24L6SirFr25MlwC2rCFX6scyUmuKpzI+JQ7cyqDEwD42fJ0xfB3yLfOnRDU5LKGgjQ9FA6LYh76GWQ== cssnano@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-7.0.0.tgz#eb373676fd25b642f1b04adbe4734f624b5ac63c" - integrity sha512-hhVRaaGbEDpb99AHBTaNJf6oXpnU4B7evBi7rt3ShiOh5JEnWsBWYsldywE9L0twVTLPBY9jT/zY6YODXP3TEg== + version "7.0.1" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-7.0.1.tgz#a62675fc17f9a26d8560d3e61d79228b628dbb63" + integrity sha512-917Mej/4SdI7b55atsli3sU4MOJ9XDoKgnlCtQtXYj8XUFcM3riTuYHyqBBnnskawW+zWwp0KxJzpEUodlpqUg== dependencies: - cssnano-preset-default "^7.0.0" + cssnano-preset-default "^7.0.1" lilconfig "^3.1.1" csso@^5.0.5: @@ -459,9 +459,9 @@ eastasianwidth@^0.2.0: integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== electron-to-chromium@^1.4.668: - version "1.4.716" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.716.tgz#90c229ce0af2ad3b6e54472af1200e07f10293a4" - integrity sha512-t/MXMzFKQC3UfMDpw7V5wdB/UAB8dWx4hEsy+fpPYJWW3gqh3u5T1uXp6vR+H6dGCPBxkRo+YBcapBLvbGQHRw== + version "1.4.749" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.749.tgz#9869e2e258141da26a2272b58264584c3461279d" + integrity sha512-LRMMrM9ITOvue0PoBrvNIraVmuDbJV5QC9ierz/z5VilMdPOVMjOtpICNld3PuXuTZ3CHH/UPxX9gHhAPwi+0Q== emoji-regex@^8.0.0: version "8.0.0" @@ -870,12 +870,12 @@ pirates@^4.0.1: resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== -postcss-calc@^9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-9.0.1.tgz#a744fd592438a93d6de0f1434c572670361eb6c6" - integrity sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ== +postcss-calc@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-10.0.0.tgz#aca29a1c66dd481ca30d08f6932b1274a1003716" + integrity sha512-OmjhudoNTP0QleZCwl1i6NeBwN+5MZbY5ersLZz69mjJiDVv/p57RjRuKDkHeDWr4T+S97wQfsqRTNoDHB2e3g== dependencies: - postcss-selector-parser "^6.0.11" + postcss-selector-parser "^6.0.16" postcss-value-parser "^4.2.0" postcss-cli@^11.0.0: From 1485e688d3006a23ea9568816cc8a9145f2d5ddd Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Tue, 30 Apr 2024 06:27:25 +0000 Subject: [PATCH 100/162] Update flyway-core, ... to 10.12.0 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index c7dc41df..5479aeac 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -19,7 +19,7 @@ object Dependencies { val DoobieVersion = "1.0.0-RC5" val EmilVersion = "0.17.0" val FlexmarkVersion = "0.64.8" - val FlywayVersion = "10.11.1" + val FlywayVersion = "10.12.0" val Fs2Version = "3.10.2" val H2Version = "2.2.224" val Http4sVersion = "0.23.26" From 775841b7de162a472e3dc00340f10eec8203142d Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Thu, 2 May 2024 06:27:03 +0000 Subject: [PATCH 101/162] Update sbt-scalafix to 0.12.1 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index 3259f9c4..6a85f860 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,4 +1,4 @@ -addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.12.0") +addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.12.1") addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.12.0") addSbtPlugin("com.github.eikek" % "sbt-openapi-schema" % "0.13.1") addSbtPlugin("com.github.sbt" % "sbt-pgp" % "2.2.1") From d44f4e7cfafb733618eece1d01a2239bf32a74d4 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Thu, 2 May 2024 06:27:08 +0000 Subject: [PATCH 102/162] Update scala-library to 2.13.14 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index e91909d6..497402b9 100644 --- a/build.sbt +++ b/build.sbt @@ -15,7 +15,7 @@ val scalafixSettings = Seq( val sharedSettings = Seq( organization := "com.github.eikek", - scalaVersion := "2.13.13", + scalaVersion := "2.13.14", organizationName := "Eike K. & Contributors", licenses += ("AGPL-3.0-or-later", url( "https://spdx.org/licenses/AGPL-3.0-or-later.html" From 409ea99b175d0a962d73df67422d319736d9cbdc Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Sat, 4 May 2024 06:25:28 +0000 Subject: [PATCH 103/162] Update http4s-circe, http4s-dsl, ... to 0.23.27 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 5479aeac..2e98dd01 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -22,7 +22,7 @@ object Dependencies { val FlywayVersion = "10.12.0" val Fs2Version = "3.10.2" val H2Version = "2.2.224" - val Http4sVersion = "0.23.26" + val Http4sVersion = "0.23.27" val Icu4jVersion = "75.1" val JavaOtpVersion = "0.4.0" val JsoupVersion = "1.17.2" From 6896ea0866156d2dd88cf5d3fd09bc5c2e567d2c Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Mon, 6 May 2024 06:27:50 +0000 Subject: [PATCH 104/162] Update io, sbt to 1.10.0 --- project/build.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/build.properties b/project/build.properties index 04267b14..081fdbbc 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1 +1 @@ -sbt.version=1.9.9 +sbt.version=1.10.0 From 004add0dd19624103f269a2d0f207f10f24762e6 Mon Sep 17 00:00:00 2001 From: Vladimir Timofeenko Date: Mon, 6 May 2024 10:21:54 -0700 Subject: [PATCH 105/162] Add package option to Nix modules "Package" option allows specifying the derivation that will be used for the systemd service. Works the same way as `services..package` in NixOS. By default picks the docspell packages from pkgs instance -- same behavior as prior to this commit Closes #2627 --- nix/modules/joex.nix | 3 ++- nix/modules/server.nix | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/nix/modules/joex.nix b/nix/modules/joex.nix index 5e893be6..703d9209 100644 --- a/nix/modules/joex.nix +++ b/nix/modules/joex.nix @@ -306,6 +306,7 @@ in { default = false; description = "Whether to enable docspell docspell job executor."; }; + package = mkPackageOption pkgs "docspell-joex" {}; runAs = mkOption { type = types.nullOr types.str; default = null; @@ -1777,7 +1778,7 @@ in { systemd.services.docspell-joex = let args = builtins.concatStringsSep " " cfg.jvmArgs; - cmd = "${pkgs.docspell-joex}/bin/docspell-joex ${args} -- ${configFile}"; + cmd = "${lib.getExe' cfg.package "docspell-joex"} ${args} -- ${configFile}"; waitTarget = if cfg.waitForTarget != null then [cfg.waitForTarget] diff --git a/nix/modules/server.nix b/nix/modules/server.nix index 0943e42e..c9f2404a 100644 --- a/nix/modules/server.nix +++ b/nix/modules/server.nix @@ -150,6 +150,7 @@ in { default = false; description = "Whether to enable docspell."; }; + package = mkPackageOption pkgs "docspell-restserver" {}; runAs = mkOption { type = types.nullOr types.str; default = null; @@ -878,7 +879,7 @@ in { systemd.services.docspell-restserver = let args = builtins.concatStringsSep " " cfg.jvmArgs; - cmd = "${pkgs.docspell-restserver}/bin/docspell-restserver ${args} -- ${configFile}"; + cmd = "${lib.getExe' cfg.package "docspell-restserver"} ${args} -- ${configFile}"; in { description = "Docspell Rest Server"; after = ["networking.target"]; From 2834513d92a9e84137d7aa9fea2a5a780b865d25 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Tue, 7 May 2024 06:27:31 +0000 Subject: [PATCH 106/162] Update jwt-circe to 10.0.1 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 2e98dd01..29d488dd 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -26,7 +26,7 @@ object Dependencies { val Icu4jVersion = "75.1" val JavaOtpVersion = "0.4.0" val JsoupVersion = "1.17.2" - val JwtScalaVersion = "10.0.0" + val JwtScalaVersion = "10.0.1" val KindProjectorVersion = "0.10.3" val KittensVersion = "3.3.0" val LevigoJbig2Version = "2.0" From 7969e0daa8b025d40401576afc0065fb60d959f1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 8 May 2024 22:42:33 +0000 Subject: [PATCH 107/162] chore(deps): update actions/checkout action to v4.1.5 --- .github/workflows/ci-docs.yml | 2 +- .github/workflows/ci.yml | 2 +- .github/workflows/docker-image.yml | 2 +- .github/workflows/release-nightly.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/website.yml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci-docs.yml b/.github/workflows/ci-docs.yml index 539a87d7..ddceac33 100644 --- a/.github/workflows/ci-docs.yml +++ b/.github/workflows/ci-docs.yml @@ -8,7 +8,7 @@ jobs: check-website: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4.1.4 + - uses: actions/checkout@v4.1.5 with: fetch-depth: 0 - uses: cachix/install-nix-action@v26 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f3fa26cf..42316ae1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,7 +9,7 @@ jobs: strategy: fail-fast: false steps: - - uses: actions/checkout@v4.1.4 + - uses: actions/checkout@v4.1.5 with: fetch-depth: 100 - name: Fetch tags diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 610ea444..68308a1a 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -6,7 +6,7 @@ jobs: docker-images: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4.1.4 + - uses: actions/checkout@v4.1.5 with: fetch-depth: 0 - name: Set current version diff --git a/.github/workflows/release-nightly.yml b/.github/workflows/release-nightly.yml index a735f31f..a4d951cd 100644 --- a/.github/workflows/release-nightly.yml +++ b/.github/workflows/release-nightly.yml @@ -9,7 +9,7 @@ jobs: strategy: fail-fast: true steps: - - uses: actions/checkout@v4.1.4 + - uses: actions/checkout@v4.1.5 with: fetch-depth: 0 - uses: cachix/install-nix-action@v26 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7e989e68..54b6fe1b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -9,7 +9,7 @@ jobs: strategy: fail-fast: true steps: - - uses: actions/checkout@v4.1.4 + - uses: actions/checkout@v4.1.5 with: fetch-depth: 0 - uses: cachix/install-nix-action@v26 diff --git a/.github/workflows/website.yml b/.github/workflows/website.yml index 79293b35..317c3cca 100644 --- a/.github/workflows/website.yml +++ b/.github/workflows/website.yml @@ -7,7 +7,7 @@ jobs: publish-website: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4.1.4 + - uses: actions/checkout@v4.1.5 with: fetch-depth: 0 - uses: cachix/install-nix-action@v26 From 021f5a183e9f1db92797a5115e37e02d38dcbfd8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 10 May 2024 01:44:59 +0000 Subject: [PATCH 108/162] chore(deps): update postgres docker tag to v16.3 --- docker/docker-compose/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/docker-compose/docker-compose.yml b/docker/docker-compose/docker-compose.yml index f801b8fa..a78b63fb 100644 --- a/docker/docker-compose/docker-compose.yml +++ b/docker/docker-compose/docker-compose.yml @@ -109,7 +109,7 @@ services: - restserver db: - image: postgres:16.2 + image: postgres:16.3 container_name: postgres_db restart: unless-stopped volumes: From 997fb605086d9c855d53565c05c48a71a14d47f5 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Fri, 10 May 2024 06:26:37 +0000 Subject: [PATCH 109/162] Update scribe, scribe-slf4j2 to 3.13.5 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 29d488dd..4eba86e8 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -42,7 +42,7 @@ object Dependencies { val PureConfigVersion = "0.17.6" val ScalaJavaTimeVersion = "2.5.0" val ScodecBitsVersion = "1.1.38" - val ScribeVersion = "3.13.4" + val ScribeVersion = "3.13.5" val Slf4jVersion = "2.0.13" val SourcecodeVersion = "0.4.1" val StanfordNlpVersion = "4.5.7" From a90cec4e7bc320e62f3ffe8c996e7c5807c97842 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 15 May 2024 20:08:23 +0000 Subject: [PATCH 110/162] chore(deps): update cachix/install-nix-action action to v27 --- .github/workflows/ci-docs.yml | 2 +- .github/workflows/ci.yml | 2 +- .github/workflows/release-nightly.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/website.yml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci-docs.yml b/.github/workflows/ci-docs.yml index ddceac33..c9b62fd8 100644 --- a/.github/workflows/ci-docs.yml +++ b/.github/workflows/ci-docs.yml @@ -11,7 +11,7 @@ jobs: - uses: actions/checkout@v4.1.5 with: fetch-depth: 0 - - uses: cachix/install-nix-action@v26 + - uses: cachix/install-nix-action@v27 - name: Set current version run: echo "DOCSPELL_VERSION=$(cat version.sbt | grep version | cut -d= -f2 | xargs)" >> $GITHUB_ENV - name: Build website (${{ env.DOCSPELL_VERSION }}) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 42316ae1..409b8620 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,7 +14,7 @@ jobs: fetch-depth: 100 - name: Fetch tags run: git fetch --depth=100 origin +refs/tags/*:refs/tags/* - - uses: cachix/install-nix-action@v26 + - uses: cachix/install-nix-action@v27 - name: sbt ci ${{ github.ref }} run: nix develop .#ci --command sbt ci ci: diff --git a/.github/workflows/release-nightly.yml b/.github/workflows/release-nightly.yml index a4d951cd..620f9f1a 100644 --- a/.github/workflows/release-nightly.yml +++ b/.github/workflows/release-nightly.yml @@ -12,7 +12,7 @@ jobs: - uses: actions/checkout@v4.1.5 with: fetch-depth: 0 - - uses: cachix/install-nix-action@v26 + - uses: cachix/install-nix-action@v27 - name: Set current version run: echo "DOCSPELL_VERSION=$(cat version.sbt | grep version | cut -d= -f2 | xargs)" >> $GITHUB_ENV - name: sbt ci ${{ github.ref }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 54b6fe1b..e9a9d45c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,7 +12,7 @@ jobs: - uses: actions/checkout@v4.1.5 with: fetch-depth: 0 - - uses: cachix/install-nix-action@v26 + - uses: cachix/install-nix-action@v27 - name: Set current version run: echo "DOCSPELL_VERSION=$(cat version.sbt | grep version | cut -d= -f2 | xargs)" >> $GITHUB_ENV - name: sbt make-pkg (${{ env.DOCSPELL_VERSION }}) diff --git a/.github/workflows/website.yml b/.github/workflows/website.yml index 317c3cca..17105fb0 100644 --- a/.github/workflows/website.yml +++ b/.github/workflows/website.yml @@ -10,7 +10,7 @@ jobs: - uses: actions/checkout@v4.1.5 with: fetch-depth: 0 - - uses: cachix/install-nix-action@v26 + - uses: cachix/install-nix-action@v27 - name: Set current version run: echo "DOCSPELL_VERSION=$(cat version.sbt | grep version | cut -d= -f2 | xargs)" >> $GITHUB_ENV - name: Build website (${{ env.DOCSPELL_VERSION }}) From bdf5c54ac9c971bf45344e460387fe6f564a07de Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 16 May 2024 21:58:21 +0000 Subject: [PATCH 111/162] chore(deps): update actions/checkout action to v4.1.6 --- .github/workflows/ci-docs.yml | 2 +- .github/workflows/ci.yml | 2 +- .github/workflows/docker-image.yml | 2 +- .github/workflows/release-nightly.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/website.yml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci-docs.yml b/.github/workflows/ci-docs.yml index c9b62fd8..4d34e864 100644 --- a/.github/workflows/ci-docs.yml +++ b/.github/workflows/ci-docs.yml @@ -8,7 +8,7 @@ jobs: check-website: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4.1.5 + - uses: actions/checkout@v4.1.6 with: fetch-depth: 0 - uses: cachix/install-nix-action@v27 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 409b8620..60218298 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,7 +9,7 @@ jobs: strategy: fail-fast: false steps: - - uses: actions/checkout@v4.1.5 + - uses: actions/checkout@v4.1.6 with: fetch-depth: 100 - name: Fetch tags diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 68308a1a..0cd698fd 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -6,7 +6,7 @@ jobs: docker-images: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4.1.5 + - uses: actions/checkout@v4.1.6 with: fetch-depth: 0 - name: Set current version diff --git a/.github/workflows/release-nightly.yml b/.github/workflows/release-nightly.yml index 620f9f1a..c4880f83 100644 --- a/.github/workflows/release-nightly.yml +++ b/.github/workflows/release-nightly.yml @@ -9,7 +9,7 @@ jobs: strategy: fail-fast: true steps: - - uses: actions/checkout@v4.1.5 + - uses: actions/checkout@v4.1.6 with: fetch-depth: 0 - uses: cachix/install-nix-action@v27 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e9a9d45c..7ac092d7 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -9,7 +9,7 @@ jobs: strategy: fail-fast: true steps: - - uses: actions/checkout@v4.1.5 + - uses: actions/checkout@v4.1.6 with: fetch-depth: 0 - uses: cachix/install-nix-action@v27 diff --git a/.github/workflows/website.yml b/.github/workflows/website.yml index 17105fb0..f94f3e6a 100644 --- a/.github/workflows/website.yml +++ b/.github/workflows/website.yml @@ -7,7 +7,7 @@ jobs: publish-website: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4.1.5 + - uses: actions/checkout@v4.1.6 with: fetch-depth: 0 - uses: cachix/install-nix-action@v27 From f6351810917d09d94a4a695782fe86369701aac5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 21 May 2024 21:38:36 +0000 Subject: [PATCH 112/162] chore(deps): update dependency flag-icons to v7.2.2 --- modules/webapp/package-lock.json | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/modules/webapp/package-lock.json b/modules/webapp/package-lock.json index 4d19b8ee..f822c68b 100644 --- a/modules/webapp/package-lock.json +++ b/modules/webapp/package-lock.json @@ -381,10 +381,11 @@ } }, "node_modules/flag-icons": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/flag-icons/-/flag-icons-7.2.1.tgz", - "integrity": "sha512-EaU4XZmFt1BOilz9nMmJKjma5pOaNjzL7somOhadrrilollh4xj6aaXI2M1sd00VUfVWN0E25Q6xaW3SNt0k/Q==", - "dev": true + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/flag-icons/-/flag-icons-7.2.2.tgz", + "integrity": "sha512-9cC2y77npwpNJ1Whl3iACVFd/vR7ZQe9AwN8BRDJU2sZROMpEzIC3tOT1qbRRm/QS9b9UTXBHEKAO4I6d7L0xg==", + "dev": true, + "license": "MIT" }, "node_modules/foreground-child": { "version": "3.1.1", From 3a43ad408c1f60ea66f0036976ab8046abd4a2d7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 22 May 2024 19:38:29 +0000 Subject: [PATCH 113/162] chore(deps): update alpine docker tag to v3.20.0 --- docker/dockerfiles/joex.dockerfile | 2 +- docker/dockerfiles/restserver.dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/dockerfiles/joex.dockerfile b/docker/dockerfiles/joex.dockerfile index 6d996521..4c13e49f 100644 --- a/docker/dockerfiles/joex.dockerfile +++ b/docker/dockerfiles/joex.dockerfile @@ -1,4 +1,4 @@ -FROM alpine:3.19.1 +FROM alpine:3.20.0 ARG version= ARG joex_url= diff --git a/docker/dockerfiles/restserver.dockerfile b/docker/dockerfiles/restserver.dockerfile index 84726bf3..4cf4b716 100644 --- a/docker/dockerfiles/restserver.dockerfile +++ b/docker/dockerfiles/restserver.dockerfile @@ -1,4 +1,4 @@ -FROM alpine:3.19.1 +FROM alpine:3.20.0 ARG version= ARG restserver_url= From bec485de0bf0fcd2e200e51b09ab5088e7b8b2b6 Mon Sep 17 00:00:00 2001 From: Vladimir Timofeenko Date: Wed, 22 May 2024 17:18:18 -0700 Subject: [PATCH 114/162] Add logout-url option to Nix module Closes #2643 --- nix/modules/server.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/nix/modules/server.nix b/nix/modules/server.nix index c9f2404a..49b681c4 100644 --- a/nix/modules/server.nix +++ b/nix/modules/server.nix @@ -111,6 +111,7 @@ with lib; let scope = "profile"; authorize-url = null; token-url = null; + logout-url = ""; user-url = null; sign-key = ""; sig-algo = "RS256"; @@ -424,6 +425,11 @@ in { default = defaults.openid.provider.token-url; description = "The URL used to retrieve the token."; }; + logout-url = mkOption { + type = types.str; + default = defaults.openid.provider.logout-url; + description = "The URL used for user's logout."; + }; user-url = mkOption { type = types.nullOr types.str; default = defaults.openid.provider.user-url; From a2ae339870ed4f491dc13c64c5a165ce1b947b6f Mon Sep 17 00:00:00 2001 From: Vladimir Timofeenko Date: Fri, 24 May 2024 13:27:46 -0700 Subject: [PATCH 115/162] Add auth.on-account-source-conflict --- nix/modules/server.nix | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/nix/modules/server.nix b/nix/modules/server.nix index 49b681c4..c2a6d51e 100644 --- a/nix/modules/server.nix +++ b/nix/modules/server.nix @@ -92,6 +92,7 @@ with lib; let auth = { server-secret = "hex:caffee"; session-valid = "5 minutes"; + on-account-source-conflict = "fail"; remember-me = { enabled = true; valid = "30 days"; @@ -324,6 +325,19 @@ in { will get a new one periodically. ''; }; + on-account-source-conflict = mkOption { + type = types.enum ["fail" "convert"]; + default = defaults.auth.on-account-source-conflict; + description = '' + Accounts can be local or defined at a remote provider and + integrated via OIDC. If the same account is defined in both + sources, docspell by default fails if a user mixes logins (e.g. + when registering a user locally and then logging in with the + same user via OIDC). When set to `convert` docspell treats it as + being the same and simply updates the account to reflect the new + account source. + ''; + }; remember-me = mkOption { type = types.submodule { options = { From 9c8d290fa9a405652e3345fe36fe2058c12555b0 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Fri, 24 May 2024 21:15:51 +0000 Subject: [PATCH 116/162] Update sourcecode to 0.4.2 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 4eba86e8..4d95a340 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -44,7 +44,7 @@ object Dependencies { val ScodecBitsVersion = "1.1.38" val ScribeVersion = "3.13.5" val Slf4jVersion = "2.0.13" - val SourcecodeVersion = "0.4.1" + val SourcecodeVersion = "0.4.2" val StanfordNlpVersion = "4.5.7" val TikaVersion = "2.9.2" val YamuscaVersion = "0.10.0" From f315ad32c01c4822936bbcf508882b12201c3a78 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Fri, 24 May 2024 21:15:55 +0000 Subject: [PATCH 117/162] Update flyway-core, ... to 10.13.0 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 4eba86e8..1f6daf02 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -19,7 +19,7 @@ object Dependencies { val DoobieVersion = "1.0.0-RC5" val EmilVersion = "0.17.0" val FlexmarkVersion = "0.64.8" - val FlywayVersion = "10.12.0" + val FlywayVersion = "10.13.0" val Fs2Version = "3.10.2" val H2Version = "2.2.224" val Http4sVersion = "0.23.27" From 7cd96bc59e3796e5a90ccd047693a9deebf3acac Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Fri, 24 May 2024 21:15:58 +0000 Subject: [PATCH 118/162] Update mariadb-java-client to 3.4.0 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 4eba86e8..148a5a22 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -32,7 +32,7 @@ object Dependencies { val LevigoJbig2Version = "2.0" val Log4sVersion = "1.10.0" val LogbackVersion = "1.2.10" - val MariaDbVersion = "3.3.3" + val MariaDbVersion = "3.4.0" val MUnitVersion = "0.7.29" val MUnitCatsEffectVersion = "1.0.7" val PdfboxVersion = "3.0.2" From ffeffedfbfe1d6a07b5f1ec177d3a03582af3dac Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Fri, 24 May 2024 21:16:05 +0000 Subject: [PATCH 119/162] Update scodec-bits to 1.2.0 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 4eba86e8..8a3a9f60 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -41,7 +41,7 @@ object Dependencies { val PostgresVersion = "42.7.3" val PureConfigVersion = "0.17.6" val ScalaJavaTimeVersion = "2.5.0" - val ScodecBitsVersion = "1.1.38" + val ScodecBitsVersion = "1.2.0" val ScribeVersion = "3.13.5" val Slf4jVersion = "2.0.13" val SourcecodeVersion = "0.4.1" From e5758847f611dd0557bb8b53ded0b86b58da62ba Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Fri, 24 May 2024 21:16:17 +0000 Subject: [PATCH 120/162] Update swagger-ui to 5.17.11 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 4eba86e8..336b9461 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -48,7 +48,7 @@ object Dependencies { val StanfordNlpVersion = "4.5.7" val TikaVersion = "2.9.2" val YamuscaVersion = "0.10.0" - val SwaggerUIVersion = "5.17.2" + val SwaggerUIVersion = "5.17.11" val TestContainerVersion = "0.40.14" val TwelveMonkeysVersion = "3.10.1" val JQueryVersion = "3.5.1" From 172513ce38aa47d66e04bb9d51aa525648eae8e4 Mon Sep 17 00:00:00 2001 From: eikek Date: Mon, 27 May 2024 17:53:13 +0200 Subject: [PATCH 121/162] Move arg-mappings underneath `command` section The argument mappings are part of the command configuration --- .../joex/src/main/resources/reference.conf | 78 +++++++++---------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/modules/joex/src/main/resources/reference.conf b/modules/joex/src/main/resources/reference.conf index fc54bae4..899620dc 100644 --- a/modules/joex/src/main/resources/reference.conf +++ b/modules/joex/src/main/resources/reference.conf @@ -593,27 +593,27 @@ Docpell Update Check # To convert image files to PDF files, tesseract is used. This # also extracts the text in one go. tesseract = { - # Custom Language Mappings Below - # Japanese Vertical Mapping - arg-mappings = { - "tesseract_lang" = { - value = "{{lang}}" - mappings = [ - { - matches = "jpn_vert" - args = [ "-l", "jpn_vert", "-c", "preserve_interword_spaces=1" ] - }, - # Start Other Custom Language Mappings Here - # Default Mapping Below - { - matches = ".*" - args = [ "-l", "{{lang}}" ] - } - ] - } - } command = { program = "tesseract" + # Custom Language Mappings Below + # Japanese Vertical Mapping + arg-mappings = { + "tesseract_lang" = { + value = "{{lang}}" + mappings = [ + { + matches = "jpn_vert" + args = [ "-l", "jpn_vert", "-c", "preserve_interword_spaces=1" ] + }, + # Start Other Custom Language Mappings Here + # Default Mapping Below + { + matches = ".*" + args = [ "-l", "{{lang}}" ] + } + ] + } + } # Default arguments for all processing go below. args = [ "{{infile}}", @@ -667,29 +667,29 @@ Docpell Update Check # (where ocr is not necessary). In this case, the pdf will be # converted to PDF/A. ocrmypdf = { - # Custom argument mappings for this program. - arg-mappings = { - "ocr_lang" = { - value = "{{lang}}" - # Custom Language Mappings Below - # Japanese Vertical Mapping - mappings = [ - { - matches = "jpn_vert" - args = [ "-l", "jpn_vert", "--pdf-renderer", "sandwich", "--tesseract-pagesegmode", "5" ] - }, - # Start Other Custom Language Mappings Here - # Default Mapping Below - { - matches = ".*" - args = [ "-l", "{{lang}}" ] - } - ] - } - } enabled = true command = { program = "ocrmypdf" + # Custom argument mappings for this program. + arg-mappings = { + "ocr_lang" = { + value = "{{lang}}" + # Custom Language Mappings Below + # Japanese Vertical Mapping + mappings = [ + { + matches = "jpn_vert" + args = [ "-l", "jpn_vert", "--pdf-renderer", "sandwich", "--tesseract-pagesegmode", "5" ] + }, + # Start Other Custom Language Mappings Here + # Default Mapping Below + { + matches = ".*" + args = [ "-l", "{{lang}}" ] + } + ] + } + } # Default arguments for all processing go below. args = [ "{{ocr_lang}}", From 62bd9844ddf28ca90fe988ffca525aef4db65d01 Mon Sep 17 00:00:00 2001 From: eikek Date: Mon, 27 May 2024 20:39:26 +0200 Subject: [PATCH 122/162] Fix test for non-empty sub directory Fixes: #2650 --- .../test/resources/docspell-addon-single-file.zip | Bin 0 -> 415 bytes .../scala/docspell/addons/AddonArchiveTest.scala | 14 ++++++++++++-- .../src/test/scala/docspell/addons/Fixtures.scala | 3 +++ .../scala/docspell/common/util/Directory.scala | 9 +++++---- 4 files changed, 20 insertions(+), 6 deletions(-) create mode 100644 modules/addonlib/src/test/resources/docspell-addon-single-file.zip diff --git a/modules/addonlib/src/test/resources/docspell-addon-single-file.zip b/modules/addonlib/src/test/resources/docspell-addon-single-file.zip new file mode 100644 index 0000000000000000000000000000000000000000..94735d9841fc1f5eb35aaf7703df550eda633002 GIT binary patch literal 415 zcmWIWW@Zs#U|`^2*cP-cV&PkhuBSj=4kH7D5Q7XuN`7*2L26EpZemJGex6=sZcb57d=AVPoE510I+1`lE`w@8+=nVSRgLslCJPExImB ztesv~Umkl~zYTL}{!(FaPjlnN8;nk!?lEF>v!6*+M~O|Hw_oGw332f|JFhHwH0$*T zs~G+*1#`Vmls(F4Kk!^m>yJRtgb5mtt~2ej`m_0Xru~DvGKH-x-a4B3oSon;aCr7= z5f$#7^njaDNyoQMe&{GVGb>eItBH5+)D5|EA2Kc_^Ez!j@0z}DEB~>T+P*EP4Zm@0 zf6kk*P_rsmyVw6g=k~|4YPwIK{y#6FEE)d#i%#7-k!|hMW}8cF3|iBEbB*Dr9Qm_F zo1b^d2Y53w$uZ*!G6`TXFfaf^k6}q8h=nZxSs?+47I*>PtZX11j6fIxqzyraFaQ8{ Cewlm# literal 0 HcmV?d00001 diff --git a/modules/addonlib/src/test/scala/docspell/addons/AddonArchiveTest.scala b/modules/addonlib/src/test/scala/docspell/addons/AddonArchiveTest.scala index 7cd98dcd..b49dbab8 100644 --- a/modules/addonlib/src/test/scala/docspell/addons/AddonArchiveTest.scala +++ b/modules/addonlib/src/test/scala/docspell/addons/AddonArchiveTest.scala @@ -9,7 +9,7 @@ package docspell.addons import cats.effect._ import cats.syntax.option._ -import docspell.common.UrlReader +import docspell.common._ import docspell.logging.TestLoggingConfig import munit._ @@ -42,10 +42,20 @@ class AddonArchiveTest extends CatsEffectSuite with TestLoggingConfig with Fixtu } yield () } + tempDir.test("read archive from zip with yaml only") { dir => + for { + aa <- AddonArchive.read[IO](singleFileAddonUrl, UrlReader.defaultReader[IO], None) + _ = assertEquals(aa.version, "0.7.0") + path <- aa.extractTo(UrlReader.defaultReader[IO], dir) + read <- AddonArchive.read[IO](aa.url, UrlReader.defaultReader[IO], path.some) + _ = assertEquals(aa, read) + } yield () + } + tempDir.test("Read generated addon from path") { dir => AddonGenerator.successAddon("mini-addon").use { addon => for { - archive <- IO(AddonArchive(addon.url, "", "")) + archive <- IO(AddonArchive(addon.url, "test-addon", "0.1.0")) path <- archive.extractTo[IO](UrlReader.defaultReader[IO], dir) read <- AddonArchive.read[IO](addon.url, UrlReader.defaultReader[IO], path.some) diff --git a/modules/addonlib/src/test/scala/docspell/addons/Fixtures.scala b/modules/addonlib/src/test/scala/docspell/addons/Fixtures.scala index f169d3dd..127c74da 100644 --- a/modules/addonlib/src/test/scala/docspell/addons/Fixtures.scala +++ b/modules/addonlib/src/test/scala/docspell/addons/Fixtures.scala @@ -31,6 +31,9 @@ trait Fixtures extends TestLoggingConfig { self: CatsEffectSuite => val miniAddonUrl = LenientUri.fromJava(getClass.getResource("/minimal-addon.zip")) + val singleFileAddonUrl = + LenientUri.fromJava(getClass.getResource("/docspell-addon-single-file.zip")) + val dummyAddonMeta = AddonMeta( meta = diff --git a/modules/common/src/main/scala/docspell/common/util/Directory.scala b/modules/common/src/main/scala/docspell/common/util/Directory.scala index fcde4ebb..8002bc85 100644 --- a/modules/common/src/main/scala/docspell/common/util/Directory.scala +++ b/modules/common/src/main/scala/docspell/common/util/Directory.scala @@ -6,6 +6,7 @@ package docspell.common.util +import cats.data.OptionT import cats.effect._ import cats.syntax.all._ import cats.{Applicative, Monad} @@ -26,10 +27,10 @@ object Directory { (dir :: dirs.toList).traverse_(Files[F].createDirectories(_)) def nonEmpty[F[_]: Files: Sync](dir: Path): F[Boolean] = - List( - Files[F].isDirectory(dir), - Files[F].list(dir).take(1).compile.last.map(_.isDefined) - ).sequence.map(_.forall(identity)) + OptionT + .whenM(Files[F].isDirectory(dir))(Files[F].list(dir).take(1).compile.toList) + .map(_.nonEmpty) + .isDefined def isEmpty[F[_]: Files: Sync](dir: Path): F[Boolean] = nonEmpty(dir).map(b => !b) From 2ca492d6cb6fa91abab40cc540cd311b4ae6ab5b Mon Sep 17 00:00:00 2001 From: eikek Date: Mon, 27 May 2024 20:39:49 +0200 Subject: [PATCH 123/162] Unwrap single directory after unzip is complete --- .../addonlib/src/main/scala/docspell/addons/AddonArchive.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/addonlib/src/main/scala/docspell/addons/AddonArchive.scala b/modules/addonlib/src/main/scala/docspell/addons/AddonArchive.scala index d4a367be..95725c1a 100644 --- a/modules/addonlib/src/main/scala/docspell/addons/AddonArchive.scala +++ b/modules/addonlib/src/main/scala/docspell/addons/AddonArchive.scala @@ -38,9 +38,9 @@ final case class AddonArchive(url: LenientUri, name: String, version: String) { Files[F].createDirectories(target) *> reader(url) .through(Zip[F](logger.some).unzip(glob = glob, targetDir = target.some)) - .evalTap(_ => Directory.unwrapSingle[F](logger, target)) .compile .drain + .flatTap(_ => Directory.unwrapSingle[F](logger, target)) .as(target) } } From b20e466e43f82a62e8f005ace8cb76e5d7af5fcb Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Tue, 28 May 2024 06:12:52 +0000 Subject: [PATCH 124/162] Update calev-circe, calev-core, calev-fs2 to 0.7.3 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 414fa0ac..73822240 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -8,7 +8,7 @@ object Dependencies { val BcryptVersion = "0.4" val BetterMonadicForVersion = "0.3.1" val BinnyVersion = "0.11.0" - val CalevVersion = "0.7.2" + val CalevVersion = "0.7.3" val CatsVersion = "2.10.0" val CatsEffectVersion = "3.5.4" val CatsParseVersion = "1.0.0" From fd2b897f2f3b98230ce63e25d23bdf8447d3ddad Mon Sep 17 00:00:00 2001 From: eikek Date: Tue, 28 May 2024 20:54:53 +0200 Subject: [PATCH 125/162] Honor default value `true` for `collectOutput` Fixes #2629 --- .../main/scala/docspell/addons/runner/RunnerUtil.scala | 4 ++-- .../src/test/scala/docspell/addons/AddonMetaTest.scala | 9 +++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/modules/addonlib/src/main/scala/docspell/addons/runner/RunnerUtil.scala b/modules/addonlib/src/main/scala/docspell/addons/runner/RunnerUtil.scala index 7f44dcea..39c2a52f 100644 --- a/modules/addonlib/src/main/scala/docspell/addons/runner/RunnerUtil.scala +++ b/modules/addonlib/src/main/scala/docspell/addons/runner/RunnerUtil.scala @@ -110,7 +110,7 @@ private[addons] object RunnerUtil { ): F[AddonResult] = for { stdout <- - if (ctx.meta.options.exists(_.collectOutput)) CollectOut.buffer[F] + if (ctx.meta.parseResult) CollectOut.buffer[F] else CollectOut.none[F].pure[F] cmdResult <- SysExec(cmd, logger, ctx.baseDir.some) .flatMap( @@ -135,7 +135,7 @@ private[addons] object RunnerUtil { out <- stdout.get _ <- logger.debug(s"Addon stdout: $out") result = Option - .when(ctx.meta.options.exists(_.collectOutput) && out.nonEmpty)( + .when(ctx.meta.parseResult && out.nonEmpty)( JsonParser .decode[AddonOutput](out) .fold(AddonResult.decodingError, AddonResult.success) diff --git a/modules/addonlib/src/test/scala/docspell/addons/AddonMetaTest.scala b/modules/addonlib/src/test/scala/docspell/addons/AddonMetaTest.scala index 38e37b38..7f5ffca8 100644 --- a/modules/addonlib/src/test/scala/docspell/addons/AddonMetaTest.scala +++ b/modules/addonlib/src/test/scala/docspell/addons/AddonMetaTest.scala @@ -35,4 +35,13 @@ class AddonMetaTest extends CatsEffectSuite with TestLoggingConfig with Fixtures _ = assertEquals(meta, dummyAddonMeta) } yield () } + + test("parse yaml with defaults") { + val yamlStr = """meta: + | name: "test" + | version: "0.1.0" + |""".stripMargin + val meta = AddonMeta.fromYamlString(yamlStr).fold(throw _, identity) + assert(meta.parseResult) + } } From 9c910d262e38f002d90b6d4f939688c4166985ad Mon Sep 17 00:00:00 2001 From: eikek Date: Tue, 28 May 2024 21:13:44 +0200 Subject: [PATCH 126/162] Update munit to 1.0.0, munit-cats-effect to 2.0.0 --- .../src/test/scala/docspell/addons/Fixtures.scala | 2 +- .../test/scala/docspell/common/util/DirectoryTest.scala | 2 +- modules/files/src/test/scala/docspell/files/ZipTest.scala | 2 +- .../src/test/scala/docspell/pubsub/naive/Fixtures.scala | 4 ++-- .../src/test/scala/docspell/store/DatabaseTest.scala | 2 +- .../src/test/scala/docspell/store/StoreFixture.scala | 4 ++-- project/Dependencies.scala | 8 ++++---- 7 files changed, 12 insertions(+), 12 deletions(-) diff --git a/modules/addonlib/src/test/scala/docspell/addons/Fixtures.scala b/modules/addonlib/src/test/scala/docspell/addons/Fixtures.scala index f169d3dd..558e1761 100644 --- a/modules/addonlib/src/test/scala/docspell/addons/Fixtures.scala +++ b/modules/addonlib/src/test/scala/docspell/addons/Fixtures.scala @@ -55,7 +55,7 @@ trait Fixtures extends TestLoggingConfig { self: CatsEffectSuite => Path(s"/tmp/target/test-temp") val tempDir = - ResourceFixture[Path]( + ResourceFunFixture[Path]( Resource.eval(Files[IO].createDirectories(baseTempDir)) *> Files[IO] .tempDirectory(baseTempDir.some, "run-", PosixPermissions.fromOctal("777")) diff --git a/modules/common/src/test/scala/docspell/common/util/DirectoryTest.scala b/modules/common/src/test/scala/docspell/common/util/DirectoryTest.scala index a760dcc1..7d1cf6d1 100644 --- a/modules/common/src/test/scala/docspell/common/util/DirectoryTest.scala +++ b/modules/common/src/test/scala/docspell/common/util/DirectoryTest.scala @@ -16,7 +16,7 @@ import munit.CatsEffectSuite class DirectoryTest extends CatsEffectSuite with TestLoggingConfig { val logger = docspell.logging.getLogger[IO] - val tempDir = ResourceFixture( + val tempDir = ResourceFunFixture( Files[IO].tempDirectory(Path("target").some, "directory-test-", None) ) diff --git a/modules/files/src/test/scala/docspell/files/ZipTest.scala b/modules/files/src/test/scala/docspell/files/ZipTest.scala index 45d86d0e..935fb69a 100644 --- a/modules/files/src/test/scala/docspell/files/ZipTest.scala +++ b/modules/files/src/test/scala/docspell/files/ZipTest.scala @@ -19,7 +19,7 @@ import munit._ class ZipTest extends CatsEffectSuite with TestLoggingConfig { val logger = docspell.logging.getLogger[IO] - val tempDir = ResourceFixture( + val tempDir = ResourceFunFixture( Files[IO].tempDirectory(Path("target").some, "zip-test-", None) ) diff --git a/modules/pubsub/naive/src/test/scala/docspell/pubsub/naive/Fixtures.scala b/modules/pubsub/naive/src/test/scala/docspell/pubsub/naive/Fixtures.scala index 848fc387..d472b1c5 100644 --- a/modules/pubsub/naive/src/test/scala/docspell/pubsub/naive/Fixtures.scala +++ b/modules/pubsub/naive/src/test/scala/docspell/pubsub/naive/Fixtures.scala @@ -20,9 +20,9 @@ import org.typelevel.ci._ trait Fixtures extends HttpClientOps { self: CatsEffectSuite => - val pubsubEnv = ResourceFixture(Fixtures.envResource("node-1")) + val pubsubEnv = ResourceFunFixture(Fixtures.envResource("node-1")) - val pubsubT = ResourceFixture { + val pubsubT = ResourceFunFixture { Fixtures .envResource("node-1") .flatMap(_.pubSub) diff --git a/modules/store/src/test/scala/docspell/store/DatabaseTest.scala b/modules/store/src/test/scala/docspell/store/DatabaseTest.scala index feaa994e..46cc0a25 100644 --- a/modules/store/src/test/scala/docspell/store/DatabaseTest.scala +++ b/modules/store/src/test/scala/docspell/store/DatabaseTest.scala @@ -66,7 +66,7 @@ trait DatabaseTest } yield res ) - lazy val newH2DataSource = ResourceFixture(for { + lazy val newH2DataSource = ResourceFunFixture(for { jdbc <- Resource.eval(IO(StoreFixture.memoryDB(UUID.randomUUID().toString))) ds <- StoreFixture.dataSource(jdbc) } yield (jdbc, ds)) diff --git a/modules/store/src/test/scala/docspell/store/StoreFixture.scala b/modules/store/src/test/scala/docspell/store/StoreFixture.scala index e95844aa..03fb9cb1 100644 --- a/modules/store/src/test/scala/docspell/store/StoreFixture.scala +++ b/modules/store/src/test/scala/docspell/store/StoreFixture.scala @@ -26,7 +26,7 @@ trait StoreFixture extends CatsEffectFunFixtures { self: CatsEffectSuite => def schemaMigrateConfig = StoreFixture.schemaMigrateConfig - val xa = ResourceFixture { + val xa = ResourceFunFixture { val cfg = StoreFixture.memoryDB("test") for { ds <- StoreFixture.dataSource(cfg) @@ -35,7 +35,7 @@ trait StoreFixture extends CatsEffectFunFixtures { self: CatsEffectSuite => } yield xa } - val store = ResourceFixture { + val store = ResourceFunFixture { val cfg = StoreFixture.memoryDB("test") for { store <- StoreFixture.store(cfg) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 414fa0ac..916f225d 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -33,8 +33,8 @@ object Dependencies { val Log4sVersion = "1.10.0" val LogbackVersion = "1.2.10" val MariaDbVersion = "3.4.0" - val MUnitVersion = "0.7.29" - val MUnitCatsEffectVersion = "1.0.7" + val MUnitVersion = "1.0.0" + val MUnitCatsEffectVersion = "2.0.0" val PdfboxVersion = "3.0.2" val PdfjsViewerVersion = "2.12.313" val PoiVersion = "4.1.2" @@ -49,7 +49,7 @@ object Dependencies { val TikaVersion = "2.9.2" val YamuscaVersion = "0.10.0" val SwaggerUIVersion = "5.17.11" - val TestContainerVersion = "0.40.14" + val TestContainerVersion = "0.41.3" val TwelveMonkeysVersion = "3.10.1" val JQueryVersion = "3.5.1" @@ -326,7 +326,7 @@ object Dependencies { val munit = Seq( "org.scalameta" %% "munit" % MUnitVersion, "org.scalameta" %% "munit-scalacheck" % MUnitVersion, - "org.typelevel" %% "munit-cats-effect-3" % MUnitCatsEffectVersion + "org.typelevel" %% "munit-cats-effect" % MUnitCatsEffectVersion ) val kindProjectorPlugin = "org.typelevel" %% "kind-projector" % KindProjectorVersion From 2aad27791aa1938bdc1205becae7c3f3f0c380c7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 29 May 2024 13:07:04 +0000 Subject: [PATCH 127/162] Update dependency flag-icons to v7.2.3 --- modules/webapp/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/webapp/package-lock.json b/modules/webapp/package-lock.json index f822c68b..fc242e9f 100644 --- a/modules/webapp/package-lock.json +++ b/modules/webapp/package-lock.json @@ -381,9 +381,9 @@ } }, "node_modules/flag-icons": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/flag-icons/-/flag-icons-7.2.2.tgz", - "integrity": "sha512-9cC2y77npwpNJ1Whl3iACVFd/vR7ZQe9AwN8BRDJU2sZROMpEzIC3tOT1qbRRm/QS9b9UTXBHEKAO4I6d7L0xg==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/flag-icons/-/flag-icons-7.2.3.tgz", + "integrity": "sha512-X2gUdteNuqdNqob2KKTJTS+ZCvyWeLCtDz9Ty8uJP17Y4o82Y+U/Vd4JNrdwTAjagYsRznOn9DZ+E/Q52qbmqg==", "dev": true, "license": "MIT" }, From faff4308bd03db3fee627bf3841db01464ffee72 Mon Sep 17 00:00:00 2001 From: eikek Date: Thu, 30 May 2024 21:03:25 +0200 Subject: [PATCH 128/162] Add release drafter config --- .github/release-drafter.yml | 39 +++++++++++++++++++++++++++ .github/renovate.json | 2 +- .github/workflows/release-drafter.yml | 14 ++++++++++ .mergify.yml | 2 +- 4 files changed, 55 insertions(+), 2 deletions(-) create mode 100644 .github/release-drafter.yml create mode 100644 .github/workflows/release-drafter.yml diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml new file mode 100644 index 00000000..d995df14 --- /dev/null +++ b/.github/release-drafter.yml @@ -0,0 +1,39 @@ +name-template: "$RESOLVED_VERSION" +tag-template: "$RESOLVED_VERSION" +template: | + ## What’s Changed + + $CHANGES + +categories: + - title: "🚀 Features" + labels: + - 'feature' + - 'enhancement' + - title: "🐛 Bug Fixes" + labels: + - 'fix' + - 'bug' + - title: "💚 Maintenance" + labels: + - 'chore' + - 'dependencies' + - 'documentation' + +change-template: '- $TITLE @$AUTHOR (#$NUMBER)' +version-resolver: + major: + labels: + - 'breaking' + minor: + labels: + - 'feature' + - 'enhancement' + patch: + labels: + - 'chore' + - 'documentation' + - 'dependencies' + default: patch +exclude-labels: + - 'skip-changelog' diff --git a/.github/renovate.json b/.github/renovate.json index defbaef7..92f7d7ca 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -1,6 +1,6 @@ { "automerge": true, - "labels": ["type: dependencies"], + "labels": ["dependencies"], "packageRules": [ { "matchManagers": [ diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml new file mode 100644 index 00000000..99fe14db --- /dev/null +++ b/.github/workflows/release-drafter.yml @@ -0,0 +1,14 @@ +name: Release Drafter + +on: + push: + branches: + - master + +jobs: + update_release_draft: + runs-on: ubuntu-latest + steps: + - uses: release-drafter/release-drafter@v6 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.mergify.yml b/.mergify.yml index ec6b13f2..ea6f9791 100644 --- a/.mergify.yml +++ b/.mergify.yml @@ -6,7 +6,7 @@ pull_request_rules: assign: users: [eikek] label: - add: ["type: dependencies"] + add: ["dependencies"] - name: automatically merge Scala Steward PRs on CI success conditions: - author=eikek-scala-steward[bot] From f77142899d55df619581e28d431d19bda4a82485 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Fri, 31 May 2024 06:13:09 +0000 Subject: [PATCH 129/162] Update swagger-ui to 5.17.14 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 64e6a43b..1696146f 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -48,7 +48,7 @@ object Dependencies { val StanfordNlpVersion = "4.5.7" val TikaVersion = "2.9.2" val YamuscaVersion = "0.10.0" - val SwaggerUIVersion = "5.17.11" + val SwaggerUIVersion = "5.17.14" val TestContainerVersion = "0.41.3" val TwelveMonkeysVersion = "3.10.1" val JQueryVersion = "3.5.1" From f991d6018e608b4beee38f3742ff6dbbd4d93679 Mon Sep 17 00:00:00 2001 From: eikek <701128+eikek@users.noreply.github.com> Date: Fri, 31 May 2024 09:01:58 +0200 Subject: [PATCH 130/162] Update release-drafter.yml --- .github/release-drafter.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml index d995df14..28f16def 100644 --- a/.github/release-drafter.yml +++ b/.github/release-drafter.yml @@ -17,8 +17,11 @@ categories: - title: "💚 Maintenance" labels: - 'chore' - - 'dependencies' - 'documentation' + - title: "🧱 Dependencies" + labels: + - 'dependencies' + - 'type: dependencies' change-template: '- $TITLE @$AUTHOR (#$NUMBER)' version-resolver: From 3621d3d9b48862472525de8247b92455f00c1951 Mon Sep 17 00:00:00 2001 From: tenpai Date: Sun, 2 Jun 2024 08:37:20 +0000 Subject: [PATCH 131/162] Add Japanese Mapping for OCR Optimization (#2668) --- modules/joex/src/main/resources/reference.conf | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/modules/joex/src/main/resources/reference.conf b/modules/joex/src/main/resources/reference.conf index 899620dc..b2303afb 100644 --- a/modules/joex/src/main/resources/reference.conf +++ b/modules/joex/src/main/resources/reference.conf @@ -679,7 +679,12 @@ Docpell Update Check mappings = [ { matches = "jpn_vert" - args = [ "-l", "jpn_vert", "--pdf-renderer", "sandwich", "--tesseract-pagesegmode", "5" ] + args = [ "-l", "jpn_vert", "--pdf-renderer", "sandwich", "--tesseract-pagesegmode", "5", "--output-type", "pdf" ] + }, + # Japanese Mapping for OCR Optimization + { + matches = "jpn" + args = [ "-l", "jpn", "--output-type", "pdf" ] }, # Start Other Custom Language Mappings Here # Default Mapping Below From 67cfcb275cae0c641a94ff3858f12a6c003d50d1 Mon Sep 17 00:00:00 2001 From: tenpai Date: Sun, 2 Jun 2024 18:57:36 +0000 Subject: [PATCH 132/162] Adding CJK and Custom Mapping Documentation (#2669) --- .../content/docs/configure/custom-mapping.md | 117 ++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 website/site/content/docs/configure/custom-mapping.md diff --git a/website/site/content/docs/configure/custom-mapping.md b/website/site/content/docs/configure/custom-mapping.md new file mode 100644 index 00000000..69289533 --- /dev/null +++ b/website/site/content/docs/configure/custom-mapping.md @@ -0,0 +1,117 @@ ++++ +title = "Custom Mappings & CJK" +insert_anchor_links = "right" +description = "Describes Custom Configuration Options in Joex and Followup for CJK and Vertical Languages" +weight = 12 +template = "docs.html" ++++ + +## Vertical Languages + +Many of the underlying tools that Docspell uses to recognize, read, and extract text from documents have mixed support for vertical languages and other specific situations, making a default implementation difficult for language specific use cases. + +As a result, Docspell has implemented custom argument mappings for individual languages so Tessearct, OCRmyPDF, or any program can process documents with specific arguments for a given language. One of the biggests use cases for these custom mappings are vertical and CJK (Chinese, Japanese, Korean) languages. + +### Custom Mappings Example (Default) + +For example, lets say you need to read a PDF in Japanese but you're unsure of what a specific kanji may be. If you insert this pdf into Docspell on Tesseract and OCRmyPDF defaults, or try to use these programs on their own, you may be greeted by encoding error outputs, resulting in something like the following: + +```bash +ス¿ンÀーùßÝ�Ï項~t®ÿÝ�Ï®þĀ +イン¿ーネッø募Ö} +``` + +Even if you don't speak Japanese, you have probably realized that this is not very helpful for you! + +To solve this problem, we need to make use of custom argument mappings. In the default docspell Joex file, there are two existing custom mappings for Japanese (`jpn`) and Vertical Japanese (`jpn_vert`). Let's take a look at the default OCRmyPDF mapping below: + +```bash + ocrmypdf = { + enabled = true + command = { + program = "ocrmypdf" + # Custom argument mappings for this program. + arg-mappings = { + "ocr_lang" = { + value = "{{lang}}" + # Custom Language Mappings Below + # Japanese Vertical Mapping + mappings = [ + { + matches = "jpn_vert" + args = [ "-l", "jpn_vert", "--pdf-renderer", "sandwich", "--tesseract-pagesegmode", "5", "--output-type", "pdf" ] + }, + # Japanese Mapping for OCR Optimization + { + matches = "jpn" + args = [ "-l", "jpn", "--output-type", "pdf" ] + }, + # Start Other Custom Language Mappings Here + # Default Mapping Below + { + matches = ".*" + args = [ "-l", "{{lang}}" ] + } + ] + } + } + +``` + +OCRmyPDF is used anytime you upload a PDF document. Here we see (2) custom mappings. The mapping for `jpn_vert` includes options such as `--tesseract-pageesgmode=5`. Page segmentation mode 5 helps with reading vertical text and sets the expected page layout. The mapping for `jpn` and `jpn_vert` both have `--output-type` set to accept PDF rather than the default PDF/A. This is to help read files that may have special encoding schemes and reduce them to PDF so that they can be read with more compatibility. + +The result winds up that our above document winds up outputting the following: + +```bash +契約概要のご説明・注意喚起情報のご説明 +``` + +And now you can easily look up these words or use 3rd party translation tools to get the meaning. + +This is only one such example of the power of custom mappings, and advanced users of Tesseract, OCRmyPDF, or other tools will enjoy customizing Docspell with the defaults best for their use case. + +### Converting Vertical Text to Horizontal + +Currently, Vertical Japanese (JpnVert) supports converting vertical text from images directly to horizontal metadata. However, if you use a PDF or other format, OCRmyPDF will read the text as newlines, so you may wind up with an output from a vertical scan that has metadata like the following: + +```bash +や +さ +し +い +``` + +Obviously we want that written out nicely `やさしい`, but the file could be much longer. There are multiple ways to accomplish this, but the easiest way on small scale is to run the extracted metadata through a script. + +Here's a simple bash script to very roughly convert vertical text to horizontal text, and adds in a new line if the line is empty to get you most of the way there. Take the text extracted from docspell, copy and paste it into something like `vertical.txt` and then run the following; + +```bash +#!/bin/bash + +while IFS= read -r line; do + if [ -z "$line" ]; then + echo + else + echo -n "$line" + fi +done < "$1" >> horizontal_output.txt +``` + +Run chmod +x `text_converter.sh` on this script to make it executable. + +Then put both files in the same directory and run `./text_converter.sh vertical.txt` and it will output `horizontal_output.txt` for you so you can work with horizontal text. + +### Converting Vertical Text to Horizontal (Using OCRmyPDF) + +If you want to try and force `ocrmypdf` to do this directly, just run (you can replace `jpn_vert` with any vertical language in theory): + +`ocrmypdf --force-ocr -l jpn_vert --sidecar horizontal_ocr_output.txt input.pdf output.converted.pdf --tesseract-pagesegmode 5 --tesseract-config cfg.file --pdf-renderer sandwich` + +With the `cfg.file` content in the directory you run `ocrmypdf` being: +``` +preserve_interword_spaces 1 +``` + +Your horizontal data will then be in `horizontal_ocr_output.txt` or whatever you named it above. + +That should help anyone where ocrmypdf skips text in the docspell defaults if they desperately need the metadata out of a vertical file. Docspell may be able to directly support this `--sidecar` output in the future with additional open source contributions. From 768c9f71a890893995ecac2e97631cdb0ee9d346 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Mon, 3 Jun 2024 06:13:14 +0000 Subject: [PATCH 133/162] Update scribe, scribe-slf4j2 to 3.14.0 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 1696146f..bc5267e3 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -42,7 +42,7 @@ object Dependencies { val PureConfigVersion = "0.17.6" val ScalaJavaTimeVersion = "2.5.0" val ScodecBitsVersion = "1.2.0" - val ScribeVersion = "3.13.5" + val ScribeVersion = "3.14.0" val Slf4jVersion = "2.0.13" val SourcecodeVersion = "0.4.2" val StanfordNlpVersion = "4.5.7" From 297977f1aaa9ac726427ceed44652661e99d0f67 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Wed, 5 Jun 2024 06:13:23 +0000 Subject: [PATCH 134/162] Update scribe, scribe-slf4j2 to 3.15.0 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index bc5267e3..f6121ff5 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -42,7 +42,7 @@ object Dependencies { val PureConfigVersion = "0.17.6" val ScalaJavaTimeVersion = "2.5.0" val ScodecBitsVersion = "1.2.0" - val ScribeVersion = "3.14.0" + val ScribeVersion = "3.15.0" val Slf4jVersion = "2.0.13" val SourcecodeVersion = "0.4.2" val StanfordNlpVersion = "4.5.7" From 1e2d46c643545156763bededaf919a709d9538f5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 5 Jun 2024 11:56:49 +0000 Subject: [PATCH 135/162] Update dependency cssnano to v7.0.2 --- website/yarn.lock | 136 ++++++++++++++++++++++++---------------------- 1 file changed, 72 insertions(+), 64 deletions(-) diff --git a/website/yarn.lock b/website/yarn.lock index 75d49894..9dccc7e0 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -221,9 +221,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001587: - version "1.0.30001612" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001612.tgz#d34248b4ec1f117b70b24ad9ee04c90e0b8a14ae" - integrity sha512-lFgnZ07UhaCcsSZgWW0K5j4e69dK1u/ltrL9lTUiFOwNHs12S3UMIEYgBV0Z6C6hRDev7iRnMzzYmKabYdXF9g== + version "1.0.30001628" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001628.tgz#90b6cd85ddc2e9f831de0225f4ca5a130c8d8222" + integrity sha512-S3BnR4Kh26TBxbi5t5kpbcUlLJb9lhtDXISDPwOfI+JoC+ik0QksvkZtUVyikw3hjnkgkMPSJ8oIM9yMm9vflA== caniuse-lite@^1.0.30001599: version "1.0.30001599" @@ -352,10 +352,10 @@ cssesc@^3.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssnano-preset-default@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-7.0.1.tgz#b05c93a29868dd7bd810fa8bbf89f482804da922" - integrity sha512-Fumyr+uZMcjYQeuHssAZxn0cKj3cdQc5GcxkBcmEzISGB+UW9CLNlU4tBOJbJGcPukFDlicG32eFbrc8K9V5pw== +cssnano-preset-default@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-7.0.2.tgz#65fab7e93d2d28b7b1fd96fbcb0be55dc50f6f87" + integrity sha512-z95kGKZx8VWHfERj7LFzuiTxylbvEp07ZEYaFu+t6bFyNOXLd/+3oPyNaY7ISwcrfHFCkt8OfRo4IZxVRJZ7dg== dependencies: browserslist "^4.23.0" css-declaration-sorter "^7.2.0" @@ -367,12 +367,12 @@ cssnano-preset-default@^7.0.1: postcss-discard-duplicates "^7.0.0" postcss-discard-empty "^7.0.0" postcss-discard-overridden "^7.0.0" - postcss-merge-longhand "^7.0.0" - postcss-merge-rules "^7.0.0" + postcss-merge-longhand "^7.0.1" + postcss-merge-rules "^7.0.1" postcss-minify-font-values "^7.0.0" postcss-minify-gradients "^7.0.0" postcss-minify-params "^7.0.0" - postcss-minify-selectors "^7.0.0" + postcss-minify-selectors "^7.0.1" postcss-normalize-charset "^7.0.0" postcss-normalize-display-values "^7.0.0" postcss-normalize-positions "^7.0.0" @@ -385,8 +385,8 @@ cssnano-preset-default@^7.0.1: postcss-ordered-values "^7.0.0" postcss-reduce-initial "^7.0.0" postcss-reduce-transforms "^7.0.0" - postcss-svgo "^7.0.0" - postcss-unique-selectors "^7.0.0" + postcss-svgo "^7.0.1" + postcss-unique-selectors "^7.0.1" cssnano-utils@^5.0.0: version "5.0.0" @@ -394,11 +394,11 @@ cssnano-utils@^5.0.0: integrity sha512-Uij0Xdxc24L6SirFr25MlwC2rCFX6scyUmuKpzI+JQ7cyqDEwD42fJ0xfB3yLfOnRDU5LKGgjQ9FA6LYh76GWQ== cssnano@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-7.0.1.tgz#a62675fc17f9a26d8560d3e61d79228b628dbb63" - integrity sha512-917Mej/4SdI7b55atsli3sU4MOJ9XDoKgnlCtQtXYj8XUFcM3riTuYHyqBBnnskawW+zWwp0KxJzpEUodlpqUg== + version "7.0.2" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-7.0.2.tgz#a36578a30aaf3d90da2a95cbebd41d9178d81bd6" + integrity sha512-LXm/Xx6TNLzfHM2lBaIQHfvtdW5QfdbyLzfJAWZrclCAb47yVa0/yJG69+amcw3Lq0YZ+kyU40rbsMPLcMt9aw== dependencies: - cssnano-preset-default "^7.0.1" + cssnano-preset-default "^7.0.2" lilconfig "^3.1.1" csso@^5.0.5: @@ -459,9 +459,9 @@ eastasianwidth@^0.2.0: integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== electron-to-chromium@^1.4.668: - version "1.4.749" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.749.tgz#9869e2e258141da26a2272b58264584c3461279d" - integrity sha512-LRMMrM9ITOvue0PoBrvNIraVmuDbJV5QC9ierz/z5VilMdPOVMjOtpICNld3PuXuTZ3CHH/UPxX9gHhAPwi+0Q== + version "1.4.790" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.790.tgz#2a3a5509593745c5d65d8acd66b308f2a25da041" + integrity sha512-eVGeQxpaBYbomDBa/Mehrs28MdvCXfJmEFzaMFsv8jH/MJDLIylJN81eTJ5kvx7B7p18OiPK0BkC06lydEy63A== emoji-regex@^8.0.0: version "8.0.0" @@ -478,7 +478,7 @@ entities@^4.2.0: resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== -escalade@^3.1.1: +escalade@^3.1.1, escalade@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== @@ -850,10 +850,10 @@ path-type@^5.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-5.0.0.tgz#14b01ed7aea7ddf9c7c3f46181d4d04f9c785bb8" integrity sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg== -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== +picocolors@^1.0.0, picocolors@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" + integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" @@ -975,23 +975,23 @@ postcss-load-config@^5.0.0: lilconfig "^3.0.0" yaml "^2.3.4" -postcss-merge-longhand@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-7.0.0.tgz#aabfae74428a5506c4d50842445845c1cc10c9c6" - integrity sha512-0X8I4/9+G03X5/5NnrfopG/YEln2XU8heDh7YqBaiq2SeaKIG3n66ShZPjIolmVuLBQ0BEm3yS8o1mlCLHdW7A== +postcss-merge-longhand@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-7.0.1.tgz#5ea565f9fd13e81c92eceea6bdbe405e22250aea" + integrity sha512-qZlD26hnqSTMxSSOMS8+QCeRWtqOdMKeQHvHcBhjL3mJxKUs47cvO1Y1x3iTdYIk3ioMcRHTiy229TT0mEMH/A== dependencies: postcss-value-parser "^4.2.0" - stylehacks "^7.0.0" + stylehacks "^7.0.1" -postcss-merge-rules@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-7.0.0.tgz#069a427807fdb1e2dcca3bf218d0a9f70103526a" - integrity sha512-Zty3VlOsD6VSjBMu6PiHCVpLegtBT/qtZRVBcSeyEZ6q1iU5qTYT0WtEoLRV+YubZZguS5/ycfP+NRiKfjv6aw== +postcss-merge-rules@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-7.0.1.tgz#7666fc259eb8af7b8bc89e02fa60c73d4e0c7c84" + integrity sha512-bb8McYQbo2etgs0uVt6AfngajACK3FHSVP3sGLhprrjbtHJWgG03JZ4KKBlJ8/5Fb8/Rr+mMKaybMYeoYrAg0A== dependencies: browserslist "^4.23.0" caniuse-api "^3.0.0" cssnano-utils "^5.0.0" - postcss-selector-parser "^6.0.16" + postcss-selector-parser "^6.1.0" postcss-minify-font-values@^7.0.0: version "7.0.0" @@ -1018,12 +1018,12 @@ postcss-minify-params@^7.0.0: cssnano-utils "^5.0.0" postcss-value-parser "^4.2.0" -postcss-minify-selectors@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-7.0.0.tgz#5dedb26806f58d683a3bb362e095ad5aa24f1bf6" - integrity sha512-f00CExZhD6lNw2vTZbcnmfxVgaVKzUw6IRsIFX3JTT8GdsoABc1WnhhGwL1i8YPJ3sSWw39fv7XPtvLb+3Uitw== +postcss-minify-selectors@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-7.0.1.tgz#83844f37130c3fb04b4c1382085be84ed56ecc1a" + integrity sha512-YfIbGtcgMFquPxV2L/ASs36ZS4DsgfcDX9tQ8cTEIvBTv+0GXFKtcvvpi9tCKto/+DWGWYKMCESFG3Pnan0Feg== dependencies: - postcss-selector-parser "^6.0.16" + postcss-selector-parser "^6.1.0" postcss-nested@^6.0.1: version "6.0.1" @@ -1132,7 +1132,7 @@ postcss-reporter@^7.0.0: picocolors "^1.0.0" thenby "^1.3.4" -postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.16: +postcss-selector-parser@^6.0.11: version "6.0.16" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz#3b88b9f5c5abd989ef4e2fc9ec8eedd34b20fb04" integrity sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw== @@ -1140,6 +1140,14 @@ postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.16: cssesc "^3.0.0" util-deprecate "^1.0.2" +postcss-selector-parser@^6.0.16, postcss-selector-parser@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz#49694cb4e7c649299fea510a29fa6577104bcf53" + integrity sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + postcss-selector-parser@^6.0.7: version "6.0.13" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" @@ -1148,20 +1156,20 @@ postcss-selector-parser@^6.0.7: cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss-svgo@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-7.0.0.tgz#2f11b45c6fa42da155fd7c16c44e69bf086c5992" - integrity sha512-Xj5DRdvA97yRy3wjbCH2NKXtDUwEnph6EHr5ZXszsBVKCNrKXYBjzAXqav7/Afz5WwJ/1peZoTguCEJIg7ytmA== +postcss-svgo@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-7.0.1.tgz#2b63571d8e9568384df334bac9917baff4d23f58" + integrity sha512-0WBUlSL4lhD9rA5k1e5D8EN5wCEyZD6HJk0jIvRxl+FDVOMlJ7DePHYWGGVc5QRqrJ3/06FTXM0bxjmJpmTPSA== dependencies: postcss-value-parser "^4.2.0" - svgo "^3.2.0" + svgo "^3.3.2" -postcss-unique-selectors@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-7.0.0.tgz#8cc2f919bce33c429cce93624f2b8f9bbd4bd882" - integrity sha512-NYFqcft7vVQMZlQPsMdMPy+qU/zDpy95Malpw4GeA9ZZjM6dVXDshXtDmLc0m4WCD6XeZCJqjTfPT1USsdt+rA== +postcss-unique-selectors@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-7.0.1.tgz#3e4e7c408ca5cd57e834d197e9c96111fc163237" + integrity sha512-MH7QE/eKUftTB5ta40xcHLl7hkZjgDFydpfTK+QWXeHxghVt3VoPqYL5/G+zYZPPIs+8GuqFXSTgxBSoB1RZtQ== dependencies: - postcss-selector-parser "^6.0.16" + postcss-selector-parser "^6.1.0" postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: version "4.2.0" @@ -1312,13 +1320,13 @@ strip-ansi@^7.0.1: dependencies: ansi-regex "^6.0.1" -stylehacks@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-7.0.0.tgz#68e8ee54724671c0c698be82e1299c6548c31921" - integrity sha512-47Nw4pQ6QJb4CA6dzF2m9810sjQik4dfk4UwAm5wlwhrW3syzZKF8AR4/cfO3Cr6lsFgAoznQq0Wg57qhjTA2A== +stylehacks@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-7.0.1.tgz#0e071acfbfdbc5ff422c27f1894a60a8bfe58885" + integrity sha512-PnrT4HzajnxbjfChpeBKLSpSykilnGBlD+pIffCoT5KbLur9fcL8uKRQJJap85byR2wCYZl/4Otk5eq76qeZxQ== dependencies: browserslist "^4.23.0" - postcss-selector-parser "^6.0.16" + postcss-selector-parser "^6.1.0" sucrase@^3.32.0: version "3.35.0" @@ -1338,10 +1346,10 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -svgo@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-3.2.0.tgz#7a5dff2938d8c6096e00295c2390e8e652fa805d" - integrity sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ== +svgo@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-3.3.2.tgz#ad58002652dffbb5986fc9716afe52d869ecbda8" + integrity sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw== dependencies: "@trysound/sax" "0.2.0" commander "^7.2.0" @@ -1421,12 +1429,12 @@ universalify@^2.0.0: integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== update-browserslist-db@^1.0.13: - version "1.0.13" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" - integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== + version "1.0.16" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz#f6d489ed90fb2f07d67784eb3f53d7891f736356" + integrity sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ== dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" + escalade "^3.1.2" + picocolors "^1.0.1" util-deprecate@^1.0.2: version "1.0.2" From 62f26bbf595343a159563fb682161c0ec1b0ab37 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 5 Jun 2024 19:05:02 +0000 Subject: [PATCH 136/162] Update dependency tailwindcss to v3.4.4 --- modules/webapp/package-lock.json | 7 +- website/yarn.lock | 110 ++++++++++++++----------------- 2 files changed, 55 insertions(+), 62 deletions(-) diff --git a/modules/webapp/package-lock.json b/modules/webapp/package-lock.json index fc242e9f..10b66bf8 100644 --- a/modules/webapp/package-lock.json +++ b/modules/webapp/package-lock.json @@ -1121,9 +1121,10 @@ } }, "node_modules/tailwindcss": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.3.tgz", - "integrity": "sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==", + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.4.tgz", + "integrity": "sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==", + "license": "MIT", "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", diff --git a/website/yarn.lock b/website/yarn.lock index 9dccc7e0..176e7340 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -188,12 +188,12 @@ brace-expansion@^2.0.1: dependencies: balanced-match "^1.0.0" -braces@^3.0.2, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== +braces@^3.0.3, braces@~3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== dependencies: - fill-range "^7.0.1" + fill-range "^7.1.1" browserslist@^4.0.0, browserslist@^4.23.0: version "4.23.0" @@ -501,10 +501,10 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== dependencies: to-regex-range "^5.0.1" @@ -570,15 +570,15 @@ glob-parent@^6.0.2: is-glob "^4.0.3" glob@^10.3.10: - version "10.3.10" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" - integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== + version "10.4.1" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.1.tgz#0cfb01ab6a6b438177bfe6a58e2576f6efe909c2" + integrity sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw== dependencies: foreground-child "^3.1.0" - jackspeak "^2.3.5" - minimatch "^9.0.1" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - path-scurry "^1.10.1" + jackspeak "^3.1.2" + minimatch "^9.0.4" + minipass "^7.1.2" + path-scurry "^1.11.1" glob@^8.0.3: version "8.1.0" @@ -674,19 +674,19 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== -jackspeak@^2.3.5: - version "2.3.6" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" - integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== +jackspeak@^3.1.2: + version "3.4.0" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.0.tgz#a75763ff36ad778ede6a156d8ee8b124de445b4a" + integrity sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw== dependencies: "@isaacs/cliui" "^8.0.2" optionalDependencies: "@pkgjs/parseargs" "^0.11.0" jiti@^1.21.0: - version "1.21.0" - resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d" - integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== + version "1.21.3" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.3.tgz#b2adb07489d7629b344d59082bbedb8c21c5f755" + integrity sha512-uy2bNX5zQ+tESe+TiC7ilGRz8AtRGmnJH55NC5S0nSUjvvvM2hJHmefHErugGXN4pNv4Qx7vLsnNw9qJ9mtIsw== jsonfile@^6.0.1: version "6.1.0" @@ -722,10 +722,10 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== -"lru-cache@^9.1.1 || ^10.0.0": - version "10.2.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.0.tgz#0bd445ca57363465900f4d1f9bd8db343a4d95c3" - integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q== +lru-cache@^10.2.0: + version "10.2.2" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.2.tgz#48206bc114c1252940c41b25b41af5b545aca878" + integrity sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ== mdn-data@2.0.28: version "2.0.28" @@ -743,11 +743,11 @@ merge2@^1.3.0: integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== micromatch@^4.0.4, micromatch@^4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + version "4.0.7" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.7.tgz#33e8190d9fe474a9895525f5618eee136d46c2e5" + integrity sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q== dependencies: - braces "^3.0.2" + braces "^3.0.3" picomatch "^2.3.1" mini-svg-data-uri@^1.2.3: @@ -762,17 +762,17 @@ minimatch@^5.0.1: dependencies: brace-expansion "^2.0.1" -minimatch@^9.0.1: - version "9.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== +minimatch@^9.0.4: + version "9.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.4.tgz#8e49c731d1749cbec05050ee5145147b32496a51" + integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== dependencies: brace-expansion "^2.0.1" -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0": - version "7.0.4" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" - integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" + integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== mz@^2.7.0: version "2.7.0" @@ -837,12 +837,12 @@ path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-scurry@^1.10.1: - version "1.10.1" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" - integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== +path-scurry@^1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== dependencies: - lru-cache "^9.1.1 || ^10.0.0" + lru-cache "^10.2.0" minipass "^5.0.0 || ^6.0.2 || ^7.0.0" path-type@^5.0.0: @@ -1132,15 +1132,7 @@ postcss-reporter@^7.0.0: picocolors "^1.0.0" thenby "^1.3.4" -postcss-selector-parser@^6.0.11: - version "6.0.16" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz#3b88b9f5c5abd989ef4e2fc9ec8eedd34b20fb04" - integrity sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss-selector-parser@^6.0.16, postcss-selector-parser@^6.1.0: +postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.16, postcss-selector-parser@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz#49694cb4e7c649299fea510a29fa6577104bcf53" integrity sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ== @@ -1360,9 +1352,9 @@ svgo@^3.3.2: picocolors "^1.0.0" tailwindcss@^3.0: - version "3.4.3" - resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.3.tgz#be48f5283df77dfced705451319a5dffb8621519" - integrity sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A== + version "3.4.4" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.4.tgz#351d932273e6abfa75ce7d226b5bf3a6cb257c05" + integrity sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A== dependencies: "@alloc/quick-lru" "^5.2.0" arg "^5.0.2" @@ -1486,9 +1478,9 @@ y18n@^5.0.5: integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== yaml@^2.3.4: - version "2.4.1" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.1.tgz#2e57e0b5e995292c25c75d2658f0664765210eed" - integrity sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg== + version "2.4.3" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.3.tgz#0777516b8c7880bcaa0f426a5410e8d6b0be1f3d" + integrity sha512-sntgmxj8o7DE7g/Qi60cqpLBA3HG3STcDA0kO+WfB05jEKhZMbY7umNm2rBpQvsmZ16/lPXCJGW2672dgOUkrg== yargs-parser@^21.1.1: version "21.1.1" From 86bbc8298d8df1922a82fe7558a980650232dee5 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Sat, 8 Jun 2024 06:11:39 +0000 Subject: [PATCH 137/162] Update scala-java-time to 2.6.0 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index f6121ff5..c1d78644 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -40,7 +40,7 @@ object Dependencies { val PoiVersion = "4.1.2" val PostgresVersion = "42.7.3" val PureConfigVersion = "0.17.6" - val ScalaJavaTimeVersion = "2.5.0" + val ScalaJavaTimeVersion = "2.6.0" val ScodecBitsVersion = "1.2.0" val ScribeVersion = "3.15.0" val Slf4jVersion = "2.0.13" From cd42f33a6dd4da6664b34ed397baa27e5649f390 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Sun, 9 Jun 2024 06:12:12 +0000 Subject: [PATCH 138/162] Update imageio-jpeg, imageio-tiff to 3.11.0 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index c1d78644..a0623edf 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -50,7 +50,7 @@ object Dependencies { val YamuscaVersion = "0.10.0" val SwaggerUIVersion = "5.17.14" val TestContainerVersion = "0.41.3" - val TwelveMonkeysVersion = "3.10.1" + val TwelveMonkeysVersion = "3.11.0" val JQueryVersion = "3.5.1" val scribe = Seq( From 021c98c523384b791ea9f4ed9b7783fd21362e0b Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Mon, 10 Jun 2024 06:13:06 +0000 Subject: [PATCH 139/162] Update pureconfig, pureconfig-ip4s to 0.17.7 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index a0623edf..d8007d82 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -39,7 +39,7 @@ object Dependencies { val PdfjsViewerVersion = "2.12.313" val PoiVersion = "4.1.2" val PostgresVersion = "42.7.3" - val PureConfigVersion = "0.17.6" + val PureConfigVersion = "0.17.7" val ScalaJavaTimeVersion = "2.6.0" val ScodecBitsVersion = "1.2.0" val ScribeVersion = "3.15.0" From 94026346c4df0d68aeb7d54421c6cc4478b0fbc2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 12 Jun 2024 19:18:53 +0000 Subject: [PATCH 140/162] Update actions/checkout action to v4.1.7 --- .github/workflows/ci-docs.yml | 2 +- .github/workflows/ci.yml | 2 +- .github/workflows/docker-image.yml | 2 +- .github/workflows/release-nightly.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/website.yml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci-docs.yml b/.github/workflows/ci-docs.yml index 4d34e864..ac80e94e 100644 --- a/.github/workflows/ci-docs.yml +++ b/.github/workflows/ci-docs.yml @@ -8,7 +8,7 @@ jobs: check-website: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4.1.6 + - uses: actions/checkout@v4.1.7 with: fetch-depth: 0 - uses: cachix/install-nix-action@v27 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 60218298..28d3d6ae 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,7 +9,7 @@ jobs: strategy: fail-fast: false steps: - - uses: actions/checkout@v4.1.6 + - uses: actions/checkout@v4.1.7 with: fetch-depth: 100 - name: Fetch tags diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 0cd698fd..3f998d10 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -6,7 +6,7 @@ jobs: docker-images: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4.1.6 + - uses: actions/checkout@v4.1.7 with: fetch-depth: 0 - name: Set current version diff --git a/.github/workflows/release-nightly.yml b/.github/workflows/release-nightly.yml index c4880f83..e955927b 100644 --- a/.github/workflows/release-nightly.yml +++ b/.github/workflows/release-nightly.yml @@ -9,7 +9,7 @@ jobs: strategy: fail-fast: true steps: - - uses: actions/checkout@v4.1.6 + - uses: actions/checkout@v4.1.7 with: fetch-depth: 0 - uses: cachix/install-nix-action@v27 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7ac092d7..244b917d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -9,7 +9,7 @@ jobs: strategy: fail-fast: true steps: - - uses: actions/checkout@v4.1.6 + - uses: actions/checkout@v4.1.7 with: fetch-depth: 0 - uses: cachix/install-nix-action@v27 diff --git a/.github/workflows/website.yml b/.github/workflows/website.yml index f94f3e6a..85762855 100644 --- a/.github/workflows/website.yml +++ b/.github/workflows/website.yml @@ -7,7 +7,7 @@ jobs: publish-website: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4.1.6 + - uses: actions/checkout@v4.1.7 with: fetch-depth: 0 - uses: cachix/install-nix-action@v27 From bfe7ada178be58cdb1dba2a8ae1849159d4e0509 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Fri, 14 Jun 2024 06:13:14 +0000 Subject: [PATCH 141/162] Update testcontainers-scala-mariadb, ... to 0.41.4 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index d8007d82..e58cec5a 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -49,7 +49,7 @@ object Dependencies { val TikaVersion = "2.9.2" val YamuscaVersion = "0.10.0" val SwaggerUIVersion = "5.17.14" - val TestContainerVersion = "0.41.3" + val TestContainerVersion = "0.41.4" val TwelveMonkeysVersion = "3.11.0" val JQueryVersion = "3.5.1" From 11c5a3c6125e4cd2a80f2674c17e1d3584a4e4f9 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Sat, 15 Jun 2024 06:12:19 +0000 Subject: [PATCH 142/162] Update scalafmt-core to 3.8.2 --- .scalafmt.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.scalafmt.conf b/.scalafmt.conf index 34c79196..151f8450 100644 --- a/.scalafmt.conf +++ b/.scalafmt.conf @@ -1,4 +1,4 @@ -version = "3.8.1" +version = "3.8.2" preset = default align.preset = some From 1c566cd5182d41f4cc06040fc347ddb4be617779 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Sat, 15 Jun 2024 06:12:35 +0000 Subject: [PATCH 143/162] Reformat with scalafmt 3.8.2 Executed command: scalafmt --non-interactive --- build.sbt | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index 497402b9..04556cb7 100644 --- a/build.sbt +++ b/build.sbt @@ -17,9 +17,12 @@ val sharedSettings = Seq( organization := "com.github.eikek", scalaVersion := "2.13.14", organizationName := "Eike K. & Contributors", - licenses += ("AGPL-3.0-or-later", url( - "https://spdx.org/licenses/AGPL-3.0-or-later.html" - )), + licenses += ( + "AGPL-3.0-or-later", + url( + "https://spdx.org/licenses/AGPL-3.0-or-later.html" + ) + ), startYear := Some(2020), headerLicenseStyle := HeaderLicenseStyle.SpdxSyntax, headerSources / excludeFilter := HiddenFileFilter || "*.java" || "StringUtil.scala", From 5fab35ba0d3bf665a8ed5958d1b41f5caac37556 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Sat, 15 Jun 2024 06:12:35 +0000 Subject: [PATCH 144/162] Add 'Reformat with scalafmt 3.8.2' to .git-blame-ignore-revs --- .git-blame-ignore-revs | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .git-blame-ignore-revs diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs new file mode 100644 index 00000000..e16d5382 --- /dev/null +++ b/.git-blame-ignore-revs @@ -0,0 +1,2 @@ +# Scala Steward: Reformat with scalafmt 3.8.2 +1c566cd5182d41f4cc06040fc347ddb4be617779 From 80788708a42e1e5c8e4d16f3b0e71fba64d5b714 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 19 Jun 2024 10:46:51 +0000 Subject: [PATCH 145/162] Update dependency cssnano to v7.0.3 --- website/yarn.lock | 184 +++++++++++++++++++++++++--------------------- 1 file changed, 101 insertions(+), 83 deletions(-) diff --git a/website/yarn.lock b/website/yarn.lock index 176e7340..4d98940c 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -195,7 +195,17 @@ braces@^3.0.3, braces@~3.0.2: dependencies: fill-range "^7.1.1" -browserslist@^4.0.0, browserslist@^4.23.0: +browserslist@^4.0.0, browserslist@^4.23.1: + version "4.23.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.1.tgz#ce4af0534b3d37db5c1a4ca98b9080f985041e96" + integrity sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw== + dependencies: + caniuse-lite "^1.0.30001629" + electron-to-chromium "^1.4.796" + node-releases "^2.0.14" + update-browserslist-db "^1.0.16" + +browserslist@^4.23.0: version "4.23.0" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab" integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== @@ -220,10 +230,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001587: - version "1.0.30001628" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001628.tgz#90b6cd85ddc2e9f831de0225f4ca5a130c8d8222" - integrity sha512-S3BnR4Kh26TBxbi5t5kpbcUlLJb9lhtDXISDPwOfI+JoC+ik0QksvkZtUVyikw3hjnkgkMPSJ8oIM9yMm9vflA== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001587, caniuse-lite@^1.0.30001629: + version "1.0.30001636" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001636.tgz#b15f52d2bdb95fad32c2f53c0b68032b85188a78" + integrity sha512-bMg2vmr8XBsbL6Lr0UHXy/21m84FTxDLWn2FSqMd5PrlbMxwJlQnC2YWYxVgp66PZE+BBNF2jYQUBKCo1FDeZg== caniuse-lite@^1.0.30001599: version "1.0.30001599" @@ -352,38 +362,38 @@ cssesc@^3.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssnano-preset-default@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-7.0.2.tgz#65fab7e93d2d28b7b1fd96fbcb0be55dc50f6f87" - integrity sha512-z95kGKZx8VWHfERj7LFzuiTxylbvEp07ZEYaFu+t6bFyNOXLd/+3oPyNaY7ISwcrfHFCkt8OfRo4IZxVRJZ7dg== +cssnano-preset-default@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-7.0.3.tgz#dd554e4d5bef3da50e40d725c7ba0b49053a993c" + integrity sha512-dQ3Ba1p/oewICp/szF1XjFFgql8OlOBrI2YNBUUwhHQnJNoMOcQTa+Bi7jSJN8r/eM1egW0Ud1se/S7qlduWKA== dependencies: - browserslist "^4.23.0" + browserslist "^4.23.1" css-declaration-sorter "^7.2.0" cssnano-utils "^5.0.0" postcss-calc "^10.0.0" - postcss-colormin "^7.0.0" - postcss-convert-values "^7.0.0" - postcss-discard-comments "^7.0.0" + postcss-colormin "^7.0.1" + postcss-convert-values "^7.0.1" + postcss-discard-comments "^7.0.1" postcss-discard-duplicates "^7.0.0" postcss-discard-empty "^7.0.0" postcss-discard-overridden "^7.0.0" - postcss-merge-longhand "^7.0.1" - postcss-merge-rules "^7.0.1" + postcss-merge-longhand "^7.0.2" + postcss-merge-rules "^7.0.2" postcss-minify-font-values "^7.0.0" postcss-minify-gradients "^7.0.0" - postcss-minify-params "^7.0.0" - postcss-minify-selectors "^7.0.1" + postcss-minify-params "^7.0.1" + postcss-minify-selectors "^7.0.2" postcss-normalize-charset "^7.0.0" postcss-normalize-display-values "^7.0.0" postcss-normalize-positions "^7.0.0" postcss-normalize-repeat-style "^7.0.0" postcss-normalize-string "^7.0.0" postcss-normalize-timing-functions "^7.0.0" - postcss-normalize-unicode "^7.0.0" + postcss-normalize-unicode "^7.0.1" postcss-normalize-url "^7.0.0" postcss-normalize-whitespace "^7.0.0" - postcss-ordered-values "^7.0.0" - postcss-reduce-initial "^7.0.0" + postcss-ordered-values "^7.0.1" + postcss-reduce-initial "^7.0.1" postcss-reduce-transforms "^7.0.0" postcss-svgo "^7.0.1" postcss-unique-selectors "^7.0.1" @@ -394,12 +404,12 @@ cssnano-utils@^5.0.0: integrity sha512-Uij0Xdxc24L6SirFr25MlwC2rCFX6scyUmuKpzI+JQ7cyqDEwD42fJ0xfB3yLfOnRDU5LKGgjQ9FA6LYh76GWQ== cssnano@^7.0.0: - version "7.0.2" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-7.0.2.tgz#a36578a30aaf3d90da2a95cbebd41d9178d81bd6" - integrity sha512-LXm/Xx6TNLzfHM2lBaIQHfvtdW5QfdbyLzfJAWZrclCAb47yVa0/yJG69+amcw3Lq0YZ+kyU40rbsMPLcMt9aw== + version "7.0.3" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-7.0.3.tgz#f7ea770931c84ffd4e7c07fbd1993cee602e4dd1" + integrity sha512-lsekJctOTqdCn4cNrtrSwsuMR/fHC+oiVMHkp/OugBWtwjH8XJag1/OtGaYJGtz0un1fQcRy4ryfYTQsfh+KSQ== dependencies: - cssnano-preset-default "^7.0.2" - lilconfig "^3.1.1" + cssnano-preset-default "^7.0.3" + lilconfig "^3.1.2" csso@^5.0.5: version "5.0.5" @@ -458,10 +468,10 @@ eastasianwidth@^0.2.0: resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== -electron-to-chromium@^1.4.668: - version "1.4.790" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.790.tgz#2a3a5509593745c5d65d8acd66b308f2a25da041" - integrity sha512-eVGeQxpaBYbomDBa/Mehrs28MdvCXfJmEFzaMFsv8jH/MJDLIylJN81eTJ5kvx7B7p18OiPK0BkC06lydEy63A== +electron-to-chromium@^1.4.668, electron-to-chromium@^1.4.796: + version "1.4.806" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.806.tgz#2cb046631cbabceb26fc72be68d273fa183e36bc" + integrity sha512-nkoEX2QIB8kwCOtvtgwhXWy2IHVcOLQZu9Qo36uaGB835mdX/h8uLRlosL6QIhLVUnAiicXRW00PwaPZC74Nrg== emoji-regex@^8.0.0: version "8.0.0" @@ -702,11 +712,16 @@ lilconfig@^2.1.0: resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== -lilconfig@^3.0.0, lilconfig@^3.1.1: +lilconfig@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.1.tgz#9d8a246fa753106cfc205fd2d77042faca56e5e3" integrity sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ== +lilconfig@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.2.tgz#e4a7c3cb549e3a606c8dcc32e5ae1005e62c05cb" + integrity sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow== + lines-and-columns@^1.1.6: version "1.2.4" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" @@ -896,28 +911,30 @@ postcss-cli@^11.0.0: slash "^5.0.0" yargs "^17.0.0" -postcss-colormin@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-7.0.0.tgz#76b9e40eff69a363c1fc5ce2f0ece1d4a01d1de8" - integrity sha512-5CN6fqtsEtEtwf3mFV3B4UaZnlYljPpzmGeDB4yCK067PnAtfLe9uX2aFZaEwxHE7HopG5rUkW8gyHrNAesHEg== +postcss-colormin@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-7.0.1.tgz#6534c7d1175e30f788d4ced891436ad2fa3bd173" + integrity sha512-uszdT0dULt3FQs47G5UHCduYK+FnkLYlpu1HpWu061eGsKZ7setoG7kA+WC9NQLsOJf69D5TxGHgnAdRgylnFQ== dependencies: - browserslist "^4.23.0" + browserslist "^4.23.1" caniuse-api "^3.0.0" colord "^2.9.3" postcss-value-parser "^4.2.0" -postcss-convert-values@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-7.0.0.tgz#4a53e79c4bd81cfed8a7ed3fffb7b255a2f5f300" - integrity sha512-bMuzDgXBbFbByPgj+/r6va8zNuIDUaIIbvAFgdO1t3zdgJZ77BZvu6dfWyd6gHEJnYzmeVr9ayUsAQL3/qLJ0w== +postcss-convert-values@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-7.0.1.tgz#df84dab80a03b30a4b4dba68b348fb07e649a3c3" + integrity sha512-9x2ofb+hYPwHWMlWAzyWys2yMDZYGfkX9LodbaVTmLdlupmtH2AGvj8Up95wzzNPRDEzPIxQIkUaPJew3bT6xA== dependencies: - browserslist "^4.23.0" + browserslist "^4.23.1" postcss-value-parser "^4.2.0" -postcss-discard-comments@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-7.0.0.tgz#3919e4237630f74927f3976ac5789cfc26731494" - integrity sha512-xpSdzRqYmy4YIVmjfGyYXKaI1SRnK6CTr+4Zmvyof8ANwvgfZgGdVtmgAvzh59gJm808mJCWQC9tFN0KF5dEXA== +postcss-discard-comments@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-7.0.1.tgz#00b01c5a99e95f97927b0ba12a1c422ab90bf55f" + integrity sha512-GVrQxUOhmle1W6jX2SvNLt4kmN+JYhV7mzI6BMnkAWR9DtVvg8e67rrV0NfdWhn7x1zxvzdWkMBPdBDCls+uwQ== + dependencies: + postcss-selector-parser "^6.1.0" postcss-discard-duplicates@^7.0.0: version "7.0.0" @@ -975,20 +992,20 @@ postcss-load-config@^5.0.0: lilconfig "^3.0.0" yaml "^2.3.4" -postcss-merge-longhand@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-7.0.1.tgz#5ea565f9fd13e81c92eceea6bdbe405e22250aea" - integrity sha512-qZlD26hnqSTMxSSOMS8+QCeRWtqOdMKeQHvHcBhjL3mJxKUs47cvO1Y1x3iTdYIk3ioMcRHTiy229TT0mEMH/A== +postcss-merge-longhand@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-7.0.2.tgz#b9fddce88498ca7e45ff130163b69864b25c05dc" + integrity sha512-06vrW6ZWi9qeP7KMS9fsa9QW56+tIMW55KYqF7X3Ccn+NI2pIgPV6gFfvXTMQ05H90Y5DvnCDPZ2IuHa30PMUg== dependencies: postcss-value-parser "^4.2.0" - stylehacks "^7.0.1" + stylehacks "^7.0.2" -postcss-merge-rules@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-7.0.1.tgz#7666fc259eb8af7b8bc89e02fa60c73d4e0c7c84" - integrity sha512-bb8McYQbo2etgs0uVt6AfngajACK3FHSVP3sGLhprrjbtHJWgG03JZ4KKBlJ8/5Fb8/Rr+mMKaybMYeoYrAg0A== +postcss-merge-rules@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-7.0.2.tgz#f7c991576cff4c7d0a8f16101c20bbfa9426695c" + integrity sha512-VAR47UNvRsdrTHLe7TV1CeEtF9SJYR5ukIB9U4GZyZOptgtsS20xSxy+k5wMrI3udST6O1XuIn7cjQkg7sDAAw== dependencies: - browserslist "^4.23.0" + browserslist "^4.23.1" caniuse-api "^3.0.0" cssnano-utils "^5.0.0" postcss-selector-parser "^6.1.0" @@ -1009,20 +1026,21 @@ postcss-minify-gradients@^7.0.0: cssnano-utils "^5.0.0" postcss-value-parser "^4.2.0" -postcss-minify-params@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-7.0.0.tgz#dfa8263d38570b1116da2c72f69190ea665b17aa" - integrity sha512-XOJAuX8Q/9GT1sGxlUvaFEe2H9n50bniLZblXXsAT/BwSfFYvzSZeFG7uupwc0KbKpTnflnQ7aMwGzX6JUWliQ== +postcss-minify-params@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-7.0.1.tgz#08d753bb09d3ebf1a6d6fb0968d60bb3b981e513" + integrity sha512-e+Xt8xErSRPgSRFxHeBCSxMiO8B8xng7lh8E0A5ep1VfwYhY8FXhu4Q3APMjgx9YDDbSp53IBGENrzygbUvgUQ== dependencies: - browserslist "^4.23.0" + browserslist "^4.23.1" cssnano-utils "^5.0.0" postcss-value-parser "^4.2.0" -postcss-minify-selectors@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-7.0.1.tgz#83844f37130c3fb04b4c1382085be84ed56ecc1a" - integrity sha512-YfIbGtcgMFquPxV2L/ASs36ZS4DsgfcDX9tQ8cTEIvBTv+0GXFKtcvvpi9tCKto/+DWGWYKMCESFG3Pnan0Feg== +postcss-minify-selectors@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-7.0.2.tgz#869c8ef885a4f9c2550d0d5ec1a2876027d3965c" + integrity sha512-dCzm04wqW1uqLmDZ41XYNBJfjgps3ZugDpogAmJXoCb5oCiTzIX4oPXXKxDpTvWOnKxQKR4EbV4ZawJBLcdXXA== dependencies: + cssesc "^3.0.0" postcss-selector-parser "^6.1.0" postcss-nested@^6.0.1: @@ -1072,12 +1090,12 @@ postcss-normalize-timing-functions@^7.0.0: dependencies: postcss-value-parser "^4.2.0" -postcss-normalize-unicode@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-7.0.0.tgz#bd66bfc238bf4d1eaea356639260c04fce408476" - integrity sha512-OnKV52/VFFDAim4n0pdI+JAhsolLBdnCKxE6VV5lW5Q/JeVGFN8UM8ur6/A3EAMLsT1ZRm3fDHh/rBoBQpqi2w== +postcss-normalize-unicode@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-7.0.1.tgz#6545debfff2b4b154583cb24bb388b9681ffa119" + integrity sha512-PTPGdY9xAkTw+8ZZ71DUePb7M/Vtgkbbq+EoI33EuyQEzbKemEQMhe5QSr0VP5UfZlreANDPxSfcdSprENcbsg== dependencies: - browserslist "^4.23.0" + browserslist "^4.23.1" postcss-value-parser "^4.2.0" postcss-normalize-url@^7.0.0: @@ -1094,10 +1112,10 @@ postcss-normalize-whitespace@^7.0.0: dependencies: postcss-value-parser "^4.2.0" -postcss-ordered-values@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-7.0.0.tgz#cea4e2a140ed1c7b055e0ab967b82a36b584debf" - integrity sha512-KROvC63A8UQW1eYDljQe1dtwc1E/M+mMwDT6z7khV/weHYLWTghaLRLunU7x1xw85lWFwVZOAGakxekYvKV+0w== +postcss-ordered-values@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-7.0.1.tgz#8b4b5b8070ca7756bd49f07d5edf274b8f6782e0" + integrity sha512-irWScWRL6nRzYmBOXReIKch75RRhNS86UPUAxXdmW/l0FcAsg0lvAXQCby/1lymxn/o0gVa6Rv/0f03eJOwHxw== dependencies: cssnano-utils "^5.0.0" postcss-value-parser "^4.2.0" @@ -1109,12 +1127,12 @@ postcss-purgecss@^5.0.0: dependencies: purgecss "^5.0.0" -postcss-reduce-initial@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-7.0.0.tgz#a9e64778dd44604c2bda109e2fd14b99ab0d1416" - integrity sha512-iqGgmBxY9LrblZ0BKLjmrA1mC/cf9A/wYCCqSmD6tMi+xAyVl0+DfixZIHSVDMbCPRPjNmVF0DFGth/IDGelFQ== +postcss-reduce-initial@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-7.0.1.tgz#d5308153f757ff9dd5b041cd4954a7592ef0d43b" + integrity sha512-0JDUSV4bGB5FGM5g8MkS+rvqKukJZ7OTHw/lcKn7xPNqeaqJyQbUO8/dJpvyTpaVwPsd3Uc33+CfNzdVowp2WA== dependencies: - browserslist "^4.23.0" + browserslist "^4.23.1" caniuse-api "^3.0.0" postcss-reduce-transforms@^7.0.0: @@ -1312,12 +1330,12 @@ strip-ansi@^7.0.1: dependencies: ansi-regex "^6.0.1" -stylehacks@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-7.0.1.tgz#0e071acfbfdbc5ff422c27f1894a60a8bfe58885" - integrity sha512-PnrT4HzajnxbjfChpeBKLSpSykilnGBlD+pIffCoT5KbLur9fcL8uKRQJJap85byR2wCYZl/4Otk5eq76qeZxQ== +stylehacks@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-7.0.2.tgz#cc0ec317e9d5b30fdbdfe7ed6b8d3b1a8c57fa06" + integrity sha512-HdkWZS9b4gbgYTdMg4gJLmm7biAUug1qTqXjS+u8X+/pUd+9Px1E+520GnOW3rST9MNsVOVpsJG+mPHNosxjOQ== dependencies: - browserslist "^4.23.0" + browserslist "^4.23.1" postcss-selector-parser "^6.1.0" sucrase@^3.32.0: @@ -1420,7 +1438,7 @@ universalify@^2.0.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== -update-browserslist-db@^1.0.13: +update-browserslist-db@^1.0.13, update-browserslist-db@^1.0.16: version "1.0.16" resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz#f6d489ed90fb2f07d67784eb3f53d7891f736356" integrity sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ== From 9a9aaa5d8e79469e3e60d0d85e3e5aa64a9490e7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 20 Jun 2024 22:42:29 +0000 Subject: [PATCH 146/162] Update alpine Docker tag to v3.20.1 --- docker/dockerfiles/joex.dockerfile | 2 +- docker/dockerfiles/restserver.dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/dockerfiles/joex.dockerfile b/docker/dockerfiles/joex.dockerfile index 4c13e49f..733387ed 100644 --- a/docker/dockerfiles/joex.dockerfile +++ b/docker/dockerfiles/joex.dockerfile @@ -1,4 +1,4 @@ -FROM alpine:3.20.0 +FROM alpine:3.20.1 ARG version= ARG joex_url= diff --git a/docker/dockerfiles/restserver.dockerfile b/docker/dockerfiles/restserver.dockerfile index 4cf4b716..6abc322b 100644 --- a/docker/dockerfiles/restserver.dockerfile +++ b/docker/dockerfiles/restserver.dockerfile @@ -1,4 +1,4 @@ -FROM alpine:3.20.0 +FROM alpine:3.20.1 ARG version= ARG restserver_url= From 0228932379101a067605feb87eb824d7e191f0dd Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Tue, 25 Jun 2024 06:11:52 +0000 Subject: [PATCH 147/162] Update circe-yaml to 0.15.2 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index e58cec5a..22d09172 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -14,7 +14,7 @@ object Dependencies { val CatsParseVersion = "1.0.0" val CirceVersion = "0.15.0-M1" val CirceGenericExtrasVersion = "0.14.3" - val CirceYamlVersion = "0.15.1" + val CirceYamlVersion = "0.15.2" val ClipboardJsVersion = "2.0.11" val DoobieVersion = "1.0.0-RC5" val EmilVersion = "0.17.0" From f4381e89725bc09f2c05dabb2dd79a4ac268f35b Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Thu, 27 Jun 2024 06:12:28 +0000 Subject: [PATCH 148/162] Update sbt-sonatype to 3.11.0 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index 6a85f860..24b11948 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -11,4 +11,4 @@ addSbtPlugin("io.spray" % "sbt-revolver" % "0.10.0") addSbtPlugin("org.portable-scala" % "sbt-scalajs-crossproject" % "1.3.2") addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.16.0") addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.2") -addSbtPlugin("org.xerial.sbt" % "sbt-sonatype" % "3.10.0") +addSbtPlugin("org.xerial.sbt" % "sbt-sonatype" % "3.11.0") From ba06e851bddb1e6a5848e074c99f583d80651c60 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 29 Jun 2024 19:42:34 +0000 Subject: [PATCH 149/162] Update dependency postcss to v8.4.39 --- website/yarn.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/website/yarn.lock b/website/yarn.lock index 4d98940c..658ec9e7 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -1187,12 +1187,12 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== postcss@^8.4.23, postcss@^8.4.4, postcss@^8.4.5: - version "8.4.38" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.38.tgz#b387d533baf2054288e337066d81c6bee9db9e0e" - integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A== + version "8.4.39" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.39.tgz#aa3c94998b61d3a9c259efa51db4b392e1bde0e3" + integrity sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw== dependencies: nanoid "^3.3.7" - picocolors "^1.0.0" + picocolors "^1.0.1" source-map-js "^1.2.0" pretty-hrtime@^1.0.3: From f626ee82e606874b069033f8665311400e91c9f1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 5 Jul 2024 11:32:26 +0000 Subject: [PATCH 150/162] Update dependency cssnano to v7.0.4 --- website/yarn.lock | 50 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 34 insertions(+), 16 deletions(-) diff --git a/website/yarn.lock b/website/yarn.lock index 658ec9e7..dd4987fb 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -230,7 +230,12 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001587, caniuse-lite@^1.0.30001629: +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001629: + version "1.0.30001640" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001640.tgz#32c467d4bf1f1a0faa63fc793c2ba81169e7652f" + integrity sha512-lA4VMpW0PSUrFnkmVuEKBUovSWKhj7puyCg8StBChgu298N1AtuF1sKWEvfDuimSEDbhlb/KqPKC3fs1HbuQUA== + +caniuse-lite@^1.0.30001587: version "1.0.30001636" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001636.tgz#b15f52d2bdb95fad32c2f53c0b68032b85188a78" integrity sha512-bMg2vmr8XBsbL6Lr0UHXy/21m84FTxDLWn2FSqMd5PrlbMxwJlQnC2YWYxVgp66PZE+BBNF2jYQUBKCo1FDeZg== @@ -362,17 +367,17 @@ cssesc@^3.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssnano-preset-default@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-7.0.3.tgz#dd554e4d5bef3da50e40d725c7ba0b49053a993c" - integrity sha512-dQ3Ba1p/oewICp/szF1XjFFgql8OlOBrI2YNBUUwhHQnJNoMOcQTa+Bi7jSJN8r/eM1egW0Ud1se/S7qlduWKA== +cssnano-preset-default@^7.0.4: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-7.0.4.tgz#9cfcd25f85bfedc84367b881dad56b75a0f976b5" + integrity sha512-jQ6zY9GAomQX7/YNLibMEsRZguqMUGuupXcEk2zZ+p3GUxwCAsobqPYE62VrJ9qZ0l9ltrv2rgjwZPBIFIjYtw== dependencies: browserslist "^4.23.1" css-declaration-sorter "^7.2.0" cssnano-utils "^5.0.0" postcss-calc "^10.0.0" postcss-colormin "^7.0.1" - postcss-convert-values "^7.0.1" + postcss-convert-values "^7.0.2" postcss-discard-comments "^7.0.1" postcss-discard-duplicates "^7.0.0" postcss-discard-empty "^7.0.0" @@ -404,11 +409,11 @@ cssnano-utils@^5.0.0: integrity sha512-Uij0Xdxc24L6SirFr25MlwC2rCFX6scyUmuKpzI+JQ7cyqDEwD42fJ0xfB3yLfOnRDU5LKGgjQ9FA6LYh76GWQ== cssnano@^7.0.0: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-7.0.3.tgz#f7ea770931c84ffd4e7c07fbd1993cee602e4dd1" - integrity sha512-lsekJctOTqdCn4cNrtrSwsuMR/fHC+oiVMHkp/OugBWtwjH8XJag1/OtGaYJGtz0un1fQcRy4ryfYTQsfh+KSQ== + version "7.0.4" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-7.0.4.tgz#13a4fb4dd14f3b1ee0cd51e6404ae4656f8ad9a0" + integrity sha512-rQgpZra72iFjiheNreXn77q1haS2GEy69zCMbu4cpXCFPMQF+D4Ik5V7ktMzUF/sA7xCIgcqHwGPnCD+0a1vHg== dependencies: - cssnano-preset-default "^7.0.3" + cssnano-preset-default "^7.0.4" lilconfig "^3.1.2" csso@^5.0.5: @@ -468,11 +473,16 @@ eastasianwidth@^0.2.0: resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== -electron-to-chromium@^1.4.668, electron-to-chromium@^1.4.796: +electron-to-chromium@^1.4.668: version "1.4.806" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.806.tgz#2cb046631cbabceb26fc72be68d273fa183e36bc" integrity sha512-nkoEX2QIB8kwCOtvtgwhXWy2IHVcOLQZu9Qo36uaGB835mdX/h8uLRlosL6QIhLVUnAiicXRW00PwaPZC74Nrg== +electron-to-chromium@^1.4.796: + version "1.4.816" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.816.tgz#3624649d1e7fde5cdbadf59d31a524245d8ee85f" + integrity sha512-EKH5X5oqC6hLmiS7/vYtZHZFTNdhsYG5NVPRN6Yn0kQHNBlT59+xSM8HBy66P5fxWpKgZbPqb+diC64ng295Jw== + emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" @@ -921,10 +931,10 @@ postcss-colormin@^7.0.1: colord "^2.9.3" postcss-value-parser "^4.2.0" -postcss-convert-values@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-7.0.1.tgz#df84dab80a03b30a4b4dba68b348fb07e649a3c3" - integrity sha512-9x2ofb+hYPwHWMlWAzyWys2yMDZYGfkX9LodbaVTmLdlupmtH2AGvj8Up95wzzNPRDEzPIxQIkUaPJew3bT6xA== +postcss-convert-values@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-7.0.2.tgz#8a33265f5f1decfc93328e2a23e03e8491a3d9ae" + integrity sha512-MuZIF6HJ4izko07Q0TgW6pClalI4al6wHRNPkFzqQdwAwG7hPn0lA58VZdxyb2Vl5AYjJ1piO+jgF9EnTjQwQQ== dependencies: browserslist "^4.23.1" postcss-value-parser "^4.2.0" @@ -1438,7 +1448,7 @@ universalify@^2.0.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== -update-browserslist-db@^1.0.13, update-browserslist-db@^1.0.16: +update-browserslist-db@^1.0.13: version "1.0.16" resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz#f6d489ed90fb2f07d67784eb3f53d7891f736356" integrity sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ== @@ -1446,6 +1456,14 @@ update-browserslist-db@^1.0.13, update-browserslist-db@^1.0.16: escalade "^3.1.2" picocolors "^1.0.1" +update-browserslist-db@^1.0.16: + version "1.1.0" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz#7ca61c0d8650766090728046e416a8cde682859e" + integrity sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ== + dependencies: + escalade "^3.1.2" + picocolors "^1.0.1" + util-deprecate@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" From baf5c682b0d78717e42352fe6525e10fb01ab836 Mon Sep 17 00:00:00 2001 From: ivanbrennan Date: Thu, 4 Jul 2024 11:10:40 -0400 Subject: [PATCH 151/162] secure nix config Stop writing docspell config files to the world-readable nix store, since they contain sensitive info, e.g. database passwords. Additionally, provide a `configFile` option so users may point to a file they've secured using their prefered secret management strategy. --- nix/modules/joex.nix | 28 +++++++++++++++++++++++----- nix/modules/server.nix | 28 +++++++++++++++++++++++----- 2 files changed, 46 insertions(+), 10 deletions(-) diff --git a/nix/modules/joex.nix b/nix/modules/joex.nix index 703d9209..16789de5 100644 --- a/nix/modules/joex.nix +++ b/nix/modules/joex.nix @@ -12,11 +12,6 @@ with lib; let if cfg.runAs == null then "docspell" else cfg.runAs; - configFile = pkgs.writeText "docspell-joex.conf" '' - {"docspell": { "joex": - ${builtins.toJSON (lib.recursiveUpdate declared_config cfg.extraConfig)} - }} - ''; defaults = { app-id = "joex1"; base-url = "http://localhost:7878"; @@ -330,6 +325,15 @@ in { example = ["-J-Xmx1G"]; description = "The options passed to the executable for setting jvm arguments."; }; + configFile = mkOption { + type = types.nullOr types.path; + default = null; + example = literalExpression ''"''${config.sops.secrets.docspell_joex_config.path}"''; + description = '' + Path to an existing configuration file. + If null, a configuration file will be generated at /etc/docspell-joex.conf + ''; + }; app-id = mkOption { type = types.str; @@ -1763,6 +1767,17 @@ in { }; users.groups."${user}" = mkIf (cfg.runAs == null) {}; + environment.etc."docspell-joex.conf" = mkIf (cfg.configFile == null) { + text = '' + {"docspell": {"joex": + ${builtins.toJSON (lib.recursiveUpdate declared_config cfg.extraConfig)} + }} + ''; + user = user; + group = user; + mode = "0400"; + }; + # Setting up a unoconv listener to improve conversion performance systemd.services.unoconv = let cmd = "${pkgs.unoconv}/bin/unoconv --listener -v"; @@ -1778,6 +1793,9 @@ in { systemd.services.docspell-joex = let args = builtins.concatStringsSep " " cfg.jvmArgs; + configFile = if cfg.configFile == null + then "/etc/docspell-joex.conf" + else "${cfg.configFile}"; cmd = "${lib.getExe' cfg.package "docspell-joex"} ${args} -- ${configFile}"; waitTarget = if cfg.waitForTarget != null diff --git a/nix/modules/server.nix b/nix/modules/server.nix index c2a6d51e..28f49e61 100644 --- a/nix/modules/server.nix +++ b/nix/modules/server.nix @@ -12,11 +12,6 @@ with lib; let if cfg.runAs == null then "docspell" else cfg.runAs; - configFile = pkgs.writeText "docspell-restserver.conf" '' - {"docspell": {"server": - ${builtins.toJSON (lib.recursiveUpdate declared_config cfg.extraConfig)} - }} - ''; defaults = { app-name = "Docspell"; app-id = "rest1"; @@ -167,6 +162,15 @@ in { example = ["-J-Xmx1G"]; description = "The options passed to the executable for setting jvm arguments."; }; + configFile = mkOption { + type = types.nullOr types.path; + default = null; + example = literalExpression ''"''${config.sops.secrets.docspell_restserver_config.path}"''; + description = '' + Path to an existing configuration file. + If null, a configuration file will be generated at /etc/docspell-restserver.conf + ''; + }; app-name = mkOption { type = types.str; @@ -897,8 +901,22 @@ in { }; users.groups."${user}" = mkIf (cfg.runAs == null) {}; + environment.etc."docspell-restserver.conf" = mkIf (cfg.configFile == null) { + text = '' + {"docspell": {"server": + ${builtins.toJSON (lib.recursiveUpdate declared_config cfg.extraConfig)} + }} + ''; + user = user; + group = user; + mode = "0400"; + }; + systemd.services.docspell-restserver = let args = builtins.concatStringsSep " " cfg.jvmArgs; + configFile = if cfg.configFile == null + then "/etc/docspell-restserver.conf" + else "${cfg.configFile}"; cmd = "${lib.getExe' cfg.package "docspell-restserver"} ${args} -- ${configFile}"; in { description = "Docspell Rest Server"; From f1d6b8efb0b5a0cbc905ddff408dc86b3848fad7 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Mon, 8 Jul 2024 06:13:35 +0000 Subject: [PATCH 152/162] Update sbt to 1.10.1 --- project/build.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/build.properties b/project/build.properties index 081fdbbc..ee4c672c 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.0 +sbt.version=1.10.1 From f0f8d907df7d028e9e4c9fe953ca662ed0c0bf06 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jul 2024 09:42:31 +0200 Subject: [PATCH 153/162] Bump braces from 3.0.2 to 3.0.3 in /modules/webapp (#2684) Bumps [braces](https://github.com/micromatch/braces) from 3.0.2 to 3.0.3. - [Changelog](https://github.com/micromatch/braces/blob/master/CHANGELOG.md) - [Commits](https://github.com/micromatch/braces/compare/3.0.2...3.0.3) --- updated-dependencies: - dependency-name: braces dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- modules/webapp/package-lock.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/modules/webapp/package-lock.json b/modules/webapp/package-lock.json index 10b66bf8..de2a65c1 100644 --- a/modules/webapp/package-lock.json +++ b/modules/webapp/package-lock.json @@ -215,11 +215,11 @@ } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -370,9 +370,9 @@ } }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dependencies": { "to-regex-range": "^5.0.1" }, From 191357f249d4f0bff3d6195dc3ce19796b3c0978 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Thu, 11 Jul 2024 06:12:47 +0000 Subject: [PATCH 154/162] Update jsoup to 1.18.1 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 22d09172..96fb3de0 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -25,7 +25,7 @@ object Dependencies { val Http4sVersion = "0.23.27" val Icu4jVersion = "75.1" val JavaOtpVersion = "0.4.0" - val JsoupVersion = "1.17.2" + val JsoupVersion = "1.18.1" val JwtScalaVersion = "10.0.1" val KindProjectorVersion = "0.10.3" val KittensVersion = "3.3.0" From e178a7359fd5d8bba63f7871f3815608dbde733d Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Fri, 12 Jul 2024 06:12:25 +0000 Subject: [PATCH 155/162] Update circe-yaml to 0.15.3 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 96fb3de0..031823bf 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -14,7 +14,7 @@ object Dependencies { val CatsParseVersion = "1.0.0" val CirceVersion = "0.15.0-M1" val CirceGenericExtrasVersion = "0.14.3" - val CirceYamlVersion = "0.15.2" + val CirceYamlVersion = "0.15.3" val ClipboardJsVersion = "2.0.11" val DoobieVersion = "1.0.0-RC5" val EmilVersion = "0.17.0" From 930646758300dbcb91c97e39f869bb29eea95810 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Jul 2024 20:14:22 +0000 Subject: [PATCH 156/162] Update dependency tailwindcss to v3.4.5 --- modules/webapp/package-lock.json | 6 +-- website/yarn.lock | 87 ++++++++++++++++++-------------- 2 files changed, 51 insertions(+), 42 deletions(-) diff --git a/modules/webapp/package-lock.json b/modules/webapp/package-lock.json index de2a65c1..02673ea1 100644 --- a/modules/webapp/package-lock.json +++ b/modules/webapp/package-lock.json @@ -1121,9 +1121,9 @@ } }, "node_modules/tailwindcss": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.4.tgz", - "integrity": "sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==", + "version": "3.4.5", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.5.tgz", + "integrity": "sha512-DlTxttYcogpDfx3tf/8jfnma1nfAYi2cBUYV2YNoPPecwmO3YGiFlOX9D8tGAu+EDF38ryBzvrDKU/BLMsUwbw==", "license": "MIT", "dependencies": { "@alloc/quick-lru": "^5.2.0", diff --git a/website/yarn.lock b/website/yarn.lock index dd4987fb..c159dae7 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -59,9 +59,9 @@ integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": - version "1.4.15" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" - integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + version "1.5.0" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== "@jridgewell/trace-mapping@^0.3.24": version "0.3.25" @@ -529,9 +529,9 @@ fill-range@^7.1.1: to-regex-range "^5.0.1" foreground-child@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" - integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== + version "3.2.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.2.1.tgz#767004ccf3a5b30df39bed90718bab43fe0a59f7" + integrity sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA== dependencies: cross-spawn "^7.0.0" signal-exit "^4.0.1" @@ -590,14 +590,15 @@ glob-parent@^6.0.2: is-glob "^4.0.3" glob@^10.3.10: - version "10.4.1" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.1.tgz#0cfb01ab6a6b438177bfe6a58e2576f6efe909c2" - integrity sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw== + version "10.4.5" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956" + integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== dependencies: foreground-child "^3.1.0" jackspeak "^3.1.2" minimatch "^9.0.4" minipass "^7.1.2" + package-json-from-dist "^1.0.0" path-scurry "^1.11.1" glob@^8.0.3: @@ -628,7 +629,7 @@ graceful-fs@^4.1.6, graceful-fs@^4.2.0: resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== -hasown@^2.0.0: +hasown@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== @@ -661,11 +662,11 @@ is-binary-path@~2.1.0: binary-extensions "^2.0.0" is-core-module@^2.13.0: - version "2.13.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" - integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== + version "2.14.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.14.0.tgz#43b8ef9f46a6a08888db67b1ffd4ec9e3dfd59d1" + integrity sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A== dependencies: - hasown "^2.0.0" + hasown "^2.0.2" is-extglob@^2.1.1: version "2.1.1" @@ -695,18 +696,18 @@ isexe@^2.0.0: integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== jackspeak@^3.1.2: - version "3.4.0" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.0.tgz#a75763ff36ad778ede6a156d8ee8b124de445b4a" - integrity sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw== + version "3.4.3" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" + integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== dependencies: "@isaacs/cliui" "^8.0.2" optionalDependencies: "@pkgjs/parseargs" "^0.11.0" jiti@^1.21.0: - version "1.21.3" - resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.3.tgz#b2adb07489d7629b344d59082bbedb8c21c5f755" - integrity sha512-uy2bNX5zQ+tESe+TiC7ilGRz8AtRGmnJH55NC5S0nSUjvvvM2hJHmefHErugGXN4pNv4Qx7vLsnNw9qJ9mtIsw== + version "1.21.6" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.6.tgz#6c7f7398dd4b3142767f9a168af2f317a428d268" + integrity sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w== jsonfile@^6.0.1: version "6.1.0" @@ -722,12 +723,7 @@ lilconfig@^2.1.0: resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== -lilconfig@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.1.tgz#9d8a246fa753106cfc205fd2d77042faca56e5e3" - integrity sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ== - -lilconfig@^3.1.2: +lilconfig@^3.0.0, lilconfig@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.2.tgz#e4a7c3cb549e3a606c8dcc32e5ae1005e62c05cb" integrity sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow== @@ -748,9 +744,9 @@ lodash.uniq@^4.5.0: integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== lru-cache@^10.2.0: - version "10.2.2" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.2.tgz#48206bc114c1252940c41b25b41af5b545aca878" - integrity sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ== + version "10.4.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" + integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== mdn-data@2.0.28: version "2.0.28" @@ -788,9 +784,9 @@ minimatch@^5.0.1: brace-expansion "^2.0.1" minimatch@^9.0.4: - version "9.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.4.tgz#8e49c731d1749cbec05050ee5145147b32496a51" - integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== + version "9.0.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== dependencies: brace-expansion "^2.0.1" @@ -852,6 +848,11 @@ once@^1.3.0: dependencies: wrappy "1" +package-json-from-dist@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz#e501cd3094b278495eb4258d4c9f6d5ac3019f00" + integrity sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw== + path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" @@ -1160,7 +1161,15 @@ postcss-reporter@^7.0.0: picocolors "^1.0.0" thenby "^1.3.4" -postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.16, postcss-selector-parser@^6.1.0: +postcss-selector-parser@^6.0.11: + version "6.1.1" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz#5be94b277b8955904476a2400260002ce6c56e38" + integrity sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-selector-parser@^6.0.16, postcss-selector-parser@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz#49694cb4e7c649299fea510a29fa6577104bcf53" integrity sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ== @@ -1380,9 +1389,9 @@ svgo@^3.3.2: picocolors "^1.0.0" tailwindcss@^3.0: - version "3.4.4" - resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.4.tgz#351d932273e6abfa75ce7d226b5bf3a6cb257c05" - integrity sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A== + version "3.4.5" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.5.tgz#0de2e92ed4d00fb015feb962fa0781605761724d" + integrity sha512-DlTxttYcogpDfx3tf/8jfnma1nfAYi2cBUYV2YNoPPecwmO3YGiFlOX9D8tGAu+EDF38ryBzvrDKU/BLMsUwbw== dependencies: "@alloc/quick-lru" "^5.2.0" arg "^5.0.2" @@ -1514,9 +1523,9 @@ y18n@^5.0.5: integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== yaml@^2.3.4: - version "2.4.3" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.3.tgz#0777516b8c7880bcaa0f426a5410e8d6b0be1f3d" - integrity sha512-sntgmxj8o7DE7g/Qi60cqpLBA3HG3STcDA0kO+WfB05jEKhZMbY7umNm2rBpQvsmZ16/lPXCJGW2672dgOUkrg== + version "2.4.5" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.5.tgz#60630b206dd6d84df97003d33fc1ddf6296cca5e" + integrity sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg== yargs-parser@^21.1.1: version "21.1.1" From a7510c02f5e3f315da884ac9216faa1a11fb1a4a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 16 Jul 2024 18:36:49 +0000 Subject: [PATCH 157/162] Update dependency tailwindcss to v3.4.6 --- modules/webapp/package-lock.json | 6 +++--- website/yarn.lock | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/webapp/package-lock.json b/modules/webapp/package-lock.json index 02673ea1..effcfbe1 100644 --- a/modules/webapp/package-lock.json +++ b/modules/webapp/package-lock.json @@ -1121,9 +1121,9 @@ } }, "node_modules/tailwindcss": { - "version": "3.4.5", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.5.tgz", - "integrity": "sha512-DlTxttYcogpDfx3tf/8jfnma1nfAYi2cBUYV2YNoPPecwmO3YGiFlOX9D8tGAu+EDF38ryBzvrDKU/BLMsUwbw==", + "version": "3.4.6", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.6.tgz", + "integrity": "sha512-1uRHzPB+Vzu57ocybfZ4jh5Q3SdlH7XW23J5sQoM9LhE9eIOlzxer/3XPSsycvih3rboRsvt0QCmzSrqyOYUIA==", "license": "MIT", "dependencies": { "@alloc/quick-lru": "^5.2.0", diff --git a/website/yarn.lock b/website/yarn.lock index c159dae7..901175e9 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -1389,9 +1389,9 @@ svgo@^3.3.2: picocolors "^1.0.0" tailwindcss@^3.0: - version "3.4.5" - resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.5.tgz#0de2e92ed4d00fb015feb962fa0781605761724d" - integrity sha512-DlTxttYcogpDfx3tf/8jfnma1nfAYi2cBUYV2YNoPPecwmO3YGiFlOX9D8tGAu+EDF38ryBzvrDKU/BLMsUwbw== + version "3.4.6" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.6.tgz#41faae16607e0916da1eaa4a3b44053457ba70dd" + integrity sha512-1uRHzPB+Vzu57ocybfZ4jh5Q3SdlH7XW23J5sQoM9LhE9eIOlzxer/3XPSsycvih3rboRsvt0QCmzSrqyOYUIA== dependencies: "@alloc/quick-lru" "^5.2.0" arg "^5.0.2" From 54afdeb93443b45c71a947d2fa28e03db0f89b24 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 16 Jul 2024 22:30:28 +0000 Subject: [PATCH 158/162] Update dependency @fortawesome/fontawesome-free to v6.6.0 --- modules/webapp/package-lock.json | 8 ++++---- website/yarn.lock | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/modules/webapp/package-lock.json b/modules/webapp/package-lock.json index effcfbe1..25f155a6 100644 --- a/modules/webapp/package-lock.json +++ b/modules/webapp/package-lock.json @@ -28,11 +28,11 @@ } }, "node_modules/@fortawesome/fontawesome-free": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.5.2.tgz", - "integrity": "sha512-hRILoInAx8GNT5IMkrtIt9blOdrqHOnPBH+k70aWUAqPZPgopb9G5EQJFpaBx/S8zp2fC+mPW349Bziuk1o28Q==", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.6.0.tgz", + "integrity": "sha512-60G28ke/sXdtS9KZCpZSHHkCbdsOGEhIUGlwq6yhY74UpTiToIh8np7A8yphhM4BWsvNFtIvLpi4co+h9Mr9Ow==", "dev": true, - "hasInstallScript": true, + "license": "(CC-BY-4.0 AND OFL-1.1 AND MIT)", "engines": { "node": ">=6" } diff --git a/website/yarn.lock b/website/yarn.lock index 901175e9..57a6cb8f 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -23,9 +23,9 @@ integrity sha512-t/E81Rp78LtpwSO19BErGP2HxWAib2/lBriYqJ1OsmYwdFTS4k3wqUJ6+vlr1dKWvjbMks+M3e999JyQC5JaMA== "@fortawesome/fontawesome-free@^6.0.0": - version "6.5.2" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-6.5.2.tgz#310fe90cb5a8dee9698833171b98e7835404293d" - integrity sha512-hRILoInAx8GNT5IMkrtIt9blOdrqHOnPBH+k70aWUAqPZPgopb9G5EQJFpaBx/S8zp2fC+mPW349Bziuk1o28Q== + version "6.6.0" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-6.6.0.tgz#0e984f0f2344ee513c185d87d77defac4c0c8224" + integrity sha512-60G28ke/sXdtS9KZCpZSHHkCbdsOGEhIUGlwq6yhY74UpTiToIh8np7A8yphhM4BWsvNFtIvLpi4co+h9Mr9Ow== "@isaacs/cliui@^8.0.2": version "8.0.2" From 723241f17f02117a8a41c35418a26828ec4510e5 Mon Sep 17 00:00:00 2001 From: eikek-scala-steward Date: Thu, 18 Jul 2024 06:13:28 +0000 Subject: [PATCH 159/162] Update mariadb-java-client to 3.4.1 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 031823bf..33b149be 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -32,7 +32,7 @@ object Dependencies { val LevigoJbig2Version = "2.0" val Log4sVersion = "1.10.0" val LogbackVersion = "1.2.10" - val MariaDbVersion = "3.4.0" + val MariaDbVersion = "3.4.1" val MUnitVersion = "1.0.0" val MUnitCatsEffectVersion = "2.0.0" val PdfboxVersion = "3.0.2" From 57a0a52b0bc62038afc6a1198d0f723b62e28711 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 23 Jul 2024 00:34:10 +0000 Subject: [PATCH 160/162] Update alpine Docker tag to v3.20.2 --- docker/dockerfiles/joex.dockerfile | 2 +- docker/dockerfiles/restserver.dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/dockerfiles/joex.dockerfile b/docker/dockerfiles/joex.dockerfile index 733387ed..3744abaa 100644 --- a/docker/dockerfiles/joex.dockerfile +++ b/docker/dockerfiles/joex.dockerfile @@ -1,4 +1,4 @@ -FROM alpine:3.20.1 +FROM alpine:3.20.2 ARG version= ARG joex_url= diff --git a/docker/dockerfiles/restserver.dockerfile b/docker/dockerfiles/restserver.dockerfile index 6abc322b..a0d11781 100644 --- a/docker/dockerfiles/restserver.dockerfile +++ b/docker/dockerfiles/restserver.dockerfile @@ -1,4 +1,4 @@ -FROM alpine:3.20.1 +FROM alpine:3.20.2 ARG version= ARG restserver_url= From 4c786d489369f9e0a9aec75aabf0ec391cb97edc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 24 Jul 2024 21:08:47 +0000 Subject: [PATCH 161/162] Update dependency postcss to v8.4.40 --- website/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/website/yarn.lock b/website/yarn.lock index 57a6cb8f..f753865e 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -1206,9 +1206,9 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== postcss@^8.4.23, postcss@^8.4.4, postcss@^8.4.5: - version "8.4.39" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.39.tgz#aa3c94998b61d3a9c259efa51db4b392e1bde0e3" - integrity sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw== + version "8.4.40" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.40.tgz#eb81f2a4dd7668ed869a6db25999e02e9ad909d8" + integrity sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q== dependencies: nanoid "^3.3.7" picocolors "^1.0.1" From f500cebab4d4b6b12118a7dba7217352e50fcd67 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 25 Jul 2024 15:43:11 +0000 Subject: [PATCH 162/162] Update dependency tailwindcss to v3.4.7 --- modules/webapp/package-lock.json | 6 +++--- website/yarn.lock | 28 ++++++++++++++-------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/modules/webapp/package-lock.json b/modules/webapp/package-lock.json index 25f155a6..9ca63987 100644 --- a/modules/webapp/package-lock.json +++ b/modules/webapp/package-lock.json @@ -1121,9 +1121,9 @@ } }, "node_modules/tailwindcss": { - "version": "3.4.6", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.6.tgz", - "integrity": "sha512-1uRHzPB+Vzu57ocybfZ4jh5Q3SdlH7XW23J5sQoM9LhE9eIOlzxer/3XPSsycvih3rboRsvt0QCmzSrqyOYUIA==", + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.7.tgz", + "integrity": "sha512-rxWZbe87YJb4OcSopb7up2Ba4U82BoiSGUdoDr3Ydrg9ckxFS/YWsvhN323GMcddgU65QRy7JndC7ahhInhvlQ==", "license": "MIT", "dependencies": { "@alloc/quick-lru": "^5.2.0", diff --git a/website/yarn.lock b/website/yarn.lock index f753865e..c23023de 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -662,9 +662,9 @@ is-binary-path@~2.1.0: binary-extensions "^2.0.0" is-core-module@^2.13.0: - version "2.14.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.14.0.tgz#43b8ef9f46a6a08888db67b1ffd4ec9e3dfd59d1" - integrity sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A== + version "2.15.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.0.tgz#71c72ec5442ace7e76b306e9d48db361f22699ea" + integrity sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA== dependencies: hasown "^2.0.2" @@ -1055,11 +1055,11 @@ postcss-minify-selectors@^7.0.2: postcss-selector-parser "^6.1.0" postcss-nested@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.0.1.tgz#f83dc9846ca16d2f4fa864f16e9d9f7d0961662c" - integrity sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ== + version "6.2.0" + resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.2.0.tgz#4c2d22ab5f20b9cb61e2c5c5915950784d068131" + integrity sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ== dependencies: - postcss-selector-parser "^6.0.11" + postcss-selector-parser "^6.1.1" postcss-normalize-charset@^7.0.0: version "7.0.0" @@ -1161,7 +1161,7 @@ postcss-reporter@^7.0.0: picocolors "^1.0.0" thenby "^1.3.4" -postcss-selector-parser@^6.0.11: +postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.1.1: version "6.1.1" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz#5be94b277b8955904476a2400260002ce6c56e38" integrity sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg== @@ -1389,9 +1389,9 @@ svgo@^3.3.2: picocolors "^1.0.0" tailwindcss@^3.0: - version "3.4.6" - resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.6.tgz#41faae16607e0916da1eaa4a3b44053457ba70dd" - integrity sha512-1uRHzPB+Vzu57ocybfZ4jh5Q3SdlH7XW23J5sQoM9LhE9eIOlzxer/3XPSsycvih3rboRsvt0QCmzSrqyOYUIA== + version "3.4.7" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.7.tgz#6092f18767f5933f59375b9afe558e592fc77201" + integrity sha512-rxWZbe87YJb4OcSopb7up2Ba4U82BoiSGUdoDr3Ydrg9ckxFS/YWsvhN323GMcddgU65QRy7JndC7ahhInhvlQ== dependencies: "@alloc/quick-lru" "^5.2.0" arg "^5.0.2" @@ -1523,9 +1523,9 @@ y18n@^5.0.5: integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== yaml@^2.3.4: - version "2.4.5" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.5.tgz#60630b206dd6d84df97003d33fc1ddf6296cca5e" - integrity sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg== + version "2.5.0" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.5.0.tgz#c6165a721cf8000e91c36490a41d7be25176cf5d" + integrity sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw== yargs-parser@^21.1.1: version "21.1.1"