diff --git a/.babelrc b/.babelrc
new file mode 100644
index 000000000..002c9ec65
--- /dev/null
+++ b/.babelrc
@@ -0,0 +1,22 @@
+{
+ "presets": ["@babel/preset-env"],
+ "plugins": [
+ "@babel/plugin-transform-async-to-generator",
+ [
+ "@babel/plugin-transform-runtime",
+ {
+ "corejs": false,
+ "helpers": true,
+ "regenerator": true,
+ "useESModules": false
+ }
+ ],
+ [
+ "module-resolver",
+ {
+ "root": "./src"
+ }
+ ]
+ ],
+ "ignore": ["**/*.test.js", "**/*.spec.js", "src/test/**"]
+}
diff --git a/.eslintrc b/.eslintrc
new file mode 100644
index 000000000..69f44b591
--- /dev/null
+++ b/.eslintrc
@@ -0,0 +1,53 @@
+{
+ "extends": ["eslint:recommended", "airbnb-base", "prettier"],
+ "parser": "@babel/eslint-parser",
+ "parserOptions": {
+ "ecmaVersion": 8,
+ "sourceType": "module",
+ "requireConfigFile": false,
+ "babelOptions": {
+ "plugins": [
+ [
+ "module-resolver",
+ {
+ "root": ["./src"]
+ }
+ ]
+ ]
+ }
+ },
+ "env": { "es6": true, "node": true, "commonjs": true },
+ "rules": {
+ "global-require": "off",
+ "func-names": "off",
+ "no-underscore-dangle": "off",
+ "no-param-reassign": "off",
+ "max-len": "off",
+ "no-continue": "warn",
+ "no-await-in-loop": "warn",
+ "template-curly-spacing": "off",
+ "indent": "off",
+ "linebreak-style": 0,
+ "no-console": "off",
+ "consistent-return": "off"
+ },
+ "settings": {
+ "import/resolver": {
+ "babel-module": {
+ "root": ["./src"]
+ },
+ "node": {
+ "paths": ["src"],
+ "extensions": [".js", ".jsx"]
+ }
+ }
+ },
+ "overrides": [
+ {
+ "files": ["**/*.test.js", "**/*.spec.js", "src/test/*.js"],
+ "env": {
+ "jest": true
+ }
+ }
+ ]
+}
diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml
index 6b766dff0..aa6932680 100644
--- a/.github/workflows/node.js.yml
+++ b/.github/workflows/node.js.yml
@@ -78,4 +78,4 @@ jobs:
uses: actions/upload-artifact@v4
with:
name: backend-coverage-report
- path: coverage/
\ No newline at end of file
+ path: coverage/
diff --git a/PR_DESCRIPTION.md b/PR_DESCRIPTION.md
new file mode 100644
index 000000000..288cf29d0
--- /dev/null
+++ b/PR_DESCRIPTION.md
@@ -0,0 +1,55 @@
+# Description
+Fixes issue where the "Longest Open Issues" chart was limiting results to only 7 issues when multiple projects were selected, causing some issues to be hidden. Also fixes issue numbering consistency when multiple projects are selected.
+
+Fixes #4301 (Phase 2 Bugs - Priority Medium)
+
+## Related PRs (if any):
+Related to Frontend PR: #4653
+To test this backend PR, you need to checkout the corresponding frontend PR branch.
+
+## Main changes explained:
+- **Updated `bmIssueController.js`** - `getLongestOpenIssues` function:
+ - Removed `.slice(0, 7)` limit to return all issues from selected projects instead of just top 7
+ - Added `issueId` to response (MongoDB `_id` as string) for consistent issue identification
+ - Added `projectId` to response to enable per-project issue numbering
+ - Added `projectName` to response to distinguish issues across projects
+ - Updated query to select `_id` field along with `issueTitle` and `issueDate`
+ - Handle empty `issueTitle` arrays by returning `null` instead of `undefined`
+
+## How to test:
+1. Checkout branch `vamsidhar-fix/issue-chart-all-issues-visible`
+2. Run `npm run build` to compile the changes
+3. Restart the backend server
+4. Ensure the frontend is running with the corresponding frontend PR branch
+5. Navigate to BMDashboard → Issues → Longest Open Issues chart
+6. **Test Scenario 1: Select only "Building 3"**
+ - Should show all Building 3 issues (e.g., "Paint Peeling in Conference Room", "Issue #1", "Issue #2", "Issue #3", "Issue #4")
+ - Verify all issues are displayed, not limited to 7
+7. **Test Scenario 2: Select "Building 3" and "Building 1" together**
+ - Should show ALL issues from both projects (not limited to 7)
+ - Should include all Building 3 issues (Issue #1, #2, #3, #4) AND all Building 1 issues
+ - Verify no issues are missing compared to when selecting projects individually
+ - Check backend console logs - should see: `[getLongestOpenIssues] Total issues found: X, Returning: X issues` where X is the total count (should be more than 7 for multiple projects)
+8. **Test Scenario 3: Select multiple projects with many issues**
+ - Verify all issues are displayed, sorted by duration (longest first)
+ - Check backend console logs to verify the count of issues being returned
+ - Verify the response includes `issueId`, `projectId`, and `projectName` fields for each issue
+
+## Expected behavior:
+- When selecting multiple projects, ALL issues from all selected projects should be visible
+- Issues should be sorted by duration (longest open first)
+- No limit on the number of issues displayed
+- Each issue should have a unique `issueId` for consistent identification
+- Response should include `projectId` and `projectName` for frontend processing
+
+## Technical details:
+- The API endpoint `/bm/issues/longest-open` now returns all matching issues instead of limiting to 7
+- Response includes `issueId`, `projectId`, and `projectName` fields for frontend processing
+- Issues with empty `issueTitle` arrays return `null` for `issueName` (frontend will generate names)
+- Debug logging added to verify issue counts in console
+
+## Note:
+This PR only includes backend changes. The frontend PR (#4653) will handle:
+- Using `issueId` for consistent issue numbering
+- Per-project issue numbering to avoid conflicts
+- Prefixing unnamed issues with project name when multiple projects are selected
diff --git a/babel.config.js b/babel.config.js
index e3f2b5084..02b1b60d8 100644
--- a/babel.config.js
+++ b/babel.config.js
@@ -10,6 +10,7 @@ module.exports = {
useESModules: false,
},
],
+ ['@babel/plugin-transform-logical-assignment-operators'], // <-- needed for ||= and ??=
['module-resolver', { root: './src' }],
],
ignore: ['**/*.test.js', '**/*.spec.js', 'src/test/**'],
diff --git a/git b/git
new file mode 100644
index 000000000..e69de29bb
diff --git a/package-lock.json b/package-lock.json
index b8971dd1b..8903fbe8c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -7,6 +7,7 @@
"": {
"name": "hgnrest",
"version": "1.0.0",
+ "hasInstallScript": true,
"license": "ISC",
"dependencies": {
"@aws-sdk/client-s3": "^3.920.0",
@@ -14,6 +15,7 @@
"@babel/cli": "^7.15.4",
"@babel/core": "^7.10.2",
"@babel/node": "^7.14.9",
+ "@babel/plugin-transform-async-to-generator": "^7.10.1",
"@babel/plugin-transform-runtime": "^7.10.1",
"@babel/preset-env": "^7.10.2",
"@babel/runtime": "^7.10.2",
@@ -31,6 +33,7 @@
"body-parser": "^1.20.4",
"card-validator": "^10.0.2",
"cheerio": "^0.22.0",
+ "cloudinary": "^2.8.0",
"compression": "^1.8.0",
"cors": "^2.8.4",
"cron": "^1.8.2",
@@ -40,6 +43,7 @@
"express": "^4.22.1",
"express-validator": "^7.0.1",
"express-ws": "^5.0.2",
+ "form-data": "^4.0.5",
"geoip-lite": "^1.4.10",
"googleapis": "^100.0.0",
"isomorphic-fetch": "^3.0.0",
@@ -47,6 +51,8 @@
"json2csv": "^6.0.0-alpha.2",
"jsonwebtoken": "^9.0.0",
"lodash": "^4.17.21",
+ "masto": "^7.4.0",
+ "mastodon-api": "^1.3.0",
"moment": "^2.29.4",
"moment-timezone": "^0.5.35",
"mongodb": "^3.7.3",
@@ -57,6 +63,7 @@
"node-cron": "^3.0.3",
"node-datetime": "^2.0.3",
"node-fetch": "^2.6.7",
+ "node-schedule": "^2.1.1",
"nodemailer": "^7.0.11",
"parse-link-header": "^2.0.0",
"pdfkit": "^0.17.2",
@@ -65,14 +72,17 @@
"sanitize-html": "^2.16.0",
"sharp": "^0.34.5",
"socket.io": "^4.8.1",
+ "streamifier": "^0.1.1",
"supertest": "^6.3.4",
"telesignsdk": "^3.0.3",
"twilio": "^5.5.2",
"uuid": "^3.4.0",
- "ws": "^8.17.1"
+ "ws": "^8.17.1",
+ "xmlrpc": "^1.3.2"
},
"devDependencies": {
"@babel/eslint-parser": "^7.15.0",
+ "@babel/plugin-proposal-logical-assignment-operators": "^7.20.7",
"@types/bson": "^4.2.4",
"@types/compression": "^1.7.5",
"@types/express": "^4.17.6",
@@ -84,6 +94,7 @@
"eslint-config-airbnb": "^19.0.4",
"eslint-config-airbnb-base": "^15.0.0",
"eslint-config-prettier": "^9.1.0",
+ "eslint-import-resolver-babel-module": "^5.3.2",
"eslint-plugin-import": "^2.28.0",
"eslint-plugin-jsx-a11y": "^6.7.1",
"eslint-plugin-react": "^7.33.1",
@@ -98,11 +109,13 @@
"supertest": "^6.3.4"
},
"engines": {
- "node": ">=20.0.0 <21"
+ "node": ">=20"
}
},
"node_modules/@apimatic/authentication-adapters": {
"version": "0.5.14",
+ "resolved": "https://registry.npmjs.org/@apimatic/authentication-adapters/-/authentication-adapters-0.5.14.tgz",
+ "integrity": "sha512-V7nhHShPrU8LfjKKHoVJNS50SveSL77CexVuS4aeQyXx99HwdQVJwl2MK0KAYM6/b2ufQbJ7Eee2fzQT0TVXSQ==",
"license": "MIT",
"dependencies": {
"@apimatic/core-interfaces": "^0.2.14",
@@ -115,16 +128,18 @@
}
},
"node_modules/@apimatic/axios-client-adapter": {
- "version": "0.3.20",
+ "version": "0.3.21",
+ "resolved": "https://registry.npmjs.org/@apimatic/axios-client-adapter/-/axios-client-adapter-0.3.21.tgz",
+ "integrity": "sha512-pr/XvAvH9FjbpwM+B7vHQxM7alocOX1kLNtSpXKW3yxTYxksF3ydnUuQ85rRbCoNpyfMOIjnRBCNUBzX5p2Hnw==",
"license": "MIT",
"dependencies": {
- "@apimatic/convert-to-stream": "^0.1.8",
+ "@apimatic/convert-to-stream": "^0.1.9",
"@apimatic/core-interfaces": "^0.2.14",
"@apimatic/file-wrapper": "^0.3.9",
"@apimatic/http-headers": "^0.3.8",
"@apimatic/http-query": "^0.3.9",
"@apimatic/json-bigint": "^1.2.0",
- "@apimatic/proxy": "^0.1.3",
+ "@apimatic/proxy": "^0.1.4",
"axios": "^1.8.4",
"detect-browser": "^5.3.0",
"detect-node": "^2.1.0",
@@ -138,8 +153,10 @@
}
},
"node_modules/@apimatic/convert-to-stream": {
- "version": "0.1.8",
- "license": "ISC",
+ "version": "0.1.9",
+ "resolved": "https://registry.npmjs.org/@apimatic/convert-to-stream/-/convert-to-stream-0.1.9.tgz",
+ "integrity": "sha512-C9NEKnDZoTRBRVeUGXVyAEmy6P5o+8oLwEckTKj0iBlExJLEXNt14nf4wxfzRO1KR8j5Bw8S6yStKCrQzcVERA==",
+ "license": "MIT",
"dependencies": {
"tslib": "2.8.1"
},
@@ -148,10 +165,12 @@
}
},
"node_modules/@apimatic/core": {
- "version": "0.10.28",
+ "version": "0.10.29",
+ "resolved": "https://registry.npmjs.org/@apimatic/core/-/core-0.10.29.tgz",
+ "integrity": "sha512-QhORiq0QbjlDMrw8ZZsAeG2DzE6QgGz5ukD5w2MOWE/3iIWnUDEROjmc2SfhyiGsE3GoEJ8cyhMMdjlOioP6ww==",
"license": "MIT",
"dependencies": {
- "@apimatic/convert-to-stream": "^0.1.8",
+ "@apimatic/convert-to-stream": "^0.1.9",
"@apimatic/core-interfaces": "^0.2.14",
"@apimatic/file-wrapper": "^0.3.9",
"@apimatic/http-headers": "^0.3.8",
@@ -172,6 +191,8 @@
},
"node_modules/@apimatic/core-interfaces": {
"version": "0.2.14",
+ "resolved": "https://registry.npmjs.org/@apimatic/core-interfaces/-/core-interfaces-0.2.14.tgz",
+ "integrity": "sha512-PQmSU32ndxtDddMCjbkNY/sVvDwQAsHUGKrdG5aGVE7iw/qvB2Tm2zyCarOB5TlDr4OB+/tuLCVhji0icx6MHg==",
"license": "MIT",
"dependencies": {
"@apimatic/file-wrapper": "^0.3.9",
@@ -184,6 +205,8 @@
},
"node_modules/@apimatic/file-wrapper": {
"version": "0.3.9",
+ "resolved": "https://registry.npmjs.org/@apimatic/file-wrapper/-/file-wrapper-0.3.9.tgz",
+ "integrity": "sha512-Fh3UE7UPs2v4wkJdsD+uJFF147+7X0qkQfKBdeLZx6mZ5RmBJOBbS6ApvstQTV279YsHiiedKUZGJ6XLoVU+pQ==",
"license": "MIT",
"dependencies": {
"tslib": "2.8.1"
@@ -194,6 +217,8 @@
},
"node_modules/@apimatic/http-headers": {
"version": "0.3.8",
+ "resolved": "https://registry.npmjs.org/@apimatic/http-headers/-/http-headers-0.3.8.tgz",
+ "integrity": "sha512-ShvCuT39hYfBTI+H1I16m5i6XZCyUy2kQJ6Jhfj78TwsW5r6AyCbzW7DEro8GN2nNYRU1+E/hrgH6J85YmriOA==",
"license": "MIT",
"dependencies": {
"tslib": "2.8.1"
@@ -204,6 +229,8 @@
},
"node_modules/@apimatic/http-query": {
"version": "0.3.9",
+ "resolved": "https://registry.npmjs.org/@apimatic/http-query/-/http-query-0.3.9.tgz",
+ "integrity": "sha512-D6nqXcCR3P6iWbJ9uFXyyF2z1PEhTbGFbHNNuwF1NQ4tnThQk67DW9ou7/XcWi21zLh9MUchDWw9I0iE+5F2xA==",
"license": "MIT",
"dependencies": {
"@apimatic/core-interfaces": "^0.2.14",
@@ -216,10 +243,14 @@
},
"node_modules/@apimatic/json-bigint": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@apimatic/json-bigint/-/json-bigint-1.2.0.tgz",
+ "integrity": "sha512-+bmVzYMdZu0Ya5L+my4FXFUih54OvQA/qlZsFOYdOoostyUuB27UDrVWQs/WVCmS0ADdo5vTU0eeTrrBkHoySw==",
"license": "MIT"
},
"node_modules/@apimatic/oauth-adapters": {
"version": "0.4.18",
+ "resolved": "https://registry.npmjs.org/@apimatic/oauth-adapters/-/oauth-adapters-0.4.18.tgz",
+ "integrity": "sha512-MpRyBgKWg3yINQR85tBPmtU/596P0gdj4RmQ3s4D1LRuwDzqRO8GpRq74J8hxQ7vLQvH0OfGh6zzhr1KI4dQRQ==",
"license": "MIT",
"dependencies": {
"@apimatic/core-interfaces": "^0.2.14",
@@ -232,8 +263,10 @@
}
},
"node_modules/@apimatic/proxy": {
- "version": "0.1.3",
- "license": "ISC",
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/@apimatic/proxy/-/proxy-0.1.4.tgz",
+ "integrity": "sha512-Vzgfu7wcA5aEJyj2SjQ00Tb06fhBof8gDo1kSsF6sZBm4QjdFywN5AMbQwhfFOKjHqcsNmJspdeqcdymUQ77jA==",
+ "license": "MIT",
"dependencies": {
"http-proxy-agent": "^7.0.2",
"https-proxy-agent": "^7.0.6"
@@ -244,6 +277,8 @@
},
"node_modules/@apimatic/schema": {
"version": "0.7.21",
+ "resolved": "https://registry.npmjs.org/@apimatic/schema/-/schema-0.7.21.tgz",
+ "integrity": "sha512-RCke4toXjA7fBRxQVa1GR+Lj9utVOEJ3voDI26dhk+bZuAac4UXPzkTEaIO3AIe/o8pcKCOkpNIzhzm57Cv2Qg==",
"license": "MIT",
"dependencies": {
"tslib": "^2.8.1"
@@ -254,6 +289,8 @@
},
"node_modules/@aws-crypto/crc32": {
"version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-5.2.0.tgz",
+ "integrity": "sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==",
"license": "Apache-2.0",
"dependencies": {
"@aws-crypto/util": "^5.2.0",
@@ -266,6 +303,8 @@
},
"node_modules/@aws-crypto/crc32c": {
"version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/@aws-crypto/crc32c/-/crc32c-5.2.0.tgz",
+ "integrity": "sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag==",
"license": "Apache-2.0",
"dependencies": {
"@aws-crypto/util": "^5.2.0",
@@ -275,6 +314,8 @@
},
"node_modules/@aws-crypto/sha1-browser": {
"version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/@aws-crypto/sha1-browser/-/sha1-browser-5.2.0.tgz",
+ "integrity": "sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg==",
"license": "Apache-2.0",
"dependencies": {
"@aws-crypto/supports-web-crypto": "^5.2.0",
@@ -287,6 +328,8 @@
},
"node_modules/@aws-crypto/sha1-browser/node_modules/@smithy/is-array-buffer": {
"version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz",
+ "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
@@ -297,6 +340,8 @@
},
"node_modules/@aws-crypto/sha1-browser/node_modules/@smithy/util-buffer-from": {
"version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz",
+ "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==",
"license": "Apache-2.0",
"dependencies": {
"@smithy/is-array-buffer": "^2.2.0",
@@ -308,6 +353,8 @@
},
"node_modules/@aws-crypto/sha1-browser/node_modules/@smithy/util-utf8": {
"version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz",
+ "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==",
"license": "Apache-2.0",
"dependencies": {
"@smithy/util-buffer-from": "^2.2.0",
@@ -319,6 +366,8 @@
},
"node_modules/@aws-crypto/sha256-browser": {
"version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz",
+ "integrity": "sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==",
"license": "Apache-2.0",
"dependencies": {
"@aws-crypto/sha256-js": "^5.2.0",
@@ -332,6 +381,8 @@
},
"node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/is-array-buffer": {
"version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz",
+ "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
@@ -342,6 +393,8 @@
},
"node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-buffer-from": {
"version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz",
+ "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==",
"license": "Apache-2.0",
"dependencies": {
"@smithy/is-array-buffer": "^2.2.0",
@@ -353,6 +406,8 @@
},
"node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-utf8": {
"version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz",
+ "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==",
"license": "Apache-2.0",
"dependencies": {
"@smithy/util-buffer-from": "^2.2.0",
@@ -364,6 +419,8 @@
},
"node_modules/@aws-crypto/sha256-js": {
"version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz",
+ "integrity": "sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==",
"license": "Apache-2.0",
"dependencies": {
"@aws-crypto/util": "^5.2.0",
@@ -376,6 +433,8 @@
},
"node_modules/@aws-crypto/supports-web-crypto": {
"version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-5.2.0.tgz",
+ "integrity": "sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
@@ -383,6 +442,8 @@
},
"node_modules/@aws-crypto/util": {
"version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-5.2.0.tgz",
+ "integrity": "sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==",
"license": "Apache-2.0",
"dependencies": {
"@aws-sdk/types": "^3.222.0",
@@ -392,6 +453,8 @@
},
"node_modules/@aws-crypto/util/node_modules/@smithy/is-array-buffer": {
"version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz",
+ "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
@@ -402,6 +465,8 @@
},
"node_modules/@aws-crypto/util/node_modules/@smithy/util-buffer-from": {
"version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz",
+ "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==",
"license": "Apache-2.0",
"dependencies": {
"@smithy/is-array-buffer": "^2.2.0",
@@ -413,6 +478,8 @@
},
"node_modules/@aws-crypto/util/node_modules/@smithy/util-utf8": {
"version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz",
+ "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==",
"license": "Apache-2.0",
"dependencies": {
"@smithy/util-buffer-from": "^2.2.0",
@@ -423,592 +490,769 @@
}
},
"node_modules/@aws-sdk/client-s3": {
- "version": "3.937.0",
+ "version": "3.975.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.975.0.tgz",
+ "integrity": "sha512-aF1M/iMD29BPcpxjqoym0YFa4WR9Xie1/IhVumwOGH6TB45DaqYO7vLwantDBcYNRn/cZH6DFHksO7RmwTFBhw==",
"license": "Apache-2.0",
"dependencies": {
"@aws-crypto/sha1-browser": "5.2.0",
"@aws-crypto/sha256-browser": "5.2.0",
"@aws-crypto/sha256-js": "5.2.0",
- "@aws-sdk/core": "3.936.0",
- "@aws-sdk/credential-provider-node": "3.936.0",
- "@aws-sdk/middleware-bucket-endpoint": "3.936.0",
- "@aws-sdk/middleware-expect-continue": "3.936.0",
- "@aws-sdk/middleware-flexible-checksums": "3.936.0",
- "@aws-sdk/middleware-host-header": "3.936.0",
- "@aws-sdk/middleware-location-constraint": "3.936.0",
- "@aws-sdk/middleware-logger": "3.936.0",
- "@aws-sdk/middleware-recursion-detection": "3.936.0",
- "@aws-sdk/middleware-sdk-s3": "3.936.0",
- "@aws-sdk/middleware-ssec": "3.936.0",
- "@aws-sdk/middleware-user-agent": "3.936.0",
- "@aws-sdk/region-config-resolver": "3.936.0",
- "@aws-sdk/signature-v4-multi-region": "3.936.0",
- "@aws-sdk/types": "3.936.0",
- "@aws-sdk/util-endpoints": "3.936.0",
- "@aws-sdk/util-user-agent-browser": "3.936.0",
- "@aws-sdk/util-user-agent-node": "3.936.0",
- "@smithy/config-resolver": "^4.4.3",
- "@smithy/core": "^3.18.5",
- "@smithy/eventstream-serde-browser": "^4.2.5",
- "@smithy/eventstream-serde-config-resolver": "^4.3.5",
- "@smithy/eventstream-serde-node": "^4.2.5",
- "@smithy/fetch-http-handler": "^5.3.6",
- "@smithy/hash-blob-browser": "^4.2.6",
- "@smithy/hash-node": "^4.2.5",
- "@smithy/hash-stream-node": "^4.2.5",
- "@smithy/invalid-dependency": "^4.2.5",
- "@smithy/md5-js": "^4.2.5",
- "@smithy/middleware-content-length": "^4.2.5",
- "@smithy/middleware-endpoint": "^4.3.12",
- "@smithy/middleware-retry": "^4.4.12",
- "@smithy/middleware-serde": "^4.2.6",
- "@smithy/middleware-stack": "^4.2.5",
- "@smithy/node-config-provider": "^4.3.5",
- "@smithy/node-http-handler": "^4.4.5",
- "@smithy/protocol-http": "^5.3.5",
- "@smithy/smithy-client": "^4.9.8",
- "@smithy/types": "^4.9.0",
- "@smithy/url-parser": "^4.2.5",
+ "@aws-sdk/core": "^3.973.1",
+ "@aws-sdk/credential-provider-node": "^3.972.1",
+ "@aws-sdk/middleware-bucket-endpoint": "^3.972.1",
+ "@aws-sdk/middleware-expect-continue": "^3.972.1",
+ "@aws-sdk/middleware-flexible-checksums": "^3.972.1",
+ "@aws-sdk/middleware-host-header": "^3.972.1",
+ "@aws-sdk/middleware-location-constraint": "^3.972.1",
+ "@aws-sdk/middleware-logger": "^3.972.1",
+ "@aws-sdk/middleware-recursion-detection": "^3.972.1",
+ "@aws-sdk/middleware-sdk-s3": "^3.972.2",
+ "@aws-sdk/middleware-ssec": "^3.972.1",
+ "@aws-sdk/middleware-user-agent": "^3.972.2",
+ "@aws-sdk/region-config-resolver": "^3.972.1",
+ "@aws-sdk/signature-v4-multi-region": "3.972.0",
+ "@aws-sdk/types": "^3.973.0",
+ "@aws-sdk/util-endpoints": "3.972.0",
+ "@aws-sdk/util-user-agent-browser": "^3.972.1",
+ "@aws-sdk/util-user-agent-node": "^3.972.1",
+ "@smithy/config-resolver": "^4.4.6",
+ "@smithy/core": "^3.21.1",
+ "@smithy/eventstream-serde-browser": "^4.2.8",
+ "@smithy/eventstream-serde-config-resolver": "^4.3.8",
+ "@smithy/eventstream-serde-node": "^4.2.8",
+ "@smithy/fetch-http-handler": "^5.3.9",
+ "@smithy/hash-blob-browser": "^4.2.9",
+ "@smithy/hash-node": "^4.2.8",
+ "@smithy/hash-stream-node": "^4.2.8",
+ "@smithy/invalid-dependency": "^4.2.8",
+ "@smithy/md5-js": "^4.2.8",
+ "@smithy/middleware-content-length": "^4.2.8",
+ "@smithy/middleware-endpoint": "^4.4.11",
+ "@smithy/middleware-retry": "^4.4.27",
+ "@smithy/middleware-serde": "^4.2.9",
+ "@smithy/middleware-stack": "^4.2.8",
+ "@smithy/node-config-provider": "^4.3.8",
+ "@smithy/node-http-handler": "^4.4.8",
+ "@smithy/protocol-http": "^5.3.8",
+ "@smithy/smithy-client": "^4.10.12",
+ "@smithy/types": "^4.12.0",
+ "@smithy/url-parser": "^4.2.8",
"@smithy/util-base64": "^4.3.0",
"@smithy/util-body-length-browser": "^4.2.0",
"@smithy/util-body-length-node": "^4.2.1",
- "@smithy/util-defaults-mode-browser": "^4.3.11",
- "@smithy/util-defaults-mode-node": "^4.2.14",
- "@smithy/util-endpoints": "^3.2.5",
- "@smithy/util-middleware": "^4.2.5",
- "@smithy/util-retry": "^4.2.5",
- "@smithy/util-stream": "^4.5.6",
+ "@smithy/util-defaults-mode-browser": "^4.3.26",
+ "@smithy/util-defaults-mode-node": "^4.2.29",
+ "@smithy/util-endpoints": "^3.2.8",
+ "@smithy/util-middleware": "^4.2.8",
+ "@smithy/util-retry": "^4.2.8",
+ "@smithy/util-stream": "^4.5.10",
"@smithy/util-utf8": "^4.2.0",
- "@smithy/util-waiter": "^4.2.5",
+ "@smithy/util-waiter": "^4.2.8",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=18.0.0"
+ "node": ">=20.0.0"
}
},
"node_modules/@aws-sdk/client-sso": {
- "version": "3.936.0",
+ "version": "3.974.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.974.0.tgz",
+ "integrity": "sha512-ci+GiM0c4ULo4D79UMcY06LcOLcfvUfiyt8PzNY0vbt5O8BfCPYf4QomwVgkNcLLCYmroO4ge2Yy1EsLUlcD6g==",
"license": "Apache-2.0",
"dependencies": {
"@aws-crypto/sha256-browser": "5.2.0",
"@aws-crypto/sha256-js": "5.2.0",
- "@aws-sdk/core": "3.936.0",
- "@aws-sdk/middleware-host-header": "3.936.0",
- "@aws-sdk/middleware-logger": "3.936.0",
- "@aws-sdk/middleware-recursion-detection": "3.936.0",
- "@aws-sdk/middleware-user-agent": "3.936.0",
- "@aws-sdk/region-config-resolver": "3.936.0",
- "@aws-sdk/types": "3.936.0",
- "@aws-sdk/util-endpoints": "3.936.0",
- "@aws-sdk/util-user-agent-browser": "3.936.0",
- "@aws-sdk/util-user-agent-node": "3.936.0",
- "@smithy/config-resolver": "^4.4.3",
- "@smithy/core": "^3.18.5",
- "@smithy/fetch-http-handler": "^5.3.6",
- "@smithy/hash-node": "^4.2.5",
- "@smithy/invalid-dependency": "^4.2.5",
- "@smithy/middleware-content-length": "^4.2.5",
- "@smithy/middleware-endpoint": "^4.3.12",
- "@smithy/middleware-retry": "^4.4.12",
- "@smithy/middleware-serde": "^4.2.6",
- "@smithy/middleware-stack": "^4.2.5",
- "@smithy/node-config-provider": "^4.3.5",
- "@smithy/node-http-handler": "^4.4.5",
- "@smithy/protocol-http": "^5.3.5",
- "@smithy/smithy-client": "^4.9.8",
- "@smithy/types": "^4.9.0",
- "@smithy/url-parser": "^4.2.5",
+ "@aws-sdk/core": "^3.973.0",
+ "@aws-sdk/middleware-host-header": "^3.972.1",
+ "@aws-sdk/middleware-logger": "^3.972.1",
+ "@aws-sdk/middleware-recursion-detection": "^3.972.1",
+ "@aws-sdk/middleware-user-agent": "^3.972.1",
+ "@aws-sdk/region-config-resolver": "^3.972.1",
+ "@aws-sdk/types": "^3.973.0",
+ "@aws-sdk/util-endpoints": "3.972.0",
+ "@aws-sdk/util-user-agent-browser": "^3.972.1",
+ "@aws-sdk/util-user-agent-node": "^3.972.1",
+ "@smithy/config-resolver": "^4.4.6",
+ "@smithy/core": "^3.21.0",
+ "@smithy/fetch-http-handler": "^5.3.9",
+ "@smithy/hash-node": "^4.2.8",
+ "@smithy/invalid-dependency": "^4.2.8",
+ "@smithy/middleware-content-length": "^4.2.8",
+ "@smithy/middleware-endpoint": "^4.4.10",
+ "@smithy/middleware-retry": "^4.4.26",
+ "@smithy/middleware-serde": "^4.2.9",
+ "@smithy/middleware-stack": "^4.2.8",
+ "@smithy/node-config-provider": "^4.3.8",
+ "@smithy/node-http-handler": "^4.4.8",
+ "@smithy/protocol-http": "^5.3.8",
+ "@smithy/smithy-client": "^4.10.11",
+ "@smithy/types": "^4.12.0",
+ "@smithy/url-parser": "^4.2.8",
"@smithy/util-base64": "^4.3.0",
"@smithy/util-body-length-browser": "^4.2.0",
"@smithy/util-body-length-node": "^4.2.1",
- "@smithy/util-defaults-mode-browser": "^4.3.11",
- "@smithy/util-defaults-mode-node": "^4.2.14",
- "@smithy/util-endpoints": "^3.2.5",
- "@smithy/util-middleware": "^4.2.5",
- "@smithy/util-retry": "^4.2.5",
+ "@smithy/util-defaults-mode-browser": "^4.3.25",
+ "@smithy/util-defaults-mode-node": "^4.2.28",
+ "@smithy/util-endpoints": "^3.2.8",
+ "@smithy/util-middleware": "^4.2.8",
+ "@smithy/util-retry": "^4.2.8",
"@smithy/util-utf8": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=18.0.0"
+ "node": ">=20.0.0"
}
},
"node_modules/@aws-sdk/core": {
- "version": "3.936.0",
- "license": "Apache-2.0",
- "dependencies": {
- "@aws-sdk/types": "3.936.0",
- "@aws-sdk/xml-builder": "3.930.0",
- "@smithy/core": "^3.18.5",
- "@smithy/node-config-provider": "^4.3.5",
- "@smithy/property-provider": "^4.2.5",
- "@smithy/protocol-http": "^5.3.5",
- "@smithy/signature-v4": "^5.3.5",
- "@smithy/smithy-client": "^4.9.8",
- "@smithy/types": "^4.9.0",
+ "version": "3.973.1",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.973.1.tgz",
+ "integrity": "sha512-Ocubx42QsMyVs9ANSmFpRm0S+hubWljpPLjOi9UFrtcnVJjrVJTzQ51sN0e5g4e8i8QZ7uY73zosLmgYL7kZTQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "^3.973.0",
+ "@aws-sdk/xml-builder": "^3.972.1",
+ "@smithy/core": "^3.21.1",
+ "@smithy/node-config-provider": "^4.3.8",
+ "@smithy/property-provider": "^4.2.8",
+ "@smithy/protocol-http": "^5.3.8",
+ "@smithy/signature-v4": "^5.3.8",
+ "@smithy/smithy-client": "^4.10.12",
+ "@smithy/types": "^4.12.0",
"@smithy/util-base64": "^4.3.0",
- "@smithy/util-middleware": "^4.2.5",
+ "@smithy/util-middleware": "^4.2.8",
"@smithy/util-utf8": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=18.0.0"
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/crc64-nvme": {
+ "version": "3.972.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/crc64-nvme/-/crc64-nvme-3.972.0.tgz",
+ "integrity": "sha512-ThlLhTqX68jvoIVv+pryOdb5coP1cX1/MaTbB9xkGDCbWbsqQcLqzPxuSoW1DCnAAIacmXCWpzUNOB9pv+xXQw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.12.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=20.0.0"
}
},
"node_modules/@aws-sdk/credential-provider-env": {
- "version": "3.936.0",
+ "version": "3.972.1",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.1.tgz",
+ "integrity": "sha512-/etNHqnx96phy/SjI0HRC588o4vKH5F0xfkZ13yAATV7aNrb+5gYGNE6ePWafP+FuZ3HkULSSlJFj0AxgrAqYw==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "3.936.0",
- "@aws-sdk/types": "3.936.0",
- "@smithy/property-provider": "^4.2.5",
- "@smithy/types": "^4.9.0",
+ "@aws-sdk/core": "^3.973.0",
+ "@aws-sdk/types": "^3.973.0",
+ "@smithy/property-provider": "^4.2.8",
+ "@smithy/types": "^4.12.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=18.0.0"
+ "node": ">=20.0.0"
}
},
"node_modules/@aws-sdk/credential-provider-http": {
- "version": "3.936.0",
- "license": "Apache-2.0",
- "dependencies": {
- "@aws-sdk/core": "3.936.0",
- "@aws-sdk/types": "3.936.0",
- "@smithy/fetch-http-handler": "^5.3.6",
- "@smithy/node-http-handler": "^4.4.5",
- "@smithy/property-provider": "^4.2.5",
- "@smithy/protocol-http": "^5.3.5",
- "@smithy/smithy-client": "^4.9.8",
- "@smithy/types": "^4.9.0",
- "@smithy/util-stream": "^4.5.6",
+ "version": "3.972.2",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.2.tgz",
+ "integrity": "sha512-mXgdaUfe5oM+tWKyeZ7Vh/iQ94FrkMky1uuzwTOmFADiRcSk5uHy/e3boEFedXiT/PRGzgBmqvJVK4F6lUISCg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "^3.973.1",
+ "@aws-sdk/types": "^3.973.0",
+ "@smithy/fetch-http-handler": "^5.3.9",
+ "@smithy/node-http-handler": "^4.4.8",
+ "@smithy/property-provider": "^4.2.8",
+ "@smithy/protocol-http": "^5.3.8",
+ "@smithy/smithy-client": "^4.10.12",
+ "@smithy/types": "^4.12.0",
+ "@smithy/util-stream": "^4.5.10",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=18.0.0"
+ "node": ">=20.0.0"
}
},
"node_modules/@aws-sdk/credential-provider-ini": {
- "version": "3.936.0",
- "license": "Apache-2.0",
- "dependencies": {
- "@aws-sdk/core": "3.936.0",
- "@aws-sdk/credential-provider-env": "3.936.0",
- "@aws-sdk/credential-provider-http": "3.936.0",
- "@aws-sdk/credential-provider-login": "3.936.0",
- "@aws-sdk/credential-provider-process": "3.936.0",
- "@aws-sdk/credential-provider-sso": "3.936.0",
- "@aws-sdk/credential-provider-web-identity": "3.936.0",
- "@aws-sdk/nested-clients": "3.936.0",
- "@aws-sdk/types": "3.936.0",
- "@smithy/credential-provider-imds": "^4.2.5",
- "@smithy/property-provider": "^4.2.5",
- "@smithy/shared-ini-file-loader": "^4.4.0",
- "@smithy/types": "^4.9.0",
+ "version": "3.972.1",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.972.1.tgz",
+ "integrity": "sha512-OdbJA3v+XlNDsrYzNPRUwr8l7gw1r/nR8l4r96MDzSBDU8WEo8T6C06SvwaXR8SpzsjO3sq5KMP86wXWg7Rj4g==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "^3.973.0",
+ "@aws-sdk/credential-provider-env": "^3.972.1",
+ "@aws-sdk/credential-provider-http": "^3.972.1",
+ "@aws-sdk/credential-provider-login": "^3.972.1",
+ "@aws-sdk/credential-provider-process": "^3.972.1",
+ "@aws-sdk/credential-provider-sso": "^3.972.1",
+ "@aws-sdk/credential-provider-web-identity": "^3.972.1",
+ "@aws-sdk/nested-clients": "3.974.0",
+ "@aws-sdk/types": "^3.973.0",
+ "@smithy/credential-provider-imds": "^4.2.8",
+ "@smithy/property-provider": "^4.2.8",
+ "@smithy/shared-ini-file-loader": "^4.4.3",
+ "@smithy/types": "^4.12.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=18.0.0"
+ "node": ">=20.0.0"
}
},
"node_modules/@aws-sdk/credential-provider-login": {
- "version": "3.936.0",
+ "version": "3.972.1",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.1.tgz",
+ "integrity": "sha512-CccqDGL6ZrF3/EFWZefvKW7QwwRdxlHUO8NVBKNVcNq6womrPDvqB6xc9icACtE0XB0a7PLoSTkAg8bQVkTO2w==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "3.936.0",
- "@aws-sdk/nested-clients": "3.936.0",
- "@aws-sdk/types": "3.936.0",
- "@smithy/property-provider": "^4.2.5",
- "@smithy/protocol-http": "^5.3.5",
- "@smithy/shared-ini-file-loader": "^4.4.0",
- "@smithy/types": "^4.9.0",
+ "@aws-sdk/core": "^3.973.0",
+ "@aws-sdk/nested-clients": "3.974.0",
+ "@aws-sdk/types": "^3.973.0",
+ "@smithy/property-provider": "^4.2.8",
+ "@smithy/protocol-http": "^5.3.8",
+ "@smithy/shared-ini-file-loader": "^4.4.3",
+ "@smithy/types": "^4.12.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=18.0.0"
+ "node": ">=20.0.0"
}
},
"node_modules/@aws-sdk/credential-provider-node": {
- "version": "3.936.0",
- "license": "Apache-2.0",
- "dependencies": {
- "@aws-sdk/credential-provider-env": "3.936.0",
- "@aws-sdk/credential-provider-http": "3.936.0",
- "@aws-sdk/credential-provider-ini": "3.936.0",
- "@aws-sdk/credential-provider-process": "3.936.0",
- "@aws-sdk/credential-provider-sso": "3.936.0",
- "@aws-sdk/credential-provider-web-identity": "3.936.0",
- "@aws-sdk/types": "3.936.0",
- "@smithy/credential-provider-imds": "^4.2.5",
- "@smithy/property-provider": "^4.2.5",
- "@smithy/shared-ini-file-loader": "^4.4.0",
- "@smithy/types": "^4.9.0",
+ "version": "3.972.1",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.1.tgz",
+ "integrity": "sha512-DwXPk9GfuU/xG9tmCyXFVkCr6X3W8ZCoL5Ptb0pbltEx1/LCcg7T+PBqDlPiiinNCD6ilIoMJDWsnJ8ikzZA7Q==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/credential-provider-env": "^3.972.1",
+ "@aws-sdk/credential-provider-http": "^3.972.1",
+ "@aws-sdk/credential-provider-ini": "^3.972.1",
+ "@aws-sdk/credential-provider-process": "^3.972.1",
+ "@aws-sdk/credential-provider-sso": "^3.972.1",
+ "@aws-sdk/credential-provider-web-identity": "^3.972.1",
+ "@aws-sdk/types": "^3.973.0",
+ "@smithy/credential-provider-imds": "^4.2.8",
+ "@smithy/property-provider": "^4.2.8",
+ "@smithy/shared-ini-file-loader": "^4.4.3",
+ "@smithy/types": "^4.12.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=18.0.0"
+ "node": ">=20.0.0"
}
},
"node_modules/@aws-sdk/credential-provider-process": {
- "version": "3.936.0",
+ "version": "3.972.1",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.1.tgz",
+ "integrity": "sha512-bi47Zigu3692SJwdBvo8y1dEwE6B61stCwCFnuRWJVTfiM84B+VTSCV661CSWJmIZzmcy7J5J3kWyxL02iHj0w==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "3.936.0",
- "@aws-sdk/types": "3.936.0",
- "@smithy/property-provider": "^4.2.5",
- "@smithy/shared-ini-file-loader": "^4.4.0",
- "@smithy/types": "^4.9.0",
+ "@aws-sdk/core": "^3.973.0",
+ "@aws-sdk/types": "^3.973.0",
+ "@smithy/property-provider": "^4.2.8",
+ "@smithy/shared-ini-file-loader": "^4.4.3",
+ "@smithy/types": "^4.12.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=18.0.0"
+ "node": ">=20.0.0"
}
},
"node_modules/@aws-sdk/credential-provider-sso": {
- "version": "3.936.0",
+ "version": "3.972.1",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.972.1.tgz",
+ "integrity": "sha512-dLZVNhM7wSgVUFsgVYgI5hb5Z/9PUkT46pk/SHrSmUqfx6YDvoV4YcPtaiRqviPpEGGiRtdQMEadyOKIRqulUQ==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/client-sso": "3.936.0",
- "@aws-sdk/core": "3.936.0",
- "@aws-sdk/token-providers": "3.936.0",
- "@aws-sdk/types": "3.936.0",
- "@smithy/property-provider": "^4.2.5",
- "@smithy/shared-ini-file-loader": "^4.4.0",
- "@smithy/types": "^4.9.0",
+ "@aws-sdk/client-sso": "3.974.0",
+ "@aws-sdk/core": "^3.973.0",
+ "@aws-sdk/token-providers": "3.974.0",
+ "@aws-sdk/types": "^3.973.0",
+ "@smithy/property-provider": "^4.2.8",
+ "@smithy/shared-ini-file-loader": "^4.4.3",
+ "@smithy/types": "^4.12.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=18.0.0"
+ "node": ">=20.0.0"
}
},
"node_modules/@aws-sdk/credential-provider-web-identity": {
- "version": "3.936.0",
+ "version": "3.972.1",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.1.tgz",
+ "integrity": "sha512-YMDeYgi0u687Ay0dAq/pFPKuijrlKTgsaB/UATbxCs/FzZfMiG4If5ksywHmmW7MiYUF8VVv+uou3TczvLrN4w==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "3.936.0",
- "@aws-sdk/nested-clients": "3.936.0",
- "@aws-sdk/types": "3.936.0",
- "@smithy/property-provider": "^4.2.5",
- "@smithy/shared-ini-file-loader": "^4.4.0",
- "@smithy/types": "^4.9.0",
+ "@aws-sdk/core": "^3.973.0",
+ "@aws-sdk/nested-clients": "3.974.0",
+ "@aws-sdk/types": "^3.973.0",
+ "@smithy/property-provider": "^4.2.8",
+ "@smithy/shared-ini-file-loader": "^4.4.3",
+ "@smithy/types": "^4.12.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=18.0.0"
+ "node": ">=20.0.0"
}
},
"node_modules/@aws-sdk/middleware-bucket-endpoint": {
- "version": "3.936.0",
+ "version": "3.972.1",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.972.1.tgz",
+ "integrity": "sha512-YVvoitBdE8WOpHqIXvv49efT73F4bJ99XH2bi3Dn3mx7WngI4RwHwn/zF5i0q1Wdi5frGSCNF3vuh+pY817//w==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.936.0",
- "@aws-sdk/util-arn-parser": "3.893.0",
- "@smithy/node-config-provider": "^4.3.5",
- "@smithy/protocol-http": "^5.3.5",
- "@smithy/types": "^4.9.0",
+ "@aws-sdk/types": "^3.973.0",
+ "@aws-sdk/util-arn-parser": "^3.972.1",
+ "@smithy/node-config-provider": "^4.3.8",
+ "@smithy/protocol-http": "^5.3.8",
+ "@smithy/types": "^4.12.0",
"@smithy/util-config-provider": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=18.0.0"
+ "node": ">=20.0.0"
}
},
"node_modules/@aws-sdk/middleware-expect-continue": {
- "version": "3.936.0",
+ "version": "3.972.1",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.972.1.tgz",
+ "integrity": "sha512-6lfl2/J/kutzw/RLu1kjbahsz4vrGPysrdxWaw8fkjLYG+6M6AswocIAZFS/LgAVi/IWRwPTx9YC0/NH2wDrSw==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.936.0",
- "@smithy/protocol-http": "^5.3.5",
- "@smithy/types": "^4.9.0",
+ "@aws-sdk/types": "^3.973.0",
+ "@smithy/protocol-http": "^5.3.8",
+ "@smithy/types": "^4.12.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=18.0.0"
+ "node": ">=20.0.0"
}
},
"node_modules/@aws-sdk/middleware-flexible-checksums": {
- "version": "3.936.0",
+ "version": "3.972.1",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.972.1.tgz",
+ "integrity": "sha512-kjVVREpqeUkYQsXr78AcsJbEUlxGH7+H6yS7zkjrnu6HyEVxbdSndkKX6VpKneFOihjCAhIXlk4wf3butDHkNQ==",
"license": "Apache-2.0",
"dependencies": {
"@aws-crypto/crc32": "5.2.0",
"@aws-crypto/crc32c": "5.2.0",
"@aws-crypto/util": "5.2.0",
- "@aws-sdk/core": "3.936.0",
- "@aws-sdk/types": "3.936.0",
+ "@aws-sdk/core": "^3.973.0",
+ "@aws-sdk/crc64-nvme": "3.972.0",
+ "@aws-sdk/types": "^3.973.0",
"@smithy/is-array-buffer": "^4.2.0",
- "@smithy/node-config-provider": "^4.3.5",
- "@smithy/protocol-http": "^5.3.5",
- "@smithy/types": "^4.9.0",
- "@smithy/util-middleware": "^4.2.5",
- "@smithy/util-stream": "^4.5.6",
+ "@smithy/node-config-provider": "^4.3.8",
+ "@smithy/protocol-http": "^5.3.8",
+ "@smithy/types": "^4.12.0",
+ "@smithy/util-middleware": "^4.2.8",
+ "@smithy/util-stream": "^4.5.10",
"@smithy/util-utf8": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=18.0.0"
+ "node": ">=20.0.0"
}
},
"node_modules/@aws-sdk/middleware-host-header": {
- "version": "3.936.0",
+ "version": "3.972.1",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.972.1.tgz",
+ "integrity": "sha512-/R82lXLPmZ9JaUGSUdKtBp2k/5xQxvBT3zZWyKiBOhyulFotlfvdlrO8TnqstBimsl4lYEYySDL+W6ldFh6ALg==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.936.0",
- "@smithy/protocol-http": "^5.3.5",
- "@smithy/types": "^4.9.0",
+ "@aws-sdk/types": "^3.973.0",
+ "@smithy/protocol-http": "^5.3.8",
+ "@smithy/types": "^4.12.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=18.0.0"
+ "node": ">=20.0.0"
}
},
"node_modules/@aws-sdk/middleware-location-constraint": {
- "version": "3.936.0",
+ "version": "3.972.1",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.972.1.tgz",
+ "integrity": "sha512-YisPaCbvBk9gY5aUI8jDMDKXsLZ9Fet0WYj1MviK8tZYMgxBIYHM6l3O/OHaAIujojZvamd9F3haYYYWp5/V3w==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.936.0",
- "@smithy/types": "^4.9.0",
+ "@aws-sdk/types": "^3.973.0",
+ "@smithy/types": "^4.12.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=18.0.0"
+ "node": ">=20.0.0"
}
},
"node_modules/@aws-sdk/middleware-logger": {
- "version": "3.936.0",
+ "version": "3.972.1",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.972.1.tgz",
+ "integrity": "sha512-JGgFl6cHg9G2FHu4lyFIzmFN8KESBiRr84gLC3Aeni0Gt1nKm+KxWLBuha/RPcXxJygGXCcMM4AykkIwxor8RA==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.936.0",
- "@smithy/types": "^4.9.0",
+ "@aws-sdk/types": "^3.973.0",
+ "@smithy/types": "^4.12.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=18.0.0"
+ "node": ">=20.0.0"
}
},
"node_modules/@aws-sdk/middleware-recursion-detection": {
- "version": "3.936.0",
+ "version": "3.972.1",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.972.1.tgz",
+ "integrity": "sha512-taGzNRe8vPHjnliqXIHp9kBgIemLE/xCaRTMH1NH0cncHeaPcjxtnCroAAM9aOlPuKvBe2CpZESyvM1+D8oI7Q==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.936.0",
- "@aws/lambda-invoke-store": "^0.2.0",
- "@smithy/protocol-http": "^5.3.5",
- "@smithy/types": "^4.9.0",
+ "@aws-sdk/types": "^3.973.0",
+ "@aws/lambda-invoke-store": "^0.2.2",
+ "@smithy/protocol-http": "^5.3.8",
+ "@smithy/types": "^4.12.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=18.0.0"
+ "node": ">=20.0.0"
}
},
"node_modules/@aws-sdk/middleware-sdk-s3": {
- "version": "3.936.0",
- "license": "Apache-2.0",
- "dependencies": {
- "@aws-sdk/core": "3.936.0",
- "@aws-sdk/types": "3.936.0",
- "@aws-sdk/util-arn-parser": "3.893.0",
- "@smithy/core": "^3.18.5",
- "@smithy/node-config-provider": "^4.3.5",
- "@smithy/protocol-http": "^5.3.5",
- "@smithy/signature-v4": "^5.3.5",
- "@smithy/smithy-client": "^4.9.8",
- "@smithy/types": "^4.9.0",
+ "version": "3.972.2",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.972.2.tgz",
+ "integrity": "sha512-5f9x9/G+StE8+7wd9EVDF3d+J74xK+WBA3FhZwLSkf3pHFGLKzlmUfxJJE1kkXkbj/j/H+Dh3zL/hrtQE9hNsg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "^3.973.1",
+ "@aws-sdk/types": "^3.973.0",
+ "@aws-sdk/util-arn-parser": "^3.972.1",
+ "@smithy/core": "^3.21.1",
+ "@smithy/node-config-provider": "^4.3.8",
+ "@smithy/protocol-http": "^5.3.8",
+ "@smithy/signature-v4": "^5.3.8",
+ "@smithy/smithy-client": "^4.10.12",
+ "@smithy/types": "^4.12.0",
"@smithy/util-config-provider": "^4.2.0",
- "@smithy/util-middleware": "^4.2.5",
- "@smithy/util-stream": "^4.5.6",
+ "@smithy/util-middleware": "^4.2.8",
+ "@smithy/util-stream": "^4.5.10",
"@smithy/util-utf8": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=18.0.0"
+ "node": ">=20.0.0"
}
},
"node_modules/@aws-sdk/middleware-ssec": {
- "version": "3.936.0",
+ "version": "3.972.1",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.972.1.tgz",
+ "integrity": "sha512-fLtRTPd/MxJT2drJKft2GVGKm35PiNEeQ1Dvz1vc/WhhgAteYrp4f1SfSgjgLaYWGMExESJL4bt8Dxqp6tVsog==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.936.0",
- "@smithy/types": "^4.9.0",
+ "@aws-sdk/types": "^3.973.0",
+ "@smithy/types": "^4.12.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=18.0.0"
+ "node": ">=20.0.0"
}
},
"node_modules/@aws-sdk/middleware-user-agent": {
- "version": "3.936.0",
+ "version": "3.972.2",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.972.2.tgz",
+ "integrity": "sha512-d+Exq074wy0X6wvShg/kmZVtkah+28vMuqCtuY3cydg8LUZOJBtbAolCpEJizSyb8mJJZF9BjWaTANXL4OYnkg==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "3.936.0",
- "@aws-sdk/types": "3.936.0",
- "@aws-sdk/util-endpoints": "3.936.0",
- "@smithy/core": "^3.18.5",
- "@smithy/protocol-http": "^5.3.5",
- "@smithy/types": "^4.9.0",
+ "@aws-sdk/core": "^3.973.1",
+ "@aws-sdk/types": "^3.973.0",
+ "@aws-sdk/util-endpoints": "3.972.0",
+ "@smithy/core": "^3.21.1",
+ "@smithy/protocol-http": "^5.3.8",
+ "@smithy/types": "^4.12.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=18.0.0"
+ "node": ">=20.0.0"
}
},
"node_modules/@aws-sdk/nested-clients": {
- "version": "3.936.0",
+ "version": "3.974.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.974.0.tgz",
+ "integrity": "sha512-k3dwdo/vOiHMJc9gMnkPl1BA5aQfTrZbz+8fiDkWrPagqAioZgmo5oiaOaeX0grObfJQKDtcpPFR4iWf8cgl8Q==",
"license": "Apache-2.0",
"dependencies": {
"@aws-crypto/sha256-browser": "5.2.0",
"@aws-crypto/sha256-js": "5.2.0",
- "@aws-sdk/core": "3.936.0",
- "@aws-sdk/middleware-host-header": "3.936.0",
- "@aws-sdk/middleware-logger": "3.936.0",
- "@aws-sdk/middleware-recursion-detection": "3.936.0",
- "@aws-sdk/middleware-user-agent": "3.936.0",
- "@aws-sdk/region-config-resolver": "3.936.0",
- "@aws-sdk/types": "3.936.0",
- "@aws-sdk/util-endpoints": "3.936.0",
- "@aws-sdk/util-user-agent-browser": "3.936.0",
- "@aws-sdk/util-user-agent-node": "3.936.0",
- "@smithy/config-resolver": "^4.4.3",
- "@smithy/core": "^3.18.5",
- "@smithy/fetch-http-handler": "^5.3.6",
- "@smithy/hash-node": "^4.2.5",
- "@smithy/invalid-dependency": "^4.2.5",
- "@smithy/middleware-content-length": "^4.2.5",
- "@smithy/middleware-endpoint": "^4.3.12",
- "@smithy/middleware-retry": "^4.4.12",
- "@smithy/middleware-serde": "^4.2.6",
- "@smithy/middleware-stack": "^4.2.5",
- "@smithy/node-config-provider": "^4.3.5",
- "@smithy/node-http-handler": "^4.4.5",
- "@smithy/protocol-http": "^5.3.5",
- "@smithy/smithy-client": "^4.9.8",
- "@smithy/types": "^4.9.0",
- "@smithy/url-parser": "^4.2.5",
+ "@aws-sdk/core": "^3.973.0",
+ "@aws-sdk/middleware-host-header": "^3.972.1",
+ "@aws-sdk/middleware-logger": "^3.972.1",
+ "@aws-sdk/middleware-recursion-detection": "^3.972.1",
+ "@aws-sdk/middleware-user-agent": "^3.972.1",
+ "@aws-sdk/region-config-resolver": "^3.972.1",
+ "@aws-sdk/types": "^3.973.0",
+ "@aws-sdk/util-endpoints": "3.972.0",
+ "@aws-sdk/util-user-agent-browser": "^3.972.1",
+ "@aws-sdk/util-user-agent-node": "^3.972.1",
+ "@smithy/config-resolver": "^4.4.6",
+ "@smithy/core": "^3.21.0",
+ "@smithy/fetch-http-handler": "^5.3.9",
+ "@smithy/hash-node": "^4.2.8",
+ "@smithy/invalid-dependency": "^4.2.8",
+ "@smithy/middleware-content-length": "^4.2.8",
+ "@smithy/middleware-endpoint": "^4.4.10",
+ "@smithy/middleware-retry": "^4.4.26",
+ "@smithy/middleware-serde": "^4.2.9",
+ "@smithy/middleware-stack": "^4.2.8",
+ "@smithy/node-config-provider": "^4.3.8",
+ "@smithy/node-http-handler": "^4.4.8",
+ "@smithy/protocol-http": "^5.3.8",
+ "@smithy/smithy-client": "^4.10.11",
+ "@smithy/types": "^4.12.0",
+ "@smithy/url-parser": "^4.2.8",
"@smithy/util-base64": "^4.3.0",
"@smithy/util-body-length-browser": "^4.2.0",
"@smithy/util-body-length-node": "^4.2.1",
- "@smithy/util-defaults-mode-browser": "^4.3.11",
- "@smithy/util-defaults-mode-node": "^4.2.14",
- "@smithy/util-endpoints": "^3.2.5",
- "@smithy/util-middleware": "^4.2.5",
- "@smithy/util-retry": "^4.2.5",
+ "@smithy/util-defaults-mode-browser": "^4.3.25",
+ "@smithy/util-defaults-mode-node": "^4.2.28",
+ "@smithy/util-endpoints": "^3.2.8",
+ "@smithy/util-middleware": "^4.2.8",
+ "@smithy/util-retry": "^4.2.8",
"@smithy/util-utf8": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=18.0.0"
+ "node": ">=20.0.0"
}
},
"node_modules/@aws-sdk/region-config-resolver": {
- "version": "3.936.0",
+ "version": "3.972.1",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.972.1.tgz",
+ "integrity": "sha512-voIY8RORpxLAEgEkYaTFnkaIuRwVBEc+RjVZYcSSllPV+ZEKAacai6kNhJeE3D70Le+JCfvRb52tng/AVHY+jQ==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.936.0",
- "@smithy/config-resolver": "^4.4.3",
- "@smithy/node-config-provider": "^4.3.5",
- "@smithy/types": "^4.9.0",
+ "@aws-sdk/types": "^3.973.0",
+ "@smithy/config-resolver": "^4.4.6",
+ "@smithy/node-config-provider": "^4.3.8",
+ "@smithy/types": "^4.12.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=18.0.0"
+ "node": ">=20.0.0"
}
},
"node_modules/@aws-sdk/signature-v4-multi-region": {
- "version": "3.936.0",
+ "version": "3.972.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.972.0.tgz",
+ "integrity": "sha512-2udiRijmjpN81Pvajje4TsjbXDZNP6K9bYUanBYH8hXa/tZG5qfGCySD+TyX0sgDxCQmEDMg3LaQdfjNHBDEgQ==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/middleware-sdk-s3": "3.936.0",
- "@aws-sdk/types": "3.936.0",
- "@smithy/protocol-http": "^5.3.5",
- "@smithy/signature-v4": "^5.3.5",
- "@smithy/types": "^4.9.0",
+ "@aws-sdk/middleware-sdk-s3": "3.972.0",
+ "@aws-sdk/types": "3.972.0",
+ "@smithy/protocol-http": "^5.3.8",
+ "@smithy/signature-v4": "^5.3.8",
+ "@smithy/types": "^4.12.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=18.0.0"
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/signature-v4-multi-region/node_modules/@aws-sdk/core": {
+ "version": "3.972.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.972.0.tgz",
+ "integrity": "sha512-nEeUW2M9F+xdIaD98F5MBcQ4ITtykj3yKbgFZ6J0JtL3bq+Z90szQ6Yy8H/BLPYXTs3V4n9ifnBo8cprRDiE6A==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "3.972.0",
+ "@aws-sdk/xml-builder": "3.972.0",
+ "@smithy/core": "^3.20.6",
+ "@smithy/node-config-provider": "^4.3.8",
+ "@smithy/property-provider": "^4.2.8",
+ "@smithy/protocol-http": "^5.3.8",
+ "@smithy/signature-v4": "^5.3.8",
+ "@smithy/smithy-client": "^4.10.8",
+ "@smithy/types": "^4.12.0",
+ "@smithy/util-base64": "^4.3.0",
+ "@smithy/util-middleware": "^4.2.8",
+ "@smithy/util-utf8": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/signature-v4-multi-region/node_modules/@aws-sdk/middleware-sdk-s3": {
+ "version": "3.972.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.972.0.tgz",
+ "integrity": "sha512-0bcKFXWx+NZ7tIlOo7KjQ+O2rydiHdIQahrq+fN6k9Osky29v17guy68urUKfhTobR6iY6KvxkroFWaFtTgS5w==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "3.972.0",
+ "@aws-sdk/types": "3.972.0",
+ "@aws-sdk/util-arn-parser": "3.972.0",
+ "@smithy/core": "^3.20.6",
+ "@smithy/node-config-provider": "^4.3.8",
+ "@smithy/protocol-http": "^5.3.8",
+ "@smithy/signature-v4": "^5.3.8",
+ "@smithy/smithy-client": "^4.10.8",
+ "@smithy/types": "^4.12.0",
+ "@smithy/util-config-provider": "^4.2.0",
+ "@smithy/util-middleware": "^4.2.8",
+ "@smithy/util-stream": "^4.5.10",
+ "@smithy/util-utf8": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/signature-v4-multi-region/node_modules/@aws-sdk/types": {
+ "version": "3.972.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.972.0.tgz",
+ "integrity": "sha512-U7xBIbLSetONxb2bNzHyDgND3oKGoIfmknrEVnoEU4GUSs+0augUOIn9DIWGUO2ETcRFdsRUnmx9KhPT9Ojbug==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.12.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/signature-v4-multi-region/node_modules/@aws-sdk/util-arn-parser": {
+ "version": "3.972.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.972.0.tgz",
+ "integrity": "sha512-RM5Mmo/KJ593iMSrALlHEOcc9YOIyOsDmS5x2NLOMdEmzv1o00fcpAkCQ02IGu1eFneBFT7uX0Mpag0HI+Cz2g==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/signature-v4-multi-region/node_modules/@aws-sdk/xml-builder": {
+ "version": "3.972.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.972.0.tgz",
+ "integrity": "sha512-POaGMcXnozzqBUyJM3HLUZ9GR6OKJWPGJEmhtTnxZXt8B6JcJ/6K3xRJ5H/j8oovVLz8Wg6vFxAHv8lvuASxMg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.12.0",
+ "fast-xml-parser": "5.2.5",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=20.0.0"
}
},
"node_modules/@aws-sdk/token-providers": {
- "version": "3.936.0",
+ "version": "3.974.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.974.0.tgz",
+ "integrity": "sha512-cBykL0LiccKIgNhGWvQRTPvsBLPZxnmJU3pYxG538jpFX8lQtrCy1L7mmIHNEdxIdIGEPgAEHF8/JQxgBToqUQ==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "3.936.0",
- "@aws-sdk/nested-clients": "3.936.0",
- "@aws-sdk/types": "3.936.0",
- "@smithy/property-provider": "^4.2.5",
- "@smithy/shared-ini-file-loader": "^4.4.0",
- "@smithy/types": "^4.9.0",
+ "@aws-sdk/core": "^3.973.0",
+ "@aws-sdk/nested-clients": "3.974.0",
+ "@aws-sdk/types": "^3.973.0",
+ "@smithy/property-provider": "^4.2.8",
+ "@smithy/shared-ini-file-loader": "^4.4.3",
+ "@smithy/types": "^4.12.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=18.0.0"
+ "node": ">=20.0.0"
}
},
"node_modules/@aws-sdk/types": {
- "version": "3.936.0",
+ "version": "3.973.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.973.0.tgz",
+ "integrity": "sha512-jYIdB7a7jhRTvyb378nsjyvJh1Si+zVduJ6urMNGpz8RjkmHZ+9vM2H07XaIB2Cfq0GhJRZYOfUCH8uqQhqBkQ==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.9.0",
+ "@smithy/types": "^4.12.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=18.0.0"
+ "node": ">=20.0.0"
}
},
"node_modules/@aws-sdk/util-arn-parser": {
- "version": "3.893.0",
+ "version": "3.972.1",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.972.1.tgz",
+ "integrity": "sha512-XnNit6H9PPHhqUXW/usjX6JeJ6Pm8ZNqivTjmNjgWHeOfVpblUc/MTic02UmCNR0jJLPjQ3mBKiMen0tnkNQjQ==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=18.0.0"
+ "node": ">=20.0.0"
}
},
"node_modules/@aws-sdk/util-endpoints": {
- "version": "3.936.0",
+ "version": "3.972.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.972.0.tgz",
+ "integrity": "sha512-6JHsl1V/a1ZW8D8AFfd4R52fwZPnZ5H4U6DS8m/bWT8qad72NvbOFAC7U2cDtFs2TShqUO3TEiX/EJibtY3ijg==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.936.0",
- "@smithy/types": "^4.9.0",
- "@smithy/url-parser": "^4.2.5",
- "@smithy/util-endpoints": "^3.2.5",
+ "@aws-sdk/types": "3.972.0",
+ "@smithy/types": "^4.12.0",
+ "@smithy/url-parser": "^4.2.8",
+ "@smithy/util-endpoints": "^3.2.8",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=18.0.0"
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types": {
+ "version": "3.972.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.972.0.tgz",
+ "integrity": "sha512-U7xBIbLSetONxb2bNzHyDgND3oKGoIfmknrEVnoEU4GUSs+0augUOIn9DIWGUO2ETcRFdsRUnmx9KhPT9Ojbug==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.12.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=20.0.0"
}
},
"node_modules/@aws-sdk/util-locate-window": {
- "version": "3.893.0",
+ "version": "3.965.3",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.965.3.tgz",
+ "integrity": "sha512-FNUqAjlKAGA7GM05kywE99q8wiPHPZqrzhq3wXRga6PRD6A0kzT85Pb0AzYBVTBRpSrKyyr6M92Y6bnSBVp2BA==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=18.0.0"
+ "node": ">=20.0.0"
}
},
"node_modules/@aws-sdk/util-user-agent-browser": {
- "version": "3.936.0",
+ "version": "3.972.1",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.972.1.tgz",
+ "integrity": "sha512-IgF55NFmJX8d9Wql9M0nEpk2eYbuD8G4781FN4/fFgwTXBn86DvlZJuRWDCMcMqZymnBVX7HW9r+3r9ylqfW0w==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.936.0",
- "@smithy/types": "^4.9.0",
+ "@aws-sdk/types": "^3.973.0",
+ "@smithy/types": "^4.12.0",
"bowser": "^2.11.0",
"tslib": "^2.6.2"
}
},
"node_modules/@aws-sdk/util-user-agent-node": {
- "version": "3.936.0",
+ "version": "3.972.1",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.972.1.tgz",
+ "integrity": "sha512-oIs4JFcADzoZ0c915R83XvK2HltWupxNsXUIuZse2rgk7b97zTpkxaqXiH0h9ylh31qtgo/t8hp4tIqcsMrEbQ==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/middleware-user-agent": "3.936.0",
- "@aws-sdk/types": "3.936.0",
- "@smithy/node-config-provider": "^4.3.5",
- "@smithy/types": "^4.9.0",
+ "@aws-sdk/middleware-user-agent": "^3.972.1",
+ "@aws-sdk/types": "^3.973.0",
+ "@smithy/node-config-provider": "^4.3.8",
+ "@smithy/types": "^4.12.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=18.0.0"
+ "node": ">=20.0.0"
},
"peerDependencies": {
"aws-crt": ">=1.0.0"
@@ -1020,35 +1264,23 @@
}
},
"node_modules/@aws-sdk/xml-builder": {
- "version": "3.930.0",
+ "version": "3.972.1",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.972.1.tgz",
+ "integrity": "sha512-6zZGlPOqn7Xb+25MAXGb1JhgvaC5HjZj6GzszuVrnEgbhvzBRFGKYemuHBV4bho+dtqeYKPgaZUv7/e80hIGNg==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.9.0",
+ "@smithy/types": "^4.12.0",
"fast-xml-parser": "5.2.5",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=18.0.0"
- }
- },
- "node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser": {
- "version": "5.2.5",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/NaturalIntelligence"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "strnum": "^2.1.0"
- },
- "bin": {
- "fxparser": "src/cli/cli.js"
+ "node": ">=20.0.0"
}
},
"node_modules/@aws/lambda-invoke-store": {
- "version": "0.2.1",
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/@aws/lambda-invoke-store/-/lambda-invoke-store-0.2.3.tgz",
+ "integrity": "sha512-oLvsaPMTBejkkmHhjf09xTgk71mOqyr/409NKhRIL08If7AhVfUsJhVsx386uJaqNd42v9kWamQ9lFbkoC2dYw==",
"license": "Apache-2.0",
"engines": {
"node": ">=18.0.0"
@@ -1056,6 +1288,8 @@
},
"node_modules/@azure/abort-controller": {
"version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz",
+ "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==",
"license": "MIT",
"dependencies": {
"tslib": "^2.6.2"
@@ -1066,6 +1300,8 @@
},
"node_modules/@azure/core-auth": {
"version": "1.10.1",
+ "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.10.1.tgz",
+ "integrity": "sha512-ykRMW8PjVAn+RS6ww5cmK9U2CyH9p4Q88YJwvUslfuMmN98w/2rdGRLPqJYObapBCdzBVeDgYWdJnFPFb7qzpg==",
"license": "MIT",
"dependencies": {
"@azure/abort-controller": "^2.1.2",
@@ -1078,6 +1314,8 @@
},
"node_modules/@azure/core-client": {
"version": "1.10.1",
+ "resolved": "https://registry.npmjs.org/@azure/core-client/-/core-client-1.10.1.tgz",
+ "integrity": "sha512-Nh5PhEOeY6PrnxNPsEHRr9eimxLwgLlpmguQaHKBinFYA/RU9+kOYVOQqOrTsCL+KSxrLLl1gD8Dk5BFW/7l/w==",
"license": "MIT",
"dependencies": {
"@azure/abort-controller": "^2.1.2",
@@ -1094,6 +1332,8 @@
},
"node_modules/@azure/core-http-compat": {
"version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/@azure/core-http-compat/-/core-http-compat-2.3.1.tgz",
+ "integrity": "sha512-az9BkXND3/d5VgdRRQVkiJb2gOmDU8Qcq4GvjtBmDICNiQ9udFmDk4ZpSB5Qq1OmtDJGlQAfBaS4palFsazQ5g==",
"license": "MIT",
"dependencies": {
"@azure/abort-controller": "^2.1.2",
@@ -1106,6 +1346,8 @@
},
"node_modules/@azure/core-lro": {
"version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/@azure/core-lro/-/core-lro-2.7.2.tgz",
+ "integrity": "sha512-0YIpccoX8m/k00O7mDDMdJpbr6mf1yWo2dfmxt5A8XVZVVMz2SSKaEbMCeJRvgQ0IaSlqhjT47p4hVIRRy90xw==",
"license": "MIT",
"dependencies": {
"@azure/abort-controller": "^2.0.0",
@@ -1119,6 +1361,8 @@
},
"node_modules/@azure/core-paging": {
"version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/@azure/core-paging/-/core-paging-1.6.2.tgz",
+ "integrity": "sha512-YKWi9YuCU04B55h25cnOYZHxXYtEvQEbKST5vqRga7hWY9ydd3FZHdeQF8pyh+acWZvppw13M/LMGx0LABUVMA==",
"license": "MIT",
"dependencies": {
"tslib": "^2.6.2"
@@ -1129,6 +1373,8 @@
},
"node_modules/@azure/core-rest-pipeline": {
"version": "1.22.2",
+ "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.22.2.tgz",
+ "integrity": "sha512-MzHym+wOi8CLUlKCQu12de0nwcq9k9Kuv43j4Wa++CsCpJwps2eeBQwD2Bu8snkxTtDKDx4GwjuR9E8yC8LNrg==",
"license": "MIT",
"dependencies": {
"@azure/abort-controller": "^2.1.2",
@@ -1145,6 +1391,8 @@
},
"node_modules/@azure/core-tracing": {
"version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.3.1.tgz",
+ "integrity": "sha512-9MWKevR7Hz8kNzzPLfX4EAtGM2b8mr50HPDBvio96bURP/9C+HjdH3sBlLSNNrvRAr5/k/svoH457gB5IKpmwQ==",
"license": "MIT",
"dependencies": {
"tslib": "^2.6.2"
@@ -1155,6 +1403,8 @@
},
"node_modules/@azure/core-util": {
"version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.13.1.tgz",
+ "integrity": "sha512-XPArKLzsvl0Hf0CaGyKHUyVgF7oDnhKoP85Xv6M4StF/1AhfORhZudHtOyf2s+FcbuQ9dPRAjB8J2KvRRMUK2A==",
"license": "MIT",
"dependencies": {
"@azure/abort-controller": "^2.1.2",
@@ -1167,6 +1417,8 @@
},
"node_modules/@azure/core-xml": {
"version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@azure/core-xml/-/core-xml-1.5.0.tgz",
+ "integrity": "sha512-D/sdlJBMJfx7gqoj66PKVmhDDaU6TKA49ptcolxdas29X7AfvLTmfAGLjAcIMBK7UZ2o4lygHIqVckOlQU3xWw==",
"license": "MIT",
"dependencies": {
"fast-xml-parser": "^5.0.7",
@@ -1178,6 +1430,8 @@
},
"node_modules/@azure/logger": {
"version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.3.0.tgz",
+ "integrity": "sha512-fCqPIfOcLE+CGqGPd66c8bZpwAji98tZ4JI9i/mlTNTlsIWslCfpg48s/ypyLxZTump5sypjrKn2/kY7q8oAbA==",
"license": "MIT",
"dependencies": {
"@typespec/ts-http-runtime": "^0.3.0",
@@ -1188,7 +1442,9 @@
}
},
"node_modules/@azure/storage-blob": {
- "version": "12.29.1",
+ "version": "12.30.0",
+ "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.30.0.tgz",
+ "integrity": "sha512-peDCR8blSqhsAKDbpSP/o55S4sheNwSrblvCaHUZ5xUI73XA7ieUGGwrONgD/Fng0EoDe1VOa3fAQ7+WGB3Ocg==",
"license": "MIT",
"dependencies": {
"@azure/abort-controller": "^2.1.2",
@@ -1202,7 +1458,7 @@
"@azure/core-util": "^1.11.0",
"@azure/core-xml": "^1.4.5",
"@azure/logger": "^1.1.4",
- "@azure/storage-common": "^12.1.1",
+ "@azure/storage-common": "^12.2.0",
"events": "^3.0.0",
"tslib": "^2.8.1"
},
@@ -1211,7 +1467,9 @@
}
},
"node_modules/@azure/storage-common": {
- "version": "12.1.1",
+ "version": "12.2.0",
+ "resolved": "https://registry.npmjs.org/@azure/storage-common/-/storage-common-12.2.0.tgz",
+ "integrity": "sha512-YZLxiJ3vBAAnFbG3TFuAMUlxZRexjQX5JDQxOkFGb6e2TpoxH3xyHI6idsMe/QrWtj41U/KoqBxlayzhS+LlwA==",
"license": "MIT",
"dependencies": {
"@azure/abort-controller": "^2.1.2",
@@ -1229,7 +1487,9 @@
}
},
"node_modules/@babel/cli": {
- "version": "7.28.3",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.28.6.tgz",
+ "integrity": "sha512-6EUNcuBbNkj08Oj4gAZ+BUU8yLCgKzgVX4gaTh09Ya2C8ICM4P+G30g4m3akRxSYAp3A/gnWchrNst7px4/nUQ==",
"license": "MIT",
"dependencies": {
"@jridgewell/trace-mapping": "^0.3.28",
@@ -1256,10 +1516,12 @@
}
},
"node_modules/@babel/code-frame": {
- "version": "7.27.1",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.28.6.tgz",
+ "integrity": "sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q==",
"license": "MIT",
"dependencies": {
- "@babel/helper-validator-identifier": "^7.27.1",
+ "@babel/helper-validator-identifier": "^7.28.5",
"js-tokens": "^4.0.0",
"picocolors": "^1.1.1"
},
@@ -1268,25 +1530,29 @@
}
},
"node_modules/@babel/compat-data": {
- "version": "7.28.5",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.6.tgz",
+ "integrity": "sha512-2lfu57JtzctfIrcGMz992hyLlByuzgIk58+hhGCxjKZ3rWI82NnVLjXcaTqkI2NvlcvOskZaiZ5kjUALo3Lpxg==",
"license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/core": {
- "version": "7.28.5",
- "license": "MIT",
- "dependencies": {
- "@babel/code-frame": "^7.27.1",
- "@babel/generator": "^7.28.5",
- "@babel/helper-compilation-targets": "^7.27.2",
- "@babel/helper-module-transforms": "^7.28.3",
- "@babel/helpers": "^7.28.4",
- "@babel/parser": "^7.28.5",
- "@babel/template": "^7.27.2",
- "@babel/traverse": "^7.28.5",
- "@babel/types": "^7.28.5",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.6.tgz",
+ "integrity": "sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.28.6",
+ "@babel/generator": "^7.28.6",
+ "@babel/helper-compilation-targets": "^7.28.6",
+ "@babel/helper-module-transforms": "^7.28.6",
+ "@babel/helpers": "^7.28.6",
+ "@babel/parser": "^7.28.6",
+ "@babel/template": "^7.28.6",
+ "@babel/traverse": "^7.28.6",
+ "@babel/types": "^7.28.6",
"@jridgewell/remapping": "^2.3.5",
"convert-source-map": "^2.0.0",
"debug": "^4.1.0",
@@ -1303,7 +1569,9 @@
}
},
"node_modules/@babel/eslint-parser": {
- "version": "7.28.5",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.28.6.tgz",
+ "integrity": "sha512-QGmsKi2PBO/MHSQk+AAgA9R6OHQr+VqnniFE0eMWZcVcfBZoA2dKn2hUsl3Csg/Plt9opRUWdY7//VXsrIlEiA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1320,11 +1588,13 @@
}
},
"node_modules/@babel/generator": {
- "version": "7.28.5",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.6.tgz",
+ "integrity": "sha512-lOoVRwADj8hjf7al89tvQ2a1lf53Z+7tiXMgpZJL3maQPDxh0DgLMN62B2MKUOFcoodBHLMbDM6WAbKgNy5Suw==",
"license": "MIT",
"dependencies": {
- "@babel/parser": "^7.28.5",
- "@babel/types": "^7.28.5",
+ "@babel/parser": "^7.28.6",
+ "@babel/types": "^7.28.6",
"@jridgewell/gen-mapping": "^0.3.12",
"@jridgewell/trace-mapping": "^0.3.28",
"jsesc": "^3.0.2"
@@ -1335,6 +1605,8 @@
},
"node_modules/@babel/helper-annotate-as-pure": {
"version": "7.27.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz",
+ "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==",
"license": "MIT",
"dependencies": {
"@babel/types": "^7.27.3"
@@ -1344,10 +1616,12 @@
}
},
"node_modules/@babel/helper-compilation-targets": {
- "version": "7.27.2",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz",
+ "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==",
"license": "MIT",
"dependencies": {
- "@babel/compat-data": "^7.27.2",
+ "@babel/compat-data": "^7.28.6",
"@babel/helper-validator-option": "^7.27.1",
"browserslist": "^4.24.0",
"lru-cache": "^5.1.1",
@@ -1358,15 +1632,17 @@
}
},
"node_modules/@babel/helper-create-class-features-plugin": {
- "version": "7.28.5",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.6.tgz",
+ "integrity": "sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==",
"license": "MIT",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.27.3",
"@babel/helper-member-expression-to-functions": "^7.28.5",
"@babel/helper-optimise-call-expression": "^7.27.1",
- "@babel/helper-replace-supers": "^7.27.1",
+ "@babel/helper-replace-supers": "^7.28.6",
"@babel/helper-skip-transparent-expression-wrappers": "^7.27.1",
- "@babel/traverse": "^7.28.5",
+ "@babel/traverse": "^7.28.6",
"semver": "^6.3.1"
},
"engines": {
@@ -1378,6 +1654,8 @@
},
"node_modules/@babel/helper-create-regexp-features-plugin": {
"version": "7.28.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz",
+ "integrity": "sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==",
"license": "MIT",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.27.3",
@@ -1392,14 +1670,16 @@
}
},
"node_modules/@babel/helper-define-polyfill-provider": {
- "version": "0.6.5",
+ "version": "0.6.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.6.tgz",
+ "integrity": "sha512-mOAsxeeKkUKayvZR3HeTYD/fICpCPLJrU5ZjelT/PA6WHtNDBOE436YiaEUvHN454bRM3CebhDsIpieCc4texA==",
"license": "MIT",
"dependencies": {
- "@babel/helper-compilation-targets": "^7.27.2",
- "@babel/helper-plugin-utils": "^7.27.1",
- "debug": "^4.4.1",
+ "@babel/helper-compilation-targets": "^7.28.6",
+ "@babel/helper-plugin-utils": "^7.28.6",
+ "debug": "^4.4.3",
"lodash.debounce": "^4.0.8",
- "resolve": "^1.22.10"
+ "resolve": "^1.22.11"
},
"peerDependencies": {
"@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
@@ -1407,6 +1687,8 @@
},
"node_modules/@babel/helper-globals": {
"version": "7.28.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz",
+ "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==",
"license": "MIT",
"engines": {
"node": ">=6.9.0"
@@ -1414,6 +1696,8 @@
},
"node_modules/@babel/helper-member-expression-to-functions": {
"version": "7.28.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz",
+ "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==",
"license": "MIT",
"dependencies": {
"@babel/traverse": "^7.28.5",
@@ -1424,23 +1708,27 @@
}
},
"node_modules/@babel/helper-module-imports": {
- "version": "7.27.1",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz",
+ "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==",
"license": "MIT",
"dependencies": {
- "@babel/traverse": "^7.27.1",
- "@babel/types": "^7.27.1"
+ "@babel/traverse": "^7.28.6",
+ "@babel/types": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-module-transforms": {
- "version": "7.28.3",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz",
+ "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==",
"license": "MIT",
"dependencies": {
- "@babel/helper-module-imports": "^7.27.1",
- "@babel/helper-validator-identifier": "^7.27.1",
- "@babel/traverse": "^7.28.3"
+ "@babel/helper-module-imports": "^7.28.6",
+ "@babel/helper-validator-identifier": "^7.28.5",
+ "@babel/traverse": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -1451,6 +1739,8 @@
},
"node_modules/@babel/helper-optimise-call-expression": {
"version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz",
+ "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==",
"license": "MIT",
"dependencies": {
"@babel/types": "^7.27.1"
@@ -1460,7 +1750,9 @@
}
},
"node_modules/@babel/helper-plugin-utils": {
- "version": "7.27.1",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz",
+ "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==",
"license": "MIT",
"engines": {
"node": ">=6.9.0"
@@ -1468,6 +1760,8 @@
},
"node_modules/@babel/helper-remap-async-to-generator": {
"version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz",
+ "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==",
"license": "MIT",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.27.1",
@@ -1482,12 +1776,14 @@
}
},
"node_modules/@babel/helper-replace-supers": {
- "version": "7.27.1",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.28.6.tgz",
+ "integrity": "sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==",
"license": "MIT",
"dependencies": {
- "@babel/helper-member-expression-to-functions": "^7.27.1",
+ "@babel/helper-member-expression-to-functions": "^7.28.5",
"@babel/helper-optimise-call-expression": "^7.27.1",
- "@babel/traverse": "^7.27.1"
+ "@babel/traverse": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -1498,6 +1794,8 @@
},
"node_modules/@babel/helper-skip-transparent-expression-wrappers": {
"version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz",
+ "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==",
"license": "MIT",
"dependencies": {
"@babel/traverse": "^7.27.1",
@@ -1509,6 +1807,8 @@
},
"node_modules/@babel/helper-string-parser": {
"version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
+ "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
"license": "MIT",
"engines": {
"node": ">=6.9.0"
@@ -1516,6 +1816,8 @@
},
"node_modules/@babel/helper-validator-identifier": {
"version": "7.28.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz",
+ "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==",
"license": "MIT",
"engines": {
"node": ">=6.9.0"
@@ -1523,39 +1825,47 @@
},
"node_modules/@babel/helper-validator-option": {
"version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz",
+ "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==",
"license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-wrap-function": {
- "version": "7.28.3",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.28.6.tgz",
+ "integrity": "sha512-z+PwLziMNBeSQJonizz2AGnndLsP2DeGHIxDAn+wdHOGuo4Fo1x1HBPPXeE9TAOPHNNWQKCSlA2VZyYyyibDnQ==",
"license": "MIT",
"dependencies": {
- "@babel/template": "^7.27.2",
- "@babel/traverse": "^7.28.3",
- "@babel/types": "^7.28.2"
+ "@babel/template": "^7.28.6",
+ "@babel/traverse": "^7.28.6",
+ "@babel/types": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helpers": {
- "version": "7.28.4",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.6.tgz",
+ "integrity": "sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==",
"license": "MIT",
"dependencies": {
- "@babel/template": "^7.27.2",
- "@babel/types": "^7.28.4"
+ "@babel/template": "^7.28.6",
+ "@babel/types": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/node": {
- "version": "7.28.0",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/node/-/node-7.28.6.tgz",
+ "integrity": "sha512-X3i8Zq/3Au5of74DzuYfgKS2oKRrYGcd5O5QlrB7AqspYKWy0XRTG69HDYnower3HRH/lL38IYAZVPh3OQMXVg==",
"license": "MIT",
"dependencies": {
- "@babel/register": "^7.27.1",
+ "@babel/register": "^7.28.6",
"commander": "^6.2.0",
"core-js": "^3.30.2",
"node-environment-flags": "^1.0.5",
@@ -1573,10 +1883,12 @@
}
},
"node_modules/@babel/parser": {
- "version": "7.28.5",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.6.tgz",
+ "integrity": "sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ==",
"license": "MIT",
"dependencies": {
- "@babel/types": "^7.28.5"
+ "@babel/types": "^7.28.6"
},
"bin": {
"parser": "bin/babel-parser.js"
@@ -1587,6 +1899,8 @@
},
"node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": {
"version": "7.28.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.28.5.tgz",
+ "integrity": "sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==",
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.27.1",
@@ -1601,6 +1915,8 @@
},
"node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": {
"version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz",
+ "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==",
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.27.1"
@@ -1614,6 +1930,8 @@
},
"node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
"version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz",
+ "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==",
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.27.1"
@@ -1627,6 +1945,8 @@
},
"node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
"version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz",
+ "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==",
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.27.1",
@@ -1641,11 +1961,13 @@
}
},
"node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": {
- "version": "7.28.3",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.6.tgz",
+ "integrity": "sha512-a0aBScVTlNaiUe35UtfxAN7A/tehvvG4/ByO6+46VPKTRSlfnAFsgKy0FUh+qAkQrDTmhDkT+IBOKlOoMUxQ0g==",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1",
- "@babel/traverse": "^7.28.3"
+ "@babel/helper-plugin-utils": "^7.28.6",
+ "@babel/traverse": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -1654,8 +1976,28 @@
"@babel/core": "^7.0.0"
}
},
+ "node_modules/@babel/plugin-proposal-logical-assignment-operators": {
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz",
+ "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==",
+ "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-logical-assignment-operators instead.",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
"node_modules/@babel/plugin-proposal-private-property-in-object": {
"version": "7.21.0-placeholder-for-preset-env.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz",
+ "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==",
"license": "MIT",
"engines": {
"node": ">=6.9.0"
@@ -1666,6 +2008,8 @@
},
"node_modules/@babel/plugin-syntax-async-generators": {
"version": "7.8.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
+ "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1677,6 +2021,8 @@
},
"node_modules/@babel/plugin-syntax-bigint": {
"version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz",
+ "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1688,6 +2034,8 @@
},
"node_modules/@babel/plugin-syntax-class-properties": {
"version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
+ "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1699,6 +2047,8 @@
},
"node_modules/@babel/plugin-syntax-class-static-block": {
"version": "7.14.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz",
+ "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1712,10 +2062,12 @@
}
},
"node_modules/@babel/plugin-syntax-import-assertions": {
- "version": "7.27.1",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.28.6.tgz",
+ "integrity": "sha512-pSJUpFHdx9z5nqTSirOCMtYVP2wFgoWhP0p3g8ONK/4IHhLIBd0B9NYqAvIUAhq+OkhO4VM1tENCt0cjlsNShw==",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -1725,10 +2077,12 @@
}
},
"node_modules/@babel/plugin-syntax-import-attributes": {
- "version": "7.27.1",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.28.6.tgz",
+ "integrity": "sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -1739,6 +2093,8 @@
},
"node_modules/@babel/plugin-syntax-import-meta": {
"version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
+ "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1750,6 +2106,8 @@
},
"node_modules/@babel/plugin-syntax-json-strings": {
"version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
+ "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1760,11 +2118,13 @@
}
},
"node_modules/@babel/plugin-syntax-jsx": {
- "version": "7.27.1",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz",
+ "integrity": "sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -1775,6 +2135,8 @@
},
"node_modules/@babel/plugin-syntax-logical-assignment-operators": {
"version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
+ "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1786,6 +2148,8 @@
},
"node_modules/@babel/plugin-syntax-nullish-coalescing-operator": {
"version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
+ "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1797,6 +2161,8 @@
},
"node_modules/@babel/plugin-syntax-numeric-separator": {
"version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
+ "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1808,6 +2174,8 @@
},
"node_modules/@babel/plugin-syntax-object-rest-spread": {
"version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
+ "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1819,6 +2187,8 @@
},
"node_modules/@babel/plugin-syntax-optional-catch-binding": {
"version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
+ "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1830,6 +2200,8 @@
},
"node_modules/@babel/plugin-syntax-optional-chaining": {
"version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
+ "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1841,6 +2213,8 @@
},
"node_modules/@babel/plugin-syntax-private-property-in-object": {
"version": "7.14.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz",
+ "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1855,6 +2229,8 @@
},
"node_modules/@babel/plugin-syntax-top-level-await": {
"version": "7.14.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
+ "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1868,11 +2244,13 @@
}
},
"node_modules/@babel/plugin-syntax-typescript": {
- "version": "7.27.1",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.28.6.tgz",
+ "integrity": "sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -1883,6 +2261,8 @@
},
"node_modules/@babel/plugin-syntax-unicode-sets-regex": {
"version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz",
+ "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==",
"license": "MIT",
"dependencies": {
"@babel/helper-create-regexp-features-plugin": "^7.18.6",
@@ -1897,6 +2277,8 @@
},
"node_modules/@babel/plugin-transform-arrow-functions": {
"version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz",
+ "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==",
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.27.1"
@@ -1909,12 +2291,14 @@
}
},
"node_modules/@babel/plugin-transform-async-generator-functions": {
- "version": "7.28.0",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.6.tgz",
+ "integrity": "sha512-9knsChgsMzBV5Yh3kkhrZNxH3oCYAfMBkNNaVN4cP2RVlFPe8wYdwwcnOsAbkdDoV9UjFtOXWrWB52M8W4jNeA==",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1",
+ "@babel/helper-plugin-utils": "^7.28.6",
"@babel/helper-remap-async-to-generator": "^7.27.1",
- "@babel/traverse": "^7.28.0"
+ "@babel/traverse": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -1924,11 +2308,13 @@
}
},
"node_modules/@babel/plugin-transform-async-to-generator": {
- "version": "7.27.1",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.28.6.tgz",
+ "integrity": "sha512-ilTRcmbuXjsMmcZ3HASTe4caH5Tpo93PkTxF9oG2VZsSWsahydmcEHhix9Ik122RcTnZnUzPbmux4wh1swfv7g==",
"license": "MIT",
"dependencies": {
- "@babel/helper-module-imports": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1",
+ "@babel/helper-module-imports": "^7.28.6",
+ "@babel/helper-plugin-utils": "^7.28.6",
"@babel/helper-remap-async-to-generator": "^7.27.1"
},
"engines": {
@@ -1940,6 +2326,8 @@
},
"node_modules/@babel/plugin-transform-block-scoped-functions": {
"version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz",
+ "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==",
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.27.1"
@@ -1952,10 +2340,12 @@
}
},
"node_modules/@babel/plugin-transform-block-scoping": {
- "version": "7.28.5",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.6.tgz",
+ "integrity": "sha512-tt/7wOtBmwHPNMPu7ax4pdPz6shjFrmHDghvNC+FG9Qvj7D6mJcoRQIF5dy4njmxR941l6rgtvfSB2zX3VlUIw==",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -1965,11 +2355,13 @@
}
},
"node_modules/@babel/plugin-transform-class-properties": {
- "version": "7.27.1",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.28.6.tgz",
+ "integrity": "sha512-dY2wS3I2G7D697VHndN91TJr8/AAfXQNt5ynCTI/MpxMsSzHp+52uNivYT5wCPax3whc47DR8Ba7cmlQMg24bw==",
"license": "MIT",
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1"
+ "@babel/helper-create-class-features-plugin": "^7.28.6",
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -1979,11 +2371,13 @@
}
},
"node_modules/@babel/plugin-transform-class-static-block": {
- "version": "7.28.3",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.6.tgz",
+ "integrity": "sha512-rfQ++ghVwTWTqQ7w8qyDxL1XGihjBss4CmTgGRCTAC9RIbhVpyp4fOeZtta0Lbf+dTNIVJer6ych2ibHwkZqsQ==",
"license": "MIT",
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.28.3",
- "@babel/helper-plugin-utils": "^7.27.1"
+ "@babel/helper-create-class-features-plugin": "^7.28.6",
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -1993,15 +2387,17 @@
}
},
"node_modules/@babel/plugin-transform-classes": {
- "version": "7.28.4",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.6.tgz",
+ "integrity": "sha512-EF5KONAqC5zAqT783iMGuM2ZtmEBy+mJMOKl2BCvPZ2lVrwvXnB6o+OBWCS+CoeCCpVRF2sA2RBKUxvT8tQT5Q==",
"license": "MIT",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.27.3",
- "@babel/helper-compilation-targets": "^7.27.2",
+ "@babel/helper-compilation-targets": "^7.28.6",
"@babel/helper-globals": "^7.28.0",
- "@babel/helper-plugin-utils": "^7.27.1",
- "@babel/helper-replace-supers": "^7.27.1",
- "@babel/traverse": "^7.28.4"
+ "@babel/helper-plugin-utils": "^7.28.6",
+ "@babel/helper-replace-supers": "^7.28.6",
+ "@babel/traverse": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -2011,11 +2407,13 @@
}
},
"node_modules/@babel/plugin-transform-computed-properties": {
- "version": "7.27.1",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.28.6.tgz",
+ "integrity": "sha512-bcc3k0ijhHbc2lEfpFHgx7eYw9KNXqOerKWfzbxEHUGKnS3sz9C4CNL9OiFN1297bDNfUiSO7DaLzbvHQQQ1BQ==",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1",
- "@babel/template": "^7.27.1"
+ "@babel/helper-plugin-utils": "^7.28.6",
+ "@babel/template": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -2026,6 +2424,8 @@
},
"node_modules/@babel/plugin-transform-destructuring": {
"version": "7.28.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz",
+ "integrity": "sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==",
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.27.1",
@@ -2039,11 +2439,13 @@
}
},
"node_modules/@babel/plugin-transform-dotall-regex": {
- "version": "7.27.1",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.28.6.tgz",
+ "integrity": "sha512-SljjowuNKB7q5Oayv4FoPzeB74g3QgLt8IVJw9ADvWy3QnUb/01aw8I4AVv8wYnPvQz2GDDZ/g3GhcNyDBI4Bg==",
"license": "MIT",
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1"
+ "@babel/helper-create-regexp-features-plugin": "^7.28.5",
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -2054,6 +2456,8 @@
},
"node_modules/@babel/plugin-transform-duplicate-keys": {
"version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz",
+ "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==",
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.27.1"
@@ -2066,11 +2470,13 @@
}
},
"node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": {
- "version": "7.27.1",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.28.6.tgz",
+ "integrity": "sha512-5suVoXjC14lUN6ZL9OLKIHCNVWCrqGqlmEp/ixdXjvgnEl/kauLvvMO/Xw9NyMc95Joj1AeLVPVMvibBgSoFlA==",
"license": "MIT",
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1"
+ "@babel/helper-create-regexp-features-plugin": "^7.28.5",
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -2081,6 +2487,8 @@
},
"node_modules/@babel/plugin-transform-dynamic-import": {
"version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz",
+ "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==",
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.27.1"
@@ -2093,11 +2501,13 @@
}
},
"node_modules/@babel/plugin-transform-explicit-resource-management": {
- "version": "7.28.0",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.6.tgz",
+ "integrity": "sha512-Iao5Konzx2b6g7EPqTy40UZbcdXE126tTxVFr/nAIj+WItNxjKSYTEw3RC+A2/ZetmdJsgueL1KhaMCQHkLPIg==",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1",
- "@babel/plugin-transform-destructuring": "^7.28.0"
+ "@babel/helper-plugin-utils": "^7.28.6",
+ "@babel/plugin-transform-destructuring": "^7.28.5"
},
"engines": {
"node": ">=6.9.0"
@@ -2107,10 +2517,12 @@
}
},
"node_modules/@babel/plugin-transform-exponentiation-operator": {
- "version": "7.28.5",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.28.6.tgz",
+ "integrity": "sha512-WitabqiGjV/vJ0aPOLSFfNY1u9U3R7W36B03r5I2KoNix+a3sOhJ3pKFB3R5It9/UiK78NiO0KE9P21cMhlPkw==",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -2121,6 +2533,8 @@
},
"node_modules/@babel/plugin-transform-export-namespace-from": {
"version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz",
+ "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==",
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.27.1"
@@ -2134,6 +2548,8 @@
},
"node_modules/@babel/plugin-transform-for-of": {
"version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz",
+ "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==",
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.27.1",
@@ -2148,6 +2564,8 @@
},
"node_modules/@babel/plugin-transform-function-name": {
"version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz",
+ "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==",
"license": "MIT",
"dependencies": {
"@babel/helper-compilation-targets": "^7.27.1",
@@ -2162,10 +2580,12 @@
}
},
"node_modules/@babel/plugin-transform-json-strings": {
- "version": "7.27.1",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.28.6.tgz",
+ "integrity": "sha512-Nr+hEN+0geQkzhbdgQVPoqr47lZbm+5fCUmO70722xJZd0Mvb59+33QLImGj6F+DkK3xgDi1YVysP8whD6FQAw==",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -2176,6 +2596,8 @@
},
"node_modules/@babel/plugin-transform-literals": {
"version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz",
+ "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==",
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.27.1"
@@ -2188,10 +2610,12 @@
}
},
"node_modules/@babel/plugin-transform-logical-assignment-operators": {
- "version": "7.28.5",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.28.6.tgz",
+ "integrity": "sha512-+anKKair6gpi8VsM/95kmomGNMD0eLz1NQ8+Pfw5sAwWH9fGYXT50E55ZpV0pHUHWf6IUTWPM+f/7AAff+wr9A==",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -2202,6 +2626,8 @@
},
"node_modules/@babel/plugin-transform-member-expression-literals": {
"version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz",
+ "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==",
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.27.1"
@@ -2215,6 +2641,8 @@
},
"node_modules/@babel/plugin-transform-modules-amd": {
"version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz",
+ "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==",
"license": "MIT",
"dependencies": {
"@babel/helper-module-transforms": "^7.27.1",
@@ -2228,11 +2656,13 @@
}
},
"node_modules/@babel/plugin-transform-modules-commonjs": {
- "version": "7.27.1",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.28.6.tgz",
+ "integrity": "sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA==",
"license": "MIT",
"dependencies": {
- "@babel/helper-module-transforms": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1"
+ "@babel/helper-module-transforms": "^7.28.6",
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -2243,6 +2673,8 @@
},
"node_modules/@babel/plugin-transform-modules-systemjs": {
"version": "7.28.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.28.5.tgz",
+ "integrity": "sha512-vn5Jma98LCOeBy/KpeQhXcV2WZgaRUtjwQmjoBuLNlOmkg0fB5pdvYVeWRYI69wWKwK2cD1QbMiUQnoujWvrew==",
"license": "MIT",
"dependencies": {
"@babel/helper-module-transforms": "^7.28.3",
@@ -2259,6 +2691,8 @@
},
"node_modules/@babel/plugin-transform-modules-umd": {
"version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz",
+ "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==",
"license": "MIT",
"dependencies": {
"@babel/helper-module-transforms": "^7.27.1",
@@ -2273,6 +2707,8 @@
},
"node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
"version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz",
+ "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==",
"license": "MIT",
"dependencies": {
"@babel/helper-create-regexp-features-plugin": "^7.27.1",
@@ -2287,6 +2723,8 @@
},
"node_modules/@babel/plugin-transform-new-target": {
"version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz",
+ "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==",
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.27.1"
@@ -2299,10 +2737,12 @@
}
},
"node_modules/@babel/plugin-transform-nullish-coalescing-operator": {
- "version": "7.27.1",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.28.6.tgz",
+ "integrity": "sha512-3wKbRgmzYbw24mDJXT7N+ADXw8BC/imU9yo9c9X9NKaLF1fW+e5H1U5QjMUBe4Qo4Ox/o++IyUkl1sVCLgevKg==",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -2312,10 +2752,12 @@
}
},
"node_modules/@babel/plugin-transform-numeric-separator": {
- "version": "7.27.1",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.28.6.tgz",
+ "integrity": "sha512-SJR8hPynj8outz+SlStQSwvziMN4+Bq99it4tMIf5/Caq+3iOc0JtKyse8puvyXkk3eFRIA5ID/XfunGgO5i6w==",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -2325,14 +2767,16 @@
}
},
"node_modules/@babel/plugin-transform-object-rest-spread": {
- "version": "7.28.4",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.6.tgz",
+ "integrity": "sha512-5rh+JR4JBC4pGkXLAcYdLHZjXudVxWMXbB6u6+E9lRL5TrGVbHt1TjxGbZ8CkmYw9zjkB7jutzOROArsqtncEA==",
"license": "MIT",
"dependencies": {
- "@babel/helper-compilation-targets": "^7.27.2",
- "@babel/helper-plugin-utils": "^7.27.1",
- "@babel/plugin-transform-destructuring": "^7.28.0",
+ "@babel/helper-compilation-targets": "^7.28.6",
+ "@babel/helper-plugin-utils": "^7.28.6",
+ "@babel/plugin-transform-destructuring": "^7.28.5",
"@babel/plugin-transform-parameters": "^7.27.7",
- "@babel/traverse": "^7.28.4"
+ "@babel/traverse": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -2343,6 +2787,8 @@
},
"node_modules/@babel/plugin-transform-object-super": {
"version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz",
+ "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==",
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.27.1",
@@ -2356,10 +2802,12 @@
}
},
"node_modules/@babel/plugin-transform-optional-catch-binding": {
- "version": "7.27.1",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.28.6.tgz",
+ "integrity": "sha512-R8ja/Pyrv0OGAvAXQhSTmWyPJPml+0TMqXlO5w+AsMEiwb2fg3WkOvob7UxFSL3OIttFSGSRFKQsOhJ/X6HQdQ==",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -2369,10 +2817,12 @@
}
},
"node_modules/@babel/plugin-transform-optional-chaining": {
- "version": "7.28.5",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.6.tgz",
+ "integrity": "sha512-A4zobikRGJTsX9uqVFdafzGkqD30t26ck2LmOzAuLL8b2x6k3TIqRiT2xVvA9fNmFeTX484VpsdgmKNA0bS23w==",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1",
+ "@babel/helper-plugin-utils": "^7.28.6",
"@babel/helper-skip-transparent-expression-wrappers": "^7.27.1"
},
"engines": {
@@ -2384,6 +2834,8 @@
},
"node_modules/@babel/plugin-transform-parameters": {
"version": "7.27.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz",
+ "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==",
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.27.1"
@@ -2396,11 +2848,13 @@
}
},
"node_modules/@babel/plugin-transform-private-methods": {
- "version": "7.27.1",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.28.6.tgz",
+ "integrity": "sha512-piiuapX9CRv7+0st8lmuUlRSmX6mBcVeNQ1b4AYzJxfCMuBfB0vBXDiGSmm03pKJw1v6cZ8KSeM+oUnM6yAExg==",
"license": "MIT",
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1"
+ "@babel/helper-create-class-features-plugin": "^7.28.6",
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -2410,12 +2864,14 @@
}
},
"node_modules/@babel/plugin-transform-private-property-in-object": {
- "version": "7.27.1",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.28.6.tgz",
+ "integrity": "sha512-b97jvNSOb5+ehyQmBpmhOCiUC5oVK4PMnpRvO7+ymFBoqYjeDHIU9jnrNUuwHOiL9RpGDoKBpSViarV+BU+eVA==",
"license": "MIT",
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.27.1",
- "@babel/helper-create-class-features-plugin": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1"
+ "@babel/helper-annotate-as-pure": "^7.27.3",
+ "@babel/helper-create-class-features-plugin": "^7.28.6",
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -2426,6 +2882,8 @@
},
"node_modules/@babel/plugin-transform-property-literals": {
"version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz",
+ "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==",
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.27.1"
@@ -2438,10 +2896,12 @@
}
},
"node_modules/@babel/plugin-transform-regenerator": {
- "version": "7.28.4",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.6.tgz",
+ "integrity": "sha512-eZhoEZHYQLL5uc1gS5e9/oTknS0sSSAtd5TkKMUp3J+S/CaUjagc0kOUPsEbDmMeva0nC3WWl4SxVY6+OBuxfw==",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -2451,11 +2911,13 @@
}
},
"node_modules/@babel/plugin-transform-regexp-modifiers": {
- "version": "7.27.1",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.28.6.tgz",
+ "integrity": "sha512-QGWAepm9qxpaIs7UM9FvUSnCGlb8Ua1RhyM4/veAxLwt3gMat/LSGrZixyuj4I6+Kn9iwvqCyPTtbdxanYoWYg==",
"license": "MIT",
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1"
+ "@babel/helper-create-regexp-features-plugin": "^7.28.5",
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -2466,6 +2928,8 @@
},
"node_modules/@babel/plugin-transform-reserved-words": {
"version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz",
+ "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==",
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.27.1"
@@ -2479,6 +2943,8 @@
},
"node_modules/@babel/plugin-transform-runtime": {
"version": "7.28.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.28.5.tgz",
+ "integrity": "sha512-20NUVgOrinudkIBzQ2bNxP08YpKprUkRTiRSd2/Z5GOdPImJGkoN4Z7IQe1T5AdyKI1i5L6RBmluqdSzvaq9/w==",
"license": "MIT",
"dependencies": {
"@babel/helper-module-imports": "^7.27.1",
@@ -2497,6 +2963,8 @@
},
"node_modules/@babel/plugin-transform-shorthand-properties": {
"version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz",
+ "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==",
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.27.1"
@@ -2509,10 +2977,12 @@
}
},
"node_modules/@babel/plugin-transform-spread": {
- "version": "7.27.1",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.28.6.tgz",
+ "integrity": "sha512-9U4QObUC0FtJl05AsUcodau/RWDytrU6uKgkxu09mLR9HLDAtUMoPuuskm5huQsoktmsYpI+bGmq+iapDcriKA==",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1",
+ "@babel/helper-plugin-utils": "^7.28.6",
"@babel/helper-skip-transparent-expression-wrappers": "^7.27.1"
},
"engines": {
@@ -2524,6 +2994,8 @@
},
"node_modules/@babel/plugin-transform-sticky-regex": {
"version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz",
+ "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==",
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.27.1"
@@ -2537,6 +3009,8 @@
},
"node_modules/@babel/plugin-transform-template-literals": {
"version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz",
+ "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==",
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.27.1"
@@ -2550,6 +3024,8 @@
},
"node_modules/@babel/plugin-transform-typeof-symbol": {
"version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz",
+ "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==",
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.27.1"
@@ -2563,6 +3039,8 @@
},
"node_modules/@babel/plugin-transform-unicode-escapes": {
"version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz",
+ "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==",
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.27.1"
@@ -2575,11 +3053,13 @@
}
},
"node_modules/@babel/plugin-transform-unicode-property-regex": {
- "version": "7.27.1",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.28.6.tgz",
+ "integrity": "sha512-4Wlbdl/sIZjzi/8St0evF0gEZrgOswVO6aOzqxh1kDZOl9WmLrHq2HtGhnOJZmHZYKP8WZ1MDLCt5DAWwRo57A==",
"license": "MIT",
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1"
+ "@babel/helper-create-regexp-features-plugin": "^7.28.5",
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -2590,6 +3070,8 @@
},
"node_modules/@babel/plugin-transform-unicode-regex": {
"version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz",
+ "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==",
"license": "MIT",
"dependencies": {
"@babel/helper-create-regexp-features-plugin": "^7.27.1",
@@ -2603,11 +3085,13 @@
}
},
"node_modules/@babel/plugin-transform-unicode-sets-regex": {
- "version": "7.27.1",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.28.6.tgz",
+ "integrity": "sha512-/wHc/paTUmsDYN7SZkpWxogTOBNnlx7nBQYfy6JJlCT7G3mVhltk3e++N7zV0XfgGsrqBxd4rJQt9H16I21Y1Q==",
"license": "MIT",
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1"
+ "@babel/helper-create-regexp-features-plugin": "^7.28.5",
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -2617,73 +3101,75 @@
}
},
"node_modules/@babel/preset-env": {
- "version": "7.28.5",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.28.6.tgz",
+ "integrity": "sha512-GaTI4nXDrs7l0qaJ6Rg06dtOXTBCG6TMDB44zbqofCIC4PqC7SEvmFFtpxzCDw9W5aJ7RKVshgXTLvLdBFV/qw==",
"license": "MIT",
"dependencies": {
- "@babel/compat-data": "^7.28.5",
- "@babel/helper-compilation-targets": "^7.27.2",
- "@babel/helper-plugin-utils": "^7.27.1",
+ "@babel/compat-data": "^7.28.6",
+ "@babel/helper-compilation-targets": "^7.28.6",
+ "@babel/helper-plugin-utils": "^7.28.6",
"@babel/helper-validator-option": "^7.27.1",
"@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.28.5",
"@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1",
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1",
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1",
- "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.3",
+ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.6",
"@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
- "@babel/plugin-syntax-import-assertions": "^7.27.1",
- "@babel/plugin-syntax-import-attributes": "^7.27.1",
+ "@babel/plugin-syntax-import-assertions": "^7.28.6",
+ "@babel/plugin-syntax-import-attributes": "^7.28.6",
"@babel/plugin-syntax-unicode-sets-regex": "^7.18.6",
"@babel/plugin-transform-arrow-functions": "^7.27.1",
- "@babel/plugin-transform-async-generator-functions": "^7.28.0",
- "@babel/plugin-transform-async-to-generator": "^7.27.1",
+ "@babel/plugin-transform-async-generator-functions": "^7.28.6",
+ "@babel/plugin-transform-async-to-generator": "^7.28.6",
"@babel/plugin-transform-block-scoped-functions": "^7.27.1",
- "@babel/plugin-transform-block-scoping": "^7.28.5",
- "@babel/plugin-transform-class-properties": "^7.27.1",
- "@babel/plugin-transform-class-static-block": "^7.28.3",
- "@babel/plugin-transform-classes": "^7.28.4",
- "@babel/plugin-transform-computed-properties": "^7.27.1",
+ "@babel/plugin-transform-block-scoping": "^7.28.6",
+ "@babel/plugin-transform-class-properties": "^7.28.6",
+ "@babel/plugin-transform-class-static-block": "^7.28.6",
+ "@babel/plugin-transform-classes": "^7.28.6",
+ "@babel/plugin-transform-computed-properties": "^7.28.6",
"@babel/plugin-transform-destructuring": "^7.28.5",
- "@babel/plugin-transform-dotall-regex": "^7.27.1",
+ "@babel/plugin-transform-dotall-regex": "^7.28.6",
"@babel/plugin-transform-duplicate-keys": "^7.27.1",
- "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.27.1",
+ "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.28.6",
"@babel/plugin-transform-dynamic-import": "^7.27.1",
- "@babel/plugin-transform-explicit-resource-management": "^7.28.0",
- "@babel/plugin-transform-exponentiation-operator": "^7.28.5",
+ "@babel/plugin-transform-explicit-resource-management": "^7.28.6",
+ "@babel/plugin-transform-exponentiation-operator": "^7.28.6",
"@babel/plugin-transform-export-namespace-from": "^7.27.1",
"@babel/plugin-transform-for-of": "^7.27.1",
"@babel/plugin-transform-function-name": "^7.27.1",
- "@babel/plugin-transform-json-strings": "^7.27.1",
+ "@babel/plugin-transform-json-strings": "^7.28.6",
"@babel/plugin-transform-literals": "^7.27.1",
- "@babel/plugin-transform-logical-assignment-operators": "^7.28.5",
+ "@babel/plugin-transform-logical-assignment-operators": "^7.28.6",
"@babel/plugin-transform-member-expression-literals": "^7.27.1",
"@babel/plugin-transform-modules-amd": "^7.27.1",
- "@babel/plugin-transform-modules-commonjs": "^7.27.1",
+ "@babel/plugin-transform-modules-commonjs": "^7.28.6",
"@babel/plugin-transform-modules-systemjs": "^7.28.5",
"@babel/plugin-transform-modules-umd": "^7.27.1",
"@babel/plugin-transform-named-capturing-groups-regex": "^7.27.1",
"@babel/plugin-transform-new-target": "^7.27.1",
- "@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1",
- "@babel/plugin-transform-numeric-separator": "^7.27.1",
- "@babel/plugin-transform-object-rest-spread": "^7.28.4",
+ "@babel/plugin-transform-nullish-coalescing-operator": "^7.28.6",
+ "@babel/plugin-transform-numeric-separator": "^7.28.6",
+ "@babel/plugin-transform-object-rest-spread": "^7.28.6",
"@babel/plugin-transform-object-super": "^7.27.1",
- "@babel/plugin-transform-optional-catch-binding": "^7.27.1",
- "@babel/plugin-transform-optional-chaining": "^7.28.5",
+ "@babel/plugin-transform-optional-catch-binding": "^7.28.6",
+ "@babel/plugin-transform-optional-chaining": "^7.28.6",
"@babel/plugin-transform-parameters": "^7.27.7",
- "@babel/plugin-transform-private-methods": "^7.27.1",
- "@babel/plugin-transform-private-property-in-object": "^7.27.1",
+ "@babel/plugin-transform-private-methods": "^7.28.6",
+ "@babel/plugin-transform-private-property-in-object": "^7.28.6",
"@babel/plugin-transform-property-literals": "^7.27.1",
- "@babel/plugin-transform-regenerator": "^7.28.4",
- "@babel/plugin-transform-regexp-modifiers": "^7.27.1",
+ "@babel/plugin-transform-regenerator": "^7.28.6",
+ "@babel/plugin-transform-regexp-modifiers": "^7.28.6",
"@babel/plugin-transform-reserved-words": "^7.27.1",
"@babel/plugin-transform-shorthand-properties": "^7.27.1",
- "@babel/plugin-transform-spread": "^7.27.1",
+ "@babel/plugin-transform-spread": "^7.28.6",
"@babel/plugin-transform-sticky-regex": "^7.27.1",
"@babel/plugin-transform-template-literals": "^7.27.1",
"@babel/plugin-transform-typeof-symbol": "^7.27.1",
"@babel/plugin-transform-unicode-escapes": "^7.27.1",
- "@babel/plugin-transform-unicode-property-regex": "^7.27.1",
+ "@babel/plugin-transform-unicode-property-regex": "^7.28.6",
"@babel/plugin-transform-unicode-regex": "^7.27.1",
- "@babel/plugin-transform-unicode-sets-regex": "^7.27.1",
+ "@babel/plugin-transform-unicode-sets-regex": "^7.28.6",
"@babel/preset-modules": "0.1.6-no-external-plugins",
"babel-plugin-polyfill-corejs2": "^0.4.14",
"babel-plugin-polyfill-corejs3": "^0.13.0",
@@ -2700,6 +3186,8 @@
},
"node_modules/@babel/preset-modules": {
"version": "0.1.6-no-external-plugins",
+ "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz",
+ "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==",
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.0.0",
@@ -2711,7 +3199,9 @@
}
},
"node_modules/@babel/register": {
- "version": "7.28.3",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.28.6.tgz",
+ "integrity": "sha512-pgcbbEl/dWQYb6L6Yew6F94rdwygfuv+vJ/tXfwIOYAfPB6TNWpXUMEtEq3YuTeHRdvMIhvz13bkT9CNaS+wqA==",
"license": "MIT",
"dependencies": {
"clone-deep": "^4.0.1",
@@ -2728,34 +3218,40 @@
}
},
"node_modules/@babel/runtime": {
- "version": "7.28.4",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.6.tgz",
+ "integrity": "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==",
"license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/template": {
- "version": "7.27.2",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz",
+ "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==",
"license": "MIT",
"dependencies": {
- "@babel/code-frame": "^7.27.1",
- "@babel/parser": "^7.27.2",
- "@babel/types": "^7.27.1"
+ "@babel/code-frame": "^7.28.6",
+ "@babel/parser": "^7.28.6",
+ "@babel/types": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/traverse": {
- "version": "7.28.5",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.6.tgz",
+ "integrity": "sha512-fgWX62k02qtjqdSNTAGxmKYY/7FSL9WAS1o2Hu5+I5m9T0yxZzr4cnrfXQ/MX0rIifthCSs6FKTlzYbJcPtMNg==",
"license": "MIT",
"dependencies": {
- "@babel/code-frame": "^7.27.1",
- "@babel/generator": "^7.28.5",
+ "@babel/code-frame": "^7.28.6",
+ "@babel/generator": "^7.28.6",
"@babel/helper-globals": "^7.28.0",
- "@babel/parser": "^7.28.5",
- "@babel/template": "^7.27.2",
- "@babel/types": "^7.28.5",
+ "@babel/parser": "^7.28.6",
+ "@babel/template": "^7.28.6",
+ "@babel/types": "^7.28.6",
"debug": "^4.3.1"
},
"engines": {
@@ -2763,7 +3259,9 @@
}
},
"node_modules/@babel/types": {
- "version": "7.28.5",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.6.tgz",
+ "integrity": "sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==",
"license": "MIT",
"dependencies": {
"@babel/helper-string-parser": "^7.27.1",
@@ -2775,13 +3273,15 @@
},
"node_modules/@bcoe/v8-coverage": {
"version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
+ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
"dev": true,
"license": "MIT"
},
"node_modules/@emnapi/runtime": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.7.1.tgz",
- "integrity": "sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==",
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.8.1.tgz",
+ "integrity": "sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==",
"license": "MIT",
"optional": true,
"dependencies": {
@@ -2789,7 +3289,9 @@
}
},
"node_modules/@eslint-community/eslint-utils": {
- "version": "4.9.0",
+ "version": "4.9.1",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz",
+ "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2807,6 +3309,8 @@
},
"node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": {
"version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -2818,6 +3322,8 @@
},
"node_modules/@eslint-community/regexpp": {
"version": "4.12.2",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz",
+ "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==",
"dev": true,
"license": "MIT",
"engines": {
@@ -2826,6 +3332,8 @@
},
"node_modules/@eslint/eslintrc": {
"version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
+ "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2848,11 +3356,15 @@
},
"node_modules/@eslint/eslintrc/node_modules/argparse": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
"dev": true,
"license": "Python-2.0"
},
"node_modules/@eslint/eslintrc/node_modules/js-yaml": {
"version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
+ "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2864,6 +3376,8 @@
},
"node_modules/@eslint/js": {
"version": "8.57.1",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz",
+ "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -2920,6 +3434,9 @@
},
"node_modules/@humanwhocodes/config-array": {
"version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz",
+ "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==",
+ "deprecated": "Use @eslint/config-array instead",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -2933,6 +3450,8 @@
},
"node_modules/@humanwhocodes/module-importer": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
+ "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -2945,11 +3464,16 @@
},
"node_modules/@humanwhocodes/object-schema": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
+ "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
+ "deprecated": "Use @eslint/object-schema instead",
"dev": true,
"license": "BSD-3-Clause"
},
"node_modules/@img/colour": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.0.0.tgz",
+ "integrity": "sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==",
"license": "MIT",
"engines": {
"node": ">=18"
@@ -3394,6 +3918,8 @@
},
"node_modules/@img/sharp-win32-x64": {
"version": "0.34.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz",
+ "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==",
"cpu": [
"x64"
],
@@ -3411,6 +3937,8 @@
},
"node_modules/@istanbuljs/load-nyc-config": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
+ "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -3426,6 +3954,8 @@
},
"node_modules/@istanbuljs/schema": {
"version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
+ "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -3434,6 +3964,8 @@
},
"node_modules/@jest/console": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz",
+ "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3450,6 +3982,8 @@
},
"node_modules/@jest/console/node_modules/slash": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -3458,6 +3992,8 @@
},
"node_modules/@jest/core": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz",
+ "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3504,6 +4040,8 @@
},
"node_modules/@jest/core/node_modules/ansi-styles": {
"version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -3515,6 +4053,8 @@
},
"node_modules/@jest/core/node_modules/pretty-format": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
+ "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3528,11 +4068,15 @@
},
"node_modules/@jest/core/node_modules/react-is": {
"version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
+ "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
"dev": true,
"license": "MIT"
},
"node_modules/@jest/core/node_modules/slash": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -3541,6 +4085,8 @@
},
"node_modules/@jest/environment": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz",
+ "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3555,6 +4101,8 @@
},
"node_modules/@jest/expect": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz",
+ "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3567,6 +4115,8 @@
},
"node_modules/@jest/expect-utils": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz",
+ "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3578,6 +4128,8 @@
},
"node_modules/@jest/fake-timers": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz",
+ "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3594,6 +4146,8 @@
},
"node_modules/@jest/globals": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz",
+ "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3608,6 +4162,8 @@
},
"node_modules/@jest/reporters": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz",
+ "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3650,6 +4206,8 @@
},
"node_modules/@jest/reporters/node_modules/istanbul-lib-instrument": {
"version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz",
+ "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==",
"dev": true,
"license": "BSD-3-Clause",
"dependencies": {
@@ -3665,6 +4223,8 @@
},
"node_modules/@jest/reporters/node_modules/semver": {
"version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true,
"license": "ISC",
"bin": {
@@ -3676,6 +4236,8 @@
},
"node_modules/@jest/reporters/node_modules/slash": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -3684,6 +4246,8 @@
},
"node_modules/@jest/schemas": {
"version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
+ "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3695,6 +4259,8 @@
},
"node_modules/@jest/source-map": {
"version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz",
+ "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3708,6 +4274,8 @@
},
"node_modules/@jest/test-result": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz",
+ "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3722,6 +4290,8 @@
},
"node_modules/@jest/test-sequencer": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz",
+ "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3736,6 +4306,8 @@
},
"node_modules/@jest/test-sequencer/node_modules/slash": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -3744,6 +4316,8 @@
},
"node_modules/@jest/transform": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz",
+ "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3769,6 +4343,8 @@
},
"node_modules/@jest/transform/node_modules/slash": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -3777,6 +4353,8 @@
},
"node_modules/@jest/types": {
"version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz",
+ "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3793,6 +4371,8 @@
},
"node_modules/@jridgewell/gen-mapping": {
"version": "0.3.13",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
+ "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
"license": "MIT",
"dependencies": {
"@jridgewell/sourcemap-codec": "^1.5.0",
@@ -3801,6 +4381,8 @@
},
"node_modules/@jridgewell/remapping": {
"version": "2.3.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz",
+ "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
"license": "MIT",
"dependencies": {
"@jridgewell/gen-mapping": "^0.3.5",
@@ -3809,6 +4391,8 @@
},
"node_modules/@jridgewell/resolve-uri": {
"version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
"license": "MIT",
"engines": {
"node": ">=6.0.0"
@@ -3816,10 +4400,14 @@
},
"node_modules/@jridgewell/sourcemap-codec": {
"version": "1.5.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
+ "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
"license": "MIT"
},
"node_modules/@jridgewell/trace-mapping": {
"version": "0.3.31",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
+ "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
"license": "MIT",
"dependencies": {
"@jridgewell/resolve-uri": "^3.1.0",
@@ -3846,11 +4434,15 @@
},
"node_modules/@nicolo-ribaudo/chokidar-2": {
"version": "2.1.8-no-fsevents.3",
+ "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz",
+ "integrity": "sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==",
"license": "MIT",
"optional": true
},
"node_modules/@nicolo-ribaudo/eslint-scope-5-internals": {
"version": "5.1.1-v1",
+ "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz",
+ "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3859,6 +4451,8 @@
},
"node_modules/@noble/hashes": {
"version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz",
+ "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==",
"dev": true,
"license": "MIT",
"engines": {
@@ -3870,6 +4464,8 @@
},
"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,
"license": "MIT",
"dependencies": {
@@ -3882,6 +4478,8 @@
},
"node_modules/@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,
"license": "MIT",
"engines": {
@@ -3890,6 +4488,8 @@
},
"node_modules/@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,
"license": "MIT",
"dependencies": {
@@ -3927,6 +4527,8 @@
},
"node_modules/@paralleldrive/cuid2": {
"version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/@paralleldrive/cuid2/-/cuid2-2.3.1.tgz",
+ "integrity": "sha512-XO7cAxhnTZl0Yggq6jOgjiOHhbgcO4NqFqwSmQpjK3b6TEE6Uj/jfSk6wzYyemh3+I0sHirKSetjQwn5cZktFw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3948,6 +4550,8 @@
},
"node_modules/@paypal/paypal-server-sdk": {
"version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/@paypal/paypal-server-sdk/-/paypal-server-sdk-0.6.1.tgz",
+ "integrity": "sha512-umwAy2t9D4DzQis61v6j5VJGLTwuqalbNxNt/w+aHu2h91SdxXcILLhE0uYGTKdljeH2KJNo4jMLI6U9vv3mDw==",
"license": "MIT",
"dependencies": {
"@apimatic/authentication-adapters": "^0.5.4",
@@ -3971,6 +4575,8 @@
},
"node_modules/@redis/bloom": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@redis/bloom/-/bloom-1.2.0.tgz",
+ "integrity": "sha512-HG2DFjYKbpNmVXsa0keLHp/3leGJz1mjh09f2RLGGLQZzSHpkmZWuwJbAvo3QcRY8p80m5+ZdXZdYOSBLlp7Cg==",
"license": "MIT",
"peerDependencies": {
"@redis/client": "^1.0.0"
@@ -3978,6 +4584,8 @@
},
"node_modules/@redis/client": {
"version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/@redis/client/-/client-1.6.1.tgz",
+ "integrity": "sha512-/KCsg3xSlR+nCK8/8ZYSknYxvXHwubJrU82F3Lm1Fp6789VQ0/3RJKfsmRXjqfaTA++23CvC3hqmqe/2GEt6Kw==",
"license": "MIT",
"dependencies": {
"cluster-key-slot": "1.1.2",
@@ -3990,10 +4598,14 @@
},
"node_modules/@redis/client/node_modules/yallist": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
"license": "ISC"
},
"node_modules/@redis/graph": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@redis/graph/-/graph-1.1.1.tgz",
+ "integrity": "sha512-FEMTcTHZozZciLRl6GiiIB4zGm5z5F3F6a6FZCyrfxdKOhFlGkiAqlexWMBzCi4DcRoyiOsuLfW+cjlGWyExOw==",
"license": "MIT",
"peerDependencies": {
"@redis/client": "^1.0.0"
@@ -4001,6 +4613,8 @@
},
"node_modules/@redis/json": {
"version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/@redis/json/-/json-1.0.7.tgz",
+ "integrity": "sha512-6UyXfjVaTBTJtKNG4/9Z8PSpKE6XgSyEb8iwaqDcy+uKrd/DGYHTWkUdnQDyzm727V7p21WUMhsqz5oy65kPcQ==",
"license": "MIT",
"peerDependencies": {
"@redis/client": "^1.0.0"
@@ -4008,6 +4622,8 @@
},
"node_modules/@redis/search": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@redis/search/-/search-1.2.0.tgz",
+ "integrity": "sha512-tYoDBbtqOVigEDMAcTGsRlMycIIjwMCgD8eR2t0NANeQmgK/lvxNAvYyb6bZDD4frHRhIHkJu2TBRvB0ERkOmw==",
"license": "MIT",
"peerDependencies": {
"@redis/client": "^1.0.0"
@@ -4015,6 +4631,8 @@
},
"node_modules/@redis/time-series": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@redis/time-series/-/time-series-1.1.0.tgz",
+ "integrity": "sha512-c1Q99M5ljsIuc4YdaCwfUEXsofakb9c8+Zse2qxTadu8TalLXuAESzLvFAvNVbkmSlvlzIQOLpBCmWI9wTOt+g==",
"license": "MIT",
"peerDependencies": {
"@redis/client": "^1.0.0"
@@ -4022,11 +4640,15 @@
},
"node_modules/@rtsao/scc": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz",
+ "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==",
"dev": true,
"license": "MIT"
},
"node_modules/@sentry-internal/tracing": {
"version": "7.120.4",
+ "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.120.4.tgz",
+ "integrity": "sha512-Fz5+4XCg3akeoFK+K7g+d7HqGMjmnLoY2eJlpONJmaeT9pXY7yfUyXKZMmMajdE2LxxKJgQ2YKvSCaGVamTjHw==",
"license": "MIT",
"dependencies": {
"@sentry/core": "7.120.4",
@@ -4039,6 +4661,8 @@
},
"node_modules/@sentry/core": {
"version": "7.120.4",
+ "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.120.4.tgz",
+ "integrity": "sha512-TXu3Q5kKiq8db9OXGkWyXUbIxMMuttB5vJ031yolOl5T/B69JRyAoKuojLBjRv1XX583gS1rSSoX8YXX7ATFGA==",
"license": "MIT",
"dependencies": {
"@sentry/types": "7.120.4",
@@ -4050,6 +4674,8 @@
},
"node_modules/@sentry/integrations": {
"version": "7.120.4",
+ "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-7.120.4.tgz",
+ "integrity": "sha512-kkBTLk053XlhDCg7OkBQTIMF4puqFibeRO3E3YiVc4PGLnocXMaVpOSCkMqAc1k1kZ09UgGi8DxfQhnFEjUkpA==",
"license": "MIT",
"dependencies": {
"@sentry/core": "7.120.4",
@@ -4063,6 +4689,8 @@
},
"node_modules/@sentry/node": {
"version": "7.120.4",
+ "resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.120.4.tgz",
+ "integrity": "sha512-qq3wZAXXj2SRWhqErnGCSJKUhPSlZ+RGnCZjhfjHpP49KNpcd9YdPTIUsFMgeyjdh6Ew6aVCv23g1hTP0CHpYw==",
"license": "MIT",
"dependencies": {
"@sentry-internal/tracing": "7.120.4",
@@ -4077,6 +4705,8 @@
},
"node_modules/@sentry/types": {
"version": "7.120.4",
+ "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.120.4.tgz",
+ "integrity": "sha512-cUq2hSSe6/qrU6oZsEP4InMI5VVdD86aypE+ENrQ6eZEVLTCYm1w6XhW1NvIu3UuWh7gZec4a9J7AFpYxki88Q==",
"license": "MIT",
"engines": {
"node": ">=8"
@@ -4084,6 +4714,8 @@
},
"node_modules/@sentry/utils": {
"version": "7.120.4",
+ "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.120.4.tgz",
+ "integrity": "sha512-zCKpyDIWKHwtervNK2ZlaK8mMV7gVUijAgFeJStH+CU/imcdquizV3pFLlSQYRswG+Lbyd6CT/LGRh3IbtkCFw==",
"license": "MIT",
"dependencies": {
"@sentry/types": "7.120.4"
@@ -4094,11 +4726,15 @@
},
"node_modules/@sinclair/typebox": {
"version": "0.27.8",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
+ "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==",
"dev": true,
"license": "MIT"
},
"node_modules/@sinonjs/commons": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz",
+ "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==",
"dev": true,
"license": "BSD-3-Clause",
"dependencies": {
@@ -4107,6 +4743,8 @@
},
"node_modules/@sinonjs/fake-timers": {
"version": "10.3.0",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz",
+ "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==",
"dev": true,
"license": "BSD-3-Clause",
"dependencies": {
@@ -4114,10 +4752,12 @@
}
},
"node_modules/@smithy/abort-controller": {
- "version": "4.2.5",
+ "version": "4.2.8",
+ "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-4.2.8.tgz",
+ "integrity": "sha512-peuVfkYHAmS5ybKxWcfraK7WBBP0J+rkfUcbHJJKQ4ir3UAUNQI+Y4Vt/PqSzGqgloJ5O1dk7+WzNL8wcCSXbw==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.9.0",
+ "@smithy/types": "^4.12.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -4126,6 +4766,8 @@
},
"node_modules/@smithy/chunked-blob-reader": {
"version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader/-/chunked-blob-reader-5.2.0.tgz",
+ "integrity": "sha512-WmU0TnhEAJLWvfSeMxBNe5xtbselEO8+4wG0NtZeL8oR21WgH1xiO37El+/Y+H/Ie4SCwBy3MxYWmOYaGgZueA==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
@@ -4136,6 +4778,8 @@
},
"node_modules/@smithy/chunked-blob-reader-native": {
"version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-4.2.1.tgz",
+ "integrity": "sha512-lX9Ay+6LisTfpLid2zZtIhSEjHMZoAR5hHCR4H7tBz/Zkfr5ea8RcQ7Tk4mi0P76p4cN+Btz16Ffno7YHpKXnQ==",
"license": "Apache-2.0",
"dependencies": {
"@smithy/util-base64": "^4.3.0",
@@ -4146,14 +4790,16 @@
}
},
"node_modules/@smithy/config-resolver": {
- "version": "4.4.3",
+ "version": "4.4.6",
+ "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-4.4.6.tgz",
+ "integrity": "sha512-qJpzYC64kaj3S0fueiu3kXm8xPrR3PcXDPEgnaNMRn0EjNSZFoFjvbUp0YUDsRhN1CB90EnHJtbxWKevnH99UQ==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/node-config-provider": "^4.3.5",
- "@smithy/types": "^4.9.0",
+ "@smithy/node-config-provider": "^4.3.8",
+ "@smithy/types": "^4.12.0",
"@smithy/util-config-provider": "^4.2.0",
- "@smithy/util-endpoints": "^3.2.5",
- "@smithy/util-middleware": "^4.2.5",
+ "@smithy/util-endpoints": "^3.2.8",
+ "@smithy/util-middleware": "^4.2.8",
"tslib": "^2.6.2"
},
"engines": {
@@ -4161,16 +4807,18 @@
}
},
"node_modules/@smithy/core": {
- "version": "3.18.5",
+ "version": "3.21.1",
+ "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.21.1.tgz",
+ "integrity": "sha512-NUH8R4O6FkN8HKMojzbGg/5pNjsfTjlMmeFclyPfPaXXUrbr5TzhWgbf7t92wfrpCHRgpjyz7ffASIS3wX28aA==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/middleware-serde": "^4.2.6",
- "@smithy/protocol-http": "^5.3.5",
- "@smithy/types": "^4.9.0",
+ "@smithy/middleware-serde": "^4.2.9",
+ "@smithy/protocol-http": "^5.3.8",
+ "@smithy/types": "^4.12.0",
"@smithy/util-base64": "^4.3.0",
"@smithy/util-body-length-browser": "^4.2.0",
- "@smithy/util-middleware": "^4.2.5",
- "@smithy/util-stream": "^4.5.6",
+ "@smithy/util-middleware": "^4.2.8",
+ "@smithy/util-stream": "^4.5.10",
"@smithy/util-utf8": "^4.2.0",
"@smithy/uuid": "^1.1.0",
"tslib": "^2.6.2"
@@ -4180,13 +4828,15 @@
}
},
"node_modules/@smithy/credential-provider-imds": {
- "version": "4.2.5",
+ "version": "4.2.8",
+ "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.2.8.tgz",
+ "integrity": "sha512-FNT0xHS1c/CPN8upqbMFP83+ul5YgdisfCfkZ86Jh2NSmnqw/AJ6x5pEogVCTVvSm7j9MopRU89bmDelxuDMYw==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/node-config-provider": "^4.3.5",
- "@smithy/property-provider": "^4.2.5",
- "@smithy/types": "^4.9.0",
- "@smithy/url-parser": "^4.2.5",
+ "@smithy/node-config-provider": "^4.3.8",
+ "@smithy/property-provider": "^4.2.8",
+ "@smithy/types": "^4.12.0",
+ "@smithy/url-parser": "^4.2.8",
"tslib": "^2.6.2"
},
"engines": {
@@ -4194,11 +4844,13 @@
}
},
"node_modules/@smithy/eventstream-codec": {
- "version": "4.2.5",
+ "version": "4.2.8",
+ "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-4.2.8.tgz",
+ "integrity": "sha512-jS/O5Q14UsufqoGhov7dHLOPCzkYJl9QDzusI2Psh4wyYx/izhzvX9P4D69aTxcdfVhEPhjK+wYyn/PzLjKbbw==",
"license": "Apache-2.0",
"dependencies": {
"@aws-crypto/crc32": "5.2.0",
- "@smithy/types": "^4.9.0",
+ "@smithy/types": "^4.12.0",
"@smithy/util-hex-encoding": "^4.2.0",
"tslib": "^2.6.2"
},
@@ -4207,11 +4859,13 @@
}
},
"node_modules/@smithy/eventstream-serde-browser": {
- "version": "4.2.5",
+ "version": "4.2.8",
+ "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-4.2.8.tgz",
+ "integrity": "sha512-MTfQT/CRQz5g24ayXdjg53V0mhucZth4PESoA5IhvaWVDTOQLfo8qI9vzqHcPsdd2v6sqfTYqF5L/l+pea5Uyw==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/eventstream-serde-universal": "^4.2.5",
- "@smithy/types": "^4.9.0",
+ "@smithy/eventstream-serde-universal": "^4.2.8",
+ "@smithy/types": "^4.12.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -4219,10 +4873,12 @@
}
},
"node_modules/@smithy/eventstream-serde-config-resolver": {
- "version": "4.3.5",
+ "version": "4.3.8",
+ "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-4.3.8.tgz",
+ "integrity": "sha512-ah12+luBiDGzBruhu3efNy1IlbwSEdNiw8fOZksoKoWW1ZHvO/04MQsdnws/9Aj+5b0YXSSN2JXKy/ClIsW8MQ==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.9.0",
+ "@smithy/types": "^4.12.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -4230,11 +4886,13 @@
}
},
"node_modules/@smithy/eventstream-serde-node": {
- "version": "4.2.5",
+ "version": "4.2.8",
+ "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-4.2.8.tgz",
+ "integrity": "sha512-cYpCpp29z6EJHa5T9WL0KAlq3SOKUQkcgSoeRfRVwjGgSFl7Uh32eYGt7IDYCX20skiEdRffyDpvF2efEZPC0A==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/eventstream-serde-universal": "^4.2.5",
- "@smithy/types": "^4.9.0",
+ "@smithy/eventstream-serde-universal": "^4.2.8",
+ "@smithy/types": "^4.12.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -4242,11 +4900,13 @@
}
},
"node_modules/@smithy/eventstream-serde-universal": {
- "version": "4.2.5",
+ "version": "4.2.8",
+ "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-4.2.8.tgz",
+ "integrity": "sha512-iJ6YNJd0bntJYnX6s52NC4WFYcZeKrPUr1Kmmr5AwZcwCSzVpS7oavAmxMR7pMq7V+D1G4s9F5NJK0xwOsKAlQ==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/eventstream-codec": "^4.2.5",
- "@smithy/types": "^4.9.0",
+ "@smithy/eventstream-codec": "^4.2.8",
+ "@smithy/types": "^4.12.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -4254,12 +4914,14 @@
}
},
"node_modules/@smithy/fetch-http-handler": {
- "version": "5.3.6",
+ "version": "5.3.9",
+ "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.3.9.tgz",
+ "integrity": "sha512-I4UhmcTYXBrct03rwzQX1Y/iqQlzVQaPxWjCjula++5EmWq9YGBrx6bbGqluGc1f0XEfhSkiY4jhLgbsJUMKRA==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/protocol-http": "^5.3.5",
- "@smithy/querystring-builder": "^4.2.5",
- "@smithy/types": "^4.9.0",
+ "@smithy/protocol-http": "^5.3.8",
+ "@smithy/querystring-builder": "^4.2.8",
+ "@smithy/types": "^4.12.0",
"@smithy/util-base64": "^4.3.0",
"tslib": "^2.6.2"
},
@@ -4268,12 +4930,14 @@
}
},
"node_modules/@smithy/hash-blob-browser": {
- "version": "4.2.6",
+ "version": "4.2.9",
+ "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-4.2.9.tgz",
+ "integrity": "sha512-m80d/iicI7DlBDxyQP6Th7BW/ejDGiF0bgI754+tiwK0lgMkcaIBgvwwVc7OFbY4eUzpGtnig52MhPAEJ7iNYg==",
"license": "Apache-2.0",
"dependencies": {
"@smithy/chunked-blob-reader": "^5.2.0",
"@smithy/chunked-blob-reader-native": "^4.2.1",
- "@smithy/types": "^4.9.0",
+ "@smithy/types": "^4.12.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -4281,10 +4945,12 @@
}
},
"node_modules/@smithy/hash-node": {
- "version": "4.2.5",
+ "version": "4.2.8",
+ "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-4.2.8.tgz",
+ "integrity": "sha512-7ZIlPbmaDGxVoxErDZnuFG18WekhbA/g2/i97wGj+wUBeS6pcUeAym8u4BXh/75RXWhgIJhyC11hBzig6MljwA==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.9.0",
+ "@smithy/types": "^4.12.0",
"@smithy/util-buffer-from": "^4.2.0",
"@smithy/util-utf8": "^4.2.0",
"tslib": "^2.6.2"
@@ -4294,10 +4960,12 @@
}
},
"node_modules/@smithy/hash-stream-node": {
- "version": "4.2.5",
+ "version": "4.2.8",
+ "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-4.2.8.tgz",
+ "integrity": "sha512-v0FLTXgHrTeheYZFGhR+ehX5qUm4IQsjAiL9qehad2cyjMWcN2QG6/4mSwbSgEQzI7jwfoXj7z4fxZUx/Mhj2w==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.9.0",
+ "@smithy/types": "^4.12.0",
"@smithy/util-utf8": "^4.2.0",
"tslib": "^2.6.2"
},
@@ -4306,10 +4974,12 @@
}
},
"node_modules/@smithy/invalid-dependency": {
- "version": "4.2.5",
+ "version": "4.2.8",
+ "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-4.2.8.tgz",
+ "integrity": "sha512-N9iozRybwAQ2dn9Fot9kI6/w9vos2oTXLhtK7ovGqwZjlOcxu6XhPlpLpC+INsxktqHinn5gS2DXDjDF2kG5sQ==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.9.0",
+ "@smithy/types": "^4.12.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -4318,6 +4988,8 @@
},
"node_modules/@smithy/is-array-buffer": {
"version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-4.2.0.tgz",
+ "integrity": "sha512-DZZZBvC7sjcYh4MazJSGiWMI2L7E0oCiRHREDzIxi/M2LY79/21iXt6aPLHge82wi5LsuRF5A06Ds3+0mlh6CQ==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
@@ -4327,10 +4999,12 @@
}
},
"node_modules/@smithy/md5-js": {
- "version": "4.2.5",
+ "version": "4.2.8",
+ "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-4.2.8.tgz",
+ "integrity": "sha512-oGMaLj4tVZzLi3itBa9TCswgMBr7k9b+qKYowQ6x1rTyTuO1IU2YHdHUa+891OsOH+wCsH7aTPRsTJO3RMQmjQ==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.9.0",
+ "@smithy/types": "^4.12.0",
"@smithy/util-utf8": "^4.2.0",
"tslib": "^2.6.2"
},
@@ -4339,11 +5013,13 @@
}
},
"node_modules/@smithy/middleware-content-length": {
- "version": "4.2.5",
+ "version": "4.2.8",
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-4.2.8.tgz",
+ "integrity": "sha512-RO0jeoaYAB1qBRhfVyq0pMgBoUK34YEJxVxyjOWYZiOKOq2yMZ4MnVXMZCUDenpozHue207+9P5ilTV1zeda0A==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/protocol-http": "^5.3.5",
- "@smithy/types": "^4.9.0",
+ "@smithy/protocol-http": "^5.3.8",
+ "@smithy/types": "^4.12.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -4351,16 +5027,18 @@
}
},
"node_modules/@smithy/middleware-endpoint": {
- "version": "4.3.12",
+ "version": "4.4.11",
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.4.11.tgz",
+ "integrity": "sha512-/WqsrycweGGfb9sSzME4CrsuayjJF6BueBmkKlcbeU5q18OhxRrvvKlmfw3tpDsK5ilx2XUJvoukwxHB0nHs/Q==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/core": "^3.18.5",
- "@smithy/middleware-serde": "^4.2.6",
- "@smithy/node-config-provider": "^4.3.5",
- "@smithy/shared-ini-file-loader": "^4.4.0",
- "@smithy/types": "^4.9.0",
- "@smithy/url-parser": "^4.2.5",
- "@smithy/util-middleware": "^4.2.5",
+ "@smithy/core": "^3.21.1",
+ "@smithy/middleware-serde": "^4.2.9",
+ "@smithy/node-config-provider": "^4.3.8",
+ "@smithy/shared-ini-file-loader": "^4.4.3",
+ "@smithy/types": "^4.12.0",
+ "@smithy/url-parser": "^4.2.8",
+ "@smithy/util-middleware": "^4.2.8",
"tslib": "^2.6.2"
},
"engines": {
@@ -4368,16 +5046,18 @@
}
},
"node_modules/@smithy/middleware-retry": {
- "version": "4.4.12",
+ "version": "4.4.27",
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.4.27.tgz",
+ "integrity": "sha512-xFUYCGRVsfgiN5EjsJJSzih9+yjStgMTCLANPlf0LVQkPDYCe0hz97qbdTZosFOiYlGBlHYityGRxrQ/hxhfVQ==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/node-config-provider": "^4.3.5",
- "@smithy/protocol-http": "^5.3.5",
- "@smithy/service-error-classification": "^4.2.5",
- "@smithy/smithy-client": "^4.9.8",
- "@smithy/types": "^4.9.0",
- "@smithy/util-middleware": "^4.2.5",
- "@smithy/util-retry": "^4.2.5",
+ "@smithy/node-config-provider": "^4.3.8",
+ "@smithy/protocol-http": "^5.3.8",
+ "@smithy/service-error-classification": "^4.2.8",
+ "@smithy/smithy-client": "^4.10.12",
+ "@smithy/types": "^4.12.0",
+ "@smithy/util-middleware": "^4.2.8",
+ "@smithy/util-retry": "^4.2.8",
"@smithy/uuid": "^1.1.0",
"tslib": "^2.6.2"
},
@@ -4386,11 +5066,13 @@
}
},
"node_modules/@smithy/middleware-serde": {
- "version": "4.2.6",
+ "version": "4.2.9",
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-4.2.9.tgz",
+ "integrity": "sha512-eMNiej0u/snzDvlqRGSN3Vl0ESn3838+nKyVfF2FKNXFbi4SERYT6PR392D39iczngbqqGG0Jl1DlCnp7tBbXQ==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/protocol-http": "^5.3.5",
- "@smithy/types": "^4.9.0",
+ "@smithy/protocol-http": "^5.3.8",
+ "@smithy/types": "^4.12.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -4398,10 +5080,12 @@
}
},
"node_modules/@smithy/middleware-stack": {
- "version": "4.2.5",
+ "version": "4.2.8",
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-4.2.8.tgz",
+ "integrity": "sha512-w6LCfOviTYQjBctOKSwy6A8FIkQy7ICvglrZFl6Bw4FmcQ1Z420fUtIhxaUZZshRe0VCq4kvDiPiXrPZAe8oRA==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.9.0",
+ "@smithy/types": "^4.12.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -4409,12 +5093,14 @@
}
},
"node_modules/@smithy/node-config-provider": {
- "version": "4.3.5",
+ "version": "4.3.8",
+ "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-4.3.8.tgz",
+ "integrity": "sha512-aFP1ai4lrbVlWjfpAfRSL8KFcnJQYfTl5QxLJXY32vghJrDuFyPZ6LtUL+JEGYiFRG1PfPLHLoxj107ulncLIg==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/property-provider": "^4.2.5",
- "@smithy/shared-ini-file-loader": "^4.4.0",
- "@smithy/types": "^4.9.0",
+ "@smithy/property-provider": "^4.2.8",
+ "@smithy/shared-ini-file-loader": "^4.4.3",
+ "@smithy/types": "^4.12.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -4422,13 +5108,15 @@
}
},
"node_modules/@smithy/node-http-handler": {
- "version": "4.4.5",
+ "version": "4.4.8",
+ "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.4.8.tgz",
+ "integrity": "sha512-q9u+MSbJVIJ1QmJ4+1u+cERXkrhuILCBDsJUBAW1MPE6sFonbCNaegFuwW9ll8kh5UdyY3jOkoOGlc7BesoLpg==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/abort-controller": "^4.2.5",
- "@smithy/protocol-http": "^5.3.5",
- "@smithy/querystring-builder": "^4.2.5",
- "@smithy/types": "^4.9.0",
+ "@smithy/abort-controller": "^4.2.8",
+ "@smithy/protocol-http": "^5.3.8",
+ "@smithy/querystring-builder": "^4.2.8",
+ "@smithy/types": "^4.12.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -4436,10 +5124,12 @@
}
},
"node_modules/@smithy/property-provider": {
- "version": "4.2.5",
+ "version": "4.2.8",
+ "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-4.2.8.tgz",
+ "integrity": "sha512-EtCTbyIveCKeOXDSWSdze3k612yCPq1YbXsbqX3UHhkOSW8zKsM9NOJG5gTIya0vbY2DIaieG8pKo1rITHYL0w==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.9.0",
+ "@smithy/types": "^4.12.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -4447,10 +5137,12 @@
}
},
"node_modules/@smithy/protocol-http": {
- "version": "5.3.5",
+ "version": "5.3.8",
+ "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-5.3.8.tgz",
+ "integrity": "sha512-QNINVDhxpZ5QnP3aviNHQFlRogQZDfYlCkQT+7tJnErPQbDhysondEjhikuANxgMsZrkGeiAxXy4jguEGsDrWQ==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.9.0",
+ "@smithy/types": "^4.12.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -4458,10 +5150,12 @@
}
},
"node_modules/@smithy/querystring-builder": {
- "version": "4.2.5",
+ "version": "4.2.8",
+ "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-4.2.8.tgz",
+ "integrity": "sha512-Xr83r31+DrE8CP3MqPgMJl+pQlLLmOfiEUnoyAlGzzJIrEsbKsPy1hqH0qySaQm4oWrCBlUqRt+idEgunKB+iw==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.9.0",
+ "@smithy/types": "^4.12.0",
"@smithy/util-uri-escape": "^4.2.0",
"tslib": "^2.6.2"
},
@@ -4470,10 +5164,12 @@
}
},
"node_modules/@smithy/querystring-parser": {
- "version": "4.2.5",
+ "version": "4.2.8",
+ "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-4.2.8.tgz",
+ "integrity": "sha512-vUurovluVy50CUlazOiXkPq40KGvGWSdmusa3130MwrR1UNnNgKAlj58wlOe61XSHRpUfIIh6cE0zZ8mzKaDPA==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.9.0",
+ "@smithy/types": "^4.12.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -4481,20 +5177,24 @@
}
},
"node_modules/@smithy/service-error-classification": {
- "version": "4.2.5",
+ "version": "4.2.8",
+ "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-4.2.8.tgz",
+ "integrity": "sha512-mZ5xddodpJhEt3RkCjbmUQuXUOaPNTkbMGR0bcS8FE0bJDLMZlhmpgrvPNCYglVw5rsYTpSnv19womw9WWXKQQ==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.9.0"
+ "@smithy/types": "^4.12.0"
},
"engines": {
"node": ">=18.0.0"
}
},
"node_modules/@smithy/shared-ini-file-loader": {
- "version": "4.4.0",
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.4.3.tgz",
+ "integrity": "sha512-DfQjxXQnzC5UbCUPeC3Ie8u+rIWZTvuDPAGU/BxzrOGhRvgUanaP68kDZA+jaT3ZI+djOf+4dERGlm9mWfFDrg==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.9.0",
+ "@smithy/types": "^4.12.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -4502,14 +5202,16 @@
}
},
"node_modules/@smithy/signature-v4": {
- "version": "5.3.5",
+ "version": "5.3.8",
+ "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.3.8.tgz",
+ "integrity": "sha512-6A4vdGj7qKNRF16UIcO8HhHjKW27thsxYci+5r/uVRkdcBEkOEiY8OMPuydLX4QHSrJqGHPJzPRwwVTqbLZJhg==",
"license": "Apache-2.0",
"dependencies": {
"@smithy/is-array-buffer": "^4.2.0",
- "@smithy/protocol-http": "^5.3.5",
- "@smithy/types": "^4.9.0",
+ "@smithy/protocol-http": "^5.3.8",
+ "@smithy/types": "^4.12.0",
"@smithy/util-hex-encoding": "^4.2.0",
- "@smithy/util-middleware": "^4.2.5",
+ "@smithy/util-middleware": "^4.2.8",
"@smithy/util-uri-escape": "^4.2.0",
"@smithy/util-utf8": "^4.2.0",
"tslib": "^2.6.2"
@@ -4519,15 +5221,17 @@
}
},
"node_modules/@smithy/smithy-client": {
- "version": "4.9.8",
+ "version": "4.10.12",
+ "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.10.12.tgz",
+ "integrity": "sha512-VKO/HKoQ5OrSHW6AJUmEnUKeXI1/5LfCwO9cwyao7CmLvGnZeM1i36Lyful3LK1XU7HwTVieTqO1y2C/6t3qtA==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/core": "^3.18.5",
- "@smithy/middleware-endpoint": "^4.3.12",
- "@smithy/middleware-stack": "^4.2.5",
- "@smithy/protocol-http": "^5.3.5",
- "@smithy/types": "^4.9.0",
- "@smithy/util-stream": "^4.5.6",
+ "@smithy/core": "^3.21.1",
+ "@smithy/middleware-endpoint": "^4.4.11",
+ "@smithy/middleware-stack": "^4.2.8",
+ "@smithy/protocol-http": "^5.3.8",
+ "@smithy/types": "^4.12.0",
+ "@smithy/util-stream": "^4.5.10",
"tslib": "^2.6.2"
},
"engines": {
@@ -4535,7 +5239,9 @@
}
},
"node_modules/@smithy/types": {
- "version": "4.9.0",
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/@smithy/types/-/types-4.12.0.tgz",
+ "integrity": "sha512-9YcuJVTOBDjg9LWo23Qp0lTQ3D7fQsQtwle0jVfpbUHy9qBwCEgKuVH4FqFB3VYu0nwdHKiEMA+oXz7oV8X1kw==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
@@ -4545,11 +5251,13 @@
}
},
"node_modules/@smithy/url-parser": {
- "version": "4.2.5",
+ "version": "4.2.8",
+ "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-4.2.8.tgz",
+ "integrity": "sha512-NQho9U68TGMEU639YkXnVMV3GEFFULmmaWdlu1E9qzyIePOHsoSnagTGSDv1Zi8DCNN6btxOSdgmy5E/hsZwhA==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/querystring-parser": "^4.2.5",
- "@smithy/types": "^4.9.0",
+ "@smithy/querystring-parser": "^4.2.8",
+ "@smithy/types": "^4.12.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -4558,6 +5266,8 @@
},
"node_modules/@smithy/util-base64": {
"version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-4.3.0.tgz",
+ "integrity": "sha512-GkXZ59JfyxsIwNTWFnjmFEI8kZpRNIBfxKjv09+nkAWPt/4aGaEWMM04m4sxgNVWkbt2MdSvE3KF/PfX4nFedQ==",
"license": "Apache-2.0",
"dependencies": {
"@smithy/util-buffer-from": "^4.2.0",
@@ -4570,6 +5280,8 @@
},
"node_modules/@smithy/util-body-length-browser": {
"version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-4.2.0.tgz",
+ "integrity": "sha512-Fkoh/I76szMKJnBXWPdFkQJl2r9SjPt3cMzLdOB6eJ4Pnpas8hVoWPYemX/peO0yrrvldgCUVJqOAjUrOLjbxg==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
@@ -4580,6 +5292,8 @@
},
"node_modules/@smithy/util-body-length-node": {
"version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-4.2.1.tgz",
+ "integrity": "sha512-h53dz/pISVrVrfxV1iqXlx5pRg3V2YWFcSQyPyXZRrZoZj4R4DeWRDo1a7dd3CPTcFi3kE+98tuNyD2axyZReA==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
@@ -4590,6 +5304,8 @@
},
"node_modules/@smithy/util-buffer-from": {
"version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-4.2.0.tgz",
+ "integrity": "sha512-kAY9hTKulTNevM2nlRtxAG2FQ3B2OR6QIrPY3zE5LqJy1oxzmgBGsHLWTcNhWXKchgA0WHW+mZkQrng/pgcCew==",
"license": "Apache-2.0",
"dependencies": {
"@smithy/is-array-buffer": "^4.2.0",
@@ -4601,6 +5317,8 @@
},
"node_modules/@smithy/util-config-provider": {
"version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-4.2.0.tgz",
+ "integrity": "sha512-YEjpl6XJ36FTKmD+kRJJWYvrHeUvm5ykaUS5xK+6oXffQPHeEM4/nXlZPe+Wu0lsgRUcNZiliYNh/y7q9c2y6Q==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
@@ -4610,12 +5328,14 @@
}
},
"node_modules/@smithy/util-defaults-mode-browser": {
- "version": "4.3.11",
+ "version": "4.3.26",
+ "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.26.tgz",
+ "integrity": "sha512-vva0dzYUTgn7DdE0uaha10uEdAgmdLnNFowKFjpMm6p2R0XDk5FHPX3CBJLzWQkQXuEprsb0hGz9YwbicNWhjw==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/property-provider": "^4.2.5",
- "@smithy/smithy-client": "^4.9.8",
- "@smithy/types": "^4.9.0",
+ "@smithy/property-provider": "^4.2.8",
+ "@smithy/smithy-client": "^4.10.12",
+ "@smithy/types": "^4.12.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -4623,15 +5343,17 @@
}
},
"node_modules/@smithy/util-defaults-mode-node": {
- "version": "4.2.14",
+ "version": "4.2.29",
+ "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.29.tgz",
+ "integrity": "sha512-c6D7IUBsZt/aNnTBHMTf+OVh+h/JcxUUgfTcIJaWRe6zhOum1X+pNKSZtZ+7fbOn5I99XVFtmrnXKv8yHHErTQ==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/config-resolver": "^4.4.3",
- "@smithy/credential-provider-imds": "^4.2.5",
- "@smithy/node-config-provider": "^4.3.5",
- "@smithy/property-provider": "^4.2.5",
- "@smithy/smithy-client": "^4.9.8",
- "@smithy/types": "^4.9.0",
+ "@smithy/config-resolver": "^4.4.6",
+ "@smithy/credential-provider-imds": "^4.2.8",
+ "@smithy/node-config-provider": "^4.3.8",
+ "@smithy/property-provider": "^4.2.8",
+ "@smithy/smithy-client": "^4.10.12",
+ "@smithy/types": "^4.12.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -4639,11 +5361,13 @@
}
},
"node_modules/@smithy/util-endpoints": {
- "version": "3.2.5",
+ "version": "3.2.8",
+ "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-3.2.8.tgz",
+ "integrity": "sha512-8JaVTn3pBDkhZgHQ8R0epwWt+BqPSLCjdjXXusK1onwJlRuN69fbvSK66aIKKO7SwVFM6x2J2ox5X8pOaWcUEw==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/node-config-provider": "^4.3.5",
- "@smithy/types": "^4.9.0",
+ "@smithy/node-config-provider": "^4.3.8",
+ "@smithy/types": "^4.12.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -4652,6 +5376,8 @@
},
"node_modules/@smithy/util-hex-encoding": {
"version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-4.2.0.tgz",
+ "integrity": "sha512-CCQBwJIvXMLKxVbO88IukazJD9a4kQ9ZN7/UMGBjBcJYvatpWk+9g870El4cB8/EJxfe+k+y0GmR9CAzkF+Nbw==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
@@ -4661,10 +5387,12 @@
}
},
"node_modules/@smithy/util-middleware": {
- "version": "4.2.5",
+ "version": "4.2.8",
+ "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-4.2.8.tgz",
+ "integrity": "sha512-PMqfeJxLcNPMDgvPbbLl/2Vpin+luxqTGPpW3NAQVLbRrFRzTa4rNAASYeIGjRV9Ytuhzny39SpyU04EQreF+A==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.9.0",
+ "@smithy/types": "^4.12.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -4672,11 +5400,13 @@
}
},
"node_modules/@smithy/util-retry": {
- "version": "4.2.5",
+ "version": "4.2.8",
+ "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-4.2.8.tgz",
+ "integrity": "sha512-CfJqwvoRY0kTGe5AkQokpURNCT1u/MkRzMTASWMPPo2hNSnKtF1D45dQl3DE2LKLr4m+PW9mCeBMJr5mCAVThg==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/service-error-classification": "^4.2.5",
- "@smithy/types": "^4.9.0",
+ "@smithy/service-error-classification": "^4.2.8",
+ "@smithy/types": "^4.12.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -4684,12 +5414,14 @@
}
},
"node_modules/@smithy/util-stream": {
- "version": "4.5.6",
+ "version": "4.5.10",
+ "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-4.5.10.tgz",
+ "integrity": "sha512-jbqemy51UFSZSp2y0ZmRfckmrzuKww95zT9BYMmuJ8v3altGcqjwoV1tzpOwuHaKrwQrCjIzOib499ymr2f98g==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/fetch-http-handler": "^5.3.6",
- "@smithy/node-http-handler": "^4.4.5",
- "@smithy/types": "^4.9.0",
+ "@smithy/fetch-http-handler": "^5.3.9",
+ "@smithy/node-http-handler": "^4.4.8",
+ "@smithy/types": "^4.12.0",
"@smithy/util-base64": "^4.3.0",
"@smithy/util-buffer-from": "^4.2.0",
"@smithy/util-hex-encoding": "^4.2.0",
@@ -4702,6 +5434,8 @@
},
"node_modules/@smithy/util-uri-escape": {
"version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-4.2.0.tgz",
+ "integrity": "sha512-igZpCKV9+E/Mzrpq6YacdTQ0qTiLm85gD6N/IrmyDvQFA4UnU3d5g3m8tMT/6zG/vVkWSU+VxeUyGonL62DuxA==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
@@ -4712,6 +5446,8 @@
},
"node_modules/@smithy/util-utf8": {
"version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-4.2.0.tgz",
+ "integrity": "sha512-zBPfuzoI8xyBtR2P6WQj63Rz8i3AmfAaJLuNG8dWsfvPe8lO4aCPYLn879mEgHndZH1zQ2oXmG8O1GGzzaoZiw==",
"license": "Apache-2.0",
"dependencies": {
"@smithy/util-buffer-from": "^4.2.0",
@@ -4722,11 +5458,13 @@
}
},
"node_modules/@smithy/util-waiter": {
- "version": "4.2.5",
+ "version": "4.2.8",
+ "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-4.2.8.tgz",
+ "integrity": "sha512-n+lahlMWk+aejGuax7DPWtqav8HYnWxQwR+LCG2BgCUmaGcTe9qZCFsmw8TMg9iG75HOwhrJCX9TCJRLH+Yzqg==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/abort-controller": "^4.2.5",
- "@smithy/types": "^4.9.0",
+ "@smithy/abort-controller": "^4.2.8",
+ "@smithy/types": "^4.12.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -4735,6 +5473,8 @@
},
"node_modules/@smithy/uuid": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@smithy/uuid/-/uuid-1.1.0.tgz",
+ "integrity": "sha512-4aUIteuyxtBUhVdiQqcDhKFitwfd9hqoSDYY2KRXiWtgoWJ9Bmise+KfEPDiVHWeJepvF8xJO9/9+WDIciMFFw==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
@@ -4745,6 +5485,8 @@
},
"node_modules/@socket.io/component-emitter": {
"version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz",
+ "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==",
"license": "MIT"
},
"node_modules/@standard-schema/spec": {
@@ -4760,9 +5502,9 @@
"license": "MIT"
},
"node_modules/@swc/helpers": {
- "version": "0.5.17",
- "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.17.tgz",
- "integrity": "sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==",
+ "version": "0.5.18",
+ "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.18.tgz",
+ "integrity": "sha512-TXTnIcNJQEKwThMMqBXsZ4VGAza6bvN4pa41Rkqoio6QBKMvo+5lexeTMScGCIxtzgQJzElcvIltani+adC5PQ==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.8.0"
@@ -4770,6 +5512,8 @@
},
"node_modules/@types/babel__core": {
"version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
+ "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4782,6 +5526,8 @@
},
"node_modules/@types/babel__generator": {
"version": "7.27.0",
+ "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz",
+ "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4790,6 +5536,8 @@
},
"node_modules/@types/babel__template": {
"version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
+ "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4799,6 +5547,8 @@
},
"node_modules/@types/babel__traverse": {
"version": "7.28.0",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz",
+ "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4807,6 +5557,8 @@
},
"node_modules/@types/body-parser": {
"version": "1.19.6",
+ "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz",
+ "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4816,6 +5568,8 @@
},
"node_modules/@types/bson": {
"version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@types/bson/-/bson-4.2.4.tgz",
+ "integrity": "sha512-SG23E3JDH6y8qF20a4G9txLuUl+TCV16gxsKyntmGiJez2V9VBJr1Y8WxTBBD6OgBVcvspQ7sxgdNMkXFVcaEA==",
"deprecated": "This is a stub types definition. bson provides its own type definitions, so you do not need this installed.",
"license": "MIT",
"dependencies": {
@@ -4824,6 +5578,8 @@
},
"node_modules/@types/compression": {
"version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/@types/compression/-/compression-1.8.1.tgz",
+ "integrity": "sha512-kCFuWS0ebDbmxs0AXYn6e2r2nrGAb5KwQhknjSPSPgJcGd8+HVSILlUyFhGqML2gk39HcG7D1ydW9/qpYkN00Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4833,6 +5589,8 @@
},
"node_modules/@types/connect": {
"version": "3.4.38",
+ "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz",
+ "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4841,11 +5599,15 @@
},
"node_modules/@types/cookiejar": {
"version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@types/cookiejar/-/cookiejar-2.1.5.tgz",
+ "integrity": "sha512-he+DHOWReW0nghN24E1WUqM0efK4kI9oTqDm6XmK8ZPe2djZ90BSNdGnIyCLzCPw7/pogPlGbzI2wHGGmi4O/Q==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/cors": {
"version": "2.8.19",
+ "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.19.tgz",
+ "integrity": "sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==",
"license": "MIT",
"dependencies": {
"@types/node": "*"
@@ -4853,6 +5615,8 @@
},
"node_modules/@types/express": {
"version": "4.17.25",
+ "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.25.tgz",
+ "integrity": "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4863,7 +5627,9 @@
}
},
"node_modules/@types/express-serve-static-core": {
- "version": "4.19.7",
+ "version": "4.19.8",
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.8.tgz",
+ "integrity": "sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4875,6 +5641,8 @@
},
"node_modules/@types/graceful-fs": {
"version": "4.1.9",
+ "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz",
+ "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4883,16 +5651,22 @@
},
"node_modules/@types/http-errors": {
"version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz",
+ "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/istanbul-lib-coverage": {
"version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz",
+ "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/istanbul-lib-report": {
"version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz",
+ "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4901,6 +5675,8 @@
},
"node_modules/@types/istanbul-reports": {
"version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz",
+ "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4909,6 +5685,8 @@
},
"node_modules/@types/jest": {
"version": "26.0.24",
+ "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.24.tgz",
+ "integrity": "sha512-E/X5Vib8BWqZNRlDxj9vYXhsDwPYbPINqKF9BsnSoon4RQ0D9moEuLD8txgyypFLH7J4+Lho9Nr/c8H0Fi+17w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4918,21 +5696,29 @@
},
"node_modules/@types/json5": {
"version": "0.0.29",
+ "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
+ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/methods": {
"version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/@types/methods/-/methods-1.1.4.tgz",
+ "integrity": "sha512-ymXWVrDiCxTBE3+RIrrP533E70eA+9qu7zdWoHuOmGujkYtzf4HQF96b8nwHLqhuf4ykX61IGRIB38CC6/sImQ==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/mime": {
"version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz",
+ "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/mongodb": {
"version": "3.6.20",
+ "resolved": "https://registry.npmjs.org/@types/mongodb/-/mongodb-3.6.20.tgz",
+ "integrity": "sha512-WcdpPJCakFzcWWD9juKoZbRtQxKIMYF/JIAM4JrNHrMcnJL6/a2NWjXxW7fo9hxboxxkg+icff8d7+WIEvKgYQ==",
"license": "MIT",
"dependencies": {
"@types/bson": "*",
@@ -4941,10 +5727,14 @@
},
"node_modules/@types/node": {
"version": "8.10.66",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz",
+ "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==",
"license": "MIT"
},
"node_modules/@types/node-fetch": {
"version": "2.6.13",
+ "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.13.tgz",
+ "integrity": "sha512-QGpRVpzSaUs30JBSGPjOg4Uveu384erbHBoT1zeONvyCfwQxIkUshLAOqN/k9EjGviPRmWTTe6aH2qySWKTVSw==",
"license": "MIT",
"dependencies": {
"@types/node": "*",
@@ -4953,16 +5743,22 @@
},
"node_modules/@types/qs": {
"version": "6.14.0",
+ "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz",
+ "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/range-parser": {
"version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz",
+ "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/send": {
"version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz",
+ "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4971,6 +5767,8 @@
},
"node_modules/@types/serve-static": {
"version": "1.15.10",
+ "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.10.tgz",
+ "integrity": "sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4981,6 +5779,8 @@
},
"node_modules/@types/serve-static/node_modules/@types/send": {
"version": "0.17.6",
+ "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.6.tgz",
+ "integrity": "sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4990,11 +5790,15 @@
},
"node_modules/@types/stack-utils": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz",
+ "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/superagent": {
"version": "8.1.9",
+ "resolved": "https://registry.npmjs.org/@types/superagent/-/superagent-8.1.9.tgz",
+ "integrity": "sha512-pTVjI73witn+9ILmoJdajHGW2jkSaOzhiFYF1Rd3EQ94kymLqB9PjD9ISg7WaALC7+dCHT0FGe9T2LktLq/3GQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5006,6 +5810,8 @@
},
"node_modules/@types/supertest": {
"version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/@types/supertest/-/supertest-6.0.3.tgz",
+ "integrity": "sha512-8WzXq62EXFhJ7QsH3Ocb/iKQ/Ty9ZVWnVzoTKc9tyyFRRF3a74Tk2+TLFgaFFw364Ere+npzHKEJ6ga2LzIL7w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5015,11 +5821,15 @@
},
"node_modules/@types/tmp": {
"version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/@types/tmp/-/tmp-0.2.6.tgz",
+ "integrity": "sha512-chhaNf2oKHlRkDGt+tiKE2Z5aJ6qalm7Z9rlLdBwmOiAAf09YQvvoLXjWK4HWPF1xU/fqvMgfNfpVoBscA/tKA==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/yargs": {
"version": "17.0.35",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz",
+ "integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5028,11 +5838,15 @@
},
"node_modules/@types/yargs-parser": {
"version": "21.0.3",
+ "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz",
+ "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==",
"dev": true,
"license": "MIT"
},
"node_modules/@typespec/ts-http-runtime": {
"version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/@typespec/ts-http-runtime/-/ts-http-runtime-0.3.2.tgz",
+ "integrity": "sha512-IlqQ/Gv22xUC1r/WQm4StLkYQmaaTsXAhUVsNE0+xiyf0yRFiH5++q78U3bw6bLKDCTmh0uqKB9eG9+Bt75Dkg==",
"license": "MIT",
"dependencies": {
"http-proxy-agent": "^7.0.0",
@@ -5045,11 +5859,15 @@
},
"node_modules/@ungap/structured-clone": {
"version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz",
+ "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==",
"dev": true,
"license": "ISC"
},
"node_modules/abort-controller": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
+ "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
"license": "MIT",
"dependencies": {
"event-target-shim": "^5.0.0"
@@ -5060,6 +5878,8 @@
},
"node_modules/accepts": {
"version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
"license": "MIT",
"dependencies": {
"mime-types": "~2.1.34",
@@ -5071,6 +5891,8 @@
},
"node_modules/accepts/node_modules/negotiator": {
"version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
"license": "MIT",
"engines": {
"node": ">= 0.6"
@@ -5078,6 +5900,8 @@
},
"node_modules/acorn": {
"version": "8.15.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
+ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
"dev": true,
"license": "MIT",
"bin": {
@@ -5089,6 +5913,8 @@
},
"node_modules/acorn-jsx": {
"version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
"dev": true,
"license": "MIT",
"peerDependencies": {
@@ -5097,6 +5923,8 @@
},
"node_modules/agent-base": {
"version": "7.1.4",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
+ "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
"license": "MIT",
"engines": {
"node": ">= 14"
@@ -5104,8 +5932,10 @@
},
"node_modules/ajv": {
"version": "6.12.6",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -5117,8 +5947,19 @@
"url": "https://github.com/sponsors/epoberezkin"
}
},
+ "node_modules/ajv-keywords": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz",
+ "integrity": "sha512-vuBv+fm2s6cqUyey2A7qYcvsik+GMDJsw8BARP2sDE76cqmaZVarsvHf7Vx6VJ0Xk8gLl+u3MoAPf6gKzJefeA==",
+ "license": "MIT",
+ "peerDependencies": {
+ "ajv": ">=4.10.0"
+ }
+ },
"node_modules/ansi-escapes": {
"version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5133,6 +5974,8 @@
},
"node_modules/ansi-escapes/node_modules/type-fest": {
"version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
"dev": true,
"license": "(MIT OR CC0-1.0)",
"engines": {
@@ -5142,8 +5985,22 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/ansi-gray": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz",
+ "integrity": "sha512-HrgGIZUl8h2EHuZaU9hTR/cU5nhKxpVE1V6kdGsQ8e4zirElJ5fvtfc8N7Q1oq1aatO275i8pUFUCpNWCAnVWw==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-wrap": "0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.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==",
"dev": true,
"license": "MIT",
"engines": {
@@ -5152,6 +6009,8 @@
},
"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==",
"license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
@@ -5163,8 +6022,19 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
+ "node_modules/ansi-wrap": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz",
+ "integrity": "sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"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==",
"devOptional": true,
"license": "ISC",
"dependencies": {
@@ -5177,11 +6047,14 @@
},
"node_modules/append-field": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz",
+ "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==",
"license": "MIT"
},
"node_modules/argparse": {
"version": "1.0.10",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"license": "MIT",
"dependencies": {
"sprintf-js": "~1.0.2"
@@ -5189,11 +6062,14 @@
},
"node_modules/argparse/node_modules/sprintf-js": {
"version": "1.0.3",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
"license": "BSD-3-Clause"
},
"node_modules/aria-query": {
"version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz",
+ "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -5202,6 +6078,8 @@
},
"node_modules/array-buffer-byte-length": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz",
+ "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==",
"license": "MIT",
"dependencies": {
"call-bound": "^1.0.3",
@@ -5214,12 +6092,25 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/array-differ": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz",
+ "integrity": "sha512-LeZY+DZDRnvP7eMuQ6LHfCzUGxAAIViUBliK24P3hWXL6y4SortgR6Nim6xrkfSLlmH0+k+9NYNwVC2s53ZrYQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/array-flatten": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==",
"license": "MIT"
},
"node_modules/array-includes": {
"version": "3.1.9",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz",
+ "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5239,8 +6130,19 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/array-uniq": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+ "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/array.prototype.findlast": {
"version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz",
+ "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5260,6 +6162,8 @@
},
"node_modules/array.prototype.findlastindex": {
"version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz",
+ "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5280,6 +6184,8 @@
},
"node_modules/array.prototype.flat": {
"version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz",
+ "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5297,6 +6203,8 @@
},
"node_modules/array.prototype.flatmap": {
"version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz",
+ "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5314,6 +6222,8 @@
},
"node_modules/array.prototype.reduce": {
"version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.8.tgz",
+ "integrity": "sha512-DwuEqgXFBwbmZSRqt3BpQigWNUoqw9Ml2dTWdF3B2zQlQX4OeUE0zyuzX0fX0IbTvjdkZbcBTU3idgpO78qkTw==",
"license": "MIT",
"dependencies": {
"call-bind": "^1.0.8",
@@ -5334,6 +6244,8 @@
},
"node_modules/array.prototype.tosorted": {
"version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz",
+ "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5349,6 +6261,8 @@
},
"node_modules/arraybuffer.prototype.slice": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz",
+ "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==",
"license": "MIT",
"dependencies": {
"array-buffer-byte-length": "^1.0.1",
@@ -5368,6 +6282,8 @@
},
"node_modules/arrify": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz",
+ "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==",
"license": "MIT",
"engines": {
"node": ">=8"
@@ -5375,16 +6291,40 @@
},
"node_modules/asap": {
"version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+ "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==",
"dev": true,
"license": "MIT"
},
+ "node_modules/asn1": {
+ "version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
+ "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
+ "license": "MIT",
+ "dependencies": {
+ "safer-buffer": "~2.1.0"
+ }
+ },
+ "node_modules/assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
"node_modules/ast-types-flow": {
"version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz",
+ "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==",
"dev": true,
"license": "MIT"
},
"node_modules/async": {
"version": "2.6.4",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz",
+ "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==",
"license": "MIT",
"dependencies": {
"lodash": "^4.17.14"
@@ -5392,6 +6332,8 @@
},
"node_modules/async-exit-hook": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz",
+ "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==",
"license": "MIT",
"engines": {
"node": ">=0.12.0"
@@ -5399,6 +6341,8 @@
},
"node_modules/async-function": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz",
+ "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -5406,6 +6350,8 @@
},
"node_modules/async-mutex": {
"version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.3.2.tgz",
+ "integrity": "sha512-HuTK7E7MT7jZEh1P9GtRW9+aTWiDWWi9InbZ5hjxrnRa39KS4BW04+xLBhYNS2aXhHUIKZSw3gj4Pn1pj+qGAA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5414,10 +6360,14 @@
},
"node_modules/asynckit": {
"version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
"license": "MIT"
},
"node_modules/available-typed-arrays": {
"version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
+ "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
"license": "MIT",
"dependencies": {
"possible-typed-array-names": "^1.0.0"
@@ -5430,7 +6380,9 @@
}
},
"node_modules/aws-sdk": {
- "version": "2.1692.0",
+ "version": "2.1693.0",
+ "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1693.0.tgz",
+ "integrity": "sha512-cJmb8xEnVLT+R6fBS5sn/EFJiX7tUnDaPtOPZ1vFbOJtd0fnZn/Ky2XGgsvvoeliWeH7mL3TWSX5zXXGSQV6gQ==",
"hasInstallScript": true,
"license": "Apache-2.0",
"dependencies": {
@@ -5449,39 +6401,43 @@
"node": ">= 10.0.0"
}
},
- "node_modules/aws-sdk/node_modules/buffer": {
- "version": "4.9.2",
- "license": "MIT",
- "dependencies": {
- "base64-js": "^1.0.2",
- "ieee754": "^1.1.4",
- "isarray": "^1.0.0"
- }
- },
"node_modules/aws-sdk/node_modules/events": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz",
+ "integrity": "sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==",
"license": "MIT",
"engines": {
"node": ">=0.4.x"
}
},
- "node_modules/aws-sdk/node_modules/ieee754": {
- "version": "1.1.13",
- "license": "BSD-3-Clause"
- },
- "node_modules/aws-sdk/node_modules/isarray": {
- "version": "1.0.0",
- "license": "MIT"
- },
"node_modules/aws-sdk/node_modules/uuid": {
"version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.0.0.tgz",
+ "integrity": "sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw==",
"license": "MIT",
"bin": {
"uuid": "dist/bin/uuid"
}
},
+ "node_modules/aws-sign2": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/aws4": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz",
+ "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==",
+ "license": "MIT"
+ },
"node_modules/axe-core": {
- "version": "4.11.0",
+ "version": "4.11.1",
+ "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.11.1.tgz",
+ "integrity": "sha512-BASOg+YwO2C+346x3LZOeoovTIoTrRqEsqMa6fmfAV0P+U9mFr9NsyOEpiYvFjbc64NMrSswhV50WdXzdb/Z5A==",
"dev": true,
"license": "MPL-2.0",
"engines": {
@@ -5490,6 +6446,8 @@
},
"node_modules/axios": {
"version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.2.tgz",
+ "integrity": "sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==",
"license": "MIT",
"dependencies": {
"follow-redirects": "^1.15.6",
@@ -5499,14 +6457,99 @@
},
"node_modules/axobject-query": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz",
+ "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==",
"dev": true,
"license": "Apache-2.0",
"engines": {
"node": ">= 0.4"
}
},
+ "node_modules/babel-code-frame": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
+ "integrity": "sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==",
+ "license": "MIT",
+ "dependencies": {
+ "chalk": "^1.1.3",
+ "esutils": "^2.0.2",
+ "js-tokens": "^3.0.2"
+ }
+ },
+ "node_modules/babel-code-frame/node_modules/ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/babel-code-frame/node_modules/ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/babel-code-frame/node_modules/chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/babel-code-frame/node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/babel-code-frame/node_modules/js-tokens": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
+ "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==",
+ "license": "MIT"
+ },
+ "node_modules/babel-code-frame/node_modules/strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/babel-code-frame/node_modules/supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
"node_modules/babel-jest": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz",
+ "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5527,6 +6570,8 @@
},
"node_modules/babel-jest/node_modules/slash": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -5535,6 +6580,8 @@
},
"node_modules/babel-plugin-istanbul": {
"version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
+ "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
"dev": true,
"license": "BSD-3-Clause",
"dependencies": {
@@ -5550,6 +6597,8 @@
},
"node_modules/babel-plugin-jest-hoist": {
"version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz",
+ "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5564,6 +6613,8 @@
},
"node_modules/babel-plugin-module-resolver": {
"version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-5.0.2.tgz",
+ "integrity": "sha512-9KtaCazHee2xc0ibfqsDeamwDps6FZNo5S0Q81dUqEuFzVwPhcT4J5jOqIVvgCA3Q/wO9hKYxN/Ds3tIsp5ygg==",
"license": "MIT",
"dependencies": {
"find-babel-config": "^2.1.1",
@@ -5575,6 +6626,8 @@
},
"node_modules/babel-plugin-module-resolver/node_modules/brace-expansion": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0"
@@ -5582,6 +6635,8 @@
},
"node_modules/babel-plugin-module-resolver/node_modules/glob": {
"version": "9.3.5",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz",
+ "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==",
"license": "ISC",
"dependencies": {
"fs.realpath": "^1.0.0",
@@ -5598,6 +6653,8 @@
},
"node_modules/babel-plugin-module-resolver/node_modules/minimatch": {
"version": "8.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz",
+ "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==",
"license": "ISC",
"dependencies": {
"brace-expansion": "^2.0.1"
@@ -5610,11 +6667,13 @@
}
},
"node_modules/babel-plugin-polyfill-corejs2": {
- "version": "0.4.14",
+ "version": "0.4.15",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.15.tgz",
+ "integrity": "sha512-hR3GwrRwHUfYwGfrisXPIDP3JcYfBrW7wKE7+Au6wDYl7fm/ka1NEII6kORzxNU556JjfidZeBsO10kYvtV1aw==",
"license": "MIT",
"dependencies": {
- "@babel/compat-data": "^7.27.7",
- "@babel/helper-define-polyfill-provider": "^0.6.5",
+ "@babel/compat-data": "^7.28.6",
+ "@babel/helper-define-polyfill-provider": "^0.6.6",
"semver": "^6.3.1"
},
"peerDependencies": {
@@ -5623,6 +6682,8 @@
},
"node_modules/babel-plugin-polyfill-corejs3": {
"version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz",
+ "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==",
"license": "MIT",
"dependencies": {
"@babel/helper-define-polyfill-provider": "^0.6.5",
@@ -5633,10 +6694,12 @@
}
},
"node_modules/babel-plugin-polyfill-regenerator": {
- "version": "0.6.5",
+ "version": "0.6.6",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.6.tgz",
+ "integrity": "sha512-hYm+XLYRMvupxiQzrvXUj7YyvFFVfv5gI0R71AJzudg1g2AI2vyCPPIFEBjk162/wFzti3inBHo7isWFuEVS/A==",
"license": "MIT",
"dependencies": {
- "@babel/helper-define-polyfill-provider": "^0.6.5"
+ "@babel/helper-define-polyfill-provider": "^0.6.6"
},
"peerDependencies": {
"@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
@@ -5644,6 +6707,8 @@
},
"node_modules/babel-preset-current-node-syntax": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz",
+ "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5669,6 +6734,8 @@
},
"node_modules/babel-preset-jest": {
"version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz",
+ "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5684,10 +6751,14 @@
},
"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==",
"license": "MIT"
},
"node_modules/base64-js": {
"version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
"funding": [
{
"type": "github",
@@ -5706,24 +6777,50 @@
},
"node_modules/base64id": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz",
+ "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==",
"license": "MIT",
"engines": {
"node": "^4.5.0 || >= 5.9"
}
},
"node_modules/baseline-browser-mapping": {
- "version": "2.8.28",
+ "version": "2.9.17",
+ "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.17.tgz",
+ "integrity": "sha512-agD0MgJFUP/4nvjqzIB29zRPUuCF7Ge6mEv9s8dHrtYD7QWXRcx75rOADE/d5ah1NI+0vkDl0yorDd5U852IQQ==",
"license": "Apache-2.0",
"bin": {
"baseline-browser-mapping": "dist/cli.js"
}
},
+ "node_modules/bcrypt-pbkdf": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+ "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "tweetnacl": "^0.14.3"
+ }
+ },
"node_modules/bcryptjs": {
"version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz",
+ "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==",
"license": "MIT"
},
+ "node_modules/beeper": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz",
+ "integrity": "sha512-3vqtKL1N45I5dV0RdssXZG7X6pCqQrWPNOlBPZPrd+QkE2HEhR57Z04m0KtpbsZH73j+a3F8UD1TQnn+ExTvIA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/bignumber.js": {
"version": "9.3.1",
+ "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.1.tgz",
+ "integrity": "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==",
"license": "MIT",
"engines": {
"node": "*"
@@ -5731,6 +6828,8 @@
},
"node_modules/binary-extensions": {
"version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
+ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
"devOptional": true,
"license": "MIT",
"engines": {
@@ -5742,18 +6841,18 @@
},
"node_modules/bl": {
"version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz",
+ "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==",
"license": "MIT",
"dependencies": {
"readable-stream": "^2.3.5",
"safe-buffer": "^5.1.1"
}
},
- "node_modules/bl/node_modules/isarray": {
- "version": "1.0.0",
- "license": "MIT"
- },
"node_modules/bl/node_modules/readable-stream": {
"version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
"license": "MIT",
"dependencies": {
"core-util-is": "~1.0.0",
@@ -5767,10 +6866,14 @@
},
"node_modules/bl/node_modules/safe-buffer": {
"version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
"license": "MIT"
},
"node_modules/bl/node_modules/string_decoder": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"license": "MIT",
"dependencies": {
"safe-buffer": "~5.1.0"
@@ -5778,6 +6881,8 @@
},
"node_modules/bluebird": {
"version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
+ "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==",
"license": "MIT"
},
"node_modules/body-parser": {
@@ -5806,54 +6911,35 @@
},
"node_modules/body-parser/node_modules/debug": {
"version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"license": "MIT",
"dependencies": {
"ms": "2.0.0"
}
},
- "node_modules/body-parser/node_modules/http-errors": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz",
- "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==",
- "license": "MIT",
- "dependencies": {
- "depd": "~2.0.0",
- "inherits": "~2.0.4",
- "setprototypeof": "~1.2.0",
- "statuses": "~2.0.2",
- "toidentifier": "~1.0.1"
- },
- "engines": {
- "node": ">= 0.8"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/express"
- }
- },
"node_modules/body-parser/node_modules/ms": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
"license": "MIT"
},
- "node_modules/body-parser/node_modules/statuses": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz",
- "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.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==",
"license": "ISC"
},
"node_modules/bowser": {
- "version": "2.12.1",
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.13.1.tgz",
+ "integrity": "sha512-OHawaAbjwx6rqICCKgSG0SAnT05bzd7ppyKLVUITZpANBaaMFBAsaNkto3LoQ31tyFP5kNujE8Cdx85G9VzOkw==",
"license": "MIT"
},
"node_modules/brace-expansion": {
"version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
+ "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
"license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0",
@@ -5862,6 +6948,8 @@
},
"node_modules/braces": {
"version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"devOptional": true,
"license": "MIT",
"dependencies": {
@@ -5881,7 +6969,9 @@
}
},
"node_modules/browserslist": {
- "version": "4.28.0",
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz",
+ "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==",
"funding": [
{
"type": "opencollective",
@@ -5898,11 +6988,11 @@
],
"license": "MIT",
"dependencies": {
- "baseline-browser-mapping": "^2.8.25",
- "caniuse-lite": "^1.0.30001754",
- "electron-to-chromium": "^1.5.249",
+ "baseline-browser-mapping": "^2.9.0",
+ "caniuse-lite": "^1.0.30001759",
+ "electron-to-chromium": "^1.5.263",
"node-releases": "^2.0.27",
- "update-browserslist-db": "^1.1.4"
+ "update-browserslist-db": "^1.2.0"
},
"bin": {
"browserslist": "cli.js"
@@ -5913,6 +7003,8 @@
},
"node_modules/bser": {
"version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
+ "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -5920,37 +7012,29 @@
}
},
"node_modules/bson": {
- "version": "7.0.0",
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/bson/-/bson-7.1.1.tgz",
+ "integrity": "sha512-TtJgBB+QyOlWjrbM+8bRgH84VM/xrDjyBFgSgGrfZF4xvt6gbEDtcswm27Tn9F9TWsjQybxT8b8VpCP/oJK4Dw==",
"license": "Apache-2.0",
"engines": {
"node": ">=20.19.0"
}
},
"node_modules/buffer": {
- "version": "5.7.1",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
+ "version": "4.9.2",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz",
+ "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==",
"license": "MIT",
"dependencies": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.1.13"
+ "base64-js": "^1.0.2",
+ "ieee754": "^1.1.4",
+ "isarray": "^1.0.0"
}
},
"node_modules/buffer-crc32": {
"version": "0.2.13",
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+ "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
"license": "MIT",
"engines": {
"node": "*"
@@ -5958,30 +7042,82 @@
},
"node_modules/buffer-equal-constant-time": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
+ "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==",
"license": "BSD-3-Clause"
},
"node_modules/buffer-from": {
"version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
"license": "MIT"
},
- "node_modules/busboy": {
- "version": "1.6.0",
+ "node_modules/bufferstreams": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/bufferstreams/-/bufferstreams-1.1.3.tgz",
+ "integrity": "sha512-HaJnVuslRF4g2kSDeyl++AaVizoitCpL9PglzCYwy0uHHyvWerfvEb8jWmYbF1z4kiVFolGomnxSGl+GUQp2jg==",
+ "license": "MIT",
"dependencies": {
- "streamsearch": "^1.1.0"
+ "readable-stream": "^2.0.2"
},
"engines": {
- "node": ">=10.16.0"
- }
- },
- "node_modules/bytes": {
- "version": "3.1.2",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
+ "node": ">= 0.10.0"
}
},
- "node_modules/call-bind": {
- "version": "1.0.8",
+ "node_modules/bufferstreams/node_modules/readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "license": "MIT",
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "node_modules/bufferstreams/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "license": "MIT"
+ },
+ "node_modules/bufferstreams/node_modules/string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "node_modules/busboy": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
+ "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
+ "dependencies": {
+ "streamsearch": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=10.16.0"
+ }
+ },
+ "node_modules/bytes": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/call-bind": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz",
+ "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==",
"license": "MIT",
"dependencies": {
"call-bind-apply-helpers": "^1.0.0",
@@ -5998,6 +7134,8 @@
},
"node_modules/call-bind-apply-helpers": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
+ "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
@@ -6009,6 +7147,8 @@
},
"node_modules/call-bound": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
+ "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
"license": "MIT",
"dependencies": {
"call-bind-apply-helpers": "^1.0.2",
@@ -6021,8 +7161,31 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/caller-path": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz",
+ "integrity": "sha512-UJiE1otjXPF5/x+T3zTnSFiTOEmJoGTD9HmBoxnCUwho61a2eSNn/VwtwuIBDAo2SEOv1AJ7ARI5gCmohFLu/g==",
+ "license": "MIT",
+ "dependencies": {
+ "callsites": "^0.2.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/caller-path/node_modules/callsites": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz",
+ "integrity": "sha512-Zv4Dns9IbXXmPkgRRUjAaJQgfN4xX5p6+RQFhWUqscdvvK2xK/ZL8b3IXIJsj+4sD+f24NwnWy2BY8AJ82JB0A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/callsites": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6031,6 +7194,8 @@
},
"node_modules/camelcase": {
"version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6038,7 +7203,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001754",
+ "version": "1.0.30001766",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001766.tgz",
+ "integrity": "sha512-4C0lfJ0/YPjJQHagaE9x2Elb69CIqEPZeG0anQt9SIvIoOH4a4uaRl73IavyO+0qZh6MDLH//DrXThEYKHkmYA==",
"funding": [
{
"type": "opencollective",
@@ -6057,13 +7224,23 @@
},
"node_modules/card-validator": {
"version": "10.0.3",
+ "resolved": "https://registry.npmjs.org/card-validator/-/card-validator-10.0.3.tgz",
+ "integrity": "sha512-xOEDsK3hojV0OIpmrR64eZGpngnOqRDEP20O+WSRtvjLSW6nyekW4i2N9SzYg679uFO3RyHcFHxb+mml5tXc4A==",
"license": "MIT",
"dependencies": {
"credit-card-type": "^10.0.2"
}
},
+ "node_modules/caseless": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==",
+ "license": "Apache-2.0"
+ },
"node_modules/chalk": {
"version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
@@ -6076,8 +7253,16 @@
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
+ "node_modules/change-case": {
+ "version": "5.4.4",
+ "resolved": "https://registry.npmjs.org/change-case/-/change-case-5.4.4.tgz",
+ "integrity": "sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==",
+ "license": "MIT"
+ },
"node_modules/char-regex": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
+ "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6086,6 +7271,8 @@
},
"node_modules/cheerio": {
"version": "0.22.0",
+ "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz",
+ "integrity": "sha512-8/MzidM6G/TgRelkzDG13y3Y9LxBjCb+8yOEZ9+wwq5gVF2w2pV0wmHvjfT0RvuxGyR7UEuK36r+yYMbT4uKgA==",
"license": "MIT",
"dependencies": {
"css-select": "~1.2.0",
@@ -6111,6 +7298,8 @@
},
"node_modules/chokidar": {
"version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
"devOptional": true,
"license": "MIT",
"dependencies": {
@@ -6134,6 +7323,8 @@
},
"node_modules/ci-info": {
"version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
"dev": true,
"funding": [
{
@@ -6146,13 +7337,24 @@
"node": ">=8"
}
},
+ "node_modules/circular-json": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz",
+ "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==",
+ "deprecated": "CircularJSON is in maintenance only, flatted is its successor.",
+ "license": "MIT"
+ },
"node_modules/cjs-module-lexer": {
"version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz",
+ "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==",
"dev": true,
"license": "MIT"
},
"node_modules/cli-cursor": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz",
+ "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6167,6 +7369,8 @@
},
"node_modules/cli-truncate": {
"version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-5.1.1.tgz",
+ "integrity": "sha512-SroPvNHxUnk+vIW/dOSfNqdy1sPEFkrTk6TUtqLCnBlo3N7TNYYkzzN7uSD6+jVjrdO4+p8nH7JzH6cIvUem6A==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6180,8 +7384,16 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/cli-width": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz",
+ "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==",
+ "license": "ISC"
+ },
"node_modules/cliui": {
"version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -6195,11 +7407,15 @@
},
"node_modules/cliui/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,
"license": "MIT"
},
"node_modules/cliui/node_modules/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,
"license": "MIT",
"engines": {
@@ -6208,6 +7424,8 @@
},
"node_modules/cliui/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,
"license": "MIT",
"dependencies": {
@@ -6221,6 +7439,8 @@
},
"node_modules/cliui/node_modules/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,
"license": "MIT",
"dependencies": {
@@ -6237,6 +7457,8 @@
},
"node_modules/clone": {
"version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
+ "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==",
"license": "MIT",
"engines": {
"node": ">=0.8"
@@ -6244,6 +7466,8 @@
},
"node_modules/clone-deep": {
"version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
+ "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
"license": "MIT",
"dependencies": {
"is-plain-object": "^2.0.4",
@@ -6254,8 +7478,28 @@
"node": ">=6"
}
},
+ "node_modules/clone-stats": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz",
+ "integrity": "sha512-dhUqc57gSMCo6TX85FLfe51eC/s+Im2MLkAgJwfaRRexR2tA4dd3eLEW4L6efzHc2iNorrRRXITifnDLlRrhaA==",
+ "license": "MIT"
+ },
+ "node_modules/cloudinary": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/cloudinary/-/cloudinary-2.9.0.tgz",
+ "integrity": "sha512-F3iKMOy4y0zy0bi5JBp94SC7HY7i/ImfTPSUV07iJmRzH1Iz8WavFfOlJTR1zvYM/xKGoiGZ3my/zy64In0IQQ==",
+ "license": "MIT",
+ "dependencies": {
+ "lodash": "^4.17.21"
+ },
+ "engines": {
+ "node": ">=9"
+ }
+ },
"node_modules/cluster-key-slot": {
"version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz",
+ "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==",
"license": "Apache-2.0",
"engines": {
"node": ">=0.10.0"
@@ -6263,20 +7507,34 @@
},
"node_modules/co": {
"version": "4.6.0",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
"license": "MIT",
"engines": {
"iojs": ">= 1.0.0",
"node": ">= 0.12.0"
}
},
+ "node_modules/code-point-at": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/collect-v8-coverage": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz",
+ "integrity": "sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==",
"dev": true,
"license": "MIT"
},
"node_modules/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==",
"license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
@@ -6287,15 +7545,30 @@
},
"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==",
"license": "MIT"
},
+ "node_modules/color-support": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
+ "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
+ "license": "ISC",
+ "bin": {
+ "color-support": "bin.js"
+ }
+ },
"node_modules/colorette": {
"version": "2.0.20",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
+ "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
"dev": true,
"license": "MIT"
},
"node_modules/combined-stream": {
"version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"license": "MIT",
"dependencies": {
"delayed-stream": "~1.0.0"
@@ -6306,6 +7579,8 @@
},
"node_modules/commander": {
"version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz",
+ "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==",
"license": "MIT",
"engines": {
"node": ">= 6"
@@ -6313,10 +7588,14 @@
},
"node_modules/commondir": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+ "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
"license": "MIT"
},
"node_modules/component-emitter": {
"version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz",
+ "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==",
"dev": true,
"license": "MIT",
"funding": {
@@ -6325,6 +7604,8 @@
},
"node_modules/compressible": {
"version": "2.0.18",
+ "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
+ "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
"license": "MIT",
"dependencies": {
"mime-db": ">= 1.43.0 < 2"
@@ -6335,6 +7616,8 @@
},
"node_modules/compression": {
"version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz",
+ "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==",
"license": "MIT",
"dependencies": {
"bytes": "3.1.2",
@@ -6351,6 +7634,8 @@
},
"node_modules/compression/node_modules/debug": {
"version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"license": "MIT",
"dependencies": {
"ms": "2.0.0"
@@ -6358,14 +7643,20 @@
},
"node_modules/compression/node_modules/ms": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
"license": "MIT"
},
"node_modules/concat-map": {
"version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
"license": "MIT"
},
"node_modules/concat-stream": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz",
+ "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==",
"engines": [
"node >= 6.0"
],
@@ -6379,11 +7670,15 @@
},
"node_modules/confusing-browser-globals": {
"version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz",
+ "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==",
"dev": true,
"license": "MIT"
},
"node_modules/content-disposition": {
"version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
+ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
"license": "MIT",
"dependencies": {
"safe-buffer": "5.2.1"
@@ -6394,6 +7689,8 @@
},
"node_modules/content-type": {
"version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
+ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
"license": "MIT",
"engines": {
"node": ">= 0.6"
@@ -6401,26 +7698,36 @@
},
"node_modules/convert-source-map": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
"license": "MIT"
},
"node_modules/cookie": {
- "version": "0.7.1",
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",
+ "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==",
"license": "MIT",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/cookie-signature": {
- "version": "1.0.6",
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz",
+ "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==",
"license": "MIT"
},
"node_modules/cookiejar": {
"version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz",
+ "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==",
"dev": true,
"license": "MIT"
},
"node_modules/core-js": {
- "version": "3.46.0",
+ "version": "3.48.0",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.48.0.tgz",
+ "integrity": "sha512-zpEHTy1fjTMZCKLHUZoVeylt9XrzaIN2rbPXEt0k+q7JE5CkCZdo6bNq55bn24a69CH7ErAVLKijxJja4fw+UQ==",
"hasInstallScript": true,
"license": "MIT",
"funding": {
@@ -6429,10 +7736,12 @@
}
},
"node_modules/core-js-compat": {
- "version": "3.46.0",
+ "version": "3.48.0",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.48.0.tgz",
+ "integrity": "sha512-OM4cAF3D6VtH/WkLtWvyNC56EZVXsZdU3iqaMG2B4WvYrlqU831pc4UtG5yp0sE9z8Y02wVN7PjW5Zf9Gt0f1Q==",
"license": "MIT",
"dependencies": {
- "browserslist": "^4.26.3"
+ "browserslist": "^4.28.1"
},
"funding": {
"type": "opencollective",
@@ -6440,11 +7749,15 @@
}
},
"node_modules/core-util-is": {
- "version": "1.0.3",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==",
"license": "MIT"
},
"node_modules/cors": {
- "version": "2.8.5",
+ "version": "2.8.6",
+ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.6.tgz",
+ "integrity": "sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==",
"license": "MIT",
"dependencies": {
"object-assign": "^4",
@@ -6452,10 +7765,16 @@
},
"engines": {
"node": ">= 0.10"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
}
},
"node_modules/create-jest": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz",
+ "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6476,17 +7795,35 @@
},
"node_modules/credit-card-type": {
"version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/credit-card-type/-/credit-card-type-10.1.0.tgz",
+ "integrity": "sha512-yd9ebGqWQ9zDvxrvCOkX80GiTvVJ28940uIMqRA58Cu3ReiPkOS4p45d9Y2cmJZtZgp90WdwLSiUtI8lHDgE2g==",
"license": "MIT"
},
"node_modules/cron": {
"version": "1.8.2",
+ "resolved": "https://registry.npmjs.org/cron/-/cron-1.8.2.tgz",
+ "integrity": "sha512-Gk2c4y6xKEO8FSAUTklqtfSr7oTq0CiPQeLBG5Fl0qoXpZyMcj1SG59YL+hqq04bu6/IuEA7lMkYDAplQNKkyg==",
"license": "MIT",
"dependencies": {
"moment-timezone": "^0.5.x"
}
},
+ "node_modules/cron-parser": {
+ "version": "4.9.0",
+ "resolved": "https://registry.npmjs.org/cron-parser/-/cron-parser-4.9.0.tgz",
+ "integrity": "sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q==",
+ "license": "MIT",
+ "dependencies": {
+ "luxon": "^3.2.1"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
"node_modules/cross-spawn": {
"version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
+ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6506,6 +7843,8 @@
},
"node_modules/css-select": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
+ "integrity": "sha512-dUQOBoqdR7QwV90WysXPLXG5LO7nhYBgiWVfxF80DKPF8zx1t/pUd2FYy73emg3zrjtM6dzmYgbHKfV2rxiHQA==",
"license": "BSD-like",
"dependencies": {
"boolbase": "~1.0.0",
@@ -6516,18 +7855,49 @@
},
"node_modules/css-what": {
"version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz",
+ "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==",
"license": "BSD-2-Clause",
"engines": {
"node": "*"
}
},
+ "node_modules/d": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz",
+ "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==",
+ "license": "ISC",
+ "dependencies": {
+ "es5-ext": "^0.10.64",
+ "type": "^2.7.2"
+ },
+ "engines": {
+ "node": ">=0.12"
+ }
+ },
"node_modules/damerau-levenshtein": {
"version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
+ "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==",
"dev": true,
"license": "BSD-2-Clause"
},
+ "node_modules/dashdash": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==",
+ "license": "MIT",
+ "dependencies": {
+ "assert-plus": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
"node_modules/data-view-buffer": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz",
+ "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==",
"license": "MIT",
"dependencies": {
"call-bound": "^1.0.3",
@@ -6543,6 +7913,8 @@
},
"node_modules/data-view-byte-length": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz",
+ "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==",
"license": "MIT",
"dependencies": {
"call-bound": "^1.0.3",
@@ -6558,6 +7930,8 @@
},
"node_modules/data-view-byte-offset": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz",
+ "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==",
"license": "MIT",
"dependencies": {
"call-bound": "^1.0.2",
@@ -6573,6 +7947,8 @@
},
"node_modules/date-fns": {
"version": "2.30.0",
+ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz",
+ "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==",
"license": "MIT",
"dependencies": {
"@babel/runtime": "^7.21.0"
@@ -6585,12 +7961,25 @@
"url": "https://opencollective.com/date-fns"
}
},
+ "node_modules/dateformat": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz",
+ "integrity": "sha512-GODcnWq3YGoTnygPfi02ygEiRxqUxpJwuRHjdhJYuxpcZmDq4rjBiXYmbCCzStxo176ixfLT6i4NPwQooRySnw==",
+ "license": "MIT",
+ "engines": {
+ "node": "*"
+ }
+ },
"node_modules/dayjs": {
"version": "1.11.19",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz",
+ "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==",
"license": "MIT"
},
"node_modules/debug": {
"version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
"license": "MIT",
"dependencies": {
"ms": "^2.1.3"
@@ -6605,7 +7994,9 @@
}
},
"node_modules/dedent": {
- "version": "1.7.0",
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.1.tgz",
+ "integrity": "sha512-9JmrhGZpOlEgOLdQgSm0zxFaYoQon408V1v49aqTWuXENVlnCuY9JBZcXZiCsZQWDjTm5Qf/nIvAy77mXDAjEg==",
"dev": true,
"license": "MIT",
"peerDependencies": {
@@ -6619,11 +8010,14 @@
},
"node_modules/deep-is": {
"version": "0.1.4",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
"license": "MIT"
},
"node_modules/deepmerge": {
"version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@@ -6631,6 +8025,8 @@
},
"node_modules/define-data-property": {
"version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
+ "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
"license": "MIT",
"dependencies": {
"es-define-property": "^1.0.0",
@@ -6646,6 +8042,8 @@
},
"node_modules/define-properties": {
"version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
+ "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
"license": "MIT",
"dependencies": {
"define-data-property": "^1.0.1",
@@ -6661,6 +8059,8 @@
},
"node_modules/delayed-stream": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
"license": "MIT",
"engines": {
"node": ">=0.4.0"
@@ -6668,6 +8068,8 @@
},
"node_modules/denque": {
"version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz",
+ "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==",
"license": "Apache-2.0",
"engines": {
"node": ">=0.10"
@@ -6675,6 +8077,8 @@
},
"node_modules/depd": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
"license": "MIT",
"engines": {
"node": ">= 0.8"
@@ -6682,6 +8086,8 @@
},
"node_modules/destroy": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
"license": "MIT",
"engines": {
"node": ">= 0.8",
@@ -6690,10 +8096,14 @@
},
"node_modules/detect-browser": {
"version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz",
+ "integrity": "sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==",
"license": "MIT"
},
"node_modules/detect-libc": {
"version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
+ "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
"license": "Apache-2.0",
"engines": {
"node": ">=8"
@@ -6701,6 +8111,8 @@
},
"node_modules/detect-newline": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
+ "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6709,10 +8121,14 @@
},
"node_modules/detect-node": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz",
+ "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==",
"license": "MIT"
},
"node_modules/dezalgo": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz",
+ "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -6728,6 +8144,8 @@
},
"node_modules/diff-sequences": {
"version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz",
+ "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6736,6 +8154,8 @@
},
"node_modules/doctrine": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -6747,6 +8167,8 @@
},
"node_modules/dom-serializer": {
"version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz",
+ "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==",
"license": "MIT",
"dependencies": {
"domelementtype": "^1.3.0",
@@ -6755,10 +8177,14 @@
},
"node_modules/domelementtype": {
"version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
+ "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==",
"license": "BSD-2-Clause"
},
"node_modules/domhandler": {
"version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
+ "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
"license": "BSD-2-Clause",
"dependencies": {
"domelementtype": "1"
@@ -6766,6 +8192,8 @@
},
"node_modules/domutils": {
"version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
+ "integrity": "sha512-gSu5Oi/I+3wDENBsOWBiRK1eoGxcywYSqg3rR960/+EfY0CF4EX1VPkgHOZ3WiS/Jg2DtliF6BhWcHlfpYUcGw==",
"dependencies": {
"dom-serializer": "0",
"domelementtype": "1"
@@ -6773,6 +8201,8 @@
},
"node_modules/dotenv": {
"version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-5.0.1.tgz",
+ "integrity": "sha512-4As8uPrjfwb7VXC+WnLCbXK7y+Ueb2B3zgNCePYfhxS1PYeaO1YTeplffTEcbfLhvFNGLAz90VvJs9yomG7bow==",
"license": "BSD-2-Clause",
"engines": {
"node": ">=4.6.0"
@@ -6780,6 +8210,8 @@
},
"node_modules/dropbox": {
"version": "10.34.0",
+ "resolved": "https://registry.npmjs.org/dropbox/-/dropbox-10.34.0.tgz",
+ "integrity": "sha512-5jb5/XzU0fSnq36/hEpwT5/QIep7MgqKuxghEG44xCu7HruOAjPdOb3x0geXv5O/hd0nHpQpWO+r5MjYTpMvJg==",
"license": "MIT",
"dependencies": {
"node-fetch": "^2.6.1"
@@ -6793,6 +8225,8 @@
},
"node_modules/dunder-proto": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
+ "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
"license": "MIT",
"dependencies": {
"call-bind-apply-helpers": "^1.0.1",
@@ -6803,8 +8237,59 @@
"node": ">= 0.4"
}
},
+ "node_modules/duplexer2": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz",
+ "integrity": "sha512-+AWBwjGadtksxjOQSFDhPNQbed7icNXApT4+2BNpsXzcCBiInq2H9XW0O8sfHFaPmnQRs7cg/P0fAr2IWQSW0g==",
+ "license": "BSD",
+ "dependencies": {
+ "readable-stream": "~1.1.9"
+ }
+ },
+ "node_modules/duplexer2/node_modules/isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==",
+ "license": "MIT"
+ },
+ "node_modules/duplexer2/node_modules/readable-stream": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==",
+ "license": "MIT",
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "node_modules/duplexer2/node_modules/string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==",
+ "license": "MIT"
+ },
+ "node_modules/ecc-jsbn": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+ "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==",
+ "license": "MIT",
+ "dependencies": {
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.1.0"
+ }
+ },
+ "node_modules/ecc-jsbn/node_modules/jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==",
+ "license": "MIT"
+ },
"node_modules/ecdsa-sig-formatter": {
"version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
+ "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
"license": "Apache-2.0",
"dependencies": {
"safe-buffer": "^5.0.1"
@@ -6812,14 +8297,20 @@
},
"node_modules/ee-first": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
"license": "MIT"
},
"node_modules/electron-to-chromium": {
- "version": "1.5.253",
+ "version": "1.5.278",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.278.tgz",
+ "integrity": "sha512-dQ0tM1svDRQOwxnXxm+twlGTjr9Upvt8UFWAgmLsxEzFQxhbti4VwxmMjsDxVC51Zo84swW7FVCXEV+VAkhuPw==",
"license": "ISC"
},
"node_modules/emittery": {
"version": "0.13.1",
+ "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz",
+ "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6831,11 +8322,15 @@
},
"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,
"license": "MIT"
},
"node_modules/encodeurl": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
+ "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
"license": "MIT",
"engines": {
"node": ">= 0.8"
@@ -6843,6 +8338,8 @@
},
"node_modules/end-of-stream": {
"version": "1.4.5",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz",
+ "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6850,7 +8347,9 @@
}
},
"node_modules/engine.io": {
- "version": "6.6.4",
+ "version": "6.6.5",
+ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.6.5.tgz",
+ "integrity": "sha512-2RZdgEbXmp5+dVbRm0P7HQUImZpICccJy7rN7Tv+SFa55pH+lxnuw6/K1ZxxBfHoYpSkHLAO92oa8O4SwFXA2A==",
"license": "MIT",
"dependencies": {
"@types/cors": "^2.8.12",
@@ -6859,9 +8358,9 @@
"base64id": "2.0.0",
"cookie": "~0.7.2",
"cors": "~2.8.5",
- "debug": "~4.3.1",
+ "debug": "~4.4.1",
"engine.io-parser": "~5.2.1",
- "ws": "~8.17.1"
+ "ws": "~8.18.3"
},
"engines": {
"node": ">=10.2.0"
@@ -6869,42 +8368,26 @@
},
"node_modules/engine.io-parser": {
"version": "5.2.3",
+ "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz",
+ "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==",
"license": "MIT",
"engines": {
"node": ">=10.0.0"
}
},
"node_modules/engine.io/node_modules/@types/node": {
- "version": "24.10.1",
+ "version": "25.0.10",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.10.tgz",
+ "integrity": "sha512-zWW5KPngR/yvakJgGOmZ5vTBemDoSqF3AcV/LrO5u5wTWyEAVVh+IT39G4gtyAkh3CtTZs8aX/yRM82OfzHJRg==",
"license": "MIT",
"dependencies": {
"undici-types": "~7.16.0"
}
},
- "node_modules/engine.io/node_modules/cookie": {
- "version": "0.7.2",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/engine.io/node_modules/debug": {
- "version": "4.3.7",
- "license": "MIT",
- "dependencies": {
- "ms": "^2.1.3"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
"node_modules/engine.io/node_modules/ws": {
- "version": "8.17.1",
+ "version": "8.18.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
+ "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
"license": "MIT",
"engines": {
"node": ">=10.0.0"
@@ -6924,10 +8407,14 @@
},
"node_modules/entities": {
"version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
+ "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==",
"license": "BSD-2-Clause"
},
"node_modules/environment": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz",
+ "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6939,6 +8426,8 @@
},
"node_modules/error-ex": {
"version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz",
+ "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6946,7 +8435,9 @@
}
},
"node_modules/es-abstract": {
- "version": "1.24.0",
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.1.tgz",
+ "integrity": "sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==",
"license": "MIT",
"dependencies": {
"array-buffer-byte-length": "^1.0.2",
@@ -7013,10 +8504,14 @@
},
"node_modules/es-array-method-boxes-properly": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz",
+ "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==",
"license": "MIT"
},
"node_modules/es-define-property": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
+ "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -7024,31 +8519,35 @@
},
"node_modules/es-errors": {
"version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
}
},
"node_modules/es-iterator-helpers": {
- "version": "1.2.1",
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.2.tgz",
+ "integrity": "sha512-BrUQ0cPTB/IwXj23HtwHjS9n7O4h9FX94b4xc5zlTHxeLgTAdzYUDyy6KdExAl9lbN5rtfe44xpjpmj9grxs5w==",
"dev": true,
"license": "MIT",
"dependencies": {
"call-bind": "^1.0.8",
- "call-bound": "^1.0.3",
+ "call-bound": "^1.0.4",
"define-properties": "^1.2.1",
- "es-abstract": "^1.23.6",
+ "es-abstract": "^1.24.1",
"es-errors": "^1.3.0",
- "es-set-tostringtag": "^2.0.3",
+ "es-set-tostringtag": "^2.1.0",
"function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.6",
+ "get-intrinsic": "^1.3.0",
"globalthis": "^1.0.4",
"gopd": "^1.2.0",
"has-property-descriptors": "^1.0.2",
"has-proto": "^1.2.0",
"has-symbols": "^1.1.0",
"internal-slot": "^1.1.0",
- "iterator.prototype": "^1.1.4",
+ "iterator.prototype": "^1.1.5",
"safe-array-concat": "^1.1.3"
},
"engines": {
@@ -7057,6 +8556,8 @@
},
"node_modules/es-object-atoms": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
+ "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0"
@@ -7067,6 +8568,8 @@
},
"node_modules/es-set-tostringtag": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
+ "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
@@ -7080,6 +8583,8 @@
},
"node_modules/es-shim-unscopables": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz",
+ "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7091,6 +8596,8 @@
},
"node_modules/es-to-primitive": {
"version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz",
+ "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==",
"license": "MIT",
"dependencies": {
"is-callable": "^1.2.7",
@@ -7104,8 +8611,93 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/es5-ext": {
+ "version": "0.10.64",
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz",
+ "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==",
+ "hasInstallScript": true,
+ "license": "ISC",
+ "dependencies": {
+ "es6-iterator": "^2.0.3",
+ "es6-symbol": "^3.1.3",
+ "esniff": "^2.0.1",
+ "next-tick": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/es6-iterator": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
+ "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==",
+ "license": "MIT",
+ "dependencies": {
+ "d": "1",
+ "es5-ext": "^0.10.35",
+ "es6-symbol": "^3.1.1"
+ }
+ },
+ "node_modules/es6-map": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz",
+ "integrity": "sha512-mz3UqCh0uPCIqsw1SSAkB/p0rOzF/M0V++vyN7JqlPtSW/VsYgQBvVvqMLmfBuyMzTpLnNqi6JmcSizs4jy19A==",
+ "license": "MIT",
+ "dependencies": {
+ "d": "1",
+ "es5-ext": "~0.10.14",
+ "es6-iterator": "~2.0.1",
+ "es6-set": "~0.1.5",
+ "es6-symbol": "~3.1.1",
+ "event-emitter": "~0.3.5"
+ }
+ },
+ "node_modules/es6-set": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.6.tgz",
+ "integrity": "sha512-TE3LgGLDIBX332jq3ypv6bcOpkLO0AslAQo7p2VqX/1N46YNsvIWgvjojjSEnWEGWMhr1qUbYeTSir5J6mFHOw==",
+ "license": "ISC",
+ "dependencies": {
+ "d": "^1.0.1",
+ "es5-ext": "^0.10.62",
+ "es6-iterator": "~2.0.3",
+ "es6-symbol": "^3.1.3",
+ "event-emitter": "^0.3.5",
+ "type": "^2.7.2"
+ },
+ "engines": {
+ "node": ">=0.12"
+ }
+ },
+ "node_modules/es6-symbol": {
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz",
+ "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==",
+ "license": "ISC",
+ "dependencies": {
+ "d": "^1.0.2",
+ "ext": "^1.7.0"
+ },
+ "engines": {
+ "node": ">=0.12"
+ }
+ },
+ "node_modules/es6-weak-map": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz",
+ "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==",
+ "license": "ISC",
+ "dependencies": {
+ "d": "1",
+ "es5-ext": "^0.10.46",
+ "es6-iterator": "^2.0.3",
+ "es6-symbol": "^3.1.1"
+ }
+ },
"node_modules/escalade": {
"version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
"license": "MIT",
"engines": {
"node": ">=6"
@@ -7113,10 +8705,14 @@
},
"node_modules/escape-html": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
"license": "MIT"
},
"node_modules/escape-string-regexp": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
"license": "MIT",
"engines": {
"node": ">=10"
@@ -7125,8 +8721,35 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/escope": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz",
+ "integrity": "sha512-75IUQsusDdalQEW/G/2esa87J7raqdJF+Ca0/Xm5C3Q58Nr4yVYjZGp/P1+2xiEVgXRrA39dpRb8LcshajbqDQ==",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "es6-map": "^0.1.3",
+ "es6-weak-map": "^2.0.1",
+ "esrecurse": "^4.1.0",
+ "estraverse": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/escope/node_modules/estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
"node_modules/eslint": {
"version": "8.57.1",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz",
+ "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==",
+ "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7181,6 +8804,8 @@
},
"node_modules/eslint-config-airbnb": {
"version": "19.0.4",
+ "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-19.0.4.tgz",
+ "integrity": "sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7201,6 +8826,8 @@
},
"node_modules/eslint-config-airbnb-base": {
"version": "15.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz",
+ "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7219,6 +8846,8 @@
},
"node_modules/eslint-config-prettier": {
"version": "9.1.2",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.2.tgz",
+ "integrity": "sha512-iI1f+D2ViGn+uvv5HuHVUamg8ll4tN+JRHGc6IJi4TP9Kl976C57fzPXgseXNs8v0iA8aSJpHsTWjDb9QJamGQ==",
"dev": true,
"license": "MIT",
"bin": {
@@ -7228,8 +8857,28 @@
"eslint": ">=7.0.0"
}
},
+ "node_modules/eslint-import-resolver-babel-module": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-babel-module/-/eslint-import-resolver-babel-module-5.3.2.tgz",
+ "integrity": "sha512-K7D8n0O6p/JJncPote8yiuB7chJfu26Yn/Q3gzT53cNzJNS0NUCkI0iuimj4/vWVRHVQvPnYWeq07V8RvKjz/A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "pkg-up": "^3.1.0",
+ "resolve": "^1.20.0"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0",
+ "babel-plugin-module-resolver": "^3.0.0 || ^4.0.0 || ^5.0.0"
+ }
+ },
"node_modules/eslint-import-resolver-node": {
"version": "0.3.9",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
+ "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7240,6 +8889,8 @@
},
"node_modules/eslint-import-resolver-node/node_modules/debug": {
"version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7248,6 +8899,8 @@
},
"node_modules/eslint-module-utils": {
"version": "2.12.1",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz",
+ "integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7264,6 +8917,8 @@
},
"node_modules/eslint-module-utils/node_modules/debug": {
"version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7272,6 +8927,8 @@
},
"node_modules/eslint-plugin-import": {
"version": "2.32.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz",
+ "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7304,6 +8961,8 @@
},
"node_modules/eslint-plugin-import/node_modules/debug": {
"version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7312,6 +8971,8 @@
},
"node_modules/eslint-plugin-import/node_modules/doctrine": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -7323,6 +8984,8 @@
},
"node_modules/eslint-plugin-jsx-a11y": {
"version": "6.10.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz",
+ "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7351,6 +9014,8 @@
},
"node_modules/eslint-plugin-react": {
"version": "7.37.5",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz",
+ "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7382,6 +9047,8 @@
},
"node_modules/eslint-plugin-react-hooks": {
"version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz",
+ "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -7393,6 +9060,8 @@
},
"node_modules/eslint-plugin-react/node_modules/doctrine": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -7404,6 +9073,8 @@
},
"node_modules/eslint-plugin-react/node_modules/resolve": {
"version": "2.0.0-next.5",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz",
+ "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7420,6 +9091,8 @@
},
"node_modules/eslint-scope": {
"version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
@@ -7432,6 +9105,8 @@
},
"node_modules/eslint-scope/node_modules/estraverse": {
"version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
"dev": true,
"license": "BSD-2-Clause",
"engines": {
@@ -7440,6 +9115,8 @@
},
"node_modules/eslint-visitor-keys": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
+ "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -7448,11 +9125,15 @@
},
"node_modules/eslint/node_modules/argparse": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
"dev": true,
"license": "Python-2.0"
},
"node_modules/eslint/node_modules/eslint-scope": {
"version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
+ "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
@@ -7468,6 +9149,8 @@
},
"node_modules/eslint/node_modules/eslint-visitor-keys": {
"version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -7479,6 +9162,8 @@
},
"node_modules/eslint/node_modules/find-up": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7494,6 +9179,8 @@
},
"node_modules/eslint/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,
"license": "ISC",
"dependencies": {
@@ -7505,6 +9192,8 @@
},
"node_modules/eslint/node_modules/js-yaml": {
"version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
+ "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7516,6 +9205,8 @@
},
"node_modules/eslint/node_modules/locate-path": {
"version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7530,6 +9221,8 @@
},
"node_modules/eslint/node_modules/p-locate": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7542,8 +9235,25 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/esniff": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz",
+ "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==",
+ "license": "ISC",
+ "dependencies": {
+ "d": "^1.0.1",
+ "es5-ext": "^0.10.62",
+ "event-emitter": "^0.3.5",
+ "type": "^2.7.2"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
"node_modules/espree": {
"version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
+ "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
@@ -7560,6 +9270,8 @@
},
"node_modules/espree/node_modules/eslint-visitor-keys": {
"version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -7571,7 +9283,8 @@
},
"node_modules/esprima": {
"version": "4.0.1",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
"license": "BSD-2-Clause",
"bin": {
"esparse": "bin/esparse.js",
@@ -7582,8 +9295,9 @@
}
},
"node_modules/esquery": {
- "version": "1.6.0",
- "dev": true,
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz",
+ "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==",
"license": "BSD-3-Clause",
"dependencies": {
"estraverse": "^5.1.0"
@@ -7594,7 +9308,8 @@
},
"node_modules/esrecurse": {
"version": "4.3.0",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
"license": "BSD-2-Clause",
"dependencies": {
"estraverse": "^5.2.0"
@@ -7605,7 +9320,8 @@
},
"node_modules/estraverse": {
"version": "5.3.0",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
"license": "BSD-2-Clause",
"engines": {
"node": ">=4.0"
@@ -7613,6 +9329,8 @@
},
"node_modules/esutils": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
"license": "BSD-2-Clause",
"engines": {
"node": ">=0.10.0"
@@ -7620,32 +9338,58 @@
},
"node_modules/etag": {
"version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
"license": "MIT",
"engines": {
"node": ">= 0.6"
}
},
+ "node_modules/event-emitter": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
+ "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==",
+ "license": "MIT",
+ "dependencies": {
+ "d": "1",
+ "es5-ext": "~0.10.14"
+ }
+ },
"node_modules/event-target-shim": {
"version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
+ "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
"license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/eventemitter3": {
- "version": "5.0.1",
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz",
+ "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==",
"dev": true,
"license": "MIT"
},
"node_modules/events": {
"version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
"license": "MIT",
"engines": {
"node": ">=0.8.x"
}
},
- "node_modules/execa": {
+ "node_modules/events-to-async": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/events-to-async/-/events-to-async-2.0.2.tgz",
+ "integrity": "sha512-WzI6m/SU+F38t2tejHh6IQuQkNZ0dMOmSEmODJb9czaeMYtQ5FVZ+b6DOHr3hC6hNKNnn9CwDUN8mJiAkWSI9Q==",
+ "license": "MIT"
+ },
+ "node_modules/execa": {
"version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
+ "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7668,13 +9412,26 @@
},
"node_modules/exit": {
"version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
+ "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==",
"dev": true,
"engines": {
"node": ">= 0.8.0"
}
},
+ "node_modules/exit-hook": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz",
+ "integrity": "sha512-MsG3prOVw1WtLXAZbM3KiYtooKR1LvxHh3VHsVtIy0uiUu8usxgB/94DP2HxtD/661lLdB6yzQ09lGJSQr6nkg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/expect": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz",
+ "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7735,11 +9492,13 @@
}
},
"node_modules/express-validator": {
- "version": "7.3.0",
+ "version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/express-validator/-/express-validator-7.3.1.tgz",
+ "integrity": "sha512-IGenaSf+DnWc69lKuqlRE9/i/2t5/16VpH5bXoqdxWz1aCpRvEdrBuu1y95i/iL5QP8ZYVATiwLFhwk3EDl5vg==",
"license": "MIT",
"dependencies": {
"lodash": "^4.17.21",
- "validator": "~13.15.15"
+ "validator": "~13.15.23"
},
"engines": {
"node": ">= 8.0.0"
@@ -7747,6 +9506,8 @@
},
"node_modules/express-ws": {
"version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/express-ws/-/express-ws-5.0.2.tgz",
+ "integrity": "sha512-0uvmuk61O9HXgLhGl3QhNSEtRsQevtmbL94/eILaliEADZBHZOQUAiHFrGPrgsjikohyrmSG5g+sCfASTt0lkQ==",
"license": "BSD-2-Clause",
"dependencies": {
"ws": "^7.4.6"
@@ -7760,6 +9521,8 @@
},
"node_modules/express-ws/node_modules/ws": {
"version": "7.5.10",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
+ "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
"license": "MIT",
"engines": {
"node": ">=8.3.0"
@@ -7779,6 +9542,8 @@
},
"node_modules/express/node_modules/debug": {
"version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"license": "MIT",
"dependencies": {
"ms": "2.0.0"
@@ -7786,37 +9551,84 @@
},
"node_modules/express/node_modules/ms": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
"license": "MIT"
},
+ "node_modules/ext": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz",
+ "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==",
+ "license": "ISC",
+ "dependencies": {
+ "type": "^2.7.2"
+ }
+ },
"node_modules/extend": {
"version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
+ "license": "MIT"
+ },
+ "node_modules/extsprintf": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==",
+ "engines": [
+ "node >=0.6.0"
+ ],
"license": "MIT"
},
+ "node_modules/fancy-log": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz",
+ "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-gray": "^0.1.1",
+ "color-support": "^1.1.3",
+ "parse-node-version": "^1.0.0",
+ "time-stamp": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
"node_modules/fast-deep-equal": {
"version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
"license": "MIT"
},
"node_modules/fast-json-stable-stringify": {
"version": "2.1.0",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
"license": "MIT"
},
"node_modules/fast-levenshtein": {
"version": "2.0.6",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
"license": "MIT"
},
"node_modules/fast-safe-stringify": {
"version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz",
+ "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==",
"dev": true,
"license": "MIT"
},
"node_modules/fast-text-encoding": {
"version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.6.tgz",
+ "integrity": "sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w==",
"license": "Apache-2.0"
},
"node_modules/fast-xml-parser": {
- "version": "5.3.2",
+ "version": "5.2.5",
+ "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.2.5.tgz",
+ "integrity": "sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ==",
"funding": [
{
"type": "github",
@@ -7832,7 +9644,9 @@
}
},
"node_modules/fastq": {
- "version": "1.19.1",
+ "version": "1.20.1",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz",
+ "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -7841,6 +9655,8 @@
},
"node_modules/fb-watchman": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz",
+ "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -7849,13 +9665,39 @@
},
"node_modules/fd-slicer": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
+ "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==",
"license": "MIT",
"dependencies": {
"pend": "~1.2.0"
}
},
+ "node_modules/figures": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
+ "integrity": "sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==",
+ "license": "MIT",
+ "dependencies": {
+ "escape-string-regexp": "^1.0.5",
+ "object-assign": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/figures/node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
"node_modules/file-entry-cache": {
"version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
+ "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7867,6 +9709,8 @@
},
"node_modules/fill-range": {
"version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
"devOptional": true,
"license": "MIT",
"dependencies": {
@@ -7877,15 +9721,17 @@
}
},
"node_modules/finalhandler": {
- "version": "1.3.1",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz",
+ "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==",
"license": "MIT",
"dependencies": {
"debug": "2.6.9",
"encodeurl": "~2.0.0",
"escape-html": "~1.0.3",
- "on-finished": "2.4.1",
+ "on-finished": "~2.4.1",
"parseurl": "~1.3.3",
- "statuses": "2.0.1",
+ "statuses": "~2.0.2",
"unpipe": "~1.0.0"
},
"engines": {
@@ -7894,6 +9740,8 @@
},
"node_modules/finalhandler/node_modules/debug": {
"version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"license": "MIT",
"dependencies": {
"ms": "2.0.0"
@@ -7901,10 +9749,14 @@
},
"node_modules/finalhandler/node_modules/ms": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
"license": "MIT"
},
"node_modules/find-babel-config": {
"version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/find-babel-config/-/find-babel-config-2.1.2.tgz",
+ "integrity": "sha512-ZfZp1rQyp4gyuxqt1ZqjFGVeVBvmpURMqdIWXbPRfB97Bf6BzdK/xSIbylEINzQ0kB5tlDQfn9HkNXXWsqTqLg==",
"license": "MIT",
"dependencies": {
"json5": "^2.2.3"
@@ -7912,6 +9764,8 @@
},
"node_modules/find-cache-dir": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
+ "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
"license": "MIT",
"dependencies": {
"commondir": "^1.0.1",
@@ -7924,6 +9778,8 @@
},
"node_modules/find-up": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7936,6 +9792,8 @@
},
"node_modules/flat-cache": {
"version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
+ "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7949,11 +9807,15 @@
},
"node_modules/flatted": {
"version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz",
+ "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==",
"dev": true,
"license": "ISC"
},
"node_modules/follow-redirects": {
"version": "1.15.11",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz",
+ "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==",
"funding": [
{
"type": "individual",
@@ -7989,6 +9851,8 @@
},
"node_modules/for-each": {
"version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz",
+ "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==",
"license": "MIT",
"dependencies": {
"is-callable": "^1.2.7"
@@ -8000,8 +9864,19 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "*"
+ }
+ },
"node_modules/form-data": {
- "version": "4.0.4",
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz",
+ "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==",
"license": "MIT",
"dependencies": {
"asynckit": "^0.4.0",
@@ -8016,6 +9891,8 @@
},
"node_modules/formidable": {
"version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.5.tgz",
+ "integrity": "sha512-Oz5Hwvwak/DCaXVVUtPn4oLMLLy1CdclLKO1LFgU7XzDpVMUU5UjlSLpGMocyQNNk8F6IJW9M/YdooSn2MRI+Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -8030,6 +9907,8 @@
},
"node_modules/forwarded": {
"version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
"license": "MIT",
"engines": {
"node": ">= 0.6"
@@ -8037,6 +9916,8 @@
},
"node_modules/fresh": {
"version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
"license": "MIT",
"engines": {
"node": ">= 0.6"
@@ -8044,21 +9925,28 @@
},
"node_modules/fs-constants": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
+ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
"dev": true,
"license": "MIT"
},
"node_modules/fs-readdir-recursive": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz",
+ "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==",
"license": "MIT"
},
"node_modules/fs.realpath": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
"license": "ISC"
},
"node_modules/fsevents": {
"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,
"license": "MIT",
"optional": true,
@@ -8071,6 +9959,8 @@
},
"node_modules/function-bind": {
"version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -8078,6 +9968,8 @@
},
"node_modules/function.prototype.name": {
"version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz",
+ "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==",
"license": "MIT",
"dependencies": {
"call-bind": "^1.0.8",
@@ -8096,6 +9988,8 @@
},
"node_modules/functions-have-names": {
"version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
+ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -8103,6 +9997,8 @@
},
"node_modules/gaxios": {
"version": "4.3.3",
+ "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.3.3.tgz",
+ "integrity": "sha512-gSaYYIO1Y3wUtdfHmjDUZ8LWaxJQpiavzbF5Kq53akSzvmVg0RfyOcFDbO1KJ/KCGRFz2qG+lS81F0nkr7cRJA==",
"license": "Apache-2.0",
"dependencies": {
"abort-controller": "^3.0.0",
@@ -8117,6 +10013,8 @@
},
"node_modules/gaxios/node_modules/agent-base": {
"version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
"license": "MIT",
"dependencies": {
"debug": "4"
@@ -8127,6 +10025,8 @@
},
"node_modules/gaxios/node_modules/https-proxy-agent": {
"version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
"license": "MIT",
"dependencies": {
"agent-base": "6",
@@ -8138,6 +10038,8 @@
},
"node_modules/gcp-metadata": {
"version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.3.1.tgz",
+ "integrity": "sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A==",
"license": "Apache-2.0",
"dependencies": {
"gaxios": "^4.0.0",
@@ -8147,8 +10049,28 @@
"node": ">=10"
}
},
+ "node_modules/generate-function": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz",
+ "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==",
+ "license": "MIT",
+ "dependencies": {
+ "is-property": "^1.0.2"
+ }
+ },
+ "node_modules/generate-object-property": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
+ "integrity": "sha512-TuOwZWgJ2VAMEGJvAyPWvpqxSANF0LDpmyHauMjFYzaACvn+QTT/AZomvPCzVBV7yDN3OmwHQ5OvHaeLKre3JQ==",
+ "license": "MIT",
+ "dependencies": {
+ "is-property": "^1.0.0"
+ }
+ },
"node_modules/generator-function": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz",
+ "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -8156,6 +10078,8 @@
},
"node_modules/generic-pool": {
"version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-3.9.0.tgz",
+ "integrity": "sha512-hymDOu5B53XvN4QT9dBmZxPX4CWhBPPLguTZ9MMFeFa/Kg0xWVfylOVNlJji/E7yTZWFd/q9GO5TxDLq156D7g==",
"license": "MIT",
"engines": {
"node": ">= 4"
@@ -8163,6 +10087,8 @@
},
"node_modules/gensync": {
"version": "1.0.0-beta.2",
+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
"license": "MIT",
"engines": {
"node": ">=6.9.0"
@@ -8170,6 +10096,8 @@
},
"node_modules/geoip-lite": {
"version": "1.4.10",
+ "resolved": "https://registry.npmjs.org/geoip-lite/-/geoip-lite-1.4.10.tgz",
+ "integrity": "sha512-4N69uhpS3KFd97m00wiFEefwa+L+HT5xZbzPhwu+sDawStg6UN/dPwWtUfkQuZkGIY1Cj7wDVp80IsqNtGMi2w==",
"license": "Apache-2.0",
"dependencies": {
"async": "2.1 - 2.6.4",
@@ -8186,6 +10114,9 @@
},
"node_modules/geoip-lite/node_modules/rimraf": {
"version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "deprecated": "Rimraf versions prior to v4 are no longer supported",
"license": "ISC",
"dependencies": {
"glob": "^7.1.3"
@@ -8196,6 +10127,8 @@
},
"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==",
"dev": true,
"license": "ISC",
"engines": {
@@ -8204,6 +10137,8 @@
},
"node_modules/get-east-asian-width": {
"version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.4.0.tgz",
+ "integrity": "sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -8215,6 +10150,8 @@
},
"node_modules/get-intrinsic": {
"version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
+ "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
"license": "MIT",
"dependencies": {
"call-bind-apply-helpers": "^1.0.2",
@@ -8237,6 +10174,8 @@
},
"node_modules/get-package-type": {
"version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
+ "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -8245,6 +10184,8 @@
},
"node_modules/get-port": {
"version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz",
+ "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -8256,6 +10197,8 @@
},
"node_modules/get-proto": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
+ "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
"license": "MIT",
"dependencies": {
"dunder-proto": "^1.0.1",
@@ -8267,6 +10210,8 @@
},
"node_modules/get-stream": {
"version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
+ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -8278,6 +10223,8 @@
},
"node_modules/get-symbol-description": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz",
+ "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==",
"license": "MIT",
"dependencies": {
"call-bound": "^1.0.3",
@@ -8291,8 +10238,20 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/getpass": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==",
+ "license": "MIT",
+ "dependencies": {
+ "assert-plus": "^1.0.0"
+ }
+ },
"node_modules/glob": {
"version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "deprecated": "Glob versions prior to v9 are no longer supported",
"license": "ISC",
"dependencies": {
"fs.realpath": "^1.0.0",
@@ -8311,6 +10270,8 @@
},
"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==",
"devOptional": true,
"license": "ISC",
"dependencies": {
@@ -8322,6 +10283,8 @@
},
"node_modules/globals": {
"version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -8336,6 +10299,8 @@
},
"node_modules/globalthis": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz",
+ "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==",
"license": "MIT",
"dependencies": {
"define-properties": "^1.2.1",
@@ -8348,8 +10313,22 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/glogg": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz",
+ "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==",
+ "license": "MIT",
+ "dependencies": {
+ "sparkles": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
"node_modules/google-auth-library": {
"version": "7.14.1",
+ "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.14.1.tgz",
+ "integrity": "sha512-5Rk7iLNDFhFeBYc3s8l1CqzbEBcdhwR193RlD4vSNFajIcINKI8W8P0JLmBpwymHqqWbX34pJDQu39cSy/6RsA==",
"license": "Apache-2.0",
"dependencies": {
"arrify": "^2.0.0",
@@ -8368,6 +10347,8 @@
},
"node_modules/google-auth-library/node_modules/lru-cache": {
"version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
"license": "ISC",
"dependencies": {
"yallist": "^4.0.0"
@@ -8378,10 +10359,15 @@
},
"node_modules/google-auth-library/node_modules/yallist": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
"license": "ISC"
},
"node_modules/google-p12-pem": {
"version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.4.tgz",
+ "integrity": "sha512-HHuHmkLgwjdmVRngf5+gSmpkyaRI6QmOg77J8tkNBHhNEI62sGHyw4/+UkgyZEI7h84NbWprXDJ+sa3xOYFvTg==",
+ "deprecated": "Package is no longer maintained",
"license": "MIT",
"dependencies": {
"node-forge": "^1.3.1"
@@ -8395,6 +10381,8 @@
},
"node_modules/googleapis": {
"version": "100.0.0",
+ "resolved": "https://registry.npmjs.org/googleapis/-/googleapis-100.0.0.tgz",
+ "integrity": "sha512-RToFQGY54B756IDbjdyjb1vWFmn03bYpXHB2lIf0eq2UBYsIbYOLZ0kqSomfJnpclEukwEmMF7Jn6Wsev871ew==",
"license": "Apache-2.0",
"dependencies": {
"google-auth-library": "^7.0.2",
@@ -8406,6 +10394,8 @@
},
"node_modules/googleapis-common": {
"version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/googleapis-common/-/googleapis-common-5.1.0.tgz",
+ "integrity": "sha512-RXrif+Gzhq1QAzfjxulbGvAY3FPj8zq/CYcvgjzDbaBNCD6bUl+86I7mUs4DKWHGruuK26ijjR/eDpWIDgNROA==",
"license": "Apache-2.0",
"dependencies": {
"extend": "^3.0.2",
@@ -8421,6 +10411,8 @@
},
"node_modules/googleapis-common/node_modules/uuid": {
"version": "8.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
"license": "MIT",
"bin": {
"uuid": "dist/bin/uuid"
@@ -8428,6 +10420,8 @@
},
"node_modules/gopd": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
+ "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -8438,16 +10432,21 @@
},
"node_modules/graceful-fs": {
"version": "4.2.11",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
"license": "ISC"
},
"node_modules/graphemer": {
"version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
+ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
"dev": true,
"license": "MIT"
},
"node_modules/gtoken": {
"version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.3.2.tgz",
+ "integrity": "sha512-gkvEKREW7dXWF8NV8pVrKfW7WqReAmjjkMBh6lNCCGOM4ucS0r0YyXXl0r/9Yj8wcW/32ISkfc8h5mPTDbtifQ==",
"license": "MIT",
"dependencies": {
"gaxios": "^4.0.0",
@@ -8458,8 +10457,557 @@
"node": ">=10"
}
},
+ "node_modules/gulp-eslint": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/gulp-eslint/-/gulp-eslint-3.0.1.tgz",
+ "integrity": "sha512-lNEEIgxKyzbjlq/kDfdS06KI+rEhfnWGd6xbMaiCP20jF5sZ/quQsuK7LZRMnQrAuUQ6MbyuYWamtgGp65440Q==",
+ "license": "MIT",
+ "dependencies": {
+ "bufferstreams": "^1.1.1",
+ "eslint": "^3.0.0",
+ "gulp-util": "^3.0.6"
+ }
+ },
+ "node_modules/gulp-eslint/node_modules/acorn": {
+ "version": "5.7.4",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz",
+ "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==",
+ "license": "MIT",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/gulp-eslint/node_modules/acorn-jsx": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz",
+ "integrity": "sha512-AU7pnZkguthwBjKgCg6998ByQNIMjbuDQZ8bb78QAFZwPfmKia8AIzgY/gWgqCjnht8JLdXmB4YxA0KaV60ncQ==",
+ "license": "MIT",
+ "dependencies": {
+ "acorn": "^3.0.4"
+ }
+ },
+ "node_modules/gulp-eslint/node_modules/acorn-jsx/node_modules/acorn": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
+ "integrity": "sha512-OLUyIIZ7mF5oaAUT1w0TFqQS81q3saT46x8t7ukpPjMNk+nbs4ZHhs7ToV8EWnLYLepjETXd4XaCE4uxkMeqUw==",
+ "license": "MIT",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/gulp-eslint/node_modules/ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/gulp-eslint/node_modules/ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/gulp-eslint/node_modules/chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/gulp-eslint/node_modules/concat-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "engines": [
+ "node >= 0.8"
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ }
+ },
+ "node_modules/gulp-eslint/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/gulp-eslint/node_modules/doctrine": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/gulp-eslint/node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/gulp-eslint/node_modules/eslint": {
+ "version": "3.19.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-3.19.0.tgz",
+ "integrity": "sha512-x6LJGXWCGB/4YOBhL48yeppZTo+YQUNC37N5qqCpC1b1kkNzydlQHQAtPuUSFoZSxgIadrysQoW2Hq602P+uEA==",
+ "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.",
+ "license": "MIT",
+ "dependencies": {
+ "babel-code-frame": "^6.16.0",
+ "chalk": "^1.1.3",
+ "concat-stream": "^1.5.2",
+ "debug": "^2.1.1",
+ "doctrine": "^2.0.0",
+ "escope": "^3.6.0",
+ "espree": "^3.4.0",
+ "esquery": "^1.0.0",
+ "estraverse": "^4.2.0",
+ "esutils": "^2.0.2",
+ "file-entry-cache": "^2.0.0",
+ "glob": "^7.0.3",
+ "globals": "^9.14.0",
+ "ignore": "^3.2.0",
+ "imurmurhash": "^0.1.4",
+ "inquirer": "^0.12.0",
+ "is-my-json-valid": "^2.10.0",
+ "is-resolvable": "^1.0.0",
+ "js-yaml": "^3.5.1",
+ "json-stable-stringify": "^1.0.0",
+ "levn": "^0.3.0",
+ "lodash": "^4.0.0",
+ "mkdirp": "^0.5.0",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.8.2",
+ "path-is-inside": "^1.0.1",
+ "pluralize": "^1.2.1",
+ "progress": "^1.1.8",
+ "require-uncached": "^1.0.2",
+ "shelljs": "^0.7.5",
+ "strip-bom": "^3.0.0",
+ "strip-json-comments": "~2.0.1",
+ "table": "^3.7.8",
+ "text-table": "~0.2.0",
+ "user-home": "^2.0.0"
+ },
+ "bin": {
+ "eslint": "bin/eslint.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/gulp-eslint/node_modules/espree": {
+ "version": "3.5.4",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz",
+ "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "acorn": "^5.5.0",
+ "acorn-jsx": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/gulp-eslint/node_modules/estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/gulp-eslint/node_modules/file-entry-cache": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz",
+ "integrity": "sha512-uXP/zGzxxFvFfcZGgBIwotm+Tdc55ddPAzF7iHshP4YGaXMww7rSF9peD9D1sui5ebONg5UobsZv+FfgEpGv/w==",
+ "license": "MIT",
+ "dependencies": {
+ "flat-cache": "^1.2.1",
+ "object-assign": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/gulp-eslint/node_modules/flat-cache": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz",
+ "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==",
+ "license": "MIT",
+ "dependencies": {
+ "circular-json": "^0.3.1",
+ "graceful-fs": "^4.1.2",
+ "rimraf": "~2.6.2",
+ "write": "^0.2.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/gulp-eslint/node_modules/globals": {
+ "version": "9.18.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
+ "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/gulp-eslint/node_modules/ignore": {
+ "version": "3.3.10",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz",
+ "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==",
+ "license": "MIT"
+ },
+ "node_modules/gulp-eslint/node_modules/levn": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==",
+ "license": "MIT",
+ "dependencies": {
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/gulp-eslint/node_modules/mkdirp": {
+ "version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+ "license": "MIT",
+ "dependencies": {
+ "minimist": "^1.2.6"
+ },
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ }
+ },
+ "node_modules/gulp-eslint/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "license": "MIT"
+ },
+ "node_modules/gulp-eslint/node_modules/optionator": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
+ "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
+ "license": "MIT",
+ "dependencies": {
+ "deep-is": "~0.1.3",
+ "fast-levenshtein": "~2.0.6",
+ "levn": "~0.3.0",
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2",
+ "word-wrap": "~1.2.3"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/gulp-eslint/node_modules/prelude-ls": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==",
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/gulp-eslint/node_modules/readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "license": "MIT",
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "node_modules/gulp-eslint/node_modules/rimraf": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
+ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
+ "deprecated": "Rimraf versions prior to v4 are no longer supported",
+ "license": "ISC",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/gulp-eslint/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "license": "MIT"
+ },
+ "node_modules/gulp-eslint/node_modules/string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "node_modules/gulp-eslint/node_modules/strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/gulp-eslint/node_modules/strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/gulp-eslint/node_modules/strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/gulp-eslint/node_modules/supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/gulp-eslint/node_modules/type-check": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==",
+ "license": "MIT",
+ "dependencies": {
+ "prelude-ls": "~1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/gulp-util": {
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz",
+ "integrity": "sha512-q5oWPc12lwSFS9h/4VIjG+1NuNDlJ48ywV2JKItY4Ycc/n1fXJeYPVQsfu5ZrhQi7FGSDBalwUCLar/GyHXKGw==",
+ "deprecated": "gulp-util is deprecated - replace it, following the guidelines at https://medium.com/gulpjs/gulp-util-ca3b1f9f9ac5",
+ "license": "MIT",
+ "dependencies": {
+ "array-differ": "^1.0.0",
+ "array-uniq": "^1.0.2",
+ "beeper": "^1.0.0",
+ "chalk": "^1.0.0",
+ "dateformat": "^2.0.0",
+ "fancy-log": "^1.1.0",
+ "gulplog": "^1.0.0",
+ "has-gulplog": "^0.1.0",
+ "lodash._reescape": "^3.0.0",
+ "lodash._reevaluate": "^3.0.0",
+ "lodash._reinterpolate": "^3.0.0",
+ "lodash.template": "^3.0.0",
+ "minimist": "^1.1.0",
+ "multipipe": "^0.1.2",
+ "object-assign": "^3.0.0",
+ "replace-ext": "0.0.1",
+ "through2": "^2.0.0",
+ "vinyl": "^0.5.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/gulp-util/node_modules/ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/gulp-util/node_modules/ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/gulp-util/node_modules/chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/gulp-util/node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/gulp-util/node_modules/object-assign": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
+ "integrity": "sha512-jHP15vXVGeVh1HuaA2wY6lxk+whK/x4KBG88VXeRma7CCun7iGD5qPc4eYykQ9sdQvg8jkwFKsSxHln2ybW3xQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/gulp-util/node_modules/strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/gulp-util/node_modules/supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/gulplog": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz",
+ "integrity": "sha512-hm6N8nrm3Y08jXie48jsC55eCZz9mnb4OirAStEk2deqeyhXU3C1otDVh+ccttMuc1sBi6RX6ZJ720hs9RCvgw==",
+ "license": "MIT",
+ "dependencies": {
+ "glogg": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/har-schema": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+ "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/har-validator": {
+ "version": "5.1.5",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
+ "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
+ "deprecated": "this library is no longer supported",
+ "license": "MIT",
+ "dependencies": {
+ "ajv": "^6.12.3",
+ "har-schema": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/has-ansi/node_modules/ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/has-bigints": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz",
+ "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -8470,13 +11018,29 @@
},
"node_modules/has-flag": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"license": "MIT",
"engines": {
"node": ">=8"
}
},
+ "node_modules/has-gulplog": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz",
+ "integrity": "sha512-+F4GzLjwHNNDEAJW2DC1xXfEoPkRDmUdJ7CBYw4MpqtDwOnqdImJl7GWlpqx+Wko6//J8uKTnIe4wZSv7yCqmw==",
+ "license": "MIT",
+ "dependencies": {
+ "sparkles": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
"node_modules/has-property-descriptors": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
+ "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
"license": "MIT",
"dependencies": {
"es-define-property": "^1.0.0"
@@ -8487,6 +11051,8 @@
},
"node_modules/has-proto": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz",
+ "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==",
"license": "MIT",
"dependencies": {
"dunder-proto": "^1.0.0"
@@ -8500,6 +11066,8 @@
},
"node_modules/has-symbols": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
+ "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -8510,6 +11078,8 @@
},
"node_modules/has-tostringtag": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
+ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
"license": "MIT",
"dependencies": {
"has-symbols": "^1.0.3"
@@ -8523,6 +11093,8 @@
},
"node_modules/hasown": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
"license": "MIT",
"dependencies": {
"function-bind": "^1.1.2"
@@ -8533,6 +11105,8 @@
},
"node_modules/homedir-polyfill": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
+ "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==",
"license": "MIT",
"dependencies": {
"parse-passwd": "^1.0.0"
@@ -8543,11 +11117,15 @@
},
"node_modules/html-escaper": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
+ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
"dev": true,
"license": "MIT"
},
"node_modules/htmlparser2": {
"version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz",
+ "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==",
"license": "MIT",
"dependencies": {
"domelementtype": "^1.3.1",
@@ -8559,21 +11137,29 @@
}
},
"node_modules/http-errors": {
- "version": "2.0.0",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz",
+ "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==",
"license": "MIT",
"dependencies": {
- "depd": "2.0.0",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "toidentifier": "1.0.1"
+ "depd": "~2.0.0",
+ "inherits": "~2.0.4",
+ "setprototypeof": "~1.2.0",
+ "statuses": "~2.0.2",
+ "toidentifier": "~1.0.1"
},
"engines": {
"node": ">= 0.8"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
}
},
"node_modules/http-proxy-agent": {
"version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
+ "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
"license": "MIT",
"dependencies": {
"agent-base": "^7.1.0",
@@ -8583,8 +11169,25 @@
"node": ">= 14"
}
},
+ "node_modules/http-signature": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+ "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==",
+ "license": "MIT",
+ "dependencies": {
+ "assert-plus": "^1.0.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
+ },
+ "engines": {
+ "node": ">=0.8",
+ "npm": ">=1.3.7"
+ }
+ },
"node_modules/https-proxy-agent": {
"version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
+ "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
"license": "MIT",
"dependencies": {
"agent-base": "^7.1.2",
@@ -8596,6 +11199,8 @@
},
"node_modules/human-signals": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
+ "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -8604,6 +11209,8 @@
},
"node_modules/husky": {
"version": "9.1.7",
+ "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz",
+ "integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==",
"dev": true,
"license": "MIT",
"bin": {
@@ -8618,6 +11225,8 @@
},
"node_modules/iconv-lite": {
"version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"license": "MIT",
"dependencies": {
"safer-buffer": ">= 2.1.2 < 3"
@@ -8627,26 +11236,15 @@
}
},
"node_modules/ieee754": {
- "version": "1.2.1",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
+ "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==",
"license": "BSD-3-Clause"
},
"node_modules/ignore": {
"version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
+ "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
"dev": true,
"license": "MIT",
"engines": {
@@ -8655,15 +11253,21 @@
},
"node_modules/ignore-by-default": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz",
+ "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==",
"dev": true,
"license": "ISC"
},
"node_modules/immediate": {
"version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
+ "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==",
"license": "MIT"
},
"node_modules/import-fresh": {
"version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz",
+ "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -8679,6 +11283,8 @@
},
"node_modules/import-fresh/node_modules/resolve-from": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
"dev": true,
"license": "MIT",
"engines": {
@@ -8687,6 +11293,8 @@
},
"node_modules/import-local": {
"version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz",
+ "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -8705,6 +11313,8 @@
},
"node_modules/import-local/node_modules/pkg-dir": {
"version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
+ "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -8716,7 +11326,8 @@
},
"node_modules/imurmurhash": {
"version": "0.1.4",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
"license": "MIT",
"engines": {
"node": ">=0.8.19"
@@ -8724,6 +11335,9 @@
},
"node_modules/inflight": {
"version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
"license": "ISC",
"dependencies": {
"once": "^1.3.0",
@@ -8732,10 +11346,168 @@
},
"node_modules/inherits": {
"version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
"license": "ISC"
},
+ "node_modules/inquirer": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz",
+ "integrity": "sha512-bOetEz5+/WpgaW4D1NYOk1aD+JCqRjqu/FwRFgnIfiP7FC/zinsrfyO1vlS3nyH/R7S0IH3BIHBu4DBIDSqiGQ==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-escapes": "^1.1.0",
+ "ansi-regex": "^2.0.0",
+ "chalk": "^1.0.0",
+ "cli-cursor": "^1.0.1",
+ "cli-width": "^2.0.0",
+ "figures": "^1.3.5",
+ "lodash": "^4.3.0",
+ "readline2": "^1.0.1",
+ "run-async": "^0.1.0",
+ "rx-lite": "^3.1.2",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.0",
+ "through": "^2.3.6"
+ }
+ },
+ "node_modules/inquirer/node_modules/ansi-escapes": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz",
+ "integrity": "sha512-wiXutNjDUlNEDWHcYH3jtZUhd3c4/VojassD8zHdHCY13xbZy2XbW+NKQwA0tWGBVzDA9qEzYwfoSsWmviidhw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/inquirer/node_modules/ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/inquirer/node_modules/ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/inquirer/node_modules/chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/inquirer/node_modules/cli-cursor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
+ "integrity": "sha512-25tABq090YNKkF6JH7lcwO0zFJTRke4Jcq9iX2nr/Sz0Cjjv4gckmwlW6Ty/aoyFd6z3ysR2hMGC2GFugmBo6A==",
+ "license": "MIT",
+ "dependencies": {
+ "restore-cursor": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/inquirer/node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/inquirer/node_modules/is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==",
+ "license": "MIT",
+ "dependencies": {
+ "number-is-nan": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/inquirer/node_modules/onetime": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
+ "integrity": "sha512-GZ+g4jayMqzCRMgB2sol7GiCLjKfS1PINkjmx8spcKce1LiVqcbQreXwqs2YAFXC6R03VIG28ZS31t8M866v6A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/inquirer/node_modules/restore-cursor": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz",
+ "integrity": "sha512-reSjH4HuiFlxlaBaFCiS6O76ZGG2ygKoSlCsipKdaZuKSPx/+bt9mULkn4l0asVzbEfQQmXRg6Wp6gv6m0wElw==",
+ "license": "MIT",
+ "dependencies": {
+ "exit-hook": "^1.0.0",
+ "onetime": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/inquirer/node_modules/string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==",
+ "license": "MIT",
+ "dependencies": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/inquirer/node_modules/strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/inquirer/node_modules/supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
"node_modules/internal-slot": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz",
+ "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
@@ -8746,8 +11518,19 @@
"node": ">= 0.4"
}
},
+ "node_modules/interpret": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz",
+ "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
"node_modules/ip-address": {
"version": "5.9.4",
+ "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-5.9.4.tgz",
+ "integrity": "sha512-dHkI3/YNJq4b/qQaz+c8LuarD3pY24JqZWfjB8aZx1gtpc2MDILu9L9jpZe1sHpzo/yWFweQVn+U//FhazUxmw==",
"license": "MIT",
"dependencies": {
"jsbn": "1.1.0",
@@ -8760,6 +11543,8 @@
},
"node_modules/ipaddr.js": {
"version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
"license": "MIT",
"engines": {
"node": ">= 0.10"
@@ -8767,6 +11552,8 @@
},
"node_modules/is": {
"version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/is/-/is-3.3.2.tgz",
+ "integrity": "sha512-a2xr4E3s1PjDS8ORcGgXpWx6V+liNs+O3JRD2mb9aeugD7rtkkZ0zgLdYgw0tWsKhsdiezGYptSiMlVazCBTuQ==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -8774,6 +11561,8 @@
},
"node_modules/is-arguments": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz",
+ "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==",
"license": "MIT",
"dependencies": {
"call-bound": "^1.0.2",
@@ -8788,6 +11577,8 @@
},
"node_modules/is-array-buffer": {
"version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz",
+ "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==",
"license": "MIT",
"dependencies": {
"call-bind": "^1.0.8",
@@ -8803,11 +11594,15 @@
},
"node_modules/is-arrayish": {
"version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
"dev": true,
"license": "MIT"
},
"node_modules/is-async-function": {
"version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz",
+ "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==",
"license": "MIT",
"dependencies": {
"async-function": "^1.0.0",
@@ -8825,6 +11620,8 @@
},
"node_modules/is-bigint": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz",
+ "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==",
"license": "MIT",
"dependencies": {
"has-bigints": "^1.0.2"
@@ -8838,6 +11635,8 @@
},
"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==",
"devOptional": true,
"license": "MIT",
"dependencies": {
@@ -8849,6 +11648,8 @@
},
"node_modules/is-boolean-object": {
"version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz",
+ "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==",
"license": "MIT",
"dependencies": {
"call-bound": "^1.0.3",
@@ -8863,6 +11664,8 @@
},
"node_modules/is-callable": {
"version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -8873,6 +11676,8 @@
},
"node_modules/is-core-module": {
"version": "2.16.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
+ "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
"license": "MIT",
"dependencies": {
"hasown": "^2.0.2"
@@ -8886,6 +11691,8 @@
},
"node_modules/is-data-view": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz",
+ "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==",
"license": "MIT",
"dependencies": {
"call-bound": "^1.0.2",
@@ -8901,6 +11708,8 @@
},
"node_modules/is-date-object": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz",
+ "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==",
"license": "MIT",
"dependencies": {
"call-bound": "^1.0.2",
@@ -8915,6 +11724,8 @@
},
"node_modules/is-extglob": {
"version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
"devOptional": true,
"license": "MIT",
"engines": {
@@ -8923,6 +11734,8 @@
},
"node_modules/is-finalizationregistry": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz",
+ "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==",
"license": "MIT",
"dependencies": {
"call-bound": "^1.0.3"
@@ -8936,6 +11749,8 @@
},
"node_modules/is-fullwidth-code-point": {
"version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.1.0.tgz",
+ "integrity": "sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -8950,6 +11765,8 @@
},
"node_modules/is-generator-fn": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz",
+ "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -8958,6 +11775,8 @@
},
"node_modules/is-generator-function": {
"version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz",
+ "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==",
"license": "MIT",
"dependencies": {
"call-bound": "^1.0.4",
@@ -8975,6 +11794,8 @@
},
"node_modules/is-glob": {
"version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
"devOptional": true,
"license": "MIT",
"dependencies": {
@@ -8986,6 +11807,8 @@
},
"node_modules/is-map": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz",
+ "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -8994,8 +11817,29 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-my-ip-valid": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.1.tgz",
+ "integrity": "sha512-jxc8cBcOWbNK2i2aTkCZP6i7wkHF1bqKFrwEHuN5Jtg5BSaZHUZQ/JTOJwoV41YvHnOaRyWWh72T/KvfNz9DJg==",
+ "license": "MIT"
+ },
+ "node_modules/is-my-json-valid": {
+ "version": "2.20.6",
+ "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.20.6.tgz",
+ "integrity": "sha512-1JQwulVNjx8UqkPE/bqDaxtH4PXCe/2VRh/y3p99heOV87HG4Id5/VfDswd+YiAfHcRTfDlWgISycnHuhZq1aw==",
+ "license": "MIT",
+ "dependencies": {
+ "generate-function": "^2.0.0",
+ "generate-object-property": "^1.1.0",
+ "is-my-ip-valid": "^1.0.0",
+ "jsonpointer": "^5.0.0",
+ "xtend": "^4.0.0"
+ }
+ },
"node_modules/is-negative-zero": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz",
+ "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -9013,6 +11857,8 @@
},
"node_modules/is-number": {
"version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"devOptional": true,
"license": "MIT",
"engines": {
@@ -9021,6 +11867,8 @@
},
"node_modules/is-number-object": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz",
+ "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==",
"license": "MIT",
"dependencies": {
"call-bound": "^1.0.3",
@@ -9035,6 +11883,8 @@
},
"node_modules/is-path-inside": {
"version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
+ "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -9043,6 +11893,8 @@
},
"node_modules/is-plain-object": {
"version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
"license": "MIT",
"dependencies": {
"isobject": "^3.0.1"
@@ -9051,8 +11903,16 @@
"node": ">=0.10.0"
}
},
+ "node_modules/is-property": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
+ "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==",
+ "license": "MIT"
+ },
"node_modules/is-regex": {
"version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz",
+ "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==",
"license": "MIT",
"dependencies": {
"call-bound": "^1.0.2",
@@ -9067,8 +11927,16 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-resolvable": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz",
+ "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==",
+ "license": "ISC"
+ },
"node_modules/is-set": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz",
+ "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -9079,6 +11947,8 @@
},
"node_modules/is-shared-array-buffer": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz",
+ "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==",
"license": "MIT",
"dependencies": {
"call-bound": "^1.0.3"
@@ -9092,6 +11962,8 @@
},
"node_modules/is-stream": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
"license": "MIT",
"engines": {
"node": ">=8"
@@ -9102,6 +11974,8 @@
},
"node_modules/is-string": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz",
+ "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==",
"license": "MIT",
"dependencies": {
"call-bound": "^1.0.3",
@@ -9116,6 +11990,8 @@
},
"node_modules/is-symbol": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz",
+ "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==",
"license": "MIT",
"dependencies": {
"call-bound": "^1.0.2",
@@ -9131,6 +12007,8 @@
},
"node_modules/is-typed-array": {
"version": "1.1.15",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz",
+ "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==",
"license": "MIT",
"dependencies": {
"which-typed-array": "^1.1.16"
@@ -9142,8 +12020,16 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==",
+ "license": "MIT"
+ },
"node_modules/is-weakmap": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz",
+ "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -9154,6 +12040,8 @@
},
"node_modules/is-weakref": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz",
+ "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==",
"license": "MIT",
"dependencies": {
"call-bound": "^1.0.3"
@@ -9167,6 +12055,8 @@
},
"node_modules/is-weakset": {
"version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz",
+ "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==",
"license": "MIT",
"dependencies": {
"call-bound": "^1.0.3",
@@ -9180,16 +12070,22 @@
}
},
"node_modules/isarray": {
- "version": "2.0.5",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
"license": "MIT"
},
"node_modules/isexe": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
"dev": true,
"license": "ISC"
},
"node_modules/isobject": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@@ -9197,14 +12093,33 @@
},
"node_modules/isomorphic-fetch": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz",
+ "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==",
"license": "MIT",
"dependencies": {
"node-fetch": "^2.6.1",
"whatwg-fetch": "^3.4.1"
}
},
+ "node_modules/isomorphic-ws": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz",
+ "integrity": "sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==",
+ "license": "MIT",
+ "peerDependencies": {
+ "ws": "*"
+ }
+ },
+ "node_modules/isstream": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==",
+ "license": "MIT"
+ },
"node_modules/istanbul-lib-coverage": {
"version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz",
+ "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==",
"dev": true,
"license": "BSD-3-Clause",
"engines": {
@@ -9213,6 +12128,8 @@
},
"node_modules/istanbul-lib-instrument": {
"version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
+ "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
"dev": true,
"license": "BSD-3-Clause",
"dependencies": {
@@ -9228,6 +12145,8 @@
},
"node_modules/istanbul-lib-report": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz",
+ "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==",
"dev": true,
"license": "BSD-3-Clause",
"dependencies": {
@@ -9241,6 +12160,8 @@
},
"node_modules/istanbul-lib-report/node_modules/make-dir": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz",
+ "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9255,6 +12176,8 @@
},
"node_modules/istanbul-lib-report/node_modules/semver": {
"version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true,
"license": "ISC",
"bin": {
@@ -9266,6 +12189,8 @@
},
"node_modules/istanbul-lib-source-maps": {
"version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
+ "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
"dev": true,
"license": "BSD-3-Clause",
"dependencies": {
@@ -9279,6 +12204,8 @@
},
"node_modules/istanbul-reports": {
"version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz",
+ "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==",
"dev": true,
"license": "BSD-3-Clause",
"dependencies": {
@@ -9291,6 +12218,8 @@
},
"node_modules/iterator.prototype": {
"version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz",
+ "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9307,6 +12236,8 @@
},
"node_modules/jest": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz",
+ "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9332,6 +12263,8 @@
},
"node_modules/jest-changed-files": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz",
+ "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9345,6 +12278,8 @@
},
"node_modules/jest-circus": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz",
+ "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9375,6 +12310,8 @@
},
"node_modules/jest-circus/node_modules/ansi-styles": {
"version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -9386,6 +12323,8 @@
},
"node_modules/jest-circus/node_modules/pretty-format": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
+ "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9399,11 +12338,15 @@
},
"node_modules/jest-circus/node_modules/react-is": {
"version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
+ "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
"dev": true,
"license": "MIT"
},
"node_modules/jest-circus/node_modules/slash": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -9412,6 +12355,8 @@
},
"node_modules/jest-cli": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz",
+ "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9444,6 +12389,8 @@
},
"node_modules/jest-config": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz",
+ "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9488,6 +12435,8 @@
},
"node_modules/jest-config/node_modules/ansi-styles": {
"version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -9499,6 +12448,8 @@
},
"node_modules/jest-config/node_modules/pretty-format": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
+ "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9512,11 +12463,15 @@
},
"node_modules/jest-config/node_modules/react-is": {
"version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
+ "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
"dev": true,
"license": "MIT"
},
"node_modules/jest-config/node_modules/slash": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -9525,6 +12480,8 @@
},
"node_modules/jest-diff": {
"version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz",
+ "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9539,6 +12496,8 @@
},
"node_modules/jest-diff/node_modules/jest-get-type": {
"version": "26.3.0",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz",
+ "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==",
"dev": true,
"license": "MIT",
"engines": {
@@ -9547,6 +12506,8 @@
},
"node_modules/jest-docblock": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz",
+ "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9558,6 +12519,8 @@
},
"node_modules/jest-each": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz",
+ "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9573,6 +12536,8 @@
},
"node_modules/jest-each/node_modules/ansi-styles": {
"version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -9584,6 +12549,8 @@
},
"node_modules/jest-each/node_modules/pretty-format": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
+ "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9597,11 +12564,15 @@
},
"node_modules/jest-each/node_modules/react-is": {
"version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
+ "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
"dev": true,
"license": "MIT"
},
"node_modules/jest-environment-node": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz",
+ "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9618,6 +12589,8 @@
},
"node_modules/jest-get-type": {
"version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz",
+ "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -9626,6 +12599,8 @@
},
"node_modules/jest-haste-map": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz",
+ "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9650,6 +12625,8 @@
},
"node_modules/jest-leak-detector": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz",
+ "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9662,6 +12639,8 @@
},
"node_modules/jest-leak-detector/node_modules/ansi-styles": {
"version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -9673,6 +12652,8 @@
},
"node_modules/jest-leak-detector/node_modules/pretty-format": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
+ "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9686,11 +12667,15 @@
},
"node_modules/jest-leak-detector/node_modules/react-is": {
"version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
+ "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
"dev": true,
"license": "MIT"
},
"node_modules/jest-matcher-utils": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz",
+ "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9705,6 +12690,8 @@
},
"node_modules/jest-matcher-utils/node_modules/ansi-styles": {
"version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -9716,6 +12703,8 @@
},
"node_modules/jest-matcher-utils/node_modules/diff-sequences": {
"version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz",
+ "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -9724,6 +12713,8 @@
},
"node_modules/jest-matcher-utils/node_modules/jest-diff": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz",
+ "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9738,6 +12729,8 @@
},
"node_modules/jest-matcher-utils/node_modules/pretty-format": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
+ "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9751,11 +12744,15 @@
},
"node_modules/jest-matcher-utils/node_modules/react-is": {
"version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
+ "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
"dev": true,
"license": "MIT"
},
"node_modules/jest-message-util": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz",
+ "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9775,6 +12772,8 @@
},
"node_modules/jest-message-util/node_modules/ansi-styles": {
"version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -9786,6 +12785,8 @@
},
"node_modules/jest-message-util/node_modules/pretty-format": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
+ "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9799,11 +12800,15 @@
},
"node_modules/jest-message-util/node_modules/react-is": {
"version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
+ "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
"dev": true,
"license": "MIT"
},
"node_modules/jest-message-util/node_modules/slash": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -9812,6 +12817,8 @@
},
"node_modules/jest-mock": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz",
+ "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9825,6 +12832,8 @@
},
"node_modules/jest-pnp-resolver": {
"version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz",
+ "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==",
"dev": true,
"license": "MIT",
"engines": {
@@ -9841,6 +12850,8 @@
},
"node_modules/jest-regex-util": {
"version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz",
+ "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -9849,6 +12860,8 @@
},
"node_modules/jest-resolve": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz",
+ "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9868,6 +12881,8 @@
},
"node_modules/jest-resolve-dependencies": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz",
+ "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9880,6 +12895,8 @@
},
"node_modules/jest-resolve/node_modules/slash": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -9888,6 +12905,8 @@
},
"node_modules/jest-runner": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz",
+ "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9919,6 +12938,8 @@
},
"node_modules/jest-runner/node_modules/source-map-support": {
"version": "0.5.13",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz",
+ "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9928,6 +12949,8 @@
},
"node_modules/jest-runtime": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz",
+ "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9960,6 +12983,8 @@
},
"node_modules/jest-runtime/node_modules/slash": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -9968,6 +12993,8 @@
},
"node_modules/jest-snapshot": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz",
+ "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9998,6 +13025,8 @@
},
"node_modules/jest-snapshot/node_modules/ansi-styles": {
"version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -10009,6 +13038,8 @@
},
"node_modules/jest-snapshot/node_modules/diff-sequences": {
"version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz",
+ "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -10017,6 +13048,8 @@
},
"node_modules/jest-snapshot/node_modules/jest-diff": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz",
+ "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10031,6 +13064,8 @@
},
"node_modules/jest-snapshot/node_modules/pretty-format": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
+ "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10044,11 +13079,15 @@
},
"node_modules/jest-snapshot/node_modules/react-is": {
"version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
+ "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
"dev": true,
"license": "MIT"
},
"node_modules/jest-snapshot/node_modules/semver": {
"version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true,
"license": "ISC",
"bin": {
@@ -10060,6 +13099,8 @@
},
"node_modules/jest-util": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz",
+ "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10076,6 +13117,8 @@
},
"node_modules/jest-validate": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz",
+ "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10092,6 +13135,8 @@
},
"node_modules/jest-validate/node_modules/ansi-styles": {
"version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -10103,6 +13148,8 @@
},
"node_modules/jest-validate/node_modules/camelcase": {
"version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -10114,6 +13161,8 @@
},
"node_modules/jest-validate/node_modules/pretty-format": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
+ "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10127,11 +13176,15 @@
},
"node_modules/jest-validate/node_modules/react-is": {
"version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
+ "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
"dev": true,
"license": "MIT"
},
"node_modules/jest-watcher": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz",
+ "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10150,6 +13203,8 @@
},
"node_modules/jest-worker": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz",
+ "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10164,6 +13219,8 @@
},
"node_modules/jest-worker/node_modules/supports-color": {
"version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10178,6 +13235,8 @@
},
"node_modules/jmespath": {
"version": "0.16.0",
+ "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.16.0.tgz",
+ "integrity": "sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==",
"license": "Apache-2.0",
"engines": {
"node": ">= 0.6.0"
@@ -10205,15 +13264,19 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/jpeg-exif/-/jpeg-exif-1.1.4.tgz",
"integrity": "sha512-a+bKEcCjtuW5WTdgeXFzswSrdqi0jk4XlEtZlx5A94wCoBpFjfFTbo/Tra5SpNCl/YFZPvcV1dJc+TAYeg6ROQ==",
+ "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.",
"license": "MIT"
},
"node_modules/js-tokens": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
"license": "MIT"
},
"node_modules/js-yaml": {
"version": "3.14.2",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz",
+ "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==",
"license": "MIT",
"dependencies": {
"argparse": "^1.0.7",
@@ -10225,10 +13288,14 @@
},
"node_modules/jsbn": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz",
+ "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==",
"license": "MIT"
},
"node_modules/jsesc": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
+ "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
"license": "MIT",
"bin": {
"jsesc": "bin/jsesc"
@@ -10239,6 +13306,8 @@
},
"node_modules/json-bigint": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz",
+ "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==",
"license": "MIT",
"dependencies": {
"bignumber.js": "^9.0.0"
@@ -10246,29 +13315,66 @@
},
"node_modules/json-buffer": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
"dev": true,
"license": "MIT"
},
"node_modules/json-parse-even-better-errors": {
"version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
"dev": true,
"license": "MIT"
},
+ "node_modules/json-schema": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
+ "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==",
+ "license": "(AFL-2.1 OR BSD-3-Clause)"
+ },
"node_modules/json-schema-traverse": {
"version": "0.4.1",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"license": "MIT"
},
+ "node_modules/json-stable-stringify": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.3.0.tgz",
+ "integrity": "sha512-qtYiSSFlwot9XHtF9bD9c7rwKjr+RecWT//ZnPvSmEjpV5mmPOCN4j8UjY5hbjNkOwZ/jQv3J6R1/pL7RwgMsg==",
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.4",
+ "isarray": "^2.0.5",
+ "jsonify": "^0.0.1",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/json-stable-stringify-without-jsonify": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
"dev": true,
"license": "MIT"
},
+ "node_modules/json-stable-stringify/node_modules/isarray": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
+ "license": "MIT"
+ },
"node_modules/json-stringify-safe": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
"integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==",
- "dev": true,
"license": "ISC"
},
"node_modules/json2csv": {
@@ -10291,6 +13397,8 @@
},
"node_modules/json5": {
"version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
"license": "MIT",
"bin": {
"json5": "lib/cli.js"
@@ -10299,11 +13407,31 @@
"node": ">=6"
}
},
+ "node_modules/jsonify": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz",
+ "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==",
+ "license": "Public Domain",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/jsonpointer": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz",
+ "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/jsonwebtoken": {
- "version": "9.0.2",
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.3.tgz",
+ "integrity": "sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g==",
"license": "MIT",
"dependencies": {
- "jws": "^3.2.2",
+ "jws": "^4.0.1",
"lodash.includes": "^4.3.0",
"lodash.isboolean": "^3.0.3",
"lodash.isinteger": "^4.0.4",
@@ -10319,27 +13447,10 @@
"npm": ">=6"
}
},
- "node_modules/jsonwebtoken/node_modules/jwa": {
- "version": "1.4.2",
- "license": "MIT",
- "dependencies": {
- "buffer-equal-constant-time": "^1.0.1",
- "ecdsa-sig-formatter": "1.0.11",
- "safe-buffer": "^5.0.1"
- }
- },
- "node_modules/jsonwebtoken/node_modules/jws": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.3.tgz",
- "integrity": "sha512-byiJ0FLRdLdSVSReO/U4E7RoEyOCKnEnEPMjq3HxWtvzLsV08/i5RQKsFVNkCldrCaPr2vDNAOMsfs8T/Hze7g==",
- "license": "MIT",
- "dependencies": {
- "jwa": "^1.4.2",
- "safe-buffer": "^5.0.1"
- }
- },
"node_modules/jsonwebtoken/node_modules/semver": {
"version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
@@ -10348,8 +13459,25 @@
"node": ">=10"
}
},
+ "node_modules/jsprim": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz",
+ "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==",
+ "license": "MIT",
+ "dependencies": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.3.0",
+ "json-schema": "0.4.0",
+ "verror": "1.10.0"
+ },
+ "engines": {
+ "node": ">=0.6.0"
+ }
+ },
"node_modules/jsx-ast-utils": {
"version": "3.3.5",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz",
+ "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10364,6 +13492,8 @@
},
"node_modules/jwa": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz",
+ "integrity": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==",
"license": "MIT",
"dependencies": {
"buffer-equal-constant-time": "^1.0.1",
@@ -10383,10 +13513,14 @@
},
"node_modules/kareem": {
"version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.2.tgz",
+ "integrity": "sha512-STHz9P7X2L4Kwn72fA4rGyqyXdmrMSdxqHx9IXon/FXluXieaFA6KJ2upcHAHxQPQ0LeM/OjLrhFxifHewOALQ==",
"license": "Apache-2.0"
},
"node_modules/keyv": {
"version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10395,6 +13529,8 @@
},
"node_modules/kind-of": {
"version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@@ -10402,6 +13538,8 @@
},
"node_modules/kleur": {
"version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
+ "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
"dev": true,
"license": "MIT",
"engines": {
@@ -10410,11 +13548,15 @@
},
"node_modules/language-subtag-registry": {
"version": "0.3.23",
+ "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz",
+ "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==",
"dev": true,
"license": "CC0-1.0"
},
"node_modules/language-tags": {
"version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz",
+ "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10426,6 +13568,8 @@
},
"node_modules/lazy": {
"version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/lazy/-/lazy-1.0.11.tgz",
+ "integrity": "sha512-Y+CjUfLmIpoUCCRl0ub4smrYtGGr5AOa2AKOaWelGHOGz33X/Y/KizefGqbkwfz44+cnq/+9habclf8vOmu2LA==",
"license": "MIT",
"engines": {
"node": ">=0.2.0"
@@ -10433,6 +13577,8 @@
},
"node_modules/leven": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
+ "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
"dev": true,
"license": "MIT",
"engines": {
@@ -10441,6 +13587,8 @@
},
"node_modules/levn": {
"version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10453,6 +13601,8 @@
},
"node_modules/lie": {
"version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz",
+ "integrity": "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==",
"license": "MIT",
"dependencies": {
"immediate": "~3.0.5"
@@ -10479,15 +13629,19 @@
},
"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,
"license": "MIT"
},
"node_modules/lint-staged": {
- "version": "16.2.6",
+ "version": "16.2.7",
+ "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-16.2.7.tgz",
+ "integrity": "sha512-lDIj4RnYmK7/kXMya+qJsmkRFkGolciXjrsZ6PC25GdTfWOAWetR0ZbsNXRAj1EHHImRSalc+whZFg56F5DVow==",
"dev": true,
"license": "MIT",
"dependencies": {
- "commander": "^14.0.1",
+ "commander": "^14.0.2",
"listr2": "^9.0.5",
"micromatch": "^4.0.8",
"nano-spawn": "^2.0.0",
@@ -10507,6 +13661,8 @@
},
"node_modules/lint-staged/node_modules/commander": {
"version": "14.0.2",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.2.tgz",
+ "integrity": "sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -10515,6 +13671,8 @@
},
"node_modules/listr2": {
"version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/listr2/-/listr2-9.0.5.tgz",
+ "integrity": "sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10531,6 +13689,8 @@
},
"node_modules/localforage": {
"version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz",
+ "integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==",
"license": "Apache-2.0",
"dependencies": {
"lie": "3.1.1"
@@ -10538,6 +13698,8 @@
},
"node_modules/locate-path": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10548,43 +13710,126 @@
}
},
"node_modules/lodash": {
- "version": "4.17.21",
+ "version": "4.17.23",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz",
+ "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==",
+ "license": "MIT"
+ },
+ "node_modules/lodash._basecopy": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz",
+ "integrity": "sha512-rFR6Vpm4HeCK1WPGvjZSJ+7yik8d8PVUdCJx5rT2pogG4Ve/2ZS7kfmO5l5T2o5V2mqlNIfSF5MZlr1+xOoYQQ==",
+ "license": "MIT"
+ },
+ "node_modules/lodash._basetostring": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz",
+ "integrity": "sha512-mTzAr1aNAv/i7W43vOR/uD/aJ4ngbtsRaCubp2BfZhlGU/eORUjg/7F6X0orNMdv33JOrdgGybtvMN/po3EWrA==",
+ "license": "MIT"
+ },
+ "node_modules/lodash._basevalues": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz",
+ "integrity": "sha512-H94wl5P13uEqlCg7OcNNhMQ8KvWSIyqXzOPusRgHC9DK3o54P6P3xtbXlVbRABG4q5gSmp7EDdJ0MSuW9HX6Mg==",
+ "license": "MIT"
+ },
+ "node_modules/lodash._getnative": {
+ "version": "3.9.1",
+ "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz",
+ "integrity": "sha512-RrL9VxMEPyDMHOd9uFbvMe8X55X16/cGM5IgOKgRElQZutpX89iS6vwl64duTV1/16w5JY7tuFNXqoekmh1EmA==",
+ "license": "MIT"
+ },
+ "node_modules/lodash._isiterateecall": {
+ "version": "3.0.9",
+ "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz",
+ "integrity": "sha512-De+ZbrMu6eThFti/CSzhRvTKMgQToLxbij58LMfM8JnYDNSOjkjTCIaa8ixglOeGh2nyPlakbt5bJWJ7gvpYlQ==",
+ "license": "MIT"
+ },
+ "node_modules/lodash._reescape": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz",
+ "integrity": "sha512-Sjlavm5y+FUVIF3vF3B75GyXrzsfYV8Dlv3L4mEpuB9leg8N6yf/7rU06iLPx9fY0Mv3khVp9p7Dx0mGV6V5OQ==",
+ "license": "MIT"
+ },
+ "node_modules/lodash._reevaluate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz",
+ "integrity": "sha512-OrPwdDc65iJiBeUe5n/LIjd7Viy99bKwDdk7Z5ljfZg0uFRFlfQaCy9tZ4YMAag9WAZmlVpe1iZrkIMMSMHD3w==",
+ "license": "MIT"
+ },
+ "node_modules/lodash._reinterpolate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
+ "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==",
+ "license": "MIT"
+ },
+ "node_modules/lodash._root": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz",
+ "integrity": "sha512-O0pWuFSK6x4EXhM1dhZ8gchNtG7JMqBtrHdoUFUWXD7dJnNSUze1GuyQr5sOs0aCvgGeI3o/OJW8f4ca7FDxmQ==",
"license": "MIT"
},
"node_modules/lodash.assignin": {
"version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz",
+ "integrity": "sha512-yX/rx6d/UTVh7sSVWVSIMjfnz95evAgDFdb1ZozC35I9mSFCkmzptOzevxjgbQUsc78NR44LVHWjsoMQXy9FDg==",
"license": "MIT"
},
"node_modules/lodash.bind": {
"version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz",
+ "integrity": "sha512-lxdsn7xxlCymgLYo1gGvVrfHmkjDiyqVv62FAeF2i5ta72BipE1SLxw8hPEPLhD4/247Ijw07UQH7Hq/chT5LA==",
"license": "MIT"
},
"node_modules/lodash.debounce": {
"version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
+ "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==",
"license": "MIT"
},
"node_modules/lodash.defaults": {
"version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz",
+ "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==",
"license": "MIT"
},
"node_modules/lodash.defaultsdeep": {
"version": "4.6.1",
+ "resolved": "https://registry.npmjs.org/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz",
+ "integrity": "sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==",
"license": "MIT"
},
+ "node_modules/lodash.escape": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz",
+ "integrity": "sha512-n1PZMXgaaDWZDSvuNZ/8XOcYO2hOKDqZel5adtR30VKQAtoWs/5AOeFA0vPV8moiPzlqe7F4cP2tzpFewQyelQ==",
+ "license": "MIT",
+ "dependencies": {
+ "lodash._root": "^3.0.0"
+ }
+ },
"node_modules/lodash.filter": {
"version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz",
+ "integrity": "sha512-pXYUy7PR8BCLwX5mgJ/aNtyOvuJTdZAo9EQFUvMIYugqmJxnrYaANvTbgndOzHSCSR0wnlBBfRXJL5SbWxo3FQ==",
"license": "MIT"
},
"node_modules/lodash.flatmap": {
"version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.flatmap/-/lodash.flatmap-4.5.0.tgz",
+ "integrity": "sha512-/OcpcAGWlrZyoHGeHh3cAoa6nGdX6QYtmzNP84Jqol6UEQQ2gIaU3H+0eICcjcKGl0/XF8LWOujNn9lffsnaOg==",
"license": "MIT"
},
"node_modules/lodash.flatten": {
"version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz",
+ "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==",
"license": "MIT"
},
"node_modules/lodash.foreach": {
"version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz",
+ "integrity": "sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==",
"license": "MIT"
},
"node_modules/lodash.get": {
@@ -10596,58 +13841,144 @@
},
"node_modules/lodash.includes": {
"version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
+ "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==",
+ "license": "MIT"
+ },
+ "node_modules/lodash.isarguments": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
+ "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==",
+ "license": "MIT"
+ },
+ "node_modules/lodash.isarray": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz",
+ "integrity": "sha512-JwObCrNJuT0Nnbuecmqr5DgtuBppuCvGD9lxjFpAzwnVtdGoDQ1zig+5W8k5/6Gcn0gZ3936HDAlGd28i7sOGQ==",
"license": "MIT"
},
"node_modules/lodash.isboolean": {
"version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
+ "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==",
"license": "MIT"
},
"node_modules/lodash.isinteger": {
"version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
+ "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==",
"license": "MIT"
},
"node_modules/lodash.isnumber": {
"version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
+ "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==",
"license": "MIT"
},
"node_modules/lodash.isplainobject": {
"version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
+ "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==",
"license": "MIT"
},
"node_modules/lodash.isstring": {
"version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
+ "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==",
"license": "MIT"
},
+ "node_modules/lodash.keys": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz",
+ "integrity": "sha512-CuBsapFjcubOGMn3VD+24HOAPxM79tH+V6ivJL3CHYjtrawauDJHUk//Yew9Hvc6e9rbCrURGk8z6PC+8WJBfQ==",
+ "license": "MIT",
+ "dependencies": {
+ "lodash._getnative": "^3.0.0",
+ "lodash.isarguments": "^3.0.0",
+ "lodash.isarray": "^3.0.0"
+ }
+ },
"node_modules/lodash.map": {
"version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz",
+ "integrity": "sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==",
"license": "MIT"
},
"node_modules/lodash.merge": {
"version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
"license": "MIT"
},
"node_modules/lodash.once": {
"version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
+ "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==",
"license": "MIT"
},
"node_modules/lodash.pick": {
"version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz",
+ "integrity": "sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==",
+ "deprecated": "This package is deprecated. Use destructuring assignment syntax instead.",
"license": "MIT"
},
"node_modules/lodash.reduce": {
"version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz",
+ "integrity": "sha512-6raRe2vxCYBhpBu+B+TtNGUzah+hQjVdu3E17wfusjyrXBka2nBS8OH/gjVZ5PvHOhWmIZTYri09Z6n/QfnNMw==",
"license": "MIT"
},
"node_modules/lodash.reject": {
"version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz",
+ "integrity": "sha512-qkTuvgEzYdyhiJBx42YPzPo71R1aEr0z79kAv7Ixg8wPFEjgRgJdUsGMG3Hf3OYSF/kHI79XhNlt+5Ar6OzwxQ==",
+ "license": "MIT"
+ },
+ "node_modules/lodash.restparam": {
+ "version": "3.6.1",
+ "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz",
+ "integrity": "sha512-L4/arjjuq4noiUJpt3yS6KIKDtJwNe2fIYgMqyYYKoeIfV1iEqvPwhCx23o+R9dzouGihDAPN1dTIRWa7zk8tw==",
"license": "MIT"
},
"node_modules/lodash.some": {
"version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz",
+ "integrity": "sha512-j7MJE+TuT51q9ggt4fSgVqro163BEFjAt3u97IqU+JA2DkWl80nFTrowzLpZ/BnpN7rrl0JA/593NAdd8p/scQ==",
"license": "MIT"
},
+ "node_modules/lodash.template": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz",
+ "integrity": "sha512-0B4Y53I0OgHUJkt+7RmlDFWKjVAI/YUpWNiL9GQz5ORDr4ttgfQGo+phBWKFLJbBdtOwgMuUkdOHOnPg45jKmQ==",
+ "deprecated": "This package is deprecated. Use https://socket.dev/npm/package/eta instead.",
+ "license": "MIT",
+ "dependencies": {
+ "lodash._basecopy": "^3.0.0",
+ "lodash._basetostring": "^3.0.0",
+ "lodash._basevalues": "^3.0.0",
+ "lodash._isiterateecall": "^3.0.0",
+ "lodash._reinterpolate": "^3.0.0",
+ "lodash.escape": "^3.0.0",
+ "lodash.keys": "^3.0.0",
+ "lodash.restparam": "^3.0.0",
+ "lodash.templatesettings": "^3.0.0"
+ }
+ },
+ "node_modules/lodash.templatesettings": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz",
+ "integrity": "sha512-TcrlEr31tDYnWkHFWDCV3dHYroKEXpJZ2YJYvJdhN+y4AkWMDZ5I4I8XDtUKqSAyG81N7w+I1mFEJtcED+tGqQ==",
+ "license": "MIT",
+ "dependencies": {
+ "lodash._reinterpolate": "^3.0.0",
+ "lodash.escape": "^3.0.0"
+ }
+ },
"node_modules/log-update": {
"version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz",
+ "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10666,6 +13997,8 @@
},
"node_modules/log-update/node_modules/ansi-escapes": {
"version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.2.0.tgz",
+ "integrity": "sha512-g6LhBsl+GBPRWGWsBtutpzBYuIIdBkLEvad5C/va/74Db018+5TZiyA26cZJAr3Rft5lprVqOIPxf5Vid6tqAw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10680,6 +14013,8 @@
},
"node_modules/log-update/node_modules/ansi-regex": {
"version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz",
+ "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -10691,6 +14026,8 @@
},
"node_modules/log-update/node_modules/strip-ansi": {
"version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz",
+ "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10703,8 +14040,16 @@
"url": "https://github.com/chalk/strip-ansi?sponsor=1"
}
},
+ "node_modules/long-timeout": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/long-timeout/-/long-timeout-0.1.1.tgz",
+ "integrity": "sha512-BFRuQUqc7x2NWxfJBCyUrN8iYUYznzL9JROmRz1gZ6KlOIgmoD+njPVbb+VNn2nGMKggMsK79iUNErillsrx7w==",
+ "license": "MIT"
+ },
"node_modules/loose-envify": {
"version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10716,13 +14061,26 @@
},
"node_modules/lru-cache": {
"version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
"license": "ISC",
"dependencies": {
"yallist": "^3.0.2"
}
},
+ "node_modules/luxon": {
+ "version": "3.7.2",
+ "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.7.2.tgz",
+ "integrity": "sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ }
+ },
"node_modules/make-dir": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
+ "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
"license": "MIT",
"dependencies": {
"pify": "^4.0.1",
@@ -10734,6 +14092,8 @@
},
"node_modules/make-dir/node_modules/semver": {
"version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
"license": "ISC",
"bin": {
"semver": "bin/semver"
@@ -10741,14 +14101,44 @@
},
"node_modules/makeerror": {
"version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz",
+ "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==",
"dev": true,
"license": "BSD-3-Clause",
"dependencies": {
"tmpl": "1.0.5"
}
},
+ "node_modules/masto": {
+ "version": "7.10.1",
+ "resolved": "https://registry.npmjs.org/masto/-/masto-7.10.1.tgz",
+ "integrity": "sha512-dYJBSwilbuLof+sd9Ov7TE8qaVcP4XLY4oB0peHMdWzewxiC/ldIs4n4vtlUj8e4lbaeLYql7n2iRm4rZx6zaA==",
+ "license": "MIT",
+ "dependencies": {
+ "change-case": "^5.4.4",
+ "events-to-async": "^2.0.2",
+ "isomorphic-ws": "^5.0.0",
+ "ts-custom-error": "^3.3.1",
+ "ws": "^8.18.3"
+ }
+ },
+ "node_modules/mastodon-api": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/mastodon-api/-/mastodon-api-1.3.0.tgz",
+ "integrity": "sha512-h1S0f3HzPtaNTaIBXu/3PVsXhKgZGk9DYrqp+bNZwp1wjYhJnEKggossj+DCCQ72+2y3Kcd7fNP2cEkp9jK6Ig==",
+ "license": "MIT",
+ "dependencies": {
+ "gulp-eslint": "^3.0.1",
+ "mime": "^1.3.4",
+ "oauth": "^0.9.15",
+ "readline": "^1.3.0",
+ "request": "^2.81.0"
+ }
+ },
"node_modules/math-intrinsics": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
+ "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -10756,6 +14146,8 @@
},
"node_modules/md5-file": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/md5-file/-/md5-file-5.0.0.tgz",
+ "integrity": "sha512-xbEFXCYVWrSx/gEKS1VPlg84h/4L20znVIulKw6kMfmBUAZNAnF00eczz9ICMl+/hjQGo5KSXRxbL/47X3rmMw==",
"dev": true,
"license": "MIT",
"bin": {
@@ -10767,6 +14159,8 @@
},
"node_modules/media-typer": {
"version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
"license": "MIT",
"engines": {
"node": ">= 0.6"
@@ -10774,11 +14168,15 @@
},
"node_modules/memory-pager": {
"version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
+ "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==",
"license": "MIT",
"optional": true
},
"node_modules/merge-descriptors": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz",
+ "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -10786,11 +14184,15 @@
},
"node_modules/merge-stream": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
"dev": true,
"license": "MIT"
},
"node_modules/methods": {
"version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
"license": "MIT",
"engines": {
"node": ">= 0.6"
@@ -10798,6 +14200,8 @@
},
"node_modules/micromatch": {
"version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10810,6 +14214,8 @@
},
"node_modules/mime": {
"version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
"license": "MIT",
"bin": {
"mime": "cli.js"
@@ -10820,6 +14226,8 @@
},
"node_modules/mime-db": {
"version": "1.54.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz",
+ "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==",
"license": "MIT",
"engines": {
"node": ">= 0.6"
@@ -10827,6 +14235,8 @@
},
"node_modules/mime-types": {
"version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
"license": "MIT",
"dependencies": {
"mime-db": "1.52.0"
@@ -10837,6 +14247,8 @@
},
"node_modules/mime-types/node_modules/mime-db": {
"version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
"license": "MIT",
"engines": {
"node": ">= 0.6"
@@ -10844,6 +14256,8 @@
},
"node_modules/mimic-fn": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -10852,6 +14266,8 @@
},
"node_modules/mimic-function": {
"version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz",
+ "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -10863,6 +14279,8 @@
},
"node_modules/minimatch": {
"version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"license": "ISC",
"dependencies": {
"brace-expansion": "^1.1.7"
@@ -10873,6 +14291,8 @@
},
"node_modules/minimist": {
"version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -10880,6 +14300,8 @@
},
"node_modules/minipass": {
"version": "4.2.8",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz",
+ "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==",
"license": "ISC",
"engines": {
"node": ">=8"
@@ -10887,6 +14309,8 @@
},
"node_modules/mkdirp": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
"dev": true,
"license": "MIT",
"bin": {
@@ -10898,6 +14322,8 @@
},
"node_modules/moment": {
"version": "2.30.1",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
+ "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",
"license": "MIT",
"engines": {
"node": "*"
@@ -10905,6 +14331,8 @@
},
"node_modules/moment-timezone": {
"version": "0.5.48",
+ "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.48.tgz",
+ "integrity": "sha512-f22b8LV1gbTO2ms2j2z13MuPogNoh5UzxL3nzNAYKGraILnbGc9NEE6dyiiiLv46DGRb8A4kg8UKWLjPthxBHw==",
"license": "MIT",
"dependencies": {
"moment": "^2.29.4"
@@ -10915,6 +14343,8 @@
},
"node_modules/mongodb": {
"version": "3.7.4",
+ "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.7.4.tgz",
+ "integrity": "sha512-K5q8aBqEXMwWdVNh94UQTwZ6BejVbFhh1uB6c5FKtPE9eUMZPUO3sRZdgIEcHSrAWmxzpG/FeODDKL388sqRmw==",
"license": "Apache-2.0",
"dependencies": {
"bl": "^2.2.1",
@@ -10952,6 +14382,8 @@
},
"node_modules/mongodb-memory-server": {
"version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/mongodb-memory-server/-/mongodb-memory-server-7.6.3.tgz",
+ "integrity": "sha512-yHDE9FGxOpSRUzitF9Qx3JjEgayCSJI3JOW2wgeBH/5PAsUdisy2nRxRiNwwLDooQ7tohllWCRTXlWqyarUEMQ==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",
@@ -10965,6 +14397,8 @@
},
"node_modules/mongodb-memory-server-core": {
"version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/mongodb-memory-server-core/-/mongodb-memory-server-core-7.6.3.tgz",
+ "integrity": "sha512-5rv79YlPoPvguRfFv1fvR78z69/QohGD+65f9UYWDfD70ykXpf6tAXPpWJ4ww/ues7FIVepkFCr3aiUvu6lA+A==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10993,6 +14427,8 @@
},
"node_modules/mongodb-memory-server-core/node_modules/agent-base": {
"version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11004,6 +14440,8 @@
},
"node_modules/mongodb-memory-server-core/node_modules/camelcase": {
"version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -11015,6 +14453,8 @@
},
"node_modules/mongodb-memory-server-core/node_modules/find-cache-dir": {
"version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz",
+ "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11031,6 +14471,8 @@
},
"node_modules/mongodb-memory-server-core/node_modules/https-proxy-agent": {
"version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11043,6 +14485,8 @@
},
"node_modules/mongodb-memory-server-core/node_modules/make-dir": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
+ "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11057,6 +14501,8 @@
},
"node_modules/mongodb-memory-server-core/node_modules/make-dir/node_modules/semver": {
"version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
"license": "ISC",
"bin": {
@@ -11065,6 +14511,8 @@
},
"node_modules/mongodb-memory-server-core/node_modules/pkg-dir": {
"version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
+ "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11076,6 +14524,8 @@
},
"node_modules/mongodb-memory-server-core/node_modules/semver": {
"version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true,
"license": "ISC",
"bin": {
@@ -11087,6 +14537,8 @@
},
"node_modules/mongodb-memory-server-core/node_modules/uuid": {
"version": "8.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
"dev": true,
"license": "MIT",
"bin": {
@@ -11095,6 +14547,8 @@
},
"node_modules/mongodb/node_modules/bson": {
"version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.6.tgz",
+ "integrity": "sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==",
"license": "Apache-2.0",
"engines": {
"node": ">=0.6.19"
@@ -11102,6 +14556,8 @@
},
"node_modules/mongoose": {
"version": "5.13.23",
+ "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.13.23.tgz",
+ "integrity": "sha512-Q5bo1yYOcH2wbBPP4tGmcY5VKsFkQcjUDh66YjrbneAFB3vNKQwLvteRFLuLiU17rA5SDl3UMcMJLD9VS8ng2Q==",
"license": "MIT",
"dependencies": {
"@types/bson": "1.x || 4.0.x",
@@ -11129,6 +14585,8 @@
},
"node_modules/mongoose-legacy-pluralize": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz",
+ "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ==",
"license": "Apache-2.0",
"peerDependencies": {
"mongoose": "*"
@@ -11136,6 +14594,8 @@
},
"node_modules/mongoose-validator": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mongoose-validator/-/mongoose-validator-2.1.0.tgz",
+ "integrity": "sha512-o1oThcinMdYfuut8ld8iQv4TdEB8W6I/WIKB6lWGtHzHmxa/SRnmXg2FeLL2CO+b9vzRitVubrFTeMOr9bJ2cA==",
"license": "MIT",
"dependencies": {
"is": "^3.2.1",
@@ -11147,6 +14607,8 @@
},
"node_modules/mongoose-validator/node_modules/validator": {
"version": "10.11.0",
+ "resolved": "https://registry.npmjs.org/validator/-/validator-10.11.0.tgz",
+ "integrity": "sha512-X/p3UZerAIsbBfN/IwahhYaBbY68EN/UQBWHtsbXGT5bfrH/p4NQzUCG1kF/rtKaNpnJ7jAu6NGTdSNtyNIXMw==",
"license": "MIT",
"engines": {
"node": ">= 0.10"
@@ -11154,6 +14616,8 @@
},
"node_modules/mongoose/node_modules/@types/bson": {
"version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/@types/bson/-/bson-4.0.5.tgz",
+ "integrity": "sha512-vVLwMUqhYJSQ/WKcE60eFqcyuWse5fGH+NMAXHuKrUAPoryq3ATxk5o4bgYNtg5aOM4APVg7Hnb3ASqUYG0PKg==",
"license": "MIT",
"dependencies": {
"@types/node": "*"
@@ -11161,6 +14625,8 @@
},
"node_modules/mongoose/node_modules/bson": {
"version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.6.tgz",
+ "integrity": "sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==",
"license": "Apache-2.0",
"engines": {
"node": ">=0.6.19"
@@ -11168,10 +14634,14 @@
},
"node_modules/mongoose/node_modules/ms": {
"version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"license": "MIT"
},
"node_modules/mongoose/node_modules/optional-require": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/optional-require/-/optional-require-1.0.3.tgz",
+ "integrity": "sha512-RV2Zp2MY2aeYK5G+B/Sps8lW5NHAzE5QClbFP15j+PWmP+T9PxlJXBOOLoSAdgwFvS4t0aMR4vpedMkbHfh0nA==",
"license": "Apache-2.0",
"engines": {
"node": ">=4"
@@ -11179,6 +14649,8 @@
},
"node_modules/mpath": {
"version": "0.8.4",
+ "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.8.4.tgz",
+ "integrity": "sha512-DTxNZomBcTWlrMW76jy1wvV37X/cNNxPW1y2Jzd4DZkAaC5ZGsm8bfGfNOthcDuRJujXLqiuS6o3Tpy0JEoh7g==",
"license": "MIT",
"engines": {
"node": ">=4.0.0"
@@ -11186,6 +14658,8 @@
},
"node_modules/mquery": {
"version": "3.2.5",
+ "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.2.5.tgz",
+ "integrity": "sha512-VjOKHHgU84wij7IUoZzFRU07IAxd5kWJaDmyUzQlbjHjyoeK5TNeeo8ZsFDtTYnSgpW6n/nMNIHvE3u8Lbrf4A==",
"license": "MIT",
"dependencies": {
"bluebird": "3.5.1",
@@ -11200,6 +14674,8 @@
},
"node_modules/mquery/node_modules/debug": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
"license": "MIT",
"dependencies": {
"ms": "2.0.0"
@@ -11207,18 +14683,26 @@
},
"node_modules/mquery/node_modules/ms": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
"license": "MIT"
},
"node_modules/mquery/node_modules/safe-buffer": {
"version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
"license": "MIT"
},
"node_modules/ms": {
"version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
"license": "MIT"
},
"node_modules/multer": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/multer/-/multer-2.0.2.tgz",
+ "integrity": "sha512-u7f2xaZ/UG8oLXHvtF/oWTRvT44p9ecwBBqTwgJVq0+4BW1g8OW01TyMEGWBHbyMOYVHXslaut7qEQ1meATXgw==",
"license": "MIT",
"dependencies": {
"append-field": "^1.0.0",
@@ -11235,6 +14719,8 @@
},
"node_modules/multer/node_modules/mkdirp": {
"version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
"license": "MIT",
"dependencies": {
"minimist": "^1.2.6"
@@ -11243,8 +14729,25 @@
"mkdirp": "bin/cmd.js"
}
},
+ "node_modules/multipipe": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz",
+ "integrity": "sha512-7ZxrUybYv9NonoXgwoOqtStIu18D1c3eFZj27hqgf5kBrBF8Q+tE8V0MW8dKM5QLkQPh1JhhbKgHLY9kifov4Q==",
+ "license": "MIT",
+ "dependencies": {
+ "duplexer2": "0.0.2"
+ }
+ },
+ "node_modules/mute-stream": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz",
+ "integrity": "sha512-EbrziT4s8cWPmzr47eYVW3wimS4HsvlnV5ri1xw1aR6JQo/OrJX5rkl32K/QQHdxeabJETtfeaROGhd8W7uBgg==",
+ "license": "ISC"
+ },
"node_modules/nano-spawn": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/nano-spawn/-/nano-spawn-2.0.0.tgz",
+ "integrity": "sha512-tacvGzUY5o2D8CBh2rrwxyNojUsZNU2zjNTzKQrkgGJQTbGAfArVWXSKMBokBeeg6C7OLRGUEyoFlYbfeWQIqw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -11256,6 +14759,8 @@
},
"node_modules/nanoid": {
"version": "3.3.11",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
+ "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
"funding": [
{
"type": "github",
@@ -11272,11 +14777,14 @@
},
"node_modules/natural-compare": {
"version": "1.4.0",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
"license": "MIT"
},
"node_modules/negotiator": {
"version": "0.6.4",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz",
+ "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==",
"license": "MIT",
"engines": {
"node": ">= 0.6"
@@ -11284,6 +14792,8 @@
},
"node_modules/new-find-package-json": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/new-find-package-json/-/new-find-package-json-1.2.0.tgz",
+ "integrity": "sha512-Z4v/wBxApGh1cCGEhNmq4p8wjDvM6R6vEuYzlAhzOlXBKLJfjyMvwd+ZHR9fyYKVvXfEn4Z3YX6MD470PxpVbQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11294,6 +14804,12 @@
"node": ">=12.22.0"
}
},
+ "node_modules/next-tick": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz",
+ "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==",
+ "license": "ISC"
+ },
"node_modules/nock": {
"version": "14.0.10",
"resolved": "https://registry.npmjs.org/nock/-/nock-14.0.10.tgz",
@@ -11311,6 +14827,8 @@
},
"node_modules/node-cache": {
"version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/node-cache/-/node-cache-5.1.2.tgz",
+ "integrity": "sha512-t1QzWwnk4sjLWaQAS8CHgOJ+RAfmHpxFWmc36IWTiWHQfs0w5JDMBS1b1ZxQteo0vVVuWJvIUKHDkkeK7vIGCg==",
"license": "MIT",
"dependencies": {
"clone": "2.x"
@@ -11321,6 +14839,8 @@
},
"node_modules/node-cron": {
"version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/node-cron/-/node-cron-3.0.3.tgz",
+ "integrity": "sha512-dOal67//nohNgYWb+nWmg5dkFdIwDm8EpeGYMekPMrngV3637lqnX0lbUcCtgibHTz6SEz7DAIjKvKDFYCnO1A==",
"license": "ISC",
"dependencies": {
"uuid": "8.3.2"
@@ -11331,6 +14851,8 @@
},
"node_modules/node-cron/node_modules/uuid": {
"version": "8.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
"license": "MIT",
"bin": {
"uuid": "dist/bin/uuid"
@@ -11338,10 +14860,14 @@
},
"node_modules/node-datetime": {
"version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/node-datetime/-/node-datetime-2.1.2.tgz",
+ "integrity": "sha512-eev1F0IPKSu3zvASMtH8ic4znGpfXdq9yc8yc/EVx6bk57u7bS2iZKVZ8ll1ZeH/IEQ3qFb04FB70PCNXSIp4w==",
"license": "MIT"
},
"node_modules/node-environment-flags": {
"version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz",
+ "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==",
"license": "Apache-2.0",
"dependencies": {
"object.getownpropertydescriptors": "^2.0.3",
@@ -11350,6 +14876,8 @@
},
"node_modules/node-environment-flags/node_modules/semver": {
"version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
"license": "ISC",
"bin": {
"semver": "bin/semver"
@@ -11357,6 +14885,8 @@
},
"node_modules/node-fetch": {
"version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
"license": "MIT",
"dependencies": {
"whatwg-url": "^5.0.0"
@@ -11384,17 +14914,35 @@
},
"node_modules/node-int64": {
"version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
+ "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==",
"dev": true,
"license": "MIT"
},
"node_modules/node-releases": {
"version": "2.0.27",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz",
+ "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==",
"license": "MIT"
},
+ "node_modules/node-schedule": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/node-schedule/-/node-schedule-2.1.1.tgz",
+ "integrity": "sha512-OXdegQq03OmXEjt2hZP33W2YPs/E5BcFQks46+G2gAxs4gHOIVD1u7EqlYLYSKsaIpyKCK9Gbk0ta1/gjRSMRQ==",
+ "license": "MIT",
+ "dependencies": {
+ "cron-parser": "^4.2.0",
+ "long-timeout": "0.1.1",
+ "sorted-array-functions": "^1.3.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/nodemailer": {
- "version": "7.0.11",
- "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-7.0.11.tgz",
- "integrity": "sha512-gnXhNRE0FNhD7wPSCGhdNh46Hs6nm+uTyg+Kq0cZukNQiYdnCsoQjodNP9BQVG9XrcK/v6/MgpAPBUFyzh9pvw==",
+ "version": "7.0.12",
+ "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-7.0.12.tgz",
+ "integrity": "sha512-H+rnK5bX2Pi/6ms3sN4/jRQvYSMltV6vqup/0SFOrxYYY/qoNvhXPlYq3e+Pm9RFJRwrMGbMIwi81M4dxpomhA==",
"license": "MIT-0",
"engines": {
"node": ">=6.0.0"
@@ -11402,6 +14950,8 @@
},
"node_modules/nodemon": {
"version": "3.1.11",
+ "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.11.tgz",
+ "integrity": "sha512-is96t8F/1//UHAjNPHpbsNY46ELPpftGUoSVNXwUfMk/qdjSylYrWSu1XavVTBOn526kFiOR733ATgNBCQyH0g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11429,6 +14979,8 @@
},
"node_modules/nodemon/node_modules/has-flag": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -11437,6 +14989,8 @@
},
"node_modules/nodemon/node_modules/semver": {
"version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true,
"license": "ISC",
"bin": {
@@ -11448,6 +15002,8 @@
},
"node_modules/nodemon/node_modules/supports-color": {
"version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11459,6 +15015,8 @@
},
"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==",
"devOptional": true,
"license": "MIT",
"engines": {
@@ -11467,6 +15025,8 @@
},
"node_modules/npm-run-path": {
"version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
+ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11478,13 +15038,41 @@
},
"node_modules/nth-check": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
+ "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==",
"license": "BSD-2-Clause",
"dependencies": {
"boolbase": "~1.0.0"
}
},
+ "node_modules/number-is-nan": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/oauth": {
+ "version": "0.9.15",
+ "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz",
+ "integrity": "sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA==",
+ "license": "MIT"
+ },
+ "node_modules/oauth-sign": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
+ "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "*"
+ }
+ },
"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==",
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@@ -11492,6 +15080,8 @@
},
"node_modules/object-inspect": {
"version": "1.13.4",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
+ "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -11502,6 +15092,8 @@
},
"node_modules/object-keys": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -11509,6 +15101,8 @@
},
"node_modules/object.assign": {
"version": "4.1.7",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz",
+ "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==",
"license": "MIT",
"dependencies": {
"call-bind": "^1.0.8",
@@ -11527,6 +15121,8 @@
},
"node_modules/object.entries": {
"version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz",
+ "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11541,6 +15137,8 @@
},
"node_modules/object.fromentries": {
"version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz",
+ "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11557,19 +15155,21 @@
}
},
"node_modules/object.getownpropertydescriptors": {
- "version": "2.1.8",
+ "version": "2.1.9",
+ "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.9.tgz",
+ "integrity": "sha512-mt8YM6XwsTTovI+kdZdHSxoyF2DI59up034orlC9NfweclcWOt7CVascNNLp6U+bjFVCVCIh9PwS76tDM/rH8g==",
"license": "MIT",
"dependencies": {
- "array.prototype.reduce": "^1.0.6",
- "call-bind": "^1.0.7",
+ "array.prototype.reduce": "^1.0.8",
+ "call-bind": "^1.0.8",
"define-properties": "^1.2.1",
- "es-abstract": "^1.23.2",
- "es-object-atoms": "^1.0.0",
- "gopd": "^1.0.1",
- "safe-array-concat": "^1.1.2"
+ "es-abstract": "^1.24.0",
+ "es-object-atoms": "^1.1.1",
+ "gopd": "^1.2.0",
+ "safe-array-concat": "^1.1.3"
},
"engines": {
- "node": ">= 0.8"
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -11577,6 +15177,8 @@
},
"node_modules/object.groupby": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz",
+ "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11590,6 +15192,8 @@
},
"node_modules/object.values": {
"version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz",
+ "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11607,6 +15211,8 @@
},
"node_modules/on-finished": {
"version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
"license": "MIT",
"dependencies": {
"ee-first": "1.1.1"
@@ -11617,6 +15223,8 @@
},
"node_modules/on-headers": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz",
+ "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==",
"license": "MIT",
"engines": {
"node": ">= 0.8"
@@ -11624,6 +15232,8 @@
},
"node_modules/once": {
"version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"license": "ISC",
"dependencies": {
"wrappy": "1"
@@ -11631,6 +15241,8 @@
},
"node_modules/onetime": {
"version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11645,6 +15257,8 @@
},
"node_modules/optional-require": {
"version": "1.1.10",
+ "resolved": "https://registry.npmjs.org/optional-require/-/optional-require-1.1.10.tgz",
+ "integrity": "sha512-0r3OB9EIQsP+a5HVATHq2ExIy2q/Vaffoo4IAikW1spCYswhLxqWQS0i3GwS3AdY/OIP4SWZHLGz8CMU558PGw==",
"license": "Apache-2.0",
"dependencies": {
"require-at": "^1.0.6"
@@ -11655,6 +15269,8 @@
},
"node_modules/optionator": {
"version": "0.9.4",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
+ "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11669,6 +15285,15 @@
"node": ">= 0.8.0"
}
},
+ "node_modules/os-homedir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/outvariant": {
"version": "1.4.3",
"resolved": "https://registry.npmjs.org/outvariant/-/outvariant-1.4.3.tgz",
@@ -11678,6 +15303,8 @@
},
"node_modules/own-keys": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz",
+ "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==",
"license": "MIT",
"dependencies": {
"get-intrinsic": "^1.2.6",
@@ -11693,6 +15320,8 @@
},
"node_modules/p-limit": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11707,6 +15336,8 @@
},
"node_modules/p-locate": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11718,6 +15349,8 @@
},
"node_modules/p-locate/node_modules/p-limit": {
"version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11732,6 +15365,8 @@
},
"node_modules/p-try": {
"version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
"license": "MIT",
"engines": {
"node": ">=6"
@@ -11745,6 +15380,8 @@
},
"node_modules/parent-module": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11756,6 +15393,8 @@
},
"node_modules/parse-json": {
"version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11780,8 +15419,19 @@
"xtend": "~4.0.1"
}
},
+ "node_modules/parse-node-version": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz",
+ "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
"node_modules/parse-passwd": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
+ "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==",
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@@ -11789,10 +15439,14 @@
},
"node_modules/parse-srcset": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz",
+ "integrity": "sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==",
"license": "MIT"
},
"node_modules/parseurl": {
"version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
"license": "MIT",
"engines": {
"node": ">= 0.8"
@@ -11800,6 +15454,8 @@
},
"node_modules/path-exists": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
"dev": true,
"license": "MIT",
"engines": {
@@ -11808,13 +15464,23 @@
},
"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==",
"license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
+ "node_modules/path-is-inside": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
+ "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==",
+ "license": "(WTFPL OR MIT)"
+ },
"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,
"license": "MIT",
"engines": {
@@ -11823,10 +15489,14 @@
},
"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==",
"license": "MIT"
},
"node_modules/path-scurry": {
"version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
+ "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
"license": "BlueOak-1.0.0",
"dependencies": {
"lru-cache": "^10.2.0",
@@ -11841,10 +15511,14 @@
},
"node_modules/path-scurry/node_modules/lru-cache": {
"version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
"license": "ISC"
},
"node_modules/path-scurry/node_modules/minipass": {
"version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
+ "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
"license": "ISC",
"engines": {
"node": ">=16 || 14 >=14.17"
@@ -11852,6 +15526,8 @@
},
"node_modules/path-to-regexp": {
"version": "0.1.12",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz",
+ "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==",
"license": "MIT"
},
"node_modules/pdfkit": {
@@ -11869,14 +15545,26 @@
},
"node_modules/pend": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
+ "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==",
+ "license": "MIT"
+ },
+ "node_modules/performance-now": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==",
"license": "MIT"
},
"node_modules/picocolors": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
"license": "ISC"
},
"node_modules/picomatch": {
"version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
"devOptional": true,
"license": "MIT",
"engines": {
@@ -11888,6 +15576,8 @@
},
"node_modules/pidtree": {
"version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz",
+ "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==",
"dev": true,
"license": "MIT",
"bin": {
@@ -11899,6 +15589,8 @@
},
"node_modules/pify": {
"version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
"license": "MIT",
"engines": {
"node": ">=6"
@@ -11906,6 +15598,8 @@
},
"node_modules/pirates": {
"version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz",
+ "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==",
"license": "MIT",
"engines": {
"node": ">= 6"
@@ -11913,6 +15607,8 @@
},
"node_modules/pkg-dir": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
+ "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
"license": "MIT",
"dependencies": {
"find-up": "^3.0.0"
@@ -11923,6 +15619,8 @@
},
"node_modules/pkg-dir/node_modules/find-up": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
"license": "MIT",
"dependencies": {
"locate-path": "^3.0.0"
@@ -11933,6 +15631,8 @@
},
"node_modules/pkg-dir/node_modules/locate-path": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
"license": "MIT",
"dependencies": {
"p-locate": "^3.0.0",
@@ -11944,6 +15644,8 @@
},
"node_modules/pkg-dir/node_modules/p-limit": {
"version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"license": "MIT",
"dependencies": {
"p-try": "^2.0.0"
@@ -11957,6 +15659,8 @@
},
"node_modules/pkg-dir/node_modules/p-locate": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
"license": "MIT",
"dependencies": {
"p-limit": "^2.0.0"
@@ -11967,6 +15671,8 @@
},
"node_modules/pkg-dir/node_modules/path-exists": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
"license": "MIT",
"engines": {
"node": ">=4"
@@ -11974,6 +15680,8 @@
},
"node_modules/pkg-up": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz",
+ "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==",
"license": "MIT",
"dependencies": {
"find-up": "^3.0.0"
@@ -11984,6 +15692,8 @@
},
"node_modules/pkg-up/node_modules/find-up": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
"license": "MIT",
"dependencies": {
"locate-path": "^3.0.0"
@@ -11994,6 +15704,8 @@
},
"node_modules/pkg-up/node_modules/locate-path": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
"license": "MIT",
"dependencies": {
"p-locate": "^3.0.0",
@@ -12005,6 +15717,8 @@
},
"node_modules/pkg-up/node_modules/p-limit": {
"version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"license": "MIT",
"dependencies": {
"p-try": "^2.0.0"
@@ -12018,6 +15732,8 @@
},
"node_modules/pkg-up/node_modules/p-locate": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
"license": "MIT",
"dependencies": {
"p-limit": "^2.0.0"
@@ -12028,11 +15744,19 @@
},
"node_modules/pkg-up/node_modules/path-exists": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
"license": "MIT",
"engines": {
"node": ">=4"
}
},
+ "node_modules/pluralize": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz",
+ "integrity": "sha512-TH+BeeL6Ct98C7as35JbZLf8lgsRzlNJb5gklRIGHKaPkGl1esOKBc5ALUMd+q08Sr6tiEKM+Icbsxg5vuhMKQ==",
+ "license": "MIT"
+ },
"node_modules/png-js": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/png-js/-/png-js-1.0.0.tgz",
@@ -12040,6 +15764,8 @@
},
"node_modules/possible-typed-array-names": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz",
+ "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -12047,6 +15773,8 @@
},
"node_modules/postcss": {
"version": "8.5.6",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
+ "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
"funding": [
{
"type": "opencollective",
@@ -12073,6 +15801,8 @@
},
"node_modules/prelude-ls": {
"version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
"dev": true,
"license": "MIT",
"engines": {
@@ -12081,6 +15811,8 @@
},
"node_modules/prettier": {
"version": "3.2.5",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz",
+ "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==",
"dev": true,
"license": "MIT",
"bin": {
@@ -12095,6 +15827,8 @@
},
"node_modules/pretty-format": {
"version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz",
+ "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -12109,6 +15843,8 @@
},
"node_modules/pretty-format/node_modules/@jest/types": {
"version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz",
+ "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -12124,6 +15860,8 @@
},
"node_modules/pretty-format/node_modules/@types/yargs": {
"version": "15.0.20",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.20.tgz",
+ "integrity": "sha512-KIkX+/GgfFitlASYCGoSF+T4XRXhOubJLhkLVtSfsRTe9jWMmuM2g28zQ41BtPTG7TRBb2xHW+LCNVE9QR/vsg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -12132,10 +15870,22 @@
},
"node_modules/process-nextick-args": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
"license": "MIT"
},
+ "node_modules/progress": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz",
+ "integrity": "sha512-UdA8mJ4weIkUBO224tIarHzuHs4HuYiJvsuGT7j/SPQiUJVjYvNDBIPa0hAorduOfjGohB/qHWRa/lrrWX/mXw==",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
"node_modules/prompts": {
"version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
+ "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -12148,6 +15898,8 @@
},
"node_modules/prop-types": {
"version": "15.8.1",
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
+ "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -12158,6 +15910,8 @@
},
"node_modules/prop-types/node_modules/react-is": {
"version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
"dev": true,
"license": "MIT"
},
@@ -12173,6 +15927,8 @@
},
"node_modules/proxy-addr": {
"version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
"license": "MIT",
"dependencies": {
"forwarded": "0.2.0",
@@ -12184,16 +15940,33 @@
},
"node_modules/proxy-from-env": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
"license": "MIT"
},
+ "node_modules/psl": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz",
+ "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==",
+ "license": "MIT",
+ "dependencies": {
+ "punycode": "^2.3.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/lupomontero"
+ }
+ },
"node_modules/pstree.remy": {
"version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz",
+ "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==",
"dev": true,
"license": "MIT"
},
"node_modules/punycode": {
"version": "2.3.1",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
"license": "MIT",
"engines": {
"node": ">=6"
@@ -12201,6 +15974,8 @@
},
"node_modules/pure-rand": {
"version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz",
+ "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==",
"dev": true,
"funding": [
{
@@ -12231,12 +16006,17 @@
},
"node_modules/querystring": {
"version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
+ "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==",
+ "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.",
"engines": {
"node": ">=0.4.x"
}
},
"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": [
{
@@ -12256,6 +16036,8 @@
},
"node_modules/range-parser": {
"version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
"license": "MIT",
"engines": {
"node": ">= 0.6"
@@ -12276,42 +16058,17 @@
"node": ">= 0.8"
}
},
- "node_modules/raw-body/node_modules/http-errors": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz",
- "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==",
- "license": "MIT",
- "dependencies": {
- "depd": "~2.0.0",
- "inherits": "~2.0.4",
- "setprototypeof": "~1.2.0",
- "statuses": "~2.0.2",
- "toidentifier": "~1.0.1"
- },
- "engines": {
- "node": ">= 0.8"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/express"
- }
- },
- "node_modules/raw-body/node_modules/statuses": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz",
- "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/react-is": {
"version": "17.0.2",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
+ "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==",
"dev": true,
"license": "MIT"
},
"node_modules/readable-stream": {
"version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
"license": "MIT",
"dependencies": {
"inherits": "^2.0.3",
@@ -12324,6 +16081,8 @@
},
"node_modules/readdirp": {
"version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
"devOptional": true,
"license": "MIT",
"dependencies": {
@@ -12333,8 +16092,50 @@
"node": ">=8.10.0"
}
},
+ "node_modules/readline": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/readline/-/readline-1.3.0.tgz",
+ "integrity": "sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg==",
+ "license": "BSD"
+ },
+ "node_modules/readline2": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz",
+ "integrity": "sha512-8/td4MmwUB6PkZUbV25uKz7dfrmjYWxsW8DVfibWdlHRk/l/DfHKn4pU+dfcoGLFgWOdyGCzINRQD7jn+Bv+/g==",
+ "license": "MIT",
+ "dependencies": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "mute-stream": "0.0.5"
+ }
+ },
+ "node_modules/readline2/node_modules/is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==",
+ "license": "MIT",
+ "dependencies": {
+ "number-is-nan": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/rechoir": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
+ "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==",
+ "dependencies": {
+ "resolve": "^1.1.6"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
"node_modules/redis": {
"version": "4.7.1",
+ "resolved": "https://registry.npmjs.org/redis/-/redis-4.7.1.tgz",
+ "integrity": "sha512-S1bJDnqLftzHXHP8JsT5II/CtHWQrASX5K96REjWjlmWKrviSOLWmM7QnRLstAWsu1VBBV1ffV6DzCvxNP0UJQ==",
"license": "MIT",
"workspaces": [
"./packages/*"
@@ -12350,6 +16151,8 @@
},
"node_modules/reflect.getprototypeof": {
"version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz",
+ "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==",
"license": "MIT",
"dependencies": {
"call-bind": "^1.0.8",
@@ -12370,10 +16173,14 @@
},
"node_modules/regenerate": {
"version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
+ "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==",
"license": "MIT"
},
"node_modules/regenerate-unicode-properties": {
"version": "10.2.2",
+ "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz",
+ "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==",
"license": "MIT",
"dependencies": {
"regenerate": "^1.4.2"
@@ -12384,14 +16191,20 @@
},
"node_modules/regenerator-runtime": {
"version": "0.14.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
+ "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==",
"license": "MIT"
},
"node_modules/regexp-clone": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz",
+ "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==",
"license": "MIT"
},
"node_modules/regexp.prototype.flags": {
"version": "1.5.4",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz",
+ "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==",
"license": "MIT",
"dependencies": {
"call-bind": "^1.0.8",
@@ -12410,6 +16223,8 @@
},
"node_modules/regexpu-core": {
"version": "6.4.0",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz",
+ "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==",
"license": "MIT",
"dependencies": {
"regenerate": "^1.4.2",
@@ -12425,10 +16240,14 @@
},
"node_modules/regjsgen": {
"version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz",
+ "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==",
"license": "MIT"
},
"node_modules/regjsparser": {
"version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.0.tgz",
+ "integrity": "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==",
"license": "BSD-2-Clause",
"dependencies": {
"jsesc": "~3.1.0"
@@ -12439,10 +16258,77 @@
},
"node_modules/regression": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/regression/-/regression-2.0.1.tgz",
+ "integrity": "sha512-A4XYsc37dsBaNOgEjkJKzfJlE394IMmUPlI/p3TTI9u3T+2a+eox5Pr/CPUqF0eszeWZJPAc6QkroAhuUpWDJQ==",
"license": "MIT"
},
+ "node_modules/replace-ext": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz",
+ "integrity": "sha512-AFBWBy9EVRTa/LhEcG8QDP3FvpwZqmvN2QFDuJswFeaVhWnZMp8q3E6Zd90SR04PlIwfGdyVjNyLPyen/ek5CQ==",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/request": {
+ "version": "2.88.2",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
+ "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
+ "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "aws-sign2": "~0.7.0",
+ "aws4": "^1.8.0",
+ "caseless": "~0.12.0",
+ "combined-stream": "~1.0.6",
+ "extend": "~3.0.2",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.3.2",
+ "har-validator": "~5.1.3",
+ "http-signature": "~1.2.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.19",
+ "oauth-sign": "~0.9.0",
+ "performance-now": "^2.1.0",
+ "qs": "~6.5.2",
+ "safe-buffer": "^5.1.2",
+ "tough-cookie": "~2.5.0",
+ "tunnel-agent": "^0.6.0",
+ "uuid": "^3.3.2"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/request/node_modules/form-data": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
+ "license": "MIT",
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.6",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 0.12"
+ }
+ },
+ "node_modules/request/node_modules/qs": {
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz",
+ "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
"node_modules/require-at": {
"version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/require-at/-/require-at-1.0.6.tgz",
+ "integrity": "sha512-7i1auJbMUrXEAZCOQ0VNJgmcT2VOKPRl2YGJwgpHpC9CE91Mv4/4UYIUm4chGJaI381ZDq1JUicFii64Hapd8g==",
"license": "Apache-2.0",
"engines": {
"node": ">=4"
@@ -12450,18 +16336,46 @@
},
"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,
"license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
+ "node_modules/require-uncached": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz",
+ "integrity": "sha512-Xct+41K3twrbBHdxAgMoOS+cNcoqIjfM2/VxBF4LL2hVph7YsF8VSKyQ3BDFZwEVbok9yeDl2le/qo0S77WG2w==",
+ "license": "MIT",
+ "dependencies": {
+ "caller-path": "^0.1.0",
+ "resolve-from": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/require-uncached/node_modules/resolve-from": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz",
+ "integrity": "sha512-kT10v4dhrlLNcnO084hEjvXCI1wUG9qZLoz2RogxqDQQYy7IxjI/iMUkOtQTNEh6rzHxvdQWHsJyel1pKOVCxg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/reselect": {
"version": "4.1.8",
+ "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz",
+ "integrity": "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==",
"license": "MIT"
},
"node_modules/resolve": {
"version": "1.22.11",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz",
+ "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==",
"license": "MIT",
"dependencies": {
"is-core-module": "^2.16.1",
@@ -12480,6 +16394,8 @@
},
"node_modules/resolve-cwd": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz",
+ "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -12491,6 +16407,8 @@
},
"node_modules/resolve-from": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -12499,6 +16417,8 @@
},
"node_modules/resolve.exports": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz",
+ "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==",
"dev": true,
"license": "MIT",
"engines": {
@@ -12507,6 +16427,8 @@
},
"node_modules/restore-cursor": {
"version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz",
+ "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -12522,6 +16444,8 @@
},
"node_modules/restore-cursor/node_modules/onetime": {
"version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz",
+ "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -12536,6 +16460,8 @@
},
"node_modules/restore-cursor/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,
"license": "ISC",
"engines": {
@@ -12553,6 +16479,8 @@
},
"node_modules/reusify": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
+ "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -12562,11 +16490,16 @@
},
"node_modules/rfdc": {
"version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz",
+ "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==",
"dev": true,
"license": "MIT"
},
"node_modules/rimraf": {
"version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "deprecated": "Rimraf versions prior to v4 are no longer supported",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -12579,8 +16512,19 @@
"url": "https://github.com/sponsors/isaacs"
}
},
+ "node_modules/run-async": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz",
+ "integrity": "sha512-qOX+w+IxFgpUpJfkv2oGN0+ExPs68F4sZHfaRRx4dDexAQkG83atugKVEylyT5ARees3HBbfmuvnjbrd8j9Wjw==",
+ "license": "MIT",
+ "dependencies": {
+ "once": "^1.3.0"
+ }
+ },
"node_modules/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,
"funding": [
{
@@ -12601,8 +16545,15 @@
"queue-microtask": "^1.2.2"
}
},
+ "node_modules/rx-lite": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz",
+ "integrity": "sha512-1I1+G2gteLB8Tkt8YI1sJvSIfa0lWuRtC8GjvtyPBcLSF5jBCCJJqKrpER5JU5r6Bhe+i9/pK3VMuUcXu0kdwQ=="
+ },
"node_modules/safe-array-concat": {
"version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz",
+ "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==",
"license": "MIT",
"dependencies": {
"call-bind": "^1.0.8",
@@ -12618,8 +16569,16 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/safe-array-concat/node_modules/isarray": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
+ "license": "MIT"
+ },
"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",
@@ -12638,6 +16597,8 @@
},
"node_modules/safe-push-apply": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz",
+ "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
@@ -12650,8 +16611,16 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/safe-push-apply/node_modules/isarray": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
+ "license": "MIT"
+ },
"node_modules/safe-regex-test": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz",
+ "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==",
"license": "MIT",
"dependencies": {
"call-bound": "^1.0.2",
@@ -12667,10 +16636,14 @@
},
"node_modules/safer-buffer": {
"version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
"license": "MIT"
},
"node_modules/sanitize-html": {
"version": "2.17.0",
+ "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.17.0.tgz",
+ "integrity": "sha512-dLAADUSS8rBwhaevT12yCezvioCA+bmUTPH/u57xKPT8d++voeYE6HeluA/bPbQ15TwDBG2ii+QZIEmYx8VdxA==",
"license": "MIT",
"dependencies": {
"deepmerge": "^4.2.2",
@@ -12683,6 +16656,8 @@
},
"node_modules/sanitize-html/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==",
"license": "MIT",
"dependencies": {
"domelementtype": "^2.3.0",
@@ -12695,6 +16670,8 @@
},
"node_modules/sanitize-html/node_modules/domelementtype": {
"version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
"funding": [
{
"type": "github",
@@ -12705,6 +16682,8 @@
},
"node_modules/sanitize-html/node_modules/domhandler": {
"version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
+ "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
"license": "BSD-2-Clause",
"dependencies": {
"domelementtype": "^2.3.0"
@@ -12718,6 +16697,8 @@
},
"node_modules/sanitize-html/node_modules/domutils": {
"version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz",
+ "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==",
"license": "BSD-2-Clause",
"dependencies": {
"dom-serializer": "^2.0.0",
@@ -12730,6 +16711,8 @@
},
"node_modules/sanitize-html/node_modules/entities": {
"version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
"license": "BSD-2-Clause",
"engines": {
"node": ">=0.12"
@@ -12740,6 +16723,8 @@
},
"node_modules/sanitize-html/node_modules/htmlparser2": {
"version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz",
+ "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==",
"funding": [
"https://github.com/fb55/htmlparser2?sponsor=1",
{
@@ -12757,6 +16742,8 @@
},
"node_modules/sanitize-html/node_modules/is-plain-object": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
+ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@@ -12764,6 +16751,8 @@
},
"node_modules/saslprep": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz",
+ "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==",
"license": "MIT",
"optional": true,
"dependencies": {
@@ -12775,36 +16764,45 @@
},
"node_modules/sax": {
"version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz",
+ "integrity": "sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA==",
"license": "ISC"
},
"node_modules/scmp": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/scmp/-/scmp-2.1.0.tgz",
+ "integrity": "sha512-o/mRQGk9Rcer/jEEw/yw4mwo3EU/NvYvp577/Btqrym9Qy5/MdWGBqipbALgd2lrdWTJ5/gqDusxfnQBxOxT2Q==",
+ "deprecated": "Just use Node.js's crypto.timingSafeEqual()",
"license": "BSD-3-Clause"
},
"node_modules/semver": {
"version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/send": {
- "version": "0.19.0",
+ "version": "0.19.2",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz",
+ "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==",
"license": "MIT",
"dependencies": {
"debug": "2.6.9",
"depd": "2.0.0",
"destroy": "1.2.0",
- "encodeurl": "~1.0.2",
+ "encodeurl": "~2.0.0",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
+ "fresh": "~0.5.2",
+ "http-errors": "~2.0.1",
"mime": "1.6.0",
"ms": "2.1.3",
- "on-finished": "2.4.1",
+ "on-finished": "~2.4.1",
"range-parser": "~1.2.1",
- "statuses": "2.0.1"
+ "statuses": "~2.0.2"
},
"engines": {
"node": ">= 0.8.0"
@@ -12812,6 +16810,8 @@
},
"node_modules/send/node_modules/debug": {
"version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"license": "MIT",
"dependencies": {
"ms": "2.0.0"
@@ -12819,23 +16819,20 @@
},
"node_modules/send/node_modules/debug/node_modules/ms": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
"license": "MIT"
},
- "node_modules/send/node_modules/encodeurl": {
- "version": "1.0.2",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/serve-static": {
- "version": "1.16.2",
+ "version": "1.16.3",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz",
+ "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==",
"license": "MIT",
"dependencies": {
"encodeurl": "~2.0.0",
"escape-html": "~1.0.3",
"parseurl": "~1.3.3",
- "send": "0.19.0"
+ "send": "~0.19.1"
},
"engines": {
"node": ">= 0.8.0"
@@ -12843,6 +16840,8 @@
},
"node_modules/set-function-length": {
"version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
+ "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
"license": "MIT",
"dependencies": {
"define-data-property": "^1.1.4",
@@ -12858,6 +16857,8 @@
},
"node_modules/set-function-name": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz",
+ "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",
"license": "MIT",
"dependencies": {
"define-data-property": "^1.1.4",
@@ -12871,6 +16872,8 @@
},
"node_modules/set-proto": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz",
+ "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==",
"license": "MIT",
"dependencies": {
"dunder-proto": "^1.0.1",
@@ -12883,10 +16886,14 @@
},
"node_modules/setprototypeof": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
"license": "ISC"
},
"node_modules/shallow-clone": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
+ "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
"license": "MIT",
"dependencies": {
"kind-of": "^6.0.2"
@@ -12941,6 +16948,8 @@
},
"node_modules/sharp/node_modules/semver": {
"version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
@@ -12951,6 +16960,8 @@
},
"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,
"license": "MIT",
"dependencies": {
@@ -12962,14 +16973,36 @@
},
"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,
"license": "MIT",
"engines": {
"node": ">=8"
}
},
+ "node_modules/shelljs": {
+ "version": "0.7.8",
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz",
+ "integrity": "sha512-/YF5Uk8hcwi7ima04ppkbA4RaRMdPMBfwAvAf8sufYOxsJRtbdoBsT8vGvlb+799BrlGdYrd+oczIA2eN2JdWA==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "glob": "^7.0.0",
+ "interpret": "^1.0.0",
+ "rechoir": "^0.6.2"
+ },
+ "bin": {
+ "shjs": "bin/shjs"
+ },
+ "engines": {
+ "iojs": "*",
+ "node": ">=0.11.0"
+ }
+ },
"node_modules/side-channel": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
+ "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
@@ -12987,6 +17020,8 @@
},
"node_modules/side-channel-list": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
+ "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
@@ -13001,6 +17036,8 @@
},
"node_modules/side-channel-map": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
+ "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
"license": "MIT",
"dependencies": {
"call-bound": "^1.0.2",
@@ -13017,6 +17054,8 @@
},
"node_modules/side-channel-weakmap": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
+ "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
"license": "MIT",
"dependencies": {
"call-bound": "^1.0.2",
@@ -13034,15 +17073,21 @@
},
"node_modules/sift": {
"version": "13.5.2",
+ "resolved": "https://registry.npmjs.org/sift/-/sift-13.5.2.tgz",
+ "integrity": "sha512-+gxdEOMA2J+AI+fVsCqeNn7Tgx3M9ZN9jdi95939l1IJ8cZsqS8sqpJyOkic2SJk+1+98Uwryt/gL6XDaV+UZA==",
"license": "MIT"
},
"node_modules/signal-exit": {
"version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
"dev": true,
"license": "ISC"
},
"node_modules/simple-update-notifier": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz",
+ "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -13054,6 +17099,8 @@
},
"node_modules/simple-update-notifier/node_modules/semver": {
"version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true,
"license": "ISC",
"bin": {
@@ -13065,11 +17112,15 @@
},
"node_modules/sisteransi": {
"version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
+ "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
"dev": true,
"license": "MIT"
},
"node_modules/slash": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
+ "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
"license": "MIT",
"engines": {
"node": ">=6"
@@ -13077,6 +17128,8 @@
},
"node_modules/slice-ansi": {
"version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.2.tgz",
+ "integrity": "sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -13092,6 +17145,8 @@
},
"node_modules/slice-ansi/node_modules/ansi-styles": {
"version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz",
+ "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -13103,16 +17158,20 @@
},
"node_modules/sliced": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz",
+ "integrity": "sha512-VZBmZP8WU3sMOZm1bdgTadsQbcscK0UM8oKxKVBs4XAhUo2Xxzm/OFMGBkPusxw9xL3Uy8LrzEqGqJhclsr0yA==",
"license": "MIT"
},
"node_modules/socket.io": {
- "version": "4.8.1",
+ "version": "4.8.3",
+ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.8.3.tgz",
+ "integrity": "sha512-2Dd78bqzzjE6KPkD5fHZmDAKRNe3J15q+YHDrIsy9WEkqttc7GY+kT9OBLSMaPbQaEd0x1BjcmtMtXkfpc+T5A==",
"license": "MIT",
"dependencies": {
"accepts": "~1.3.4",
"base64id": "~2.0.0",
"cors": "~2.8.5",
- "debug": "~4.3.2",
+ "debug": "~4.4.1",
"engine.io": "~6.6.0",
"socket.io-adapter": "~2.5.2",
"socket.io-parser": "~4.2.4"
@@ -13122,30 +17181,19 @@
}
},
"node_modules/socket.io-adapter": {
- "version": "2.5.5",
+ "version": "2.5.6",
+ "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.6.tgz",
+ "integrity": "sha512-DkkO/dz7MGln0dHn5bmN3pPy+JmywNICWrJqVWiVOyvXjWQFIv9c2h24JrQLLFJ2aQVQf/Cvl1vblnd4r2apLQ==",
"license": "MIT",
"dependencies": {
- "debug": "~4.3.4",
- "ws": "~8.17.1"
- }
- },
- "node_modules/socket.io-adapter/node_modules/debug": {
- "version": "4.3.7",
- "license": "MIT",
- "dependencies": {
- "ms": "^2.1.3"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
+ "debug": "~4.4.1",
+ "ws": "~8.18.3"
}
},
"node_modules/socket.io-adapter/node_modules/ws": {
- "version": "8.17.1",
+ "version": "8.18.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
+ "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
"license": "MIT",
"engines": {
"node": ">=10.0.0"
@@ -13164,48 +17212,28 @@
}
},
"node_modules/socket.io-parser": {
- "version": "4.2.4",
+ "version": "4.2.5",
+ "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.5.tgz",
+ "integrity": "sha512-bPMmpy/5WWKHea5Y/jYAP6k74A+hvmRCQaJuJB6I/ML5JZq/KfNieUVo/3Mh7SAqn7TyFdIo6wqYHInG1MU1bQ==",
"license": "MIT",
"dependencies": {
"@socket.io/component-emitter": "~3.1.0",
- "debug": "~4.3.1"
+ "debug": "~4.4.1"
},
"engines": {
"node": ">=10.0.0"
}
},
- "node_modules/socket.io-parser/node_modules/debug": {
- "version": "4.3.7",
- "license": "MIT",
- "dependencies": {
- "ms": "^2.1.3"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/socket.io/node_modules/debug": {
- "version": "4.3.7",
- "license": "MIT",
- "dependencies": {
- "ms": "^2.1.3"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
+ "node_modules/sorted-array-functions": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/sorted-array-functions/-/sorted-array-functions-1.3.0.tgz",
+ "integrity": "sha512-2sqgzeFlid6N4Z2fUQ1cvFmTOLRi/sEDzSQ0OKYchqgoPmQBVyM3959qYx3fpS6Esef80KjmpgPeEr028dP3OA==",
+ "license": "MIT"
},
"node_modules/source-map": {
"version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
@@ -13213,6 +17241,8 @@
},
"node_modules/source-map-js": {
"version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
"license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
@@ -13220,14 +17250,27 @@
},
"node_modules/source-map-support": {
"version": "0.5.21",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
+ "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
"license": "MIT",
"dependencies": {
"buffer-from": "^1.0.0",
"source-map": "^0.6.0"
}
},
+ "node_modules/sparkles": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz",
+ "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
"node_modules/sparse-bitfield": {
"version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
+ "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==",
"license": "MIT",
"optional": true,
"dependencies": {
@@ -13236,10 +17279,45 @@
},
"node_modules/sprintf-js": {
"version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz",
+ "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==",
"license": "BSD-3-Clause"
},
+ "node_modules/sshpk": {
+ "version": "1.18.0",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz",
+ "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==",
+ "license": "MIT",
+ "dependencies": {
+ "asn1": "~0.2.3",
+ "assert-plus": "^1.0.0",
+ "bcrypt-pbkdf": "^1.0.0",
+ "dashdash": "^1.12.0",
+ "ecc-jsbn": "~0.1.1",
+ "getpass": "^0.1.1",
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.0.2",
+ "tweetnacl": "~0.14.0"
+ },
+ "bin": {
+ "sshpk-conv": "bin/sshpk-conv",
+ "sshpk-sign": "bin/sshpk-sign",
+ "sshpk-verify": "bin/sshpk-verify"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sshpk/node_modules/jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==",
+ "license": "MIT"
+ },
"node_modules/stack-utils": {
"version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -13251,6 +17329,8 @@
},
"node_modules/stack-utils/node_modules/escape-string-regexp": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
"dev": true,
"license": "MIT",
"engines": {
@@ -13258,7 +17338,9 @@
}
},
"node_modules/statuses": {
- "version": "2.0.1",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz",
+ "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==",
"license": "MIT",
"engines": {
"node": ">= 0.8"
@@ -13266,6 +17348,8 @@
},
"node_modules/stop-iteration-iterator": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz",
+ "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
@@ -13275,8 +17359,19 @@
"node": ">= 0.4"
}
},
+ "node_modules/streamifier": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/streamifier/-/streamifier-0.1.1.tgz",
+ "integrity": "sha512-zDgl+muIlWzXNsXeyUfOk9dChMjlpkq0DRsxujtYPgyJ676yQ8jEm6zzaaWHFDg5BNcLuif0eD2MTyJdZqXpdg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
"node_modules/streamsearch": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
+ "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==",
"engines": {
"node": ">=10.0.0"
}
@@ -13290,6 +17385,8 @@
},
"node_modules/string_decoder": {
"version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
"license": "MIT",
"dependencies": {
"safe-buffer": "~5.2.0"
@@ -13297,6 +17394,8 @@
},
"node_modules/string-argv": {
"version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz",
+ "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -13305,6 +17404,8 @@
},
"node_modules/string-length": {
"version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz",
+ "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -13317,6 +17418,8 @@
},
"node_modules/string-width": {
"version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.1.0.tgz",
+ "integrity": "sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -13332,6 +17435,8 @@
},
"node_modules/string-width/node_modules/ansi-regex": {
"version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz",
+ "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -13343,6 +17448,8 @@
},
"node_modules/string-width/node_modules/strip-ansi": {
"version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz",
+ "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -13357,6 +17464,8 @@
},
"node_modules/string.prototype.includes": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz",
+ "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -13370,6 +17479,8 @@
},
"node_modules/string.prototype.matchall": {
"version": "4.0.12",
+ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz",
+ "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -13396,6 +17507,8 @@
},
"node_modules/string.prototype.repeat": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz",
+ "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -13405,6 +17518,8 @@
},
"node_modules/string.prototype.trim": {
"version": "1.2.10",
+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz",
+ "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==",
"license": "MIT",
"dependencies": {
"call-bind": "^1.0.8",
@@ -13424,6 +17539,8 @@
},
"node_modules/string.prototype.trimend": {
"version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz",
+ "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==",
"license": "MIT",
"dependencies": {
"call-bind": "^1.0.8",
@@ -13440,6 +17557,8 @@
},
"node_modules/string.prototype.trimstart": {
"version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz",
+ "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==",
"license": "MIT",
"dependencies": {
"call-bind": "^1.0.7",
@@ -13455,6 +17574,8 @@
},
"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,
"license": "MIT",
"dependencies": {
@@ -13466,6 +17587,8 @@
},
"node_modules/strip-bom": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
+ "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
"dev": true,
"license": "MIT",
"engines": {
@@ -13474,6 +17597,8 @@
},
"node_modules/strip-final-newline": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
+ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -13482,6 +17607,8 @@
},
"node_modules/strip-json-comments": {
"version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
"dev": true,
"license": "MIT",
"engines": {
@@ -13492,7 +17619,9 @@
}
},
"node_modules/strnum": {
- "version": "2.1.1",
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.1.2.tgz",
+ "integrity": "sha512-l63NF9y/cLROq/yqKXSLtcMeeyOfnSQlfMSlzFt/K73oIaD8DGaQWd7Z34X9GPiKqP5rbSh84Hl4bOlLcjiSrQ==",
"funding": [
{
"type": "github",
@@ -13503,6 +17632,9 @@
},
"node_modules/superagent": {
"version": "8.1.2",
+ "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.1.2.tgz",
+ "integrity": "sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==",
+ "deprecated": "Please upgrade to superagent v10.2.2+, see release notes at https://github.com/forwardemail/superagent/releases/tag/v10.2.2 - maintenance is supported by Forward Email @ https://forwardemail.net",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -13523,6 +17655,8 @@
},
"node_modules/superagent/node_modules/mime": {
"version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
+ "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==",
"dev": true,
"license": "MIT",
"bin": {
@@ -13534,6 +17668,8 @@
},
"node_modules/superagent/node_modules/semver": {
"version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true,
"license": "ISC",
"bin": {
@@ -13545,6 +17681,9 @@
},
"node_modules/supertest": {
"version": "6.3.4",
+ "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.3.4.tgz",
+ "integrity": "sha512-erY3HFDG0dPnhw4U+udPfrzXa4xhSG+n4rxfRuZWCUvjFWwKl+OxWf/7zk50s84/fAAs7vf5QAb9uRa0cCykxw==",
+ "deprecated": "Please upgrade to supertest v7.1.3+, see release notes at https://github.com/forwardemail/supertest/releases/tag/v7.1.3 - maintenance is supported by Forward Email @ https://forwardemail.net",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -13557,6 +17696,8 @@
},
"node_modules/supports-color": {
"version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
@@ -13567,6 +17708,8 @@
},
"node_modules/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==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -13575,8 +17718,150 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/table": {
+ "version": "3.8.3",
+ "resolved": "https://registry.npmjs.org/table/-/table-3.8.3.tgz",
+ "integrity": "sha512-RZuzIOtzFbprLCE0AXhkI0Xi42ZJLZhCC+qkwuMLf/Vjz3maWpA8gz1qMdbmNoI9cOROT2Am/DxeRyXenrL11g==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "ajv": "^4.7.0",
+ "ajv-keywords": "^1.0.0",
+ "chalk": "^1.1.1",
+ "lodash": "^4.0.0",
+ "slice-ansi": "0.0.4",
+ "string-width": "^2.0.0"
+ }
+ },
+ "node_modules/table/node_modules/ajv": {
+ "version": "4.11.8",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz",
+ "integrity": "sha512-I/bSHSNEcFFqXLf91nchoNB9D1Kie3QKcWdchYUaoIg1+1bdWDkdfdlvdIOJbi9U8xR0y+MWc5D+won9v95WlQ==",
+ "license": "MIT",
+ "dependencies": {
+ "co": "^4.6.0",
+ "json-stable-stringify": "^1.0.1"
+ }
+ },
+ "node_modules/table/node_modules/ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/table/node_modules/ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/table/node_modules/chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/table/node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/table/node_modules/is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/table/node_modules/slice-ansi": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz",
+ "integrity": "sha512-up04hB2hR92PgjpyU3y/eg91yIBILyjVY26NvvciY3EVVPjybkMszMpXQ9QAkcS3I5rtJBDLoTxxg+qvW8c7rw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/table/node_modules/string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "license": "MIT",
+ "dependencies": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/table/node_modules/string-width/node_modules/ansi-regex": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz",
+ "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/table/node_modules/string-width/node_modules/strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/table/node_modules/strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/table/node_modules/supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
"node_modules/tar-stream": {
"version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
+ "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -13592,6 +17877,8 @@
},
"node_modules/tar-stream/node_modules/bl": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -13600,8 +17887,35 @@
"readable-stream": "^3.4.0"
}
},
+ "node_modules/tar-stream/node_modules/buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
"node_modules/telesignsdk": {
"version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/telesignsdk/-/telesignsdk-3.0.4.tgz",
+ "integrity": "sha512-aBcC7BqRSjGTs4EZkYOcIMSJhLOxHYDfX/Qi5NVW6McAmbJim9V6baw9VHXd2Br+2POCJB6Ww0sV7zwchDTbYA==",
"license": "MIT",
"dependencies": {
"node-fetch": "^2.7.0"
@@ -13609,6 +17923,8 @@
},
"node_modules/test-exclude": {
"version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
+ "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -13622,9 +17938,65 @@
},
"node_modules/text-table": {
"version": "0.2.0",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
"license": "MIT"
},
+ "node_modules/through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
+ "license": "MIT"
+ },
+ "node_modules/through2": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+ "license": "MIT",
+ "dependencies": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ },
+ "node_modules/through2/node_modules/readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "license": "MIT",
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "node_modules/through2/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "license": "MIT"
+ },
+ "node_modules/through2/node_modules/string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "node_modules/time-stamp": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz",
+ "integrity": "sha512-gLCeArryy2yNTRzTGKbZbloctj64jkZ57hj5zdraXue6aFgd6PmvVtEyiUU+hvU0v7q08oVv8r8ev0tRo6bvgw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/tiny-inflate": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz",
@@ -13633,10 +18005,14 @@
},
"node_modules/tiny-warning": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz",
+ "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==",
"license": "MIT"
},
"node_modules/tmp": {
"version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz",
+ "integrity": "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==",
"dev": true,
"license": "MIT",
"engines": {
@@ -13645,11 +18021,15 @@
},
"node_modules/tmpl": {
"version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
+ "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==",
"dev": true,
"license": "BSD-3-Clause"
},
"node_modules/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==",
"devOptional": true,
"license": "MIT",
"dependencies": {
@@ -13661,6 +18041,8 @@
},
"node_modules/toidentifier": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
"license": "MIT",
"engines": {
"node": ">=0.6"
@@ -13668,18 +18050,46 @@
},
"node_modules/touch": {
"version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz",
+ "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==",
"dev": true,
"license": "ISC",
"bin": {
"nodetouch": "bin/nodetouch.js"
}
},
+ "node_modules/tough-cookie": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
+ "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "psl": "^1.1.28",
+ "punycode": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
"node_modules/tr46": {
"version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
"license": "MIT"
},
+ "node_modules/ts-custom-error": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/ts-custom-error/-/ts-custom-error-3.3.1.tgz",
+ "integrity": "sha512-5OX1tzOjxWEgsr/YEUWSuPrQ00deKLh6D7OTWcvNHm12/7QPyRh8SYpyWvA4IZv8H/+GQWQEh/kwo95Q9OVW1A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
"node_modules/tsconfig-paths": {
"version": "3.15.0",
+ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz",
+ "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -13691,6 +18101,8 @@
},
"node_modules/tsconfig-paths/node_modules/json5": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -13702,6 +18114,8 @@
},
"node_modules/tsconfig-paths/node_modules/strip-bom": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -13710,17 +18124,39 @@
},
"node_modules/tslib": {
"version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
"license": "0BSD"
},
+ "node_modules/tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "safe-buffer": "^5.0.1"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/tweetnacl": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==",
+ "license": "Unlicense"
+ },
"node_modules/twilio": {
- "version": "5.10.5",
+ "version": "5.12.0",
+ "resolved": "https://registry.npmjs.org/twilio/-/twilio-5.12.0.tgz",
+ "integrity": "sha512-ZAKnDKcWvJSb90xQS13QB5KQOeMJPzsRPHxZqju8i5ALg3D4hNwAF9bpytVTxTJV99BL4Rn6Un+ZtXjGeMpjvQ==",
"license": "MIT",
"dependencies": {
"axios": "^1.12.0",
"dayjs": "^1.11.9",
"https-proxy-agent": "^5.0.0",
"jsonwebtoken": "^9.0.2",
- "qs": "^6.9.4",
+ "qs": "^6.14.1",
"scmp": "^2.1.0",
"xmlbuilder": "^13.0.2"
},
@@ -13730,6 +18166,8 @@
},
"node_modules/twilio/node_modules/agent-base": {
"version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
"license": "MIT",
"dependencies": {
"debug": "4"
@@ -13740,6 +18178,8 @@
},
"node_modules/twilio/node_modules/https-proxy-agent": {
"version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
"license": "MIT",
"dependencies": {
"agent-base": "6",
@@ -13749,8 +18189,16 @@
"node": ">= 6"
}
},
+ "node_modules/type": {
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/type/-/type-2.7.3.tgz",
+ "integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==",
+ "license": "ISC"
+ },
"node_modules/type-check": {
"version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -13762,6 +18210,8 @@
},
"node_modules/type-detect": {
"version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
"dev": true,
"license": "MIT",
"engines": {
@@ -13770,6 +18220,8 @@
},
"node_modules/type-fest": {
"version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
"dev": true,
"license": "(MIT OR CC0-1.0)",
"engines": {
@@ -13781,6 +18233,8 @@
},
"node_modules/type-is": {
"version": "1.6.18",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
"license": "MIT",
"dependencies": {
"media-typer": "0.3.0",
@@ -13792,6 +18246,8 @@
},
"node_modules/typed-array-buffer": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz",
+ "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==",
"license": "MIT",
"dependencies": {
"call-bound": "^1.0.3",
@@ -13804,6 +18260,8 @@
},
"node_modules/typed-array-byte-length": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz",
+ "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==",
"license": "MIT",
"dependencies": {
"call-bind": "^1.0.8",
@@ -13821,6 +18279,8 @@
},
"node_modules/typed-array-byte-offset": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz",
+ "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==",
"license": "MIT",
"dependencies": {
"available-typed-arrays": "^1.0.7",
@@ -13840,6 +18300,8 @@
},
"node_modules/typed-array-length": {
"version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz",
+ "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==",
"license": "MIT",
"dependencies": {
"call-bind": "^1.0.7",
@@ -13858,10 +18320,14 @@
},
"node_modules/typedarray": {
"version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==",
"license": "MIT"
},
"node_modules/unbox-primitive": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz",
+ "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==",
"license": "MIT",
"dependencies": {
"call-bound": "^1.0.3",
@@ -13878,15 +18344,21 @@
},
"node_modules/undefsafe": {
"version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz",
+ "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==",
"dev": true,
"license": "MIT"
},
"node_modules/undici-types": {
"version": "7.16.0",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz",
+ "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==",
"license": "MIT"
},
"node_modules/unicode-canonical-property-names-ecmascript": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz",
+ "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==",
"license": "MIT",
"engines": {
"node": ">=4"
@@ -13894,6 +18366,8 @@
},
"node_modules/unicode-match-property-ecmascript": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz",
+ "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==",
"license": "MIT",
"dependencies": {
"unicode-canonical-property-names-ecmascript": "^2.0.0",
@@ -13905,6 +18379,8 @@
},
"node_modules/unicode-match-property-value-ecmascript": {
"version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz",
+ "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==",
"license": "MIT",
"engines": {
"node": ">=4"
@@ -13922,6 +18398,8 @@
},
"node_modules/unicode-property-aliases-ecmascript": {
"version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz",
+ "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==",
"license": "MIT",
"engines": {
"node": ">=4"
@@ -13939,13 +18417,17 @@
},
"node_modules/unpipe": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
"license": "MIT",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/update-browserslist-db": {
- "version": "1.1.4",
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz",
+ "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==",
"funding": [
{
"type": "opencollective",
@@ -13974,7 +18456,8 @@
},
"node_modules/uri-js": {
"version": "4.4.1",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
"license": "BSD-2-Clause",
"dependencies": {
"punycode": "^2.1.0"
@@ -13982,6 +18465,8 @@
},
"node_modules/url": {
"version": "0.10.3",
+ "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz",
+ "integrity": "sha512-hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ==",
"license": "MIT",
"dependencies": {
"punycode": "1.3.2",
@@ -13990,14 +18475,32 @@
},
"node_modules/url-template": {
"version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz",
+ "integrity": "sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw==",
"license": "BSD"
},
"node_modules/url/node_modules/punycode": {
"version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
+ "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==",
"license": "MIT"
},
+ "node_modules/user-home": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz",
+ "integrity": "sha512-KMWqdlOcjCYdtIJpicDSFBQ8nFwS2i9sslAd6f4+CBGcU4gist2REnr2fxj2YocvJFxSF3ZOHLYLVZnUxv4BZQ==",
+ "license": "MIT",
+ "dependencies": {
+ "os-homedir": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/util": {
"version": "0.12.5",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
+ "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
"license": "MIT",
"dependencies": {
"inherits": "^2.0.3",
@@ -14009,10 +18512,14 @@
},
"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==",
"license": "MIT"
},
"node_modules/utils-merge": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
"license": "MIT",
"engines": {
"node": ">= 0.4.0"
@@ -14020,6 +18527,9 @@
},
"node_modules/uuid": {
"version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
+ "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
"license": "MIT",
"bin": {
"uuid": "bin/uuid"
@@ -14027,6 +18537,8 @@
},
"node_modules/v8-to-istanbul": {
"version": "9.3.0",
+ "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz",
+ "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -14040,6 +18552,8 @@
},
"node_modules/v8flags": {
"version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz",
+ "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==",
"license": "MIT",
"dependencies": {
"homedir-polyfill": "^1.0.1"
@@ -14049,7 +18563,9 @@
}
},
"node_modules/validator": {
- "version": "13.15.23",
+ "version": "13.15.26",
+ "resolved": "https://registry.npmjs.org/validator/-/validator-13.15.26.tgz",
+ "integrity": "sha512-spH26xU080ydGggxRyR1Yhcbgx+j3y5jbNXk/8L+iRvdIEQ4uTRH2Sgf2dokud6Q4oAtsbNvJ1Ft+9xmm6IZcA==",
"license": "MIT",
"engines": {
"node": ">= 0.10"
@@ -14057,13 +18573,54 @@
},
"node_modules/vary": {
"version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
"license": "MIT",
"engines": {
"node": ">= 0.8"
}
},
+ "node_modules/verror": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==",
+ "engines": [
+ "node >=0.6.0"
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "assert-plus": "^1.0.0",
+ "core-util-is": "1.0.2",
+ "extsprintf": "^1.2.0"
+ }
+ },
+ "node_modules/vinyl": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz",
+ "integrity": "sha512-P5zdf3WB9uzr7IFoVQ2wZTmUwHL8cMZWJGzLBNCHNZ3NB6HTMsYABtt7z8tAGIINLXyAob9B9a1yzVGMFOYKEA==",
+ "license": "MIT",
+ "dependencies": {
+ "clone": "^1.0.0",
+ "clone-stats": "^0.0.1",
+ "replace-ext": "0.0.1"
+ },
+ "engines": {
+ "node": ">= 0.9"
+ }
+ },
+ "node_modules/vinyl/node_modules/clone": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
+ "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
"node_modules/walker": {
"version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz",
+ "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -14072,14 +18629,20 @@
},
"node_modules/webidl-conversions": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
"license": "BSD-2-Clause"
},
"node_modules/whatwg-fetch": {
"version": "3.6.20",
+ "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz",
+ "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==",
"license": "MIT"
},
"node_modules/whatwg-url": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
"license": "MIT",
"dependencies": {
"tr46": "~0.0.3",
@@ -14088,6 +18651,8 @@
},
"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,
"license": "ISC",
"dependencies": {
@@ -14102,6 +18667,8 @@
},
"node_modules/which-boxed-primitive": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz",
+ "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==",
"license": "MIT",
"dependencies": {
"is-bigint": "^1.1.0",
@@ -14119,6 +18686,8 @@
},
"node_modules/which-builtin-type": {
"version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz",
+ "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==",
"license": "MIT",
"dependencies": {
"call-bound": "^1.0.2",
@@ -14142,8 +18711,16 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/which-builtin-type/node_modules/isarray": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
+ "license": "MIT"
+ },
"node_modules/which-collection": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz",
+ "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==",
"license": "MIT",
"dependencies": {
"is-map": "^2.0.3",
@@ -14159,7 +18736,9 @@
}
},
"node_modules/which-typed-array": {
- "version": "1.1.19",
+ "version": "1.1.20",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.20.tgz",
+ "integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==",
"license": "MIT",
"dependencies": {
"available-typed-arrays": "^1.0.7",
@@ -14179,7 +18758,8 @@
},
"node_modules/word-wrap": {
"version": "1.2.5",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
+ "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@@ -14187,6 +18767,8 @@
},
"node_modules/wrap-ansi": {
"version": "9.0.2",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz",
+ "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -14203,6 +18785,8 @@
},
"node_modules/wrap-ansi/node_modules/ansi-regex": {
"version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz",
+ "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -14214,6 +18798,8 @@
},
"node_modules/wrap-ansi/node_modules/ansi-styles": {
"version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz",
+ "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -14225,11 +18811,15 @@
},
"node_modules/wrap-ansi/node_modules/emoji-regex": {
"version": "10.6.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz",
+ "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==",
"dev": true,
"license": "MIT"
},
"node_modules/wrap-ansi/node_modules/string-width": {
"version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz",
+ "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -14246,6 +18836,8 @@
},
"node_modules/wrap-ansi/node_modules/strip-ansi": {
"version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz",
+ "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -14260,10 +18852,26 @@
},
"node_modules/wrappy": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
"license": "ISC"
},
+ "node_modules/write": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz",
+ "integrity": "sha512-CJ17OoULEKXpA5pef3qLj5AxTJ6mSt7g84he2WIskKwqFO4T97d5V7Tadl0DYDk7qyUOQD5WlUlOMChaYrhxeA==",
+ "license": "MIT",
+ "dependencies": {
+ "mkdirp": "^0.5.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/write-file-atomic": {
"version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz",
+ "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -14274,9 +18882,24 @@
"node": "^12.13.0 || ^14.15.0 || >=16.0.0"
}
},
+ "node_modules/write/node_modules/mkdirp": {
+ "version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+ "license": "MIT",
+ "dependencies": {
+ "minimist": "^1.2.6"
+ },
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ }
+ },
"node_modules/ws": {
- "version": "8.18.3",
+ "version": "8.19.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz",
+ "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==",
"license": "MIT",
+ "peer": true,
"engines": {
"node": ">=10.0.0"
},
@@ -14295,6 +18918,8 @@
},
"node_modules/xml2js": {
"version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz",
+ "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==",
"license": "MIT",
"dependencies": {
"sax": ">=0.6.0",
@@ -14306,6 +18931,8 @@
},
"node_modules/xml2js/node_modules/xmlbuilder": {
"version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
+ "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==",
"license": "MIT",
"engines": {
"node": ">=4.0"
@@ -14313,13 +18940,40 @@
},
"node_modules/xmlbuilder": {
"version": "13.0.2",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-13.0.2.tgz",
+ "integrity": "sha512-Eux0i2QdDYKbdbA6AM6xE4m6ZTZr4G4xF9kahI2ukSEMCzwce2eX9WlTI5J3s+NU7hpasFsr8hWIONae7LluAQ==",
"license": "MIT",
"engines": {
"node": ">=6.0"
}
},
+ "node_modules/xmlrpc": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/xmlrpc/-/xmlrpc-1.3.2.tgz",
+ "integrity": "sha512-jQf5gbrP6wvzN71fgkcPPkF4bF/Wyovd7Xdff8d6/ihxYmgETQYSuTc+Hl+tsh/jmgPLro/Aro48LMFlIyEKKQ==",
+ "license": "MIT",
+ "dependencies": {
+ "sax": "1.2.x",
+ "xmlbuilder": "8.2.x"
+ },
+ "engines": {
+ "node": ">=0.8",
+ "npm": ">=1.0.0"
+ }
+ },
+ "node_modules/xmlrpc/node_modules/xmlbuilder": {
+ "version": "8.2.2",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-8.2.2.tgz",
+ "integrity": "sha512-eKRAFz04jghooy8muekqzo8uCSVNeyRedbuJrp0fovbLIi7wlsYtdUn3vBAAPq2Y3/0xMz2WMEUQ8yhVVO9Stw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
"node_modules/xtend": {
"version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
"license": "MIT",
"engines": {
"node": ">=0.4"
@@ -14327,6 +18981,8 @@
},
"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,
"license": "ISC",
"engines": {
@@ -14335,10 +18991,14 @@
},
"node_modules/yallist": {
"version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
"license": "ISC"
},
"node_modules/yaml": {
- "version": "2.8.1",
+ "version": "2.8.2",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz",
+ "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==",
"dev": true,
"license": "ISC",
"bin": {
@@ -14346,10 +19006,15 @@
},
"engines": {
"node": ">= 14.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/eemeli"
}
},
"node_modules/yargs": {
"version": "17.7.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
+ "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -14367,6 +19032,8 @@
},
"node_modules/yargs-parser": {
"version": "21.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
"dev": true,
"license": "ISC",
"engines": {
@@ -14375,11 +19042,15 @@
},
"node_modules/yargs/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,
"license": "MIT"
},
"node_modules/yargs/node_modules/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,
"license": "MIT",
"engines": {
@@ -14388,6 +19059,8 @@
},
"node_modules/yargs/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,
"license": "MIT",
"dependencies": {
@@ -14401,6 +19074,8 @@
},
"node_modules/yauzl": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
+ "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==",
"license": "MIT",
"dependencies": {
"buffer-crc32": "~0.2.3",
@@ -14409,6 +19084,8 @@
},
"node_modules/yocto-queue": {
"version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
"dev": true,
"license": "MIT",
"engines": {
diff --git a/package.json b/package.json
index e2aed0e34..33a3372b6 100644
--- a/package.json
+++ b/package.json
@@ -4,7 +4,7 @@
"description": "This module is the REST module built on NodeJS to support MongoDB activities, Since EmberData has no direct adapters for MongoDB. This module will later be intergrated with EmberJS HGN project to maintain singularity.",
"main": "restapp",
"engines": {
- "node": ">=20.0.0 <21"
+ "node": ">=20"
},
"scripts": {
"test": "jest --passWithNoTests --silent --noStackTrace --runInBand --forceExit --detectOpenHandles",
@@ -20,20 +20,22 @@
"test:integration": "npm test -- --watch -c jest-integration.config.js",
"test:staged": "npm test --findRelatedTests",
"test:ci": "npm test -- --coverage",
- "lint": "eslint ./src --ext .js,.jsx",
+ "lint": "eslint ./src --ext .js,.jsx --max-warnings=2000",
"lint:fix": "eslint ./src --ext .js,.jsx --fix",
"build": "babel src -d dist",
"buildw": "babel src -d dist --watch",
"start": "node dist/server.js",
- "dev": "nodemon --exec babel-node src/server.js",
+ "dev": "nodemon --exec \"babel-node --ignore 'node_modules/(?!@typespec)' src/server.js\"",
"serve": "babel-node src/server.js",
"prepare-macos-linux": "husky install && chmod ug+x .husky/* && chmod ug+x .git/hooks/*",
- "prepare": "husky install"
+ "prepare": "husky install",
+ "install": "npm install --ignore-scripts sharp"
},
"author": "AK",
"license": "ISC",
"devDependencies": {
"@babel/eslint-parser": "^7.15.0",
+ "@babel/plugin-proposal-logical-assignment-operators": "^7.20.7",
"@types/bson": "^4.2.4",
"@types/compression": "^1.7.5",
"@types/express": "^4.17.6",
@@ -45,6 +47,7 @@
"eslint-config-airbnb": "^19.0.4",
"eslint-config-airbnb-base": "^15.0.0",
"eslint-config-prettier": "^9.1.0",
+ "eslint-import-resolver-babel-module": "^5.3.2",
"eslint-plugin-import": "^2.28.0",
"eslint-plugin-jsx-a11y": "^6.7.1",
"eslint-plugin-react": "^7.33.1",
@@ -64,6 +67,7 @@
"@babel/cli": "^7.15.4",
"@babel/core": "^7.10.2",
"@babel/node": "^7.14.9",
+ "@babel/plugin-transform-async-to-generator": "^7.10.1",
"@babel/plugin-transform-runtime": "^7.10.1",
"@babel/preset-env": "^7.10.2",
"@babel/runtime": "^7.10.2",
@@ -81,6 +85,7 @@
"body-parser": "^1.20.4",
"card-validator": "^10.0.2",
"cheerio": "^0.22.0",
+ "cloudinary": "^2.8.0",
"compression": "^1.8.0",
"cors": "^2.8.4",
"cron": "^1.8.2",
@@ -90,6 +95,7 @@
"express": "^4.22.1",
"express-validator": "^7.0.1",
"express-ws": "^5.0.2",
+ "form-data": "^4.0.5",
"geoip-lite": "^1.4.10",
"googleapis": "^100.0.0",
"isomorphic-fetch": "^3.0.0",
@@ -97,6 +103,8 @@
"json2csv": "^6.0.0-alpha.2",
"jsonwebtoken": "^9.0.0",
"lodash": "^4.17.21",
+ "masto": "^7.4.0",
+ "mastodon-api": "^1.3.0",
"moment": "^2.29.4",
"moment-timezone": "^0.5.35",
"mongodb": "^3.7.3",
@@ -107,6 +115,7 @@
"node-cron": "^3.0.3",
"node-datetime": "^2.0.3",
"node-fetch": "^2.6.7",
+ "node-schedule": "^2.1.1",
"nodemailer": "^7.0.11",
"parse-link-header": "^2.0.0",
"pdfkit": "^0.17.2",
@@ -115,11 +124,13 @@
"sanitize-html": "^2.16.0",
"sharp": "^0.34.5",
"socket.io": "^4.8.1",
+ "streamifier": "^0.1.1",
"supertest": "^6.3.4",
"telesignsdk": "^3.0.3",
"twilio": "^5.5.2",
"uuid": "^3.4.0",
- "ws": "^8.17.1"
+ "ws": "^8.17.1",
+ "xmlrpc": "^1.3.2"
},
"nodemonConfig": {
"watch": [
diff --git a/src/app.js b/src/app.js
index 1232e3ef2..6e3b90408 100644
--- a/src/app.js
+++ b/src/app.js
@@ -4,6 +4,7 @@ const Sentry = require('@sentry/node');
const app = express();
const logger = require('./startup/logger');
const globalErrorHandler = require('./utilities/errorHandling/globalErrorHandler');
+// const experienceRoutes = require('./routes/applicantAnalyticsRoutes');
logger.init();
diff --git a/src/constants/__tests__/automationConstants.test.js b/src/constants/__tests__/automationConstants.test.js
new file mode 100644
index 000000000..0ba30e15e
--- /dev/null
+++ b/src/constants/__tests__/automationConstants.test.js
@@ -0,0 +1,44 @@
+const automationConstants = require('../automationConstants');
+
+describe('automationConstants', () => {
+ describe('dropboxConfig', () => {
+ it('should export dropboxConfig object', () => {
+ expect(automationConstants.dropboxConfig).toBeDefined();
+ expect(typeof automationConstants.dropboxConfig).toBe('object');
+ });
+
+ it('should have accessToken property', () => {
+ expect(automationConstants.dropboxConfig).toHaveProperty('accessToken');
+ });
+ });
+
+ describe('sentryConfig', () => {
+ it('should export sentryConfig object', () => {
+ expect(automationConstants.sentryConfig).toBeDefined();
+ expect(typeof automationConstants.sentryConfig).toBe('object');
+ });
+
+ it('should have sentryApiToken property', () => {
+ expect(automationConstants.sentryConfig).toHaveProperty('sentryApiToken');
+ });
+
+ it('should have organizationSlug property', () => {
+ expect(automationConstants.sentryConfig).toHaveProperty('organizationSlug');
+ });
+ });
+
+ describe('githubConfig', () => {
+ it('should export githubConfig object', () => {
+ expect(automationConstants.githubConfig).toBeDefined();
+ expect(typeof automationConstants.githubConfig).toBe('object');
+ });
+
+ it('should have GITHUB_TOKEN property', () => {
+ expect(automationConstants.githubConfig).toHaveProperty('GITHUB_TOKEN');
+ });
+
+ it('should have ORG_NAME property', () => {
+ expect(automationConstants.githubConfig).toHaveProperty('ORG_NAME');
+ });
+ });
+});
diff --git a/src/constants/eventTypes.js b/src/constants/eventTypes.js
deleted file mode 100644
index e3a6ff0cb..000000000
--- a/src/constants/eventTypes.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * Unused legacy code. Commented out to avoid confusion.
- * Commented by: Shengwei Peng
- * Date: 2024-03-22
- */
-// const eventtypes = {
-// ActionCreated: 'Action Created',
-// ActionEdited: 'Action Edited',
-// ActionDeleted: 'Action Deleted',
-// };
-
-// module.exports = eventtypes;
diff --git a/src/constants/userProfile.js b/src/constants/userProfile.js
new file mode 100644
index 000000000..1d582f790
--- /dev/null
+++ b/src/constants/userProfile.js
@@ -0,0 +1,24 @@
+const InactiveReason = {
+ PAUSED: 'Paused',
+ SEPARATED: 'Separated',
+ SCHEDULED_SEPARATION: 'ScheduledSeparation',
+};
+
+const UserStatusOperations = {
+ ACTIVATE: 'ACTIVATE',
+ DEACTIVATE: 'DEACTIVATE',
+ SCHEDULE_DEACTIVATION: 'SCHEDULE_DEACTIVATION',
+ PAUSE: 'PAUSE',
+};
+
+const LifecycleStatus = {
+ PAUSE_TO_ACTIVE: 'PauseToActive',
+ SEPARATED_TO_ACTIVE: 'SeparatedToActive',
+ SCHEDULED_SEPARATION_TO_ACTIVE: 'ScheduledSeparationToActive',
+};
+
+module.exports = {
+ InactiveReason,
+ UserStatusOperations,
+ LifecycleStatus,
+};
diff --git a/src/controllers/__tests__/reasonSchedulingController.test.js b/src/controllers/__tests__/reasonSchedulingController.test.js
index 1d77cbed5..00daf2b46 100644
--- a/src/controllers/__tests__/reasonSchedulingController.test.js
+++ b/src/controllers/__tests__/reasonSchedulingController.test.js
@@ -39,7 +39,6 @@ const {
// eslint-disable-next-line no-unused-vars
mongoHelper: { dbConnect, dbDisconnect, dbClearCollections, dbClearAll },
} = require('../../test');
-
const UserModel = require('../../models/userProfile');
const ReasonModel = require('../../models/reason');
diff --git a/src/controllers/atomController.js b/src/controllers/atomController.js
index bd12b3450..0c15f86e4 100644
--- a/src/controllers/atomController.js
+++ b/src/controllers/atomController.js
@@ -1,4 +1,3 @@
-// const mongoose = require('mongoose');
const Atom = require('../models/atom');
const Subject = require('../models/subject');
diff --git a/src/controllers/badgeController.js b/src/controllers/badgeController.js
index 12077a7bc..c270f4875 100644
--- a/src/controllers/badgeController.js
+++ b/src/controllers/badgeController.js
@@ -3,7 +3,7 @@ const UserProfile = require('../models/userProfile');
const helper = require('../utilities/permissions');
const escapeRegex = require('../utilities/escapeRegex');
const cacheClosure = require('../utilities/nodeCache');
-// const userHelper = require('../helpers/userHelper')();
+//const userHelper = require('../helpers/userHelper')();
const badgeController = function (Badge) {
/**
@@ -74,122 +74,6 @@ const badgeController = function (Badge) {
*/
const assignBadges = async function (req, res) {
- // const canAssignBadges = await helper.hasPermission(req.body.requestor, 'assignBadges');
- // const canModifyBadgeAmount = await helper.hasPermission(
- // req.body.requestor,
- // 'modifyBadgeAmount',
- // );
- // if (!(canAssignBadges || canModifyBadgeAmount)) {
- // res.status(403).send('You are not authorized to assign badges.');
- // return;
- // } else if (!canAssignBadges) {
- // res.status(403).send('You are not authorized to assign badges.');
- // } else if (!canModifyBadgeAmount) {
- // res.status(403).send('You are not authorized to modify badge amounts.');
- // }
- if (!(await helper.hasPermission(req.body.requestor, 'assignBadges'))) {
- res.status(403).send('You are not authorized to assign badges.');
- return;
- }
-
- let userIds;
- let badgeCollection;
-
- if (req.params.userId) {
- // Single user update case
- userIds = [req.params.userId];
- badgeCollection = req.body.badgeCollection;
- } else {
- // Multi-user assign case
- userIds = req.body.userIds;
- console.log('userIDs:', userIds);
- badgeCollection = req.body.selectedBadges.map((badgeId) => ({
- badge: badgeId.replace('assign-badge-', ''),
- count: 1,
- lastModified: Date.now(),
- earnedDate: [new Date().toISOString()],
- }));
- console.log('badgeCollections', badgeCollection);
- }
-
- if (
- !Array.isArray(userIds) ||
- userIds.length === 0 ||
- !Array.isArray(badgeCollection) ||
- badgeCollection.length === 0
- ) {
- res
- .status(400)
- .send('Invalid input. Both userIds and badgeCollection must be non-empty arrays.');
- return;
- }
-
- try {
- const results = await Promise.all(
- userIds.map(async (userId) => {
- const userToBeAssigned = mongoose.Types.ObjectId(userId);
- const record = await UserProfile.findById(userToBeAssigned);
-
- if (!record) {
- return { userId, error: 'User not found' };
- }
-
- let totalNewBadges = 0;
- const existingBadges = {};
- if (record.badgeCollection && Array.isArray(record.badgeCollection)) {
- record.badgeCollection.forEach((badgeItem) => {
- existingBadges[badgeItem.badge.toString()] = badgeItem;
- });
- }
-
- // Merge existing badges with new ones
- badgeCollection.forEach((badge) => {
- const existingBadge = existingBadges[badge.badge.toString()];
- if (existingBadge) {
- // Update the existing badge
- existingBadge.count += badge.count;
- existingBadge.lastModified = Date.now();
- existingBadge.earnedDate = [
- ...existingBadge.earnedDate,
- ...(badge.earnedDate || [new Date().toISOString()]),
- ];
- } else {
- // Add the new badge
- existingBadges[badge.badge.toString()] = {
- badge: mongoose.Types.ObjectId(badge.badge),
- count: badge.count,
- lastModified: Date.now(),
- earnedDate: badge.earnedDate || [new Date().toISOString()],
- };
- totalNewBadges += badge.count;
- }
- });
-
- // Convert the merged badges back to an array
- record.badgeCollection = Object.values(existingBadges);
- record.badgeCount += totalNewBadges;
-
- if (cache.hasCache(`user-${userToBeAssigned}`)) {
- cache.removeCache(`user-${userToBeAssigned}`);
- }
-
- await record.save();
- return { userId, success: true };
- }),
- );
-
- const errors = results.filter((result) => result.error);
- if (errors.length > 0) {
- res.status(207).send({ message: 'Some users were not assigned badges', errors });
- } else {
- res.status(200).send({ message: 'Badges assigned successfully to all users' });
- }
- } catch (err) {
- res.status(500).send(`Internal Error: Badge Collection. ${err.message}`);
- }
- };
-
- const assignBadgesToSingleUser = async function (req, res) {
if (!(await helper.hasPermission(req.body.requestor, 'assignBadges'))) {
res.status(403).send('You are not authorized to assign badges.');
return;
@@ -457,10 +341,9 @@ const badgeController = function (Badge) {
};
return {
- // awardBadgesTest,
+ //awardBadgesTest,
getAllBadges,
assignBadges,
- assignBadgesToSingleUser,
postBadge,
deleteBadge,
putBadge,
diff --git a/src/controllers/badgeController.spec.js b/src/controllers/badgeController.spec.js
index 32c58d927..d4a049c44 100644
--- a/src/controllers/badgeController.spec.js
+++ b/src/controllers/badgeController.spec.js
@@ -5,15 +5,14 @@ const cache = require('../utilities/nodeCache');
const Badge = require('../models/badge');
const helper = require('../utilities/permissions');
const escapeRegex = require('../utilities/escapeRegex');
+const badgeController = require('./badgeController');
const { mockReq, mockRes, assertResMock } = require('../test');
const UserProfile = require('../models/userProfile');
-const badgeController = require('./badgeController');
const makeSut = () => {
- const { postBadge, getAllBadges, assignBadges, assignBadgesToSingleUser, deleteBadge } =
- badgeController(Badge);
+ const { postBadge, getAllBadges, assignBadges, deleteBadge } = badgeController(Badge);
- return { postBadge, getAllBadges, assignBadges, assignBadgesToSingleUser, deleteBadge };
+ return { postBadge, getAllBadges, assignBadges, deleteBadge };
};
const flushPromises = () => new Promise(setImmediate);
@@ -346,18 +345,18 @@ describe('badeController module', () => {
describe('assignBadges method', () => {
test('Returns 403 if the user is not authorized', async () => {
- const { assignBadgesToSingleUser } = makeSut();
+ const { assignBadges } = makeSut();
const hasPermissionSpy = mockHasPermission(false);
- const response = await assignBadgesToSingleUser(mockReq, mockRes);
+ const response = await assignBadges(mockReq, mockRes);
expect(hasPermissionSpy).toHaveBeenCalledWith(mockReq.body.requestor, 'assignBadges');
assertResMock(403, 'You are not authorized to assign badges.', response, mockRes);
});
test('Returns 500 if an error occurs in `findById`', async () => {
- const { assignBadgesToSingleUser } = makeSut();
+ const { assignBadges } = makeSut();
const hasPermissionSpy = mockHasPermission(true);
@@ -366,7 +365,7 @@ describe('badeController module', () => {
.spyOn(UserProfile, 'findById')
.mockRejectedValueOnce(new Error(errMsg));
- const response = await assignBadgesToSingleUser(mockReq, mockRes);
+ const response = await assignBadges(mockReq, mockRes);
assertResMock(500, `Internal Error: Badge Collection. ${errMsg}`, response, mockRes);
expect(findByIdSpy).toHaveBeenCalledWith(mongoose.Types.ObjectId(mockReq.params.userId));
@@ -374,13 +373,13 @@ describe('badeController module', () => {
});
test('Returns 400 if user is not found', async () => {
- const { assignBadgesToSingleUser } = makeSut();
+ const { assignBadges } = makeSut();
const hasPermissionSpy = mockHasPermission(true);
const findByIdSpy = jest.spyOn(UserProfile, 'findById').mockResolvedValue(null);
- const response = await assignBadgesToSingleUser(mockReq, mockRes);
+ const response = await assignBadges(mockReq, mockRes);
assertResMock(400, 'Can not find the user to be assigned.', response, mockRes);
expect(findByIdSpy).toHaveBeenCalledWith(mongoose.Types.ObjectId(mockReq.params.userId));
@@ -390,7 +389,7 @@ describe('badeController module', () => {
test('Returns 500 if an error occurs when saving edited user profile', async () => {
const { mockCache: hasCacheMock } = makeMockCache('hasCache', false);
- const { assignBadgesToSingleUser } = makeSut();
+ const { assignBadges } = makeSut();
const hasPermissionSpy = mockHasPermission(true);
const errMsg = 'Error when saving';
@@ -398,7 +397,7 @@ describe('badeController module', () => {
const findByIdSpy = jest.spyOn(UserProfile, 'findById').mockResolvedValue(findObj);
jest.spyOn(findObj, 'save').mockRejectedValueOnce(new Error(errMsg));
- const response = await assignBadgesToSingleUser(mockReq, mockRes);
+ const response = await assignBadges(mockReq, mockRes);
assertResMock(500, `Internal Error: Badge Collection. ${errMsg}`, response, mockRes);
expect(findByIdSpy).toHaveBeenCalledWith(mongoose.Types.ObjectId(mockReq.params.userId));
@@ -413,14 +412,14 @@ describe('badeController module', () => {
const { mockCache: hasCacheMock, cacheObject } = makeMockCache('hasCache', true);
const removeCacheMock = jest.spyOn(cacheObject, 'removeCache').mockReturnValueOnce(null);
- const { assignBadgesToSingleUser } = makeSut();
+ const { assignBadges } = makeSut();
const hasPermissionSpy = mockHasPermission(true);
const findObj = { save: () => {} };
const findByIdSpy = jest.spyOn(UserProfile, 'findById').mockResolvedValue(findObj);
jest.spyOn(findObj, 'save').mockResolvedValueOnce({ _id: 'randomId' });
- const response = await assignBadgesToSingleUser(mockReq, mockRes);
+ const response = await assignBadges(mockReq, mockRes);
assertResMock(201, `randomId`, response, mockRes);
expect(findByIdSpy).toHaveBeenCalledWith(mongoose.Types.ObjectId(mockReq.params.userId));
@@ -437,14 +436,14 @@ describe('badeController module', () => {
test('Returns 201 and if successful and user does not exist in cache', async () => {
const { mockCache: hasCacheMock } = makeMockCache('hasCache', false);
- const { assignBadgesToSingleUser } = makeSut();
+ const { assignBadges } = makeSut();
const hasPermissionSpy = mockHasPermission(true);
const findObj = { save: () => {} };
const findByIdSpy = jest.spyOn(UserProfile, 'findById').mockResolvedValue(findObj);
jest.spyOn(findObj, 'save').mockResolvedValueOnce({ _id: 'randomId' });
- const response = await assignBadgesToSingleUser(mockReq, mockRes);
+ const response = await assignBadges(mockReq, mockRes);
assertResMock(201, `randomId`, response, mockRes);
expect(findByIdSpy).toHaveBeenCalledWith(mongoose.Types.ObjectId(mockReq.params.userId));
diff --git a/src/controllers/bmdashboard/__tests__/bmMaterialsController.test.js b/src/controllers/bmdashboard/__tests__/bmMaterialsController.test.js
index e2603594c..37a64348a 100644
--- a/src/controllers/bmdashboard/__tests__/bmMaterialsController.test.js
+++ b/src/controllers/bmdashboard/__tests__/bmMaterialsController.test.js
@@ -349,4 +349,4 @@ describe('bmMaterialsController', () => {
);
});
});
-});
+});
\ No newline at end of file
diff --git a/src/controllers/bmdashboard/__tests__/bmNewLessonController.test.js b/src/controllers/bmdashboard/__tests__/bmNewLessonController.test.js
index 617ca927d..39689b315 100644
--- a/src/controllers/bmdashboard/__tests__/bmNewLessonController.test.js
+++ b/src/controllers/bmdashboard/__tests__/bmNewLessonController.test.js
@@ -424,4 +424,4 @@ describe('bmNewLessonController', () => {
expect(mockRes.json).toHaveBeenCalledWith({ error: 'Error fetching tags' });
});
});
-});
+});
\ No newline at end of file
diff --git a/src/controllers/bmdashboard/__tests__/bmProjectController.test.js b/src/controllers/bmdashboard/__tests__/bmProjectController.test.js
index 45ed4becb..0f75824cb 100644
--- a/src/controllers/bmdashboard/__tests__/bmProjectController.test.js
+++ b/src/controllers/bmdashboard/__tests__/bmProjectController.test.js
@@ -1,3 +1,4 @@
+/* eslint-disable arrow-body-style */
// Mock the BuildingProject model
const mockAggregate = jest.fn();
const mockFindById = jest.fn();
diff --git a/src/controllers/bmdashboard/__tests__/bmToolController.test.js b/src/controllers/bmdashboard/__tests__/bmToolController.test.js
index fe312c12b..06f87b55d 100644
--- a/src/controllers/bmdashboard/__tests__/bmToolController.test.js
+++ b/src/controllers/bmdashboard/__tests__/bmToolController.test.js
@@ -1,3 +1,4 @@
+/* eslint-disable arrow-body-style */
const mongoose = require('mongoose');
// const { MongoMemoryServer } = require('mongodb-memory-server');
const bmToolController = require('../bmToolController');
diff --git a/src/controllers/bmdashboard/bmActualVsPlannedCostController.js b/src/controllers/bmdashboard/bmActualVsPlannedCostController.js
index 245d5817a..ffa9dfdfa 100644
--- a/src/controllers/bmdashboard/bmActualVsPlannedCostController.js
+++ b/src/controllers/bmdashboard/bmActualVsPlannedCostController.js
@@ -96,4 +96,4 @@ const getExpensesByProject = async (req, res) => {
}
};
-module.exports = { getExpensesByProject };
+module.exports = { getExpensesByProject };
\ No newline at end of file
diff --git a/src/controllers/bmdashboard/bmConsumableController.js b/src/controllers/bmdashboard/bmConsumableController.js
index b3f21b68e..e97814eea 100644
--- a/src/controllers/bmdashboard/bmConsumableController.js
+++ b/src/controllers/bmdashboard/bmConsumableController.js
@@ -154,4 +154,4 @@ const bmConsumableController = function (BuildingConsumable) {
};
};
-module.exports = bmConsumableController;
+module.exports = bmConsumableController;
\ No newline at end of file
diff --git a/src/controllers/bmdashboard/bmDashboardPrototypeController.js b/src/controllers/bmdashboard/bmDashboardPrototypeController.js
index adfd76d13..ea5dc359d 100644
--- a/src/controllers/bmdashboard/bmDashboardPrototypeController.js
+++ b/src/controllers/bmdashboard/bmDashboardPrototypeController.js
@@ -636,4 +636,4 @@ const bmDashboardPrototypeController = function (
};
};
-module.exports = bmDashboardPrototypeController;
+module.exports = bmDashboardPrototypeController;
\ No newline at end of file
diff --git a/src/controllers/bmdashboard/bmEquipmentController.js b/src/controllers/bmdashboard/bmEquipmentController.js
index 729367748..a216395e5 100644
--- a/src/controllers/bmdashboard/bmEquipmentController.js
+++ b/src/controllers/bmdashboard/bmEquipmentController.js
@@ -222,4 +222,4 @@ const bmEquipmentController = (BuildingEquipment) => {
};
};
-module.exports = bmEquipmentController;
+module.exports = bmEquipmentController;
\ No newline at end of file
diff --git a/src/controllers/bmdashboard/bmFinancialController.js b/src/controllers/bmdashboard/bmFinancialController.js
index 578b9a204..be39f3727 100644
--- a/src/controllers/bmdashboard/bmFinancialController.js
+++ b/src/controllers/bmdashboard/bmFinancialController.js
@@ -1,3 +1,5 @@
+/* eslint-disable max-lines-per-function */
+/* eslint-disable no-console */
/* eslint-disable no-shadow */
/* eslint-disable no-use-before-define */
const logger = require('../../startup/logger');
@@ -5,6 +7,7 @@ const logger = require('../../startup/logger');
const bmFinancialController = function (BuildingProject, BuildingMaterial, BuildingTool) {
const mongoose = require('mongoose');
+ // eslint-disable-next-line no-magic-numbers
const calculateLaborCost = async (projectId, hourlyRate = 25) => {
try {
const project = await BuildingProject.findById(projectId);
diff --git a/src/controllers/bmdashboard/bmNewLessonController.js b/src/controllers/bmdashboard/bmNewLessonController.js
index aa697f950..f0682143f 100644
--- a/src/controllers/bmdashboard/bmNewLessonController.js
+++ b/src/controllers/bmdashboard/bmNewLessonController.js
@@ -1,3 +1,4 @@
+/* eslint-disable no-unused-vars */
const mongoose = require('mongoose');
const bmNewLessonController = function (BuildingNewLesson) {
diff --git a/src/controllers/bmdashboard/bmProjectController.js b/src/controllers/bmdashboard/bmProjectController.js
index 03f4c9f33..1e4c22e6d 100644
--- a/src/controllers/bmdashboard/bmProjectController.js
+++ b/src/controllers/bmdashboard/bmProjectController.js
@@ -1,3 +1,5 @@
+/* eslint-disable no-unused-vars */
+/* eslint-disable no-shadow */
/* eslint-disable prefer-destructuring */
const mongoose = require('mongoose');
const Task = require('../../models/task');
diff --git a/src/controllers/bmdashboard/bmTimeLoggerController.js b/src/controllers/bmdashboard/bmTimeLoggerController.js
index f8fb56554..6e46ee66e 100644
--- a/src/controllers/bmdashboard/bmTimeLoggerController.js
+++ b/src/controllers/bmdashboard/bmTimeLoggerController.js
@@ -1,4 +1,4 @@
-// const mongoose = require('mongoose');
+const mongoose = require('mongoose');
const BuildingProject = require('../../models/bmdashboard/buildingProject');
// const Task = require('../../models/task');
@@ -11,10 +11,18 @@ const bmTimeLoggerController = function (bmTimeLog) {
const now = new Date();
+ // Convert to ObjectId for proper MongoDB query
+ const projectObjectId = mongoose.Types.ObjectId.isValid(projectId)
+ ? new mongoose.Types.ObjectId(projectId)
+ : projectId;
+ const memberObjectId = mongoose.Types.ObjectId.isValid(memberId)
+ ? new mongoose.Types.ObjectId(memberId)
+ : memberId;
+
// Check if there's already an ongoing time log for this project and member
const existingTimeLog = await bmTimeLog.findOne({
- project: projectId,
- member: memberId,
+ project: projectObjectId,
+ member: memberObjectId,
status: { $in: ['ongoing', 'paused'] },
});
@@ -45,8 +53,8 @@ const bmTimeLoggerController = function (bmTimeLog) {
} else {
// Create a new time log
timeLog = await bmTimeLog.create({
- project: projectId,
- member: memberId,
+ project: projectObjectId,
+ member: memberObjectId,
task: task || 'Default Task',
status: 'ongoing',
currentIntervalStarted: now,
@@ -222,31 +230,64 @@ const bmTimeLoggerController = function (bmTimeLog) {
const getProjectTimeLogs = async (req, res) => {
try {
const { projectId, memberId } = req.params;
- const matchStage = { project: projectId };
- if (memberId) {
- matchStage.member = memberId;
+
+ // Convert projectId to ObjectId for proper MongoDB query
+ const projectObjectId = mongoose.Types.ObjectId.isValid(projectId)
+ ? new mongoose.Types.ObjectId(projectId)
+ : projectId;
+
+ const matchStage = { project: projectObjectId };
+ // Only filter by member if memberId is provided and it's not undefined
+ if (memberId && memberId !== 'logs' && mongoose.Types.ObjectId.isValid(memberId)) {
+ matchStage.member = new mongoose.Types.ObjectId(memberId);
}
const timeLogs = await bmTimeLog.aggregate([
{ $match: matchStage },
+ // Convert member to ObjectId safely (handles both string and ObjectId)
+ {
+ $addFields: {
+ memberObjectId: {
+ $cond: {
+ if: { $eq: [{ $type: '$member' }, 'string'] },
+ then: {
+ $convert: {
+ input: '$member',
+ to: 'objectId',
+ onError: null,
+ onNull: null,
+ },
+ },
+ else: '$member',
+ },
+ },
+ },
+ },
{
$lookup: {
- from: 'users',
- localField: 'member',
+ from: 'userProfiles',
+ localField: 'memberObjectId',
foreignField: '_id',
as: 'member',
},
},
- { $unwind: '$member' },
+ { $unwind: { path: '$member', preserveNullAndEmptyArrays: true } },
{
$project: {
_id: 1,
project: 1,
- member: { firstName: '$member.firstName', lastName: '$member.lastName' },
+ member: {
+ _id: { $ifNull: ['$member._id', null] },
+ firstName: { $ifNull: ['$member.firstName', 'Unknown'] },
+ lastName: { $ifNull: ['$member.lastName', 'User'] },
+ role: { $ifNull: ['$member.role', 'N/A'] },
+ },
intervals: 1,
status: 1,
totalElapsedTime: 1,
createdAt: 1,
+ updatedAt: 1,
+ task: 1,
},
},
{ $sort: { createdAt: -1 } },
diff --git a/src/controllers/bmdashboard/bmToolAvailabilityController.js b/src/controllers/bmdashboard/bmToolAvailabilityController.js
index 01a399c43..60aef2178 100644
--- a/src/controllers/bmdashboard/bmToolAvailabilityController.js
+++ b/src/controllers/bmdashboard/bmToolAvailabilityController.js
@@ -71,4 +71,4 @@ exports.getToolAvailability = async (req, res) => {
console.error('Error calculating tool availability:', err.message, err.stack);
res.status(500).json({ error: 'Internal server error' });
}
-};
+};
\ No newline at end of file
diff --git a/src/controllers/bmdashboard/bmToolController.js b/src/controllers/bmdashboard/bmToolController.js
index f9f391e3a..9c4cd725c 100644
--- a/src/controllers/bmdashboard/bmToolController.js
+++ b/src/controllers/bmdashboard/bmToolController.js
@@ -1,3 +1,9 @@
+/* eslint-disable prefer-destructuring */
+/* eslint-disable no-await-in-loop */
+/* eslint-disable no-continue */
+/* eslint-disable object-shorthand */
+/* eslint-disable no-restricted-syntax */
+/* eslint-disable no-else-return */
const mongoose = require('mongoose');
const bmToolController = (BuildingTool, ToolType) => {
diff --git a/src/controllers/bmdashboard/injuryCategoryController.js b/src/controllers/bmdashboard/injuryCategoryController.js
index 6c3366f1b..e75f7142d 100644
--- a/src/controllers/bmdashboard/injuryCategoryController.js
+++ b/src/controllers/bmdashboard/injuryCategoryController.js
@@ -1,3 +1,4 @@
+/* eslint-disable camelcase */
const mongoose = require('mongoose');
const InjuryCategory = require('../../models/bmdashboard/buildingInjury');
@@ -172,4 +173,4 @@ exports.getProjectsWithInjuries = async (req, res) => {
console.error('[getProjectsWithInjuries] Error:', err);
res.status(500).json({ error: 'Internal server error' });
}
-};
+};
\ No newline at end of file
diff --git a/src/controllers/bmdashboard/projectCostController.js b/src/controllers/bmdashboard/projectCostController.js
index 7370d7708..2baff4ca1 100644
--- a/src/controllers/bmdashboard/projectCostController.js
+++ b/src/controllers/bmdashboard/projectCostController.js
@@ -1,3 +1,7 @@
+/* eslint-disable no-restricted-globals */
+/* eslint-disable object-shorthand */
+/* eslint-disable no-else-return */
+/* eslint-disable no-unused-vars */
const regression = require('regression');
const mongoose = require('mongoose');
diff --git a/src/controllers/bmdashboard/projectCostTrackingController.js b/src/controllers/bmdashboard/projectCostTrackingController.js
index 7adf85567..45fe2c8a1 100644
--- a/src/controllers/bmdashboard/projectCostTrackingController.js
+++ b/src/controllers/bmdashboard/projectCostTrackingController.js
@@ -1,3 +1,4 @@
+/* eslint-disable no-plusplus */
const projectCostTrackingController = function (ProjectCostTracking) {
// Simple linear regression class compatible with older Node.js versions
class SimpleLinearRegression {
diff --git a/src/controllers/bmdashboard/toolAvailabilityController.js b/src/controllers/bmdashboard/toolAvailabilityController.js
index 64e9527fd..ee363d68b 100644
--- a/src/controllers/bmdashboard/toolAvailabilityController.js
+++ b/src/controllers/bmdashboard/toolAvailabilityController.js
@@ -1,3 +1,4 @@
+
const { ObjectId } = require('mongoose').Types;
const toolAvailabilityController = function (ToolAvailability) {
diff --git a/src/controllers/collaborationController.js b/src/controllers/collaborationController.js
index 518e880cf..d9814d1a5 100644
--- a/src/controllers/collaborationController.js
+++ b/src/controllers/collaborationController.js
@@ -240,4 +240,4 @@ exports.reorderQuestions = async (req, res) => {
console.error('Error reordering questions:', error);
res.status(500).json({ message: 'Error reordering questions.', error: error.message });
}
-};
+};
\ No newline at end of file
diff --git a/src/controllers/dashBoardController.spec.js b/src/controllers/dashBoardController.spec.js
index d5d7d8dbd..1b744bd08 100644
--- a/src/controllers/dashBoardController.spec.js
+++ b/src/controllers/dashBoardController.spec.js
@@ -1,5 +1,8 @@
jest.mock('uuid/v4');
-jest.mock('../utilities/emailSender', () => jest.fn());
+// jest.mock('../utilities/emailSender', () => jest.fn());
+jest.mock('../utilities/emailSender', () => ({
+ sendEmail: jest.fn().mockResolvedValue(),
+}));
const uuidv4 = require('uuid/v4');
const emailSender = require('../utilities/emailSender');
@@ -9,7 +12,8 @@ const escapeRegex = require('../utilities/escapeRegex');
const forgotPwdController = require('./forgotPwdcontroller');
uuidv4.mockReturnValue('');
-emailSender.mockImplementation(() => Promise.resolve());
+// emailSender.mockImplementation(() => Promise.resolve());
+emailSender.sendEmail.mockResolvedValue();
// const flushPromises = () => new Promise(setImmediate);
@@ -114,7 +118,7 @@ describe('Unit Tests for forgotPwdcontroller.js', () => {
expect(mockUser.set).toHaveBeenCalledWith({ resetPwd: temporaryPassword });
expect(mockUser.save).toHaveBeenCalled();
- expect(emailSender).toHaveBeenCalledWith(
+ expect(emailSender.sendEmail).toHaveBeenCalledWith(
mockUser.email,
'Account Password change',
expectedEmailMessage,
diff --git a/src/controllers/educationPortal/downloadReportController.js b/src/controllers/educationPortal/downloadReportController.js
index ffb085ef0..e2f4fe88c 100644
--- a/src/controllers/educationPortal/downloadReportController.js
+++ b/src/controllers/educationPortal/downloadReportController.js
@@ -78,7 +78,7 @@ function buildTaskQuery(type, params) {
function calculateAverageGrade(taskList) {
const gradedTasks = taskList.filter(
- t => t.grade && t.grade !== 'pending' && GRADE_MAP[t.grade] !== undefined,
+ (t) => t.grade && t.grade !== 'pending' && GRADE_MAP[t.grade] !== undefined,
);
if (gradedTasks.length === 0) return 'N/A';
@@ -99,7 +99,9 @@ async function fetchStudentReport(studentId, startDate, endDate) {
const [tasks, student] = await Promise.all([
EducationTask.find(query)
.populate('studentId', 'firstName lastName email')
- .select('type status grade dueAt completedAt feedback suggestedTotalHours loggedHours assignedAt')
+ .select(
+ 'type status grade dueAt completedAt feedback suggestedTotalHours loggedHours assignedAt',
+ )
.sort({ assignedAt: -1 })
.limit(MAX_RECORDS_PER_REPORT)
.lean(),
@@ -114,7 +116,7 @@ async function fetchStudentReport(studentId, startDate, endDate) {
return null;
}
- const taskData = tasks.map(task => ({
+ const taskData = tasks.map((task) => ({
taskName: task.type || 'N/A',
type: task.type,
status: task.status,
@@ -127,10 +129,10 @@ async function fetchStudentReport(studentId, startDate, endDate) {
assignedAt: task.assignedAt,
}));
- const completed = tasks.filter(t => t.status === 'completed').length;
- const inProgress = tasks.filter(t => t.status === 'in_progress').length;
- const graded = tasks.filter(t => t.status === 'graded').length;
- const assigned = tasks.filter(t => t.status === 'assigned').length;
+ const completed = tasks.filter((t) => t.status === 'completed').length;
+ const inProgress = tasks.filter((t) => t.status === 'in_progress').length;
+ const graded = tasks.filter((t) => t.status === 'graded').length;
+ const assigned = tasks.filter((t) => t.status === 'assigned').length;
return {
student: {
@@ -215,7 +217,7 @@ async function fetchClassReport(classId, startDate, endDate) {
return Number.isNaN(grade) ? sum : sum + grade;
}, 0);
- const studentsWithGrades = students.filter(s => s.averageGrade !== 'N/A').length;
+ const studentsWithGrades = students.filter((s) => s.averageGrade !== 'N/A').length;
return {
classId,
@@ -373,14 +375,12 @@ function generateCSVReport(res, reportData, metadata, type) {
{ label: 'Feedback', value: 'feedback' },
];
- data = reportData.tasks.map(task => ({
+ data = reportData.tasks.map((task) => ({
taskName: task.taskName,
status: task.status,
grade: task.grade,
dueDate: task.dueDate ? new Date(task.dueDate).toLocaleDateString() : 'N/A',
- completedDate: task.completedDate
- ? new Date(task.completedDate).toLocaleDateString()
- : 'N/A',
+ completedDate: task.completedDate ? new Date(task.completedDate).toLocaleDateString() : 'N/A',
suggestedHours: task.suggestedHours,
loggedHours: task.loggedHours,
feedback: task.feedback || '',
@@ -479,4 +479,4 @@ const downloadReportController = {
},
};
-module.exports = downloadReportController;
\ No newline at end of file
+module.exports = downloadReportController;
diff --git a/src/controllers/educatorController.js b/src/controllers/educatorController.js
new file mode 100644
index 000000000..e404e77b1
--- /dev/null
+++ b/src/controllers/educatorController.js
@@ -0,0 +1,144 @@
+const StudentAtom = require('../models/studentAtom');
+const UserProfile = require('../models/userProfile');
+const Atom = require('../models/atom');
+
+const educatorController = function () {
+ /**
+ * Assign atoms to students
+ * @param {Object} req - Request object
+ * @param {Object} res - Response object
+ */
+ const assignAtoms = async (req, res) => {
+ try {
+ const { requestor } = req.body;
+ const { studentId, atomType, atomTypes, note } = req.body;
+
+ // Validate requestor exists and has proper permissions
+ if (!requestor || !requestor.requestorId) {
+ return res.status(401).json({ error: 'Authentication required' });
+ }
+
+ // Check if user has educator/admin/owner role
+ const validRoles = ['admin', 'educator', 'teacher', 'owner', 'Owner', 'Administrator'];
+ if (!validRoles.includes(requestor.role)) {
+ return res.status(403).json({
+ error: 'Insufficient permissions. Educator, admin, teacher, or owner role required.',
+ receivedRole: requestor.role,
+ validRoles,
+ });
+ }
+
+ // Validate required fields
+ if (!studentId) {
+ return res.status(400).json({ error: 'student_id is required' });
+ }
+
+ // Support both single atomType and multiple atomTypes
+ let atomIds = [];
+ if (atomTypes && Array.isArray(atomTypes)) {
+ atomIds = atomTypes;
+ } else if (atomType) {
+ atomIds = [atomType];
+ } else {
+ return res.status(400).json({ error: 'atom_type or atom_types array is required' });
+ }
+
+ // Validate student exists
+ const student = await UserProfile.findById(studentId);
+ if (!student) {
+ return res.status(404).json({
+ error: 'Student not found',
+ studentId,
+ message: 'Please check if the student ID exists in the database',
+ });
+ }
+
+ // Validate all atoms exist
+ const atoms = await Atom.find({ _id: { $in: atomIds } });
+ const foundAtomIds = atoms.map((atom) => atom._id.toString());
+ const missingAtomIds = atomIds.filter((id) => !foundAtomIds.includes(id.toString()));
+
+ if (missingAtomIds.length > 0) {
+ return res.status(404).json({
+ error: 'One or more atoms not found',
+ missingAtomIds,
+ message: 'Please check if all atom IDs exist in the database',
+ });
+ }
+
+ // Check for existing assignments
+ const existingAssignments = await StudentAtom.find({
+ studentId,
+ atomId: { $in: atomIds },
+ });
+
+ const alreadyAssignedAtomIds = existingAssignments.map((assignment) =>
+ assignment.atomId.toString(),
+ );
+ const newAtomIds = atomIds.filter((id) => !alreadyAssignedAtomIds.includes(id.toString()));
+
+ if (newAtomIds.length === 0) {
+ return res.status(400).json({
+ error: 'All atoms are already assigned to this student',
+ alreadyAssignedAtomIds,
+ });
+ }
+
+ // Create new atom assignments for atoms that aren't already assigned
+ const assignmentsToCreate = newAtomIds.map((atomId) => ({
+ studentId,
+ atomId,
+ assignedBy: requestor.requestorId,
+ note: note || undefined,
+ }));
+
+ const savedAssignments = await StudentAtom.insertMany(assignmentsToCreate);
+
+ // Populate the response with referenced data
+ const populatedAssignments = await StudentAtom.find({
+ _id: { $in: savedAssignments.map((a) => a._id) },
+ })
+ .populate('studentId', 'firstName lastName email')
+ .populate('atomId', 'name description difficulty')
+ .populate('assignedBy', 'firstName lastName email');
+
+ const response = {
+ message: 'Atom assignments processed',
+ successfulAssignments: populatedAssignments,
+ totalRequested: atomIds.length,
+ successfullyAssigned: newAtomIds.length,
+ alreadyAssigned: alreadyAssignedAtomIds.length,
+ };
+
+ // Include information about already assigned atoms if any
+ if (alreadyAssignedAtomIds.length > 0) {
+ response.alreadyAssignedAtomIds = alreadyAssignedAtomIds;
+ response.message += ` (${alreadyAssignedAtomIds.length} were already assigned)`;
+ }
+
+ res.status(201).json(response);
+ } catch (error) {
+ console.error('Error assigning atoms:', error);
+
+ // Handle duplicate key error
+ if (error.code === 11000) {
+ return res
+ .status(400)
+ .json({ error: 'One or more atoms already assigned to this student' });
+ }
+
+ // Handle validation errors
+ if (error.name === 'ValidationError') {
+ return res.status(400).json({ error: error.message });
+ }
+
+ res.status(500).json({ error: 'Internal server error' });
+ }
+ };
+
+ return {
+ assignAtoms,
+ };
+};
+
+module.exports = educatorController;
diff --git a/src/controllers/forgotPwdcontroller.js b/src/controllers/forgotPwdcontroller.js
index 2082b55cf..e597885ac 100644
--- a/src/controllers/forgotPwdcontroller.js
+++ b/src/controllers/forgotPwdcontroller.js
@@ -37,7 +37,7 @@ const forgotPwdController = function (userProfile) {
try {
await user.save();
- await emailSender(
+ await emailSender.sendEmail(
user.email,
'Account Password change',
getEmailMessageForForgotPassword(user, ranPwd),
@@ -59,8 +59,92 @@ const forgotPwdController = function (userProfile) {
return res.status(500).send(error);
}
};
+ const sendBugReport = async (req, res) => {
+ try {
+ await emailSender(
+ 'suggestion@onecommunityglobal.org',
+ 'Bug Reported',
+ JSON.stringify(req.body, null, 2),
+ );
+ res.status(200).send('Success');
+ } catch (error) {
+ logger.logException(error);
+ res.status(500).send('Failed to send email');
+ }
+ };
+
+ const sendMakeSuggestion = async (req, res) => {
+ try {
+ await emailSender(
+ 'suggestion@onecommunityglobal.org',
+ 'New Suggestion',
+ JSON.stringify(req.body, null, 2),
+ );
+ res.status(200).send('Success');
+ } catch (error) {
+ logger.logException(error);
+ res.status(500).send('Failed to send email');
+ }
+ };
- return { forgotPwd };
+ const getSuggestionOption = async (_req, res) => {
+ try {
+ const suggestionData = {
+ field: [],
+ suggestion: [
+ 'Identify and remedy poor client and/or user service experiences',
+ 'Identify bright spots and enhance positive service experiences',
+ 'Make fundamental changes to our programs and/or operations',
+ 'Inform the development of new programs/projects',
+ 'Identify where we are less inclusive or equitable across demographic groups',
+ 'Strengthen relationships with the people we serve',
+ "Understand people's needs and how we can help them achieve their goals",
+ 'Other',
+ ],
+ };
+ res.status(200).send(suggestionData);
+ } catch (error) {
+ logger.logException(error);
+ res.status(404).send('Suggestion Data Not Found');
+ }
+ };
+
+ const editSuggestionOption = async (req, res) => {
+ try {
+ const { action, newField, suggestion } = req.body;
+ const suggestionData = {
+ suggestion: ['newSuggestion'],
+ field: ['newField'],
+ };
+
+ if (action === 'add') {
+ if (suggestion) {
+ suggestionData.suggestion.push(newField);
+ } else {
+ suggestionData.field.push(newField);
+ }
+ } else if (action === 'delete') {
+ if (suggestion) {
+ suggestionData.suggestion = suggestionData.suggestion.filter((s) => s !== newField);
+ } else {
+ suggestionData.field = suggestionData.field.filter((f) => f !== newField);
+ }
+ }
+
+ res.status(200).send('success');
+ } catch (error) {
+ logger.logException(error);
+ res.status(500).send('Error updating suggestion data');
+ }
+ };
+
+ return {
+ forgotPwd,
+ sendBugReport,
+ sendMakeSuggestion,
+ getSuggestionOption,
+ editSuggestionOption,
+ };
};
module.exports = forgotPwdController;
diff --git a/src/controllers/forgotPwdcontroller.spec.js b/src/controllers/forgotPwdcontroller.spec.js
index f51883974..b822472a2 100644
--- a/src/controllers/forgotPwdcontroller.spec.js
+++ b/src/controllers/forgotPwdcontroller.spec.js
@@ -1,3 +1,4 @@
+
// const mongoose = require('mongoose');
const AIPrompt = require('../models/weeklySummaryAIPrompt');
const { mockReq, mockRes, assertResMock } = require('../test');
diff --git a/src/controllers/formController.js b/src/controllers/formController.js
index 3fd42e07f..236fb6987 100644
--- a/src/controllers/formController.js
+++ b/src/controllers/formController.js
@@ -1,3 +1,12 @@
+/* eslint-disable prefer-template */
+/* eslint-disable camelcase */
+/* eslint-disable no-restricted-syntax */
+/* eslint-disable eqeqeq */
+/* eslint-disable prefer-destructuring */
+/* eslint-disable object-shorthand */
+/* eslint-disable no-plusplus */
+/* eslint-disable new-cap */
+/* eslint-disable prefer-const */
const userprofile = require('../models/userProfile');
const formController = function (Form, FormResponse) {
diff --git a/src/controllers/formController.spec.js b/src/controllers/formController.spec.js
index a1789f562..67a245100 100644
--- a/src/controllers/formController.spec.js
+++ b/src/controllers/formController.spec.js
@@ -1,3 +1,6 @@
+/* eslint-disable one-var */
+/* eslint-disable import/extensions */
+/* eslint-disable no-unused-vars */
// test/formController.spec.js
const {
// eslint-disable-next-line no-unused-vars
diff --git a/src/controllers/hgnFormResponseController.js b/src/controllers/hgnFormResponseController.js
index 2964cd7ba..9a9c66d6e 100644
--- a/src/controllers/hgnFormResponseController.js
+++ b/src/controllers/hgnFormResponseController.js
@@ -1,3 +1,7 @@
+/* eslint-disable prefer-template */
+/* eslint-disable prefer-const */
+/* eslint-disable no-restricted-globals */
+/* eslint-disable radix */
/* eslint-disable camelcase */
const FormResponse = require('../models/hgnFormResponse');
const { hasPermission } = require('../utilities/permissions');
@@ -12,14 +16,7 @@ const hgnFormController = function () {
.json({ error: 'All fields (userInfo, general, frontend, backend) are required' });
}
try {
- const formResponse = new FormResponse({
- userInfo,
- general,
- frontend,
- backend,
- followUp,
- user_id,
- });
+ const formResponse = new FormResponse(req.body);
await formResponse.save();
res.status(201).json(formResponse);
} catch (err) {
@@ -120,4 +117,4 @@ const hgnFormController = function () {
getRankedResponses,
};
};
-module.exports = hgnFormController;
+module.exports = hgnFormController;
\ No newline at end of file
diff --git a/src/controllers/laborCostController.js b/src/controllers/laborCostController.js
index 376a55b71..b15e85973 100644
--- a/src/controllers/laborCostController.js
+++ b/src/controllers/laborCostController.js
@@ -1,3 +1,5 @@
+/* eslint-disable import/extensions */
+/* eslint-disable import/no-unresolved */
const Labour = require('../models/laborCost');
const createLabourCost = async (req, res) => {
@@ -95,4 +97,4 @@ module.exports = {
getLabourCostByDate,
getLabourCostByProject,
getLabourCostByTask,
-};
+};
\ No newline at end of file
diff --git a/src/controllers/liveJournalPostController.js b/src/controllers/liveJournalPostController.js
new file mode 100644
index 000000000..95f6b1922
--- /dev/null
+++ b/src/controllers/liveJournalPostController.js
@@ -0,0 +1,228 @@
+/* eslint-disable no-console */
+const crypto = require('crypto');
+const xmlrpc = require('xmlrpc');
+const mongoose = require('mongoose');
+// eslint-disable-next-line import/no-extraneous-dependencies
+const cloudinary = require('cloudinary').v2;
+// eslint-disable-next-line import/no-extraneous-dependencies
+const streamifier = require('streamifier');
+const LiveJournalPost = require('../models/liveJournalPost');
+
+const LJ_API_HOST = 'www.livejournal.com';
+const LJ_API_PATH = '/interface/xmlrpc';
+const HISTORY_LIMIT = 50;
+
+cloudinary.config({
+ cloud_name: process.env.CLOUDINARY_CLOUD_NAME,
+ api_key: process.env.CLOUDINARY_API_KEY,
+ api_secret: process.env.CLOUDINARY_API_SECRET,
+});
+
+const CUSTOM_HEADERS = {
+ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
+ 'Accept': 'text/xml',
+ 'Content-Type': 'text/xml',
+ 'Connection': 'keep-alive',
+};
+
+const uploadToCloudinary = (fileBuffer) => new Promise((resolve, reject) => {
+ const uploadStream = cloudinary.uploader.upload_stream(
+ { folder: 'livejournal_posts' },
+ (error, result) => {
+ if (error) reject(error);
+ else resolve(result.secure_url);
+ },
+ );
+ streamifier.createReadStream(fileBuffer).pipe(uploadStream);
+});
+
+const getChallenge = () => new Promise((resolve, reject) => {
+ const client = xmlrpc.createSecureClient({
+ host: LJ_API_HOST,
+ port: 443,
+ path: LJ_API_PATH,
+ headers: CUSTOM_HEADERS,
+ });
+
+ client.methodCall('LJ.XMLRPC.getchallenge', [], (error, value) => {
+ if (error) {
+ if (error.body) console.error('LJ Raw Error Body:', error.body);
+ reject(error);
+ } else {
+ resolve(value);
+ }
+ });
+});
+
+const generateAuthResponse = (challenge, password) => {
+ const hash = crypto.createHash('md5');
+ hash.update(challenge + crypto.createHash('md5').update(password).digest('hex'));
+ return hash.digest('hex');
+};
+
+const postToLiveJournal = async (postData) => {
+ const challengeData = await getChallenge();
+ const authResponse = generateAuthResponse(challengeData.challenge, postData.password);
+ const now = new Date();
+
+ // FIX: Removed 'title' attribute to prevent XML-RPC crash
+ let finalContent = postData.content;
+ if (postData.imageUrl) {
+ const alt = postData.altText ? postData.altText.replace(/"/g, '"') : '';
+ finalContent = `
${finalContent}`;
+ }
+
+ const ljParams = {
+ username: postData.username,
+ auth_method: 'challenge',
+ auth_challenge: challengeData.challenge,
+ auth_response: authResponse,
+ ver: 1,
+ event: finalContent,
+ subject: postData.subject || '',
+ lineendings: 'unix',
+ year: now.getFullYear(),
+ mon: now.getMonth() + 1,
+ day: now.getDate(),
+ hour: now.getHours(),
+ min: now.getMinutes(),
+ };
+
+ if (postData.security === 'private') ljParams.security = 'private';
+ else if (postData.security === 'friends') { ljParams.security = 'usemask'; ljParams.allowmask = 1; }
+ else ljParams.security = 'public';
+
+ if (postData.tags && postData.tags.trim()) ljParams.props = { taglist: postData.tags.trim() };
+
+ const client = xmlrpc.createSecureClient({
+ host: LJ_API_HOST,
+ port: 443,
+ path: LJ_API_PATH,
+ headers: CUSTOM_HEADERS,
+ });
+
+ return new Promise((resolve, reject) => {
+ client.methodCall('LJ.XMLRPC.postevent', [ljParams], (error, value) => {
+ if (error) {
+ console.error('LiveJournal API Error:', error);
+ reject(error);
+ } else {
+ console.log('LiveJournal Success:', value);
+ resolve(value);
+ }
+ });
+ });
+};
+
+exports.createPost = async (req, res) => {
+ try {
+ const { username, password, subject, content, security, tags, altText } = req.body;
+ let imageUrl = null;
+ if (req.file) imageUrl = await uploadToCloudinary(req.file.buffer);
+
+ const userId = req.user ? req.user._id : new mongoose.Types.ObjectId();
+ if (!username || !password) return res.status(400).json({ success: false, message: 'Username and password are required' });
+
+ const result = await postToLiveJournal({
+ username, password, subject, content, security: security || 'public', tags, imageUrl, altText,
+ });
+
+ const post = new LiveJournalPost({
+ userId, username, subject: subject || 'Untitled', content, security: security || 'public', tags, status: 'posted', ljItemId: result.itemid, ljUrl: result.url, postedAt: new Date(),
+ });
+ await post.save();
+ res.json({ success: true, message: 'Posted successfully', post: { id: post._id, itemId: result.itemid, url: result.url } });
+ } catch (error) {
+ console.error('Error posting:', error);
+ res.status(500).json({ success: false, message: error.message || 'Failed to post' });
+ }
+};
+
+exports.schedulePost = async (req, res) => {
+ try {
+ const { username, password, subject, content, security, tags, scheduledDateTime, altText } = req.body;
+ let imageUrl = null;
+ if (req.file) imageUrl = await uploadToCloudinary(req.file.buffer);
+
+ const userId = req.user ? req.user._id : new mongoose.Types.ObjectId();
+ const scheduledDate = new Date(scheduledDateTime);
+
+ // FIX: Removed 'title' attribute here as well
+ let finalContent = content;
+ if (imageUrl) {
+ const alt = altText ? altText.replace(/"/g, '"') : '';
+ finalContent = `
${content}`;
+ }
+
+ const scheduledPost = new LiveJournalPost({
+ userId, username, password, subject: subject || 'Untitled', content: finalContent, security: security || 'public', tags, status: 'scheduled', scheduledFor: scheduledDate,
+ });
+ await scheduledPost.save();
+ res.json({ success: true, message: 'Post scheduled successfully', post: { id: scheduledPost._id, scheduledFor: scheduledDate } });
+ } catch (error) {
+ console.error('Error scheduling:', error);
+ res.status(500).json({ success: false, message: error.message });
+ }
+};
+
+exports.getScheduledPosts = async (req, res) => {
+ try {
+ const userId = req.user ? req.user._id : null;
+ const scheduledPosts = await LiveJournalPost.find({
+ userId: userId || { $exists: true }, status: 'scheduled', scheduledFor: { $gte: new Date() },
+ }).sort({ scheduledFor: 1 });
+ res.json({ success: true, posts: scheduledPosts });
+ } catch (error) { res.status(500).json({ success: false, message: 'Failed to fetch scheduled posts' }); }
+};
+
+exports.deleteScheduledPost = async (req, res) => {
+ try {
+ const { id } = req.params;
+ await LiveJournalPost.deleteOne({ _id: id });
+ res.json({ success: true, message: 'Scheduled post deleted successfully' });
+ } catch (error) { res.status(500).json({ success: false, message: 'Failed to delete scheduled post' }); }
+};
+
+exports.updateScheduledPost = async (req, res) => {
+ try {
+ const { id } = req.params;
+ const { subject, content, security, tags, scheduledDateTime } = req.body;
+ const post = await LiveJournalPost.findOne({ _id: id });
+ if (!post) return res.status(404).json({ success: false, message: 'Post not found' });
+
+ if (subject !== undefined) post.subject = subject;
+ if (content !== undefined) post.content = content;
+ if (security !== undefined) post.security = security;
+ if (tags !== undefined) post.tags = tags;
+ if (scheduledDateTime !== undefined) post.scheduledFor = new Date(scheduledDateTime);
+
+ await post.save();
+ res.json({ success: true, message: 'Scheduled post updated successfully', post });
+ } catch (error) { res.status(500).json({ success: false, message: 'Failed to update' }); }
+};
+
+exports.postScheduledNow = async (req, res) => {
+ try {
+ const { id } = req.params;
+ const post = await LiveJournalPost.findOne({ _id: id }).select('+password');
+ if (!post) return res.status(404).json({ success: false, message: 'Post not found' });
+
+ const result = await postToLiveJournal({
+ username: post.username, password: post.password, subject: post.subject, content: post.content, security: post.security, tags: post.tags,
+ });
+
+ post.status = 'posted'; post.ljItemId = result.itemid; post.ljUrl = result.url; post.postedAt = new Date(); post.scheduledFor = undefined;
+ await post.save();
+ res.json({ success: true, message: 'Posted successfully', post: { id: post._id, itemId: result.itemid, url: result.url } });
+ } catch (error) { res.status(500).json({ success: false, message: error.message || 'Failed to post' }); }
+};
+
+exports.getPostHistory = async (req, res) => {
+ try {
+ const userId = req.user ? req.user._id : null;
+ const posts = await LiveJournalPost.find({
+ userId: userId || { $exists: true }, status: { $in: ['posted', 'failed'] },
+ }).sort({ createdAt: -1 }).limit(HISTORY_LIMIT);
+ res.json({ success: true, posts });
+ } catch (error) { res.status(500).json({ success: false, message: 'Failed to fetch history' }); }
+};
\ No newline at end of file
diff --git a/src/controllers/mastodonPostController.js b/src/controllers/mastodonPostController.js
new file mode 100644
index 000000000..6be267ab0
--- /dev/null
+++ b/src/controllers/mastodonPostController.js
@@ -0,0 +1,238 @@
+const axios = require('axios');
+const FormData = require('form-data');
+const MastodonSchedule = require('../models/mastodonSchedule');
+
+const MASTODON_ENDPOINT = process.env.MASTODON_ENDPOINT || 'https://mastodon.social';
+const ACCESS_TOKEN = process.env.MASTODON_ACCESS_TOKEN;
+
+// Simple: get bearer headers or throw if missing
+function getAuthHeaders() {
+ if (!ACCESS_TOKEN) throw new Error('MASTODON_ACCESS_TOKEN not set');
+ return { Authorization: `Bearer ${ACCESS_TOKEN}` };
+}
+
+// Upload image to Mastodon with optional alt text and get media ID
+async function uploadMedia(base64Image, altText = null) {
+ try {
+ // Convert base64 to buffer
+ const base64Data = base64Image.replace(/^data:image\/\w+;base64,/, '');
+ const buffer = Buffer.from(base64Data, 'base64');
+
+ // Step 1: Upload the media file
+ const formData = new FormData();
+ formData.append('file', buffer, {
+ filename: 'upload.png',
+ contentType: 'image/png',
+ });
+
+ const uploadUrl = `${MASTODON_ENDPOINT}/api/v1/media`;
+ const uploadHeaders = {
+ ...getAuthHeaders(),
+ ...formData.getHeaders(),
+ };
+
+ const uploadResponse = await axios.post(uploadUrl, formData, { headers: uploadHeaders });
+ const mediaId = uploadResponse.data.id;
+
+ console.log('Image uploaded, media ID:', mediaId);
+
+ // Step 2: Update the media with alt text if provided
+ if (altText && altText.trim()) {
+ console.log('Updating media with alt text...');
+ const updateUrl = `${MASTODON_ENDPOINT}/api/v1/media/${mediaId}`;
+ const updateHeaders = {
+ ...getAuthHeaders(),
+ 'Content-Type': 'application/json',
+ };
+
+ await axios.put(
+ updateUrl,
+ {
+ description: altText.trim(),
+ },
+ { headers: updateHeaders },
+ );
+
+ console.log('Alt text updated successfully');
+ }
+
+ return mediaId;
+ } catch (err) {
+ console.error('Media upload failed:', err.response?.data || err.message);
+ throw new Error('Failed to upload image to Mastodon');
+ }
+}
+
+// Build post body (with optional image handling)
+async function buildPostData({ title, description, imgType, mediaItems, mediaAltText }) {
+ const text = description || title;
+ if (!text?.trim()) throw new Error("Post content can't be empty");
+
+ const postData = {
+ status: text.trim(),
+ visibility: 'public',
+ };
+
+ // Handle image upload
+ if (imgType === 'FILE' && mediaItems?.startsWith('data:')) {
+ try {
+ const mediaId = await uploadMedia(mediaItems, mediaAltText);
+ // eslint-disable-next-line camelcase
+ postData.media_ids = [mediaId];
+ // Store base64 and alt text for scheduled posts
+ // eslint-disable-next-line camelcase
+ postData.local_media_base64 = mediaItems;
+ if (mediaAltText) {
+ postData.mediaAltText = mediaAltText;
+ }
+ } catch (err) {
+ console.error('Image upload failed, posting without image:', err.message);
+ // Continue without image rather than failing the entire post
+ }
+ } else if (imgType === 'URL' && mediaItems) {
+ // For URL type, store for future use
+ // eslint-disable-next-line camelcase
+ postData.local_media_url = mediaItems;
+ }
+
+ return postData;
+}
+
+// Post immediately to Mastodon
+async function postImmediately(postData) {
+ const url = `${MASTODON_ENDPOINT}/api/v1/statuses`;
+ const headers = getAuthHeaders();
+
+ // Remove local_media fields and mediaAltText before sending to Mastodon
+ // eslint-disable-next-line camelcase
+ const { local_media_base64, local_media_url, mediaAltText, ...mastodonPostData } = postData;
+
+ return axios.post(url, mastodonPostData, { headers, responseType: 'json' });
+}
+
+// Express controller: immediate post
+async function createStatus(req, res) {
+ try {
+ const postData = await buildPostData(req.body);
+ const response = await postImmediately(postData);
+ res.status(200).json(response.data);
+ } catch (err) {
+ console.error('Mastodon post failed:', err.response?.data || err.message);
+ const status = err.response?.status || 500;
+ const msg = err.response?.data?.message || err.message || 'Failed to create Mastodon status';
+ res.status(status).json({ error: msg });
+ }
+}
+
+// Schedule a post
+async function scheduleStatus(req, res) {
+ try {
+ // Don't upload the image yet for scheduled posts
+ // Just store the base64 data and alt text
+ const text = req.body.description || req.body.title;
+ if (!text?.trim()) throw new Error("Post content can't be empty");
+
+ const postData = {
+ status: text.trim(),
+ visibility: 'public',
+ };
+
+ // Store image data and alt text for later upload
+ if (req.body.imgType === 'FILE' && req.body.mediaItems) {
+ // eslint-disable-next-line camelcase
+ postData.local_media_base64 = req.body.mediaItems;
+ if (req.body.mediaAltText) {
+ postData.mediaAltText = req.body.mediaAltText;
+ }
+ } else if (req.body.imgType === 'URL' && req.body.mediaItems) {
+ // eslint-disable-next-line camelcase
+ postData.local_media_url = req.body.mediaItems;
+ }
+
+ const { scheduledTime } = req.body;
+ await MastodonSchedule.create({
+ postData: JSON.stringify(postData),
+ scheduledTime,
+ });
+ res.sendStatus(200);
+ } catch (err) {
+ console.error('Schedule failed:', err.message);
+ res.status(500).json({ error: err.message });
+ }
+}
+
+// Fetch scheduled posts
+async function fetchScheduledStatus(_req, res) {
+ try {
+ const scheduled = await MastodonSchedule.find();
+ res.json(scheduled);
+ } catch (err) {
+ res.status(500).send('Failed to fetch scheduled pins');
+ }
+}
+
+// Delete scheduled post
+async function deleteScheduledStatus(req, res) {
+ try {
+ await MastodonSchedule.deleteOne({ _id: req.params.id });
+ res.send('Scheduled post deleted successfully');
+ } catch {
+ res.status(500).send('Failed to delete scheduled post');
+ }
+}
+
+// Fetch post history from Mastodon
+async function fetchPostHistory(req, res) {
+ try {
+ const headers = getAuthHeaders();
+
+ // Get the account ID first
+ const accountUrl = `${MASTODON_ENDPOINT}/api/v1/accounts/verify_credentials`;
+ const accountResponse = await axios.get(accountUrl, { headers });
+ const accountId = accountResponse.data.id;
+
+ // Fetch statuses for this account (limit to last 20 posts)
+ const limit = req.query.limit || 20;
+ const statusesUrl = `${MASTODON_ENDPOINT}/api/v1/accounts/${accountId}/statuses`;
+ const statusesResponse = await axios.get(statusesUrl, {
+ headers,
+ params: {
+ limit,
+ exclude_replies: true,
+ exclude_reblogs: true,
+ },
+ });
+
+ // Format the response
+ const posts = statusesResponse.data.map((status) => ({
+ id: status.id,
+ content: status.content,
+ // eslint-disable-next-line camelcase
+ created_at: status.created_at,
+ url: status.url,
+ // eslint-disable-next-line camelcase
+ media_attachments: status.media_attachments || [],
+ // eslint-disable-next-line camelcase
+ favourites_count: status.favourites_count || 0,
+ // eslint-disable-next-line camelcase
+ reblogs_count: status.reblogs_count || 0,
+ }));
+
+ res.json(posts);
+ } catch (err) {
+ console.error('Failed to fetch post history:', err.response?.data || err.message);
+ const status = err.response?.status || 500;
+ const msg = err.response?.data?.error || err.message || 'Failed to fetch post history';
+ res.status(status).json({ error: msg });
+ }
+}
+
+module.exports = {
+ createPin: createStatus,
+ schedulePin: scheduleStatus,
+ fetchScheduledPin: fetchScheduledStatus,
+ deletedScheduledPin: deleteScheduledStatus,
+ fetchPostHistory,
+ postImmediately,
+ uploadMedia,
+};
diff --git a/src/controllers/materialLossController.js b/src/controllers/materialLossController.js
index fc0841900..d7f335457 100644
--- a/src/controllers/materialLossController.js
+++ b/src/controllers/materialLossController.js
@@ -1,245 +1,100 @@
-/* eslint-disable no-restricted-globals */
-const mongoose = require('mongoose');
-const { buildingMaterial } = require('../models/bmdashboard/buildingInventoryItem');
+/* eslint-disable import/no-unresolved */
+/* eslint-disable import/extensions */
+const Labour = require('../models/laborCost');
-module.exports = function (MaterialLoss) {
- const isValidDate = (dateStr) => {
- const regex = /^\d{4}-\d{2}-\d{2}$/;
- if (!regex.test(dateStr)) return false;
- const date = new Date(dateStr);
- return !isNaN(date.getTime());
- };
+const createLabourCost = async (req, res) => {
+ const labourCost = req.body;
- const monthNumberToName = (monthNum) =>
- ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'][
- monthNum - 1
- ];
-
- const getMonthStartEnd = (year, month) => {
- const monthStart = new Date(Date.UTC(year, month - 1, 1, 0, 0, 0));
- const monthEnd = new Date(Date.UTC(year, month, 1, 0, 0, 0));
- monthEnd.setSeconds(monthEnd.getSeconds() - 1);
- return { monthStart, monthEnd };
- };
-
- async function computeMonthLoss(materialId, year, month) {
- const { monthStart, monthEnd } = getMonthStartEnd(year, month);
- const matchStage = { __t: 'material_item', updateRecord: { $exists: true, $ne: [] } };
- if (materialId) matchStage.itemType = new mongoose.Types.ObjectId(materialId);
+ if (!labourCost.project_name || !labourCost.task || !labourCost.cost || !labourCost.date) {
+ return res.status(400).json({ success: false, message: 'Please provide all fields' });
+ }
+ if (Number.isNaN(Number(labourCost.cost)) || labourCost.cost <= 0) {
+ return res.status(400).json({ success: false, message: 'Cost Cannot be less than or 0!' });
+ }
- const pipeline = [
- { $match: matchStage },
- { $unwind: '$updateRecord' },
- { $match: { 'updateRecord.date': { $gte: monthStart, $lte: monthEnd } } },
- {
- $group: {
- _id: null,
- totalUsed: { $sum: '$updateRecord.quantityUsed' },
- totalWasted: { $sum: '$updateRecord.quantityWasted' },
- },
- },
- ];
+ const newLabourCost = new Labour(labourCost);
- const result = await buildingMaterial.aggregate(pipeline);
- const totalUsed = result[0]?.totalUsed || 0;
- const totalWasted = result[0]?.totalWasted || 0;
- const lossPerc =
- totalUsed + totalWasted ? ((totalWasted / (totalUsed + totalWasted)) * 100).toFixed(2) : 0;
+ try {
+ await newLabourCost.save();
+ res
+ .status(201)
+ .json({ success: true, data: newLabourCost, message: 'Labor cost entry added successfully' });
+ } catch (error) {
+ console.error('Error in Adding Labour Cost:', error.message);
+ res.status(500).json({ success: false, message: 'Server Error' });
+ }
+};
- return {
- lossPercentage: parseFloat(lossPerc),
- year,
- month: monthNumberToName(month),
- };
+const getLabourCost = async (req, res) => {
+ try {
+ const labourCost = await Labour.find({});
+ res.status(200).json({ success: true, data: labourCost });
+ } catch (error) {
+ console.log('error in fetching labour costs:', error.message);
+ res.status(500).json({ success: false, message: 'Server Error' });
}
+};
- async function computeAndStoreHistoricalLoss(materialId) {
- // Error handling for invalid input
- if (materialId && !mongoose.Types.ObjectId.isValid(materialId)) {
- throw new Error(`Invalid materialId provided: ${materialId}`);
- }
- const matchStage = { __t: 'material_item', updateRecord: { $exists: true, $ne: [] } };
- if (materialId) matchStage.itemType = new mongoose.Types.ObjectId(materialId);
+const getLabourCostByDate = async (req, res) => {
+ const { startDate, endDate } = req.query;
- const minDateAgg = await buildingMaterial.aggregate([
- { $match: matchStage },
- { $unwind: '$updateRecord' },
- {
- $group: {
- _id: null,
- minDate: { $min: '$updateRecord.date' },
- },
+ if (!startDate || !endDate) {
+ res.status(500).json({ success: false, message: 'Both startdate and enddate are required' });
+ }
+ try {
+ const filteredData = await Labour.find({
+ date: {
+ $gte: new Date(startDate),
+ $lte: new Date(endDate),
},
- ]);
-
- const startDate = minDateAgg[0]?.minDate ? new Date(minDateAgg[0].minDate) : null;
- if (!startDate) return;
-
- const now = new Date();
- const startYear = startDate.getUTCFullYear();
- const startMonth = startDate.getUTCMonth() + 1;
- const endYear = now.getUTCFullYear();
- const endMonth = now.getUTCMonth() + 1;
- const currentMonthName = monthNumberToName(endMonth);
-
- const monthList = [];
- for (let y = startYear; y <= endYear; y += 1) {
- const mStart = y === startYear ? startMonth : 1;
- const mEnd = y === endYear ? endMonth : 12;
- for (let m = mStart; m <= mEnd; m += 1) {
- monthList.push({ year: y, month: m });
- }
- }
-
- await Promise.all(
- monthList.map(async ({ year, month }) => {
- const monthName = monthNumberToName(month);
- const existing = await MaterialLoss.findOne({ materialId, year, month: monthName });
- const isCurrentMonth = year === endYear && monthName === currentMonthName;
-
- if (!existing || isCurrentMonth) {
- let lossPercentage = 0;
- const matchDate = getMonthStartEnd(year, month).monthStart;
-
- const hasData = await buildingMaterial.exists({
- itemType: materialId,
- updateRecord: {
- $elemMatch: {
- date: { $gte: matchDate },
- },
- },
- });
-
- if (hasData) {
- const computed = await computeMonthLoss(materialId, year, month);
- lossPercentage = computed.lossPercentage;
- }
-
- const materialDoc = await buildingMaterial
- .findOne({ itemType: materialId })
- .populate('itemType', 'name');
- const materialName = materialDoc?.itemType?.name || 'Unknown Material';
-
- await MaterialLoss.findOneAndUpdate(
- { materialId, year, month: monthName },
- {
- materialId,
- materialName,
- year,
- month: monthName,
- lossPercentage,
- updatedAt: new Date(),
- },
- { upsert: true, new: true },
- );
- }
- }),
- );
+ });
+ res.status(200).json({ success: true, data: filteredData });
+ } catch (error) {
+ console.log('error in fetching labour costs by date:', error.message);
+ res.status(500).json({ success: false, message: 'Server Error' });
}
+};
- const getMaterialLossData = async (req, res) => {
- const { materialId, year, startDate, endDate } = req.query;
- // Error handling for invalid input
- if (materialId && !mongoose.Types.ObjectId.isValid(materialId)) {
- return res.status(400).json({ error: 'Invalid materialId' });
- }
-
- // Date format validation for startDate and endDate
- if ((startDate && !isValidDate(startDate)) || (endDate && !isValidDate(endDate))) {
- return res.status(400).json({ error: 'Invalid date format. Use YYYY-MM-DD.' });
- }
-
- if (materialId) {
- await computeAndStoreHistoricalLoss(materialId);
- } else {
- const materialIds = await buildingMaterial.distinct('itemType', { __t: 'material_item' });
- await Promise.all(materialIds.map((id) => computeAndStoreHistoricalLoss(id.toString())));
- }
-
- const filter = {};
- if (materialId) filter.materialId = materialId;
- // if (year) filter.year = parseInt(year, 10);
- const parsedYear = parseInt(year, 10);
- if (!isNaN(parsedYear)) {
- filter.year = parsedYear;
- }
-
- if (startDate || endDate) {
- const start = startDate ? new Date(startDate) : null;
- const end = endDate ? new Date(endDate) : null;
+const getLabourCostByProject = async (req, res) => {
+ const { projectName } = req.query;
- const startYear = start?.getUTCFullYear();
- const startMonth = start ? start.getUTCMonth() + 1 : null;
- const endYear = end?.getUTCFullYear();
- const endMonth = end ? end.getUTCMonth() + 1 : null;
+ if (!projectName) {
+ res.status(500).json({ success: false, message: 'Project Name not provided' });
+ }
- filter.$and = [];
+ try {
+ const filteredDatabyProject = await Labour.find({
+ project_name: { $regex: projectName, $options: 'i' },
+ });
+ res.status(200).json({ success: true, data: filteredDatabyProject });
+ } catch (error) {
+ console.log('error in fetching data by project name:', error.message);
+ res.status(500).json({ success: false, message: 'Server Error' });
+ }
+};
- if (start) {
- filter.$and.push({
- $or: [
- { year: { $gt: startYear } },
- {
- year: startYear,
- month: {
- $in: [
- 'Jan',
- 'Feb',
- 'Mar',
- 'Apr',
- 'May',
- 'Jun',
- 'Jul',
- 'Aug',
- 'Sep',
- 'Oct',
- 'Nov',
- 'Dec',
- ].slice(startMonth - 1),
- },
- },
- ],
- });
- }
+const getLabourCostByTask = async (req, res) => {
+ const { task } = req.query;
- if (end) {
- filter.$and.push({
- $or: [
- { year: { $lt: endYear } },
- {
- year: endYear,
- month: {
- $in: [
- 'Jan',
- 'Feb',
- 'Mar',
- 'Apr',
- 'May',
- 'Jun',
- 'Jul',
- 'Aug',
- 'Sep',
- 'Oct',
- 'Nov',
- 'Dec',
- ].slice(0, endMonth),
- },
- },
- ],
- });
- }
- }
+ if (!task) {
+ res.status(500).json({ success: false, message: 'Task Name not provided' });
+ }
- const result = await MaterialLoss.find(filter, {
- _id: 0,
- materialId: 1,
- month: 1,
- lossPercentage: 1,
- year: 1,
+ try {
+ const filteredDatabyTask = await Labour.find({
+ task: { $regex: task, $options: 'i' },
});
-
- res.status(200).json({ data: result });
- };
-
- return { getMaterialLossData };
+ res.status(200).json({ success: true, data: filteredDatabyTask });
+ } catch (error) {
+ console.log('error in fetching data by project name:', error.message);
+ res.status(500).json({ success: false, message: 'Server Error' });
+ }
};
+
+module.exports = {
+ createLabourCost,
+ getLabourCost,
+ getLabourCostByDate,
+ getLabourCostByProject,
+ getLabourCostByTask,
+};
\ No newline at end of file
diff --git a/src/controllers/materialSusceptibleController.js b/src/controllers/materialSusceptibleController.js
index 4f2a399dc..449e9d712 100644
--- a/src/controllers/materialSusceptibleController.js
+++ b/src/controllers/materialSusceptibleController.js
@@ -1,3 +1,5 @@
+/* eslint-disable import/no-unresolved */
+/* eslint-disable import/extensions */
const ProjectMaterial = require('../models/projectMaterial');
const createProjectMaterial = async (req, res) => {
@@ -86,4 +88,4 @@ module.exports = {
getProjectMaterial,
getProjectMaterialByDate,
getProjectMaterialByProject,
-};
+};
\ No newline at end of file
diff --git a/src/controllers/mostWastedController.js b/src/controllers/mostWastedController.js
index 68792317f..72d73f4c8 100644
--- a/src/controllers/mostWastedController.js
+++ b/src/controllers/mostWastedController.js
@@ -1,3 +1,5 @@
+/* eslint-disable import/extensions */
+/* eslint-disable import/no-unresolved */
const WastedMaterial = require('../models/mostWastedModel');
// new controller
@@ -90,4 +92,4 @@ module.exports = {
getWastedMaterial,
getWastedMaterialByDate,
getWastedMaterialByProject,
-};
+};
\ No newline at end of file
diff --git a/src/controllers/ownerMessageController.js b/src/controllers/ownerMessageController.js
index 92f478c98..9588ebab5 100644
--- a/src/controllers/ownerMessageController.js
+++ b/src/controllers/ownerMessageController.js
@@ -1,6 +1,44 @@
+/* eslint-disable max-lines-per-function */
+const mongoose = require('mongoose');
const helper = require('../utilities/permissions');
+const OwnerMessageLog = require('../models/ownerMessageLog');
+const UserProfile = require('../models/userProfile');
const ownerMessageController = function (OwnerMessage) {
+ const logOwnerMessageAction = async function (
+ session,
+ actionType,
+ oldMessage,
+ newMessage,
+ isStandard,
+ requestorId,
+ ) {
+ // Fetch requestor profile
+ const requestor = await UserProfile.findById(requestorId);
+ // Log the update action
+ let action = 'Update message';
+ if (actionType === 'UPDATE') {
+ if (isStandard) {
+ action = 'Update standard message';
+ }
+ } else {
+ action = 'Delete message';
+ }
+ await OwnerMessageLog.create(
+ [
+ {
+ oldMessage,
+ newMessage,
+ action,
+ requestorId,
+ requestorEmail: requestor.email,
+ requestorName: `${requestor.firstName} ${requestor.lastName}`,
+ },
+ ],
+ { session },
+ );
+ };
+
const getOwnerMessage = async function (req, res) {
try {
const results = await OwnerMessage.find({});
@@ -22,23 +60,44 @@ const ownerMessageController = function (OwnerMessage) {
res.status(403).send('You are not authorized to create messages!');
}
const { isStandard, newMessage } = req.body;
+ // Use a session to ensure atomicity of operations
+ const session = await mongoose.startSession();
try {
- const results = await OwnerMessage.find({});
+ session.startTransaction();
+ const results = await OwnerMessage.find({}).session(session);
const ownerMessage = results[0];
+ // Save old messages for logging
+ let oldMessage = ownerMessage.message;
if (isStandard) {
+ oldMessage = ownerMessage.standardMessage;
ownerMessage.standardMessage = newMessage;
ownerMessage.message = '';
} else {
ownerMessage.message = newMessage;
}
- await ownerMessage.save();
+ await ownerMessage.save({ session });
+
+ // Log the update action
+ await logOwnerMessageAction(
+ session,
+ 'UPDATE',
+ oldMessage,
+ newMessage,
+ isStandard,
+ req.body.requestor.requestorId,
+ );
+
+ await session.commitTransaction();
const { standardMessage, message } = ownerMessage;
res.status(201).send({
_serverMessage: 'Update successfully!',
ownerMessage: { standardMessage, message },
});
} catch (error) {
+ await session.abortTransaction();
res.status(500).send(error);
+ } finally {
+ session.endSession();
}
};
@@ -46,14 +105,33 @@ const ownerMessageController = function (OwnerMessage) {
if (!(await helper.hasPermission(req.body.requestor, 'editHeaderMessage'))) {
res.status(403).send('You are not authorized to delete messages!');
}
+ // Use a session to ensure atomicity of operations
+ const session = await mongoose.startSession();
try {
- const results = await OwnerMessage.find({});
+ session.startTransaction();
+ const results = await OwnerMessage.find({}).session(session);
const ownerMessage = results[0];
+ const oldMessage = ownerMessage.message;
ownerMessage.message = '';
- await ownerMessage.save();
+ await ownerMessage.save({ session });
+
+ // Log the update action
+ await logOwnerMessageAction(
+ session,
+ 'DELETE',
+ oldMessage,
+ '',
+ false,
+ req.body.requestor.requestorId,
+ );
+ await session.commitTransaction();
+
res.status(200).send({ _serverMessage: 'Delete successfully!', ownerMessage });
} catch (error) {
+ await session.abortTransaction();
res.status(500).send(error);
+ } finally {
+ session.endSession();
}
};
diff --git a/src/controllers/ownerMessageLogController.js b/src/controllers/ownerMessageLogController.js
new file mode 100644
index 000000000..71732f513
--- /dev/null
+++ b/src/controllers/ownerMessageLogController.js
@@ -0,0 +1,28 @@
+const OwnerMessageLog = require('../models/ownerMessageLog');
+
+module.exports = () => ({
+ getOwnerMessageLogs: async (req, res) => {
+ const page = Number(req.query.page) || 1;
+ const limit = Number(req.query.limit) || 10;
+
+ const skip = (page - 1) * limit;
+ try {
+ const ownerMessageLogs = await OwnerMessageLog.find()
+ .sort({ createdAt: -1 })
+ .skip(skip)
+ .limit(limit);
+ const total = await OwnerMessageLog.countDocuments();
+ res.json({
+ data: ownerMessageLogs,
+ pagination: {
+ page,
+ limit,
+ total,
+ totalPages: Math.ceil(total / limit),
+ },
+ });
+ } catch (err) {
+ res.status(500).json({ error: err.message });
+ }
+ },
+});
diff --git a/src/controllers/popupEditorController.spec.js b/src/controllers/popupEditorController.spec.js
index e36934870..00415f6ca 100644
--- a/src/controllers/popupEditorController.spec.js
+++ b/src/controllers/popupEditorController.spec.js
@@ -1,3 +1,4 @@
+/* eslint-disable no-shadow */
const PopUpEditor = require('../models/popupEditor');
const { mockReq, mockRes, assertResMock } = require('../test');
diff --git a/src/controllers/prAnalytics/weeklyGradingController.js b/src/controllers/prAnalytics/weeklyGradingController.js
new file mode 100644
index 000000000..77992f42a
--- /dev/null
+++ b/src/controllers/prAnalytics/weeklyGradingController.js
@@ -0,0 +1,238 @@
+// Helper function to normalize prNumbers for comparison
+const normalizePrNumbers = (prNumbers) => prNumbers.replace(/\s+/g, ' ').trim();
+
+// Helper function to validate prNumbers regex
+const validatePrNumbers = (prNumbers) => {
+ const regex = /^\d+(?:\s*\+\s*\d+)*$/;
+ return regex.test(prNumbers);
+};
+
+// Validate a single gradedPr entry
+const validateGradedPr = (gradedPr) => {
+ if (!gradedPr.prNumbers || !gradedPr.grade) {
+ throw new Error(`Invalid gradedPr entry: missing prNumbers or grade`);
+ }
+
+ if (!validatePrNumbers(gradedPr.prNumbers)) {
+ throw new Error(
+ `Invalid prNumbers format: ${gradedPr.prNumbers}. Must match pattern: ^\\d+(?:\\s*\\+\\s*\\d+)*$`,
+ );
+ }
+
+ const validGrades = ['Unsatisfactory', 'Okay', 'Exceptional', 'No Correct Image'];
+ if (!validGrades.includes(gradedPr.grade)) {
+ throw new Error(
+ `Invalid grade value: ${gradedPr.grade}. Must be one of: ${validGrades.join(', ')}`,
+ );
+ }
+};
+
+// Validate a single grading entry
+const validateGradingEntry = (grading) => {
+ const { reviewer, prsReviewed, prsNeeded, gradedPrs } = grading;
+
+ if (
+ !reviewer ||
+ prsReviewed === undefined ||
+ prsNeeded === undefined ||
+ !Array.isArray(gradedPrs)
+ ) {
+ throw new Error(`Invalid grading entry for reviewer: ${reviewer}`);
+ }
+
+ gradedPrs.forEach(validateGradedPr);
+};
+
+// Merge gradedPrs from request with existing gradedPrs
+const mergeGradedPrs = (existingGradedPrs, newGradedPrs) => {
+ if (!existingGradedPrs || existingGradedPrs.length === 0) {
+ return newGradedPrs;
+ }
+
+ const existingGradedPrsMap = new Map();
+ existingGradedPrs.forEach((pr) => {
+ const normalized = normalizePrNumbers(pr.prNumbers);
+ existingGradedPrsMap.set(normalized, pr);
+ });
+
+ newGradedPrs.forEach((pr) => {
+ const normalized = normalizePrNumbers(pr.prNumbers);
+ existingGradedPrsMap.set(normalized, {
+ prNumbers: pr.prNumbers,
+ grade: pr.grade,
+ });
+ });
+
+ return Array.from(existingGradedPrsMap.values());
+};
+
+// Create version history entry from existing entry
+const createVersionHistoryEntry = (existingEntry) => {
+ if (!existingEntry) return null;
+
+ return {
+ version: existingEntry.version || 1,
+ prsNeeded: existingEntry.prsNeeded,
+ prsReviewed: existingEntry.prsReviewed,
+ gradedPrs: existingEntry.gradedPrs,
+ updatedAt: existingEntry.updatedAt || existingEntry.createdAt,
+ };
+};
+
+// Build update data for saving grading
+const buildUpdateData = (params) => {
+ const {
+ teamCode,
+ gradingDate,
+ reviewer,
+ prsNeeded,
+ prsReviewed,
+ mergedGradedPrs,
+ newVersion,
+ versionHistoryEntry,
+ } = params;
+ const updateData = {
+ teamCode,
+ date: gradingDate,
+ reviewer,
+ prsNeeded,
+ prsReviewed,
+ gradedPrs: mergedGradedPrs,
+ version: newVersion,
+ };
+
+ if (versionHistoryEntry) {
+ updateData.$push = { versionHistory: versionHistoryEntry };
+ }
+
+ return updateData;
+};
+
+// Calculate next version number
+const calculateNextVersion = (existingEntry) => {
+ const currentVersion = existingEntry?.version || 0;
+ return currentVersion + 1;
+};
+
+// Save grading entry with versioning
+const saveGradingEntry = async (weeklyGradingModel, query, updateData) => {
+ await weeklyGradingModel.findOneAndUpdate(query, updateData, {
+ upsert: true,
+ new: true,
+ });
+};
+
+const weeklyGradingController = function (weeklyGradingModel) {
+ // Process and save a single reviewer's grading
+ const processReviewerGrading = async (grading, teamCode, gradingDate) => {
+ const { reviewer, prsReviewed, prsNeeded, gradedPrs } = grading;
+
+ validateGradingEntry(grading);
+
+ const query = { teamCode, date: gradingDate, reviewer };
+ const existingEntry = await weeklyGradingModel.findOne(query);
+
+ const mergedGradedPrs = mergeGradedPrs(existingEntry?.gradedPrs, gradedPrs);
+ const newVersion = calculateNextVersion(existingEntry);
+ const versionHistoryEntry = createVersionHistoryEntry(existingEntry);
+ const updateData = buildUpdateData({
+ teamCode,
+ gradingDate,
+ reviewer,
+ prsNeeded,
+ prsReviewed,
+ mergedGradedPrs,
+ newVersion,
+ versionHistoryEntry,
+ });
+
+ await saveGradingEntry(weeklyGradingModel, query, updateData);
+ };
+
+ const getWeeklyGrading = async (req, res) => {
+ try {
+ const { team, date } = req.query;
+
+ if (!team) {
+ return res.status(400).json({ error: 'Team parameter is required' });
+ }
+
+ const query = { teamCode: team };
+
+ // If date is provided, filter by that date
+ if (date) {
+ const gradingDate = new Date(date);
+ if (Number.isNaN(gradingDate.getTime())) {
+ return res.status(400).json({ error: 'Invalid date format' });
+ }
+ // Set to start of day for comparison
+ const startOfDay = new Date(gradingDate);
+ startOfDay.setHours(0, 0, 0, 0);
+ const endOfDay = new Date(gradingDate);
+ const HOURS_IN_DAY = 23;
+ const MINUTES_IN_HOUR = 59;
+ const SECONDS_IN_MINUTE = 59;
+ const MILLISECONDS_IN_SECOND = 999;
+ endOfDay.setHours(HOURS_IN_DAY, MINUTES_IN_HOUR, SECONDS_IN_MINUTE, MILLISECONDS_IN_SECOND);
+ query.date = { $gte: startOfDay, $lte: endOfDay };
+ }
+
+ const gradingData = await weeklyGradingModel.find(query).lean();
+
+ // Format response - one entry per reviewer
+ const result = gradingData.map((entry) => ({
+ reviewer: entry.reviewer,
+ prsNeeded: entry.prsNeeded,
+ prsReviewed: entry.prsReviewed,
+ gradedPrs: entry.gradedPrs || [],
+ }));
+
+ return res.status(200).json(result);
+ } catch (error) {
+ // eslint-disable-next-line no-console
+ console.error('Error fetching weekly grading:', error);
+ return res.status(500).json({ error: 'Internal server error' });
+ }
+ };
+
+ const saveWeeklyGrading = async (req, res) => {
+ try {
+ const { teamCode, date, gradings } = req.body;
+
+ if (!teamCode || !date || !gradings || !Array.isArray(gradings)) {
+ return res
+ .status(400)
+ .json({ error: 'Missing required fields: teamCode, date, and gradings array' });
+ }
+
+ const gradingDate = new Date(date);
+ if (Number.isNaN(gradingDate.getTime())) {
+ return res.status(400).json({ error: 'Invalid date format' });
+ }
+
+ const updatePromises = gradings.map((grading) =>
+ processReviewerGrading(grading, teamCode, gradingDate),
+ );
+
+ await Promise.all(updatePromises);
+
+ return res.status(200).json({
+ status: 'ok',
+ message: 'Weekly grades saved successfully',
+ });
+ } catch (error) {
+ // eslint-disable-next-line no-console
+ console.error('Error saving weekly grading:', error);
+ return res.status(500).json({
+ error: error.message || 'Internal server error',
+ });
+ }
+ };
+
+ return {
+ getWeeklyGrading,
+ saveWeeklyGrading,
+ };
+};
+
+module.exports = weeklyGradingController;
diff --git a/src/controllers/profileInitialSetupController.js b/src/controllers/profileInitialSetupController.js
index 89c30f8b5..745611a72 100644
--- a/src/controllers/profileInitialSetupController.js
+++ b/src/controllers/profileInitialSetupController.js
@@ -1,3 +1,9 @@
+/* eslint-disable no-unused-vars */
+/* eslint-disable no-shadow */
+/* eslint-disable no-undef */
+/* eslint-disable new-cap */
+/* eslint-disable prefer-const */
+/* eslint-disable camelcase */
const mongoose = require('mongoose');
const { v4: uuidv4 } = require('uuid');
const moment = require('moment-timezone');
@@ -622,49 +628,60 @@ const profileInitialSetupController = function (
* @returns updated result of the setup invitation record.
*/
const refreshSetupInvitation = async (req, res) => {
- const { role } = req.body.requestor;
+ const { role } = req.body.requestor || {};
const { token, baseUrl } = req.body;
- if (role === 'Administrator' || role === 'Owner') {
+ if (role !== 'Administrator' && role !== 'Owner') {
+ return res.status(403).send('You are not authorized to refresh setup invitation.');
+ }
+
+ try {
+ const result = await ProfileInitialSetupToken.findOneAndUpdate(
+ { token },
+ {
+ expiration: moment().add(3, 'week'),
+ isCancelled: false,
+ },
+ { new: true }, // optional but recommended
+ );
+
+ if (!result) {
+ return res.status(404).send('Setup invitation not found.');
+ }
+
+ const { email } = result;
+ const link = `${baseUrl}/ProfileInitialSetup/${result.token}`;
+
+ console.log(email);
+ LOGGER.logInfo(email);
+ console.log(link);
+ LOGGER.logInfo(link);
+
+ let emailResult;
try {
- ProfileInitialSetupToken.findOneAndUpdate(
- { token },
- {
- expiration: moment().add(3, 'week'),
- isCancelled: false,
- },
- )
- .then((result) => {
- const { email } = result;
- console.log(email);
- LOGGER.logInfo(email);
- const link = `${baseUrl}/ProfileInitialSetup/${result.token}`;
- console.log(link);
- LOGGER.logInfo(link);
- sendEmailWithAcknowledgment(
- email,
- 'Invitation Link Refreshed: Complete Your One Community Profile Setup',
- sendRefreshedLinkMessage(link),
- );
- return res.status(200).send(result);
- })
- .catch((err) => {
- LOGGER.logException(err);
- res
- .status(500)
- .send(
- 'Internal Error: Please retry. If the problem persists, please contact the administrator',
- );
- });
- } catch (error) {
- return res
- .status(500)
- .send(
- 'Internal Error: Please retry. If the problem persists, please contact the administrator',
- );
+ emailResult = await sendEmailWithAcknowledgment(
+ email,
+ 'Invitation Link Refreshed: Complete Your One Community Profile Setup',
+ sendRefreshedLinkMessage(link),
+ );
+ LOGGER.logInfo(`Email send result: ${emailResult}`);
+ } catch (err) {
+ LOGGER.logException(err);
+ return res.status(502).send('Invitation refreshed, but email failed to send.');
}
- } else {
- return res.status(403).send('You are not authorized to refresh setup invitation.');
+
+ if (emailResult === 'EMAIL_SENDING_DISABLED') {
+ return res.status(503).send('Invitation refreshed, but email sending is disabled.');
+ }
+
+ return res.status(200).send(result);
+ } catch (err) {
+ LOGGER.logException(err);
+ return res
+ .status(500)
+ .send(
+ 'Internal Error: Please retry. If the problem persists, please contact the administrator',
+ );
}
};
diff --git a/src/controllers/reasonSchedulingController.js b/src/controllers/reasonSchedulingController.js
index f3c3e0902..9b48e01ee 100644
--- a/src/controllers/reasonSchedulingController.js
+++ b/src/controllers/reasonSchedulingController.js
@@ -1,3 +1,5 @@
+/* eslint-disable no-prototype-builtins */
+/* eslint-disable no-unused-vars */
const moment = require('moment-timezone');
const UserModel = require('../models/userProfile');
const ReasonModel = require('../models/reason');
diff --git a/src/controllers/reasonSchedulingController.spec.js b/src/controllers/reasonSchedulingController.spec.js
index 7a260724e..44ced6f7e 100644
--- a/src/controllers/reasonSchedulingController.spec.js
+++ b/src/controllers/reasonSchedulingController.spec.js
@@ -1,3 +1,4 @@
+/* eslint-disable no-shadow */
const moment = require('moment-timezone');
const { mockReq, mockRes, mockUser } = require('../test');
const UserModel = require('../models/userProfile');
diff --git a/src/controllers/rolesController.test.js b/src/controllers/rolesController.test.js
index de63af803..40a07811b 100644
--- a/src/controllers/rolesController.test.js
+++ b/src/controllers/rolesController.test.js
@@ -1,3 +1,4 @@
+/* eslint-disable no-unused-vars */
const RoleModel = require('../models/role');
// const UserProfileModel = require('../models/userProfile');
const {
diff --git a/src/controllers/studentTaskController.js b/src/controllers/studentTaskController.js
index db5707f0a..d23ecc3d7 100644
--- a/src/controllers/studentTaskController.js
+++ b/src/controllers/studentTaskController.js
@@ -1,7 +1,7 @@
const jwt = require('jsonwebtoken');
const mongoose = require('mongoose');
const EducationTask = require('../models/educationTask');
-const { uploadToS3 } = require('../services/s3Service');
+const { uploadFileToAzureBlobStorage } = require('../utilities/AzureBlobImages');
const config = require('../config');
const studentTaskController = function () {
@@ -340,9 +340,8 @@ const studentTaskController = function () {
.json({ message: 'Invalid file type. Only PDF, DOCX, TXT, and images are allowed.' });
}
- const key = `tasks/${taskId}/${studentId}/${file.originalname}-${Date.now()}`;
- await uploadToS3(file, taskId, studentId, key);
- uploadedUrl = `https://${process.env.S3_BUCKET_NAME}.s3.${process.env.AWS_REGION}.amazonaws.com/${key}`;
+ const blobName = `tasks/${taskId}/${studentId}/${file.originalname}-${Date.now()}`;
+ uploadedUrl = await uploadFileToAzureBlobStorage(file, blobName);
} else if (req.body.url) {
if (!isValidURL(req.body.url)) {
return res.status(400).json({ error: 'Please enter a valid url' });
diff --git a/src/controllers/taskController.js b/src/controllers/taskController.js
index 5fd303a01..8fb68792f 100644
--- a/src/controllers/taskController.js
+++ b/src/controllers/taskController.js
@@ -1,3 +1,5 @@
+/* eslint-disable no-restricted-syntax */
+/* eslint-disable radix */
const mongoose = require('mongoose');
const WBS = require('../models/wbs');
const Project = require('../models/project');
@@ -775,7 +777,8 @@ const taskController = function (Task) {
const updateTask = async (req, res) => {
if (
!(await hasPermission(req.body.requestor, 'updateTask')) &&
- !(await hasPermission(req.body.requestor, 'removeUserFromTask'))
+ !(await hasPermission(req.body.requestor, 'removeUserFromTask')) &&
+ !(await hasPermission(req.body.requestor, 'canDeleteTask'))
) {
res.status(403).send({ error: 'You are not authorized to update Task.' });
return;
diff --git a/src/controllers/teamController.spec.js b/src/controllers/teamController.spec.js
index a46fa2ee1..44ffed38e 100644
--- a/src/controllers/teamController.spec.js
+++ b/src/controllers/teamController.spec.js
@@ -1,3 +1,4 @@
+/* eslint-disable no-unused-vars */
const Team = require('../models/team');
const { mockReq: baseMockReq, mockRes, assertResMock } = require('../test');
const helper = require('../utilities/permissions');
diff --git a/src/controllers/timeOffRequestController.js b/src/controllers/timeOffRequestController.js
index dbb7518ad..81c4a360c 100644
--- a/src/controllers/timeOffRequestController.js
+++ b/src/controllers/timeOffRequestController.js
@@ -1,3 +1,4 @@
+/* eslint-disable no-shadow */
/* eslint-disable */
const mongoose = require('mongoose');
const moment = require('moment-timezone');
diff --git a/src/controllers/truthSocialPostController.js b/src/controllers/truthSocialPostController.js
new file mode 100644
index 000000000..9c8c86818
--- /dev/null
+++ b/src/controllers/truthSocialPostController.js
@@ -0,0 +1,211 @@
+const axios = require('axios');
+const TruthSocialScheduledPost = require('../models/truthSocialScheduledPost');
+const TruthSocialPostHistory = require('../models/truthSocialPostHistory');
+
+const TRUTH_SOCIAL_API = 'https://truthsocial.com/api/v1';
+
+// Post to Truth Social (proxied through backend to avoid CORS)
+const createPost = async (req, res) => {
+ try {
+ const { content, visibility, accessToken } = req.body;
+
+ if (!content) {
+ return res.status(400).json({ error: 'Content is required' });
+ }
+
+ if (!accessToken) {
+ return res.status(400).json({ error: 'Access token is required' });
+ }
+
+ console.log('[TruthSocial] Posting via backend proxy...');
+
+ const response = await axios.post(
+ `${TRUTH_SOCIAL_API}/statuses`,
+ {
+ status: content,
+ visibility: visibility || 'public',
+ },
+ {
+ headers: {
+ Authorization: `Bearer ${accessToken}`,
+ 'Content-Type': 'application/json',
+ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
+ },
+ timeout: 15000,
+ }
+ );
+
+ console.log('[TruthSocial] Post successful!');
+ return res.status(200).json(response.data);
+ } catch (err) {
+ console.error('[TruthSocial] Post error:', err.response?.data || err.message);
+
+ if (err.response) {
+ return res.status(err.response.status).json({
+ error: err.response.data?.error || err.response.statusText || 'Failed to post',
+ details: err.response.data,
+ });
+ }
+
+ return res.status(500).json({ error: err.message });
+ }
+};
+
+// Verify token
+const verifyToken = async (req, res) => {
+ try {
+ const { accessToken } = req.body;
+
+ if (!accessToken) {
+ return res.status(400).json({ error: 'Access token is required' });
+ }
+
+ const response = await axios.get(
+ `${TRUTH_SOCIAL_API}/accounts/verify_credentials`,
+ {
+ headers: {
+ Authorization: `Bearer ${accessToken}`,
+ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
+ },
+ timeout: 10000,
+ }
+ );
+
+ return res.status(200).json({
+ success: true,
+ username: response.data.username,
+ displayName: response.data.display_name,
+ });
+ } catch (err) {
+ console.error('[TruthSocial] Verify error:', err.response?.data || err.message);
+ return res.status(401).json({ error: 'Invalid or expired token' });
+ }
+};
+
+// Save to history
+const saveHistory = async (req, res) => {
+ try {
+ const { subject, content, visibility, tags, truthSocialPostId } = req.body;
+
+ const historyEntry = await TruthSocialPostHistory.create({
+ subject,
+ content,
+ visibility,
+ tags,
+ postedAt: new Date(),
+ truthSocialPostId,
+ });
+
+ return res.status(201).json(historyEntry);
+ } catch (err) {
+ console.error('Error saving history:', err.message);
+ return res.status(500).json({ error: err.message });
+ }
+};
+
+// Get post history
+const getPostHistory = async (req, res) => {
+ try {
+ const history = await TruthSocialPostHistory.find()
+ .sort({ postedAt: -1 })
+ .limit(50)
+ .lean();
+ return res.status(200).json(history);
+ } catch (err) {
+ return res.status(500).json({ error: err.message });
+ }
+};
+
+// Schedule a post
+const schedulePost = async (req, res) => {
+ try {
+ const { subject, content, visibility, tags, scheduledTime } = req.body;
+
+ if (!content) {
+ return res.status(400).json({ error: 'Content is required' });
+ }
+
+ if (!scheduledTime) {
+ return res.status(400).json({ error: 'Scheduled time is required' });
+ }
+
+ const scheduledDate = new Date(scheduledTime);
+
+ const newPost = await TruthSocialScheduledPost.create({
+ subject,
+ content,
+ visibility: visibility || 'public',
+ tags,
+ scheduledTime: scheduledDate,
+ status: 'pending',
+ });
+
+ return res.status(201).json({ message: 'Post scheduled!', post: newPost });
+ } catch (err) {
+ console.error('[Schedule] Error:', err.message);
+ return res.status(500).json({ error: err.message });
+ }
+};
+
+// Get all scheduled posts
+const getScheduledPosts = async (req, res) => {
+ try {
+ const posts = await TruthSocialScheduledPost.find({ status: 'pending' })
+ .sort({ scheduledTime: 1 })
+ .lean();
+ return res.status(200).json(posts);
+ } catch (err) {
+ return res.status(500).json({ error: err.message });
+ }
+};
+
+// Delete a scheduled post
+const deleteScheduledPost = async (req, res) => {
+ try {
+ const { id } = req.params;
+ await TruthSocialScheduledPost.findByIdAndDelete(id);
+ return res.status(200).json({ message: 'Deleted' });
+ } catch (err) {
+ return res.status(500).json({ error: err.message });
+ }
+};
+
+// Update a scheduled post
+const updateScheduledPost = async (req, res) => {
+ try {
+ const { id } = req.params;
+ const { subject, content, visibility, tags, scheduledTime } = req.body;
+
+ const updateData = {
+ subject,
+ content,
+ visibility,
+ tags,
+ };
+
+ if (scheduledTime) {
+ updateData.scheduledTime = new Date(scheduledTime);
+ }
+
+ const updatedPost = await TruthSocialScheduledPost.findByIdAndUpdate(
+ id,
+ updateData,
+ { new: true }
+ );
+
+ return res.status(200).json({ message: 'Updated!', post: updatedPost });
+ } catch (err) {
+ return res.status(500).json({ error: err.message });
+ }
+};
+
+module.exports = {
+ createPost,
+ verifyToken,
+ saveHistory,
+ getPostHistory,
+ schedulePost,
+ getScheduledPosts,
+ deleteScheduledPost,
+ updateScheduledPost,
+};
\ No newline at end of file
diff --git a/src/controllers/userProfileController.js b/src/controllers/userProfileController.js
index 206d5e9f7..cb7c72c45 100644
--- a/src/controllers/userProfileController.js
+++ b/src/controllers/userProfileController.js
@@ -1,3 +1,9 @@
+/* eslint-disable no-nested-ternary */
+/* eslint-disable no-restricted-syntax */
+/* eslint-disable no-continue */
+/* eslint-disable no-magic-numbers */
+/* eslint-disable max-lines-per-function */
+/* eslint-disable complexity */
/* eslint-disable no-console */
const moment = require('moment-timezone');
const mongoose = require('mongoose');
@@ -10,6 +16,7 @@ const userHelper = require('../helpers/userHelper')();
const TimeEntry = require('../models/timeentry');
const logger = require('../startup/logger');
const Badge = require('../models/badge');
+// eslint-disable-next-line no-unused-vars
const yearMonthDayDateValidator = require('../utilities/yearMonthDayDateValidator');
const cacheClosure = require('../utilities/nodeCache');
const followUp = require('../models/followUp');
@@ -23,21 +30,23 @@ const objectUtils = require('../utilities/objectUtils');
const config = require('../config');
// eslint-disable-next-line import/order
const { PROTECTED_EMAIL_ACCOUNT } = require('../utilities/constants');
-// const { authorizedUserSara, authorizedUserJae } = process.env;
+
const authorizedUserSara = `nathaliaowner@gmail.com`; // To test this code please include your email here
const authorizedUserJae = `jae@onecommunityglobal.org`;
-// const logUserPermissionChangeByAccount = require('../utilities/logUserPermissionChangeByAccount');
// Import reports controller to access cache invalidation function
const reportsController = require('./reportsController')();
-const { COMPANY_TZ } = require('../constants/company');
// Constants for magic numbers
const SEARCH_RESULT_LIMIT = 10;
const MAX_WEEKS_FOR_CACHE_INVALIDATION = 3;
const MAX_WEEKS_FOR_CACHE_CLEAR = 10;
-const HOURS_TO_ADD_FOR_END_DATE = 7;
-const WEEKS_BEFORE_END_DATE_FOR_EMAIL = 3;
+const { COMPANY_TZ } = require('../constants/company');
+const {
+ InactiveReason,
+ UserStatusOperations,
+ LifecycleStatus,
+} = require('../constants/userProfile');
async function ValidatePassword(req, res) {
const { userId } = req.params;
@@ -164,6 +173,8 @@ const auditIfProtectedAccountUpdated = async ({
}
};
+const PRReviewInsights = require('../models/prAnalytics/prReviewsInsights');
+
// eslint-disable-next-line max-lines-per-function
const createControllerMethods = function (UserProfile, Project, cache) {
const forbidden = function (res, message) {
@@ -498,60 +509,17 @@ const createControllerMethods = function (UserProfile, Project, cache) {
}
};
- // Helper functions for changeUserStatus
- const calculateUserStatusFromEndDate = (endDate, status) => {
- let activeStatus = status;
- let emailThreeWeeksSent = false;
- if (endDate && status) {
- const dateObject = new Date(endDate);
- dateObject.setHours(dateObject.getHours() + HOURS_TO_ADD_FOR_END_DATE);
- const setEndDate = dateObject;
- if (moment().isAfter(moment(setEndDate).add(1, 'days'))) {
- activeStatus = false;
- } else if (
- moment().isBefore(moment(endDate).subtract(WEEKS_BEFORE_END_DATE_FOR_EMAIL, 'weeks'))
- ) {
- emailThreeWeeksSent = true;
- }
- }
- return { activeStatus, emailThreeWeeksSent };
- };
-
- const getEmailRecipientsForStatusChange = async (userId) => {
- const emailReceivers = await UserProfile.find(
- { isActive: true, role: { $in: ['Owner'] } },
- '_id isActive role email',
- );
- const recipients = emailReceivers.map((receiver) => receiver.email);
-
- try {
- const findUser = await UserProfile.findById(userId, 'teams');
- findUser.teams.map(async (teamId) => {
- const managementEmails = await userHelper.getTeamManagementEmail(teamId);
- if (Array.isArray(managementEmails) && managementEmails.length > 0) {
- managementEmails.forEach((management) => {
- recipients.push(management.email);
- });
- }
- });
- } catch (err) {
- logger.logException(err, 'Unexpected error in finding menagement team');
- }
- return recipients;
- };
-
const checkChangeUserStatusAuthorization = async (req, userId) => {
- const canEditProtectedAccount = await canRequestorUpdateUser(
- req.body.requestor.requestorId,
- userId,
- );
+ const { requestor } = req.body;
- if (
- !((await hasPermission(req.body.requestor, 'changeUserStatus')) && canEditProtectedAccount)
- ) {
- if (PROTECTED_EMAIL_ACCOUNT.includes(req.body.requestor.email)) {
+ const canEditProtectedAccount = await canRequestorUpdateUser(requestor.requestorId, userId);
+
+ const hasChangeStatusPermission = await hasPermission(requestor, 'changeUserStatus');
+ const hasFinalDayPermission = await hasPermission(requestor, 'setFinalDay');
+ if (!(hasChangeStatusPermission && hasFinalDayPermission && canEditProtectedAccount)) {
+ if (PROTECTED_EMAIL_ACCOUNT.includes(requestor.email)) {
logger.logInfo(
- `Unauthorized attempt to change protected user status. Requestor: ${req.body.requestor.requestorId} Target: ${userId}`,
+ `Unauthorized attempt to change protected user status. Requestor: ${requestor.requestorId} Target: ${userId}`,
);
}
return { authorized: false };
@@ -581,8 +549,9 @@ const createControllerMethods = function (UserProfile, Project, cache) {
const handleUserStatusSave = async ({
user,
userId,
- isActivating,
- isDeactivating,
+ action,
+ previousLifecycleStatus,
+ lifecycleContext,
recipients,
req,
}) => {
@@ -607,18 +576,51 @@ const createControllerMethods = function (UserProfile, Project, cache) {
// =========================
// LIFECYCLE EMAILS ONLY
// =========================
+ switch (action) {
+ case UserStatusOperations.ACTIVATE:
+ switch (previousLifecycleStatus) {
+ case LifecycleStatus.PAUSE_TO_ACTIVE:
+ userHelper.sendUserResumedEmail({
+ firstName: user.firstName,
+ lastName: user.lastName,
+ email: user.email,
+ recipients,
+ pausedOn: lifecycleContext.pausedOn,
+ });
+ break;
+
+ case LifecycleStatus.SEPARATED_TO_ACTIVE:
+ userHelper.sendUserReactivatedAfterSeparation({
+ firstName: user.firstName,
+ lastName: user.lastName,
+ email: user.email,
+ recipients,
+ previousEndDate: lifecycleContext.previousEndDate,
+ });
+ break;
+
+ case LifecycleStatus.SCHEDULED_SEPARATION_TO_ACTIVE:
+ userHelper.sendUserCancelledSeparationEmail({
+ firstName: user.firstName,
+ lastName: user.lastName,
+ email: user.email,
+ recipients,
+ previousEndDate: lifecycleContext.previousEndDate,
+ });
+ break;
+
+ default:
+ userHelper.sendUserActivatedEmail({
+ firstName: user.firstName,
+ lastName: user.lastName,
+ email: user.email,
+ recipients,
+ });
+ break;
+ }
+ break;
- if (isActivating) {
- userHelper.sendUserActivatedEmail({
- firstName: user.firstName,
- lastName: user.lastName,
- email: user.email,
- recipients,
- });
- }
-
- if (isDeactivating) {
- if (user.inactiveReason === 'Paused') {
+ case UserStatusOperations.PAUSE:
userHelper.sendUserPausedEmail({
firstName: user.firstName,
lastName: user.lastName,
@@ -626,16 +628,30 @@ const createControllerMethods = function (UserProfile, Project, cache) {
reactivationDate: user.reactivationDate,
recipients,
});
- }
+ break;
- if (user.inactiveReason === 'Separated') {
+ case UserStatusOperations.DEACTIVATE:
userHelper.sendUserSeparatedEmail({
firstName: user.firstName,
lastName: user.lastName,
email: user.email,
recipients,
+ endDate: user.endDate,
+ });
+ break;
+
+ case UserStatusOperations.SCHEDULE_DEACTIVATION:
+ userHelper.sendUserScheduledSeparationEmail({
+ firstName: user.firstName,
+ lastName: user.lastName,
+ email: user.email,
+ endDate: user.endDate,
+ recipients,
});
- }
+ break;
+
+ default:
+ throw new Error('Invalid user status action');
}
auditIfProtectedAccountUpdated({
@@ -789,7 +805,10 @@ const createControllerMethods = function (UserProfile, Project, cache) {
startDate: 1,
createdDate: 1,
endDate: 1,
+ lastActivityAt: 1,
+ deactivatedAt: 1,
timeZone: 1,
+ filterColor: 1,
bioPosted: 1,
infringementCount: { $size: { $ifNull: ['$infringements', []] } },
jobTitle: {
@@ -889,7 +908,7 @@ const createControllerMethods = function (UserProfile, Project, cache) {
const userProfiles = await UserProfile.find(
{},
- '_id firstName lastName isActive startDate createdDate endDate jobTitle role email phoneNumber profilePic', // Include profilePic
+ '_id firstName lastName isActive startDate createdDate endDate jobTitle role email phoneNumber profilePic filterColor', // Include profilePic
)
.sort({
lastName: 1,
@@ -1034,7 +1053,7 @@ const createControllerMethods = function (UserProfile, Project, cache) {
_id: up._id,
});
} catch (error) {
- res.status(400).send(error);
+ res.status(501).send(error);
}
};
@@ -1120,19 +1139,40 @@ const createControllerMethods = function (UserProfile, Project, cache) {
};
const putUserProfile = async function (req, res) {
+ console.log('➡️ PUT /userprofile triggered');
+ console.log('UserID:', req.params.userId);
+ console.log('Incoming body keys:', Object.keys(req.body));
+ console.log('🟩 PUT /userProfile called with:', req.params.userId);
+ console.log('🟩 Payload received:', JSON.stringify(req.body, null, 2));
+
const userid = req.params.userId;
- const authResult = await checkPutUserProfileAuthorization(req, userid);
+ const authResult = await checkPutUserProfileAuthorization(req, userid);
if (!authResult.authorized) {
- res.status(403).send(authResult.message);
- return;
+ return res.status(403).send(authResult.message);
}
cache.removeCache(`user-${userid}`);
- UserProfile.findById(userid, async (err, record) => {
- if (err || !record) {
- res.status(404).send('No valid records found');
- return;
+
+ try {
+ const record = await UserProfile.findById(userid);
+ if (!record) {
+ return res.status(404).send('No valid records found');
+ }
+
+ if (!Array.isArray(record.summarySubmissionDates)) {
+ record.summarySubmissionDates = [];
+ } else {
+ record.summarySubmissionDates = record.summarySubmissionDates.filter((d) => {
+ const dateObj = new Date(d);
+ return !Number.isNaN(dateObj.getTime());
+ });
+ }
+
+ if (req.body.filterColor !== undefined) {
+ record.filterColor = req.body.filterColor;
+ record.lastModifiedDate = Date.now();
+ console.log('Setting filterColor:', req.body.filterColor);
}
const updateResult = await handleUserProfileUpdate(
@@ -1142,65 +1182,95 @@ const createControllerMethods = function (UserProfile, Project, cache) {
authResult.canManageAdminLinks,
);
- if (updateResult.error) {
- res.status(updateResult.status).send(updateResult.error);
- return;
+ if (updateResult?.error) {
+ return res.status(updateResult.status).send(updateResult.error);
}
const {
originalRecord,
originalinfringements,
isUserInCache,
- allUserData,
- userData,
- userIdx,
+ allUserData: allUserDataFromUpdate,
updatedDiff,
- } = updateResult;
+ } = updateResult || {};
+
+ const results = await record.save();
+
+ await userHelper.notifyInfringements(
+ originalinfringements || (record.infringements ? record.infringements : []),
+ results.infringements,
+ results.firstName,
+ results.lastName,
+ results.email,
+ results.role,
+ results.startDate,
+ results.jobTitle?.[0],
+ results.weeklycommittedHours,
+ );
- record
- .save()
- .then(async (results) => {
- await userHelper.notifyInfringements(
- originalinfringements,
- results.infringements,
- results.firstName,
- results.lastName,
- results.email,
- results.role,
- results.startDate,
- results.jobTitle[0],
- results.weeklycommittedHours,
- );
- res.status(200).json({
- _id: record._id,
- });
+ console.log('✅ Saved filterColor in DB:', results.filterColor);
+ console.log('Backend: Save successful for user:', userid);
+
+ [
+ 'weeklySummaries_0',
+ 'weeklySummaries_1',
+ 'weeklySummaries_3',
+ 'weeklySummaries_all',
+ 'weeklySummariesReport',
+ `weeklySummaries_user_${userid}`,
+ 'allusers',
+ `user-${userid}`,
+ ].forEach((key) => cache.removeCache(key));
+ cache.clearByPrefix('weeklySummaries');
- if (isUserInCache) {
- allUserData.splice(userIdx, 1, userData);
- cache.setCache('allusers', JSON.stringify(allUserData));
+ if (cache.hasCache('allusers')) {
+ try {
+ const allUsers = JSON.parse(cache.getCache('allusers'));
+ const idx = allUsers.findIndex((u) => u._id === userid);
+ if (idx !== -1) {
+ allUsers[idx].filterColor = results.filterColor;
+ allUsers[idx].projects = results.projects;
+ allUsers[idx].teams = results.teams;
+ cache.setCache('allusers', JSON.stringify(allUsers));
}
+ } catch (e) {
+ console.error('❌ Failed to update allusers cache:', e);
+ }
+ }
- auditIfProtectedAccountUpdated({
- requestorId: req.body.requestor.requestorId,
- updatedRecordEmail: originalRecord.email,
- originalRecord,
- updatedRecord: record,
- updateDiffPaths: updatedDiff,
- actionPerformed: 'update',
- });
- })
- .catch((error) => {
- if (error.name === 'ValidationError' && error.errors.lastName) {
- const errors = Object.values(error.errors).map((er) => er.message);
- return res.status(400).json({
- message: 'Validation Error',
- error: errors,
- });
- }
- console.error('Failed to save record:', error);
- return res.status(400).json({ error: 'Failed to save record.' });
+ if (req.body?.requestor?.requestorId) {
+ auditIfProtectedAccountUpdated({
+ requestorId: req.body.requestor.requestorId,
+ updatedRecordEmail: originalRecord?.email || record.email,
+ originalRecord,
+ updatedRecord: record, // or results
+ updateDiffPaths: updatedDiff,
+ actionPerformed: 'update',
});
- });
+ }
+
+ return res.status(200).json({
+ _id: results._id,
+ filterColor: results.filterColor,
+ projects: results.projects,
+ teams: results.teams,
+ });
+ } catch (error) {
+ console.error('❌ Backend: putUserProfile FAILED:', error);
+
+ if (error?.name === 'ValidationError') {
+ const errors = Object.values(error.errors || {}).map((er) => er.message);
+ return res.status(400).json({
+ message: 'Validation Error during save',
+ error: errors,
+ });
+ }
+
+ return res.status(500).json({
+ message: 'Internal server error during save.',
+ error: error.message || 'Unknown save error',
+ });
+ }
};
const deleteUserProfile = async function (req, res) {
@@ -1387,105 +1457,117 @@ const createControllerMethods = function (UserProfile, Project, cache) {
.catch((error) => res.status(404).send(error));
};
- const updateOneProperty = async function (req, res) {
+ const updateOneProperty = async (req, res) => {
const { userId } = req.params;
- const { key, value } = req.body;
+ const { key, value, requestor } = req.body;
- const canEditProtectedAccount = await canRequestorUpdateUser(
- req.body.requestor.requestorId,
- userId,
- );
+ // remove user from cache so it reloads next time
+ cache.removeCache(`user-${userId}`);
- if (!canEditProtectedAccount) {
- logger.logInfo(
- `Unauthorized attempt to update a protected account. Requestor: ${req.body.requestor.requestorId} Target: ${userId}`,
- );
- res.status(403).send('You are not authorized to update this user');
- return;
+ if (!key || value === undefined) {
+ return res.status(400).send({ error: 'Missing property or value' });
}
- if (key === 'teamCode') {
- const canEditTeamCode =
- req.body.requestor.role === 'Owner' ||
- req.body.requestor.role === 'Administrator' ||
- req.body.requestor.permissions?.frontPermissions.includes('editTeamCode');
+ try {
+ const user = await UserProfile.findById(userId);
+ if (!user) {
+ return res.status(404).json({ error: 'User not found' });
+ }
- if (!canEditTeamCode) {
- res.status(403).send('You are not authorized to edit team code.');
- return;
+ // Keep original record for protected accounts
+ let originalRecord = null;
+ if (PROTECTED_EMAIL_ACCOUNT.includes(user.email)) {
+ originalRecord = objectUtils.deepCopyMongooseObjectWithLodash(user);
}
- }
- // remove user from cache, it should be loaded next time
- cache.removeCache(`user-${userId}`);
- if (!key || value === undefined) {
- return res.status(400).send({ error: 'Missing property or value' });
- }
+ // ✅ Normalize filterColor (YOUR LOGIC – CRITICAL)
+ let payloadValue = value;
+ if (key === 'filterColor') {
+ if (Array.isArray(value)) {
+ payloadValue = value.map((c) => c.trim()).filter(Boolean);
+ } else if (typeof value === 'string') {
+ payloadValue = value
+ .split(',')
+ .map((c) => c.trim())
+ .filter(Boolean);
+ } else {
+ payloadValue = [];
+ }
+ console.log('🛠 filterColor normalized to:', payloadValue);
+ }
- return UserProfile.findById(userId)
- .then((user) => {
- let originalRecord = null;
- if (PROTECTED_EMAIL_ACCOUNT.includes(user.email)) {
- originalRecord = objectUtils.deepCopyMongooseObjectWithLodash(user);
+ user.set({ [key]: payloadValue });
+
+ let updatedDiff = null;
+ if (PROTECTED_EMAIL_ACCOUNT.includes(user.email)) {
+ updatedDiff = user.modifiedPaths();
+ }
+
+ await user.save();
+
+ console.log(`✅ Saved ${key} in DB:`, user[key]);
+
+ // ================================
+ // CACHE INVALIDATION (MERGED)
+ // ================================
+ try {
+ cache.removeCache(`user-${userId}`);
+ cache.removeCache('allusers');
+ cache.removeCache('teamCodes');
+
+ cache.clearByPrefix('weeklySummaries');
+ cache.removeCache('weeklySummaries_all');
+ cache.removeCache('weeklySummaries_null');
+ cache.removeCache('weeklySummaries_undefined');
+ } catch (e) {
+ console.error('Cache clearing error:', e);
+ }
+
+ // Patch allusers cache if present
+ if (cache.hasCache('allusers')) {
+ const allUserData = JSON.parse(cache.getCache('allusers'));
+ const idx = allUserData.findIndex((u) => u._id === userId);
+ if (idx !== -1) {
+ allUserData[idx][key] = user[key];
+ cache.setCache('allusers', JSON.stringify(allUserData));
}
- user.set({
- [key]: value,
- });
- let updatedDiff = null;
- if (PROTECTED_EMAIL_ACCOUNT.includes(user.email)) {
- updatedDiff = user.modifiedPaths();
+ }
+
+ // Special case: bioPosted invalidates weekly summaries
+ if (key === 'bioPosted') {
+ try {
+ for (let week = 0; week <= MAX_WEEKS_FOR_CACHE_INVALIDATION; week += 1) {
+ reportsController.invalidateWeeklySummariesCache(week);
+ }
+ } catch (e) {
+ console.error('Error invalidating weekly summaries after bioPosted:', e);
}
- return user
- .save()
- .then(() => {
- // If bioPosted was updated via this generic property route,
- // update caches and invalidate weekly summaries to avoid stale data.
- if (key === 'bioPosted') {
- try {
- // Update or invalidate the allusers cache
- if (cache.hasCache('allusers')) {
- const allUserData = JSON.parse(cache.getCache('allusers'));
- const userIdx = allUserData.findIndex((u) => u._id === userId);
- if (userIdx !== -1) {
- allUserData[userIdx].bioPosted = value;
- cache.setCache('allusers', JSON.stringify(allUserData));
- } else {
- cache.removeCache('allusers');
- }
- }
+ }
- // Invalidate weekly summaries caches, as bioPosted is part of that response
- for (let week = 0; week <= MAX_WEEKS_FOR_CACHE_INVALIDATION; week += 1) {
- reportsController.invalidateWeeklySummariesCache(week);
- }
- for (let week = 0; week <= MAX_WEEKS_FOR_CACHE_CLEAR; week += 1) {
- cache.removeCache(`weeklySummaries_${week}`);
- }
- cache.removeCache('weeklySummaries_all');
- cache.removeCache('weeklySummaries_null');
- cache.removeCache('weeklySummaries_undefined');
- } catch (e) {
- // non-blocking cache invalidation
- // eslint-disable-next-line no-console
- console.error('Error invalidating caches after bioPosted update:', e);
- }
- }
+ // Respond
+ res.status(200).json({
+ _id: user._id,
+ [key]: user[key],
+ });
- res.status(200).send({ message: 'updated property' });
- auditIfProtectedAccountUpdated({
- requestorId: req.body.requestor.requestorId,
- updatedRecordEmail: originalRecord.email,
- originalRecord,
- updatedRecord: user,
- updateDiffPaths: updatedDiff,
- actionPerformed: 'update',
- });
- })
- .catch((error) => res.status(500).send(error));
- })
- .catch((error) => res.status(500).send(error));
+ // ================================
+ // AUDIT (DEV BRANCH – PRESERVED)
+ // ================================
+ if (originalRecord) {
+ auditIfProtectedAccountUpdated({
+ requestorId: requestor?.requestorId,
+ updatedRecordEmail: originalRecord.email,
+ originalRecord,
+ updatedRecord: user,
+ updateDiffPaths: updatedDiff,
+ actionPerformed: 'update',
+ });
+ }
+ } catch (err) {
+ console.error(`❌ Failed to update property ${key}:`, err);
+ return res.status(500).json({ error: 'Failed to update user property' });
+ }
};
-
const updateAllMembersTeamCode = async (req, res) => {
const canEditTeamCode = await hasPermission(req.body.requestor, 'editTeamCode');
if (!canEditTeamCode) {
@@ -1663,34 +1745,39 @@ const createControllerMethods = function (UserProfile, Project, cache) {
}
};
+ const getPreviousLifecycleStatus = (user) => {
+ if (user.reactivationDate) {
+ return LifecycleStatus.PAUSE_TO_ACTIVE;
+ }
+ if (user.endDate && user.inactiveReason === InactiveReason.SCHEDULED_SEPARATION) {
+ return LifecycleStatus.SCHEDULED_SEPARATION_TO_ACTIVE;
+ }
+ if (!user.isActive) {
+ return LifecycleStatus.SEPARATED_TO_ACTIVE;
+ }
+ return null;
+ };
+
const changeUserStatus = async function (req, res) {
const { userId } = req.params;
- const { reactivationDate } = req.body;
+ const { action, endDate, reactivationDate } = req.body;
try {
- const isActivating = req.body.status === 'Active';
- const isDeactivating = req.body.status === 'Inactive';
-
if (!mongoose.Types.ObjectId.isValid(userId)) {
return res.status(400).send({ error: 'Bad Request' });
}
- // Validate status input early
- if (!isActivating && !isDeactivating) {
- return res.status(400).send({ error: 'Invalid status. Must be "Active" or "Inactive".' });
- }
-
const authResult = await checkChangeUserStatusAuthorization(req, userId);
if (!authResult.authorized) {
return res.status(403).send('You are not authorized to change user status');
}
cache.removeCache(`user-${userId}`);
- const recipients = await getEmailRecipientsForStatusChange(userId);
+ const recipients = await userHelper.getEmailRecipientsForStatusChange(userId);
const user = await UserProfile.findById(
userId,
- 'isActive email firstName lastName teams teamCode endDate isSet finalEmailThreeWeeksSent deactivatedAt reactivationDate inactiveReason',
+ 'isActive email firstName lastName teams teamCode endDate isSet finalEmailThreeWeeksSent reactivationDate inactiveReason',
);
if (!user) {
@@ -1698,56 +1785,74 @@ const createControllerMethods = function (UserProfile, Project, cache) {
}
const wasInactive = !user.isActive;
+ const previousLifecycleStatus = getPreviousLifecycleStatus(user);
+ const lifecycleContext = {
+ pausedOn: user.inactiveReason === InactiveReason.PAUSED ? user.deactivatedAt : null,
+ previousEndDate:
+ user.inactiveReason === InactiveReason.SCHEDULED_SEPARATION ||
+ user.inactiveReason === InactiveReason.SEPARATED
+ ? user.endDate
+ : null,
+ };
- // =========================
- // ACTIVATION
- // =========================
- if (isActivating) {
- user.isActive = true;
- user.deactivatedAt = null;
- user.reactivationDate = null;
- user.inactiveReason = undefined;
-
- // 🔑 required lifecycle reset
- console.log(
- `Activating user ${userId}: resetting endDate, isSet, and finalEmailThreeWeeksSent`,
- );
- user.endDate = null;
- user.isSet = false;
- user.finalEmailThreeWeeksSent = false;
- }
+ switch (action) {
+ case UserStatusOperations.ACTIVATE: {
+ user.isActive = true;
+ user.inactiveReason = undefined;
+ user.deactivatedAt = null;
+ user.reactivationDate = null;
+ user.endDate = null;
+ user.isSet = false;
+ user.finalEmailThreeWeeksSent = false;
+ break;
+ }
- // =========================
- // DEACTIVATION
- // =========================
- if (isDeactivating) {
- user.deactivatedAt = new Date();
-
- // If a reactivationDate is provided, treat this as PAUSE.
- if (reactivationDate) {
- console.log(`Received reactivationDate before parsing ${userId}: ${reactivationDate}`);
- const parsedReactivationDate = moment
- .tz(reactivationDate, COMPANY_TZ)
- .startOf('day')
- .toDate();
- if (Number.isNaN(parsedReactivationDate.getTime())) {
- return res.status(400).send({ error: 'Invalid reactivationDate format' });
+ case UserStatusOperations.DEACTIVATE: {
+ if (!endDate) {
+ return res.status(400).send({ error: 'End date is required for deactivation' });
}
- console.log(`Setting reactivationDate for user ${userId} to ${parsedReactivationDate}`);
-
user.isActive = false;
- user.reactivationDate = parsedReactivationDate;
- user.inactiveReason = 'Paused';
+ user.inactiveReason = InactiveReason.SEPARATED;
+ user.endDate = moment(endDate).tz(COMPANY_TZ).endOf('day').toISOString();
+ user.deactivatedAt = moment().tz(COMPANY_TZ).toISOString();
+ user.reactivationDate = null;
+ user.isSet = true;
+ break;
+ }
- // Safety: paused users must not have a final day
+ case UserStatusOperations.SCHEDULE_DEACTIVATION: {
+ if (!endDate) {
+ return res
+ .status(400)
+ .send({ error: 'End date is required for scheduled deactivation' });
+ }
+ user.isActive = true;
+ user.inactiveReason = InactiveReason.SCHEDULED_SEPARATION;
+ user.endDate = moment(endDate).tz(COMPANY_TZ).endOf('day').toISOString();
+ user.deactivatedAt = null;
+ user.reactivationDate = null;
+ user.isSet = true;
+ break;
+ }
+
+ case UserStatusOperations.PAUSE: {
+ if (!reactivationDate) {
+ return res.status(400).send({ error: 'Reactivation date is required for pause' });
+ }
+ user.isActive = false;
+ user.inactiveReason = InactiveReason.PAUSED;
+ user.deactivatedAt = moment().tz(COMPANY_TZ).toISOString();
+ user.reactivationDate = moment(reactivationDate)
+ .tz(COMPANY_TZ)
+ .startOf('day')
+ .toISOString();
user.endDate = null;
user.isSet = false;
- user.finalEmailThreeWeeksSent = false;
- } else {
- // Otherwise treat as SEPARATION (endDate will be finalized by cron).
- user.reactivationDate = null;
- user.inactiveReason = 'Separated';
+ break;
}
+
+ default:
+ return res.status(400).send({ error: 'Invalid action' });
}
// =========================
@@ -1761,14 +1866,14 @@ const createControllerMethods = function (UserProfile, Project, cache) {
user.teamCodeWarning = true;
}
}
-
await user.save();
await handleUserStatusSave({
user,
userId,
- isActivating,
- isDeactivating,
+ action,
+ previousLifecycleStatus,
+ lifecycleContext,
recipients,
req,
});
@@ -2098,13 +2203,10 @@ const createControllerMethods = function (UserProfile, Project, cache) {
if (!isValidDate) {
return res.status(400).json({ error: 'Invalid date format' });
}
- // const validDate = moment(inputDate).isValid() ? moment(inputDate).toDate() : new Date();
const newInfringement = {
...req.body.blueSquare,
- // date:validDate,
date: inputDate,
- // date: req.body.blueSquare.date || new Date(), // default to now if not provided
// Handle reason - default to 'missingHours' if not provided
reason: [
'missingHours',
@@ -2117,7 +2219,6 @@ const createControllerMethods = function (UserProfile, Project, cache) {
: 'missingHours',
// Maintain backward compatibility
};
- console.log('🟦 New infringement prepared:', JSON.stringify(newInfringement, null, 2));
// find userData in cache
const isUserInCache = cache.hasCache('allusers');
@@ -2135,14 +2236,12 @@ const createControllerMethods = function (UserProfile, Project, cache) {
record.infringements = originalinfringements.concat(newInfringement);
record.infringementCount += 1;
+ console.log('Original infringements:', originalinfringements);
+ console.log('Record infringements:', record.infringements);
+
record
.save()
.then(async (results) => {
- console.log(
- '✅ Infringements saved in DB:',
- JSON.stringify(results.infringements, null, 2),
- );
-
await userHelper.notifyInfringements(
originalinfringements,
results.infringements,
@@ -2324,7 +2423,7 @@ const createControllerMethods = function (UserProfile, Project, cache) {
}
};
- const getAllTeamCodeHelper = async function () {
+ const getAllTeamCodeHelper = async function (includePRTeams = false) {
try {
let distinctTeamCodes = await UserProfile.distinct('teamCode', {
teamCode: { $ne: null },
@@ -2334,6 +2433,30 @@ const createControllerMethods = function (UserProfile, Project, cache) {
.map((code) => (code ? code.trim().toUpperCase() : ''))
.filter((code) => code !== '');
+ if (includePRTeams) {
+ let prInsightsTeamCodes = [];
+ try {
+ prInsightsTeamCodes = await PRReviewInsights.distinct('teamCode', {
+ teamCode: { $ne: null },
+ });
+ prInsightsTeamCodes = prInsightsTeamCodes.filter((code) => code && code.trim() !== '');
+ } catch (error) {
+ console.error('Error fetching PR insights team codes:', error);
+ }
+
+ const allTeamCodes = [...new Set([...distinctTeamCodes, ...prInsightsTeamCodes])];
+ allTeamCodes.sort();
+
+ try {
+ cache.removeCache('teamCodes');
+ cache.setCache('teamCodes', JSON.stringify(allTeamCodes));
+ } catch (error) {
+ console.error('Error caching team codes:', error);
+ }
+
+ return allTeamCodes;
+ }
+
try {
cache.removeCache('teamCodes');
cache.setCache('teamCodes', JSON.stringify(distinctTeamCodes));
@@ -2347,9 +2470,20 @@ const createControllerMethods = function (UserProfile, Project, cache) {
}
};
+ // const getAllTeamCodeHelper = async function () {
+ // let distinctTeamCodes = await UserProfile.distinct("teamCode", {
+ // teamCode: { $ne: null },
+ // });
+ // distinctTeamCodes = distinctTeamCodes.filter((code) => code && code.trim() !== "");
+ // console.log("Team codes found:", distinctTeamCodes);
+ // return distinctTeamCodes;
+ // };
+
const getAllTeamCode = async function (req, res) {
try {
- const distinctTeamCodes = await getAllTeamCodeHelper();
+ // Check if includePRTeams query parameter is set to 'true'
+ const includePRTeams = req.query.includePRTeams === 'true';
+ const distinctTeamCodes = await getAllTeamCodeHelper(includePRTeams);
return res.status(200).send({ message: 'Found', distinctTeamCodes });
} catch (error) {
return res
@@ -2563,72 +2697,35 @@ const createControllerMethods = function (UserProfile, Project, cache) {
const updatedUsersInfo = await Promise.all(
usersToUpdate.map(async (user) => {
- // if (!user || !user._id || !newTeamCode) {
- // console.warn('Skipping invalid user or missing newTeamCode:', user);
- // return null;
- // }
- // user.teamCode = newTeamCode;
- // let { teamCodeWarning } = user;
- let teamCodeWarning = user.teamCodeWarning ?? false;
+ user.teamCode = newTeamCode;
+ let { teamCodeWarning } = user;
if (warningUsers && warningUsers.includes(user._id.toString())) {
teamCodeWarning = await userHelper.checkTeamCodeMismatch(user);
}
- // return {
- // updateOne: {
- // // filter: { _id: user._id },
- // filter: { _id: new mongoose.Types.ObjectId(user._id)},
- // update: {
- // $set: {
- // teamCode: newTeamCode,
- // // teamCodeWarning: teamCodeWarning ?? false,
- // teamCodeWarning,
- // },
- // },
- // },
- // userInfo: {
- // userId: user._id,
- // teamCodeWarning,
- // },
- // };
return {
- userId: user._id,
- teamCodeWarning,
+ updateOne: {
+ filter: { _id: user._id },
+ update: {
+ $set: {
+ teamCode: newTeamCode,
+ teamCodeWarning,
+ },
+ },
+ },
+ userInfo: {
+ userId: user._id,
+ teamCodeWarning,
+ },
};
}),
);
- // Filter out null entries
- // const filteredUpdates = updatedUsersInfo.filter(Boolean);
// Then split into bulkOps and result set
- // const bulkOps = filteredUpdates.map((x) => x.updateOne);
- // const bulkOps = updatedUsersInfo.map((x) => x.updateOne);
+ const bulkOps = updatedUsersInfo.map((x) => x.updateOne);
- // console.log('bulkOps to execute:', JSON.stringify(bulkOps, null, 2));
// 2. Execute all updates at once
- // if (bulkOps.length > 0) {
- // await UserProfile.bulkWrite(bulkOps);
- // } else {
- // console.warn('Invalid bulkOps detected. Aborting write.');
- // }
-
- // ✅ Build the proper bulkWrite payload
- const bulkOps = updatedUsersInfo.map(({ userId, teamCodeWarning }) => ({
- updateOne: {
- filter: { _id: mongoose.Types.ObjectId(userId) }, // IMPORTANT: ObjectId
- update: {
- $set: {
- teamCode: newTeamCode,
- teamCodeWarning,
- },
- },
- },
- }));
-
- // // ✅ Log structure
- // console.log('bulkOps to execute:', JSON.stringify(bulkOps, null, 2));
-
if (bulkOps.length > 0) {
await UserProfile.bulkWrite(bulkOps);
}
@@ -2643,119 +2740,6 @@ const createControllerMethods = function (UserProfile, Project, cache) {
}
};
- const updateFinalDay = async (req, res) => {
- try {
- const { userId } = req.params;
- const { endDate, isSet } = req.body;
- const { requestor } = req.body;
-
- // 1️⃣ Auth check
- if (!requestor) {
- return res.status(401).json({
- success: false,
- message: 'Authentication required',
- });
- }
-
- // 2️⃣ Permission check (ONLY setFinalDay)
- const allowed = await hasPermission(requestor, 'setFinalDay');
- if (!allowed) {
- return res.status(403).json({
- success: false,
- message: 'Access denied. Missing setFinalDay permission.',
- });
- }
-
- // 3️⃣ Validate target user
- if (!mongoose.Types.ObjectId.isValid(userId)) {
- return res.status(400).json({ message: 'Invalid userId' });
- }
-
- const user = await UserProfile.findById(userId);
- if (!user) {
- return res.status(404).json({ message: 'User not found' });
- }
-
- /**
- * =========================
- * REMOVE FINAL DAY
- * =========================
- * Payload:
- * { isSet: "RemoveFinalDay" }
- */
- if (isSet === 'RemoveFinalDay') {
- user.endDate = null;
- user.isSet = false;
-
- await user.save();
-
- return res.status(200).json({
- success: true,
- message: 'Final day removed successfully',
- user: {
- id: user._id,
- endDate: null,
- isSet: false,
- },
- });
- }
-
- /**
- * =========================
- * SET FINAL DAY
- * =========================
- * Payload:
- * {
- * endDate: "2025-12-27T07:59:59.999Z",
- * isSet: "FinalDay"
- * }
- */
- if (!endDate || isSet !== 'FinalDay') {
- return res.status(400).json({
- success: false,
- message: 'Invalid payload for setting final day',
- });
- }
-
- const parsedEndDate = new Date(endDate);
- if (Number.isNaN(parsedEndDate.getTime())) {
- return res.status(400).json({ message: 'Invalid endDate format' });
- }
-
- // 4️⃣ Business rule: final day must be >= start date
- if (user.startDate && parsedEndDate < user.startDate) {
- return res.status(400).json({
- success: false,
- message: 'Final day cannot be before start date',
- startDate: user.startDate,
- });
- }
-
- user.endDate = parsedEndDate; // already UTC-safe
- user.isSet = true;
- user.inactiveReason = 'ManualDeactivation';
-
- await user.save();
-
- return res.status(200).json({
- success: true,
- message: 'Final day set successfully',
- user: {
- id: user._id,
- endDate: user.endDate,
- isSet: true,
- isActive: user.isActive,
- },
- });
- } catch (error) {
- console.error('Error in setFinalDay:', error);
- return res.status(500).json({
- success: false,
- message: 'Server error',
- });
- }
- };
-
return {
searchUsersByName,
postUserProfile,
@@ -2794,7 +2778,6 @@ const createControllerMethods = function (UserProfile, Project, cache) {
updateUserInformation,
getAllMembersSkillsAndContact,
replaceTeamCodeForUsers,
- updateFinalDay,
};
};
diff --git a/src/controllers/userSkillsProfileController.js b/src/controllers/userSkillsProfileController.js
index adcf99108..aa74d9f04 100644
--- a/src/controllers/userSkillsProfileController.js
+++ b/src/controllers/userSkillsProfileController.js
@@ -1,3 +1,4 @@
+
const mongoose = require('mongoose');
const { ValidationError } = require('../utilities/errorHandling/customError');
const { hasPermission } = require('../utilities/permissions');
diff --git a/src/cronjobs/mastodonScheduleJob.js b/src/cronjobs/mastodonScheduleJob.js
new file mode 100644
index 000000000..bd69f6194
--- /dev/null
+++ b/src/cronjobs/mastodonScheduleJob.js
@@ -0,0 +1,88 @@
+const cron = require('node-cron');
+const axios = require('axios');
+const MastodonSchedule = require('../models/mastodonSchedule');
+const { uploadMedia } = require('../controllers/mastodonPostController');
+
+const MASTODON_ENDPOINT = process.env.MASTODON_ENDPOINT || 'https://mastodon.social';
+const ACCESS_TOKEN = process.env.MASTODON_ACCESS_TOKEN;
+
+function getAuthHeaders() {
+ if (!ACCESS_TOKEN) throw new Error('MASTODON_ACCESS_TOKEN not set');
+ return { Authorization: `Bearer ${ACCESS_TOKEN}` };
+}
+
+async function postToMastodon(postData) {
+ const url = `${MASTODON_ENDPOINT}/api/v1/statuses`;
+ const headers = getAuthHeaders();
+
+ // Parse if string
+ const data = typeof postData === 'string' ? JSON.parse(postData) : postData;
+
+ // Create the actual post data for Mastodon
+ const mastodonData = {
+ status: data.status,
+ visibility: data.visibility || 'public',
+ };
+
+ // Handle image upload if present
+ // eslint-disable-next-line camelcase
+ if (data.local_media_base64) {
+ try {
+ console.log('Uploading image from scheduled post...');
+ // eslint-disable-next-line camelcase
+ const altText = data.mediaAltText || null;
+ // eslint-disable-next-line camelcase
+ const mediaId = await uploadMedia(data.local_media_base64, altText);
+ console.log('Image uploaded, media ID:', mediaId);
+ // eslint-disable-next-line camelcase
+ mastodonData.media_ids = [mediaId];
+ } catch (err) {
+ console.error('Image upload failed in cron job:', err.message);
+ // Continue without image
+ }
+ }
+
+ console.log('Posting to Mastodon:', `${mastodonData.status.substring(0, 50)}...`);
+
+ return axios.post(url, mastodonData, { headers, responseType: 'json' });
+}
+
+async function processScheduledPosts() {
+ try {
+ const now = new Date();
+ const scheduled = await MastodonSchedule.find({
+ scheduledTime: { $lte: now },
+ });
+
+ if (scheduled.length > 0) {
+ console.log(`Found ${scheduled.length} scheduled posts to process`);
+ }
+
+ // Use Promise.all with map instead of for-of loop
+ await Promise.all(
+ scheduled.map(async (post) => {
+ try {
+ console.log(`Processing scheduled post ${post._id}`);
+ await postToMastodon(post.postData);
+ await MastodonSchedule.deleteOne({ _id: post._id });
+ console.log(`✅ Posted scheduled Mastodon post: ${post._id}`);
+ } catch (err) {
+ console.error(`❌ Failed to post scheduled Mastodon post ${post._id}:`, err.message);
+ if (err.response?.data) {
+ console.error('Mastodon API error:', err.response.data);
+ }
+ }
+ }),
+ );
+ } catch (err) {
+ console.error('Error processing scheduled Mastodon posts:', err.message);
+ }
+}
+
+// Run every minute
+function startMastodonScheduleJob() {
+ cron.schedule('* * * * *', processScheduledPosts);
+ console.log('✅ Mastodon schedule cron job started (runs every minute)');
+}
+
+module.exports = { startMastodonScheduleJob, processScheduledPosts };
diff --git a/src/cronjobs/userProfileJobs.js b/src/cronjobs/userProfileJobs.js
index 7afb4601c..a10d5efad 100644
--- a/src/cronjobs/userProfileJobs.js
+++ b/src/cronjobs/userProfileJobs.js
@@ -64,7 +64,7 @@ const userProfileJobs = () => {
// '* * * * *', // Comment out for testing. Run Every minute.
'1 0 * * *', // Every day, 1 minute past midnight
async () => {
- await userhelper.reActivateUser();
+ await userhelper.reactivateUser();
await userhelper.finalizeUserEndDates();
},
null,
diff --git a/src/helpers/dashboardhelper.js b/src/helpers/dashboardhelper.js
index db49b050e..fba3abbb0 100644
--- a/src/helpers/dashboardhelper.js
+++ b/src/helpers/dashboardhelper.js
@@ -1,3 +1,4 @@
+/* eslint-disable no-unused-vars */
const moment = require('moment-timezone');
const mongoose = require('mongoose');
const userProfile = require('../models/userProfile');
diff --git a/src/helpers/overviewReportHelper.spec.js b/src/helpers/overviewReportHelper.spec.js
index 3fac33910..3a7a0b589 100644
--- a/src/helpers/overviewReportHelper.spec.js
+++ b/src/helpers/overviewReportHelper.spec.js
@@ -1,3 +1,4 @@
+/* eslint-disable no-unused-vars */
const overviewReportHelper = require('./overviewReportHelper');
// const UserProfile = require('../models/userProfile');
diff --git a/src/helpers/reporthelper.js b/src/helpers/reporthelper.js
index 0de4b1a3d..bed51b07e 100644
--- a/src/helpers/reporthelper.js
+++ b/src/helpers/reporthelper.js
@@ -79,6 +79,19 @@ const reporthelper = function () {
weeklySummaryNotReq: 1,
weeklySummaryOption: 1,
adminLinks: 1,
+ filterColor: {
+ $cond: {
+ if: { $isArray: '$filterColor' },
+ then: '$filterColor',
+ else: {
+ $cond: {
+ if: { $eq: [{ $type: '$filterColor' }, 'string'] },
+ then: ['$filterColor'],
+ else: [],
+ },
+ },
+ },
+ },
bioPosted: 1,
toggleTrophyIcon: 1,
startDate: 1,
diff --git a/src/helpers/userHelper.js b/src/helpers/userHelper.js
index 066fb5f5b..cbc44aa61 100644
--- a/src/helpers/userHelper.js
+++ b/src/helpers/userHelper.js
@@ -11,18 +11,15 @@
/* eslint-disable no-restricted-syntax */
const fs = require('fs');
-const cheerio = require('cheerio');
-const axios = require('axios');
-const sharp = require('sharp');
const mongoose = require('mongoose');
const moment = require('moment-timezone');
const _ = require('lodash');
+const cheerio = require('cheerio');
+const axios = require('axios');
+const sharp = require('sharp');
const userProfile = require('../models/userProfile');
const timeEntries = require('../models/timeentry');
const badge = require('../models/badge');
-const myTeam = require('./helperModels/myTeam');
-const dashboardHelper = require('./dashboardhelper')();
-const reportHelper = require('./reporthelper')();
const emailSender = require('../utilities/emailSender');
const logger = require('../startup/logger');
const token = require('../models/profileInitialSetupToken');
@@ -34,19 +31,11 @@ const { NEW_USER_BLUE_SQUARE_NOTIFICATION_MESSAGE } = require('../constants/mess
const timeUtils = require('../utilities/timeUtils');
const Team = require('../models/team');
const BlueSquareEmailAssignmentModel = require('../models/BlueSquareEmailAssignment');
-const Timer = require('../models/timer');
-const { COMPANY_TZ } = require('../constants/company');
-
-const DEFAULT_CC_EMAILS = ['onecommunityglobal@gmail.com', 'jae@onecommunityglobal.org'];
-const DEFAULT_BCC_EMAILS = ['onecommunityhospitality@gmail.com'];
-const DEFAULT_REPLY_TO = ['jae@onecommunityglobal.org'];
-
-const WEEKS_BEFORE_FINAL_EMAIL = 3;
+const myTeam = require('./helperModels/myTeam');
+const dashboardHelper = require('./dashboardhelper')();
-const delay = (ms) =>
- new Promise((resolve) => {
- setTimeout(() => resolve(), ms);
- });
+// eslint-disable-next-line no-promise-executor-return
+const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
const userHelper = function () {
// Update format to "MMM-DD-YY" from "YYYY-MMM-DD" (Confirmed with Jae)
@@ -66,50 +55,6 @@ const userHelper = function () {
});
};
- async function getCurrentTeamCode(teamId) {
- // Ensure teamId is a valid MongoDB ObjectId
- if (!mongoose.Types.ObjectId.isValid(teamId)) return null;
-
- // Fetch the current team code of the given teamId from active users
- const result = await userProfile.aggregate([
- {
- $match: {
- teams: mongoose.Types.ObjectId(teamId),
- isActive: true,
- },
- },
- { $limit: 1 },
- { $project: { teamCode: 1 } },
- ]);
-
- // Return the teamCode if found
- return result.length > 0 ? result[0].teamCode : null;
- }
-
- async function checkTeamCodeMismatch(user) {
- try {
- // no user or no teams → nothing to compare
- if (!user || !user.teams.length) {
- return false;
- }
-
- // looks like they always checked the first (latest) team
- const latestTeamId = user.teams[0];
-
- // this was in your diff: getCurrentTeamCode(latestTeamId)
- const teamCodeFromFirstActive = await getCurrentTeamCode(latestTeamId);
- if (!teamCodeFromFirstActive) {
- return false;
- }
-
- // mismatch if user's stored teamCode != that team's current code
- return teamCodeFromFirstActive !== user.teamCode;
- } catch (error) {
- logger.logException(error);
- return false;
- }
- }
-
const getTeamMembersForBadge = async function (user) {
try {
const results = await Team.aggregate([
@@ -143,6 +88,7 @@ const userHelper = function () {
]);
return results;
} catch (error) {
+ console.log(error);
return error;
}
};
@@ -296,7 +242,7 @@ const userHelper = function () {
// add administrative content
const text = `Dear ${firstName} ${lastName},
Oops, it looks like something happened and you’ve managed to get a blue square.
-Date Assigned: ${moment(new Date(infringement.date)).format('M-D-YYYY')}
\ +Date Assigned: ${moment(infringement.date).format('M-D-YYYY')}
\Description: ${emailDescription}
${descrInfringement} ${finalParagraph} @@ -378,10 +324,7 @@ const userHelper = function () { emails.push(email); } - // weeklySummaries array will have only one item fetched (if present), - // consequently totalSeconds array will also have only one item in the array (if present) - // hence totalSeconds[0] should be used - const hoursLogged = result.totalSeconds[0] / 3600 || 0; + const hoursLogged = result.totalSeconds[weekIndex] / 3600 || 0; const mediaUrlLink = mediaUrl ? `${mediaUrl}` : 'Not provided!'; const teamCodeStr = teamCode ? `${teamCode}` : 'X-XXX'; @@ -528,17 +471,25 @@ const userHelper = function () { .catch((error) => logger.logException(error)); }; + const sortInfringementsNewestFirst = (arr = []) => + [...arr].sort((a, b) => { + const dateDiff = new Date(b.date || 0) - new Date(a.date || 0); + if (dateDiff !== 0) return dateDiff; + + // Tie breaker → createdDate + return new Date(b.createdDate || 0) - new Date(a.createdDate || 0); + }); + /** * This function is called by a cron job to do 3 things to all active users: * 1 ) Determine whether there's been an infringement for the weekly summary for last week. * 2 ) Determine whether there's been an infringement for the time not met for last week. * 3 ) Call the processWeeklySummariesByUserId(personId) to process the weeklySummaries array. */ - /* eslint-disable no-unused-vars */ - const assignBlueSquareForTimeNotMet = async (emailConfig = {}) => { - const t0 = Date.now(); - console.log('[BlueSquare] start'); + + const assignBlueSquareForTimeNotMet = async () => { try { + console.log('run'); const currentFormattedDate = moment().tz('America/Los_Angeles').format(); moment.tz('America/Los_Angeles').startOf('day').toISOString(); @@ -553,484 +504,433 @@ const userHelper = function () { const pdtEndOfLastWeek = moment().tz('America/Los_Angeles').endOf('week').subtract(1, 'week'); - const users = await userProfile.find( - { isActive: true }, - '_id weeklycommittedHours weeklySummaries missedHours startDate role totalTangibleHrs totalIntangibleHrs', - ); const usersRequiringBlueSqNotification = []; - // this part is supposed to be a for, so it'll be slower when sending emails, so the emails will not be - // targeted as spam - // There's no need to put Promise.all here - - /* - Note from Shengwei (3/11/24) Potential enhancement: - 1. I think we could remove the for loop to update find user profile by batch to reduce db roundtrips. - Otherwise, each record checking and update require at least 1 db roundtrip. Then, we could use for loop to do email sending. - - Do something like: - do while (batch != lastBatch) - const lsOfResult = await userProfile.find({ _id: { $in: arrayOfIds } } - for item in lsOfResult: - // do the update and checking - // save updated records in batch (mongoose updateMany) and do asyc email sending - 2. Wrap the operation in one transaction to ensure the atomicity of the operation. - */ - - // fetch emailBCCs once - same for all users - let emailsBCCs; - const blueSquareBCCs = await BlueSquareEmailAssignment.find().populate('assignedTo').exec(); - if (blueSquareBCCs.length > 0) { - // Keep only assignments with an active assignedTo and map to their email - emailsBCCs = blueSquareBCCs - .filter((assignment) => assignment.assignedTo && assignment.assignedTo.isActive === true) - .map((assignment) => assignment.email); - } else { - emailsBCCs = null; - } - - console.log('Email BCCs for blue square assignment:', emailsBCCs); - const emailQueue = []; - let processedCount = 0; - // Use a cursor to stream users one-by-one to avoid loading large batches into memory - // If targetUserId is provided (testing), use that; otherwise use all active users (production) - const query = emailConfig.targetUserId - ? { _id: emailConfig.targetUserId } - : { isActive: true }; - const projection = '_id weeklycommittedHours weeklySummaries missedHours'; - const cursor = userProfile.find(query, projection).sort({ createdDate: 1 }).cursor(); - - // Process users sequentially. If stronger concurrency is desired, use a limited concurrency queue (p-limit). - // Sequential processing reduces memory pressure and avoids creating hundreds of concurrent promises. - // eslint-disable-next-line no-restricted-syntax - for await (const user of cursor) { - processedCount += 1; - if (processedCount % 50 === 0) { - console.log( - `[BlueSquare] processed ${processedCount} users in ${(Date.now() - t0) / 1000}s`, - ); - } + /** + * Manvitha : + * - Added batch processing for assigning blue squares to users to ensure scalability and prevent MongoDB timeouts. + * - Implemented sequential email queuing after all users are processed, to avoid reducing the risk of emails being marked as spam. + */ + const batchSize = 500; + let skip = 0; + // eslint-disable-next-line no-constant-condition + while (true) { + const users = await userProfile + .find({ isActive: true }, '_id weeklycommittedHours weeklySummaries missedHours') + .skip(skip) + .limit(batchSize); + + if (!users.length) break; + + await Promise.allSettled( + users.map(async (user) => { + try { + const person = await userProfile.findById(user._id); + const personId = mongoose.Types.ObjectId(user._id); - try { - const person = await userProfile.findById(user._id); - const personId = mongoose.Types.ObjectId(user._id); + let hasWeeklySummary = false; - let hasWeeklySummary = false; + if (Array.isArray(user.weeklySummaries) && user.weeklySummaries.length) { + const { summary } = user.weeklySummaries[0]; + if (summary) { + hasWeeklySummary = true; + } + } - if (Array.isArray(user.weeklySummaries) && user.weeklySummaries.length) { - const { summary } = user.weeklySummaries[0]; - if (summary) { - hasWeeklySummary = true; - } - } + await processWeeklySummariesByUserId(personId); - await processWeeklySummariesByUserId(personId); + const results = await dashboardHelper.laborthisweek( + personId, + pdtStartOfLastWeek, + pdtEndOfLastWeek, + ); - const results = await dashboardHelper.laborthisweek( - personId, - pdtStartOfLastWeek, - pdtEndOfLastWeek, - ); + const { timeSpent_hrs: timeSpent } = results[0]; + const weeklycommittedHours = user.weeklycommittedHours + (user.missedHours ?? 0); + const timeNotMet = timeSpent < weeklycommittedHours; + const timeRemaining = weeklycommittedHours - timeSpent; - const timeSpent = - results && results[0] && typeof results[0].timeSpent_hrs === 'number' - ? results[0].timeSpent_hrs - : 0; - const weeklycommittedHours = user.weeklycommittedHours + (user.missedHours ?? 0); - const timeNotMet = timeSpent < weeklycommittedHours; - const timeRemaining = weeklycommittedHours - timeSpent; + let isNewUser = false; + const userStartDate = moment.tz( + new Date(person.startDate).toISOString(), + 'America/Los_Angeles', + ); - let isNewUser = false; - const userStartDate = moment.tz( - new Date(person.startDate).toISOString(), - 'America/Los_Angeles', - ); + if ( + person.totalTangibleHrs === 0 && + person.totalIntangibleHrs === 0 && + timeSpent === 0 && + userStartDate.isAfter(pdtStartOfLastWeek) + ) { + console.log('1'); + isNewUser = true; + } - if ( - person.totalTangibleHrs === 0 && - person.totalIntangibleHrs === 0 && - timeSpent === 0 && - userStartDate.isAfter(pdtStartOfLastWeek) - ) { - isNewUser = true; - } + if ( + userStartDate.isAfter(pdtEndOfLastWeek) || + (userStartDate.isAfter(pdtStartOfLastWeek) && + userStartDate.isBefore(pdtEndOfLastWeek) && + timeUtils.getDayOfWeekStringFromUTC(person.startDate) > 1) + ) { + console.log('2'); + isNewUser = true; + } - if ( - userStartDate.isAfter(pdtEndOfLastWeek) || - (userStartDate.isAfter(pdtStartOfLastWeek) && - userStartDate.isBefore(pdtEndOfLastWeek) && - timeUtils.getDayOfWeekStringFromUTC(person.startDate) > 1) - ) { - isNewUser = true; - } + const updateResult = await userProfile.findByIdAndUpdate( + personId, + { + $inc: { + totalTangibleHrs: timeSpent || 0, + }, + $max: { + personalBestMaxHrs: timeSpent || 0, + }, + $push: { + savedTangibleHrs: { $each: [timeSpent || 0], $slice: -200 }, + }, + $set: { + lastWeekTangibleHrs: timeSpent || 0, + }, + }, + { new: true }, + ); - const updateResult = await userProfile.findByIdAndUpdate( - personId, - { - $inc: { - totalTangibleHrs: timeSpent || 0, - }, - $max: { - personalBestMaxHrs: timeSpent || 0, - }, - $push: { - savedTangibleHrs: { $each: [timeSpent || 0], $slice: -200 }, - }, - $set: { - lastWeekTangibleHrs: timeSpent || 0, - }, - }, - { new: true }, - ); + if ( + updateResult?.weeklySummaryOption === 'Not Required' || + updateResult?.weeklySummaryNotReq + ) { + hasWeeklySummary = true; + } - if ( - updateResult?.weeklySummaryOption === 'Not Required' || - updateResult?.weeklySummaryNotReq - ) { - hasWeeklySummary = true; - } + const cutOffDate = moment().subtract(1, 'year'); + const sortedInfringements = sortInfringementsNewestFirst( + updateResult?.infringements || [], + ); + const oldInfringements = sortedInfringements.filter((inf) => + moment(inf.date).isSameOrAfter(cutOffDate), + ); + let historyInfringements = 'No Previous Infringements.'; + if (oldInfringements.length) { + await userProfile.findByIdAndUpdate( + personId, + { + $push: { + oldInfringements: { $each: oldInfringements, $slice: -10 }, + }, + }, + { new: true }, + ); - const cutOffDate = moment().subtract(1, 'year'); + historyInfringements = oldInfringements + .map((item, index) => { + let enhancedDescription; + if (item.description) { + let sentences = item.description.split('.'); + const dateRegex = + /in the week starting Sunday (\d{4})-(\d{2})-(\d{2}) and ending Saturday (\d{4})-(\d{2})-(\d{2})/g; + sentences = sentences.map((sentence) => + sentence.replace( + dateRegex, + (match, year1, month1, day1, year2, month2, day2) => { + const startDate = moment( + `${year1}-${month1}-${day1}`, + 'YYYY-MM-DD', + ).format('M-D-YYYY'); + const endDate = moment( + `${year2}-${month2}-${day2}`, + 'YYYY-MM-DD', + ).format('M-D-YYYY'); + return `in the week starting Sunday ${startDate} and ending Saturday ${endDate}`; + }, + ), + ); + if ( + sentences[0].includes('System auto-assigned infringement for two reasons') + ) { + sentences[0] = sentences[0].replace( + /(not meeting weekly volunteer time commitment as well as not submitting a weekly summary)/gi, + '$1', + ); + enhancedDescription = sentences.join('.'); + enhancedDescription = enhancedDescription.replace( + /logged (\d+(\.\d+)?\s*hours)/i, + 'logged $1', + ); + } else if ( + sentences[0].includes( + 'System auto-assigned infringement for editing your time entries', + ) + ) { + sentences[0] = sentences[0].replace( + /time entries <(\d+)>\s*times/i, + 'time entries $1 times', + ); + enhancedDescription = sentences.join('.'); + } else if (sentences[0].includes('System auto-assigned infringement')) { + sentences[0] = sentences[0].replace( + /(not submitting a weekly summary)/gi, + '$1', + ); + sentences[0] = sentences[0].replace( + /(not meeting weekly volunteer time commitment)/gi, + '$1', + ); + enhancedDescription = sentences.join('.'); + enhancedDescription = enhancedDescription.replace( + /logged (\d+(\.\d+)?\s*hours)/i, + 'logged $1', + ); + } else { + enhancedDescription = `${item.description}`; + } + } + return `${index + 1}. Date: ${moment( + item.date, + ).format('M-D-YYYY')}, Description: ${enhancedDescription}
`; + }) + .join(''); + } + // No extra hours is needed if blue squares isn't over 5. + // length +1 is because new infringement hasn't been created at this stage. + const coreTeamExtraHour = Math.max(0, oldInfringements.length + 1 - 5); + const utcStartMoment = moment(pdtStartOfLastWeek).add(1, 'second'); + const utcEndMoment = moment(pdtEndOfLastWeek) + .subtract(1, 'day') + .subtract(1, 'second'); + + const requestsForTimeOff = await timeOffRequest.find({ + requestFor: personId, + startingDate: { $lte: utcStartMoment }, + endingDate: { $gte: utcEndMoment }, + }); - const oldInfringements = []; - for (let k = 0; k < updateResult?.infringements.length; k += 1) { - if ( - updateResult?.infringements && - moment(new Date(updateResult.infringements[k].date).toISOString()).diff(cutOffDate) >= - 0 - ) { - oldInfringements.push(updateResult.infringements[k]); - } else { - break; - } - } - let historyInfringements = 'No Previous Infringements.'; - if (oldInfringements.length) { - const merged = [...(person.oldInfringements || []), ...oldInfringements]; - // dedupe by date|description - const seen = new Set(); - const deduped = []; - for (const x of merged) { - const key = `${x.date || ''}|${x.description || ''}`; - if (!seen.has(key)) { - seen.add(key); - deduped.push(x); + const hasTimeOffRequest = requestsForTimeOff.length > 0; + let requestForTimeOff; + let requestForTimeOffStartingDate; + let requestForTimeOffEndingDate; + let requestForTimeOffreason; + let requestForTimeOffEmailBody; + + if (hasTimeOffRequest) { + // eslint-disable-next-line prefer-destructuring + requestForTimeOff = requestsForTimeOff[0]; + requestForTimeOffStartingDate = moment + .tz(requestForTimeOff.startingDate, 'America/Los_Angeles') + .format('dddd M-D-YYYY'); + + requestForTimeOffEndingDate = moment + .tz(requestForTimeOff.endingDate, 'America/Los_Angeles') + .format('dddd M-D-YYYY'); + requestForTimeOffreason = requestForTimeOff.reason; + requestForTimeOffEmailBody = `You had scheduled time off From ${requestForTimeOffStartingDate}, To ${requestForTimeOffEndingDate}, due to: ${requestForTimeOffreason}`; } - } + let description = ''; + + if (timeNotMet || !hasWeeklySummary) { + if (hasTimeOffRequest) { + description = requestForTimeOffreason; + } else if (timeNotMet && !hasWeeklySummary) { + if (person.role === 'Core Team') { + description = `System auto-assigned infringement for two reasons: not meeting weekly volunteer time commitment as well as not submitting a weekly summary. In the week starting ${pdtStartOfLastWeek.format( + 'dddd M-D-YYYY', + )} and ending ${pdtEndOfLastWeek.format( + 'dddd M-D-YYYY', + )}, you logged ${timeSpent.toFixed(2)} hours against a committed effort of ${ + person.weeklycommittedHours + } hours + ${ + person.missedHours ?? 0 + } hours owed for last week + ${coreTeamExtraHour} hours owed for this being your ${moment + .localeData() + .ordinal( + oldInfringements.length + 1, + )} blue square. So you should have completed ${weeklycommittedHours + coreTeamExtraHour} hours and you completed ${timeSpent.toFixed( + 2, + )} hours.`; + } else { + description = `System auto-assigned infringement for two reasons: not meeting weekly volunteer time commitment as well as not submitting a weekly summary. For the hours portion, you logged ${timeSpent.toFixed( + 2, + )} hours against a committed effort of ${weeklycommittedHours} hours in the week starting ${pdtStartOfLastWeek.format( + 'dddd M-D-YYYY', + )} and ending ${pdtEndOfLastWeek.format('dddd M-D-YYYY')}.`; + } + } else if (timeNotMet) { + if (person.role === 'Core Team') { + description = `System auto-assigned infringement for not meeting weekly volunteer time commitment. In the week starting ${pdtStartOfLastWeek.format( + 'dddd M-D-YYYY', + )} and ending ${pdtEndOfLastWeek.format( + 'dddd M-D-YYYY', + )}, you logged ${timeSpent.toFixed(2)} hours against a committed effort of ${ + user.weeklycommittedHours + } hours + ${ + person.missedHours ?? 0 + } hours owed for last week + ${coreTeamExtraHour} hours owed for this being your ${moment + .localeData() + .ordinal( + oldInfringements.length + 1, + )} blue square. So you should have completed ${weeklycommittedHours + coreTeamExtraHour} hours and you completed ${timeSpent.toFixed( + 2, + )} hours.`; + } else { + description = `System auto-assigned infringement for not meeting weekly volunteer time commitment. You logged ${timeSpent.toFixed( + 2, + )} hours against a committed effort of ${weeklycommittedHours} hours in the week starting ${pdtStartOfLastWeek.format( + 'dddd M-D-YYYY', + )} and ending ${pdtEndOfLastWeek.format('dddd M-D-YYYY')}.`; + } + } else { + description = `System auto-assigned infringement for not submitting a weekly summary for the week starting ${pdtStartOfLastWeek.format( + 'dddd M-D-YYYY', + )} and ending ${pdtEndOfLastWeek.format('dddd M-D-YYYY')}.`; + } - await userProfile.findByIdAndUpdate(personId, { - $set: { oldInfringements: deduped.slice(-10) }, - }); - - historyInfringements = oldInfringements - .map((item, index) => { - let enhancedDescription; - if (item.description) { - let sentences = item.description.split('.'); - const dateRegex = - /in the week starting Sunday (\d{4})-(\d{2})-(\d{2}) and ending Saturday (\d{4})-(\d{2})-(\d{2})/g; - sentences = sentences.map((sentence) => - sentence.replace( - dateRegex, - (match, year1, month1, day1, year2, month2, day2) => { - const startDate = moment(`${year1}-${month1}-${day1}`, 'YYYY-MM-DD').format( - 'M-D-YYYY', - ); - const endDate = moment(`${year2}-${month2}-${day2}`, 'YYYY-MM-DD').format( - 'M-D-YYYY', - ); - return `in the week starting Sunday ${startDate} and ending Saturday ${endDate}`; + const infringement = { + date: moment().utc().format('YYYY-MM-DD'), + description, + createdDate: hasTimeOffRequest + ? moment + .tz( + new Date(requestForTimeOff.createdAt).toISOString(), + 'America/Los_Angeles', + ) + .format('YYYY-MM-DD') + : null, + }; + + // Only assign blue square and send email if the user IS NOT a new user + // Otherwise, display notification to users if new user && met the time requirement && weekly summary not submitted + // All other new users will not receive a blue square or notification + let emailBody = ''; + if (!isNewUser) { + const status = await userProfile.findByIdAndUpdate( + personId, + { + $push: { + infringements: infringement, }, - ), + }, + { new: true }, ); - if (sentences[0].includes('System auto-assigned infringement for two reasons')) { - sentences[0] = sentences[0].replace( - /(not meeting weekly volunteer time commitment as well as not submitting a weekly summary)/gi, - '$1', - ); - enhancedDescription = sentences.join('.'); - enhancedDescription = enhancedDescription.replace( - /logged (\d+(\.\d+)?\s*hours)/i, - 'logged $1', - ); - } else if ( - sentences[0].includes( - 'System auto-assigned infringement for editing your time entries', - ) - ) { - sentences[0] = sentences[0].replace( - /time entries <(\d+)>\s*times/i, - 'time entries $1 times', - ); - enhancedDescription = sentences.join('.'); - } else if (sentences[0].includes('System auto-assigned infringement')) { - sentences[0] = sentences[0].replace( - /(not submitting a weekly summary)/gi, - '$1', - ); - sentences[0] = sentences[0].replace( - /(not meeting weekly volunteer time commitment)/gi, - '$1', - ); - enhancedDescription = sentences.join('.'); - enhancedDescription = enhancedDescription.replace( - /logged (\d+(\.\d+)?\s*hours)/i, - 'logged $1', + + const administrativeContent = { + startDate: moment + .tz(new Date(person.startDate).toISOString(), 'America/Los_Angeles') + .utc() + .format('M-D-YYYY'), + role: person.role, + userTitle: person.jobTitle[0], + historyInfringements, + }; + if (person.role === 'Core Team' && timeRemaining > 0) { + emailBody = getInfringementEmailBody( + status.firstName, + status.lastName, + infringement, + status.infringements.length, + timeRemaining, + coreTeamExtraHour, + requestForTimeOffEmailBody, + administrativeContent, + weeklycommittedHours, ); } else { - enhancedDescription = `${item.description}`; + emailBody = getInfringementEmailBody( + status.firstName, + status.lastName, + infringement, + status.infringements.length, + undefined, + null, + requestForTimeOffEmailBody, + administrativeContent, + ); } - } - return `${index + 1}. Date: ${moment( - new Date(item.date), - ).format('M-D-YYYY')}, Description: ${enhancedDescription}
`; - }) - .join(''); - } - // No extra hours is needed if blue squares isn't over 5. - // length +1 is because new infringement hasn't been created at this stage. - const coreTeamExtraHour = Math.max(0, oldInfringements.length + 1 - 5); - const utcStartMoment = moment(pdtStartOfLastWeek).add(1, 'second'); - const utcEndMoment = moment(pdtEndOfLastWeek).subtract(1, 'day').subtract(1, 'second'); - const requestsForTimeOff = await timeOffRequest.find({ - requestFor: personId, - startingDate: { $lte: utcStartMoment }, - endingDate: { $gte: utcEndMoment }, - }); + let emailsBCCs; + /* eslint-disable array-callback-return */ + const blueSquareBCCs = await BlueSquareEmailAssignment.find() + .populate('assignedTo') + .exec(); + if (blueSquareBCCs.length > 0) { + emailsBCCs = blueSquareBCCs.map((assignment) => { + if (assignment.assignedTo.isActive === true) { + return assignment.email; + } + }); + } else { + emailsBCCs = null; + } - const hasTimeOffRequest = requestsForTimeOff.length > 0; - let requestForTimeOff; - let requestForTimeOffStartingDate; - let requestForTimeOffEndingDate; - let requestForTimeOffreason; - let requestForTimeOffEmailBody; - - if (hasTimeOffRequest) { - // eslint-disable-next-line prefer-destructuring - requestForTimeOff = requestsForTimeOff[0]; - requestForTimeOffStartingDate = moment - .tz(requestForTimeOff.startingDate, 'America/Los_Angeles') - .format('dddd M-D-YYYY'); - - requestForTimeOffEndingDate = moment - .tz(requestForTimeOff.endingDate, 'America/Los_Angeles') - .format('dddd M-D-YYYY'); - requestForTimeOffreason = requestForTimeOff.reason; - requestForTimeOffEmailBody = `You had scheduled time off From ${requestForTimeOffStartingDate}, To ${requestForTimeOffEndingDate}, due to: ${requestForTimeOffreason}`; - } - let description = ''; - - if (timeNotMet || !hasWeeklySummary) { - if (hasTimeOffRequest) { - description = requestForTimeOffreason; - } else if (timeNotMet && !hasWeeklySummary) { - if (person.role === 'Core Team') { - description = `System auto-assigned infringement for two reasons: not meeting weekly volunteer time commitment as well as not submitting a weekly summary. In the week starting ${pdtStartOfLastWeek.format( - 'dddd M-D-YYYY', - )} and ending ${pdtEndOfLastWeek.format( - 'dddd M-D-YYYY', - )}, you logged ${timeSpent.toFixed(2)} hours against a committed effort of ${ - person.weeklycommittedHours - } hours + ${ - person.missedHours ?? 0 - } hours owed for last week + ${coreTeamExtraHour} hours owed for this being your ${moment - .localeData() - .ordinal( - oldInfringements.length + 1, - )} blue square. So you should have completed ${weeklycommittedHours + coreTeamExtraHour} hours and you completed ${timeSpent.toFixed( - 2, - )} hours.`; - } else { - description = `System auto-assigned infringement for two reasons: not meeting weekly volunteer time commitment as well as not submitting a weekly summary. For the hours portion, you logged ${timeSpent.toFixed( - 2, - )} hours against a committed effort of ${weeklycommittedHours} hours in the week starting ${pdtStartOfLastWeek.format( - 'dddd M-D-YYYY', - )} and ending ${pdtEndOfLastWeek.format('dddd M-D-YYYY')}.`; - } - } else if (timeNotMet) { - if (person.role === 'Core Team') { - description = `System auto-assigned infringement for not meeting weekly volunteer time commitment. In the week starting ${pdtStartOfLastWeek.format( - 'dddd M-D-YYYY', - )} and ending ${pdtEndOfLastWeek.format( - 'dddd M-D-YYYY', - )}, you logged ${timeSpent.toFixed(2)} hours against a committed effort of ${ - user.weeklycommittedHours - } hours + ${ - person.missedHours ?? 0 - } hours owed for last week + ${coreTeamExtraHour} hours owed for this being your ${moment - .localeData() - .ordinal( - oldInfringements.length + 1, - )} blue square. So you should have completed ${weeklycommittedHours + coreTeamExtraHour} hours and you completed ${timeSpent.toFixed( - 2, - )} hours.`; - } else { - description = `System auto-assigned infringement for not meeting weekly volunteer time commitment. You logged ${timeSpent.toFixed( - 2, - )} hours against a committed effort of ${weeklycommittedHours} hours in the week starting ${pdtStartOfLastWeek.format( - 'dddd M-D-YYYY', - )} and ending ${pdtEndOfLastWeek.format('dddd M-D-YYYY')}.`; - } - } else { - description = `System auto-assigned infringement for not submitting a weekly summary for the week starting ${pdtStartOfLastWeek.format( - 'dddd M-D-YYYY', - )} and ending ${pdtEndOfLastWeek.format('dddd M-D-YYYY')}.`; - } + emailSender( + status.email, + 'New Infringement Assigned', + emailBody, + null, + ['onecommunityglobal@gmail.com', 'jae@onecommunityglobal.org'], + status.email, + [...new Set([...emailsBCCs])], + ); + } else if (isNewUser && !timeNotMet && !hasWeeklySummary) { + usersRequiringBlueSqNotification.push(personId); + } - const infringement = { - // Use LA local date so the stored date matches the scheduler's intended business timezone - date: moment().tz('America/Los_Angeles').startOf('day').format('YYYY-MM-DD'), - description, - createdDate: hasTimeOffRequest - ? moment(requestForTimeOff.createdAt).format('YYYY-MM-DD') - : null, - }; - // Only assign blue square and send email if the user IS NOT a new user - // Otherwise, display notification to users if new user && met the time requirement && weekly summary not submitted - // All other new users will not receive a blue square or notification - let emailBody = ''; - if (!isNewUser) { - const status = await userProfile.findByIdAndUpdate( - personId, - { - $push: { - infringements: infringement, - }, - }, - { new: true }, - ); - const administrativeContent = { - startDate: moment(person.startDate).utc().format('M-D-YYYY'), - role: status.role, - userTitle: status.jobTitle?.[0] ?? 'N/A', - historyInfringements, - }; - if (person.role === 'Core Team' && timeRemaining > 0) { - emailBody = getInfringementEmailBody( - status.firstName, - status.lastName, - infringement, - status.infringements.length, - timeRemaining, - coreTeamExtraHour, - requestForTimeOffEmailBody, - administrativeContent, - weeklycommittedHours, - ); - } else { - emailBody = getInfringementEmailBody( - status.firstName, - status.lastName, - infringement, - status.infringements.length, - undefined, - null, - requestForTimeOffEmailBody, - administrativeContent, + const categories = await dashboardHelper.laborThisWeekByCategory( + personId, + pdtStartOfLastWeek, + pdtEndOfLastWeek, ); - } - let emailsBCCs; - /* eslint-disable array-callback-return */ - const blueSquareBCCs = await BlueSquareEmailAssignment.find() - .populate('assignedTo') - .exec(); - if (blueSquareBCCs.length > 0) { - emailsBCCs = blueSquareBCCs - .filter((assignment) => assignment.assignedTo?.isActive) - .map((assignment) => assignment.email); - } else { - emailsBCCs = DEFAULT_BCC_EMAILS; - } - // Queue the email instead of sending immediately to prevent race conditions - emailQueue.push({ - to: emailConfig.emailOverride || status.email, - subject: `New Infringement Assigned - Week of ${moment(pdtStartOfLastWeek).format('MM/DD/YYYY')}`, - body: emailBody, - attachments: null, - cc: emailConfig.ccOverride || DEFAULT_CC_EMAILS, - replyTo: status.email, - bcc: emailConfig.bccOverride || [...new Set([...emailsBCCs])], - // threading options for blue-square assignment - opts: { - type: 'blue_square_assignment', - recipientUserId: String(personId), - weekStart: moment(pdtStartOfLastWeek).format('YYYY-MM-DD'), - }, - }); - } else if (isNewUser && !timeNotMet && !hasWeeklySummary) { - usersRequiringBlueSqNotification.push(personId); - } - - const categories = await dashboardHelper.laborThisWeekByCategory( - personId, - pdtStartOfLastWeek, - pdtEndOfLastWeek, - ); - - if (!Array.isArray(categories) || categories.length === 0) continue; + if (!Array.isArray(categories) || categories.length === 0) return; - await userProfile.findOneAndUpdate( - { _id: personId, categoryTangibleHrs: { $exists: false } }, - { $set: { categoryTangibleHrs: [] } }, - ); + await userProfile.findOneAndUpdate( + { _id: personId, categoryTangibleHrs: { $exists: false } }, + { $set: { categoryTangibleHrs: [] } }, + ); - for (let j = 0; j < categories.length; j += 1) { - const elem = categories[j]; + for (let j = 0; j < categories.length; j += 1) { + const elem = categories[j]; - if (elem._id == null) { - elem._id = 'Other'; - } + if (elem._id == null) { + elem._id = 'Other'; + } - const updateResult2 = await userProfile.findOneAndUpdate( - { _id: personId, 'categoryTangibleHrs.category': elem._id }, - { $inc: { 'categoryTangibleHrs.$.hrs': elem.timeSpent_hrs } }, - { new: true }, - ); + const updateResult2 = await userProfile.findOneAndUpdate( + { _id: personId, 'categoryTangibleHrs.category': elem._id }, + { $inc: { 'categoryTangibleHrs.$.hrs': elem.timeSpent_hrs } }, + { new: true }, + ); - if (!updateResult2) { - await userProfile.findOneAndUpdate( - { - _id: personId, - 'categoryTangibleHrs.category': { $ne: elem._id }, - }, - { - $addToSet: { - categoryTangibleHrs: { - category: elem._id, - hrs: elem.timeSpent_hrs, + if (!updateResult2) { + await userProfile.findOneAndUpdate( + { + _id: personId, + 'categoryTangibleHrs.category': { $ne: elem._id }, }, - }, - }, - ); + { + $addToSet: { + categoryTangibleHrs: { + category: elem._id, + hrs: elem.timeSpent_hrs, + }, + }, + }, + ); + } + } } + if (cache.hasCache(`user-${personId}`)) { + cache.removeCache(`user-${personId}`); + } + } catch (err) { + logger.logException(err); } - } - if (cache.hasCache(`user-${personId}`)) { - cache.removeCache(`user-${personId}`); - } - } catch (err) { - logger.logException(err); - } - } - emailQueue.sort((a, b) => new Date(a.startDate) - new Date(b.startDate)); - for (const email of emailQueue) { - await emailSender( - email.to, - email.subject, - email.body, - email.attachments, - email.cc, - email.replyTo, - email.bcc, - email.opts, + }), ); + + skip += batchSize; } - // eslint-disable-next-line no-use-before-define + await deleteOldTimeOffRequests(); - // Create notification for users who are new and met the time requirement but weekly summary not submitted - // Since the notification is required a sender, we fetch an owner user as the sender for the system generated notification + if (usersRequiringBlueSqNotification.length > 0) { const senderId = await userProfile.findOne({ role: 'Owner', isActive: true }, '_id'); await notificationService.createNotification( @@ -1045,12 +945,10 @@ const userHelper = function () { logger.logException(err); } - // processWeeklySummaries for nonActive users try { const inactiveUsers = await userProfile.find({ isActive: false }, '_id'); for (let i = 0; i < inactiveUsers.length; i += 1) { const user = inactiveUsers[i]; - await processWeeklySummariesByUserId(mongoose.Types.ObjectId(user._id), false); } } catch (err) { @@ -1831,94 +1729,92 @@ const userHelper = function () { }; const deleteBlueSquareAfterYear = async () => { - const nowLA = moment().tz('America/Los_Angeles'); + const currentFormattedDate = moment().tz('America/Los_Angeles').format(); + + logger.logInfo( + `Job for deleting blue squares older than 1 year starting at ${currentFormattedDate}`, + ); - logger.logInfo(`Job for deleting blue squares older than 1 year starting at ${nowLA.format()}`); + const cutOffDate = moment().subtract(1, 'year').format('YYYY-MM-DD'); - const cutOffDate = nowLA.clone().subtract(1, 'year').format('YYYY-MM-DD'); try { const results = await userProfile.updateMany( {}, { $pull: { infringements: { - date: { $lte: cutOffDate }, + date: { + $lte: cutOffDate, + }, }, }, }, ); - logger.logInfo( - `Job deleting blue squares older than 1 year finished at ${moment() - .tz('America/Los_Angeles') - .format()} \nResult: ${JSON.stringify(results)}`, - ); + logger.logInfo(`Job deleting blue squares older than 1 year finished + at ${moment().tz('America/Los_Angeles').format()} \nReulst: ${JSON.stringify(results)}`); } catch (err) { logger.logException(err); } }; - const reActivateUser = async () => { - const nowPst = moment().tz(COMPANY_TZ); + const reactivateUser = async () => { + const currentFormattedDate = moment().tz('America/Los_Angeles').format(); logger.logInfo( - `Job for activating users based on scheduled re-activation date starting at ${nowPst.format()}`, + `Job for activating users based on scheduled re-activation date starting at ${currentFormattedDate}`, ); try { const users = await userProfile.find( - { - isActive: false, - reactivationDate: { $exists: true, $ne: null }, - }, - '_id isActive reactivationDate deactivatedAt email firstName lastName', + { isActive: false, reactivationDate: { $exists: true } }, + '_id isActive reactivationDate', ); + for (let i = 0; i < users.length; i += 1) { + const user = users[i]; + const canActivate = moment().isSameOrAfter(moment(user.reactivationDate)); + if (canActivate) { + // Use '!' to invert the boolean value for testing + await userProfile.findByIdAndUpdate( + user._id, + { + $set: { + isActive: true, + }, + $unset: { + endDate: user.endDate, + }, + }, + { new: true }, + ); + logger.logInfo( + `User with id: ${user._id} was re-acticated at ${moment() + .tz('America/Los_Angeles') + .format()}.`, + ); + const id = user._id; + const person = await userProfile.findById(id); - for (const user of users) { - const canActivate = moment(nowPst).isAfter(moment(user.reactivationDate).tz(COMPANY_TZ)); + const endDate = moment(person.endDate).format('YYYY-MM-DD'); + logger.logInfo(`User with id: ${user._id} was re-acticated at ${moment().format()}.`); - if (!canActivate) continue; + const subject = `IMPORTANT:${person.firstName} ${person.lastName} has been RE-activated in the Highest Good Network`; - await userProfile.findByIdAndUpdate( - user._id, - { - $set: { - isActive: true, - reactivationDate: null, - endDate: null, - isSet: false, - finalEmailThreeWeeksSent: false, - }, - $unset: { - deactivatedAt: '', - inactiveReason: '', - }, - }, - { new: true }, - ); + const emailBody = `Hi Admin!
- logger.logInfo(`User with id: ${user._id} was re-activated at ${nowPst.format()}.`); +This email is to let you know that ${person.firstName} ${person.lastName} has been made active again in the Highest Good Network application after being paused on ${endDate}.
- const pausedOn = user.deactivatedAt - ? moment(user.deactivatedAt).tz('America/Los_Angeles').format('YYYY-MM-DD') - : 'an earlier date'; +If you need to communicate anything with them, this is their email from the system: ${person.email}.
- const subject = `IMPORTANT: ${user.firstName} ${user.lastName} has been re-activated in the Highest Good Network`; +Thanks!
- const emailBody = ` -Hi Admin,
-- ${user.firstName} ${user.lastName} has been re-activated in the Highest Good Network - after being paused on ${pausedOn}. -
-Email: ${user.email}
-Thanks,
The HGN System
The HGN A.I. (and One Community)
`; - emailSender('onecommunityglobal@gmail.com', subject, emailBody, null, null, user.email); + emailSender('onecommunityglobal@gmail.com', subject, emailBody, null, null, person.email); + } } } catch (err) { - logger.logException(err, 'Unexpected error in reActivateUser'); + logger.logException(err); } }; @@ -1931,8 +1827,6 @@ const userHelper = function () { role, startDate, jobTitle, - weeklycommittedHours, - infringementCCList, ) => { if (!current) return; const newOriginal = original.toObject(); @@ -1940,11 +1834,9 @@ const userHelper = function () { const totalInfringements = newCurrent.length; let newInfringements = []; let historyInfringements = 'No Previous Infringements.'; - console.log('ORIGINAL', original); if (original.length) { - const sortedForHistory = [...original].sort((a, b) => new Date(b.date) - new Date(a.date)); - - historyInfringements = sortedForHistory + const sortedOriginal = sortInfringementsNewestFirst(original); + historyInfringements = sortedOriginal .map((item, index) => { let enhancedDescription; if (item.description) { @@ -2000,7 +1892,7 @@ const userHelper = function () { enhancedDescription = `${item.description}`; } } - return `${index + 1}. Date: ${moment(new Date(item.date)).format('M-D-YYYY')}, Description: ${enhancedDescription}
`; + return `${index + 1}. Date: ${moment(item.date).format('M-D-YYYY')}, Description: ${enhancedDescription}
`; }) .join(''); } @@ -2016,11 +1908,7 @@ const userHelper = function () { const assignments = await BlueSquareEmailAssignment.find().populate('assignedTo').exec(); const bccEmails = assignments.map((a) => a.email); - - const combinedCCList = [...new Set([...(infringementCCList || []), ...DEFAULT_CC_EMAILS])]; - const combinedBCCList = [...new Set([...(bccEmails || []), ...DEFAULT_BCC_EMAILS])]; - - newInfringements.forEach((element) => { + newInfringements.forEach(async (element) => { emailSender( emailAddress, 'New Infringement Assigned', @@ -2035,10 +1923,15 @@ const userHelper = function () { administrativeContent, ), null, - combinedCCList, + ['onecommunityglobal@gmail.com', 'jae@onecommunityglobal.org'], emailAddress, - combinedBCCList, - { type: 'blue_square_assignment' }, + // Don't change this is to CC! + [...new Set([...bccEmails])], + null, + ['onecommunityglobal@gmail.com', 'jae@onecommunityglobal.org'], + emailAddress, + // Don't change this is to CC! + [...new Set([...bccEmails])], ); }); }; @@ -2072,7 +1965,7 @@ const userHelper = function () { }, (err) => { if (err) { - // Error handled silently + console.log(err); } }, ); @@ -2239,113 +2132,20 @@ const userHelper = function () { }; // 'No Infringement Streak', - // const checkNoInfringementStreak = async function (personId, user, badgeCollection) { - // let badgeOfType; - // for (let i = 0; i < badgeCollection.length; i += 1) { - // if (badgeCollection[i].badge?.type === 'No Infringement Streak') { - // if (badgeOfType && badgeOfType.months <= badgeCollection[i].badge.months) { - // removeDupBadge(personId, badgeOfType._id); - // badgeOfType = badgeCollection[i].badge; - // } else if (badgeOfType && badgeOfType.months > badgeCollection[i].badge.months) { - // removeDupBadge(personId, badgeCollection[i].badge._id); - // } else if (!badgeOfType) { - // badgeOfType = badgeCollection[i].badge; - // } - // } - // } - // await badge - // .find({ type: 'No Infringement Streak' }) - // .sort({ months: -1 }) - // .then((results) => { - // if (!Array.isArray(results) || !results.length) { - // return; - // } - - // results.every((elem) => { - // // Cannot account for time paused yet - - // if (elem.months <= 12) { - // if (moment().diff(moment(user.createdDate), 'months', true) >= elem.months) { - // if ( - // user.infringements.length === 0 || - // Math.abs( - // moment().diff( - // moment( - // // eslint-disable-next-line no-unsafe-optional-chaining - // user.infringements[user.infringements?.length - 1].date, - // ), - // 'months', - // true, - // ), - // ) >= elem.months - // ) { - // if (badgeOfType) { - // if (badgeOfType._id.toString() !== elem._id.toString()) { - // replaceBadge( - // personId, - // mongoose.Types.ObjectId(badgeOfType._id), - // mongoose.Types.ObjectId(elem._id), - // ); - // } - // return false; - // } - // addBadge(personId, mongoose.Types.ObjectId(elem._id)); - // return false; - // } - // } - // } else if (user?.infringements?.length === 0) { - // if (moment().diff(moment(user.createdDate), 'months', true) >= elem.months) { - // if ( - // user.oldInfringements.length === 0 || - // Math.abs( - // moment().diff( - // moment( - // // eslint-disable-next-line no-unsafe-optional-chaining - // user.oldInfringements[user.oldInfringements?.length - 1].date, - // ), - // 'months', - // true, - // ), - // ) >= - // elem.months - 12 - // ) { - // if (badgeOfType) { - // if (badgeOfType._id.toString() !== elem._id.toString()) { - // replaceBadge( - // personId, - // mongoose.Types.ObjectId(badgeOfType._id), - // mongoose.Types.ObjectId(elem._id), - // ); - // } - // return false; - // } - // addBadge(personId, mongoose.Types.ObjectId(elem._id)); - // return false; - // } - // } - // } - // return true; - // }); - // }); - // }; - const checkNoInfringementStreak = async function (personId, user, badgeCollection) { let badgeOfType; - for (let i = 0; i < badgeCollection.length; i += 1) { - const badgeItem = badgeCollection[i].badge; - if (badgeItem?.type === 'No Infringement Streak') { - if (badgeOfType && badgeOfType.months <= badgeItem.months) { + if (badgeCollection[i].badge?.type === 'No Infringement Streak') { + if (badgeOfType && badgeOfType.months <= badgeCollection[i].badge.months) { removeDupBadge(personId, badgeOfType._id); - badgeOfType = badgeItem; - } else if (badgeOfType && badgeOfType.months > badgeItem.months) { - removeDupBadge(personId, badgeItem._id); + badgeOfType = badgeCollection[i].badge; + } else if (badgeOfType && badgeOfType.months > badgeCollection[i].badge.months) { + removeDupBadge(personId, badgeCollection[i].badge._id); } else if (!badgeOfType) { - badgeOfType = badgeItem; + badgeOfType = badgeCollection[i].badge; } } } - await badge .find({ type: 'No Infringement Streak' }) .sort({ months: -1 }) @@ -2355,67 +2155,68 @@ const userHelper = function () { } results.every((elem) => { + // Cannot account for time paused yet + if (elem.months <= 12) { - const monthsSinceJoined = moment().diff(moment(user.createdDate), 'months', true); - const monthsSinceLastInfringement = user.infringements.length - ? Math.abs( + if (moment().diff(moment(user.createdDate), 'months', true) >= elem.months) { + if ( + user.infringements.length === 0 || + Math.abs( moment().diff( - moment(user.infringements[user.infringements.length - 1].date), + moment( + // eslint-disable-next-line no-unsafe-optional-chaining + user.infringements[user.infringements?.length - 1].date, + ), 'months', true, ), - ) - : null; - - if ( - monthsSinceJoined >= elem.months && - (user.infringements.length === 0 || monthsSinceLastInfringement >= elem.months) - ) { - if (badgeOfType) { - if (badgeOfType._id.toString() !== elem._id.toString()) { - replaceBadge( - personId, - mongoose.Types.ObjectId(badgeOfType._id), - mongoose.Types.ObjectId(elem._id), - ); + ) >= elem.months + ) { + if (badgeOfType) { + if (badgeOfType._id.toString() !== elem._id.toString()) { + replaceBadge( + personId, + mongoose.Types.ObjectId(badgeOfType._id), + mongoose.Types.ObjectId(elem._id), + ); + } + return false; } + addBadge(personId, mongoose.Types.ObjectId(elem._id)); return false; } - addBadge(personId, mongoose.Types.ObjectId(elem._id)); - return false; } } else if (user?.infringements?.length === 0) { - const monthsSinceJoined = moment().diff(moment(user.createdDate), 'months', true); - const monthsSinceLastOldInfringement = user.oldInfringements.length - ? Math.abs( + if (moment().diff(moment(user.createdDate), 'months', true) >= elem.months) { + if ( + user.oldInfringements.length === 0 || + Math.abs( moment().diff( - moment(user.oldInfringements[user.oldInfringements.length - 1].date), + moment( + // eslint-disable-next-line no-unsafe-optional-chaining + user.oldInfringements[user.oldInfringements?.length - 1].date, + ), 'months', true, ), - ) - : null; - - if ( - monthsSinceJoined >= elem.months && - (user.oldInfringements.length === 0 || - monthsSinceLastOldInfringement >= elem.months - 12) - ) { - if (badgeOfType) { - if (badgeOfType._id.toString() !== elem._id.toString()) { - replaceBadge( - personId, - mongoose.Types.ObjectId(badgeOfType._id), - mongoose.Types.ObjectId(elem._id), - ); + ) >= + elem.months - 12 + ) { + if (badgeOfType) { + if (badgeOfType._id.toString() !== elem._id.toString()) { + replaceBadge( + personId, + mongoose.Types.ObjectId(badgeOfType._id), + mongoose.Types.ObjectId(elem._id), + ); + } + return false; } + addBadge(personId, mongoose.Types.ObjectId(elem._id)); return false; } - addBadge(personId, mongoose.Types.ObjectId(elem._id)); - return false; } } - return true; }); }); @@ -2431,7 +2232,7 @@ const userHelper = function () { const availableBadges = await badge .find({ type: 'Minimum Hours Multiple' }) - .sort({ multiple: -1 }); + .sort({ multiple: -1 }); // Higher multiples come first if (!availableBadges.length) { return; @@ -2442,28 +2243,27 @@ const userHelper = function () { continue; } - const existingBadges = badgesOfType.filter((badge) => - availableBadges.some((ab) => ab._id.toString() === badge._id.toString()), + const alreadyHasBadge = badgesOfType.find( + (b) => b._id.toString() === candidateBadge._id.toString(), ); - const highestExisting = existingBadges.sort((a, b) => b.multiple - a.multiple)[0]; - - const isSameAsHighest = - highestExisting && candidateBadge._id.toString() === highestExisting._id.toString(); - - if (isSameAsHighest) { + if (alreadyHasBadge) { return increaseBadgeCount(personId, mongoose.Types.ObjectId(candidateBadge._id)); } - if (highestExisting) { - const existingBadgeEntry = badgeCollection.find( - (entry) => entry.badge._id.toString() === highestExisting._id.toString(), + // Find lowest badge lower than candidate + const lowerBadges = badgesOfType.filter((b) => b.multiple < candidateBadge.multiple); + const lowestLowerBadge = lowerBadges.sort((a, b) => a.multiple - b.multiple)[0]; + + if (lowestLowerBadge) { + const entry = badgeCollection.find( + (entry) => entry.badge._id.toString() === lowestLowerBadge._id.toString(), ); - if (existingBadgeEntry?.count > 1) { - await decreaseBadgeCount(personId, mongoose.Types.ObjectId(highestExisting._id)); + if (entry?.count > 1) { + await decreaseBadgeCount(personId, mongoose.Types.ObjectId(lowestLowerBadge._id)); } else { - await removeDupBadge(personId, mongoose.Types.ObjectId(highestExisting._id)); + await removeDupBadge(personId, mongoose.Types.ObjectId(lowestLowerBadge._id)); } return addBadge(personId, mongoose.Types.ObjectId(candidateBadge._id)); @@ -2505,9 +2305,18 @@ const userHelper = function () { return Math.max(...weeksdata); }; + function mergeHours(array1, array2) { + const tempHours = [...array1, ...array2]; + return tempHours; + } + const updatePersonalMax = async (personId, user) => { + // try { - const MaxHrs = await getMaxHrs(personId, user); + const weeksData = await getAllWeeksData(personId, user); + const savedHours = user.savedTangibleHrs; + const result = mergeHours(savedHours, weeksData); + const MaxHrs = Math.max(...result); user.personalBestMaxHrs = MaxHrs; await user.save(); } catch (error) { @@ -2519,38 +2328,59 @@ const userHelper = function () { const checkPersonalMax = async function (personId, user, badgeCollection) { let badgeOfType; const duplicateBadges = []; + const currentDate = moment().tz('America/Los_Angeles').format('MMM-DD-YY'); + + const masterBadges = await badge.find({ type: 'Personal Max' }); + console.log(`[DEBUG] Found master badges: `); + // Check for existing badge in badgeCollection for (let i = 0; i < badgeCollection.length; i += 1) { - if (badgeCollection[i].badge?.type === 'Personal Max') { + const b = badgeCollection[i]; + if (b.badge?.type === 'Personal Max') { + console.log(`[DEBUG] Found Personal Max badge at index $`); if (!badgeOfType) { - badgeOfType = badgeCollection[i]; + badgeOfType = b; } else { - duplicateBadges.push(badgeCollection[i]); + duplicateBadges.push(b); + console.log(`[DEBUG] Found duplicate Personal Max badge:)}`); } - } - // eslint-disable-next-line no-restricted-syntax - for (const b of duplicateBadges) { - await removeDupBadge(personId, b._id); + break; } } - await badge.findOne({ type: 'Personal Max' }).then((results) => { - const currentDate = moment(moment().format('MM-DD-YYYY'), 'MM-DD-YYYY') - .tz('America/Los_Angeles') - .format('MMM-DD-YY'); - if ( - user.lastWeekTangibleHrs && - user.lastWeekTangibleHrs >= user.personalBestMaxHrs && - !badgeOfType.earnedDate.includes(currentDate) - ) { - if (badgeOfType) { - increaseBadgeCount(personId, mongoose.Types.ObjectId(badgeOfType.badge._id)); - // Update the earnedDate array with the new date - badgeOfType.earnedDate.unshift(moment().format('MMM-DD-YYYY')); - } else { - addBadge(personId, mongoose.Types.ObjectId(results._id), user.personalBestMaxHrs); - } + + // Remove duplicate badges + for (const b of duplicateBadges) { + // console.log(`[DEBUG] Removing duplicate badge with ID: ${b._id}`); + await removeDupBadge(personId, b._id); + } + + // Add new badge if missing + if (!badgeOfType && masterBadges.length > 0) { + const newBadgeId = masterBadges[0]._id; + console.log(`[DEBUG] No existing badge found. Adding new badge ID: ${newBadgeId}`); + await addBadge(personId, newBadgeId); + } + + const lastWeek = user.lastWeekTangibleHrs; + const savedHrs = user.savedTangibleHrs || []; + const lastSaved = savedHrs[savedHrs.length - 1]; + const personalBest = user.personalBestMaxHrs; + + if ( + lastWeek && + lastSaved > lastWeek && + lastWeek >= personalBest && + !badgeOfType?.earnedDate?.includes(currentDate) + ) { + console.log(`[DEBUG] Conditions met to increase badge count`); + if (badgeOfType) { + await increaseBadgeCount(personId, mongoose.Types.ObjectId(badgeOfType.badge._id)); } - }); + } + + console.log(`[DEBUG] Updating personal max...`); + await updatePersonalMax(personId, user); + console.log(`[DEBUG] checkPersonalMax complete for personId: ${personId}`); }; // 'Most Hrs in Week' @@ -2641,6 +2471,7 @@ const userHelper = function () { const checkXHrsForXWeeks = async (personId, user, badgeCollection) => { try { if (user.savedTangibleHrs.length === 0) { + console.log('No tangible hours available.'); return; } @@ -2657,6 +2488,7 @@ const userHelper = function () { } if (streak === 0) { + console.log('No valid streak found.'); return; } @@ -2714,6 +2546,8 @@ const userHelper = function () { // Check if the badge is eligible for downgrade or replacement if (lastBadge.badge.weeks < streak && lastBadge.count > 1) { await decreaseBadgeCount(personId, lastBadge.badge._id); + + console.log(`Adding new badge: ${newBadge.badgeName}`); await addBadge(personId, newBadge._id); return; } @@ -2741,102 +2575,74 @@ const userHelper = function () { } }; - // const checkLeadTeamOfXplus = async function (personId, user, badgeCollection) { - // const leaderRoles = ['Mentor', 'Manager', 'Administrator', 'Owner', 'Core Team']; - // const approvedRoles = ['Mentor', 'Manager','Administrator']; - - // console.log('Checking role for user:', user.role); - // if (!approvedRoles.includes(user.role)) { - // console.log('User role not approved for badge check. Exiting.'); - // return; - // } - - // let teamMembers; - // // await getTeamMembers({ _id: personId }).then((results) => { - // // if (results) { - // // teamMembers = results.myteam; - // // console.log('Fetched team members:', teamMembers.length); - // // } else { - // // teamMembers = []; - // // console.log('No team members found.'); - // // } - // // }); - - // const objIds = {}; - // teamMembers = teamMembers.filter((member) => { - // if (leaderRoles.includes(member.role)) { - // console.log('Skipping leader role:', member.role); - // return false; - // } - // if (objIds[member._id]) { - // console.log('Duplicate member found, skipping:', member._id); - // return false; - // } - // objIds[member._id] = true; - // return true; - // }); - - // console.log('Filtered team members count:', teamMembers.length); - - // let badgeOfType; - // for (let i = 0; i < badgeCollection.length; i += 1) { - // const currentBadge = badgeCollection[i].badge; - // if (currentBadge?.type === 'Lead a team of X+') { - // console.log('Evaluating badge:', currentBadge); - // if (badgeOfType && badgeOfType.people <= currentBadge.people) { - // console.log('Removing duplicate badge (lower or equal):', badgeOfType._id); - // removeDupBadge(personId, badgeOfType._id); - // badgeOfType = currentBadge; - // } else if (badgeOfType && badgeOfType.people > currentBadge.people) { - // console.log('Removing duplicate badge (higher):', currentBadge._id); - // removeDupBadge(personId, currentBadge._id); - // } else if (!badgeOfType) { - // console.log('First badge of type found:', currentBadge); - // badgeOfType = currentBadge; - // } - // } - // } - - // console.log('Current badge of type to compare:', badgeOfType); - - // await badge - // .find({ type: 'Lead a team of X+' }) - // .sort({ people: -1 }) - // .then((results) => { - // if (!Array.isArray(results) || !results.length) { - // console.log('No badges found in DB of type "Lead a team of X+"'); - // return; - // } - - // results.every((bg) => { - // console.log(`Evaluating badge from DB: People=${bg.people}, TeamCount=${teamMembers.length}`); - // if (teamMembers && teamMembers.length >= bg.people) { - // if (badgeOfType) { - // if ( - // badgeOfType._id.toString() !== bg._id.toString() && - // badgeOfType.people < bg.people - // ) { - // console.log('Replacing badge:', badgeOfType._id, 'with', bg._id); - // replaceBadge( - // personId, - // mongoose.Types.ObjectId(badgeOfType._id), - // mongoose.Types.ObjectId(bg._id), - // ); - // } else { - // console.log('No replacement needed or badge already assigned.'); - // } - // return false; - // } - - // console.log('Adding new badge:', bg._id); - // addBadge(personId, mongoose.Types.ObjectId(bg._id)); - // return false; - // } - // return true; - // }); - // }); - // }; + // 'Lead a team of X+' + + const checkLeadTeamOfXplus = async function (personId, user, badgeCollection) { + const leaderRoles = ['Mentor', 'Manager', 'Administrator', 'Owner', 'Core Team']; + const approvedRoles = ['Mentor', 'Manager']; + if (!approvedRoles.includes(user.role)) return; + const teams = await getAllTeamMembers(personId); + // Calculate total unique non-leader members across all teams + const uniqueMembers = new Set(); + let totalNonLeaderMembers = 0; + + teams.forEach((team) => { + // Filter out leaders and duplicates from each team + const nonLeaderMembers = team.members.filter((member) => { + if (leaderRoles.includes(member.role)) return false; + if (uniqueMembers.has(member.userId.toString())) return false; + uniqueMembers.add(member.userId.toString()); + return true; + }); + totalNonLeaderMembers += nonLeaderMembers.length; + }); + let badgeOfType; + for (let i = 0; i < badgeCollection.length; i += 1) { + if (badgeCollection[i].badge?.type === 'Lead a team of X+') { + if (badgeOfType && badgeOfType.people <= badgeCollection[i].badge.people) { + await removeDupBadge(personId, badgeOfType._id); + badgeOfType = badgeCollection[i].badge; + } else if (badgeOfType && badgeOfType.people > badgeCollection[i].badge.people) { + await removeDupBadge(personId, badgeCollection[i].badge._id); + } else if (!badgeOfType) { + badgeOfType = badgeCollection[i].badge; + } + } + } + // Get all available team size badges, sorted by people count descending + await badge + .find({ + type: 'Lead a team of X+', + people: { $lte: totalNonLeaderMembers }, // Only get badges where requirement is <= team size + }) + .sort({ people: -1 }) // Sort descending + .limit(1) // Get only the highest qualifying badge + .then((results) => { + if (!Array.isArray(results) || !results.length) return; + + const qualifyingBadge = results[0]; // This will be the 60+ badge for a team of 65 + + if (badgeOfType) { + // If user has an existing badge + if ( + badgeOfType._id.toString() !== qualifyingBadge._id.toString() && + badgeOfType.people < qualifyingBadge.people + ) { + replaceBadge( + personId, + mongoose.Types.ObjectId(badgeOfType._id), + mongoose.Types.ObjectId(qualifyingBadge._id), + ); + } + } else { + // If user doesn't have a badge yet + addBadge(personId, mongoose.Types.ObjectId(qualifyingBadge._id)); + } + }); + }; + + // 'Total Hrs in Category' const checkTotalHrsInCat = async function (personId, user, badgeCollection) { const hoursByCategory = user.hoursByCategory || {}; const categories = [ @@ -2885,8 +2691,6 @@ const userHelper = function () { for (const elem of results) { if (categoryHrs >= 100 && categoryHrs >= elem.totalHrs) { - // console.log(`Badge criteria met for ${newCatg}, checking badges...`); - const alreadyHas = badgesInCat.find( (b) => b.badge._id.toString() === elem._id.toString(), ); @@ -2992,27 +2796,25 @@ const userHelper = function () { const awardNewBadges = async () => { try { const users = await userProfile.find({ isActive: true }).populate('badgeCollection.badge'); - for (let i = 0; i < users.length; i += 1) { const user = users[i]; const { _id, badgeCollection } = user; const personId = mongoose.Types.ObjectId(_id); - // await updatePersonalMax(personId, user); - // await checkPersonalMax(personId, user, badgeCollection); - // await checkMostHrsWeek(personId, user, badgeCollection); - // await checkMinHoursMultiple(personId, user, badgeCollection); + await checkPersonalMax(personId, user, badgeCollection); + await checkMostHrsWeek(personId, user, badgeCollection); + await checkMinHoursMultiple(personId, user, badgeCollection); await checkTotalHrsInCat(personId, user, badgeCollection); - // await checkLeadTeamOfXplus(personId, user, badgeCollection); - // await checkXHrsForXWeeks(personId, user, badgeCollection); - // await checkNoInfringementStreak(personId, user, badgeCollection); - + await checkXHrsForXWeeks(personId, user, badgeCollection); + await checkNoInfringementStreak(personId, user, badgeCollection); + await checkLeadTeamOfXplus(personId, user, badgeCollection); // remove cache after badge asssignment. if (cache.hasCache(`user-${_id}`)) { cache.removeCache(`user-${_id}`); } } } catch (err) { + console.log(err); logger.logException(err); } }; @@ -3116,6 +2918,93 @@ const userHelper = function () { } }; + const deActivateUser = async () => { + try { + const emailReceivers = await userProfile.find( + { isActive: true, role: { $in: ['Owner'] } }, + '_id isActive role email', + ); + const recipients = emailReceivers.map((receiver) => receiver.email); + const users = await userProfile.find( + { isActive: true, endDate: { $exists: true } }, + '_id isActive endDate isSet finalEmailThreeWeeksSent reactivationDate', + ); + for (let i = 0; i < users.length; i += 1) { + const user = users[i]; + const { endDate, finalEmailThreeWeeksSent } = user; + endDate.setHours(endDate.getHours() + 7); + // notify reminder set final day before 2 weeks + if ( + finalEmailThreeWeeksSent && + moment().isBefore(moment(endDate).subtract(2, 'weeks')) && + moment().isAfter(moment(endDate).subtract(3, 'weeks')) + ) { + const id = user._id; + const person = await userProfile.findById(id); + const lastDay = moment(person.endDate).format('YYYY-MM-DD'); + logger.logInfo(`User with id: ${user._id}'s final Day is set at ${moment().format()}.`); + person.teams.map(async (teamId) => { + const managementEmails = await userHelper.getTeamManagementEmail(teamId); + if (Array.isArray(managementEmails) && managementEmails.length > 0) { + managementEmails.forEach((management) => { + recipients.push(management.email); + }); + } + }); + sendDeactivateEmailBody( + person.firstName, + person.lastName, + lastDay, + person.email, + recipients, + person.isSet, + person.reactivationDate, + false, + true, + ); + } else if (moment().isAfter(moment(endDate).add(1, 'days'))) { + try { + await userProfile.findByIdAndUpdate( + user._id, + user.set({ + isActive: false, + }), + { new: true }, + ); + } catch (err) { + // Log the error and continue to the next user + logger.logException(err, `Error in deActivateUser. Failed to update User ${user._id}`); + continue; + } + const id = user._id; + const person = await userProfile.findById(id); + const lastDay = moment(person.endDate).format('YYYY-MM-DD'); + logger.logInfo(`User with id: ${user._id} was de-activated at ${moment().format()}.`); + person.teams.map(async (teamId) => { + const managementEmails = await userHelper.getTeamManagementEmail(teamId); + if (Array.isArray(managementEmails) && managementEmails.length > 0) { + managementEmails.forEach((management) => { + recipients.push(management.email); + }); + } + }); + sendDeactivateEmailBody( + person.firstName, + person.lastName, + lastDay, + person.email, + recipients, + person.isSet, + person.reactivationDate, + undefined, + ); + } + } + } catch (err) { + logger.logException(err, 'Unexpected error in deActivateUser'); + } + }; + // Update by Shengwei/Peter PR767: /** * Delete all tokens used in new user setup from database that in cancelled, expired, or used status. @@ -3181,12 +3070,9 @@ const userHelper = function () { if (typeof data === 'object' && data !== null) { const result = Object.keys(data).some((key) => { if (typeof data[key] === 'object') { - const found = searchForTermsInFields(data[key], lowerCaseTerm1, lowerCaseTerm2); - return Boolean(found); // always returns boolean + return searchForTermsInFields(data[key], lowerCaseTerm1, lowerCaseTerm2); } - return false; // MUST return boolean here }); - return result ? data : null; } return []; @@ -3222,6 +3108,37 @@ const userHelper = function () { return false; } + async function getCurrentTeamCode(teamId) { + if (!mongoose.Types.ObjectId.isValid(teamId)) return null; + + const result = await userProfile.aggregate([ + { $match: { teams: mongoose.Types.ObjectId(teamId), isActive: true } }, + { $limit: 1 }, + { $project: { teamCode: 1 } }, + ]); + + return result.length > 0 ? result[0].teamCode : null; + } + + async function checkTeamCodeMismatch(user) { + try { + if (!user || !user.teams.length) { + return false; + } + + const latestTeamId = user.teams[0]; + const teamCodeFromFirstActive = await getCurrentTeamCode(latestTeamId); + if (!teamCodeFromFirstActive) { + return false; + } + + return teamCodeFromFirstActive !== user.teamCode; + } catch (error) { + logger.logException(error); + return false; + } + } + async function imageUrlToPngBase64(url, maxSizeKB = 45) { try { // Fetch the image as a buffer @@ -3331,9 +3248,9 @@ const userHelper = function () { const resendBlueSquareEmailsOnlyForLastWeek = async () => { try { - console.log('[PRODUCTION] Starting email-only blue square resend...'); + console.log('[Manual Resend] Starting email-only blue square resend...'); - const pdtStartOfLastWeek = moment() + const startOfLastWeek = moment() .tz('America/Los_Angeles') .startOf('week') .subtract(1, 'week'); @@ -3413,199 +3330,26 @@ const userHelper = function () { [...new Set(emailsBCCs)], ); } + + console.log('[Manual Resend] Emails successfully resent for existing blue squares.'); } catch (err) { console.error('[Manual Resend] Error while resending:', err); logger.logException(err); } }; - const sendUserPausedEmail = ({ firstName, lastName, email, reactivationDate, recipients }) => { - const subject = `IMPORTANT: ${firstName} ${lastName} has been PAUSED in the Highest Good Network`; - - const emailBody = ` -Management,
-- Please note that ${firstName} ${lastName} has been PAUSED in the Highest Good Network. -
-- Please confirm all work has been wrapped up until they return on - ${moment(reactivationDate).format('M-D-YYYY')}. -
-With Gratitude,
One Community
Management,
-- Please note that ${firstName} ${lastName} has been made inactive in the Highest Good Network. -
-- Please confirm all work has been wrapped up and nothing further is needed. -
-With Gratitude,
One Community
Management,
-- ${firstName} ${lastName} has been re-activated in the Highest Good Network. -
-Email: ${email}
-With Gratitude,
One Community
Management,
- -- Please note that the final day for ${firstName} ${lastName} - in the Highest Good Network is set for ${formattedEndDate}. -
- -- This is a reminder sent approximately three weeks in advance. - Please begin wrapping up any remaining work and transitions with this individual. -
- -- An additional reminder will be sent closer to the final date. -
- -With gratitude,
One Community
Safe content
'; + const cleaned = cleanHtml(dirty); + expect(cleaned).not.toContain('Safe
'; + const cleaned = cleanHtml(dirty); + expect(cleaned).not.toContain('