diff --git a/angular/package-lock.json b/angular/package-lock.json index df102472d..9277bb7b2 100644 --- a/angular/package-lock.json +++ b/angular/package-lock.json @@ -24,10 +24,10 @@ "i18next-http-backend": "^2.6.2", "lodash-es": "^4.17.21", "luxon": "^3.5.0", - "ngx-bootstrap": "^18.1.2", + "ngx-bootstrap": "^18.1.3", "owasp-password-strength-test": "^1.3.0", "rxjs": "^7.8.1", - "tslib": "^2.8.0", + "tslib": "^2.8.1", "zone.js": "~0.14.10" }, "devDependencies": { @@ -36,7 +36,7 @@ "@angular/compiler-cli": "^18.2.10", "@schematics/angular": "^18.2.10", "@types/jasmine": "~5.1.1", - "@types/lodash": "^4.17.12", + "@types/lodash": "^4.17.13", "@types/lodash-es": "^4.17.10", "@types/luxon": "^3.3.3", "@types/owasp-password-strength-test": "^1.3.1", @@ -4185,9 +4185,9 @@ "dev": true }, "node_modules/@types/lodash": { - "version": "4.17.12", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.12.tgz", - "integrity": "sha512-sviUmCE8AYdaF/KIHLDJBQgeYzPBI0vf/17NaYehBJfYD1j6/L95Slh07NlyK2iNyBNaEkb3En2jRt+a8y3xZQ==", + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.13.tgz", + "integrity": "sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==", "dev": true }, "node_modules/@types/lodash-es": { @@ -10138,9 +10138,9 @@ } }, "node_modules/ngx-bootstrap": { - "version": "18.1.2", - "resolved": "https://registry.npmjs.org/ngx-bootstrap/-/ngx-bootstrap-18.1.2.tgz", - "integrity": "sha512-ohvguspdWET5iGqQCOLsW01C+La+nb+WfMAwBU+s4nquaSraEx/C/DgHwhJxrGE31VNYSTFpDgX83zvlW1Sctg==", + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/ngx-bootstrap/-/ngx-bootstrap-18.1.3.tgz", + "integrity": "sha512-wSaofPv8UZKVNqm11+PQ6pD9KYRijqOyI4PE9Q8XgxJe18qNtyXnqHhEk1y0zC+jgX/mTFBexkskFWzADoopHw==", "dependencies": { "tslib": "^2.3.0" }, @@ -12846,9 +12846,9 @@ } }, "node_modules/tslib": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.0.tgz", - "integrity": "sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==" + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" }, "node_modules/tuf-js": { "version": "2.2.1", diff --git a/angular/package.json b/angular/package.json index 360c2f6b1..de02d13a3 100644 --- a/angular/package.json +++ b/angular/package.json @@ -26,10 +26,10 @@ "i18next-http-backend": "^2.6.2", "lodash-es": "^4.17.21", "luxon": "^3.5.0", - "ngx-bootstrap": "^18.1.2", + "ngx-bootstrap": "^18.1.3", "owasp-password-strength-test": "^1.3.0", "rxjs": "^7.8.1", - "tslib": "^2.8.0", + "tslib": "^2.8.1", "zone.js": "~0.14.10" }, "devDependencies": { @@ -38,7 +38,7 @@ "@angular/compiler-cli": "^18.2.10", "@schematics/angular": "^18.2.10", "@types/jasmine": "~5.1.1", - "@types/lodash": "^4.17.12", + "@types/lodash": "^4.17.13", "@types/lodash-es": "^4.17.10", "@types/luxon": "^3.3.3", "@types/owasp-password-strength-test": "^1.3.1", diff --git a/core/package-lock.json b/core/package-lock.json index 1dd00f752..4f0297c28 100644 --- a/core/package-lock.json +++ b/core/package-lock.json @@ -27,12 +27,12 @@ "integrity": "sha512-5xxU8vVs9/FNcvm3gE07fPbn9tl6tqGGWA9tSlwsUEkBxtRnTsNmwrV8gasZ9F/EobaSv9+nu8AxUKccw77JpQ==" }, "node_modules/@types/node": { - "version": "22.8.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.8.1.tgz", - "integrity": "sha512-k6Gi8Yyo8EtrNtkHXutUu2corfDf9su95VYVP10aGYMMROM6SAItZi0w1XszA6RtWTHSVp5OeFof37w0IEqCQg==", + "version": "22.10.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.1.tgz", + "integrity": "sha512-qKgsUwfHZV2WCWLAnVP1JqnpE6Im6h3Y0+fYgMTasNQ7V++CBX5OT1as0g0f+OyubbFqhf6XVNIsmN4IIhEgGQ==", "dev": true, "dependencies": { - "undici-types": "~6.19.8" + "undici-types": "~6.20.0" } }, "node_modules/component-emitter": { @@ -96,9 +96,9 @@ "dev": true }, "node_modules/typescript": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", - "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", + "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -109,9 +109,9 @@ } }, "node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", "dev": true } }, @@ -122,12 +122,12 @@ "integrity": "sha512-5xxU8vVs9/FNcvm3gE07fPbn9tl6tqGGWA9tSlwsUEkBxtRnTsNmwrV8gasZ9F/EobaSv9+nu8AxUKccw77JpQ==" }, "@types/node": { - "version": "22.8.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.8.1.tgz", - "integrity": "sha512-k6Gi8Yyo8EtrNtkHXutUu2corfDf9su95VYVP10aGYMMROM6SAItZi0w1XszA6RtWTHSVp5OeFof37w0IEqCQg==", + "version": "22.10.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.1.tgz", + "integrity": "sha512-qKgsUwfHZV2WCWLAnVP1JqnpE6Im6h3Y0+fYgMTasNQ7V++CBX5OT1as0g0f+OyubbFqhf6XVNIsmN4IIhEgGQ==", "dev": true, "requires": { - "undici-types": "~6.19.8" + "undici-types": "~6.20.0" } }, "component-emitter": { @@ -179,15 +179,15 @@ "dev": true }, "typescript": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", - "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", + "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", "dev": true }, "undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", "dev": true } } diff --git a/package-lock.json b/package-lock.json index 9a72f02f9..e87b2898a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30,7 +30,7 @@ "css-loader": "^7.1.2", "css-minimizer-webpack-plugin": "^7.0.0", "csv-parser": "^3.0.0", - "csv-stringify": "^6.5.1", + "csv-stringify": "^6.5.2", "dotenv": "^16.4.5", "ejs": "3.1.10", "express-session": "^1.18.1", @@ -40,7 +40,7 @@ "genson-js": "^0.0.8", "glob": "^11.0.0", "har-validator": "5.1.5", - "i18next": "^23.16.4", + "i18next": "^24.0.5", "i18next-fs-backend": "^2.3.2", "include-all": "^4.0.3", "jquery": "^3.7.1", @@ -51,9 +51,9 @@ "lodash-es": "^4.17.21", "lucene-escape-query": "^1.0.1", "luxon": "^3.5.0", - "mini-css-extract-plugin": "^2.9.1", + "mini-css-extract-plugin": "^2.9.2", "moment": "^2.30.1", - "mongodb": "^6.3.0", + "mongodb": "^6.11.0", "node-cache": "^5.1.2", "node-schedule": "^2.1.1", "nodemailer": "^6.9.16", @@ -69,12 +69,12 @@ "redux": "5.0.1", "rxjs": "6.6.2", "rxjs-compat": "6.6.7", - "sails": "^1.5.12", + "sails": "^1.5.14", "sails-hook-orm": "^4.0.3", "sails-hook-sockets": "^3.0.1", "sails-mongo": "^2.1.2", - "sass": "^1.80.5", - "sass-loader": "^16.0.2", + "sass": "^1.82.0", + "sass-loader": "^16.0.4", "skipper": "^0.9.5", "skipper-gridfs": "^1.0.2", "solr-client": "^0.9.0", @@ -86,7 +86,7 @@ "typescript-json-schema": "^0.65.1", "typescript-require": "~0.3.0", "url-pattern": "^1.0.3", - "webpack": "^5.95.0", + "webpack": "^5.97.1", "wkt-parser-helper": "^4.2.0", "zone.js": "^0.15.0" }, @@ -838,8 +838,9 @@ } }, "node_modules/@mongodb-js/saslprep": { - "version": "1.1.3", - "license": "MIT", + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.9.tgz", + "integrity": "sha512-tVkljjeEaAhCqTzajSdgbQ6gE6f3oneVwa3iXR6csiEwXXOFsiC6Uh9iAjAhXPtqa/XMDHWjjeNH/77m/Yq2dw==", "dependencies": { "sparse-bitfield": "^3.0.3" } @@ -890,6 +891,7 @@ "node_modules/@parcel/watcher": { "version": "2.4.1", "license": "MIT", + "optional": true, "dependencies": { "detect-libc": "^1.0.3", "is-glob": "^4.0.3", @@ -1099,6 +1101,28 @@ "underscore": "1.13.1" } }, + "node_modules/@sailshq/csurf": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@sailshq/csurf/-/csurf-1.11.1.tgz", + "integrity": "sha512-IlmrTCsGMyPyl6lC1LtygW6xceGIAppwYGYq3GlLt8OgYBLg03Ac/Ob8roozzE2jTMFm7EFvW0XzqQDg1o/61Q==", + "dependencies": { + "cookie": "0.7.2", + "cookie-signature": "1.0.6", + "csrf": "3.1.0", + "http-errors": "1.8.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/@sailshq/csurf/node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/@sailshq/lodash": { "version": "3.10.6", "license": "MIT" @@ -1144,10 +1168,6 @@ "version": "0.1.11", "license": "MIT" }, - "node_modules/@sailshq/router/node_modules/setprototypeof": { - "version": "1.2.0", - "license": "ISC" - }, "node_modules/@scienta/axios-oauth2": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@scienta/axios-oauth2/-/axios-oauth2-1.2.1.tgz", @@ -1280,9 +1300,28 @@ "@types/node": "*" } }, + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, "node_modules/@types/estree": { - "version": "1.0.5", - "license": "MIT" + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==" }, "node_modules/@types/ioredis": { "version": "4.22.3", @@ -1385,7 +1424,16 @@ }, "node_modules/@types/webidl-conversions": { "version": "7.0.3", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz", + "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==" + }, + "node_modules/@types/whatwg-url": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.5.tgz", + "integrity": "sha512-coYR071JRaHa+xoEvvYqvnIHaVqaYrLPbsufM9BF63HkwI5Lgmy2QR8Q5K/lYDYo5AK82wOvSOS0UsLTpTG7uQ==", + "dependencies": { + "@types/webidl-conversions": "*" + } }, "node_modules/@types/yargs": { "version": "17.0.32", @@ -1399,128 +1447,145 @@ "license": "MIT" }, "node_modules/@webassemblyjs/ast": { - "version": "1.12.1", - "license": "MIT", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" } }, "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "license": "MIT" + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==" }, "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "license": "MIT" + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==" }, "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.12.1", - "license": "MIT" + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==" }, "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "license": "MIT", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "license": "MIT" + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==" }, "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.12.1", - "license": "MIT", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" } }, "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "license": "MIT", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "license": "Apache-2.0", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", "dependencies": { "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "license": "MIT" + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==" }, "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.12.1", - "license": "MIT", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-opt": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1", - "@webassemblyjs/wast-printer": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.12.1", - "license": "MIT", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.12.1", - "license": "MIT", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.12.1", - "license": "MIT", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wast-printer": { - "version": "1.12.1", - "license": "MIT", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", "dependencies": { - "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/ast": "1.14.1", "@xtuc/long": "4.2.2" } }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" }, "node_modules/@xtuc/long": { "version": "4.2.2", - "license": "Apache-2.0" + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" }, "node_modules/abbrev": { "version": "1.0.9", @@ -1549,8 +1614,9 @@ } }, "node_modules/acorn": { - "version": "8.11.3", - "license": "MIT", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "bin": { "acorn": "bin/acorn" }, @@ -1558,13 +1624,6 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-import-attributes": { - "version": "1.9.5", - "license": "MIT", - "peerDependencies": { - "acorn": "^8" - } - }, "node_modules/acorn-walk": { "version": "8.3.2", "license": "MIT", @@ -2015,10 +2074,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/body-parser/node_modules/setprototypeof": { - "version": "1.2.0", - "license": "ISC" - }, "node_modules/body-parser/node_modules/statuses": { "version": "2.0.1", "license": "MIT", @@ -2087,7 +2142,9 @@ "license": "ISC" }, "node_modules/browserslist": { - "version": "4.23.0", + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", "funding": [ { "type": "opencollective", @@ -2102,12 +2159,11 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.1" }, "bin": { "browserslist": "cli.js" @@ -2116,6 +2172,14 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "node_modules/bson": { + "version": "6.10.1", + "resolved": "https://registry.npmjs.org/bson/-/bson-6.10.1.tgz", + "integrity": "sha512-P92xmHDQjSKPLHqFxefqMxASNq/aWJMEZugpCjf+AF/pgcUpMMQCg7t7+ewko0/u8AapvF3luf/FoehddEK+sA==", + "engines": { + "node": ">=16.20.1" + } + }, "node_modules/buffer-equal-constant-time": { "version": "1.0.1", "license": "BSD-3-Clause" @@ -2202,7 +2266,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001616", + "version": "1.0.30001687", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001687.tgz", + "integrity": "sha512-0S/FDhf4ZiqrTUiQ39dKeUjYRjkv7lOZU1Dgif2rIqrTzX/1wV2hfKu9TOm1IHkdSijfLswxTFzl/cvir+SLSQ==", "funding": [ { "type": "opencollective", @@ -2216,8 +2282,7 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ], - "license": "CC-BY-4.0" + ] }, "node_modules/captains-log": { "version": "2.0.5", @@ -2631,7 +2696,8 @@ }, "node_modules/content-disposition": { "version": "0.5.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", "dependencies": { "safe-buffer": "5.2.1" }, @@ -2641,6 +2707,8 @@ }, "node_modules/content-disposition/node_modules/safe-buffer": { "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "funding": [ { "type": "github", @@ -2654,8 +2722,7 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "MIT" + ] }, "node_modules/content-type": { "version": "1.0.5", @@ -2676,10 +2743,11 @@ } }, "node_modules/cookie-parser": { - "version": "1.4.4", - "license": "MIT", + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.7.tgz", + "integrity": "sha512-nGUvgXnotP3BsjiLX2ypbQnWoGUPIIfHQNZkkC668ntrzGWEZVW70HDEB1qnNGMicPje6EttlIgzo51YSwNQGw==", "dependencies": { - "cookie": "0.3.1", + "cookie": "0.7.2", "cookie-signature": "1.0.6" }, "engines": { @@ -2687,15 +2755,17 @@ } }, "node_modules/cookie-parser/node_modules/cookie": { - "version": "0.3.1", - "license": "MIT", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", "engines": { "node": ">= 0.6" } }, "node_modules/cookie-signature": { "version": "1.0.6", - "license": "MIT" + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, "node_modules/cookiejar": { "version": "2.1.4", @@ -2827,7 +2897,8 @@ }, "node_modules/csrf": { "version": "3.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/csrf/-/csrf-3.1.0.tgz", + "integrity": "sha512-uTqEnCvWRk042asU6JtapDTcJeeailFy4ydOQS28bj1hcLnYRiqi8SsD2jS412AY1I/4qdOwWZun774iqywf9w==", "dependencies": { "rndm": "1.2.0", "tsscmp": "1.0.6", @@ -3077,26 +3148,6 @@ "version": "2.0.28", "license": "CC0-1.0" }, - "node_modules/csurf": { - "version": "1.10.0", - "license": "MIT", - "dependencies": { - "cookie": "0.3.1", - "cookie-signature": "1.0.6", - "csrf": "3.1.0", - "http-errors": "~1.7.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/csurf/node_modules/cookie": { - "version": "0.3.1", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/csv-parser": { "version": "3.0.0", "license": "MIT", @@ -3111,8 +3162,9 @@ } }, "node_modules/csv-stringify": { - "version": "6.5.1", - "license": "MIT" + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-6.5.2.tgz", + "integrity": "sha512-RFPahj0sXcmUyjrObAK+DOWtMvMIFV328n4qZJhgX3x2RqkQgOTU2mCUmiFR0CzM6AzChlRSUErjiJeEt8BaQA==" }, "node_modules/cycle": { "version": "1.0.3", @@ -3250,6 +3302,7 @@ "node_modules/detect-libc": { "version": "1.0.3", "license": "Apache-2.0", + "optional": true, "bin": { "detect-libc": "bin/detect-libc.js" }, @@ -3519,8 +3572,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.758", - "license": "ISC" + "version": "1.5.72", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.72.tgz", + "integrity": "sha512-ZpSAUOZ2Izby7qnZluSrAlGgGQzucmFbN0n64dYzocYxnxV5ufurpj3VgEe4cUp7ir9LmeLxNYo8bVnlM8bQHw==" }, "node_modules/emoji-regex": { "version": "8.0.0", @@ -3642,8 +3696,9 @@ "license": "MIT" }, "node_modules/escalade": { - "version": "3.1.1", - "license": "MIT", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "engines": { "node": ">=6" } @@ -3775,15 +3830,16 @@ } }, "node_modules/express": { - "version": "4.21.0", - "license": "MIT", + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.6.0", + "cookie": "0.7.1", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", @@ -3797,7 +3853,7 @@ "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.10", + "path-to-regexp": "0.1.12", "proxy-addr": "~2.0.7", "qs": "6.13.0", "range-parser": "~1.2.1", @@ -3812,6 +3868,10 @@ }, "engines": { "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/express-session": { @@ -3869,32 +3929,37 @@ }, "node_modules/express/node_modules/array-flatten": { "version": "1.1.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" }, "node_modules/express/node_modules/cookie": { - "version": "0.6.0", - "license": "MIT", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", "engines": { "node": ">= 0.6" } }, "node_modules/express/node_modules/debug": { "version": "2.6.9", - "license": "MIT", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dependencies": { "ms": "2.0.0" } }, "node_modules/express/node_modules/encodeurl": { "version": "2.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "engines": { "node": ">= 0.8" } }, "node_modules/express/node_modules/finalhandler": { "version": "1.3.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", "dependencies": { "debug": "2.6.9", "encodeurl": "~2.0.0", @@ -3910,7 +3975,8 @@ }, "node_modules/express/node_modules/http-errors": { "version": "2.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", @@ -3924,7 +3990,8 @@ }, "node_modules/express/node_modules/on-finished": { "version": "2.4.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dependencies": { "ee-first": "1.1.1" }, @@ -3933,12 +4000,14 @@ } }, "node_modules/express/node_modules/path-to-regexp": { - "version": "0.1.10", - "license": "MIT" + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==" }, "node_modules/express/node_modules/qs": { "version": "6.13.0", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "dependencies": { "side-channel": "^1.0.6" }, @@ -3951,6 +4020,8 @@ }, "node_modules/express/node_modules/safe-buffer": { "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "funding": [ { "type": "github", @@ -3964,23 +4035,20 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "MIT" - }, - "node_modules/express/node_modules/setprototypeof": { - "version": "1.2.0", - "license": "ISC" + ] }, "node_modules/express/node_modules/statuses": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "engines": { "node": ">= 0.8" } }, "node_modules/express/node_modules/toidentifier": { "version": "1.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "engines": { "node": ">=0.6" } @@ -4308,7 +4376,8 @@ }, "node_modules/forwarded": { "version": "0.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", "engines": { "node": ">= 0.6" } @@ -4790,12 +4859,13 @@ "license": "MIT" }, "node_modules/http-errors": { - "version": "1.7.3", - "license": "MIT", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz", + "integrity": "sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==", "dependencies": { "depd": "~1.1.2", "inherits": "2.0.4", - "setprototypeof": "1.1.1", + "setprototypeof": "1.2.0", "statuses": ">= 1.5.0 < 2", "toidentifier": "1.0.0" }, @@ -4805,14 +4875,16 @@ }, "node_modules/http-errors/node_modules/depd": { "version": "1.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", "engines": { "node": ">= 0.6" } }, "node_modules/http-errors/node_modules/statuses": { "version": "1.5.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "engines": { "node": ">= 0.6" } @@ -4894,9 +4966,9 @@ "license": "BSD-3-Clause" }, "node_modules/i18next": { - "version": "23.16.4", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.16.4.tgz", - "integrity": "sha512-9NIYBVy9cs4wIqzurf7nLXPyf3R78xYbxExVqHLK9od3038rjpyOEzW+XB130kZ1N4PZ9inTtJ471CRJ4Ituyg==", + "version": "24.0.5", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-24.0.5.tgz", + "integrity": "sha512-1jSdEzgFPGLZRsQwydoMFCBBaV+PmrVEO5WhANllZPX4y2JSGTxUjJ+xVklHIsiS95uR8gYc/y0hYZWevucNjg==", "funding": [ { "type": "individual", @@ -4913,6 +4985,14 @@ ], "dependencies": { "@babel/runtime": "^7.23.2" + }, + "peerDependencies": { + "typescript": "^5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/i18next-fs-backend": { @@ -4959,7 +5039,9 @@ } }, "node_modules/immutable": { - "version": "4.3.4", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.0.3.tgz", + "integrity": "sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==", "license": "MIT" }, "node_modules/imurmurhash": { @@ -5016,7 +5098,8 @@ }, "node_modules/ipaddr.js": { "version": "1.9.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", "engines": { "node": ">= 0.10" } @@ -6304,7 +6387,8 @@ }, "node_modules/merge-descriptors": { "version": "1.0.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", "funding": { "url": "https://github.com/sponsors/sindresorhus" } @@ -6373,8 +6457,9 @@ } }, "node_modules/mini-css-extract-plugin": { - "version": "2.9.1", - "license": "MIT", + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz", + "integrity": "sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w==", "dependencies": { "schema-utils": "^4.0.0", "tapable": "^2.2.1" @@ -6689,11 +6774,12 @@ } }, "node_modules/mongodb": { - "version": "6.3.0", - "license": "Apache-2.0", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.11.0.tgz", + "integrity": "sha512-yVbPw0qT268YKhG241vAMLaDQAPbRyTgo++odSgGc9kXnzOujQI60Iyj23B9sQQFPSvmNPvMZ3dsFz0aN55KgA==", "dependencies": { - "@mongodb-js/saslprep": "^1.1.0", - "bson": "^6.2.0", + "@mongodb-js/saslprep": "^1.1.9", + "bson": "^6.10.0", "mongodb-connection-string-url": "^3.0.0" }, "engines": { @@ -6732,56 +6818,15 @@ } } }, - "node_modules/mongodb/node_modules/@types/whatwg-url": { - "version": "11.0.4", - "license": "MIT", - "dependencies": { - "@types/webidl-conversions": "*" - } - }, - "node_modules/mongodb/node_modules/bson": { - "version": "6.2.0", - "license": "Apache-2.0", - "engines": { - "node": ">=16.20.1" - } - }, - "node_modules/mongodb/node_modules/mongodb-connection-string-url": { - "version": "3.0.0", - "license": "Apache-2.0", + "node_modules/mongodb-connection-string-url": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.1.tgz", + "integrity": "sha512-XqMGwRX0Lgn05TDB4PyG2h2kKO/FfWJyCzYQbIhXUxz7ETt0I/FqHjUeqj37irJ+Dl1ZtU82uYyj14u2XsZKfg==", "dependencies": { "@types/whatwg-url": "^11.0.2", "whatwg-url": "^13.0.0" } }, - "node_modules/mongodb/node_modules/punycode": { - "version": "2.3.1", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/mongodb/node_modules/tr46": { - "version": "4.1.1", - "license": "MIT", - "dependencies": { - "punycode": "^2.3.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/mongodb/node_modules/whatwg-url": { - "version": "13.0.0", - "license": "MIT", - "dependencies": { - "tr46": "^4.1.1", - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=16" - } - }, "node_modules/ms": { "version": "2.0.0", "license": "MIT" @@ -6832,7 +6877,8 @@ }, "node_modules/node-addon-api": { "version": "7.1.1", - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/node-cache": { "version": "5.1.2", @@ -6896,8 +6942,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.14", - "license": "MIT" + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==" }, "node_modules/node-schedule": { "version": "2.1.1", @@ -8204,7 +8251,8 @@ }, "node_modules/proxy-addr": { "version": "2.0.7", - "license": "MIT", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" @@ -8231,8 +8279,9 @@ "license": "MIT" }, "node_modules/punycode": { - "version": "2.1.1", - "license": "MIT", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "engines": { "node": ">=6" } @@ -8284,7 +8333,8 @@ }, "node_modules/range-parser": { "version": "1.2.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "engines": { "node": ">= 0.6" } @@ -8333,10 +8383,6 @@ "node": ">=0.10.0" } }, - "node_modules/raw-body/node_modules/setprototypeof": { - "version": "1.2.0", - "license": "ISC" - }, "node_modules/raw-body/node_modules/statuses": { "version": "2.0.1", "license": "MIT", @@ -8622,7 +8668,8 @@ }, "node_modules/rndm": { "version": "1.2.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/rndm/-/rndm-1.2.0.tgz", + "integrity": "sha512-fJhQQI5tLrQvYIYFpOnFinzv9dwmR7hRnUz1XqP3OJ1jIweTNOd6aTO4jwQSgcBSFUB+/KHJxuGneime+FdzOw==" }, "node_modules/ro-crate": { "version": "3.3.10", @@ -8711,9 +8758,11 @@ "license": "MIT" }, "node_modules/sails": { - "version": "1.5.12", - "license": "MIT", + "version": "1.5.14", + "resolved": "https://registry.npmjs.org/sails/-/sails-1.5.14.tgz", + "integrity": "sha512-u4EOT94me18E2MRJtumorgRS+b0TiBLdnAj2WIKmy4mYvc/SNuzcs8Fd/HCmqw979MwQb8hYdwnpwaSBdNaIDg==", "dependencies": { + "@sailshq/csurf": "1.11.1", "@sailshq/lodash": "^3.10.6", "@sailshq/router": "^1.3.9", "async": "2.6.4", @@ -8723,13 +8772,12 @@ "common-js-file-extensions": "1.0.2", "compression": "1.7.1", "connect": "3.6.5", - "cookie": "0.4.0", - "cookie-parser": "1.4.4", + "cookie": "0.7.2", + "cookie-parser": "1.4.7", "cookie-signature": "1.1.0", - "csurf": "1.10.0", "ejs": "3.1.10", - "express": "4.21.0", - "express-session": "1.17.0", + "express": "4.21.2", + "express-session": "1.18.1", "flaverr": "^1.10.0", "glob": "7.1.2", "i18n-2": "0.7.3", @@ -9012,6 +9060,51 @@ "version": "3.2.4", "license": "MIT" }, + "node_modules/sails-mongo/node_modules/mongodb": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.3.0.tgz", + "integrity": "sha512-tt0KuGjGtLUhLoU263+xvQmPHEGTw5LbcNC73EoFRYgSHwZt5tsoJC110hDyO1kjQzpgNrpdcSza9PknWN4LrA==", + "dependencies": { + "@mongodb-js/saslprep": "^1.1.0", + "bson": "^6.2.0", + "mongodb-connection-string-url": "^3.0.0" + }, + "engines": { + "node": ">=16.20.1" + }, + "peerDependencies": { + "@aws-sdk/credential-providers": "^3.188.0", + "@mongodb-js/zstd": "^1.1.0", + "gcp-metadata": "^5.2.0", + "kerberos": "^2.0.1", + "mongodb-client-encryption": ">=6.0.0 <7", + "snappy": "^7.2.2", + "socks": "^2.7.1" + }, + "peerDependenciesMeta": { + "@aws-sdk/credential-providers": { + "optional": true + }, + "@mongodb-js/zstd": { + "optional": true + }, + "gcp-metadata": { + "optional": true + }, + "kerberos": { + "optional": true + }, + "mongodb-client-encryption": { + "optional": true + }, + "snappy": { + "optional": true + }, + "socks": { + "optional": true + } + } + }, "node_modules/sails-mongo/node_modules/qs": { "version": "6.9.7", "license": "BSD-3-Clause", @@ -9079,8 +9172,9 @@ "license": "MIT" }, "node_modules/sails/node_modules/cookie": { - "version": "0.4.0", - "license": "MIT", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", "engines": { "node": ">= 0.6" } @@ -9092,41 +9186,6 @@ "node": ">=6.6.0" } }, - "node_modules/sails/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/sails/node_modules/express-session": { - "version": "1.17.0", - "license": "MIT", - "dependencies": { - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~2.0.0", - "on-headers": "~1.0.2", - "parseurl": "~1.3.3", - "safe-buffer": "5.2.0", - "uid-safe": "~2.1.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/sails/node_modules/express-session/node_modules/cookie-signature": { - "version": "1.0.6", - "license": "MIT" - }, - "node_modules/sails/node_modules/express-session/node_modules/parseurl": { - "version": "1.3.3", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/sails/node_modules/glob": { "version": "7.1.2", "license": "ISC", @@ -9163,10 +9222,6 @@ "node": ">= 0.8" } }, - "node_modules/sails/node_modules/safe-buffer": { - "version": "5.2.0", - "license": "MIT" - }, "node_modules/sails/node_modules/supports-color": { "version": "4.5.0", "license": "MIT", @@ -9189,13 +9244,13 @@ } }, "node_modules/sass": { - "version": "1.80.5", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.80.5.tgz", - "integrity": "sha512-TQd2aoQl/+zsxRMEDSxVdpPIqeq9UFc6pr7PzkugiTx3VYCFPUaa3P4RrBQsqok4PO200Vkz0vXQBNlg7W907g==", + "version": "1.82.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.82.0.tgz", + "integrity": "sha512-j4GMCTa8elGyN9A7x7bEglx0VgSpNUG4W4wNedQ33wSMdnkqQCT8HTwOaVSV4e6yQovcu/3Oc4coJP/l0xhL2Q==", + "license": "MIT", "dependencies": { - "@parcel/watcher": "^2.4.1", "chokidar": "^4.0.0", - "immutable": "^4.0.0", + "immutable": "^5.0.2", "source-map-js": ">=0.6.2 <2.0.0" }, "bin": { @@ -9203,11 +9258,15 @@ }, "engines": { "node": ">=14.0.0" + }, + "optionalDependencies": { + "@parcel/watcher": "^2.4.1" } }, "node_modules/sass-loader": { - "version": "16.0.2", - "license": "MIT", + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.4.tgz", + "integrity": "sha512-LavLbgbBGUt3wCiYzhuLLu65+fWXaXLmq7YxivLhEqmiupCFZ5sKUAipK3do6V80YSU0jvSxNhEdT13IXNr3rg==", "dependencies": { "neo-async": "^2.6.2" }, @@ -9279,7 +9338,8 @@ }, "node_modules/send": { "version": "0.19.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", @@ -9301,18 +9361,21 @@ }, "node_modules/send/node_modules/debug": { "version": "2.6.9", - "license": "MIT", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dependencies": { "ms": "2.0.0" } }, "node_modules/send/node_modules/debug/node_modules/ms": { "version": "2.0.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/send/node_modules/http-errors": { "version": "2.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", @@ -9326,11 +9389,13 @@ }, "node_modules/send/node_modules/ms": { "version": "2.1.3", - "license": "MIT" + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, "node_modules/send/node_modules/on-finished": { "version": "2.4.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dependencies": { "ee-first": "1.1.1" }, @@ -9338,20 +9403,18 @@ "node": ">= 0.8" } }, - "node_modules/send/node_modules/setprototypeof": { - "version": "1.2.0", - "license": "ISC" - }, "node_modules/send/node_modules/statuses": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "engines": { "node": ">= 0.8" } }, "node_modules/send/node_modules/toidentifier": { "version": "1.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "engines": { "node": ">=0.6" } @@ -9383,7 +9446,8 @@ }, "node_modules/serve-static": { "version": "1.16.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", "dependencies": { "encodeurl": "~2.0.0", "escape-html": "~1.0.3", @@ -9396,7 +9460,8 @@ }, "node_modules/serve-static/node_modules/encodeurl": { "version": "2.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "engines": { "node": ">= 0.8" } @@ -9421,8 +9486,9 @@ } }, "node_modules/setprototypeof": { - "version": "1.1.1", - "license": "ISC" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, "node_modules/shebang-command": { "version": "2.0.0", @@ -10388,7 +10454,8 @@ }, "node_modules/toidentifier": { "version": "1.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", "engines": { "node": ">=0.6" } @@ -10404,6 +10471,17 @@ "node": ">=0.8" } }, + "node_modules/tr46": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", + "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", + "dependencies": { + "punycode": "^2.3.0" + }, + "engines": { + "node": ">=14" + } + }, "node_modules/triple-beam": { "version": "1.4.1", "license": "MIT", @@ -10458,7 +10536,8 @@ }, "node_modules/tsscmp": { "version": "1.0.6", - "license": "MIT", + "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", + "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", "engines": { "node": ">=0.6.x" } @@ -10696,7 +10775,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.13", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", "funding": [ { "type": "opencollective", @@ -10711,10 +10792,9 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.2.0", + "picocolors": "^1.1.0" }, "bin": { "update-browserslist-db": "cli.js" @@ -10906,22 +10986,24 @@ }, "node_modules/webidl-conversions": { "version": "7.0.0", - "license": "BSD-2-Clause", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", "engines": { "node": ">=12" } }, "node_modules/webpack": { - "version": "5.95.0", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.5", - "@webassemblyjs/ast": "^1.12.1", - "@webassemblyjs/wasm-edit": "^1.12.1", - "@webassemblyjs/wasm-parser": "^1.12.1", - "acorn": "^8.7.1", - "acorn-import-attributes": "^1.9.5", - "browserslist": "^4.21.10", + "version": "5.97.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.97.1.tgz", + "integrity": "sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg==", + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.6", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.14.0", + "browserslist": "^4.24.0", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.17.1", "es-module-lexer": "^1.2.1", @@ -11053,6 +11135,18 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/whatwg-url": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-13.0.0.tgz", + "integrity": "sha512-9WWbymnqj57+XEuqADHrCJ2eSXzn8WXIW/YSGaZtb2WKAInQ6CHfaUUcTyyver0p8BDg5StLQq8h1vtZuwmOig==", + "dependencies": { + "tr46": "^4.1.1", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=16" + } + }, "node_modules/whelk": { "version": "6.0.1", "license": "MIT", diff --git a/package.json b/package.json index cba79adb3..47b9b044d 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "css-loader": "^7.1.2", "css-minimizer-webpack-plugin": "^7.0.0", "csv-parser": "^3.0.0", - "csv-stringify": "^6.5.1", + "csv-stringify": "^6.5.2", "dotenv": "^16.4.5", "ejs": "3.1.10", "express-session": "^1.18.1", @@ -35,7 +35,7 @@ "genson-js": "^0.0.8", "glob": "^11.0.0", "har-validator": "5.1.5", - "i18next": "^23.16.4", + "i18next": "^24.0.5", "i18next-fs-backend": "^2.3.2", "include-all": "^4.0.3", "jquery": "^3.7.1", @@ -46,9 +46,9 @@ "lodash-es": "^4.17.21", "lucene-escape-query": "^1.0.1", "luxon": "^3.5.0", - "mini-css-extract-plugin": "^2.9.1", + "mini-css-extract-plugin": "^2.9.2", "moment": "^2.30.1", - "mongodb": "^6.3.0", + "mongodb": "^6.11.0", "node-cache": "^5.1.2", "node-schedule": "^2.1.1", "nodemailer": "^6.9.16", @@ -64,12 +64,12 @@ "redux": "5.0.1", "rxjs": "6.6.2", "rxjs-compat": "6.6.7", - "sails": "^1.5.12", + "sails": "^1.5.14", "sails-hook-orm": "^4.0.3", "sails-hook-sockets": "^3.0.1", "sails-mongo": "^2.1.2", - "sass": "^1.80.5", - "sass-loader": "^16.0.2", + "sass": "^1.82.0", + "sass-loader": "^16.0.4", "skipper": "^0.9.5", "skipper-gridfs": "^1.0.2", "solr-client": "^0.9.0", @@ -81,7 +81,7 @@ "typescript-json-schema": "^0.65.1", "typescript-require": "~0.3.0", "url-pattern": "^1.0.3", - "webpack": "^5.95.0", + "webpack": "^5.97.1", "wkt-parser-helper": "^4.2.0", "zone.js": "^0.15.0" }, diff --git a/test/unit/services/TriggerService.test.js b/test/unit/services/TriggerService.test.js index 8b8db10d3..266411c5d 100644 --- a/test/unit/services/TriggerService.test.js +++ b/test/unit/services/TriggerService.test.js @@ -13,6 +13,7 @@ describe('The TriggerService', function () { fieldLanguageCode: "title-required", arrayObjFieldDBName: 'row-item', trimLeadingAndTrailingSpacesBeforeValidation: true, + forceRun: true // caseSensitive: true, - default // allowNulls: true, - default }; @@ -31,6 +32,7 @@ describe('The TriggerService', function () { trimLeadingAndTrailingSpacesBeforeValidation: false, caseSensitive: true, allowNulls: false, + forceRun: true }; try { await TriggerService.validateFieldUsingRegex(oid, record, options); @@ -55,6 +57,7 @@ describe('The TriggerService', function () { trimLeadingAndTrailingSpacesBeforeValidation: false, caseSensitive: false, allowNulls: true, + forceRun: true }; try { @@ -77,6 +80,7 @@ describe('The TriggerService', function () { trimLeadingAndTrailingSpacesBeforeValidation: false, caseSensitive: false, allowNulls: true, + forceRun: true }; const result = await TriggerService.validateFieldUsingRegex(oid, record, options); expect(result).to.eql(record); @@ -92,6 +96,7 @@ describe('The TriggerService', function () { trimLeadingAndTrailingSpacesBeforeValidation: false, caseSensitive: false, allowNulls: false, + forceRun: true }; try { await TriggerService.validateFieldUsingRegex(oid, record, options); @@ -103,4 +108,51 @@ describe('The TriggerService', function () { } }); }); + + + describe('should validate fields using lodash template', function () { + it('valid value passes', async function () { + const oid = "triggerservice-template-validpasses"; + const record = {'testing-field': 'valid-value'}; + const options = { + template: `<% let errorList = [] + if (_.get(record,'testing-field') !== 'valid-value') { + addError(errorList, 'testing-field', 'title-required', 'invalid-format' ); + } + return errorList; %>`, + forceRun: true + }; + + try { + const result = await TriggerService.validateFieldsUsingTemplate(oid, record, options); + expect(result).to.eql({'testing-field': 'valid-value'}); + } catch (err) { + expect.fail("Should not have thrown error"); + } + + }); + + it('invalid value fails', async function () { + const oid = "triggerservice-template-validpasses"; + const record = {'testing-field': 'invalid-value'}; + const options = { + template: `<% let errorList = [] + if (_.get(record,'testing-field') !== 'valid-value') { + addError(errorList, 'testing-field', 'title-required', 'invalid-format' ); + } + return errorList; %>`, + forceRun: true + }; + try { + const result = await TriggerService.validateFieldsUsingTemplate(oid, record, options); + } catch (err) { + expect(err).to.be.an('error'); + expect(err.name).to.eq("RBValidationError"); + const errorMap = JSON.parse(err.message) + expect(errorMap.errorFieldList[0].label).to.eq("Title is required"); + } + + }); + + }); }); \ No newline at end of file diff --git a/typescript/api/controllers/webservice/RecordController.ts b/typescript/api/controllers/webservice/RecordController.ts index 92c5f60a2..9bba1409e 100644 --- a/typescript/api/controllers/webservice/RecordController.ts +++ b/typescript/api/controllers/webservice/RecordController.ts @@ -422,6 +422,13 @@ export module Controllers { authorizationEdit.push(req.user.username); authorizationView.push(req.user.username); } + const authorization = { + edit: authorizationEdit, + view: authorizationView, + editPending: authorizationEditPending, + viewPending: authorizationViewPending + } + var recordTypeObservable = RecordTypesService.get(brand, recordType); recordTypeObservable.subscribe(recordTypeModel => { @@ -436,6 +443,8 @@ export module Controllers { } else { request["metadata"] = metadata; } + request["authorization"] = authorization; + let createPromise = this.RecordsService.create(brand, request, recordTypeModel, user); var obs = Observable.fromPromise(createPromise); diff --git a/typescript/api/services/RecordsService.ts b/typescript/api/services/RecordsService.ts index 26e91581e..7ddb2feb3 100644 --- a/typescript/api/services/RecordsService.ts +++ b/typescript/api/services/RecordsService.ts @@ -384,14 +384,6 @@ export module Services { } } - if (metadata.delete) { - //TODO - this code is deprecated and will be removed in next version - sails.log.error('RecordService - updateMeta - Delete record not allowed onSubmit record action'); - updateResponse.success = false; - updateResponse.message = 'Delete record not allowed onSubmit record action'; - return updateResponse; - } - let form = await FormsService.getFormByName(record.metaMetadata.form, true).toPromise() record.metaMetadata.attachmentFields = form != undefined ? form.attachmentFields : []; diff --git a/typescript/api/services/TriggerService.ts b/typescript/api/services/TriggerService.ts index 102d1a432..ad6d2db9a 100644 --- a/typescript/api/services/TriggerService.ts +++ b/typescript/api/services/TriggerService.ts @@ -22,6 +22,7 @@ import { RBValidationError, BrandingModel, Services as services, + PopulateExportedMethods, } from '@researchdatabox/redbox-core-types'; import { Sails, Model } from "sails"; import { default as moment } from 'moment'; @@ -43,16 +44,9 @@ export module Services { * Author: Shilo Banihit * */ + @PopulateExportedMethods export class Trigger extends services.Core.Service { - protected _exportedMethods: any = [ - 'transitionWorkflow', - 'runHooksSync', - 'validateFieldUsingRegex', - 'applyFieldLevelPermissions', - 'validateFieldMapUsingRegex', - 'runTemplatesOnRelatedRecord' - ]; /** * Used in changing the workflow stages automatically based on configuration. @@ -285,6 +279,82 @@ export module Services { return record; } + /** + * Trigger function that will run a lodash template that can be used to validate a record. + * The trigger expects the template to return an array of error objects of the format: + * { + * name: 'the field name that is in validation error', + * label: 'the human readable label for the field', + * error: 'optional error message' + * } + * + * An empty array should be returned if no errors are found. + * + * @param oid + * @param record + * @param options + * @returns + */ + public async validateFieldsUsingTemplate(oid, record, options) { + sails.log.verbose('validateFieldsUsingTemplate - enter'); + if (this.metTriggerCondition(oid, record, options) === "true") { + + sails.log.verbose('validateFieldsUsingTemplate - metTriggerCondition'); + + + const getErrorMessage = function (errorLanguageCode: string) { + let baseErrorMessage = TranslationService.t(errorLanguageCode); + return baseErrorMessage; + } + + const addError = function (errorFieldList, name, label, errorLabel) { + let errorField:any = {}; + _.set(errorField,'name', name); + _.set(errorField,'label',getErrorMessage(label)); + let error = getErrorMessage(errorLabel); + if(error != '') { + _.set(errorField,'error',error); + } + errorFieldList.push(errorField); + } + + let template = _.get(options,'template',"<% return []; %>"); + + const imports = { + moment: moment, + numeral: numeral, + _ : _, + TranslationService: TranslationService + } + + let altErrorMessage = _.get(options,'altErrorMessage',[]); + + if(_.isString(template)) { + const compiledTemplate = _.template(template, imports); + options.template = compiledTemplate; + template = compiledTemplate; + } + + const errorFieldList = template({oid:oid, record: record, options: options, addError: addError, + getErrorMessage: getErrorMessage}); + + + const errorMap = { + altErrorMessage: altErrorMessage, + errorFieldList: errorFieldList + }; + + if(!_.isEmpty(errorMap.errorFieldList)) { + let customError: RBValidationError; + customError = new RBValidationError(JSON.stringify(errorMap)); + throw customError; + } + + sails.log.debug('validateFieldsUsingTemplate data value passed check'); + } + return record; + } + public async validateFieldMapUsingRegex(oid, record, options) { sails.log.verbose('validateFieldMapUsingRegex - enter'); if (this.metTriggerCondition(oid, record, options) === "true") {