diff --git a/.platform/hooks/predeploy/01-install-dd.sh b/.platform-disabled/hooks/predeploy/01-install-dd.sh
similarity index 100%
rename from .platform/hooks/predeploy/01-install-dd.sh
rename to .platform-disabled/hooks/predeploy/01-install-dd.sh
diff --git a/_reference/partsManagement/PATCH_parts-management-job-status.md b/_reference/partsManagement/PATCH_parts-management-job-status.md
new file mode 100644
index 000000000..a11e20426
--- /dev/null
+++ b/_reference/partsManagement/PATCH_parts-management-job-status.md
@@ -0,0 +1,61 @@
+# PATCH /integrations/parts-management/job/:id/status
+
+Update (patch) the status of a job created under parts management. This endpoint is only available
+for jobs whose parent bodyshop has an `external_shop_id` (i.e., is provisioned for parts
+management).
+
+## Endpoint
+
+```
+PATCH /integrations/parts-management/job/:id/status
+```
+
+- `:id` is the UUID of the job to update.
+
+## Request Headers
+
+- `Authorization`: (if required by your integration middleware)
+- `Content-Type: application/json`
+
+## Request Body
+
+Send a JSON object with the following field:
+
+- `status` (string, required): The new status for the job.
+
+Example:
+
+```
+PATCH /integrations/parts-management/job/123e4567-e89b-12d3-a456-426614174000/status
+Content-Type: application/json
+
+{
+ "status": "IN_PROGRESS"
+}
+```
+
+## Success Response
+
+- **200 OK**
+- Returns the updated job object with the new status.
+
+```
+{
+ "id": "123e4567-e89b-12d3-a456-426614174000",
+ "status": "IN_PROGRESS",
+ ...
+}
+```
+
+## Error Responses
+
+- **400 Bad Request**: Missing status field, or parent bodyshop does not have an `external_shop_id`.
+- **404 Not Found**: No job found with the given ID.
+- **500 Internal Server Error**: Unexpected error.
+
+## Notes
+
+- Only jobs whose parent bodyshop has an `external_shop_id` can be patched via this route.
+- Fields other than `status` will be ignored if included in the request body.
+- The route is protected by the same middleware as other parts management endpoints.
+
diff --git a/_reference/partsManagement/PATCH_parts-management-provision.md b/_reference/partsManagement/PATCH_parts-management-provision.md
new file mode 100644
index 000000000..50c90b7e5
--- /dev/null
+++ b/_reference/partsManagement/PATCH_parts-management-provision.md
@@ -0,0 +1,86 @@
+# PATCH /integrations/parts-management/provision/:id
+
+Update (patch) select fields for a parts management bodyshop. Only available for shops that have an
+`external_shop_id` (i.e., are provisioned for parts management).
+
+## Endpoint
+
+```
+PATCH /integrations/parts-management/provision/:id
+```
+
+- `:id` is the UUID of the bodyshop to update.
+
+## Request Headers
+
+- `Authorization`: (if required by your integration middleware)
+- `Content-Type: application/json`
+
+## Request Body
+
+Send a JSON object with one or more of the following fields to update:
+
+- `shopname` (string)
+- `address1` (string)
+- `address2` (string, optional)
+- `city` (string)
+- `state` (string)
+- `zip_post` (string)
+- `country` (string)
+- `email` (string, shop's email, not user email)
+- `timezone` (string)
+- `phone` (string)
+- `logo_img_path` (object, e.g. `{ src, width, height, headerMargin }`)
+
+Any fields not included in the request body will remain unchanged.
+
+## Example Request
+
+```
+PATCH /integrations/parts-management/provision/123e4567-e89b-12d3-a456-426614174000
+Content-Type: application/json
+
+{
+ "shopname": "New Shop Name",
+ "address1": "123 Main St",
+ "city": "Springfield",
+ "state": "IL",
+ "zip_post": "62704",
+ "country": "USA",
+ "email": "shop@example.com",
+ "timezone": "America/Chicago",
+ "phone": "555-123-4567",
+ "logo_img_path": {
+ "src": "https://example.com/logo.png",
+ "width": "200",
+ "height": "100",
+ "headerMargin": 10
+ }
+}
+```
+
+## Success Response
+
+- **200 OK**
+- Returns the updated shop object with the patched fields.
+
+```
+{
+ "id": "123e4567-e89b-12d3-a456-426614174000",
+ "shopname": "New Shop Name",
+ ...
+}
+```
+
+## Error Responses
+
+- **400 Bad Request**: No valid fields provided, or shop does not have an `external_shop_id`.
+- **404 Not Found**: No shop found with the given ID.
+- **500 Internal Server Error**: Unexpected error.
+
+## Notes
+
+- Only shops with an `external_shop_id` can be patched via this route.
+- Fields not listed above will be ignored if included in the request body.
+- The route is protected by the same middleware as other parts management endpoints.
+
diff --git a/server/integrations/partsManagement/swagger.yaml b/_reference/partsManagement/swagger.yaml
similarity index 100%
rename from server/integrations/partsManagement/swagger.yaml
rename to _reference/partsManagement/swagger.yaml
diff --git a/client/package-lock.json b/client/package-lock.json
index e0e890a30..cf7a57075 100644
--- a/client/package-lock.json
+++ b/client/package-lock.json
@@ -9,51 +9,51 @@
"version": "0.2.1",
"hasInstallScript": true,
"dependencies": {
- "@amplitude/analytics-browser": "^2.23.5",
+ "@amplitude/analytics-browser": "^2.25.2",
"@ant-design/pro-layout": "^7.22.6",
"@apollo/client": "^3.13.9",
"@emotion/is-prop-valid": "^1.4.0",
"@fingerprintjs/fingerprintjs": "^4.6.1",
"@firebase/analytics": "^0.10.17",
- "@firebase/app": "^0.14.2",
+ "@firebase/app": "^0.14.3",
"@firebase/auth": "^1.10.8",
- "@firebase/firestore": "^4.9.1",
+ "@firebase/firestore": "^4.9.2",
"@firebase/messaging": "^0.12.22",
"@jsreport/browser-client": "^3.1.0",
"@reduxjs/toolkit": "^2.9.0",
- "@sentry/cli": "^2.53.0",
+ "@sentry/cli": "^2.56.0",
"@sentry/react": "^9.43.0",
"@sentry/vite-plugin": "^4.3.0",
- "@splitsoftware/splitio-react": "^2.3.1",
+ "@splitsoftware/splitio-react": "^2.5.0",
"@tanem/react-nprogress": "^5.0.53",
- "antd": "^5.27.3",
+ "antd": "^5.27.4",
"apollo-link-logger": "^2.0.1",
"apollo-link-sentry": "^4.4.0",
"autosize": "^6.0.1",
- "axios": "^1.11.0",
+ "axios": "^1.12.2",
"classnames": "^2.5.1",
"css-box-model": "^1.2.1",
"dayjs": "^1.11.18",
"dayjs-business-days2": "^1.3.0",
"dinero.js": "^1.9.1",
- "dotenv": "^17.2.2",
+ "dotenv": "^17.2.3",
"env-cmd": "^10.1.0",
"exifr": "^7.1.3",
"graphql": "^16.11.0",
- "i18next": "^25.5.2",
+ "i18next": "^25.5.3",
"i18next-browser-languagedetector": "^8.2.0",
"immutability-helper": "^3.1.1",
- "libphonenumber-js": "^1.12.15",
- "lightningcss": "^1.30.1",
+ "libphonenumber-js": "^1.12.23",
+ "lightningcss": "^1.30.2",
"logrocket": "^9.0.2",
- "markerjs2": "^2.32.6",
+ "markerjs2": "^2.32.7",
"memoize-one": "^6.0.0",
- "normalize-url": "^8.0.2",
+ "normalize-url": "^8.1.0",
"object-hash": "^3.0.0",
"phone": "^3.1.67",
- "posthog-js": "^1.261.7",
+ "posthog-js": "^1.271.0",
"prop-types": "^15.8.1",
- "query-string": "^9.2.2",
+ "query-string": "^9.3.1",
"raf-schd": "^4.0.3",
"react": "^18.3.1",
"react-big-calendar": "^1.19.4",
@@ -74,7 +74,7 @@
"react-resizable": "^3.0.5",
"react-router-dom": "^6.30.0",
"react-sticky": "^6.0.3",
- "react-virtuoso": "^4.14.0",
+ "react-virtuoso": "^4.14.1",
"recharts": "^2.15.2",
"redux": "^5.0.1",
"redux-actions": "^3.0.3",
@@ -82,7 +82,7 @@
"redux-saga": "^1.3.0",
"redux-state-sync": "^3.1.4",
"reselect": "^5.1.1",
- "sass": "^1.92.0",
+ "sass": "^1.93.2",
"socket.io-client": "^4.8.1",
"styled-components": "^6.1.19",
"subscriptions-transport-ws": "^0.11.0",
@@ -91,33 +91,33 @@
"web-vitals": "^3.5.2"
},
"devDependencies": {
- "@ant-design/icons": "^6.0.0",
+ "@ant-design/icons": "^6.1.0",
"@babel/plugin-proposal-private-property-in-object": "^7.21.11",
"@babel/preset-react": "^7.27.1",
- "@dotenvx/dotenvx": "^1.49.0",
+ "@dotenvx/dotenvx": "^1.51.0",
"@emotion/babel-plugin": "^11.13.5",
"@emotion/react": "^11.14.0",
- "@eslint/js": "^9.33.0",
- "@playwright/test": "^1.55.0",
- "@sentry/webpack-plugin": "^4.1.1",
+ "@eslint/js": "^9.37.0",
+ "@playwright/test": "^1.56.0",
+ "@sentry/webpack-plugin": "^4.3.0",
"@testing-library/dom": "^10.4.1",
- "@testing-library/jest-dom": "^6.8.0",
+ "@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.3.0",
"@vitejs/plugin-react": "^4.6.0",
- "browserslist": "^4.25.3",
+ "browserslist": "^4.26.3",
"browserslist-to-esbuild": "^2.1.1",
- "chalk": "^5.6.0",
- "eslint": "^9.33.0",
+ "chalk": "^5.6.2",
+ "eslint": "^9.37.0",
"eslint-plugin-react": "^7.37.5",
"globals": "^15.15.0",
"jsdom": "^26.0.0",
- "memfs": "^4.36.3",
+ "memfs": "^4.48.1",
"os-browserify": "^0.3.0",
- "playwright": "^1.55.0",
+ "playwright": "^1.56.0",
"react-error-overlay": "^6.1.0",
"redux-logger": "^3.0.6",
"source-map-explorer": "^2.5.3",
- "vite": "^7.1.3",
+ "vite": "^7.1.9",
"vite-plugin-babel": "^1.3.2",
"vite-plugin-eslint": "^1.8.1",
"vite-plugin-node-polyfills": "^0.24.0",
@@ -141,28 +141,28 @@
"license": "MIT"
},
"node_modules/@amplitude/analytics-browser": {
- "version": "2.23.5",
- "resolved": "https://registry.npmjs.org/@amplitude/analytics-browser/-/analytics-browser-2.23.5.tgz",
- "integrity": "sha512-R1N506rifI3/axSTM3EQkVjCgeJsmhybRONOdnA3MCJwOIC77UVEOIzTVNjnAAzgBSxDNTCy6ejGgBf3PgzBog==",
+ "version": "2.25.2",
+ "resolved": "https://registry.npmjs.org/@amplitude/analytics-browser/-/analytics-browser-2.25.2.tgz",
+ "integrity": "sha512-9CXKoB1oip+fcYTrDVt/WcYXPugazsEjfZxzyS2P7A7tHD6icPnY1C1o4ziqBvkHn7mnhF//UG7OB7EphQg/nA==",
"license": "MIT",
"dependencies": {
- "@amplitude/analytics-core": "^2.22.1",
+ "@amplitude/analytics-core": "^2.26.2",
"@amplitude/analytics-remote-config": "^0.4.0",
- "@amplitude/plugin-autocapture-browser": "^1.11.1",
- "@amplitude/plugin-network-capture-browser": "^1.5.4",
- "@amplitude/plugin-page-view-tracking-browser": "^2.3.45",
- "@amplitude/plugin-web-vitals-browser": "^0.1.0-beta.20",
+ "@amplitude/plugin-autocapture-browser": "^1.14.3",
+ "@amplitude/plugin-network-capture-browser": "^1.6.5",
+ "@amplitude/plugin-page-view-tracking-browser": "^2.4.3",
+ "@amplitude/plugin-web-vitals-browser": "^0.1.0-beta.27",
"tslib": "^2.4.1"
}
},
"node_modules/@amplitude/analytics-client-common": {
- "version": "2.3.39",
- "resolved": "https://registry.npmjs.org/@amplitude/analytics-client-common/-/analytics-client-common-2.3.39.tgz",
- "integrity": "sha512-Dt31IIalME8whTXLgnKPLh9HbHTr8dC9F51reS1gngXAkOTErzAvbBl6UIc09bjqHWmimsRYgi6nflubnqwvMQ==",
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/@amplitude/analytics-client-common/-/analytics-client-common-2.4.3.tgz",
+ "integrity": "sha512-B3PistL7I8TzC2FEP7BO8KBxIYzwCPiagrG3H7petZvp9y3LvNQwtviKF5JxGslDM7DDUQMVLVKcKKxhIMBPiw==",
"license": "MIT",
"dependencies": {
"@amplitude/analytics-connector": "^1.4.8",
- "@amplitude/analytics-core": "^2.22.1",
+ "@amplitude/analytics-core": "^2.26.2",
"@amplitude/analytics-types": "^2.10.0",
"tslib": "^2.4.1"
}
@@ -174,9 +174,9 @@
"license": "MIT"
},
"node_modules/@amplitude/analytics-core": {
- "version": "2.22.1",
- "resolved": "https://registry.npmjs.org/@amplitude/analytics-core/-/analytics-core-2.22.1.tgz",
- "integrity": "sha512-nzlulhS7jYQc91wOc392avBLDAiPZmIBuJ1apA640YlleX/egVxKgZVYHH3Ge4ZNkaxoESwUb4mf2R+ZI0fXxA==",
+ "version": "2.26.2",
+ "resolved": "https://registry.npmjs.org/@amplitude/analytics-core/-/analytics-core-2.26.2.tgz",
+ "integrity": "sha512-XIOzNiUCxzJwKuoK+N8rVjl0OlrfTszM+C9GyFxOYwn1zgZZEYCq0AqX1OIpy+vl+Bx3mLKZbRzxTl3eX46hLQ==",
"license": "MIT",
"dependencies": {
"@amplitude/analytics-connector": "^1.6.4",
@@ -202,62 +202,34 @@
"license": "MIT"
},
"node_modules/@amplitude/plugin-autocapture-browser": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@amplitude/plugin-autocapture-browser/-/plugin-autocapture-browser-1.11.1.tgz",
- "integrity": "sha512-6nus1nXlH1ru/yjx07yk1cyjc9scAsE9dO4f0xxH8xpHlYQ4yVCuYApcguIpogISlPiySAxSZ+4WDreLrpQiDw==",
+ "version": "1.14.3",
+ "resolved": "https://registry.npmjs.org/@amplitude/plugin-autocapture-browser/-/plugin-autocapture-browser-1.14.3.tgz",
+ "integrity": "sha512-awpDTXhbbfRjR3ru5Y1FbwqPjsxZCpNpb5H9hu/O+ZpGJ5CJxT1DcgDh0Qan0r8RasXCUh8D8k6/GKiNsuyMNw==",
"license": "MIT",
"dependencies": {
- "@amplitude/analytics-core": "^2.22.1",
- "@amplitude/analytics-remote-config": "^0.6.3",
+ "@amplitude/analytics-core": "^2.26.2",
"rxjs": "^7.8.1",
"tslib": "^2.4.1"
}
},
- "node_modules/@amplitude/plugin-autocapture-browser/node_modules/@amplitude/analytics-remote-config": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/@amplitude/analytics-remote-config/-/analytics-remote-config-0.6.3.tgz",
- "integrity": "sha512-icE0ogCzdHAtQi9jiOFQUmKrvWQc5YEO6bLZUfQXCT/yTTNXppWnT1zHMKzXa3SMDosfrLwU/X8sro1PTI+jZQ==",
- "license": "MIT",
- "dependencies": {
- "@amplitude/analytics-core": ">=1 <2",
- "@amplitude/analytics-types": ">=1 <2",
- "tslib": "^2.4.1"
- }
- },
- "node_modules/@amplitude/plugin-autocapture-browser/node_modules/@amplitude/analytics-remote-config/node_modules/@amplitude/analytics-core": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/@amplitude/analytics-core/-/analytics-core-1.2.8.tgz",
- "integrity": "sha512-Krxpr5uvS3HmmjvpYqPfbMbs2kcZZu09L+6KwQnPiofWRzoXWIM217fRfy6aSD/QrAoPGbZjvtVitw9cB7Cx+A==",
- "license": "MIT",
- "dependencies": {
- "@amplitude/analytics-types": "^1.4.0",
- "tslib": "^2.4.1"
- }
- },
- "node_modules/@amplitude/plugin-autocapture-browser/node_modules/@amplitude/analytics-types": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/@amplitude/analytics-types/-/analytics-types-1.4.0.tgz",
- "integrity": "sha512-RiMPHBqdrJ8ktTqG+Wzj2htnN/PCG9jGZG0SXtTFnWwVvcAJYbYm55/nrP1TTyrx1OlLhvF2VG3lVUP/xGAU8w==",
- "license": "MIT"
- },
"node_modules/@amplitude/plugin-network-capture-browser": {
- "version": "1.5.4",
- "resolved": "https://registry.npmjs.org/@amplitude/plugin-network-capture-browser/-/plugin-network-capture-browser-1.5.4.tgz",
- "integrity": "sha512-GRvi44tNx2TdHQ/dnC9DLqwsaBE1gC/bmHNaudTbp/nwIM8nVCAxZaXaXJEUouK7WBAamr7a3WmFruecqCeOlA==",
+ "version": "1.6.5",
+ "resolved": "https://registry.npmjs.org/@amplitude/plugin-network-capture-browser/-/plugin-network-capture-browser-1.6.5.tgz",
+ "integrity": "sha512-8Dmikf4gdW+3aqiXNzmj08tkGmD66JsnHFz4TsEA3RcShp47OWEd3x3CW3wnHJG+ep2sXXnL8Cqjl1bio7E2GQ==",
"license": "MIT",
"dependencies": {
- "@amplitude/analytics-core": "^2.22.1",
+ "@amplitude/analytics-core": "^2.26.2",
"rxjs": "^7.8.1",
"tslib": "^2.4.1"
}
},
"node_modules/@amplitude/plugin-page-view-tracking-browser": {
- "version": "2.3.45",
- "resolved": "https://registry.npmjs.org/@amplitude/plugin-page-view-tracking-browser/-/plugin-page-view-tracking-browser-2.3.45.tgz",
- "integrity": "sha512-L2JH/TDTdjfexkY5hHVS3dCb4+q5H1jeIKhXUcBQ/Wx91asLY9BsH91J4bo9EK4J4Al8jVRwqJz0tIQ17qW9RQ==",
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/@amplitude/plugin-page-view-tracking-browser/-/plugin-page-view-tracking-browser-2.4.3.tgz",
+ "integrity": "sha512-bxZojtBudwnpj/e9+YXe2IawFcf7LsBthtq1UgKDCrYtgcpuwlm4ld2yP7QC3p1G+iptomHxfV70oLXWaBeJdw==",
"license": "MIT",
"dependencies": {
- "@amplitude/analytics-client-common": "^2.3.39",
+ "@amplitude/analytics-client-common": "^2.4.3",
"@amplitude/analytics-types": "^2.10.0",
"tslib": "^2.4.1"
}
@@ -348,16 +320,16 @@
}
},
"node_modules/@ant-design/icons": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-6.0.0.tgz",
- "integrity": "sha512-o0aCCAlHc1o4CQcapAwWzHeaW2x9F49g7P3IDtvtNXgHowtRWYb7kiubt8sQPFvfVIVU/jLw2hzeSlNt0FU+Uw==",
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-6.1.0.tgz",
+ "integrity": "sha512-KrWMu1fIg3w/1F2zfn+JlfNDU8dDqILfA5Tg85iqs1lf8ooyGlbkA+TkwfOKKgqpUmAiRY1PTFpuOU2DAIgSUg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@ant-design/colors": "^8.0.0",
"@ant-design/icons-svg": "^4.4.0",
- "@rc-component/util": "^1.2.1",
- "classnames": "^2.2.6"
+ "@rc-component/util": "^1.3.0",
+ "clsx": "^2.1.1"
},
"engines": {
"node": ">=8"
@@ -373,6 +345,16 @@
"integrity": "sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==",
"license": "MIT"
},
+ "node_modules/@ant-design/icons/node_modules/clsx": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
+ "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/@ant-design/pro-layout": {
"version": "7.22.7",
"resolved": "https://registry.npmjs.org/@ant-design/pro-layout/-/pro-layout-7.22.7.tgz",
@@ -2434,9 +2416,9 @@
}
},
"node_modules/@dotenvx/dotenvx": {
- "version": "1.49.0",
- "resolved": "https://registry.npmjs.org/@dotenvx/dotenvx/-/dotenvx-1.49.0.tgz",
- "integrity": "sha512-M1cyP6YstFQCjih54SAxCqHLMMi8QqV8tenpgGE48RTXWD7vfMYJiw/6xcCDpS2h28AcLpTsFCZA863Ge9yxzA==",
+ "version": "1.51.0",
+ "resolved": "https://registry.npmjs.org/@dotenvx/dotenvx/-/dotenvx-1.51.0.tgz",
+ "integrity": "sha512-CbMGzyOYSyFF7d4uaeYwO9gpSBzLTnMmSmTVpCZjvpJFV69qYbjYPpzNnCz1mb2wIvEhjWjRwQWuBzTO0jITww==",
"dev": true,
"license": "BSD-3-Clause",
"dependencies": {
@@ -2656,9 +2638,9 @@
}
},
"node_modules/@eslint-community/eslint-utils": {
- "version": "4.7.0",
- "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz",
- "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==",
+ "version": "4.9.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz",
+ "integrity": "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2713,19 +2695,22 @@
}
},
"node_modules/@eslint/config-helpers": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.1.tgz",
- "integrity": "sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA==",
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.0.tgz",
+ "integrity": "sha512-WUFvV4WoIwW8Bv0KeKCIIEgdSiFOsulyN0xrMu+7z43q/hkOLXjvb5u7UC9jDxvRzcrbEmuZBX5yJZz1741jog==",
"dev": true,
"license": "Apache-2.0",
+ "dependencies": {
+ "@eslint/core": "^0.16.0"
+ },
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
"node_modules/@eslint/core": {
- "version": "0.15.2",
- "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.2.tgz",
- "integrity": "sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==",
+ "version": "0.16.0",
+ "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.16.0.tgz",
+ "integrity": "sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -2793,9 +2778,9 @@
}
},
"node_modules/@eslint/js": {
- "version": "9.33.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.33.0.tgz",
- "integrity": "sha512-5K1/mKhWaMfreBGJTwval43JJmkip0RmM+3+IuqupeSKNC/Th2Kc7ucaq5ovTSra/OOKB9c58CGSz3QMVbWt0A==",
+ "version": "9.37.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.37.0.tgz",
+ "integrity": "sha512-jaS+NJ+hximswBG6pjNX0uEJZkrT0zwpVi3BA3vX22aFGjJjmgSTSmPpZCRKmoBL5VY/M6p0xsSJx7rk7sy5gg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -2816,13 +2801,13 @@
}
},
"node_modules/@eslint/plugin-kit": {
- "version": "0.3.5",
- "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.5.tgz",
- "integrity": "sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==",
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.0.tgz",
+ "integrity": "sha512-sB5uyeq+dwCWyPi31B2gQlVlo+j5brPlWx4yZBrEaRo/nhdDE8Xke1gsGgtiBdaBTxuTkceLVuVt/pclrasb0A==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@eslint/core": "^0.15.2",
+ "@eslint/core": "^0.16.0",
"levn": "^0.4.1"
},
"engines": {
@@ -2855,9 +2840,9 @@
}
},
"node_modules/@firebase/app": {
- "version": "0.14.2",
- "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.14.2.tgz",
- "integrity": "sha512-Ecx2ig/JLC9ayIQwZHqm41Tzlf4c1WUuFhFUZB1y+JIJqDRE579x7Uil7tKT8MwDpOPwrK5ZtpxdSsrfy/LF8Q==",
+ "version": "0.14.3",
+ "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.14.3.tgz",
+ "integrity": "sha512-by1leTfZkwGycPKRWpc+p5/IhpnOj8zaScVi4RRm9fMoFYS3IE87Wzx1Yf/ruVYowXOEuLqYY3VmJw5tU3+0Bg==",
"license": "Apache-2.0",
"dependencies": {
"@firebase/component": "0.7.0",
@@ -2908,15 +2893,15 @@
}
},
"node_modules/@firebase/firestore": {
- "version": "4.9.1",
- "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-4.9.1.tgz",
- "integrity": "sha512-PYVUTkhC9y8pydrqC3O1Oc4AMfkGSWdmuH9xgPJjiEbpUIUPQ4J8wJhyuash+o2u+axmyNRFP8ULNUKb+WzBzQ==",
+ "version": "4.9.2",
+ "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-4.9.2.tgz",
+ "integrity": "sha512-iuA5+nVr/IV/Thm0Luoqf2mERUvK9g791FZpUJV1ZGXO6RL2/i/WFJUj5ZTVXy5pRjpWYO+ZzPcReNrlilmztA==",
"license": "Apache-2.0",
"dependencies": {
"@firebase/component": "0.7.0",
"@firebase/logger": "0.5.0",
"@firebase/util": "1.13.0",
- "@firebase/webchannel-wrapper": "1.0.4",
+ "@firebase/webchannel-wrapper": "1.0.5",
"@grpc/grpc-js": "~1.9.0",
"@grpc/proto-loader": "^0.7.8",
"tslib": "^2.1.0"
@@ -2992,9 +2977,9 @@
}
},
"node_modules/@firebase/webchannel-wrapper": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-1.0.4.tgz",
- "integrity": "sha512-6m8+P+dE/RPl4OPzjTxcTbQ0rGeRyeTvAi9KwIffBVCiAMKrfXfLZaqD1F+m8t4B5/Q5aHsMozOgirkH1F5oMQ==",
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-1.0.5.tgz",
+ "integrity": "sha512-+uGNN7rkfn41HLO0vekTFhTxk61eKa8mTpRGLO0QSqlQdKvIoGAvLp3ppdVIWbTGYJWM6Kp0iN+PjMIOcnVqTw==",
"license": "Apache-2.0"
},
"node_modules/@graphql-typed-document-node/core": {
@@ -3113,9 +3098,9 @@
}
},
"node_modules/@ioredis/commands": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.3.0.tgz",
- "integrity": "sha512-M/T6Zewn7sDaBQEqIZ8Rb+i9y8qfGmq+5SDFSf9sA2lUZTmdDLVdOiQaeDp+Q4wElZ9HG1GAX5KhDaidp6LQsQ==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.4.0.tgz",
+ "integrity": "sha512-aFT2yemJJo+TZCmieA7qnYGQooOS7QfNmYrzGtsYd3g9j5iDP8AimYYAesf79ohjbLG12XxC4nG5DyEnC88AsQ==",
"license": "MIT"
},
"node_modules/@jridgewell/gen-mapping": {
@@ -3440,13 +3425,13 @@
}
},
"node_modules/@playwright/test": {
- "version": "1.55.0",
- "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.55.0.tgz",
- "integrity": "sha512-04IXzPwHrW69XusN/SIdDdKZBzMfOT9UNT/YiJit/xpy2VuAoB8NHc8Aplb96zsWDddLnbkPL3TsmrS04ZU2xQ==",
+ "version": "1.56.0",
+ "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.56.0.tgz",
+ "integrity": "sha512-Tzh95Twig7hUwwNe381/K3PggZBZblKUe2wv25oIpzWLr6Z0m4KgV1ZVIjnR6GM9ANEqjZD7XsZEa6JL/7YEgg==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "playwright": "1.55.0"
+ "playwright": "1.56.0"
},
"bin": {
"playwright": "cli.js"
@@ -3466,9 +3451,9 @@
}
},
"node_modules/@posthog/core": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@posthog/core/-/core-1.0.2.tgz",
- "integrity": "sha512-hWk3rUtJl2crQK0WNmwg13n82hnTwB99BT99/XI5gZSvIlYZ1TPmMZE8H2dhJJ98J/rm9vYJ/UXNzw3RV5HTpQ==",
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@posthog/core/-/core-1.2.2.tgz",
+ "integrity": "sha512-f16Ozx6LIigRG+HsJdt+7kgSxZTHeX5f1JlCGKI1lXcvlZgfsCR338FuMI2QRYXGl+jg/vYFzGOTQBxl90lnBg==",
"license": "MIT"
},
"node_modules/@protobufjs/aspromise": {
@@ -3697,9 +3682,9 @@
}
},
"node_modules/@rc-component/util": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/@rc-component/util/-/util-1.2.2.tgz",
- "integrity": "sha512-p3zQr9Wu8BKncqmuW23olzBoAFsN8PYMS9FaI4JwJLwknH7DvfHAr1fwbfl9aAWw4Jva64ucpenbgG4fznLUSw==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@rc-component/util/-/util-1.3.0.tgz",
+ "integrity": "sha512-hfXE04CVsxI/slmWKeSh6du7sSKpbvVdVEZCa8A+2QWDlL97EsCYme2c3ZWLn1uC9FR21JoewlrhUPWO4QgO8w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4433,10 +4418,9 @@
}
},
"node_modules/@sentry/babel-plugin-component-annotate": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/@sentry/babel-plugin-component-annotate/-/babel-plugin-component-annotate-4.1.1.tgz",
- "integrity": "sha512-HUpqrCK7zDVojTV6KL6BO9ZZiYrEYQqvYQrscyMsq04z+WCupXaH6YEliiNRvreR8DBJgdsG3lBRpebhUGmvfA==",
- "dev": true,
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@sentry/babel-plugin-component-annotate/-/babel-plugin-component-annotate-4.3.0.tgz",
+ "integrity": "sha512-OuxqBprXRyhe8Pkfyz/4yHQJc5c3lm+TmYWSSx8u48g5yKewSQDOxkiLU5pAk3WnbLPy8XwU/PN+2BG0YFU9Nw==",
"license": "MIT",
"engines": {
"node": ">= 14"
@@ -4459,14 +4443,13 @@
}
},
"node_modules/@sentry/bundler-plugin-core": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/@sentry/bundler-plugin-core/-/bundler-plugin-core-4.1.1.tgz",
- "integrity": "sha512-Hx9RgXaD1HEYmL5aYoWwCKkVvPp4iklwfD9mvmdpQtcwLg6b6oLnPVDQaOry1ak6Pxt8smlrWcKy4IiKASlvig==",
- "dev": true,
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@sentry/bundler-plugin-core/-/bundler-plugin-core-4.3.0.tgz",
+ "integrity": "sha512-dmR4DJhJ4jqVWGWppuTL2blNFqOZZnt4aLkewbD1myFG3KVfUx8CrMQWEmGjkgPOtj5TO6xH9PyTJjXC6o5tnA==",
"license": "MIT",
"dependencies": {
"@babel/core": "^7.18.5",
- "@sentry/babel-plugin-component-annotate": "4.1.1",
+ "@sentry/babel-plugin-component-annotate": "4.3.0",
"@sentry/cli": "^2.51.0",
"dotenv": "^16.3.1",
"find-up": "^5.0.0",
@@ -4482,7 +4465,6 @@
"version": "16.6.1",
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz",
"integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==",
- "dev": true,
"license": "BSD-2-Clause",
"engines": {
"node": ">=12"
@@ -4492,9 +4474,9 @@
}
},
"node_modules/@sentry/cli": {
- "version": "2.53.0",
- "resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-2.53.0.tgz",
- "integrity": "sha512-n2ZNb+5Z6AZKQSI0SusQ7ZzFL637mfw3Xh4C3PEyVSn9LiF683fX0TTq8OeGmNZQS4maYfS95IFD+XpydU0dEA==",
+ "version": "2.56.0",
+ "resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-2.56.0.tgz",
+ "integrity": "sha512-br6+1nTPUV5EG1oaxLzxv31kREFKr49Y1+3jutfMUz9Nl8VyVP7o9YwakB/YWl+0Vi0NXg5vq7qsd/OOuV5j8w==",
"hasInstallScript": true,
"license": "BSD-3-Clause",
"dependencies": {
@@ -4511,20 +4493,139 @@
"node": ">= 10"
},
"optionalDependencies": {
- "@sentry/cli-darwin": "2.53.0",
- "@sentry/cli-linux-arm": "2.53.0",
- "@sentry/cli-linux-arm64": "2.53.0",
- "@sentry/cli-linux-i686": "2.53.0",
- "@sentry/cli-linux-x64": "2.53.0",
- "@sentry/cli-win32-arm64": "2.53.0",
- "@sentry/cli-win32-i686": "2.53.0",
- "@sentry/cli-win32-x64": "2.53.0"
+ "@sentry/cli-darwin": "2.56.0",
+ "@sentry/cli-linux-arm": "2.56.0",
+ "@sentry/cli-linux-arm64": "2.56.0",
+ "@sentry/cli-linux-i686": "2.56.0",
+ "@sentry/cli-linux-x64": "2.56.0",
+ "@sentry/cli-win32-arm64": "2.56.0",
+ "@sentry/cli-win32-i686": "2.56.0",
+ "@sentry/cli-win32-x64": "2.56.0"
+ }
+ },
+ "node_modules/@sentry/cli-darwin": {
+ "version": "2.56.0",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-darwin/-/cli-darwin-2.56.0.tgz",
+ "integrity": "sha512-CzXFWbv3GrjU0gFlUM9jt0fvJmyo5ktty4HGxRFfS/eMC6xW58Gg/sEeMVEkdvk5osKooX/YEgfLBdo4zvuWDA==",
+ "license": "BSD-3-Clause",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@sentry/cli-linux-arm": {
+ "version": "2.56.0",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm/-/cli-linux-arm-2.56.0.tgz",
+ "integrity": "sha512-vQCCMhZLugPmr25XBoP94dpQsFa110qK5SBUVJcRpJKyzMZd+6ueeHNslq2mB0OF4BwL1qd/ZDIa4nxa1+0rjQ==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "BSD-3-Clause",
+ "optional": true,
+ "os": [
+ "linux",
+ "freebsd",
+ "android"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@sentry/cli-linux-arm64": {
+ "version": "2.56.0",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.56.0.tgz",
+ "integrity": "sha512-91d5ZlC989j/t+TXor/glPyx6SnLFS/SlJ9fIrHIQohdGKyWWSFb4VKUan8Ok3GYu9SUzKTMByryIOoYEmeGVw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "BSD-3-Clause",
+ "optional": true,
+ "os": [
+ "linux",
+ "freebsd",
+ "android"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@sentry/cli-linux-i686": {
+ "version": "2.56.0",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-linux-i686/-/cli-linux-i686-2.56.0.tgz",
+ "integrity": "sha512-MZzXuq1Q/TktN81DUs6XSBU752pG3XWSJdZR+NCStIg3l8s3O/Pwh6OcDHTYqgwsYJaGBpA0fP2Afl5XeSAUNg==",
+ "cpu": [
+ "x86",
+ "ia32"
+ ],
+ "license": "BSD-3-Clause",
+ "optional": true,
+ "os": [
+ "linux",
+ "freebsd",
+ "android"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@sentry/cli-linux-x64": {
+ "version": "2.56.0",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-linux-x64/-/cli-linux-x64-2.56.0.tgz",
+ "integrity": "sha512-INOO2OQ90Y3UzYgHRdrHdKC/0es3YSHLv0iNNgQwllL0YZihSVNYSSrZqcPq8oSDllEy9Vt9oOm/7qEnUP2Kfw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "BSD-3-Clause",
+ "optional": true,
+ "os": [
+ "linux",
+ "freebsd",
+ "android"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@sentry/cli-win32-arm64": {
+ "version": "2.56.0",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-win32-arm64/-/cli-win32-arm64-2.56.0.tgz",
+ "integrity": "sha512-eUvkVk9KK01q6/qyugQPh7dAxqFPbgOa62QAoSwo11WQFYc3NPgJLilFWLQo+nahHGYKh6PKuCJ5tcqnQq5Hkg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "BSD-3-Clause",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@sentry/cli-win32-i686": {
+ "version": "2.56.0",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-win32-i686/-/cli-win32-i686-2.56.0.tgz",
+ "integrity": "sha512-mpCA8hKXuvT17bl1H/54KOa5i+02VBBHVlOiP3ltyBuQUqfvX/30Zl/86Spy+ikodovZWAHv5e5FpyXbY1/mPw==",
+ "cpu": [
+ "x86",
+ "ia32"
+ ],
+ "license": "BSD-3-Clause",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=10"
}
},
"node_modules/@sentry/cli-win32-x64": {
- "version": "2.53.0",
- "resolved": "https://registry.npmjs.org/@sentry/cli-win32-x64/-/cli-win32-x64-2.53.0.tgz",
- "integrity": "sha512-1TXYxYHtwgUq5KAJt3erRzzUtPqg7BlH9T7MdSPHjJatkrr/kwZqnVe2H6Arr/5NH891vOlIeSPHBdgJUAD69g==",
+ "version": "2.56.0",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-win32-x64/-/cli-win32-x64-2.56.0.tgz",
+ "integrity": "sha512-UV0pXNls+/ViAU/3XsHLLNEHCsRYaGEwJdY3HyGIufSlglxrX6BVApkV9ziGi4WAxcJWLjQdfcEs6V5B+wBy0A==",
"cpu": [
"x64"
],
@@ -4597,54 +4698,14 @@
"node": ">= 14"
}
},
- "node_modules/@sentry/vite-plugin/node_modules/@sentry/babel-plugin-component-annotate": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/@sentry/babel-plugin-component-annotate/-/babel-plugin-component-annotate-4.3.0.tgz",
- "integrity": "sha512-OuxqBprXRyhe8Pkfyz/4yHQJc5c3lm+TmYWSSx8u48g5yKewSQDOxkiLU5pAk3WnbLPy8XwU/PN+2BG0YFU9Nw==",
- "license": "MIT",
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/@sentry/vite-plugin/node_modules/@sentry/bundler-plugin-core": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/@sentry/bundler-plugin-core/-/bundler-plugin-core-4.3.0.tgz",
- "integrity": "sha512-dmR4DJhJ4jqVWGWppuTL2blNFqOZZnt4aLkewbD1myFG3KVfUx8CrMQWEmGjkgPOtj5TO6xH9PyTJjXC6o5tnA==",
- "license": "MIT",
- "dependencies": {
- "@babel/core": "^7.18.5",
- "@sentry/babel-plugin-component-annotate": "4.3.0",
- "@sentry/cli": "^2.51.0",
- "dotenv": "^16.3.1",
- "find-up": "^5.0.0",
- "glob": "^9.3.2",
- "magic-string": "0.30.8",
- "unplugin": "1.0.1"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/@sentry/vite-plugin/node_modules/dotenv": {
- "version": "16.6.1",
- "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz",
- "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==",
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://dotenvx.com"
- }
- },
"node_modules/@sentry/webpack-plugin": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/@sentry/webpack-plugin/-/webpack-plugin-4.1.1.tgz",
- "integrity": "sha512-2gFWcQMW1HdJDo/7rADeFs9crkH02l+mW4O1ORbxSjuegauyp1W8SBe7EfPoXbUmLdA3zwnpIxEXjjQpP5Etzg==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@sentry/webpack-plugin/-/webpack-plugin-4.3.0.tgz",
+ "integrity": "sha512-K4nU1SheK/tvyakBws2zfd+MN6hzmpW+wPTbSbDWn1+WL9+g9hsPh8hjFFiVe47AhhUoUZ3YgiH2HyeHXjHflA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@sentry/bundler-plugin-core": "4.1.1",
+ "@sentry/bundler-plugin-core": "4.3.0",
"unplugin": "1.0.1",
"uuid": "^9.0.0"
},
@@ -4662,12 +4723,12 @@
"license": "MIT"
},
"node_modules/@splitsoftware/splitio": {
- "version": "11.4.1",
- "resolved": "https://registry.npmjs.org/@splitsoftware/splitio/-/splitio-11.4.1.tgz",
- "integrity": "sha512-wipPwsWwXPRzvEs28VYahILsF8+Lor4tby2GB3CD9kn0C3sQ2Zf3/NaDH4i7acobMlRy2sQ5mu4eeRt15gLJyw==",
+ "version": "11.6.0",
+ "resolved": "https://registry.npmjs.org/@splitsoftware/splitio/-/splitio-11.6.0.tgz",
+ "integrity": "sha512-48sksG00073Nltma/BxpH6xHVZmoBjank40EU4h+XqrMGm0qM3jGngPO9R/iWAHdSduUWAoMJVJYA68AtvKgeQ==",
"license": "Apache-2.0",
"dependencies": {
- "@splitsoftware/splitio-commons": "2.4.1",
+ "@splitsoftware/splitio-commons": "2.6.0",
"bloom-filters": "^3.0.4",
"ioredis": "^4.28.0",
"js-yaml": "^3.13.1",
@@ -4680,9 +4741,9 @@
}
},
"node_modules/@splitsoftware/splitio-commons": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/@splitsoftware/splitio-commons/-/splitio-commons-2.4.1.tgz",
- "integrity": "sha512-VcbWpPykfx19LTJ0yeZbV0u3PUIt8MuiZ2a8zqkNf9KnDnhau/XxS/ctoO5jYrg4Nk2rCi0fpt1TkTstqzbaYA==",
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/@splitsoftware/splitio-commons/-/splitio-commons-2.6.0.tgz",
+ "integrity": "sha512-0xODXLciIvHSuMlb8eukIB2epb3ZyGOsrwS0cMuTdxEvCqr7Nuc9pWDdJtRuN1UwL/jIjBnpDYAc8s6mpqLX2g==",
"license": "Apache-2.0",
"dependencies": {
"@types/ioredis": "^4.28.0",
@@ -4698,12 +4759,12 @@
}
},
"node_modules/@splitsoftware/splitio-react": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/@splitsoftware/splitio-react/-/splitio-react-2.3.1.tgz",
- "integrity": "sha512-s1+IbKvK2HbQykjJKgezBBg076ZsT6f470FJn68N5DtgsVn0QXIwpTZ+j3k78x4ISVZcXTpY0GgWohZ+lujPlg==",
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@splitsoftware/splitio-react/-/splitio-react-2.5.0.tgz",
+ "integrity": "sha512-qD5QaR5MXgHcivD9SwOLr6Xpuyd+G4KCe6Vb1YLbDDEqXeg50E/zPkLN4rmsgKY0gaOHSDyxTzIFU5NV3wNW4A==",
"license": "Apache-2.0",
"dependencies": {
- "@splitsoftware/splitio": "11.4.1",
+ "@splitsoftware/splitio": "11.6.0",
"memoize-one": "^5.1.1",
"shallowequal": "^1.1.0",
"tslib": "^2.3.1"
@@ -4788,9 +4849,9 @@
}
},
"node_modules/@testing-library/jest-dom": {
- "version": "6.8.0",
- "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.8.0.tgz",
- "integrity": "sha512-WgXcWzVM6idy5JaftTVC8Vs83NKRmGJz4Hqs4oyOuO2J4r/y79vvKZsb+CaGyCSEbUPI6OsewfPd0G1A0/TUZQ==",
+ "version": "6.9.1",
+ "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz",
+ "integrity": "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5453,9 +5514,9 @@
}
},
"node_modules/antd": {
- "version": "5.27.3",
- "resolved": "https://registry.npmjs.org/antd/-/antd-5.27.3.tgz",
- "integrity": "sha512-Jewp1ek1iyqoAyjWyPgzc2kioZ+7S3jh39a+tld/j4ucnuf/cBk4omfyIdhLz49pVNsaEcRp5LtJOSQPFwPgpA==",
+ "version": "5.27.4",
+ "resolved": "https://registry.npmjs.org/antd/-/antd-5.27.4.tgz",
+ "integrity": "sha512-rhArohoAUCxhkPjGI/BXthOrrjaElL4Fb7d4vEHnIR3DpxFXfegd4rN21IgGdiF+Iz4EFuUZu8MdS8NuJHLSVQ==",
"license": "MIT",
"dependencies": {
"@ant-design/colors": "^7.2.1",
@@ -5494,10 +5555,10 @@
"rc-resize-observer": "^1.4.3",
"rc-segmented": "~2.7.0",
"rc-select": "~14.16.8",
- "rc-slider": "~11.1.8",
+ "rc-slider": "~11.1.9",
"rc-steps": "~6.0.1",
"rc-switch": "~4.1.0",
- "rc-table": "~7.52.6",
+ "rc-table": "~7.53.0",
"rc-tabs": "~15.7.0",
"rc-textarea": "~1.10.2",
"rc-tooltip": "~6.4.0",
@@ -5868,9 +5929,9 @@
}
},
"node_modules/axios": {
- "version": "1.11.0",
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.11.0.tgz",
- "integrity": "sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==",
+ "version": "1.12.2",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.12.2.tgz",
+ "integrity": "sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==",
"license": "MIT",
"dependencies": {
"follow-redirects": "^1.15.6",
@@ -5998,6 +6059,15 @@
],
"license": "MIT"
},
+ "node_modules/baseline-browser-mapping": {
+ "version": "2.8.12",
+ "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.12.tgz",
+ "integrity": "sha512-vAPMQdnyKCBtkmQA6FMCBvU9qFIppS3nzyXnEM+Lo2IAhG4Mpjv9cCxMudhgV3YdNNJv6TNqXy97dfRVL2LmaQ==",
+ "license": "Apache-2.0",
+ "bin": {
+ "baseline-browser-mapping": "dist/cli.js"
+ }
+ },
"node_modules/big-integer": {
"version": "1.6.52",
"resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz",
@@ -6235,9 +6305,9 @@
}
},
"node_modules/browserslist": {
- "version": "4.25.3",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.3.tgz",
- "integrity": "sha512-cDGv1kkDI4/0e5yON9yM5G/0A5u8sf5TnmdX5C9qHzI9PPu++sQ9zjm1k9NiOrf3riY4OkK0zSGqfvJyJsgCBQ==",
+ "version": "4.26.3",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.26.3.tgz",
+ "integrity": "sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==",
"funding": [
{
"type": "opencollective",
@@ -6254,9 +6324,10 @@
],
"license": "MIT",
"dependencies": {
- "caniuse-lite": "^1.0.30001735",
- "electron-to-chromium": "^1.5.204",
- "node-releases": "^2.0.19",
+ "baseline-browser-mapping": "^2.8.9",
+ "caniuse-lite": "^1.0.30001746",
+ "electron-to-chromium": "^1.5.227",
+ "node-releases": "^2.0.21",
"update-browserslist-db": "^1.1.3"
},
"bin": {
@@ -6434,9 +6505,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001737",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001737.tgz",
- "integrity": "sha512-BiloLiXtQNrY5UyF0+1nSJLXUENuhka2pzy2Fx5pGxqavdrxSCW4U6Pn/PoG3Efspi2frRbHpBV2XsrPE6EDlw==",
+ "version": "1.0.30001748",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001748.tgz",
+ "integrity": "sha512-5P5UgAr0+aBmNiplks08JLw+AW/XG/SurlgZLgB1dDLfAw7EfRGxIwzPHxdSCGY/BTKDqIVyJL87cCN6s0ZR0w==",
"funding": [
{
"type": "opencollective",
@@ -6493,9 +6564,9 @@
}
},
"node_modules/chalk": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.0.tgz",
- "integrity": "sha512-46QrSQFyVSEyYAgQ22hQ+zDa60YHA4fBstHmtSApj1Y5vKtG27fWowW03jCk5KcbXEWPZUIR894aARCA/G1kfQ==",
+ "version": "5.6.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz",
+ "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -7501,9 +7572,9 @@
}
},
"node_modules/dotenv": {
- "version": "17.2.2",
- "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.2.2.tgz",
- "integrity": "sha512-Sf2LSQP+bOlhKWWyhFsn0UsfdK/kCWRv1iuA2gXAwt3dyNabr6QSj00I2V10pidqz69soatm9ZwZvpQMTIOd5Q==",
+ "version": "17.2.3",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.2.3.tgz",
+ "integrity": "sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==",
"license": "BSD-2-Clause",
"engines": {
"node": ">=12"
@@ -7567,9 +7638,9 @@
}
},
"node_modules/electron-to-chromium": {
- "version": "1.5.208",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.208.tgz",
- "integrity": "sha512-ozZyibehoe7tOhNaf16lKmljVf+3npZcJIEbJRVftVsmAg5TeA1mGS9dVCZzOwr2xT7xK15V0p7+GZqSPgkuPg==",
+ "version": "1.5.231",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.231.tgz",
+ "integrity": "sha512-cyl6vqZGkEBnz/PmvFHn/u9G/hbo+FF2CNAOXriG87QOeLsUdifCZ9UbHNscE9wGdrC8XstNMli0CbQnZQ+fkA==",
"license": "ISC"
},
"node_modules/elliptic": {
@@ -7961,20 +8032,20 @@
}
},
"node_modules/eslint": {
- "version": "9.33.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.33.0.tgz",
- "integrity": "sha512-TS9bTNIryDzStCpJN93aC5VRSW3uTx9sClUn4B87pwiCaJh220otoI0X8mJKr+VcPtniMdN8GKjlwgWGUv5ZKA==",
+ "version": "9.37.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.37.0.tgz",
+ "integrity": "sha512-XyLmROnACWqSxiGYArdef1fItQd47weqB7iwtfr9JHwRrqIXZdcFMvvEcL9xHCmL0SNsOvF0c42lWyM1U5dgig==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@eslint-community/eslint-utils": "^4.2.0",
+ "@eslint-community/eslint-utils": "^4.8.0",
"@eslint-community/regexpp": "^4.12.1",
"@eslint/config-array": "^0.21.0",
- "@eslint/config-helpers": "^0.3.1",
- "@eslint/core": "^0.15.2",
+ "@eslint/config-helpers": "^0.4.0",
+ "@eslint/core": "^0.16.0",
"@eslint/eslintrc": "^3.3.1",
- "@eslint/js": "9.33.0",
- "@eslint/plugin-kit": "^0.3.5",
+ "@eslint/js": "9.37.0",
+ "@eslint/plugin-kit": "^0.4.0",
"@humanfs/node": "^0.16.6",
"@humanwhocodes/module-importer": "^1.0.1",
"@humanwhocodes/retry": "^0.4.2",
@@ -8741,6 +8812,23 @@
"node": ">=10.13.0"
}
},
+ "node_modules/glob-to-regex.js": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/glob-to-regex.js/-/glob-to-regex.js-1.2.0.tgz",
+ "integrity": "sha512-QMwlOQKU/IzqMUOAZWubUOT8Qft+Y0KQWnX9nK3ch0CJg0tTp4TvGZsTfudYKv2NzoQSyPcnA6TYeIQ3jGichQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=10.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/streamich"
+ },
+ "peerDependencies": {
+ "tslib": "2"
+ }
+ },
"node_modules/glob/node_modules/brace-expansion": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
@@ -9150,9 +9238,9 @@
}
},
"node_modules/i18next": {
- "version": "25.5.2",
- "resolved": "https://registry.npmjs.org/i18next/-/i18next-25.5.2.tgz",
- "integrity": "sha512-lW8Zeh37i/o0zVr+NoCHfNnfvVw+M6FQbRp36ZZ/NyHDJ3NJVpp2HhAUyU9WafL5AssymNoOjMRB48mmx2P6Hw==",
+ "version": "25.5.3",
+ "resolved": "https://registry.npmjs.org/i18next/-/i18next-25.5.3.tgz",
+ "integrity": "sha512-joFqorDeQ6YpIXni944upwnuHBf5IoPMuqAchGVeQLdWC2JOjxgM9V8UGLhNIIH/Q8QleRxIi0BSRQehSrDLcg==",
"funding": [
{
"type": "individual",
@@ -9355,9 +9443,9 @@
}
},
"node_modules/ioredis": {
- "version": "4.30.0",
- "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-4.30.0.tgz",
- "integrity": "sha512-P9F4Eo6zicYsIJbEy/mPJmSxKY0rVcmiy5H8oXPxPDotQRCvCBjBuI5QWoQQanVE9jdeocnum5iqYAHl4pHdLA==",
+ "version": "4.30.1",
+ "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-4.30.1.tgz",
+ "integrity": "sha512-17Ed70njJ7wT7JZsdTVLb0j/cmwHwfQCFu+AP6jY7nFKd+CA7MBW7nX121mM64eT8S9ekAVtYYt8nGQPmm3euA==",
"license": "MIT",
"dependencies": {
"@ioredis/commands": "^1.0.2",
@@ -10296,15 +10384,15 @@
}
},
"node_modules/libphonenumber-js": {
- "version": "1.12.15",
- "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.12.15.tgz",
- "integrity": "sha512-TMDCtIhWUDHh91wRC+wFuGlIzKdPzaTUHHVrIZ3vPUEoNaXFLrsIQ1ZpAeZeXApIF6rvDksMTvjrIQlLKaYxqQ==",
+ "version": "1.12.23",
+ "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.12.23.tgz",
+ "integrity": "sha512-RN3q3gImZ91BvRDYjWp7ICz3gRn81mW5L4SW+2afzNCC0I/nkXstBgZThQGTE3S/9q5J90FH4dP+TXx8NhdZKg==",
"license": "MIT"
},
"node_modules/lightningcss": {
- "version": "1.30.1",
- "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.1.tgz",
- "integrity": "sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==",
+ "version": "1.30.2",
+ "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.2.tgz",
+ "integrity": "sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==",
"license": "MPL-2.0",
"dependencies": {
"detect-libc": "^2.0.3"
@@ -10317,22 +10405,223 @@
"url": "https://opencollective.com/parcel"
},
"optionalDependencies": {
- "lightningcss-darwin-arm64": "1.30.1",
- "lightningcss-darwin-x64": "1.30.1",
- "lightningcss-freebsd-x64": "1.30.1",
- "lightningcss-linux-arm-gnueabihf": "1.30.1",
- "lightningcss-linux-arm64-gnu": "1.30.1",
- "lightningcss-linux-arm64-musl": "1.30.1",
- "lightningcss-linux-x64-gnu": "1.30.1",
- "lightningcss-linux-x64-musl": "1.30.1",
- "lightningcss-win32-arm64-msvc": "1.30.1",
- "lightningcss-win32-x64-msvc": "1.30.1"
+ "lightningcss-android-arm64": "1.30.2",
+ "lightningcss-darwin-arm64": "1.30.2",
+ "lightningcss-darwin-x64": "1.30.2",
+ "lightningcss-freebsd-x64": "1.30.2",
+ "lightningcss-linux-arm-gnueabihf": "1.30.2",
+ "lightningcss-linux-arm64-gnu": "1.30.2",
+ "lightningcss-linux-arm64-musl": "1.30.2",
+ "lightningcss-linux-x64-gnu": "1.30.2",
+ "lightningcss-linux-x64-musl": "1.30.2",
+ "lightningcss-win32-arm64-msvc": "1.30.2",
+ "lightningcss-win32-x64-msvc": "1.30.2"
+ }
+ },
+ "node_modules/lightningcss-android-arm64": {
+ "version": "1.30.2",
+ "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.30.2.tgz",
+ "integrity": "sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-darwin-arm64": {
+ "version": "1.30.2",
+ "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.2.tgz",
+ "integrity": "sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-darwin-x64": {
+ "version": "1.30.2",
+ "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.2.tgz",
+ "integrity": "sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-freebsd-x64": {
+ "version": "1.30.2",
+ "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.2.tgz",
+ "integrity": "sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm-gnueabihf": {
+ "version": "1.30.2",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.2.tgz",
+ "integrity": "sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm64-gnu": {
+ "version": "1.30.2",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.2.tgz",
+ "integrity": "sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm64-musl": {
+ "version": "1.30.2",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.2.tgz",
+ "integrity": "sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-x64-gnu": {
+ "version": "1.30.2",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.2.tgz",
+ "integrity": "sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-x64-musl": {
+ "version": "1.30.2",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.2.tgz",
+ "integrity": "sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-win32-arm64-msvc": {
+ "version": "1.30.2",
+ "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.2.tgz",
+ "integrity": "sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
}
},
"node_modules/lightningcss-win32-x64-msvc": {
- "version": "1.30.1",
- "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.1.tgz",
- "integrity": "sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==",
+ "version": "1.30.2",
+ "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.2.tgz",
+ "integrity": "sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==",
"cpu": [
"x64"
],
@@ -10527,9 +10816,9 @@
}
},
"node_modules/markerjs2": {
- "version": "2.32.6",
- "resolved": "https://registry.npmjs.org/markerjs2/-/markerjs2-2.32.6.tgz",
- "integrity": "sha512-uT2ZzORY/oTJm0ByvXtKllg6hPyb+ndFmXAL9tRJQsyUBUEHDAlg3+/mBKRTzeDP0wD94Ef0XXod5v4+g1hgwg==",
+ "version": "2.32.7",
+ "resolved": "https://registry.npmjs.org/markerjs2/-/markerjs2-2.32.7.tgz",
+ "integrity": "sha512-HeFRZjmc43DOG3lSQp92z49cq2oCYpYn2pX++SkJAW1Dij4xJtRquVRf+cXeSZQWDX3ufns1Ry/bGk+zveP7rA==",
"license": "SEE LICENSE IN LICENSE"
},
"node_modules/material-colors": {
@@ -10713,21 +11002,19 @@
}
},
"node_modules/memfs": {
- "version": "4.37.1",
- "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.37.1.tgz",
- "integrity": "sha512-10/gLuR1lnzU17BvXrpVplKs6lQmRtzH/67bar7fwRBEGLCSfK33M8lxN3gT1MdSUmGRRpN8LpIex9c39hAUyQ==",
+ "version": "4.48.1",
+ "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.48.1.tgz",
+ "integrity": "sha512-vWO+1ROkhOALF1UnT9aNOOflq5oFDlqwTXaPg6duo07fBLxSH0+bcF0TY1lbA1zTNKyGgDxgaDdKx5MaewLX5A==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"@jsonjoy.com/json-pack": "^1.11.0",
"@jsonjoy.com/util": "^1.9.0",
+ "glob-to-regex.js": "^1.0.1",
"thingies": "^2.5.0",
"tree-dump": "^1.0.3",
"tslib": "^2.0.0"
},
- "engines": {
- "node": ">= 4.0.0"
- },
"funding": {
"type": "github",
"url": "https://github.com/sponsors/streamich"
@@ -11476,9 +11763,9 @@
}
},
"node_modules/node-releases": {
- "version": "2.0.19",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz",
- "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==",
+ "version": "2.0.23",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.23.tgz",
+ "integrity": "sha512-cCmFDMSm26S6tQSDpBCg/NR8NENrVPhAJSf+XbxBG4rPFaaonlEoE9wHQmun+cls499TQGSb7ZyPBRlzgKfpeg==",
"license": "MIT"
},
"node_modules/node-stdlib-browser": {
@@ -11537,9 +11824,9 @@
}
},
"node_modules/normalize-url": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.2.tgz",
- "integrity": "sha512-Ee/R3SyN4BuynXcnTaekmaVdbDAEiNrHqjQIA37mHU8G9pf7aaAD4ZX3XjBLo6rsdcxA/gtkcNYZLt30ACgynw==",
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.1.0.tgz",
+ "integrity": "sha512-X06Mfd/5aKsRHc0O0J5CUedwnPmnDtLF2+nq+KN9KSDlJHkPuh0JUviWjEWMe0SW/9TDdSLVPuk7L5gGTIA1/w==",
"license": "MIT",
"engines": {
"node": ">=14.16"
@@ -12189,13 +12476,13 @@
}
},
"node_modules/playwright": {
- "version": "1.55.0",
- "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.55.0.tgz",
- "integrity": "sha512-sdCWStblvV1YU909Xqx0DhOjPZE4/5lJsIS84IfN9dAZfcl/CIZ5O8l3o0j7hPMjDvqoTF8ZUcc+i/GL5erstA==",
+ "version": "1.56.0",
+ "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.56.0.tgz",
+ "integrity": "sha512-X5Q1b8lOdWIE4KAoHpW3SE8HvUB+ZZsUoN64ZhjnN8dOb1UpujxBtENGiZFE+9F/yhzJwYa+ca3u43FeLbboHA==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "playwright-core": "1.55.0"
+ "playwright-core": "1.56.0"
},
"bin": {
"playwright": "cli.js"
@@ -12208,9 +12495,9 @@
}
},
"node_modules/playwright-core": {
- "version": "1.55.0",
- "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.55.0.tgz",
- "integrity": "sha512-GvZs4vU3U5ro2nZpeiwyb0zuFaqb9sUiAJuyrWpcGouD8y9/HLgGbNRjIph7zU9D3hnPaisMl9zG9CgFi/biIg==",
+ "version": "1.56.0",
+ "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.56.0.tgz",
+ "integrity": "sha512-1SXl7pMfemAMSDn5rkPeZljxOCYAmQnYLBTExuh6E8USHXGSX3dx6lYZN/xPpTz1vimXmPA9CDnILvmJaB8aSQ==",
"dev": true,
"license": "Apache-2.0",
"bin": {
@@ -12280,12 +12567,12 @@
"license": "MIT"
},
"node_modules/posthog-js": {
- "version": "1.261.7",
- "resolved": "https://registry.npmjs.org/posthog-js/-/posthog-js-1.261.7.tgz",
- "integrity": "sha512-Fjpbz6VfIMsEbKIN/UyTWhU1DGgVIngqoRjPGRolemIMOVzTfI77OZq8WwiBhMug+rU+wNhGCQhC41qRlR5CxA==",
+ "version": "1.271.0",
+ "resolved": "https://registry.npmjs.org/posthog-js/-/posthog-js-1.271.0.tgz",
+ "integrity": "sha512-jYsWrxO+xRkSm7Sigy6SAsnd688VPG0twL3nkonbjVEy+cB80967bhA2mgu2CDTvQ14sLgYfue8ukbSR0Rtvlw==",
"license": "SEE LICENSE IN LICENSE",
"dependencies": {
- "@posthog/core": "1.0.2",
+ "@posthog/core": "1.2.2",
"core-js": "^3.38.1",
"fflate": "^0.4.8",
"preact": "^10.19.3",
@@ -12514,9 +12801,9 @@
}
},
"node_modules/query-string": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/query-string/-/query-string-9.2.2.tgz",
- "integrity": "sha512-pDSIZJ9sFuOp6VnD+5IkakSVf+rICAuuU88Hcsr6AKL0QtxSIfVuKiVP2oahFI7tk3CRSexwV+Ya6MOoTxzg9g==",
+ "version": "9.3.1",
+ "resolved": "https://registry.npmjs.org/query-string/-/query-string-9.3.1.tgz",
+ "integrity": "sha512-5fBfMOcDi5SA9qj5jZhWAcTtDfKF5WFdd2uD9nVNlbxVv1baq65aALy6qofpNEGELHvisjjasxQp7BlM9gvMzw==",
"license": "MIT",
"dependencies": {
"decode-uri-component": "^0.4.1",
@@ -12970,9 +13257,9 @@
}
},
"node_modules/rc-slider": {
- "version": "11.1.8",
- "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-11.1.8.tgz",
- "integrity": "sha512-2gg/72YFSpKP+Ja5AjC5DPL1YnV8DEITDQrcc1eASrUYjl0esptaBVJBh5nLTXCCp15eD8EuGjwezVGSHhs9tQ==",
+ "version": "11.1.9",
+ "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-11.1.9.tgz",
+ "integrity": "sha512-h8IknhzSh3FEM9u8ivkskh+Ef4Yo4JRIY2nj7MrH6GQmrwV6mcpJf5/4KgH5JaVI1H3E52yCdpOlVyGZIeph5A==",
"license": "MIT",
"dependencies": {
"@babel/runtime": "^7.10.1",
@@ -13021,9 +13308,9 @@
}
},
"node_modules/rc-table": {
- "version": "7.52.7",
- "resolved": "https://registry.npmjs.org/rc-table/-/rc-table-7.52.7.tgz",
- "integrity": "sha512-yuZfnTpuHwRa4JH+F28wQfGeDzqtgIDvLBBJk5sFncXQjTExhtBNc6dPfVo5pL5SjabJEoejefs6wsrAKfhDoQ==",
+ "version": "7.53.1",
+ "resolved": "https://registry.npmjs.org/rc-table/-/rc-table-7.53.1.tgz",
+ "integrity": "sha512-firAd7Z+liqIDS5TubJ1qqcoBd6YcANLKWQDZhFf3rfoOTt/UNPj4n3O+2vhl+z4QMqwPEUVAil661WHA8H8Aw==",
"license": "MIT",
"dependencies": {
"@babel/runtime": "^7.10.1",
@@ -13622,9 +13909,9 @@
}
},
"node_modules/react-virtuoso": {
- "version": "4.14.0",
- "resolved": "https://registry.npmjs.org/react-virtuoso/-/react-virtuoso-4.14.0.tgz",
- "integrity": "sha512-fR+eiCvirSNIRvvCD7ueJPRsacGQvUbjkwgWzBZXVq+yWypoH7mRUvWJzGHIdoRaCZCT+6mMMMwIG2S1BW3uwA==",
+ "version": "4.14.1",
+ "resolved": "https://registry.npmjs.org/react-virtuoso/-/react-virtuoso-4.14.1.tgz",
+ "integrity": "sha512-NRUF1ak8lY+Tvc6WN9cce59gU+lilzVtOozP+pm9J7iHshLGGjsiAB4rB2qlBPHjFbcXOQpT+7womNHGDUql8w==",
"license": "MIT",
"peerDependencies": {
"react": ">=16 || >=17 || >= 18 || >= 19",
@@ -14263,9 +14550,9 @@
"license": "MIT"
},
"node_modules/sass": {
- "version": "1.92.0",
- "resolved": "https://registry.npmjs.org/sass/-/sass-1.92.0.tgz",
- "integrity": "sha512-KDNI0BxgIRDAfJgzNm5wuy+4yOCIZyrUbjSpiU/JItfih+KGXAVefKL53MTml054MmBA3DDKIBMSI/7XLxZJ3A==",
+ "version": "1.93.2",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.93.2.tgz",
+ "integrity": "sha512-t+YPtOQHpGW1QWsh1CHQ5cPIr9lbbGZLZnbihP/D/qZj/yuV68m8qarcV17nvkOX81BCrvzAlq2klCQFZghyTg==",
"license": "MIT",
"dependencies": {
"chokidar": "^4.0.0",
@@ -15501,14 +15788,14 @@
"license": "MIT"
},
"node_modules/tinyglobby": {
- "version": "0.2.14",
- "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz",
- "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==",
+ "version": "0.2.15",
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz",
+ "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "fdir": "^6.4.4",
- "picomatch": "^4.0.2"
+ "fdir": "^6.5.0",
+ "picomatch": "^4.0.3"
},
"engines": {
"node": ">=12.0.0"
@@ -16303,9 +16590,9 @@
}
},
"node_modules/vite": {
- "version": "7.1.3",
- "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.3.tgz",
- "integrity": "sha512-OOUi5zjkDxYrKhTV3V7iKsoS37VUM7v40+HuwEmcrsf11Cdx9y3DIr2Px6liIcZFwt3XSRpQvFpL3WVy7ApkGw==",
+ "version": "7.1.9",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.9.tgz",
+ "integrity": "sha512-4nVGliEpxmhCL8DslSAUdxlB6+SMrhB0a1v5ijlh1xB1nEPuy1mxaHxysVucLHuWryAxLWg6a5ei+U4TLn/rFg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -16314,7 +16601,7 @@
"picomatch": "^4.0.3",
"postcss": "^8.5.6",
"rollup": "^4.43.0",
- "tinyglobby": "^0.2.14"
+ "tinyglobby": "^0.2.15"
},
"bin": {
"vite": "bin/vite.js"
diff --git a/client/package.json b/client/package.json
index c9cacf3b4..7c1d801b4 100644
--- a/client/package.json
+++ b/client/package.json
@@ -8,56 +8,56 @@
"private": true,
"proxy": "http://localhost:4000",
"dependencies": {
- "@amplitude/analytics-browser": "^2.23.5",
+ "@amplitude/analytics-browser": "^2.25.2",
"@ant-design/pro-layout": "^7.22.6",
"@apollo/client": "^3.13.9",
"@emotion/is-prop-valid": "^1.4.0",
"@fingerprintjs/fingerprintjs": "^4.6.1",
"@firebase/analytics": "^0.10.17",
- "@firebase/app": "^0.14.2",
+ "@firebase/app": "^0.14.3",
"@firebase/auth": "^1.10.8",
- "@firebase/firestore": "^4.9.1",
+ "@firebase/firestore": "^4.9.2",
"@firebase/messaging": "^0.12.22",
"@jsreport/browser-client": "^3.1.0",
"@reduxjs/toolkit": "^2.9.0",
- "@sentry/cli": "^2.53.0",
+ "@sentry/cli": "^2.56.0",
"@sentry/react": "^9.43.0",
"@sentry/vite-plugin": "^4.3.0",
- "@splitsoftware/splitio-react": "^2.3.1",
+ "@splitsoftware/splitio-react": "^2.5.0",
"@tanem/react-nprogress": "^5.0.53",
- "antd": "^5.27.3",
+ "antd": "^5.27.4",
"apollo-link-logger": "^2.0.1",
"apollo-link-sentry": "^4.4.0",
"autosize": "^6.0.1",
- "axios": "^1.11.0",
+ "axios": "^1.12.2",
"classnames": "^2.5.1",
"css-box-model": "^1.2.1",
"dayjs": "^1.11.18",
"dayjs-business-days2": "^1.3.0",
"dinero.js": "^1.9.1",
- "dotenv": "^17.2.2",
+ "dotenv": "^17.2.3",
"env-cmd": "^10.1.0",
"exifr": "^7.1.3",
"graphql": "^16.11.0",
- "i18next": "^25.5.2",
+ "i18next": "^25.5.3",
"i18next-browser-languagedetector": "^8.2.0",
"immutability-helper": "^3.1.1",
- "libphonenumber-js": "^1.12.15",
+ "libphonenumber-js": "^1.12.23",
+ "lightningcss": "^1.30.2",
"logrocket": "^9.0.2",
- "markerjs2": "^2.32.6",
+ "markerjs2": "^2.32.7",
"memoize-one": "^6.0.0",
- "normalize-url": "^8.0.2",
+ "normalize-url": "^8.1.0",
"object-hash": "^3.0.0",
"phone": "^3.1.67",
- "posthog-js": "^1.261.7",
+ "posthog-js": "^1.271.0",
"prop-types": "^15.8.1",
- "query-string": "^9.2.2",
+ "query-string": "^9.3.1",
"raf-schd": "^4.0.3",
"react": "^18.3.1",
"react-big-calendar": "^1.19.4",
"react-color": "^2.19.3",
"react-cookie": "^8.0.1",
- "lightningcss": "^1.30.1",
"react-dom": "^18.3.1",
"react-drag-listview": "^2.0.0",
"react-grid-gallery": "^1.0.1",
@@ -73,7 +73,7 @@
"react-resizable": "^3.0.5",
"react-router-dom": "^6.30.0",
"react-sticky": "^6.0.3",
- "react-virtuoso": "^4.14.0",
+ "react-virtuoso": "^4.14.1",
"recharts": "^2.15.2",
"redux": "^5.0.1",
"redux-actions": "^3.0.3",
@@ -81,7 +81,7 @@
"redux-saga": "^1.3.0",
"redux-state-sync": "^3.1.4",
"reselect": "^5.1.1",
- "sass": "^1.92.0",
+ "sass": "^1.93.2",
"socket.io-client": "^4.8.1",
"styled-components": "^6.1.19",
"subscriptions-transport-ws": "^0.11.0",
@@ -133,33 +133,33 @@
"@rollup/rollup-linux-x64-gnu": "4.6.1"
},
"devDependencies": {
- "@ant-design/icons": "^6.0.0",
+ "@ant-design/icons": "^6.1.0",
"@babel/plugin-proposal-private-property-in-object": "^7.21.11",
"@babel/preset-react": "^7.27.1",
- "@dotenvx/dotenvx": "^1.49.0",
+ "@dotenvx/dotenvx": "^1.51.0",
"@emotion/babel-plugin": "^11.13.5",
"@emotion/react": "^11.14.0",
- "@eslint/js": "^9.33.0",
- "@playwright/test": "^1.55.0",
- "@sentry/webpack-plugin": "^4.1.1",
+ "@eslint/js": "^9.37.0",
+ "@playwright/test": "^1.56.0",
+ "@sentry/webpack-plugin": "^4.3.0",
"@testing-library/dom": "^10.4.1",
- "@testing-library/jest-dom": "^6.8.0",
+ "@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.3.0",
"@vitejs/plugin-react": "^4.6.0",
- "browserslist": "^4.25.3",
+ "browserslist": "^4.26.3",
"browserslist-to-esbuild": "^2.1.1",
- "chalk": "^5.6.0",
- "eslint": "^9.33.0",
+ "chalk": "^5.6.2",
+ "eslint": "^9.37.0",
"eslint-plugin-react": "^7.37.5",
"globals": "^15.15.0",
"jsdom": "^26.0.0",
- "memfs": "^4.36.3",
+ "memfs": "^4.48.1",
"os-browserify": "^0.3.0",
- "playwright": "^1.55.0",
+ "playwright": "^1.56.0",
"react-error-overlay": "^6.1.0",
"redux-logger": "^3.0.6",
"source-map-explorer": "^2.5.3",
- "vite": "^7.1.3",
+ "vite": "^7.1.9",
"vite-plugin-babel": "^1.3.2",
"vite-plugin-eslint": "^1.8.1",
"vite-plugin-node-polyfills": "^0.24.0",
diff --git a/client/src/App/App.container.jsx b/client/src/App/App.container.jsx
index 28c6fb838..9566e0626 100644
--- a/client/src/App/App.container.jsx
+++ b/client/src/App/App.container.jsx
@@ -12,6 +12,7 @@ import GlobalLoadingBar from "../components/global-loading-bar/global-loading-ba
import { setDarkMode } from "../redux/application/application.actions";
import { selectDarkMode } from "../redux/application/application.selectors";
import { selectCurrentUser } from "../redux/user/user.selectors.js";
+import { signOutStart } from "../redux/user/user.actions";
import client from "../utils/GraphQLClient";
import App from "./App";
import getTheme from "./themeProvider";
@@ -20,14 +21,13 @@ import getTheme from "./themeProvider";
const config = {
core: {
authorizationKey: import.meta.env.VITE_APP_SPLIT_API,
- key: "anon" // Default key, overridden dynamically by SplitClientProvider
+ key: "anon"
}
};
-// Custom provider to manage the Split client key based on imexshopid from Redux
function SplitClientProvider({ children }) {
- const imexshopid = useSelector((state) => state.user.imexshopid); // Access imexshopid from Redux store
- const splitClient = useSplitClient({ key: imexshopid || "anon" }); // Use imexshopid or fallback to "anon"
+ const imexshopid = useSelector((state) => state.user.imexshopid);
+ const splitClient = useSplitClient({ key: imexshopid || "anon" });
useEffect(() => {
if (splitClient && imexshopid) {
console.log(`Split client initialized with key: ${imexshopid}, isReady: ${splitClient.isReady}`);
@@ -36,40 +36,66 @@ function SplitClientProvider({ children }) {
return children;
}
-const mapDispatchToProps = (dispatch) => ({
- setDarkMode: (isDarkMode) => dispatch(setDarkMode(isDarkMode))
-});
-
const mapStateToProps = createStructuredSelector({
currentUser: selectCurrentUser
});
-function AppContainer({ currentUser, setDarkMode }) {
+const mapDispatchToProps = (dispatch) => ({
+ setDarkMode: (isDarkMode) => dispatch(setDarkMode(isDarkMode)),
+ signOutStart: () => dispatch(signOutStart())
+});
+
+function AppContainer({ currentUser, setDarkMode, signOutStart }) {
const { t } = useTranslation();
const isDarkMode = useSelector(selectDarkMode);
const theme = useMemo(() => getTheme(isDarkMode), [isDarkMode]);
- // Update data-theme attribute when dark mode changes
+ // Global seamless logout listener with redirect to /signin
+ useEffect(() => {
+ const handleSeamlessLogout = (event) => {
+ if (event.data?.type !== "seamlessLogoutRequest") return;
+
+ const requestOrigin = event.origin;
+
+ if (currentUser?.authorized !== true) {
+ window.parent.postMessage(
+ { type: "seamlessLogoutResponse", status: "already_logged_out" },
+ requestOrigin || "*"
+ );
+ return;
+ }
+
+ signOutStart();
+ window.parent.postMessage({ type: "seamlessLogoutResponse", status: "logged_out" }, requestOrigin || "*");
+ };
+
+ window.addEventListener("message", handleSeamlessLogout);
+ return () => {
+ window.removeEventListener("message", handleSeamlessLogout);
+ };
+ }, [signOutStart, currentUser]);
+
+ // Update data-theme attribute
useEffect(() => {
document.documentElement.setAttribute("data-theme", isDarkMode ? "dark" : "light");
return () => document.documentElement.removeAttribute("data-theme");
}, [isDarkMode]);
- // Sync Redux darkMode with localStorage on user change
+ // Sync darkMode with localStorage
useEffect(() => {
if (currentUser?.uid) {
const savedMode = localStorage.getItem(`dark-mode-${currentUser.uid}`);
if (savedMode !== null) {
setDarkMode(JSON.parse(savedMode));
} else {
- setDarkMode(false); // default to light mode
+ setDarkMode(false);
}
} else {
setDarkMode(false);
}
- }, [currentUser?.uid]);
+ }, [currentUser?.uid, setDarkMode]);
- // Persist darkMode to localStorage when it or user changes
+ // Persist darkMode
useEffect(() => {
if (currentUser?.uid) {
localStorage.setItem(`dark-mode-${currentUser.uid}`, JSON.stringify(isDarkMode));
diff --git a/client/src/components/bill-form/bill-form.lines.component.jsx b/client/src/components/bill-form/bill-form.lines.component.jsx
index 994169302..d1a2c12a8 100644
--- a/client/src/components/bill-form/bill-form.lines.component.jsx
+++ b/client/src/components/bill-form/bill-form.lines.component.jsx
@@ -45,7 +45,7 @@ export function BillEnterModalLinesComponent({
title: t("billlines.fields.jobline"),
dataIndex: "joblineid",
editable: true,
- width: "20rem",
+ minWidth: "10rem",
formItemProps: (field) => {
return {
key: `${field.index}joblinename`,
@@ -71,9 +71,9 @@ export function BillEnterModalLinesComponent({
disabled={disabled}
options={lineData}
style={{
- width: "20rem",
- maxWidth: "20rem",
- minWidth: "10rem",
+ //width: "10rem",
+ // maxWidth: "20rem",
+ minWidth: "20rem",
whiteSpace: "normal",
height: "auto",
minHeight: "32px" // default height of Ant Design inputs
@@ -110,7 +110,7 @@ export function BillEnterModalLinesComponent({
title: t("billlines.fields.line_desc"),
dataIndex: "line_desc",
editable: true,
- width: "20rem",
+ minWidth: "10rem",
formItemProps: (field) => {
return {
key: `${field.index}line_desc`,
@@ -232,7 +232,7 @@ export function BillEnterModalLinesComponent({
title: t("billlines.fields.actual_cost"),
dataIndex: "actual_cost",
editable: true,
- width: "8rem",
+ width: "10rem",
formItemProps: (field) => {
return {
@@ -357,6 +357,7 @@ export function BillEnterModalLinesComponent({
title: t("billlines.labels.deductedfromlbr"),
dataIndex: "deductedfromlbr",
editable: true,
+ width: "40px",
formItemProps: (field) => {
return {
valuePropName: "checked",
@@ -464,7 +465,7 @@ export function BillEnterModalLinesComponent({
title: t("billlines.fields.federal_tax_applicable"),
dataIndex: "applicable_taxes.federal",
editable: true,
-
+ width: "40px",
formItemProps: (field) => {
return {
key: `${field.index}fedtax`,
@@ -485,7 +486,7 @@ export function BillEnterModalLinesComponent({
title: t("billlines.fields.state_tax_applicable"),
dataIndex: "applicable_taxes.state",
editable: true,
-
+ width: "40px",
formItemProps: (field) => {
return {
key: `${field.index}statetax`,
@@ -503,7 +504,7 @@ export function BillEnterModalLinesComponent({
title: t("billlines.fields.local_tax_applicable"),
dataIndex: "applicable_taxes.local",
editable: true,
-
+ width: "40px",
formItemProps: (field) => {
return {
key: `${field.index}localtax`,
diff --git a/client/src/components/bill-line-search-select/bill-line-search-select.component.jsx b/client/src/components/bill-line-search-select/bill-line-search-select.component.jsx
index ac97c8e81..40ae46c9e 100644
--- a/client/src/components/bill-line-search-select/bill-line-search-select.component.jsx
+++ b/client/src/components/bill-line-search-select/bill-line-search-select.component.jsx
@@ -39,30 +39,32 @@ const BillLineSearchSelect = ({ options, disabled, allowRemoved, ...restProps },
style: {
...(item.removed ? { textDecoration: "line-through" } : {})
},
- name: `${item.removed ? `(REMOVED) ` : ""}${item.line_desc}${
- item.oem_partno ? ` - ${item.oem_partno}` : ""
- }${item.alt_partno ? ` (${item.alt_partno})` : ""}`.trim(),
- label: (
-
-
- {`${item.removed ? `(REMOVED) ` : ""}${item.line_desc}${
- item.oem_partno ? ` - ${item.oem_partno}` : ""
- }${item.alt_partno ? ` (${item.alt_partno})` : ""}`.trim()}
-
- {InstanceRenderMgr({
- rome: item.act_price === 0 && item.mod_lb_hrs > 0 && (
- {`${item.mod_lb_hrs} units`}
- )
- })}
-
- {item.act_price ? `$${item.act_price && item.act_price.toFixed(2)}` : ``}
-
-
- )
+ name: generateLineName(item),
+ label: generateLineName(item)
}))
]}
{...restProps}
>
);
};
+
+function generateLineName(item) {
+ return (
+
+
+ {`${item.removed ? `(REMOVED) ` : ""}${item.line_desc}${
+ item.oem_partno ? ` - ${item.oem_partno}` : ""
+ }${item.alt_partno ? ` (${item.alt_partno})` : ""}`.trim()}
+
+ {InstanceRenderMgr({
+ rome: item.act_price === 0 && item.mod_lb_hrs > 0 && (
+ {`${item.mod_lb_hrs} units`}
+ )
+ })}
+
+ {item.act_price ? `$${item.act_price && item.act_price.toFixed(2)}` : ``}
+
+
+ );
+}
export default forwardRef(BillLineSearchSelect);
diff --git a/client/src/components/chat-media-selector/chat-media-selector.component.jsx b/client/src/components/chat-media-selector/chat-media-selector.component.jsx
index 85ea7aa93..ff2336f69 100644
--- a/client/src/components/chat-media-selector/chat-media-selector.component.jsx
+++ b/client/src/components/chat-media-selector/chat-media-selector.component.jsx
@@ -40,7 +40,11 @@ export function ChatMediaSelector({ bodyshop, selectedMedia, setSelectedMedia, c
variables: {
jobId: conversation.job_conversations[0]?.jobid
},
- skip: !open || !conversation.job_conversations || conversation.job_conversations.length === 0
+ skip:
+ !open ||
+ !conversation.job_conversations ||
+ conversation.job_conversations.length === 0 ||
+ bodyshop.uselocalmediaserver
});
const handleVisibleChange = (change) => {
@@ -48,7 +52,8 @@ export function ChatMediaSelector({ bodyshop, selectedMedia, setSelectedMedia, c
};
useEffect(() => {
- setSelectedMedia([]);
+ // Instead of wiping the array (which holds media objects), just clear selection flags
+ setSelectedMedia((prev) => prev.map((m) => ({ ...m, isSelected: false })));
}, [setSelectedMedia, conversation]);
//Knowingly taking on the technical debt of poor implementation below. Done this way to avoid an edge case where no component may be displayed.
@@ -75,6 +80,7 @@ export function ChatMediaSelector({ bodyshop, selectedMedia, setSelectedMedia, c
)}
>
@@ -90,6 +96,7 @@ export function ChatMediaSelector({ bodyshop, selectedMedia, setSelectedMedia, c
)}
>
@@ -110,6 +117,7 @@ export function ChatMediaSelector({ bodyshop, selectedMedia, setSelectedMedia, c
trigger="click"
open={open}
onOpenChange={handleVisibleChange}
+ destroyOnHidden
classNames={{ root: "media-selector-popover" }}
>
s.isSelected).length}>
diff --git a/client/src/components/dashboard-grid/dashboard-grid.component.jsx b/client/src/components/dashboard-grid/dashboard-grid.component.jsx
index 929681bbd..85b79f166 100644
--- a/client/src/components/dashboard-grid/dashboard-grid.component.jsx
+++ b/client/src/components/dashboard-grid/dashboard-grid.component.jsx
@@ -1,17 +1,17 @@
import Icon, { SyncOutlined } from "@ant-design/icons";
-import { cloneDeep } from "lodash";
import { useMutation, useQuery } from "@apollo/client";
import { Button, Dropdown, Space } from "antd";
import { PageHeader } from "@ant-design/pro-layout";
-import { useMemo, useState } from "react";
+import { useMemo, useState, useEffect } from "react";
import { Responsive, WidthProvider } from "react-grid-layout";
import { useTranslation } from "react-i18next";
import { MdClose } from "react-icons/md";
import { connect } from "react-redux";
import { createStructuredSelector } from "reselect";
import { logImEXEvent } from "../../firebase/firebase.utils";
-import { UPDATE_DASHBOARD_LAYOUT } from "../../graphql/user.queries";
-import { selectBodyshop, selectCurrentUser } from "../../redux/user/user.selectors";
+import { UPDATE_DASHBOARD_LAYOUT, QUERY_USER_DASHBOARD_LAYOUT } from "../../graphql/user.queries";
+import { QUERY_DASHBOARD_BODYSHOP } from "../../graphql/bodyshop.queries";
+import { selectCurrentUser } from "../../redux/user/user.selectors";
import AlertComponent from "../alert/alert.component";
import LoadingSkeleton from "../loading-skeleton/loading-skeleton.component";
import { GenerateDashboardData } from "./dashboard-grid.utils";
@@ -24,122 +24,173 @@ import "./dashboard-grid.styles.scss";
const ResponsiveReactGridLayout = WidthProvider(Responsive);
const mapStateToProps = createStructuredSelector({
- currentUser: selectCurrentUser,
- bodyshop: selectBodyshop
+ currentUser: selectCurrentUser
});
const mapDispatchToProps = () => ({
//setUserLanguage: language => dispatch(setUserLanguage(language))
});
-export function DashboardGridComponent({ currentUser, bodyshop }) {
+export function DashboardGridComponent({ currentUser }) {
const { t } = useTranslation();
- const [state, setState] = useState(() => {
- const persisted = bodyshop.associations[0].user.dashboardlayout;
- // Normalize persisted structure to avoid malformed shapes that can cause recursive layout recalculations
- if (persisted) {
- return {
- items: Array.isArray(persisted.items) ? persisted.items : [],
- layout: Array.isArray(persisted.layout) ? persisted.layout : [],
- layouts: typeof persisted.layouts === "object" && !Array.isArray(persisted.layouts) ? persisted.layouts : {},
- cols: persisted.cols
- };
- }
- return { items: [], layout: [], layouts: {}, cols: 12 };
- });
const notification = useNotification();
- // Memoize the query document so Apollo doesn't treat each render as a brand-new query causing continuous re-fetches
- const dashboardQueryDoc = useMemo(() => createDashboardQuery(state.items), [state.items]);
+ // Constants for layout defaults
+ const DEFAULT_COLS = 12;
+ const DEFAULT_Y_POSITION = 1000;
+ const GRID_BREAKPOINTS = { lg: 1200, md: 996, sm: 768, xs: 480, xxs: 0 };
+ const GRID_COLS = { lg: 12, md: 10, sm: 6, xs: 4, xxs: 2 };
- const { loading, error, data, refetch } = useQuery(dashboardQueryDoc, {
+ // Fetch dashboard layout data
+ const { data: layoutData } = useQuery(QUERY_USER_DASHBOARD_LAYOUT, {
+ variables: { email: currentUser.email },
+ fetchPolicy: "network-only",
+ nextFetchPolicy: "network-only",
+ skip: !currentUser?.email
+ });
+
+ // Fetch minimal bodyshop data for components
+ const {
+ loading,
+ error,
+ data: bodyshopData
+ } = useQuery(QUERY_DASHBOARD_BODYSHOP, {
fetchPolicy: "network-only",
nextFetchPolicy: "network-only"
});
const [updateLayout] = useMutation(UPDATE_DASHBOARD_LAYOUT);
- const handleLayoutChange = async (layout, layouts) => {
+ // Memoize layout state initialization
+ const initialState = useMemo(() => {
+ const persisted = layoutData?.users?.[0]?.dashboardlayout;
+ if (persisted) {
+ const { items = [], layout = [], layouts = {}, cols = DEFAULT_COLS } = persisted;
+ return {
+ items: Array.isArray(items) ? items : [],
+ layout: Array.isArray(layout) ? layout : [],
+ layouts: typeof layouts === "object" && !Array.isArray(layouts) ? layouts : {},
+ cols
+ };
+ }
+ return { items: [], layout: [], layouts: {}, cols: DEFAULT_COLS };
+ }, [layoutData]);
+
+ const [state, setState] = useState(initialState);
+
+ // Update state when layout data changes
+ useEffect(() => {
+ if (layoutData?.users?.[0]?.dashboardlayout) {
+ const { items = [], layout = [], layouts = {}, cols = DEFAULT_COLS } = layoutData.users[0].dashboardlayout;
+ setState({
+ items: Array.isArray(items) ? items : [],
+ layout: Array.isArray(layout) ? layout : [],
+ layouts: typeof layouts === "object" && !Array.isArray(layouts) ? layouts : {},
+ cols
+ });
+ }
+ }, [layoutData]);
+
+ // Get bodyshop data for components
+ const bodyshop = bodyshopData?.dashboard_bodyshops?.[0];
+
+ // DRY helper function to update layout in database and cache
+ const updateLayoutAndCache = async (updatedLayout, errorContext = "updating layout") => {
try {
- logImEXEvent("dashboard_change_layout");
-
- setState((prev) => ({ ...prev, layout, layouts }));
-
- const result = await updateLayout({
- variables: {
- email: currentUser.email,
- layout: { ...state, layout, layouts }
- }
+ const { data: result } = await updateLayout({
+ variables: { email: currentUser.email, layout: updatedLayout }
});
- if (result?.errors && result.errors.length) {
- const errorMessages = result.errors.map((e) => e?.message || String(e));
+ const { errors = [] } = result?.update_users?.returning?.[0] || {};
+
+ if (errors.length) {
+ const errorMessages = errors.map(({ message }) => message || String(error));
notification.error({
message: t("dashboard.errors.updatinglayout", {
message: errorMessages.join("; ")
})
});
+ return false;
}
+
+ return true;
} catch (err) {
- // Catch any unexpected errors (including potential cyclic JSON issues) so the promise never rejects unhandled
- console.error("Dashboard layout update failed", err);
+ console.error(`Dashboard ${errorContext} failed`, err);
notification.error({
message: t("dashboard.errors.updatinglayout", {
message: err?.message || String(err)
})
});
+ return false;
}
};
- const handleRemoveComponent = (key) => {
+ // Memoize the query document so Apollo doesn't treat each render as a brand-new query causing continuous re-fetches
+ const dashboardQueryDoc = useMemo(() => createDashboardQuery(state.items), [state.items]);
+
+ const {
+ loading: dashboardLoading,
+ error: dashboardError,
+ data: dashboardQueryData,
+ refetch
+ } = useQuery(dashboardQueryDoc, {
+ fetchPolicy: "network-only",
+ nextFetchPolicy: "network-only"
+ });
+
+ const dashboardData = useMemo(() => GenerateDashboardData(dashboardQueryData), [dashboardQueryData]);
+
+ // Memoize existing layout keys to prevent unnecessary recalculations
+ const existingLayoutKeys = useMemo(() => state.items.map(({ i }) => i), [state.items]);
+
+ // Memoize menu items to prevent unnecessary recalculations
+ const menuItems = useMemo(
+ () =>
+ Object.entries(componentList).map(([key, { label }]) => ({
+ key,
+ label,
+ value: key,
+ disabled: existingLayoutKeys.includes(key)
+ })),
+ [existingLayoutKeys]
+ );
+
+ if (loading || dashboardLoading) return ;
+ if (error || dashboardError) return ;
+
+ const handleLayoutChange = async (layout, layouts) => {
+ logImEXEvent("dashboard_change_layout");
+ setState((prev) => ({ ...prev, layout, layouts }));
+ await updateLayoutAndCache({ ...state, layout, layouts }, "layout change");
+ };
+
+ const handleRemoveComponent = async (key) => {
logImEXEvent("dashboard_remove_component", { name: key });
- const idxToRemove = state.items.findIndex((i) => i.i === key);
-
- const items = cloneDeep(state.items);
-
- items.splice(idxToRemove, 1);
- setState({ ...state, items });
+ const updatedState = { ...state, items: state.items.filter((item) => item.i !== key) };
+ setState(updatedState);
+ await updateLayoutAndCache(updatedState, "component removal");
};
- const handleAddComponent = (e) => {
- // Avoid passing the full AntD menu click event (contains circular refs) to analytics
- logImEXEvent("dashboard_add_component", { key: e.key });
- const compSpec = componentList[e.key] || {};
- const minW = compSpec.minW || 1;
- const minH = compSpec.minH || 1;
- const baseW = compSpec.w || 2;
- const baseH = compSpec.h || 2;
- setState((prev) => {
- const nextItems = [
- ...prev.items,
- {
- i: e.key,
- // Position near bottom: use a large y so RGL places it last without triggering cascading relayout loops
- x: (prev.items.length * 2) % (prev.cols || 12),
- y: 1000,
- w: Math.max(baseW, minW),
- h: Math.max(baseH, minH)
- }
- ];
- return { ...prev, items: nextItems };
- });
+ const handleAddComponent = async ({ key }) => {
+ logImEXEvent("dashboard_add_component", { key });
+ const { minW = 1, minH = 1, w: baseW = 2, h: baseH = 2 } = componentList[key] || {};
+ const nextItems = [
+ ...state.items,
+ {
+ i: key,
+ x: (state.items.length * 2) % (state.cols || DEFAULT_COLS),
+ y: DEFAULT_Y_POSITION,
+ w: Math.max(baseW, minW),
+ h: Math.max(baseH, minH)
+ }
+ ];
+ const updatedState = { ...state, items: nextItems };
+ setState(updatedState);
+ await updateLayoutAndCache(updatedState, "component addition");
};
- const dashboardData = useMemo(() => GenerateDashboardData(data), [data]);
-
- const existingLayoutKeys = state.items.map((i) => i.i);
-
- const menuItems = Object.keys(componentList).map((key) => ({
- key: key,
- label: componentList[key].label,
- value: key,
- disabled: existingLayoutKeys.includes(key)
- }));
-
const menu = { items: menuItems, onClick: handleAddComponent };
- if (error) return ;
-
return (
{state.items.map((item) => {
- const spec = componentList[item.i] || {};
- const TheComponent = spec.component;
- const minW = spec.minW || 1;
- const minH = spec.minH || 1;
- // Ensure current width/height respect minimums to avoid react-grid-layout prop warnings
+ const { component: TheComponent, minW = 1, minH = 1, w: specW, h: specH } = componentList[item.i] || {};
const safeItem = {
...item,
- w: Math.max(item.w || spec.w || minW, minW),
- h: Math.max(item.h || spec.h || minH, minH)
+ w: Math.max(item.w || specW || minW, minW),
+ h: Math.max(item.h || specH || minH, minH)
};
+
return (
)}
>
@@ -82,6 +83,7 @@ export function EmailDocumentsComponent({ emailConfig, form, selectedMediaState,
)}
>
diff --git a/client/src/components/job-detail-lines/job-lines.component.jsx b/client/src/components/job-detail-lines/job-lines.component.jsx
index 02dd2cda6..d6a0320e3 100644
--- a/client/src/components/job-detail-lines/job-lines.component.jsx
+++ b/client/src/components/job-detail-lines/job-lines.component.jsx
@@ -97,7 +97,7 @@ export function JobLinesComponent({
filteredInfo: {
...(isPartsEntry
? {
- part_type: ["PAN", "PAC", "PAR", "PAL", "PAA", "PAM", "PAP", "PAS", "PASL", "PAG", "PAO"]
+ part_type: ["PAN", "PAC", "PAR", "PAL", "PAA", "PAM", "PAP", "PAS", "PASL", "PAG"] //"PAO" Removed by request
}
: {})
}
diff --git a/client/src/components/jobs-detail-header/jobs-detail-header.component.jsx b/client/src/components/jobs-detail-header/jobs-detail-header.component.jsx
index f631bf8ab..5ba5ce89e 100644
--- a/client/src/components/jobs-detail-header/jobs-detail-header.component.jsx
+++ b/client/src/components/jobs-detail-header/jobs-detail-header.component.jsx
@@ -77,6 +77,8 @@ export function JobsDetailHeader({ job, bodyshop, disabled, insertAuditTrail, is
.reduce((acc, val) => acc + val.mod_lb_hrs, 0);
const ownerTitle = OwnerNameDisplayFunction(job).trim();
+ const employeeData = bodyshop.associations.find((a) => a.useremail === job.admin_clerk)?.user?.employee ?? null;
+
// Handle checkbox changes
const handleCheckboxChange = async (field, checked) => {
const value = checked ? dayjs().toISOString() : null;
@@ -162,7 +164,7 @@ export function JobsDetailHeader({ job, bodyshop, disabled, insertAuditTrail, is
{job.cccontracts.map((c, index) => (
- {`${c.agreementnumber} - ${c.courtesycar.fleetnumber} ${c.courtesycar.year} ${c.courtesycar.make} ${c.courtesycar.model}`}
+ {`${c.agreementnumber} - ${c.courtesycar.fleetnumber} ${c.courtesycar.year} ${c.courtesycar.make} ${c.courtesycar.model} ${c.courtesycar.plate} - ${t(c.status)}`}
{index !== job.cccontracts.length - 1 ? "," : null}
@@ -355,6 +357,14 @@ export function JobsDetailHeader({ job, bodyshop, disabled, insertAuditTrail, is
>
+ {job.admin_clerk && (
+ <>
+
+
+ {employeeData?.displayName ?? job.admin_clerk}
+
+ >
+ )}
{bodyHrs.toFixed(1)} / {refinishHrs.toFixed(1)} / {(bodyHrs + refinishHrs).toFixed(1)}
diff --git a/client/src/components/jobs-documents-local-gallery/jobs-documents-local-gallery.external.component.jsx b/client/src/components/jobs-documents-local-gallery/jobs-documents-local-gallery.external.component.jsx
index 47f1ebaa5..88bfe0dab 100644
--- a/client/src/components/jobs-documents-local-gallery/jobs-documents-local-gallery.external.component.jsx
+++ b/client/src/components/jobs-documents-local-gallery/jobs-documents-local-gallery.external.component.jsx
@@ -1,11 +1,12 @@
-import { useEffect } from "react";
-import { Gallery } from "react-grid-gallery";
+import { useEffect, useMemo, useState, useCallback } from "react";
+import LocalMediaGrid from "./local-media-grid.component";
import { useTranslation } from "react-i18next";
import { connect } from "react-redux";
import { createStructuredSelector } from "reselect";
import { getJobMedia } from "../../redux/media/media.actions";
import { selectAllMedia } from "../../redux/media/media.selectors";
import { selectBodyshop } from "../../redux/user/user.selectors";
+import LoadingSpinner from "../loading-spinner/loading-spinner.component";
const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop,
@@ -18,41 +19,127 @@ const mapDispatchToProps = (dispatch) => ({
export default connect(mapStateToProps, mapDispatchToProps)(JobDocumentsLocalGalleryExternal);
-function JobDocumentsLocalGalleryExternal({ jobId, externalMediaState, getJobMedia, allMedia }) {
+/**
+ * JobDocumentsLocalGalleryExternal
+ * Fetches and displays job-related image media using the custom LocalMediaGrid.
+ *
+ * Props:
+ * - jobId: string | number (required to fetch media)
+ * - externalMediaState: [imagesArray, setImagesFn] (state lifted to parent for shared selection)
+ * - getJobMedia: dispatching function to retrieve media for a job
+ * - allMedia: redux slice keyed by jobId containing raw media records
+ * - context: "chat" | "email" | other string used to drive grid behavior
+ *
+ * Notes:
+ * - The previous third-party gallery required a remount key (openVersion); custom grid no longer does.
+ * - Selection flags are preserved when media refreshes.
+ * - Loading state ends after transformation regardless of whether any images were found.
+ */
+function JobDocumentsLocalGalleryExternal({ jobId, externalMediaState, getJobMedia, allMedia, context = "chat" }) {
const [galleryImages, setgalleryImages] = externalMediaState;
- const { t } = useTranslation();
+ const [isLoading, setIsLoading] = useState(false);
+ const { t } = useTranslation(); // i18n hook retained if future translations are added
+ const DEBUG_LOCAL_GALLERY = false; // flip to true for verbose console logging
+ // Transform raw media record into a normalized image object consumed by the grid.
+ const transformMediaToImages = useCallback((raw) => {
+ return raw
+ .filter((m) => m.type?.mime?.startsWith("image"))
+ .map((m) => ({
+ ...m,
+ src: m.thumbnail,
+ thumbnail: m.thumbnail,
+ fullsize: m.src,
+ width: 225,
+ height: 225,
+ thumbnailWidth: 225,
+ thumbnailHeight: 225,
+ caption: m.filename || m.key
+ }));
+ }, []);
+
+ // Fetch media when jobId changes (network request triggers Redux update -> documents memo recalculates).
useEffect(() => {
- if (jobId) {
- getJobMedia(jobId);
- }
+ if (!jobId) return;
+ setIsLoading(true);
+ getJobMedia(jobId);
}, [jobId, getJobMedia]);
- useEffect(() => {
- let documents = allMedia?.[jobId]
- ? allMedia[jobId].reduce((acc, val) => {
- if (val.type?.mime && val.type.mime.startsWith("image")) {
- acc.push({ ...val, src: val.thumbnail, fullsize: val.src });
- }
- return acc;
- }, [])
- : [];
- console.log(
- "🚀 ~ file: jobs-documents-local-gallery.external.component.jsx:48 ~ useEffect ~ documents:",
- documents
- );
+ // Memo: transform raw redux media into gallery documents.
+ const documents = useMemo(
+ () => transformMediaToImages(allMedia?.[jobId] || []),
+ [allMedia, jobId, transformMediaToImages]
+ );
- setgalleryImages(documents);
- }, [allMedia, jobId, setgalleryImages, t]);
+ // Sync transformed documents into external state while preserving selection flags.
+ useEffect(() => {
+ const prevSelection = new Map(galleryImages.map((p) => [p.filename, p.isSelected]));
+ const nextImages = documents.map((d) => ({ ...d, isSelected: prevSelection.get(d.filename) || false }));
+ // Micro-optimization: if array length and each filename + selection flag match, skip creating a new array.
+ if (galleryImages.length === nextImages.length) {
+ let identical = true;
+ for (let i = 0; i < nextImages.length; i++) {
+ if (
+ galleryImages[i].filename !== nextImages[i].filename ||
+ galleryImages[i].isSelected !== nextImages[i].isSelected
+ ) {
+ identical = false;
+ break;
+ }
+ }
+ if (identical) {
+ setIsLoading(false); // ensure loading stops even on no-change
+ if (DEBUG_LOCAL_GALLERY) {
+ console.log("[LocalGallery] documents unchanged", { jobId, count: documents.length });
+ }
+ return;
+ }
+ }
+ setgalleryImages(nextImages);
+ setIsLoading(false); // stop loading after transform regardless of emptiness
+ if (DEBUG_LOCAL_GALLERY) {
+ console.log("[LocalGallery] documents transformed", { jobId, count: documents.length });
+ }
+ }, [documents, setgalleryImages, galleryImages, jobId, DEBUG_LOCAL_GALLERY]);
+
+ // Toggle handler (stable reference)
+ const handleToggle = useCallback(
+ (idx) => {
+ setgalleryImages((imgs) => imgs.map((g, gIdx) => (gIdx === idx ? { ...g, isSelected: !g.isSelected } : g)));
+ },
+ [setgalleryImages]
+ );
+
+ const messageStyle = { textAlign: "center", padding: "1rem" }; // retained for potential future states
+
+ if (!jobId) {
+ return (
+
+ );
+ }
return (
-
-
{
- setgalleryImages(galleryImages.map((g, idx) => (index === idx ? { ...g, isSelected: !g.isSelected } : g)));
- }}
- />
+
+ {isLoading && galleryImages.length === 0 && (
+
+
+
+ )}
+ {galleryImages.length > 0 && (
+
+ )}
+ {galleryImages.length > 0 && (
+
+ {`${t("general.labels.media")}: ${galleryImages.length}`}
+
+ )}
);
}
diff --git a/client/src/components/jobs-documents-local-gallery/local-media-grid.component.jsx b/client/src/components/jobs-documents-local-gallery/local-media-grid.component.jsx
new file mode 100644
index 000000000..277351296
--- /dev/null
+++ b/client/src/components/jobs-documents-local-gallery/local-media-grid.component.jsx
@@ -0,0 +1,207 @@
+import { useCallback, useEffect, useMemo, useRef, useState } from "react";
+
+/**
+ * LocalMediaGrid
+ * Lightweight replacement for react-grid-gallery inside the chat popover.
+ * Props:
+ * - images: Array<{ src, fullsize, filename?, isSelected? }>
+ * - onToggle(index)
+ */
+export function LocalMediaGrid({
+ images,
+ onToggle,
+ thumbSize = 100,
+ gap = 8,
+ minColumns = 3,
+ maxColumns = 12,
+ context = "default"
+}) {
+ const containerRef = useRef(null);
+ const [cols, setCols] = useState(() => {
+ // Pre-calc initial columns to stabilize layout before images render
+ const count = images.length;
+ if (count === 0) return minColumns; // reserve minimal structure
+ if (count === 1 && context === "chat") return 1;
+ return Math.min(maxColumns, Math.max(minColumns, count));
+ });
+ const [justifyMode, setJustifyMode] = useState("start");
+ const [distributeExtra, setDistributeExtra] = useState(false);
+ const [loadedMap, setLoadedMap] = useState(() => new Map()); // filename -> boolean loaded
+
+ const handleImageLoad = useCallback((key) => {
+ setLoadedMap((prev) => {
+ if (prev.get(key)) return prev; // already loaded
+ const next = new Map(prev);
+ next.set(key, true);
+ return next;
+ });
+ }, []);
+
+ // Dynamically compute columns for all contexts to avoid auto-fit stretching gaps in email overlay
+ useEffect(() => {
+ const el = containerRef.current;
+ if (!el) return;
+ const compute = () => {
+ // For non-chat (email / default) we rely on CSS auto-fill; only chat needs explicit column calc & distribution logic.
+ if (context !== "chat") {
+ setCols(images.length || 0); // retain count for ARIA semantics; not used for template when non-chat.
+ setDistributeExtra(false);
+ return;
+ }
+ const width = el.clientWidth;
+ if (!width) return;
+ const perCol = thumbSize + gap; // track + gap space
+ const fitCols = Math.max(1, Math.floor((width + gap) / perCol));
+ // base desired columns: up to how many images we have and how many fit
+ let finalCols = Math.min(images.length || 1, fitCols, maxColumns);
+ // enforce minimum columns to reserve layout skeleton (except when fewer images)
+ if (finalCols < minColumns && images.length >= minColumns) {
+ finalCols = Math.min(fitCols, minColumns);
+ }
+ // chat-specific clamp
+ if (context === "chat") {
+ finalCols = Math.min(finalCols, 4);
+ }
+ if (finalCols < 1) finalCols = 1;
+ setCols(finalCols);
+ setJustifyMode("start");
+
+ // Determine if there is leftover horizontal space that can't fit another column.
+ // Only distribute when we're at the maximum allowed columns for the context and images exceed or meet that count.
+ const contextMax = context === "chat" ? 4 : maxColumns;
+ const baseWidthNeeded = finalCols * thumbSize + (finalCols - 1) * gap;
+ const leftover = width - baseWidthNeeded;
+ const atMaxColumns = finalCols === contextMax && images.length >= finalCols;
+ // leftover must be positive but less than space needed for an additional column (perCol)
+ if (atMaxColumns && leftover > 0 && leftover < perCol) {
+ setDistributeExtra(true);
+ } else {
+ setDistributeExtra(false);
+ }
+ };
+ compute();
+ const ro = new ResizeObserver(() => compute());
+ ro.observe(el);
+ return () => ro.disconnect();
+ }, [images.length, thumbSize, gap, minColumns, maxColumns, context]);
+
+ const gridTemplateColumns = useMemo(() => {
+ if (context === "chat") {
+ if (distributeExtra) {
+ return `repeat(${cols}, minmax(${thumbSize}px, 1fr))`;
+ }
+ return `repeat(${cols}, ${thumbSize}px)`;
+ }
+ // Non-chat contexts: allow browser to auto-fill columns; fixed min (thumbSize) ensures squares; tracks expand to distribute remaining space.
+ return `repeat(auto-fill, minmax(${thumbSize}px, 1fr))`;
+ }, [cols, thumbSize, distributeExtra, context]);
+ const stableWidth = undefined; // no fixed width
+
+ const handleKeyDown = useCallback(
+ (e, idx) => {
+ if (e.key === "Enter" || e.key === " ") {
+ e.preventDefault();
+ onToggle(idx);
+ }
+ },
+ [onToggle]
+ );
+
+ return (
+
+ {images.map((img, idx) => (
+
onToggle(idx)}
+ onKeyDown={(e) => handleKeyDown(e, idx)}
+ style={{
+ position: "relative",
+ border: img.isSelected ? "2px solid #1890ff" : "1px solid #ccc",
+ outline: "none",
+ borderRadius: 4,
+ cursor: "pointer",
+ background: "#fafafa",
+ width: thumbSize,
+ height: thumbSize,
+ overflow: "hidden",
+ boxSizing: "border-box"
+ }}
+ >
+ {(() => {
+ const key = img.filename || idx;
+ const loaded = loadedMap.get(key) === true;
+ return (
+ <>
+ {!loaded && (
+
+ {/* simple skeleton; no shimmer to reduce cost */}…
+
+ )}
+

handleImageLoad(key)}
+ style={{
+ width: thumbSize,
+ height: thumbSize,
+ objectFit: "cover",
+ display: "block",
+ borderRadius: 4,
+ opacity: loaded ? 1 : 0,
+ transition: "opacity .25s ease"
+ }}
+ />
+ >
+ );
+ })()}
+ {img.isSelected && (
+
+ )}
+
+ ))}
+ {/* No placeholders needed; layout uses auto-fit for non-chat or fixed columns for chat */}
+
+ );
+}
+
+export default LocalMediaGrid;
diff --git a/client/src/graphql/bodyshop.queries.js b/client/src/graphql/bodyshop.queries.js
index cdb806e55..61b2d7f91 100644
--- a/client/src/graphql/bodyshop.queries.js
+++ b/client/src/graphql/bodyshop.queries.js
@@ -363,3 +363,25 @@ export const GET_ACTIVE_EMPLOYEES_IN_SHOP = gql`
}
}
`;
+export const QUERY_MINIMAL_BODYSHOP = gql`
+ query QUERY_MINIMAL_BODYSHOP {
+ bodyshops(where: { associations: { active: { _eq: true } } }) {
+ id
+ shopname
+ associations(where: { active: { _eq: true } }) {
+ user {
+ email
+ }
+ }
+ }
+ }
+`;
+export const QUERY_DASHBOARD_BODYSHOP = gql`
+ query QUERY_DASHBOARD_BODYSHOP {
+ dashboard_bodyshops: bodyshops(where: { associations: { active: { _eq: true } } }) {
+ id
+ prodtargethrs
+ md_ro_statuses
+ }
+ }
+`;
diff --git a/client/src/graphql/jobs.queries.js b/client/src/graphql/jobs.queries.js
index f9f1cd55f..35dde7016 100644
--- a/client/src/graphql/jobs.queries.js
+++ b/client/src/graphql/jobs.queries.js
@@ -424,6 +424,7 @@ export const GET_JOB_BY_PK = gql`
actual_delivery
actual_in
acv_amount
+ admin_clerk
adjustment_bottom_line
alt_transport
area_of_damage
@@ -2347,12 +2348,13 @@ export const MARK_JOB_AS_UNINVOICED = gql`
mutation MARK_JOB_AS_UNINVOICED($jobId: uuid!, $default_delivered: String!) {
update_jobs_by_pk(
pk_columns: { id: $jobId }
- _set: { date_exported: null, date_invoiced: null, status: $default_delivered }
+ _set: { date_exported: null, date_invoiced: null, status: $default_delivered, admin_clerk: null }
) {
id
date_exported
date_invoiced
status
+ admin_clerk
}
}
`;
diff --git a/client/src/graphql/user.queries.js b/client/src/graphql/user.queries.js
index 682c0f541..2b94759c9 100644
--- a/client/src/graphql/user.queries.js
+++ b/client/src/graphql/user.queries.js
@@ -135,3 +135,12 @@ export const UPDATE_NOTIFICATIONS_AUTOADD = gql`
}
}
`;
+
+export const QUERY_USER_DASHBOARD_LAYOUT = gql`
+ query QUERY_USER_DASHBOARD_LAYOUT($email: String!) {
+ users(where: { email: { _eq: $email } }) {
+ email
+ dashboardlayout
+ }
+ }
+`;
diff --git a/client/src/pages/jobs-close/jobs-close.component.jsx b/client/src/pages/jobs-close/jobs-close.component.jsx
index 2423e2e6b..1719ed38d 100644
--- a/client/src/pages/jobs-close/jobs-close.component.jsx
+++ b/client/src/pages/jobs-close/jobs-close.component.jsx
@@ -39,13 +39,14 @@ import { UPDATE_JOB } from "../../graphql/jobs.queries";
import { insertAuditTrail } from "../../redux/application/application.actions";
import { selectJobReadOnly } from "../../redux/application/application.selectors";
import { setModalContext } from "../../redux/modals/modals.actions.js";
-import { selectBodyshop } from "../../redux/user/user.selectors";
+import { selectBodyshop, selectCurrentUser } from "../../redux/user/user.selectors";
import AuditTrailMapping from "../../utils/AuditTrailMappings";
import dayjs from "../../utils/day";
const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop,
- jobRO: selectJobReadOnly
+ jobRO: selectJobReadOnly,
+ currentUser: selectCurrentUser
});
const mapDispatchToProps = (dispatch) => ({
@@ -59,7 +60,7 @@ const mapDispatchToProps = (dispatch) => ({
)
});
-export function JobsCloseComponent({ job, bodyshop, jobRO, insertAuditTrail, setPrintCenterContext }) {
+export function JobsCloseComponent({ job, bodyshop, jobRO, insertAuditTrail, setPrintCenterContext, currentUser }) {
const { t } = useTranslation();
const [form] = Form.useForm();
const client = useApolloClient();
@@ -97,6 +98,7 @@ export function JobsCloseComponent({ job, bodyshop, jobRO, insertAuditTrail, set
kmin: values.kmin,
kmout: values.kmout,
dms_allocation: values.dms_allocation,
+ admin_clerk: currentUser.email,
...(removefromproduction ? { inproduction: false } : {}),
...(values.qb_multiple_payers ? { qb_multiple_payers: values.qb_multiple_payers } : {})
}
diff --git a/client/src/redux/media/media.reducer.js b/client/src/redux/media/media.reducer.js
index ace8cac46..7199fdff2 100644
--- a/client/src/redux/media/media.reducer.js
+++ b/client/src/redux/media/media.reducer.js
@@ -19,29 +19,19 @@ const mediaReducer = (state = INITIAL_STATE, action) => {
case MediaActionTypes.TOGGLE_MEDIA_SELECTED:
return {
...state,
- [action.payload.jobid]: state[action.payload.jobid].map((p) => {
- if (p.filename === action.payload.filename) {
- p.isSelected = !p.isSelected;
- }
- return p;
- })
+ [action.payload.jobid]: state[action.payload.jobid].map((p) =>
+ p.filename === action.payload.filename ? { ...p, isSelected: !p.isSelected } : p
+ )
};
case MediaActionTypes.SELECT_ALL_MEDIA_FOR_JOB:
return {
...state,
- [action.payload.jobid]: state[action.payload.jobid].map((p) => {
- p.isSelected = true;
-
- return p;
- })
+ [action.payload.jobid]: state[action.payload.jobid].map((p) => ({ ...p, isSelected: true }))
};
case MediaActionTypes.DESELECT_ALL_MEDIA_FOR_JOB:
return {
...state,
- [action.payload.jobid]: state[action.payload.jobid].map((p) => {
- p.isSelected = false;
- return p;
- })
+ [action.payload.jobid]: state[action.payload.jobid].map((p) => ({ ...p, isSelected: false }))
};
default:
return state;
diff --git a/client/src/redux/media/media.sagas.js b/client/src/redux/media/media.sagas.js
index a85109776..7b88ea73e 100644
--- a/client/src/redux/media/media.sagas.js
+++ b/client/src/redux/media/media.sagas.js
@@ -17,9 +17,10 @@ export function* getJobMedia({ payload: jobid }) {
const imagesFetch = yield cleanAxios.post(
`${localmediaserverhttp}/jobs/list`,
{
- jobid
+ jobid,
+
},
- { headers: { ims_token: bodyshop.localmediatoken } }
+ { headers: { ims_token: bodyshop.localmediatoken, bodyshopid: bodyshop.id } }
);
const documentsFetch = yield cleanAxios.post(
`${localmediaserverhttp}/bills/list`,
diff --git a/client/src/redux/media/media.selectors.js b/client/src/redux/media/media.selectors.js
index e5c930e5c..8c1123bb1 100644
--- a/client/src/redux/media/media.selectors.js
+++ b/client/src/redux/media/media.selectors.js
@@ -2,4 +2,5 @@ import { createSelector } from "reselect";
const selectMedia = (state) => state.media;
-export const selectAllMedia = createSelector([selectMedia], (media) => media);
+// Return a shallow copy to avoid identity selector warning and allow memoization to detect actual changes.
+export const selectAllMedia = createSelector([selectMedia], (media) => ({ ...media }));
diff --git a/client/src/translations/en_us/common.json b/client/src/translations/en_us/common.json
index 05219fd5e..193aba22a 100644
--- a/client/src/translations/en_us/common.json
+++ b/client/src/translations/en_us/common.json
@@ -1678,6 +1678,7 @@
"actual_delivery": "Actual Delivery",
"actual_in": "Actual In",
"acv_amount": "ACV Amount",
+ "admin_clerk": "Admin Clerk",
"adjustment_bottom_line": "Adjustments",
"adjustmenthours": "Adjustment Hours",
"alt_transport": "Alt. Trans.",
diff --git a/client/src/translations/es/common.json b/client/src/translations/es/common.json
index 20610391c..41a01b191 100644
--- a/client/src/translations/es/common.json
+++ b/client/src/translations/es/common.json
@@ -1679,6 +1679,7 @@
"actual_in": "Real en",
"acv_amount": "",
"adjustment_bottom_line": "Ajustes",
+ "admin_clerk": "",
"adjustmenthours": "",
"alt_transport": "",
"area_of_damage_impact": {
diff --git a/client/src/translations/fr/common.json b/client/src/translations/fr/common.json
index 76d5bbd1d..e80baacbc 100644
--- a/client/src/translations/fr/common.json
+++ b/client/src/translations/fr/common.json
@@ -1678,6 +1678,7 @@
"actual_delivery": "Livraison réelle",
"actual_in": "En réel",
"acv_amount": "",
+ "admin_clerk": "",
"adjustment_bottom_line": "Ajustements",
"adjustmenthours": "",
"alt_transport": "",
diff --git a/client/src/utils/TemplateConstants.js b/client/src/utils/TemplateConstants.js
index 867979a0c..d91c1097e 100644
--- a/client/src/utils/TemplateConstants.js
+++ b/client/src/utils/TemplateConstants.js
@@ -15,21 +15,29 @@ export const EmailSettings = {
export const TemplateList = (type, context) => {
//const { bodyshop } = store.getState().user;
+
+ const casl = InstanceRenderManager({
+ imex: {
+ casl_authorization: {
+ title: i18n.t("printcenter.jobs.casl_authorization"),
+ description: "",
+ subject: i18n.t("printcenter.jobs.casl_authorization"),
+ key: "casl_authorization",
+ disabled: false,
+ group: "authorization",
+ regions: {
+ CA: true
+ }
+ }
+ },
+ rome: {}
+ });
+
return {
//If there's no type or the type is job, send it back.
...(!type || type === "job"
? {
- casl_authorization: {
- title: i18n.t("printcenter.jobs.casl_authorization"),
- description: "",
- subject: i18n.t("printcenter.jobs.casl_authorization"),
- key: "casl_authorization",
- disabled: false,
- group: "authorization",
- regions: {
- CA: true
- }
- },
+ ...casl,
fippa_authorization: {
title: i18n.t("printcenter.jobs.fippa_authorization"),
description: "",
diff --git a/hasura/metadata/tables.yaml b/hasura/metadata/tables.yaml
index 74a00b23b..a52ea634f 100644
--- a/hasura/metadata/tables.yaml
+++ b/hasura/metadata/tables.yaml
@@ -3615,6 +3615,7 @@
- adj_strdis
- adj_towdis
- adjustment_bottom_line
+ - admin_clerk
- agt_addr1
- agt_addr2
- agt_city
@@ -3890,6 +3891,7 @@
- adj_strdis
- adj_towdis
- adjustment_bottom_line
+ - admin_clerk
- agt_addr1
- agt_addr2
- agt_city
@@ -4178,6 +4180,7 @@
- adj_strdis
- adj_towdis
- adjustment_bottom_line
+ - admin_clerk
- agt_addr1
- agt_addr2
- agt_city
@@ -4705,6 +4708,34 @@
- key
- value
filter: {}
+- table:
+ name: media_analytics
+ schema: public
+ object_relationships:
+ - name: bodyshop
+ using:
+ foreign_key_constraint_on: bodyshopid
+ array_relationships:
+ - name: media_analytics_details
+ using:
+ foreign_key_constraint_on:
+ column: media_analytics_id
+ table:
+ name: media_analytics_detail
+ schema: public
+- table:
+ name: media_analytics_detail
+ schema: public
+ object_relationships:
+ - name: bodyshop
+ using:
+ foreign_key_constraint_on: bodyshopid
+ - name: job
+ using:
+ foreign_key_constraint_on: jobid
+ - name: media_analytic
+ using:
+ foreign_key_constraint_on: media_analytics_id
- table:
name: messages
schema: public
diff --git a/hasura/migrations/1762378985244_create_table_public_media_analytics/down.sql b/hasura/migrations/1762378985244_create_table_public_media_analytics/down.sql
new file mode 100644
index 000000000..4ad01fe88
--- /dev/null
+++ b/hasura/migrations/1762378985244_create_table_public_media_analytics/down.sql
@@ -0,0 +1 @@
+DROP TABLE "public"."media_analytics";
diff --git a/hasura/migrations/1762378985244_create_table_public_media_analytics/up.sql b/hasura/migrations/1762378985244_create_table_public_media_analytics/up.sql
new file mode 100644
index 000000000..4737001d2
--- /dev/null
+++ b/hasura/migrations/1762378985244_create_table_public_media_analytics/up.sql
@@ -0,0 +1,18 @@
+CREATE TABLE "public"."media_analytics" ("id" uuid NOT NULL DEFAULT gen_random_uuid(), "created_at" timestamptz NOT NULL DEFAULT now(), "updated_at" timestamptz NOT NULL DEFAULT now(), "bodyshopid" uuid NOT NULL, "total_jobs" integer NOT NULL DEFAULT 0, "total_documents" integer NOT NULL DEFAULT 0, "file_type_stats" jsonb NOT NULL DEFAULT jsonb_build_object(), PRIMARY KEY ("id") , FOREIGN KEY ("bodyshopid") REFERENCES "public"."bodyshops"("id") ON UPDATE restrict ON DELETE restrict);COMMENT ON TABLE "public"."media_analytics" IS E'LMS Media Analytics';
+CREATE OR REPLACE FUNCTION "public"."set_current_timestamp_updated_at"()
+RETURNS TRIGGER AS $$
+DECLARE
+ _new record;
+BEGIN
+ _new := NEW;
+ _new."updated_at" = NOW();
+ RETURN _new;
+END;
+$$ LANGUAGE plpgsql;
+CREATE TRIGGER "set_public_media_analytics_updated_at"
+BEFORE UPDATE ON "public"."media_analytics"
+FOR EACH ROW
+EXECUTE PROCEDURE "public"."set_current_timestamp_updated_at"();
+COMMENT ON TRIGGER "set_public_media_analytics_updated_at" ON "public"."media_analytics"
+IS 'trigger to set value of column "updated_at" to current timestamp on row update';
+CREATE EXTENSION IF NOT EXISTS pgcrypto;
diff --git a/hasura/migrations/1762380389542_create_table_public_media_analytics_detail/down.sql b/hasura/migrations/1762380389542_create_table_public_media_analytics_detail/down.sql
new file mode 100644
index 000000000..f24f86d54
--- /dev/null
+++ b/hasura/migrations/1762380389542_create_table_public_media_analytics_detail/down.sql
@@ -0,0 +1 @@
+DROP TABLE "public"."media_analytics_detail";
diff --git a/hasura/migrations/1762380389542_create_table_public_media_analytics_detail/up.sql b/hasura/migrations/1762380389542_create_table_public_media_analytics_detail/up.sql
new file mode 100644
index 000000000..e98665d28
--- /dev/null
+++ b/hasura/migrations/1762380389542_create_table_public_media_analytics_detail/up.sql
@@ -0,0 +1,2 @@
+CREATE TABLE "public"."media_analytics_detail" ("id" uuid NOT NULL DEFAULT gen_random_uuid(), "created_at" timestamptz NOT NULL DEFAULT now(), "media_analytics_id" uuid NOT NULL, "jobid" uuid NOT NULL, "bodyshopid" uuid NOT NULL, "document_count" integer NOT NULL, "total_size_bytes" integer NOT NULL, "file_type_stats" jsonb NOT NULL DEFAULT jsonb_build_object(), PRIMARY KEY ("id") , FOREIGN KEY ("media_analytics_id") REFERENCES "public"."media_analytics"("id") ON UPDATE restrict ON DELETE restrict, FOREIGN KEY ("jobid") REFERENCES "public"."jobs"("id") ON UPDATE restrict ON DELETE restrict, FOREIGN KEY ("bodyshopid") REFERENCES "public"."bodyshops"("id") ON UPDATE restrict ON DELETE restrict);
+CREATE EXTENSION IF NOT EXISTS pgcrypto;
diff --git a/hasura/migrations/1762393769918_alter_table_public_jobs_add_column_admin_clerk/down.sql b/hasura/migrations/1762393769918_alter_table_public_jobs_add_column_admin_clerk/down.sql
new file mode 100644
index 000000000..43e3c403d
--- /dev/null
+++ b/hasura/migrations/1762393769918_alter_table_public_jobs_add_column_admin_clerk/down.sql
@@ -0,0 +1,4 @@
+-- Could not auto-generate a down migration.
+-- Please write an appropriate down migration for the SQL below:
+-- alter table "public"."jobs" add column "admin_clerk" text
+-- null;
diff --git a/hasura/migrations/1762393769918_alter_table_public_jobs_add_column_admin_clerk/up.sql b/hasura/migrations/1762393769918_alter_table_public_jobs_add_column_admin_clerk/up.sql
new file mode 100644
index 000000000..ec6f510c5
--- /dev/null
+++ b/hasura/migrations/1762393769918_alter_table_public_jobs_add_column_admin_clerk/up.sql
@@ -0,0 +1,2 @@
+alter table "public"."jobs" add column "admin_clerk" text
+ null;
diff --git a/hasura/migrations/1762461945311_alter_table_public_media_analytics_add_column_total_size_bytes/down.sql b/hasura/migrations/1762461945311_alter_table_public_media_analytics_add_column_total_size_bytes/down.sql
new file mode 100644
index 000000000..3e4d98345
--- /dev/null
+++ b/hasura/migrations/1762461945311_alter_table_public_media_analytics_add_column_total_size_bytes/down.sql
@@ -0,0 +1,4 @@
+-- Could not auto-generate a down migration.
+-- Please write an appropriate down migration for the SQL below:
+-- alter table "public"."media_analytics" add column "total_size_bytes" integer
+-- null;
diff --git a/hasura/migrations/1762461945311_alter_table_public_media_analytics_add_column_total_size_bytes/up.sql b/hasura/migrations/1762461945311_alter_table_public_media_analytics_add_column_total_size_bytes/up.sql
new file mode 100644
index 000000000..4567ad705
--- /dev/null
+++ b/hasura/migrations/1762461945311_alter_table_public_media_analytics_add_column_total_size_bytes/up.sql
@@ -0,0 +1,2 @@
+alter table "public"."media_analytics" add column "total_size_bytes" integer
+ null;
diff --git a/hasura/migrations/1762461962953_alter_table_public_media_analytics_add_column_total_size_mb/down.sql b/hasura/migrations/1762461962953_alter_table_public_media_analytics_add_column_total_size_mb/down.sql
new file mode 100644
index 000000000..bc5749bba
--- /dev/null
+++ b/hasura/migrations/1762461962953_alter_table_public_media_analytics_add_column_total_size_mb/down.sql
@@ -0,0 +1,4 @@
+-- Could not auto-generate a down migration.
+-- Please write an appropriate down migration for the SQL below:
+-- alter table "public"."media_analytics" add column "total_size_mb" numeric
+-- null;
diff --git a/hasura/migrations/1762461962953_alter_table_public_media_analytics_add_column_total_size_mb/up.sql b/hasura/migrations/1762461962953_alter_table_public_media_analytics_add_column_total_size_mb/up.sql
new file mode 100644
index 000000000..cf5636cf4
--- /dev/null
+++ b/hasura/migrations/1762461962953_alter_table_public_media_analytics_add_column_total_size_mb/up.sql
@@ -0,0 +1,2 @@
+alter table "public"."media_analytics" add column "total_size_mb" numeric
+ null;
diff --git a/hasura/migrations/1762464155142_alter_table_public_media_analytics_detail_add_column_total_size_mb/down.sql b/hasura/migrations/1762464155142_alter_table_public_media_analytics_detail_add_column_total_size_mb/down.sql
new file mode 100644
index 000000000..48efb4911
--- /dev/null
+++ b/hasura/migrations/1762464155142_alter_table_public_media_analytics_detail_add_column_total_size_mb/down.sql
@@ -0,0 +1,4 @@
+-- Could not auto-generate a down migration.
+-- Please write an appropriate down migration for the SQL below:
+-- alter table "public"."media_analytics_detail" add column "total_size_mb" numeric
+-- null;
diff --git a/hasura/migrations/1762464155142_alter_table_public_media_analytics_detail_add_column_total_size_mb/up.sql b/hasura/migrations/1762464155142_alter_table_public_media_analytics_detail_add_column_total_size_mb/up.sql
new file mode 100644
index 000000000..4a0fde33a
--- /dev/null
+++ b/hasura/migrations/1762464155142_alter_table_public_media_analytics_detail_add_column_total_size_mb/up.sql
@@ -0,0 +1,2 @@
+alter table "public"."media_analytics_detail" add column "total_size_mb" numeric
+ null;
diff --git a/hasura/migrations/1762464955745_alter_table_public_media_analytics_detail_alter_column_jobid/down.sql b/hasura/migrations/1762464955745_alter_table_public_media_analytics_detail_alter_column_jobid/down.sql
new file mode 100644
index 000000000..baeb4aef5
--- /dev/null
+++ b/hasura/migrations/1762464955745_alter_table_public_media_analytics_detail_alter_column_jobid/down.sql
@@ -0,0 +1 @@
+alter table "public"."media_analytics_detail" alter column "jobid" set not null;
diff --git a/hasura/migrations/1762464955745_alter_table_public_media_analytics_detail_alter_column_jobid/up.sql b/hasura/migrations/1762464955745_alter_table_public_media_analytics_detail_alter_column_jobid/up.sql
new file mode 100644
index 000000000..641d87df7
--- /dev/null
+++ b/hasura/migrations/1762464955745_alter_table_public_media_analytics_detail_alter_column_jobid/up.sql
@@ -0,0 +1 @@
+alter table "public"."media_analytics_detail" alter column "jobid" drop not null;
diff --git a/hasura/migrations/1762546299465_alter_table_public_media_analytics_alter_column_total_size_bytes/down.sql b/hasura/migrations/1762546299465_alter_table_public_media_analytics_alter_column_total_size_bytes/down.sql
new file mode 100644
index 000000000..8a8d722db
--- /dev/null
+++ b/hasura/migrations/1762546299465_alter_table_public_media_analytics_alter_column_total_size_bytes/down.sql
@@ -0,0 +1 @@
+ALTER TABLE "public"."media_analytics" ALTER COLUMN "total_size_bytes" TYPE integer;
diff --git a/hasura/migrations/1762546299465_alter_table_public_media_analytics_alter_column_total_size_bytes/up.sql b/hasura/migrations/1762546299465_alter_table_public_media_analytics_alter_column_total_size_bytes/up.sql
new file mode 100644
index 000000000..41be3af0d
--- /dev/null
+++ b/hasura/migrations/1762546299465_alter_table_public_media_analytics_alter_column_total_size_bytes/up.sql
@@ -0,0 +1 @@
+ALTER TABLE "public"."media_analytics" ALTER COLUMN "total_size_bytes" TYPE numeric;
diff --git a/hasura/migrations/1762546323722_alter_table_public_media_analytics_detail_alter_column_total_size_bytes/down.sql b/hasura/migrations/1762546323722_alter_table_public_media_analytics_detail_alter_column_total_size_bytes/down.sql
new file mode 100644
index 000000000..8c75804d7
--- /dev/null
+++ b/hasura/migrations/1762546323722_alter_table_public_media_analytics_detail_alter_column_total_size_bytes/down.sql
@@ -0,0 +1 @@
+ALTER TABLE "public"."media_analytics_detail" ALTER COLUMN "total_size_bytes" TYPE integer;
diff --git a/hasura/migrations/1762546323722_alter_table_public_media_analytics_detail_alter_column_total_size_bytes/up.sql b/hasura/migrations/1762546323722_alter_table_public_media_analytics_detail_alter_column_total_size_bytes/up.sql
new file mode 100644
index 000000000..7320b541a
--- /dev/null
+++ b/hasura/migrations/1762546323722_alter_table_public_media_analytics_detail_alter_column_total_size_bytes/up.sql
@@ -0,0 +1 @@
+ALTER TABLE "public"."media_analytics_detail" ALTER COLUMN "total_size_bytes" TYPE numeric;
diff --git a/package-lock.json b/package-lock.json
index 4bd305b10..aff75bf56 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,41 +9,40 @@
"version": "0.2.0",
"license": "UNLICENSED",
"dependencies": {
- "@aws-sdk/client-cloudwatch-logs": "^3.882.0",
- "@aws-sdk/client-elasticache": "^3.882.0",
- "@aws-sdk/client-s3": "^3.882.0",
- "@aws-sdk/client-secrets-manager": "^3.882.0",
- "@aws-sdk/client-ses": "^3.882.0",
- "@aws-sdk/credential-provider-node": "^3.882.0",
- "@aws-sdk/lib-storage": "^3.882.0",
- "@aws-sdk/s3-request-presigner": "^3.882.0",
+ "@aws-sdk/client-cloudwatch-logs": "^3.901.0",
+ "@aws-sdk/client-elasticache": "^3.901.0",
+ "@aws-sdk/client-s3": "^3.901.0",
+ "@aws-sdk/client-secrets-manager": "^3.901.0",
+ "@aws-sdk/client-ses": "^3.901.0",
+ "@aws-sdk/credential-provider-node": "^3.901.0",
+ "@aws-sdk/lib-storage": "^3.903.0",
+ "@aws-sdk/s3-request-presigner": "^3.901.0",
"@opensearch-project/opensearch": "^2.13.0",
"@socket.io/admin-ui": "^0.5.1",
"@socket.io/redis-adapter": "^8.3.0",
"archiver": "^7.0.1",
"aws4": "^1.13.2",
- "axios": "^1.11.0",
+ "axios": "^1.12.2",
"axios-curlirize": "^2.0.0",
"better-queue": "^3.8.12",
- "bullmq": "^5.58.5",
+ "bullmq": "^5.61.0",
"chart.js": "^4.5.0",
"cloudinary": "^2.7.0",
"compression": "^1.8.1",
"cookie-parser": "^1.4.7",
"cors": "^2.8.5",
"crisp-status-reporter": "^1.2.2",
- "dd-trace": "^5.65.0",
"dinero.js": "^1.9.1",
- "dotenv": "^17.2.2",
+ "dotenv": "^17.2.3",
"express": "^4.21.1",
"firebase-admin": "^13.5.0",
"graphql": "^16.11.0",
"graphql-request": "^6.1.0",
"intuit-oauth": "^4.2.0",
- "ioredis": "^5.7.0",
+ "ioredis": "^5.8.1",
"json-2-csv": "^5.5.9",
"jsonwebtoken": "^9.0.2",
- "juice": "^11.0.1",
+ "juice": "^11.0.3",
"lodash": "^4.17.21",
"moment": "^2.30.1",
"moment-timezone": "^0.6.0",
@@ -54,22 +53,22 @@
"query-string": "7.1.3",
"recursive-diff": "^1.0.9",
"rimraf": "^6.0.1",
- "skia-canvas": "^3.0.6",
- "soap": "^1.3.0",
+ "skia-canvas": "^3.0.8",
+ "soap": "^1.5.0",
"socket.io": "^4.8.1",
"socket.io-adapter": "^2.5.5",
"ssh2-sftp-client": "^11.0.0",
- "twilio": "^5.9.0",
+ "twilio": "^5.10.2",
"uuid": "^11.1.0",
- "winston": "^3.17.0",
+ "winston": "^3.18.3",
"winston-cloudwatch": "^6.3.0",
"xml2js": "^0.6.2",
"xmlbuilder2": "^3.1.1",
"yazl": "^3.3.1"
},
"devDependencies": {
- "@eslint/js": "^9.35.0",
- "eslint": "^9.35.0",
+ "@eslint/js": "^9.37.0",
+ "eslint": "^9.37.0",
"eslint-plugin-react": "^7.37.5",
"globals": "^15.15.0",
"mock-require": "^3.0.3",
@@ -286,118 +285,104 @@
}
},
"node_modules/@aws-sdk/client-cloudwatch-logs": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudwatch-logs/-/client-cloudwatch-logs-3.882.0.tgz",
- "integrity": "sha512-5MqQIzkHNTi8UQc7tYrb8N5f6bEyxXUvEi/0bV6S3UZmYLxI5LvKhoibyl6kLLR+RcUinrQ1evotVVnzRzZmvQ==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudwatch-logs/-/client-cloudwatch-logs-3.901.0.tgz",
+ "integrity": "sha512-36T3Vev/StVPPkZG8zhs+Pzch4T1LtwGZgPluF5nyaRO+s/1KbzwUEaKV/6Ts3DvdA6bq8aNBQ0psss6+r0LDw==",
"license": "Apache-2.0",
"dependencies": {
"@aws-crypto/sha256-browser": "5.2.0",
"@aws-crypto/sha256-js": "5.2.0",
- "@aws-sdk/core": "3.882.0",
- "@aws-sdk/credential-provider-node": "3.882.0",
- "@aws-sdk/middleware-host-header": "3.873.0",
- "@aws-sdk/middleware-logger": "3.876.0",
- "@aws-sdk/middleware-recursion-detection": "3.873.0",
- "@aws-sdk/middleware-user-agent": "3.882.0",
- "@aws-sdk/region-config-resolver": "3.873.0",
- "@aws-sdk/types": "3.862.0",
- "@aws-sdk/util-endpoints": "3.879.0",
- "@aws-sdk/util-user-agent-browser": "3.873.0",
- "@aws-sdk/util-user-agent-node": "3.882.0",
- "@smithy/config-resolver": "^4.1.5",
- "@smithy/core": "^3.9.2",
- "@smithy/eventstream-serde-browser": "^4.0.5",
- "@smithy/eventstream-serde-config-resolver": "^4.1.3",
- "@smithy/eventstream-serde-node": "^4.0.5",
- "@smithy/fetch-http-handler": "^5.1.1",
- "@smithy/hash-node": "^4.0.5",
- "@smithy/invalid-dependency": "^4.0.5",
- "@smithy/middleware-content-length": "^4.0.5",
- "@smithy/middleware-endpoint": "^4.1.21",
- "@smithy/middleware-retry": "^4.1.22",
- "@smithy/middleware-serde": "^4.0.9",
- "@smithy/middleware-stack": "^4.0.5",
- "@smithy/node-config-provider": "^4.1.4",
- "@smithy/node-http-handler": "^4.1.1",
- "@smithy/protocol-http": "^5.1.3",
- "@smithy/smithy-client": "^4.5.2",
- "@smithy/types": "^4.3.2",
- "@smithy/url-parser": "^4.0.5",
- "@smithy/util-base64": "^4.0.0",
- "@smithy/util-body-length-browser": "^4.0.0",
- "@smithy/util-body-length-node": "^4.0.0",
- "@smithy/util-defaults-mode-browser": "^4.0.29",
- "@smithy/util-defaults-mode-node": "^4.0.29",
- "@smithy/util-endpoints": "^3.0.7",
- "@smithy/util-middleware": "^4.0.5",
- "@smithy/util-retry": "^4.0.7",
- "@smithy/util-utf8": "^4.0.0",
- "@types/uuid": "^9.0.1",
- "tslib": "^2.6.2",
- "uuid": "^9.0.1"
+ "@aws-sdk/core": "3.901.0",
+ "@aws-sdk/credential-provider-node": "3.901.0",
+ "@aws-sdk/middleware-host-header": "3.901.0",
+ "@aws-sdk/middleware-logger": "3.901.0",
+ "@aws-sdk/middleware-recursion-detection": "3.901.0",
+ "@aws-sdk/middleware-user-agent": "3.901.0",
+ "@aws-sdk/region-config-resolver": "3.901.0",
+ "@aws-sdk/types": "3.901.0",
+ "@aws-sdk/util-endpoints": "3.901.0",
+ "@aws-sdk/util-user-agent-browser": "3.901.0",
+ "@aws-sdk/util-user-agent-node": "3.901.0",
+ "@smithy/config-resolver": "^4.3.0",
+ "@smithy/core": "^3.14.0",
+ "@smithy/eventstream-serde-browser": "^4.2.0",
+ "@smithy/eventstream-serde-config-resolver": "^4.3.0",
+ "@smithy/eventstream-serde-node": "^4.2.0",
+ "@smithy/fetch-http-handler": "^5.3.0",
+ "@smithy/hash-node": "^4.2.0",
+ "@smithy/invalid-dependency": "^4.2.0",
+ "@smithy/middleware-content-length": "^4.2.0",
+ "@smithy/middleware-endpoint": "^4.3.0",
+ "@smithy/middleware-retry": "^4.4.0",
+ "@smithy/middleware-serde": "^4.2.0",
+ "@smithy/middleware-stack": "^4.2.0",
+ "@smithy/node-config-provider": "^4.3.0",
+ "@smithy/node-http-handler": "^4.3.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/smithy-client": "^4.7.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/url-parser": "^4.2.0",
+ "@smithy/util-base64": "^4.2.0",
+ "@smithy/util-body-length-browser": "^4.2.0",
+ "@smithy/util-body-length-node": "^4.2.0",
+ "@smithy/util-defaults-mode-browser": "^4.2.0",
+ "@smithy/util-defaults-mode-node": "^4.2.0",
+ "@smithy/util-endpoints": "^3.2.0",
+ "@smithy/util-middleware": "^4.2.0",
+ "@smithy/util-retry": "^4.2.0",
+ "@smithy/util-utf8": "^4.2.0",
+ "@smithy/uuid": "^1.1.0",
+ "tslib": "^2.6.2"
},
"engines": {
"node": ">=18.0.0"
}
},
- "node_modules/@aws-sdk/client-cloudwatch-logs/node_modules/uuid": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
- "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
- "funding": [
- "https://github.com/sponsors/broofa",
- "https://github.com/sponsors/ctavan"
- ],
- "license": "MIT",
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
"node_modules/@aws-sdk/client-elasticache": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-elasticache/-/client-elasticache-3.882.0.tgz",
- "integrity": "sha512-QSSzYHzTKu8Mmd+UpEZ1lt/KqLGEhldTAdrKFcn1f1SaNwRi5G7e4NTze3JQ2vJgDfg+W8SX26Q5h/ZMDzXOTA==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-elasticache/-/client-elasticache-3.901.0.tgz",
+ "integrity": "sha512-l6nZ6sF9IYttojAiCiCUrCnScSpXfaxWX12of/PkJIF5uiwu0fGESkHDU4ZVfBxbUeYNp/FnQPdHfMJH2RD9qA==",
"license": "Apache-2.0",
"dependencies": {
"@aws-crypto/sha256-browser": "5.2.0",
"@aws-crypto/sha256-js": "5.2.0",
- "@aws-sdk/core": "3.882.0",
- "@aws-sdk/credential-provider-node": "3.882.0",
- "@aws-sdk/middleware-host-header": "3.873.0",
- "@aws-sdk/middleware-logger": "3.876.0",
- "@aws-sdk/middleware-recursion-detection": "3.873.0",
- "@aws-sdk/middleware-user-agent": "3.882.0",
- "@aws-sdk/region-config-resolver": "3.873.0",
- "@aws-sdk/types": "3.862.0",
- "@aws-sdk/util-endpoints": "3.879.0",
- "@aws-sdk/util-user-agent-browser": "3.873.0",
- "@aws-sdk/util-user-agent-node": "3.882.0",
- "@smithy/config-resolver": "^4.1.5",
- "@smithy/core": "^3.9.2",
- "@smithy/fetch-http-handler": "^5.1.1",
- "@smithy/hash-node": "^4.0.5",
- "@smithy/invalid-dependency": "^4.0.5",
- "@smithy/middleware-content-length": "^4.0.5",
- "@smithy/middleware-endpoint": "^4.1.21",
- "@smithy/middleware-retry": "^4.1.22",
- "@smithy/middleware-serde": "^4.0.9",
- "@smithy/middleware-stack": "^4.0.5",
- "@smithy/node-config-provider": "^4.1.4",
- "@smithy/node-http-handler": "^4.1.1",
- "@smithy/protocol-http": "^5.1.3",
- "@smithy/smithy-client": "^4.5.2",
- "@smithy/types": "^4.3.2",
- "@smithy/url-parser": "^4.0.5",
- "@smithy/util-base64": "^4.0.0",
- "@smithy/util-body-length-browser": "^4.0.0",
- "@smithy/util-body-length-node": "^4.0.0",
- "@smithy/util-defaults-mode-browser": "^4.0.29",
- "@smithy/util-defaults-mode-node": "^4.0.29",
- "@smithy/util-endpoints": "^3.0.7",
- "@smithy/util-middleware": "^4.0.5",
- "@smithy/util-retry": "^4.0.7",
- "@smithy/util-utf8": "^4.0.0",
- "@smithy/util-waiter": "^4.0.7",
+ "@aws-sdk/core": "3.901.0",
+ "@aws-sdk/credential-provider-node": "3.901.0",
+ "@aws-sdk/middleware-host-header": "3.901.0",
+ "@aws-sdk/middleware-logger": "3.901.0",
+ "@aws-sdk/middleware-recursion-detection": "3.901.0",
+ "@aws-sdk/middleware-user-agent": "3.901.0",
+ "@aws-sdk/region-config-resolver": "3.901.0",
+ "@aws-sdk/types": "3.901.0",
+ "@aws-sdk/util-endpoints": "3.901.0",
+ "@aws-sdk/util-user-agent-browser": "3.901.0",
+ "@aws-sdk/util-user-agent-node": "3.901.0",
+ "@smithy/config-resolver": "^4.3.0",
+ "@smithy/core": "^3.14.0",
+ "@smithy/fetch-http-handler": "^5.3.0",
+ "@smithy/hash-node": "^4.2.0",
+ "@smithy/invalid-dependency": "^4.2.0",
+ "@smithy/middleware-content-length": "^4.2.0",
+ "@smithy/middleware-endpoint": "^4.3.0",
+ "@smithy/middleware-retry": "^4.4.0",
+ "@smithy/middleware-serde": "^4.2.0",
+ "@smithy/middleware-stack": "^4.2.0",
+ "@smithy/node-config-provider": "^4.3.0",
+ "@smithy/node-http-handler": "^4.3.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/smithy-client": "^4.7.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/url-parser": "^4.2.0",
+ "@smithy/util-base64": "^4.2.0",
+ "@smithy/util-body-length-browser": "^4.2.0",
+ "@smithy/util-body-length-node": "^4.2.0",
+ "@smithy/util-defaults-mode-browser": "^4.2.0",
+ "@smithy/util-defaults-mode-node": "^4.2.0",
+ "@smithy/util-endpoints": "^3.2.0",
+ "@smithy/util-middleware": "^4.2.0",
+ "@smithy/util-retry": "^4.2.0",
+ "@smithy/util-utf8": "^4.2.0",
+ "@smithy/util-waiter": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -405,197 +390,169 @@
}
},
"node_modules/@aws-sdk/client-s3": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.882.0.tgz",
- "integrity": "sha512-0IrBUOrBepQeuH025t+b4KqgBRQT+B//JlTU3+629WUGWwsWVfFkCTkn4xK/oQP9/K6npZtfDTuO6XfXSLimmg==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.901.0.tgz",
+ "integrity": "sha512-wyKhZ51ur1tFuguZ6PgrUsot9KopqD0Tmxw8O8P/N3suQDxFPr0Yo7Y77ezDRDZQ95Ml3C0jlvx79HCo8VxdWA==",
"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.882.0",
- "@aws-sdk/credential-provider-node": "3.882.0",
- "@aws-sdk/middleware-bucket-endpoint": "3.873.0",
- "@aws-sdk/middleware-expect-continue": "3.873.0",
- "@aws-sdk/middleware-flexible-checksums": "3.882.0",
- "@aws-sdk/middleware-host-header": "3.873.0",
- "@aws-sdk/middleware-location-constraint": "3.873.0",
- "@aws-sdk/middleware-logger": "3.876.0",
- "@aws-sdk/middleware-recursion-detection": "3.873.0",
- "@aws-sdk/middleware-sdk-s3": "3.882.0",
- "@aws-sdk/middleware-ssec": "3.873.0",
- "@aws-sdk/middleware-user-agent": "3.882.0",
- "@aws-sdk/region-config-resolver": "3.873.0",
- "@aws-sdk/signature-v4-multi-region": "3.882.0",
- "@aws-sdk/types": "3.862.0",
- "@aws-sdk/util-endpoints": "3.879.0",
- "@aws-sdk/util-user-agent-browser": "3.873.0",
- "@aws-sdk/util-user-agent-node": "3.882.0",
- "@aws-sdk/xml-builder": "3.873.0",
- "@smithy/config-resolver": "^4.1.5",
- "@smithy/core": "^3.9.2",
- "@smithy/eventstream-serde-browser": "^4.0.5",
- "@smithy/eventstream-serde-config-resolver": "^4.1.3",
- "@smithy/eventstream-serde-node": "^4.0.5",
- "@smithy/fetch-http-handler": "^5.1.1",
- "@smithy/hash-blob-browser": "^4.0.5",
- "@smithy/hash-node": "^4.0.5",
- "@smithy/hash-stream-node": "^4.0.5",
- "@smithy/invalid-dependency": "^4.0.5",
- "@smithy/md5-js": "^4.0.5",
- "@smithy/middleware-content-length": "^4.0.5",
- "@smithy/middleware-endpoint": "^4.1.21",
- "@smithy/middleware-retry": "^4.1.22",
- "@smithy/middleware-serde": "^4.0.9",
- "@smithy/middleware-stack": "^4.0.5",
- "@smithy/node-config-provider": "^4.1.4",
- "@smithy/node-http-handler": "^4.1.1",
- "@smithy/protocol-http": "^5.1.3",
- "@smithy/smithy-client": "^4.5.2",
- "@smithy/types": "^4.3.2",
- "@smithy/url-parser": "^4.0.5",
- "@smithy/util-base64": "^4.0.0",
- "@smithy/util-body-length-browser": "^4.0.0",
- "@smithy/util-body-length-node": "^4.0.0",
- "@smithy/util-defaults-mode-browser": "^4.0.29",
- "@smithy/util-defaults-mode-node": "^4.0.29",
- "@smithy/util-endpoints": "^3.0.7",
- "@smithy/util-middleware": "^4.0.5",
- "@smithy/util-retry": "^4.0.7",
- "@smithy/util-stream": "^4.2.4",
- "@smithy/util-utf8": "^4.0.0",
- "@smithy/util-waiter": "^4.0.7",
- "@types/uuid": "^9.0.1",
- "tslib": "^2.6.2",
- "uuid": "^9.0.1"
+ "@aws-sdk/core": "3.901.0",
+ "@aws-sdk/credential-provider-node": "3.901.0",
+ "@aws-sdk/middleware-bucket-endpoint": "3.901.0",
+ "@aws-sdk/middleware-expect-continue": "3.901.0",
+ "@aws-sdk/middleware-flexible-checksums": "3.901.0",
+ "@aws-sdk/middleware-host-header": "3.901.0",
+ "@aws-sdk/middleware-location-constraint": "3.901.0",
+ "@aws-sdk/middleware-logger": "3.901.0",
+ "@aws-sdk/middleware-recursion-detection": "3.901.0",
+ "@aws-sdk/middleware-sdk-s3": "3.901.0",
+ "@aws-sdk/middleware-ssec": "3.901.0",
+ "@aws-sdk/middleware-user-agent": "3.901.0",
+ "@aws-sdk/region-config-resolver": "3.901.0",
+ "@aws-sdk/signature-v4-multi-region": "3.901.0",
+ "@aws-sdk/types": "3.901.0",
+ "@aws-sdk/util-endpoints": "3.901.0",
+ "@aws-sdk/util-user-agent-browser": "3.901.0",
+ "@aws-sdk/util-user-agent-node": "3.901.0",
+ "@aws-sdk/xml-builder": "3.901.0",
+ "@smithy/config-resolver": "^4.3.0",
+ "@smithy/core": "^3.14.0",
+ "@smithy/eventstream-serde-browser": "^4.2.0",
+ "@smithy/eventstream-serde-config-resolver": "^4.3.0",
+ "@smithy/eventstream-serde-node": "^4.2.0",
+ "@smithy/fetch-http-handler": "^5.3.0",
+ "@smithy/hash-blob-browser": "^4.2.0",
+ "@smithy/hash-node": "^4.2.0",
+ "@smithy/hash-stream-node": "^4.2.0",
+ "@smithy/invalid-dependency": "^4.2.0",
+ "@smithy/md5-js": "^4.2.0",
+ "@smithy/middleware-content-length": "^4.2.0",
+ "@smithy/middleware-endpoint": "^4.3.0",
+ "@smithy/middleware-retry": "^4.4.0",
+ "@smithy/middleware-serde": "^4.2.0",
+ "@smithy/middleware-stack": "^4.2.0",
+ "@smithy/node-config-provider": "^4.3.0",
+ "@smithy/node-http-handler": "^4.3.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/smithy-client": "^4.7.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/url-parser": "^4.2.0",
+ "@smithy/util-base64": "^4.2.0",
+ "@smithy/util-body-length-browser": "^4.2.0",
+ "@smithy/util-body-length-node": "^4.2.0",
+ "@smithy/util-defaults-mode-browser": "^4.2.0",
+ "@smithy/util-defaults-mode-node": "^4.2.0",
+ "@smithy/util-endpoints": "^3.2.0",
+ "@smithy/util-middleware": "^4.2.0",
+ "@smithy/util-retry": "^4.2.0",
+ "@smithy/util-stream": "^4.4.0",
+ "@smithy/util-utf8": "^4.2.0",
+ "@smithy/util-waiter": "^4.2.0",
+ "@smithy/uuid": "^1.1.0",
+ "tslib": "^2.6.2"
},
"engines": {
"node": ">=18.0.0"
}
},
- "node_modules/@aws-sdk/client-s3/node_modules/uuid": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
- "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
- "funding": [
- "https://github.com/sponsors/broofa",
- "https://github.com/sponsors/ctavan"
- ],
- "license": "MIT",
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
"node_modules/@aws-sdk/client-secrets-manager": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.882.0.tgz",
- "integrity": "sha512-g7mG6DfajZf0c9PZoTFj23Ny/gxFdNxU7E9mh4ABv3PSllGqCURPXHJWi0GtD3hXp+rLole6Y46u/jclIut/Bw==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.901.0.tgz",
+ "integrity": "sha512-k5HEJfPiwgGVAjDGRPbysD3K2W0iMKQUv3zKTqHLFxog6X7JBrKGNgQwwtdz3vE5z9SFjGov7cFS1T1QuLVKQg==",
"license": "Apache-2.0",
"dependencies": {
"@aws-crypto/sha256-browser": "5.2.0",
"@aws-crypto/sha256-js": "5.2.0",
- "@aws-sdk/core": "3.882.0",
- "@aws-sdk/credential-provider-node": "3.882.0",
- "@aws-sdk/middleware-host-header": "3.873.0",
- "@aws-sdk/middleware-logger": "3.876.0",
- "@aws-sdk/middleware-recursion-detection": "3.873.0",
- "@aws-sdk/middleware-user-agent": "3.882.0",
- "@aws-sdk/region-config-resolver": "3.873.0",
- "@aws-sdk/types": "3.862.0",
- "@aws-sdk/util-endpoints": "3.879.0",
- "@aws-sdk/util-user-agent-browser": "3.873.0",
- "@aws-sdk/util-user-agent-node": "3.882.0",
- "@smithy/config-resolver": "^4.1.5",
- "@smithy/core": "^3.9.2",
- "@smithy/fetch-http-handler": "^5.1.1",
- "@smithy/hash-node": "^4.0.5",
- "@smithy/invalid-dependency": "^4.0.5",
- "@smithy/middleware-content-length": "^4.0.5",
- "@smithy/middleware-endpoint": "^4.1.21",
- "@smithy/middleware-retry": "^4.1.22",
- "@smithy/middleware-serde": "^4.0.9",
- "@smithy/middleware-stack": "^4.0.5",
- "@smithy/node-config-provider": "^4.1.4",
- "@smithy/node-http-handler": "^4.1.1",
- "@smithy/protocol-http": "^5.1.3",
- "@smithy/smithy-client": "^4.5.2",
- "@smithy/types": "^4.3.2",
- "@smithy/url-parser": "^4.0.5",
- "@smithy/util-base64": "^4.0.0",
- "@smithy/util-body-length-browser": "^4.0.0",
- "@smithy/util-body-length-node": "^4.0.0",
- "@smithy/util-defaults-mode-browser": "^4.0.29",
- "@smithy/util-defaults-mode-node": "^4.0.29",
- "@smithy/util-endpoints": "^3.0.7",
- "@smithy/util-middleware": "^4.0.5",
- "@smithy/util-retry": "^4.0.7",
- "@smithy/util-utf8": "^4.0.0",
- "@types/uuid": "^9.0.1",
- "tslib": "^2.6.2",
- "uuid": "^9.0.1"
+ "@aws-sdk/core": "3.901.0",
+ "@aws-sdk/credential-provider-node": "3.901.0",
+ "@aws-sdk/middleware-host-header": "3.901.0",
+ "@aws-sdk/middleware-logger": "3.901.0",
+ "@aws-sdk/middleware-recursion-detection": "3.901.0",
+ "@aws-sdk/middleware-user-agent": "3.901.0",
+ "@aws-sdk/region-config-resolver": "3.901.0",
+ "@aws-sdk/types": "3.901.0",
+ "@aws-sdk/util-endpoints": "3.901.0",
+ "@aws-sdk/util-user-agent-browser": "3.901.0",
+ "@aws-sdk/util-user-agent-node": "3.901.0",
+ "@smithy/config-resolver": "^4.3.0",
+ "@smithy/core": "^3.14.0",
+ "@smithy/fetch-http-handler": "^5.3.0",
+ "@smithy/hash-node": "^4.2.0",
+ "@smithy/invalid-dependency": "^4.2.0",
+ "@smithy/middleware-content-length": "^4.2.0",
+ "@smithy/middleware-endpoint": "^4.3.0",
+ "@smithy/middleware-retry": "^4.4.0",
+ "@smithy/middleware-serde": "^4.2.0",
+ "@smithy/middleware-stack": "^4.2.0",
+ "@smithy/node-config-provider": "^4.3.0",
+ "@smithy/node-http-handler": "^4.3.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/smithy-client": "^4.7.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/url-parser": "^4.2.0",
+ "@smithy/util-base64": "^4.2.0",
+ "@smithy/util-body-length-browser": "^4.2.0",
+ "@smithy/util-body-length-node": "^4.2.0",
+ "@smithy/util-defaults-mode-browser": "^4.2.0",
+ "@smithy/util-defaults-mode-node": "^4.2.0",
+ "@smithy/util-endpoints": "^3.2.0",
+ "@smithy/util-middleware": "^4.2.0",
+ "@smithy/util-retry": "^4.2.0",
+ "@smithy/util-utf8": "^4.2.0",
+ "@smithy/uuid": "^1.1.0",
+ "tslib": "^2.6.2"
},
"engines": {
"node": ">=18.0.0"
}
},
- "node_modules/@aws-sdk/client-secrets-manager/node_modules/uuid": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
- "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
- "funding": [
- "https://github.com/sponsors/broofa",
- "https://github.com/sponsors/ctavan"
- ],
- "license": "MIT",
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
"node_modules/@aws-sdk/client-ses": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-ses/-/client-ses-3.882.0.tgz",
- "integrity": "sha512-Ao+AKBOg9kX1EhTefcKTawfg71NMEWkL9EB0gZlfjoLbDCWNNW5SDbSXh9wvCJ9+P2S7ubLbn/9Qe+wugBFQ1A==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-ses/-/client-ses-3.901.0.tgz",
+ "integrity": "sha512-CJfIsqloxgFvTb3arx/ZGVfxWo6zA8VzNQoMowd1G8ab6PjsqFSWufRGbQcvfwuKoUhHvtPAZw1zrqp7LJwAww==",
"license": "Apache-2.0",
"dependencies": {
"@aws-crypto/sha256-browser": "5.2.0",
"@aws-crypto/sha256-js": "5.2.0",
- "@aws-sdk/core": "3.882.0",
- "@aws-sdk/credential-provider-node": "3.882.0",
- "@aws-sdk/middleware-host-header": "3.873.0",
- "@aws-sdk/middleware-logger": "3.876.0",
- "@aws-sdk/middleware-recursion-detection": "3.873.0",
- "@aws-sdk/middleware-user-agent": "3.882.0",
- "@aws-sdk/region-config-resolver": "3.873.0",
- "@aws-sdk/types": "3.862.0",
- "@aws-sdk/util-endpoints": "3.879.0",
- "@aws-sdk/util-user-agent-browser": "3.873.0",
- "@aws-sdk/util-user-agent-node": "3.882.0",
- "@smithy/config-resolver": "^4.1.5",
- "@smithy/core": "^3.9.2",
- "@smithy/fetch-http-handler": "^5.1.1",
- "@smithy/hash-node": "^4.0.5",
- "@smithy/invalid-dependency": "^4.0.5",
- "@smithy/middleware-content-length": "^4.0.5",
- "@smithy/middleware-endpoint": "^4.1.21",
- "@smithy/middleware-retry": "^4.1.22",
- "@smithy/middleware-serde": "^4.0.9",
- "@smithy/middleware-stack": "^4.0.5",
- "@smithy/node-config-provider": "^4.1.4",
- "@smithy/node-http-handler": "^4.1.1",
- "@smithy/protocol-http": "^5.1.3",
- "@smithy/smithy-client": "^4.5.2",
- "@smithy/types": "^4.3.2",
- "@smithy/url-parser": "^4.0.5",
- "@smithy/util-base64": "^4.0.0",
- "@smithy/util-body-length-browser": "^4.0.0",
- "@smithy/util-body-length-node": "^4.0.0",
- "@smithy/util-defaults-mode-browser": "^4.0.29",
- "@smithy/util-defaults-mode-node": "^4.0.29",
- "@smithy/util-endpoints": "^3.0.7",
- "@smithy/util-middleware": "^4.0.5",
- "@smithy/util-retry": "^4.0.7",
- "@smithy/util-utf8": "^4.0.0",
- "@smithy/util-waiter": "^4.0.7",
+ "@aws-sdk/core": "3.901.0",
+ "@aws-sdk/credential-provider-node": "3.901.0",
+ "@aws-sdk/middleware-host-header": "3.901.0",
+ "@aws-sdk/middleware-logger": "3.901.0",
+ "@aws-sdk/middleware-recursion-detection": "3.901.0",
+ "@aws-sdk/middleware-user-agent": "3.901.0",
+ "@aws-sdk/region-config-resolver": "3.901.0",
+ "@aws-sdk/types": "3.901.0",
+ "@aws-sdk/util-endpoints": "3.901.0",
+ "@aws-sdk/util-user-agent-browser": "3.901.0",
+ "@aws-sdk/util-user-agent-node": "3.901.0",
+ "@smithy/config-resolver": "^4.3.0",
+ "@smithy/core": "^3.14.0",
+ "@smithy/fetch-http-handler": "^5.3.0",
+ "@smithy/hash-node": "^4.2.0",
+ "@smithy/invalid-dependency": "^4.2.0",
+ "@smithy/middleware-content-length": "^4.2.0",
+ "@smithy/middleware-endpoint": "^4.3.0",
+ "@smithy/middleware-retry": "^4.4.0",
+ "@smithy/middleware-serde": "^4.2.0",
+ "@smithy/middleware-stack": "^4.2.0",
+ "@smithy/node-config-provider": "^4.3.0",
+ "@smithy/node-http-handler": "^4.3.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/smithy-client": "^4.7.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/url-parser": "^4.2.0",
+ "@smithy/util-base64": "^4.2.0",
+ "@smithy/util-body-length-browser": "^4.2.0",
+ "@smithy/util-body-length-node": "^4.2.0",
+ "@smithy/util-defaults-mode-browser": "^4.2.0",
+ "@smithy/util-defaults-mode-node": "^4.2.0",
+ "@smithy/util-endpoints": "^3.2.0",
+ "@smithy/util-middleware": "^4.2.0",
+ "@smithy/util-retry": "^4.2.0",
+ "@smithy/util-utf8": "^4.2.0",
+ "@smithy/util-waiter": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -603,48 +560,48 @@
}
},
"node_modules/@aws-sdk/client-sso": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.882.0.tgz",
- "integrity": "sha512-JFWJB+2PZvygDuqb4iWKCro1Tl5L4tGBXMHe94jYMYnfajYGm58bW3RsPj3cKD2+TvIMUSXmNriNv+LbDKZmNw==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.901.0.tgz",
+ "integrity": "sha512-sGyDjjkJ7ppaE+bAKL/Q5IvVCxtoyBIzN+7+hWTS/mUxWJ9EOq9238IqmVIIK6sYNIzEf9yhobfMARasPYVTNg==",
"license": "Apache-2.0",
"dependencies": {
"@aws-crypto/sha256-browser": "5.2.0",
"@aws-crypto/sha256-js": "5.2.0",
- "@aws-sdk/core": "3.882.0",
- "@aws-sdk/middleware-host-header": "3.873.0",
- "@aws-sdk/middleware-logger": "3.876.0",
- "@aws-sdk/middleware-recursion-detection": "3.873.0",
- "@aws-sdk/middleware-user-agent": "3.882.0",
- "@aws-sdk/region-config-resolver": "3.873.0",
- "@aws-sdk/types": "3.862.0",
- "@aws-sdk/util-endpoints": "3.879.0",
- "@aws-sdk/util-user-agent-browser": "3.873.0",
- "@aws-sdk/util-user-agent-node": "3.882.0",
- "@smithy/config-resolver": "^4.1.5",
- "@smithy/core": "^3.9.2",
- "@smithy/fetch-http-handler": "^5.1.1",
- "@smithy/hash-node": "^4.0.5",
- "@smithy/invalid-dependency": "^4.0.5",
- "@smithy/middleware-content-length": "^4.0.5",
- "@smithy/middleware-endpoint": "^4.1.21",
- "@smithy/middleware-retry": "^4.1.22",
- "@smithy/middleware-serde": "^4.0.9",
- "@smithy/middleware-stack": "^4.0.5",
- "@smithy/node-config-provider": "^4.1.4",
- "@smithy/node-http-handler": "^4.1.1",
- "@smithy/protocol-http": "^5.1.3",
- "@smithy/smithy-client": "^4.5.2",
- "@smithy/types": "^4.3.2",
- "@smithy/url-parser": "^4.0.5",
- "@smithy/util-base64": "^4.0.0",
- "@smithy/util-body-length-browser": "^4.0.0",
- "@smithy/util-body-length-node": "^4.0.0",
- "@smithy/util-defaults-mode-browser": "^4.0.29",
- "@smithy/util-defaults-mode-node": "^4.0.29",
- "@smithy/util-endpoints": "^3.0.7",
- "@smithy/util-middleware": "^4.0.5",
- "@smithy/util-retry": "^4.0.7",
- "@smithy/util-utf8": "^4.0.0",
+ "@aws-sdk/core": "3.901.0",
+ "@aws-sdk/middleware-host-header": "3.901.0",
+ "@aws-sdk/middleware-logger": "3.901.0",
+ "@aws-sdk/middleware-recursion-detection": "3.901.0",
+ "@aws-sdk/middleware-user-agent": "3.901.0",
+ "@aws-sdk/region-config-resolver": "3.901.0",
+ "@aws-sdk/types": "3.901.0",
+ "@aws-sdk/util-endpoints": "3.901.0",
+ "@aws-sdk/util-user-agent-browser": "3.901.0",
+ "@aws-sdk/util-user-agent-node": "3.901.0",
+ "@smithy/config-resolver": "^4.3.0",
+ "@smithy/core": "^3.14.0",
+ "@smithy/fetch-http-handler": "^5.3.0",
+ "@smithy/hash-node": "^4.2.0",
+ "@smithy/invalid-dependency": "^4.2.0",
+ "@smithy/middleware-content-length": "^4.2.0",
+ "@smithy/middleware-endpoint": "^4.3.0",
+ "@smithy/middleware-retry": "^4.4.0",
+ "@smithy/middleware-serde": "^4.2.0",
+ "@smithy/middleware-stack": "^4.2.0",
+ "@smithy/node-config-provider": "^4.3.0",
+ "@smithy/node-http-handler": "^4.3.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/smithy-client": "^4.7.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/url-parser": "^4.2.0",
+ "@smithy/util-base64": "^4.2.0",
+ "@smithy/util-body-length-browser": "^4.2.0",
+ "@smithy/util-body-length-node": "^4.2.0",
+ "@smithy/util-defaults-mode-browser": "^4.2.0",
+ "@smithy/util-defaults-mode-node": "^4.2.0",
+ "@smithy/util-endpoints": "^3.2.0",
+ "@smithy/util-middleware": "^4.2.0",
+ "@smithy/util-retry": "^4.2.0",
+ "@smithy/util-utf8": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -652,71 +609,39 @@
}
},
"node_modules/@aws-sdk/core": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.882.0.tgz",
- "integrity": "sha512-m43/gEDbxqxLT/Mbn/OA21TuFpyocOUzjiSA2HBnLQ3KivA4ez0nsW91vh0Sp3TOfLgiZbRbVhmI6XfsFinwBg==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.901.0.tgz",
+ "integrity": "sha512-brKAc3y64tdhyuEf+OPIUln86bRTqkLgb9xkd6kUdIeA5+qmp/N6amItQz+RN4k4O3kqkCPYnAd3LonTKluobw==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.862.0",
- "@aws-sdk/xml-builder": "3.873.0",
- "@smithy/core": "^3.9.2",
- "@smithy/node-config-provider": "^4.1.4",
- "@smithy/property-provider": "^4.0.5",
- "@smithy/protocol-http": "^5.1.3",
- "@smithy/signature-v4": "^5.1.3",
- "@smithy/smithy-client": "^4.5.2",
- "@smithy/types": "^4.3.2",
- "@smithy/util-base64": "^4.0.0",
- "@smithy/util-body-length-browser": "^4.0.0",
- "@smithy/util-middleware": "^4.0.5",
- "@smithy/util-utf8": "^4.0.0",
- "fast-xml-parser": "5.2.5",
+ "@aws-sdk/types": "3.901.0",
+ "@aws-sdk/xml-builder": "3.901.0",
+ "@smithy/core": "^3.14.0",
+ "@smithy/node-config-provider": "^4.3.0",
+ "@smithy/property-provider": "^4.2.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/signature-v4": "^5.3.0",
+ "@smithy/smithy-client": "^4.7.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/util-base64": "^4.2.0",
+ "@smithy/util-middleware": "^4.2.0",
+ "@smithy/util-utf8": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
"node": ">=18.0.0"
}
},
- "node_modules/@aws-sdk/core/node_modules/fast-xml-parser": {
- "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",
- "url": "https://github.com/sponsors/NaturalIntelligence"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "strnum": "^2.1.0"
- },
- "bin": {
- "fxparser": "src/cli/cli.js"
- }
- },
- "node_modules/@aws-sdk/core/node_modules/strnum": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.1.1.tgz",
- "integrity": "sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/NaturalIntelligence"
- }
- ],
- "license": "MIT"
- },
"node_modules/@aws-sdk/credential-provider-env": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.882.0.tgz",
- "integrity": "sha512-khhE1k+4XvGm8Mk6vVUbrVvEnx3r8E6dymSKSiAKf0lwsnKWAWd1RLGwLusqVgtGR4Jfsrbg7ox9MczIjgCiTg==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.901.0.tgz",
+ "integrity": "sha512-5hAdVl3tBuARh3zX5MLJ1P/d+Kr5kXtDU3xm1pxUEF4xt2XkEEpwiX5fbkNkz2rbh3BCt2gOHsAbh6b3M7n+DA==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "3.882.0",
- "@aws-sdk/types": "3.862.0",
- "@smithy/property-provider": "^4.0.5",
- "@smithy/types": "^4.3.2",
+ "@aws-sdk/core": "3.901.0",
+ "@aws-sdk/types": "3.901.0",
+ "@smithy/property-provider": "^4.2.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -724,20 +649,20 @@
}
},
"node_modules/@aws-sdk/credential-provider-http": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.882.0.tgz",
- "integrity": "sha512-j3mBF+Q6RU3u8t5O1KOWbQQCi0WNSl47sNIa1RvyN6qK1WIA8BxM1hB25mI9TMPrNZMFthljVec+JcNjRNG34A==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.901.0.tgz",
+ "integrity": "sha512-Ggr7+0M6QZEsrqRkK7iyJLf4LkIAacAxHz9c4dm9hnDdU7vqrlJm6g73IxMJXWN1bIV7IxfpzB11DsRrB/oNjQ==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "3.882.0",
- "@aws-sdk/types": "3.862.0",
- "@smithy/fetch-http-handler": "^5.1.1",
- "@smithy/node-http-handler": "^4.1.1",
- "@smithy/property-provider": "^4.0.5",
- "@smithy/protocol-http": "^5.1.3",
- "@smithy/smithy-client": "^4.5.2",
- "@smithy/types": "^4.3.2",
- "@smithy/util-stream": "^4.2.4",
+ "@aws-sdk/core": "3.901.0",
+ "@aws-sdk/types": "3.901.0",
+ "@smithy/fetch-http-handler": "^5.3.0",
+ "@smithy/node-http-handler": "^4.3.0",
+ "@smithy/property-provider": "^4.2.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/smithy-client": "^4.7.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/util-stream": "^4.4.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -745,23 +670,23 @@
}
},
"node_modules/@aws-sdk/credential-provider-ini": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.882.0.tgz",
- "integrity": "sha512-nUacsSYKyTUmv/Fqe0efihCRCabea5MZtGSZF0l2V8QBo39yJjw0wVmRK6G4bfm5lY7v2EVVIUCpiTvxRRUbHg==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.901.0.tgz",
+ "integrity": "sha512-zxadcDS0hNJgv8n4hFYJNOXyfjaNE1vvqIiF/JzZSQpSSYXzCd+WxXef5bQh+W3giDtRUmkvP5JLbamEFjZKyw==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "3.882.0",
- "@aws-sdk/credential-provider-env": "3.882.0",
- "@aws-sdk/credential-provider-http": "3.882.0",
- "@aws-sdk/credential-provider-process": "3.882.0",
- "@aws-sdk/credential-provider-sso": "3.882.0",
- "@aws-sdk/credential-provider-web-identity": "3.882.0",
- "@aws-sdk/nested-clients": "3.882.0",
- "@aws-sdk/types": "3.862.0",
- "@smithy/credential-provider-imds": "^4.0.7",
- "@smithy/property-provider": "^4.0.5",
- "@smithy/shared-ini-file-loader": "^4.0.5",
- "@smithy/types": "^4.3.2",
+ "@aws-sdk/core": "3.901.0",
+ "@aws-sdk/credential-provider-env": "3.901.0",
+ "@aws-sdk/credential-provider-http": "3.901.0",
+ "@aws-sdk/credential-provider-process": "3.901.0",
+ "@aws-sdk/credential-provider-sso": "3.901.0",
+ "@aws-sdk/credential-provider-web-identity": "3.901.0",
+ "@aws-sdk/nested-clients": "3.901.0",
+ "@aws-sdk/types": "3.901.0",
+ "@smithy/credential-provider-imds": "^4.2.0",
+ "@smithy/property-provider": "^4.2.0",
+ "@smithy/shared-ini-file-loader": "^4.3.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -769,22 +694,22 @@
}
},
"node_modules/@aws-sdk/credential-provider-node": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.882.0.tgz",
- "integrity": "sha512-sELdV+leCfY+Bw8NQo3H65oIT+9thqZU0RWyv85EfZVvKEwWDt4McA7+Co1VkH+nCY21s5jz4SOqIrYuT0cSQg==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.901.0.tgz",
+ "integrity": "sha512-dPuFzMF7L1s/lQyT3wDxqLe82PyTH+5o1jdfseTEln64LJMl0ZMWaKX/C1UFNDxaTd35Cgt1bDbjjAWHMiKSFQ==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/credential-provider-env": "3.882.0",
- "@aws-sdk/credential-provider-http": "3.882.0",
- "@aws-sdk/credential-provider-ini": "3.882.0",
- "@aws-sdk/credential-provider-process": "3.882.0",
- "@aws-sdk/credential-provider-sso": "3.882.0",
- "@aws-sdk/credential-provider-web-identity": "3.882.0",
- "@aws-sdk/types": "3.862.0",
- "@smithy/credential-provider-imds": "^4.0.7",
- "@smithy/property-provider": "^4.0.5",
- "@smithy/shared-ini-file-loader": "^4.0.5",
- "@smithy/types": "^4.3.2",
+ "@aws-sdk/credential-provider-env": "3.901.0",
+ "@aws-sdk/credential-provider-http": "3.901.0",
+ "@aws-sdk/credential-provider-ini": "3.901.0",
+ "@aws-sdk/credential-provider-process": "3.901.0",
+ "@aws-sdk/credential-provider-sso": "3.901.0",
+ "@aws-sdk/credential-provider-web-identity": "3.901.0",
+ "@aws-sdk/types": "3.901.0",
+ "@smithy/credential-provider-imds": "^4.2.0",
+ "@smithy/property-provider": "^4.2.0",
+ "@smithy/shared-ini-file-loader": "^4.3.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -792,16 +717,16 @@
}
},
"node_modules/@aws-sdk/credential-provider-process": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.882.0.tgz",
- "integrity": "sha512-S3BgGcaR+L7CQAQn3Ysy9KSnck7+hDicAGM/dYvvJ8GwZNIOc0542Y+ntpV1UYa7OuZPWzGy2v2NcJSCbYDXEA==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.901.0.tgz",
+ "integrity": "sha512-/IWgmgM3Cl1wTdJA5HqKMAojxLkYchh5kDuphApxKhupLu6Pu0JBOHU8A5GGeFvOycyaVwosod6zDduINZxe+A==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "3.882.0",
- "@aws-sdk/types": "3.862.0",
- "@smithy/property-provider": "^4.0.5",
- "@smithy/shared-ini-file-loader": "^4.0.5",
- "@smithy/types": "^4.3.2",
+ "@aws-sdk/core": "3.901.0",
+ "@aws-sdk/types": "3.901.0",
+ "@smithy/property-provider": "^4.2.0",
+ "@smithy/shared-ini-file-loader": "^4.3.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -809,18 +734,18 @@
}
},
"node_modules/@aws-sdk/credential-provider-sso": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.882.0.tgz",
- "integrity": "sha512-1pZRTKiDl6Oh/jP75lEoSkJrer1YEm8lMconB8dX9bsaWbp9cZeMJMK6pts5VQcveeOLr/8/U9TESboPjHBcyA==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.901.0.tgz",
+ "integrity": "sha512-SjmqZQHmqFSET7+6xcZgtH7yEyh5q53LN87GqwYlJZ6KJ5oNw11acUNEhUOL1xTSJEvaWqwTIkS2zqrzLcM9bw==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/client-sso": "3.882.0",
- "@aws-sdk/core": "3.882.0",
- "@aws-sdk/token-providers": "3.882.0",
- "@aws-sdk/types": "3.862.0",
- "@smithy/property-provider": "^4.0.5",
- "@smithy/shared-ini-file-loader": "^4.0.5",
- "@smithy/types": "^4.3.2",
+ "@aws-sdk/client-sso": "3.901.0",
+ "@aws-sdk/core": "3.901.0",
+ "@aws-sdk/token-providers": "3.901.0",
+ "@aws-sdk/types": "3.901.0",
+ "@smithy/property-provider": "^4.2.0",
+ "@smithy/shared-ini-file-loader": "^4.3.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -828,16 +753,17 @@
}
},
"node_modules/@aws-sdk/credential-provider-web-identity": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.882.0.tgz",
- "integrity": "sha512-EvpsD0Vcz5WgXjpC53KAQ2CkeUp0KwwiV6brgQTXl+9yV/M8M0aK5Qk5ep/MPbAn5gtbqXHaCkiExaN4YYOhCg==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.901.0.tgz",
+ "integrity": "sha512-NYjy/6NLxH9m01+pfpB4ql8QgAorJcu8tw69kzHwUd/ql6wUDTbC7HcXqtKlIwWjzjgj2BKL7j6SyFapgCuafA==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "3.882.0",
- "@aws-sdk/nested-clients": "3.882.0",
- "@aws-sdk/types": "3.862.0",
- "@smithy/property-provider": "^4.0.5",
- "@smithy/types": "^4.3.2",
+ "@aws-sdk/core": "3.901.0",
+ "@aws-sdk/nested-clients": "3.901.0",
+ "@aws-sdk/types": "3.901.0",
+ "@smithy/property-provider": "^4.2.0",
+ "@smithy/shared-ini-file-loader": "^4.3.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -845,14 +771,14 @@
}
},
"node_modules/@aws-sdk/lib-storage": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.882.0.tgz",
- "integrity": "sha512-kI4JbjZMxcnyoFf6vWSKkF3tJMMe3Lx1xNkBSoh7JmOUVYnz0Teh5LQOCI/9XEgJFhFXIW7hliGyOfsdVvVHxw==",
+ "version": "3.903.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.903.0.tgz",
+ "integrity": "sha512-/CFhz/QtPSI9CVAdlW6JrfMyPjnE38a8pzTi8CMCWXu51c1NqzcGXo80LZUwzWkcWk5ZqPWRYzrw43TQ8ia78w==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/abort-controller": "^4.0.5",
- "@smithy/middleware-endpoint": "^4.1.21",
- "@smithy/smithy-client": "^4.5.2",
+ "@smithy/abort-controller": "^4.2.0",
+ "@smithy/middleware-endpoint": "^4.3.0",
+ "@smithy/smithy-client": "^4.7.0",
"buffer": "5.6.0",
"events": "3.3.0",
"stream-browserify": "3.0.0",
@@ -862,21 +788,21 @@
"node": ">=18.0.0"
},
"peerDependencies": {
- "@aws-sdk/client-s3": "^3.882.0"
+ "@aws-sdk/client-s3": "^3.901.0"
}
},
"node_modules/@aws-sdk/middleware-bucket-endpoint": {
- "version": "3.873.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.873.0.tgz",
- "integrity": "sha512-b4bvr0QdADeTUs+lPc9Z48kXzbKHXQKgTvxx/jXDgSW9tv4KmYPO1gIj6Z9dcrBkRWQuUtSW3Tu2S5n6pe+zeg==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.901.0.tgz",
+ "integrity": "sha512-mPF3N6eZlVs9G8aBSzvtoxR1RZqMo1aIwR+X8BAZSkhfj55fVF2no4IfPXfdFO3I66N+zEQ8nKoB0uTATWrogQ==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.862.0",
- "@aws-sdk/util-arn-parser": "3.873.0",
- "@smithy/node-config-provider": "^4.1.4",
- "@smithy/protocol-http": "^5.1.3",
- "@smithy/types": "^4.3.2",
- "@smithy/util-config-provider": "^4.0.0",
+ "@aws-sdk/types": "3.901.0",
+ "@aws-sdk/util-arn-parser": "3.893.0",
+ "@smithy/node-config-provider": "^4.3.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/util-config-provider": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -884,14 +810,14 @@
}
},
"node_modules/@aws-sdk/middleware-expect-continue": {
- "version": "3.873.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.873.0.tgz",
- "integrity": "sha512-GIqoc8WgRcf/opBOZXFLmplJQKwOMjiOMmDz9gQkaJ8FiVJoAp8EGVmK2TOWZMQUYsavvHYsHaor5R2xwPoGVg==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.901.0.tgz",
+ "integrity": "sha512-bwq9nj6MH38hlJwOY9QXIDwa6lI48UsaZpaXbdD71BljEIRlxDzfB4JaYb+ZNNK7RIAdzsP/K05mJty6KJAQHw==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.862.0",
- "@smithy/protocol-http": "^5.1.3",
- "@smithy/types": "^4.3.2",
+ "@aws-sdk/types": "3.901.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -899,23 +825,23 @@
}
},
"node_modules/@aws-sdk/middleware-flexible-checksums": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.882.0.tgz",
- "integrity": "sha512-VZSeGckiRNEUYNYni8JFGB+uFqPq6L+IWPXTOMh6RtpDpamDSqZLgDEfXqopc+Awxpz1sQbdxSHMm2HZlqVW2g==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.901.0.tgz",
+ "integrity": "sha512-63lcKfggVUFyXhE4SsFXShCTCyh7ZHEqXLyYEL4DwX+VWtxutf9t9m3fF0TNUYDE8eEGWiRXhegj8l4FjuW+wA==",
"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.882.0",
- "@aws-sdk/types": "3.862.0",
- "@smithy/is-array-buffer": "^4.0.0",
- "@smithy/node-config-provider": "^4.1.4",
- "@smithy/protocol-http": "^5.1.3",
- "@smithy/types": "^4.3.2",
- "@smithy/util-middleware": "^4.0.5",
- "@smithy/util-stream": "^4.2.4",
- "@smithy/util-utf8": "^4.0.0",
+ "@aws-sdk/core": "3.901.0",
+ "@aws-sdk/types": "3.901.0",
+ "@smithy/is-array-buffer": "^4.2.0",
+ "@smithy/node-config-provider": "^4.3.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/util-middleware": "^4.2.0",
+ "@smithy/util-stream": "^4.4.0",
+ "@smithy/util-utf8": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -923,14 +849,14 @@
}
},
"node_modules/@aws-sdk/middleware-host-header": {
- "version": "3.873.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.873.0.tgz",
- "integrity": "sha512-KZ/W1uruWtMOs7D5j3KquOxzCnV79KQW9MjJFZM/M0l6KI8J6V3718MXxFHsTjUE4fpdV6SeCNLV1lwGygsjJA==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.901.0.tgz",
+ "integrity": "sha512-yWX7GvRmqBtbNnUW7qbre3GvZmyYwU0WHefpZzDTYDoNgatuYq6LgUIQ+z5C04/kCRoFkAFrHag8a3BXqFzq5A==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.862.0",
- "@smithy/protocol-http": "^5.1.3",
- "@smithy/types": "^4.3.2",
+ "@aws-sdk/types": "3.901.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -938,13 +864,13 @@
}
},
"node_modules/@aws-sdk/middleware-location-constraint": {
- "version": "3.873.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.873.0.tgz",
- "integrity": "sha512-r+hIaORsW/8rq6wieDordXnA/eAu7xAPLue2InhoEX6ML7irP52BgiibHLpt9R0psiCzIHhju8qqKa4pJOrmiw==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.901.0.tgz",
+ "integrity": "sha512-MuCS5R2ngNoYifkVt05CTULvYVWX0dvRT0/Md4jE3a0u0yMygYy31C1zorwfE/SUgAQXyLmUx8ATmPp9PppImQ==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.862.0",
- "@smithy/types": "^4.3.2",
+ "@aws-sdk/types": "3.901.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -952,13 +878,13 @@
}
},
"node_modules/@aws-sdk/middleware-logger": {
- "version": "3.876.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.876.0.tgz",
- "integrity": "sha512-cpWJhOuMSyz9oV25Z/CMHCBTgafDCbv7fHR80nlRrPdPZ8ETNsahwRgltXP1QJJ8r3X/c1kwpOR7tc+RabVzNA==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.901.0.tgz",
+ "integrity": "sha512-UoHebjE7el/tfRo8/CQTj91oNUm+5Heus5/a4ECdmWaSCHCS/hXTsU3PTTHAY67oAQR8wBLFPfp3mMvXjB+L2A==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.862.0",
- "@smithy/types": "^4.3.2",
+ "@aws-sdk/types": "3.901.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -966,14 +892,15 @@
}
},
"node_modules/@aws-sdk/middleware-recursion-detection": {
- "version": "3.873.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.873.0.tgz",
- "integrity": "sha512-OtgY8EXOzRdEWR//WfPkA/fXl0+WwE8hq0y9iw2caNyKPtca85dzrrZWnPqyBK/cpImosrpR1iKMYr41XshsCg==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.901.0.tgz",
+ "integrity": "sha512-Wd2t8qa/4OL0v/oDpCHHYkgsXJr8/ttCxrvCKAt0H1zZe2LlRhY9gpDVKqdertfHrHDj786fOvEQA28G1L75Dg==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.862.0",
- "@smithy/protocol-http": "^5.1.3",
- "@smithy/types": "^4.3.2",
+ "@aws-sdk/types": "3.901.0",
+ "@aws/lambda-invoke-store": "^0.0.1",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -981,24 +908,24 @@
}
},
"node_modules/@aws-sdk/middleware-sdk-s3": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.882.0.tgz",
- "integrity": "sha512-j5Ya7RKSQSKkpcLsO+Rh272zKD63JYkLKY/N8m5MVNWQafMdUbkZi7nwwjq7s5t7r3Pmz7a4gLf4n6ZEL5eaow==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.901.0.tgz",
+ "integrity": "sha512-prgjVC3fDT2VIlmQPiw/cLee8r4frTam9GILRUVQyDdNtshNwV3MiaSCLzzQJjKJlLgnBLNUHJCSmvUVtg+3iA==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "3.882.0",
- "@aws-sdk/types": "3.862.0",
- "@aws-sdk/util-arn-parser": "3.873.0",
- "@smithy/core": "^3.9.2",
- "@smithy/node-config-provider": "^4.1.4",
- "@smithy/protocol-http": "^5.1.3",
- "@smithy/signature-v4": "^5.1.3",
- "@smithy/smithy-client": "^4.5.2",
- "@smithy/types": "^4.3.2",
- "@smithy/util-config-provider": "^4.0.0",
- "@smithy/util-middleware": "^4.0.5",
- "@smithy/util-stream": "^4.2.4",
- "@smithy/util-utf8": "^4.0.0",
+ "@aws-sdk/core": "3.901.0",
+ "@aws-sdk/types": "3.901.0",
+ "@aws-sdk/util-arn-parser": "3.893.0",
+ "@smithy/core": "^3.14.0",
+ "@smithy/node-config-provider": "^4.3.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/signature-v4": "^5.3.0",
+ "@smithy/smithy-client": "^4.7.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/util-config-provider": "^4.2.0",
+ "@smithy/util-middleware": "^4.2.0",
+ "@smithy/util-stream": "^4.4.0",
+ "@smithy/util-utf8": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -1006,13 +933,13 @@
}
},
"node_modules/@aws-sdk/middleware-ssec": {
- "version": "3.873.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.873.0.tgz",
- "integrity": "sha512-AF55J94BoiuzN7g3hahy0dXTVZahVi8XxRBLgzNp6yQf0KTng+hb/V9UQZVYY1GZaDczvvvnqC54RGe9OZZ9zQ==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.901.0.tgz",
+ "integrity": "sha512-YiLLJmA3RvjL38mFLuu8fhTTGWtp2qT24VqpucgfoyziYcTgIQkJJmKi90Xp6R6/3VcArqilyRgM1+x8i/em+Q==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.862.0",
- "@smithy/types": "^4.3.2",
+ "@aws-sdk/types": "3.901.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -1020,17 +947,17 @@
}
},
"node_modules/@aws-sdk/middleware-user-agent": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.882.0.tgz",
- "integrity": "sha512-IdLVpV2b0qryxFb/gNPwZoayLUdgmb41fWpLiIf99pyNwR7TGs/9Ri2amS3PnaQHuES947xYSYZ9Ej0kBgjHKg==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.901.0.tgz",
+ "integrity": "sha512-Zby4F03fvD9xAgXGPywyk4bC1jCbnyubMEYChLYohD+x20ULQCf+AimF/Btn7YL+hBpzh1+RmqmvZcx+RgwgNQ==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "3.882.0",
- "@aws-sdk/types": "3.862.0",
- "@aws-sdk/util-endpoints": "3.879.0",
- "@smithy/core": "^3.9.2",
- "@smithy/protocol-http": "^5.1.3",
- "@smithy/types": "^4.3.2",
+ "@aws-sdk/core": "3.901.0",
+ "@aws-sdk/types": "3.901.0",
+ "@aws-sdk/util-endpoints": "3.901.0",
+ "@smithy/core": "^3.14.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -1038,48 +965,48 @@
}
},
"node_modules/@aws-sdk/nested-clients": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.882.0.tgz",
- "integrity": "sha512-IQkOtl/DhLV5+tJI7ZwjBDJO1lIoYOcmNQzcg8ly9RTdMoTcEtklevxmAwWB4DEFiIctUk2OSjHqhfWjeYredA==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.901.0.tgz",
+ "integrity": "sha512-feAAAMsVwctk2Tms40ONybvpfJPLCmSdI+G+OTrNpizkGLNl6ik2Ng2RzxY6UqOfN8abqKP/DOUj1qYDRDG8ag==",
"license": "Apache-2.0",
"dependencies": {
"@aws-crypto/sha256-browser": "5.2.0",
"@aws-crypto/sha256-js": "5.2.0",
- "@aws-sdk/core": "3.882.0",
- "@aws-sdk/middleware-host-header": "3.873.0",
- "@aws-sdk/middleware-logger": "3.876.0",
- "@aws-sdk/middleware-recursion-detection": "3.873.0",
- "@aws-sdk/middleware-user-agent": "3.882.0",
- "@aws-sdk/region-config-resolver": "3.873.0",
- "@aws-sdk/types": "3.862.0",
- "@aws-sdk/util-endpoints": "3.879.0",
- "@aws-sdk/util-user-agent-browser": "3.873.0",
- "@aws-sdk/util-user-agent-node": "3.882.0",
- "@smithy/config-resolver": "^4.1.5",
- "@smithy/core": "^3.9.2",
- "@smithy/fetch-http-handler": "^5.1.1",
- "@smithy/hash-node": "^4.0.5",
- "@smithy/invalid-dependency": "^4.0.5",
- "@smithy/middleware-content-length": "^4.0.5",
- "@smithy/middleware-endpoint": "^4.1.21",
- "@smithy/middleware-retry": "^4.1.22",
- "@smithy/middleware-serde": "^4.0.9",
- "@smithy/middleware-stack": "^4.0.5",
- "@smithy/node-config-provider": "^4.1.4",
- "@smithy/node-http-handler": "^4.1.1",
- "@smithy/protocol-http": "^5.1.3",
- "@smithy/smithy-client": "^4.5.2",
- "@smithy/types": "^4.3.2",
- "@smithy/url-parser": "^4.0.5",
- "@smithy/util-base64": "^4.0.0",
- "@smithy/util-body-length-browser": "^4.0.0",
- "@smithy/util-body-length-node": "^4.0.0",
- "@smithy/util-defaults-mode-browser": "^4.0.29",
- "@smithy/util-defaults-mode-node": "^4.0.29",
- "@smithy/util-endpoints": "^3.0.7",
- "@smithy/util-middleware": "^4.0.5",
- "@smithy/util-retry": "^4.0.7",
- "@smithy/util-utf8": "^4.0.0",
+ "@aws-sdk/core": "3.901.0",
+ "@aws-sdk/middleware-host-header": "3.901.0",
+ "@aws-sdk/middleware-logger": "3.901.0",
+ "@aws-sdk/middleware-recursion-detection": "3.901.0",
+ "@aws-sdk/middleware-user-agent": "3.901.0",
+ "@aws-sdk/region-config-resolver": "3.901.0",
+ "@aws-sdk/types": "3.901.0",
+ "@aws-sdk/util-endpoints": "3.901.0",
+ "@aws-sdk/util-user-agent-browser": "3.901.0",
+ "@aws-sdk/util-user-agent-node": "3.901.0",
+ "@smithy/config-resolver": "^4.3.0",
+ "@smithy/core": "^3.14.0",
+ "@smithy/fetch-http-handler": "^5.3.0",
+ "@smithy/hash-node": "^4.2.0",
+ "@smithy/invalid-dependency": "^4.2.0",
+ "@smithy/middleware-content-length": "^4.2.0",
+ "@smithy/middleware-endpoint": "^4.3.0",
+ "@smithy/middleware-retry": "^4.4.0",
+ "@smithy/middleware-serde": "^4.2.0",
+ "@smithy/middleware-stack": "^4.2.0",
+ "@smithy/node-config-provider": "^4.3.0",
+ "@smithy/node-http-handler": "^4.3.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/smithy-client": "^4.7.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/url-parser": "^4.2.0",
+ "@smithy/util-base64": "^4.2.0",
+ "@smithy/util-body-length-browser": "^4.2.0",
+ "@smithy/util-body-length-node": "^4.2.0",
+ "@smithy/util-defaults-mode-browser": "^4.2.0",
+ "@smithy/util-defaults-mode-node": "^4.2.0",
+ "@smithy/util-endpoints": "^3.2.0",
+ "@smithy/util-middleware": "^4.2.0",
+ "@smithy/util-retry": "^4.2.0",
+ "@smithy/util-utf8": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -1087,16 +1014,16 @@
}
},
"node_modules/@aws-sdk/region-config-resolver": {
- "version": "3.873.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.873.0.tgz",
- "integrity": "sha512-q9sPoef+BBG6PJnc4x60vK/bfVwvRWsPgcoQyIra057S/QGjq5VkjvNk6H8xedf6vnKlXNBwq9BaANBXnldUJg==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.901.0.tgz",
+ "integrity": "sha512-7F0N888qVLHo4CSQOsnkZ4QAp8uHLKJ4v3u09Ly5k4AEStrSlFpckTPyUx6elwGL+fxGjNE2aakK8vEgzzCV0A==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.862.0",
- "@smithy/node-config-provider": "^4.1.4",
- "@smithy/types": "^4.3.2",
- "@smithy/util-config-provider": "^4.0.0",
- "@smithy/util-middleware": "^4.0.5",
+ "@aws-sdk/types": "3.901.0",
+ "@smithy/node-config-provider": "^4.3.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/util-config-provider": "^4.2.0",
+ "@smithy/util-middleware": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -1104,18 +1031,18 @@
}
},
"node_modules/@aws-sdk/s3-request-presigner": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.882.0.tgz",
- "integrity": "sha512-Yahd3yQTUjuocDVKxYmoeoL3fXLI3rCw0oz3y4yGJl2ZIAIoIBN9iyIz/rVwiejeJJNGwO2iEhKJK0JJGAR3/A==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.901.0.tgz",
+ "integrity": "sha512-G/0G5tL3beETs2zkI0YQuM2SkrAsYJSe2vN2XtouVSN5c9v6EiSvdSsHAqMhLebnSs2suUkq0JO9ZotbXkUfMQ==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/signature-v4-multi-region": "3.882.0",
- "@aws-sdk/types": "3.862.0",
- "@aws-sdk/util-format-url": "3.873.0",
- "@smithy/middleware-endpoint": "^4.1.21",
- "@smithy/protocol-http": "^5.1.3",
- "@smithy/smithy-client": "^4.5.2",
- "@smithy/types": "^4.3.2",
+ "@aws-sdk/signature-v4-multi-region": "3.901.0",
+ "@aws-sdk/types": "3.901.0",
+ "@aws-sdk/util-format-url": "3.901.0",
+ "@smithy/middleware-endpoint": "^4.3.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/smithy-client": "^4.7.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -1123,16 +1050,16 @@
}
},
"node_modules/@aws-sdk/signature-v4-multi-region": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.882.0.tgz",
- "integrity": "sha512-hAmA9BgL3nIRTGoOGjMXMqVtPhtPFKBFaqhgQkgmkzpbZ6aaGecNIqBfGxi9oezR4dnvI+PvKoRo2F8csF7fMA==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.901.0.tgz",
+ "integrity": "sha512-2IWxbll/pRucp1WQkHi2W5E2SVPGBvk4Is923H7gpNksbVFws18ItjMM8ZpGm44cJEoy1zR5gjhLFklatpuoOw==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/middleware-sdk-s3": "3.882.0",
- "@aws-sdk/types": "3.862.0",
- "@smithy/protocol-http": "^5.1.3",
- "@smithy/signature-v4": "^5.1.3",
- "@smithy/types": "^4.3.2",
+ "@aws-sdk/middleware-sdk-s3": "3.901.0",
+ "@aws-sdk/types": "3.901.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/signature-v4": "^5.3.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -1140,17 +1067,17 @@
}
},
"node_modules/@aws-sdk/token-providers": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.882.0.tgz",
- "integrity": "sha512-/Z6F8Cc+QjBMEPh3ZXy7JM1vMZCS41+Nh9VgdUwvvdJTA7LRXSDBRDL3cQPa7bii9unZ8SqsIC+7Nlw1LKwwJA==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.901.0.tgz",
+ "integrity": "sha512-pJEr1Ggbc/uVTDqp9IbNu9hdr0eQf3yZix3s4Nnyvmg4xmJSGAlbPC9LrNr5u3CDZoc8Z9CuLrvbP4MwYquNpQ==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "3.882.0",
- "@aws-sdk/nested-clients": "3.882.0",
- "@aws-sdk/types": "3.862.0",
- "@smithy/property-provider": "^4.0.5",
- "@smithy/shared-ini-file-loader": "^4.0.5",
- "@smithy/types": "^4.3.2",
+ "@aws-sdk/core": "3.901.0",
+ "@aws-sdk/nested-clients": "3.901.0",
+ "@aws-sdk/types": "3.901.0",
+ "@smithy/property-provider": "^4.2.0",
+ "@smithy/shared-ini-file-loader": "^4.3.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -1158,12 +1085,12 @@
}
},
"node_modules/@aws-sdk/types": {
- "version": "3.862.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.862.0.tgz",
- "integrity": "sha512-Bei+RL0cDxxV+lW2UezLbCYYNeJm6Nzee0TpW0FfyTRBhH9C1XQh4+x+IClriXvgBnRquTMMYsmJfvx8iyLKrg==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.901.0.tgz",
+ "integrity": "sha512-FfEM25hLEs4LoXsLXQ/q6X6L4JmKkKkbVFpKD4mwfVHtRVQG6QxJiCPcrkcPISquiy6esbwK2eh64TWbiD60cg==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.3.2",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -1171,9 +1098,9 @@
}
},
"node_modules/@aws-sdk/util-arn-parser": {
- "version": "3.873.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.873.0.tgz",
- "integrity": "sha512-qag+VTqnJWDn8zTAXX4wiVioa0hZDQMtbZcGRERVnLar4/3/VIKBhxX2XibNQXFu1ufgcRn4YntT/XEPecFWcg==",
+ "version": "3.893.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.893.0.tgz",
+ "integrity": "sha512-u8H4f2Zsi19DGnwj5FSZzDMhytYF/bCh37vAtBsn3cNDL3YG578X5oc+wSX54pM3tOxS+NY7tvOAo52SW7koUA==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
@@ -1183,15 +1110,15 @@
}
},
"node_modules/@aws-sdk/util-endpoints": {
- "version": "3.879.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.879.0.tgz",
- "integrity": "sha512-aVAJwGecYoEmbEFju3127TyJDF9qJsKDUUTRMDuS8tGn+QiWQFnfInmbt+el9GU1gEJupNTXV+E3e74y51fb7A==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.901.0.tgz",
+ "integrity": "sha512-5nZP3hGA8FHEtKvEQf4Aww5QZOkjLW1Z+NixSd+0XKfHvA39Ah5sZboScjLx0C9kti/K3OGW1RCx5K9Zc3bZqg==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.862.0",
- "@smithy/types": "^4.3.2",
- "@smithy/url-parser": "^4.0.5",
- "@smithy/util-endpoints": "^3.0.7",
+ "@aws-sdk/types": "3.901.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/url-parser": "^4.2.0",
+ "@smithy/util-endpoints": "^3.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -1199,14 +1126,14 @@
}
},
"node_modules/@aws-sdk/util-format-url": {
- "version": "3.873.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-format-url/-/util-format-url-3.873.0.tgz",
- "integrity": "sha512-v//b9jFnhzTKKV3HFTw2MakdM22uBAs2lBov51BWmFXuFtSTdBLrR7zgfetQPE3PVkFai0cmtJQPdc3MX+T/cQ==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-format-url/-/util-format-url-3.901.0.tgz",
+ "integrity": "sha512-GGUnJKrh3OF1F3YRSWtwPLbN904Fcfxf03gujyq1rcrDRPEkzoZB+2BzNkB27SsU6lAlwNq+4aRlZRVUloPiag==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.862.0",
- "@smithy/querystring-builder": "^4.0.5",
- "@smithy/types": "^4.3.2",
+ "@aws-sdk/types": "3.901.0",
+ "@smithy/querystring-builder": "^4.2.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -1226,27 +1153,27 @@
}
},
"node_modules/@aws-sdk/util-user-agent-browser": {
- "version": "3.873.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.873.0.tgz",
- "integrity": "sha512-AcRdbK6o19yehEcywI43blIBhOCSo6UgyWcuOJX5CFF8k39xm1ILCjQlRRjchLAxWrm0lU0Q7XV90RiMMFMZtA==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.901.0.tgz",
+ "integrity": "sha512-Ntb6V/WFI21Ed4PDgL/8NSfoZQQf9xzrwNgiwvnxgAl/KvAvRBgQtqj5gHsDX8Nj2YmJuVoHfH9BGjL9VQ4WNg==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.862.0",
- "@smithy/types": "^4.3.2",
+ "@aws-sdk/types": "3.901.0",
+ "@smithy/types": "^4.6.0",
"bowser": "^2.11.0",
"tslib": "^2.6.2"
}
},
"node_modules/@aws-sdk/util-user-agent-node": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.882.0.tgz",
- "integrity": "sha512-7zPtGXeAs6UzKjrrSbMNiFMSLZ/2DWvJ26KBOasS3zQbL534yoNos4HUA3OOXSpKFBAIEcYWu6rzR4ptlvx50w==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.901.0.tgz",
+ "integrity": "sha512-l59KQP5TY7vPVUfEURc7P5BJKuNg1RSsAKBQW7LHLECXjLqDUbo2SMLrexLBEoArSt6E8QOrIN0C8z/0Xk0jYw==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/middleware-user-agent": "3.882.0",
- "@aws-sdk/types": "3.862.0",
- "@smithy/node-config-provider": "^4.1.4",
- "@smithy/types": "^4.3.2",
+ "@aws-sdk/middleware-user-agent": "3.901.0",
+ "@aws-sdk/types": "3.901.0",
+ "@smithy/node-config-provider": "^4.3.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -1262,18 +1189,58 @@
}
},
"node_modules/@aws-sdk/xml-builder": {
- "version": "3.873.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.873.0.tgz",
- "integrity": "sha512-kLO7k7cGJ6KaHiExSJWojZurF7SnGMDHXRuQunFnEoD0n1yB6Lqy/S/zHiQ7oJnBhPr9q0TW9qFkrsZb1Uc54w==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.901.0.tgz",
+ "integrity": "sha512-pxFCkuAP7Q94wMTNPAwi6hEtNrp/BdFf+HOrIEeFQsk4EoOmpKY3I6S+u6A9Wg295J80Kh74LqDWM22ux3z6Aw==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.3.2",
+ "@smithy/types": "^4.6.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",
+ "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.2.5.tgz",
+ "integrity": "sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/NaturalIntelligence"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "strnum": "^2.1.0"
+ },
+ "bin": {
+ "fxparser": "src/cli/cli.js"
+ }
+ },
+ "node_modules/@aws-sdk/xml-builder/node_modules/strnum": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.1.1.tgz",
+ "integrity": "sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/NaturalIntelligence"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/@aws/lambda-invoke-store": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/@aws/lambda-invoke-store/-/lambda-invoke-store-0.0.1.tgz",
+ "integrity": "sha512-ORHRQ2tmvnBXc8t/X9Z8IcSbBA4xTLKuN873FopzklHMeqBst7YG0d+AX97inkvDX+NChYtSr+qGfcqGFaI8Zw==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
"node_modules/@colors/colors": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz",
@@ -1284,108 +1251,16 @@
}
},
"node_modules/@dabh/diagnostics": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz",
- "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==",
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.8.tgz",
+ "integrity": "sha512-R4MSXTVnuMzGD7bzHdW2ZhhdPC/igELENcq5IjEverBvq5hn1SXCWcsi6eSsdWP0/Ur+SItRRjAktmdoX/8R/Q==",
"license": "MIT",
"dependencies": {
- "colorspace": "1.1.x",
+ "@so-ric/colorspace": "^1.1.6",
"enabled": "2.0.x",
"kuler": "^2.0.0"
}
},
- "node_modules/@datadog/libdatadog": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/@datadog/libdatadog/-/libdatadog-0.7.0.tgz",
- "integrity": "sha512-VVZLspzQcfEU47gmGCVoRkngn7RgFRR4CHjw4YaX8eWT+xz4Q4l6PvA45b7CMk9nlt3MNN5MtGdYttYMIpo6Sg==",
- "license": "Apache-2.0"
- },
- "node_modules/@datadog/native-appsec": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/@datadog/native-appsec/-/native-appsec-10.1.0.tgz",
- "integrity": "sha512-IKV9L4MvQxrT6GK0k5n9oOWw34gsGaiHW/03J1DOEu1crUqXcSWYJVOrGnRwz6XPXf6LDtAvmR+AU1QwDcDsww==",
- "hasInstallScript": true,
- "license": "Apache-2.0",
- "dependencies": {
- "node-gyp-build": "^3.9.0"
- },
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/@datadog/native-iast-taint-tracking": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@datadog/native-iast-taint-tracking/-/native-iast-taint-tracking-4.0.0.tgz",
- "integrity": "sha512-2uF8RnQkJO5bmLi26Zkhxg+RFJn/uEsesYTflScI/Cz/BWv+792bxI+OaCKvhgmpLkm8EElenlpidcJyZm7GYw==",
- "hasInstallScript": true,
- "license": "Apache-2.0",
- "dependencies": {
- "node-gyp-build": "^3.9.0"
- }
- },
- "node_modules/@datadog/native-metrics": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/@datadog/native-metrics/-/native-metrics-3.1.1.tgz",
- "integrity": "sha512-MU1gHrolwryrU4X9g+fylA1KPH3S46oqJPEtVyrO+3Kh29z80fegmtyrU22bNt8LigPUK/EdPCnSbMe88QbnxQ==",
- "hasInstallScript": true,
- "license": "Apache-2.0",
- "dependencies": {
- "node-addon-api": "^6.1.0",
- "node-gyp-build": "^3.9.0"
- },
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/@datadog/pprof": {
- "version": "5.9.0",
- "resolved": "https://registry.npmjs.org/@datadog/pprof/-/pprof-5.9.0.tgz",
- "integrity": "sha512-7KretVkHUANWe31u9cGJpxmUkyrXsCD+fmlZQUz/zk9mtQNC4uBIKX53VUFfrVj/bxAhEEIPw5XTYiMc5RJLsw==",
- "hasInstallScript": true,
- "license": "Apache-2.0",
- "dependencies": {
- "delay": "^5.0.0",
- "node-gyp-build": "<4.0",
- "p-limit": "^3.1.0",
- "pprof-format": "^2.1.0",
- "source-map": "^0.7.4"
- },
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/@datadog/sketches-js": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/@datadog/sketches-js/-/sketches-js-2.1.1.tgz",
- "integrity": "sha512-d5RjycE+MObE/hU+8OM5Zp4VjTwiPLRa8299fj7muOmR16fb942z8byoMbCErnGh0lBevvgkGrLclQDvINbIyg==",
- "license": "Apache-2.0"
- },
- "node_modules/@datadog/wasm-js-rewriter": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/@datadog/wasm-js-rewriter/-/wasm-js-rewriter-4.0.1.tgz",
- "integrity": "sha512-JRa05Je6gw+9+3yZnm/BroQZrEfNwRYCxms56WCCHzOBnoPihQLB0fWy5coVJS29kneCUueUvBvxGp6NVXgdqw==",
- "license": "Apache-2.0",
- "dependencies": {
- "js-yaml": "^4.1.0",
- "lru-cache": "^7.14.0",
- "module-details-from-path": "^1.0.3",
- "node-gyp-build": "^4.5.0"
- },
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@datadog/wasm-js-rewriter/node_modules/node-gyp-build": {
- "version": "4.8.4",
- "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz",
- "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==",
- "license": "MIT",
- "bin": {
- "node-gyp-build": "bin.js",
- "node-gyp-build-optional": "optional.js",
- "node-gyp-build-test": "build-test.js"
- }
- },
"node_modules/@esbuild/win32-x64": {
"version": "0.25.6",
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.6.tgz",
@@ -1461,19 +1336,22 @@
}
},
"node_modules/@eslint/config-helpers": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.1.tgz",
- "integrity": "sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA==",
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.0.tgz",
+ "integrity": "sha512-WUFvV4WoIwW8Bv0KeKCIIEgdSiFOsulyN0xrMu+7z43q/hkOLXjvb5u7UC9jDxvRzcrbEmuZBX5yJZz1741jog==",
"dev": true,
"license": "Apache-2.0",
+ "dependencies": {
+ "@eslint/core": "^0.16.0"
+ },
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
"node_modules/@eslint/core": {
- "version": "0.15.2",
- "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.2.tgz",
- "integrity": "sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==",
+ "version": "0.16.0",
+ "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.16.0.tgz",
+ "integrity": "sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -1521,9 +1399,9 @@
}
},
"node_modules/@eslint/js": {
- "version": "9.35.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.35.0.tgz",
- "integrity": "sha512-30iXE9whjlILfWobBkNerJo+TXYsgVM5ERQwMcMKCHckHflCmf7wXDAHlARoWnh0s1U72WqlbeyE7iAcCzuCPw==",
+ "version": "9.37.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.37.0.tgz",
+ "integrity": "sha512-jaS+NJ+hximswBG6pjNX0uEJZkrT0zwpVi3BA3vX22aFGjJjmgSTSmPpZCRKmoBL5VY/M6p0xsSJx7rk7sy5gg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -1544,13 +1422,13 @@
}
},
"node_modules/@eslint/plugin-kit": {
- "version": "0.3.5",
- "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.5.tgz",
- "integrity": "sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==",
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.0.tgz",
+ "integrity": "sha512-sB5uyeq+dwCWyPi31B2gQlVlo+j5brPlWx4yZBrEaRo/nhdDE8Xke1gsGgtiBdaBTxuTkceLVuVt/pclrasb0A==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@eslint/core": "^0.15.2",
+ "@eslint/core": "^0.16.0",
"levn": "^0.4.1"
},
"engines": {
@@ -1861,9 +1739,9 @@
}
},
"node_modules/@ioredis/commands": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.3.0.tgz",
- "integrity": "sha512-M/T6Zewn7sDaBQEqIZ8Rb+i9y8qfGmq+5SDFSf9sA2lUZTmdDLVdOiQaeDp+Q4wElZ9HG1GAX5KhDaidp6LQsQ==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.4.0.tgz",
+ "integrity": "sha512-aFT2yemJJo+TZCmieA7qnYGQooOS7QfNmYrzGtsYd3g9j5iDP8AimYYAesf79ohjbLG12XxC4nG5DyEnC88AsQ==",
"license": "MIT"
},
"node_modules/@isaacs/cliui": {
@@ -1883,15 +1761,6 @@
"node": ">=12"
}
},
- "node_modules/@isaacs/ttlcache": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/@isaacs/ttlcache/-/ttlcache-1.4.1.tgz",
- "integrity": "sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA==",
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
"node_modules/@jridgewell/sourcemap-codec": {
"version": "1.5.4",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz",
@@ -1910,30 +1779,6 @@
"url": "https://opencollective.com/js-sdsl"
}
},
- "node_modules/@jsep-plugin/assignment": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/@jsep-plugin/assignment/-/assignment-1.3.0.tgz",
- "integrity": "sha512-VVgV+CXrhbMI3aSusQyclHkenWSAm95WaiKrMxRFam3JSUiIaQjoMIw2sEs/OX4XifnqeQUN4DYbJjlA8EfktQ==",
- "license": "MIT",
- "engines": {
- "node": ">= 10.16.0"
- },
- "peerDependencies": {
- "jsep": "^0.4.0||^1.0.0"
- }
- },
- "node_modules/@jsep-plugin/regex": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@jsep-plugin/regex/-/regex-1.0.4.tgz",
- "integrity": "sha512-q7qL4Mgjs1vByCaTnDFcBnV9HS7GVPJX5vyVoCgZHNSC9rjwIlmbXG5sUuorR5ndfHAIlJ8pVStxvjXHbNvtUg==",
- "license": "MIT",
- "engines": {
- "node": ">= 10.16.0"
- },
- "peerDependencies": {
- "jsep": "^0.4.0||^1.0.0"
- }
- },
"node_modules/@kurkle/color": {
"version": "0.3.4",
"resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.4.tgz",
@@ -2036,34 +1881,11 @@
"resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.8.0.tgz",
"integrity": "sha512-I/s6F7yKUDdtMsoBWXJe8Qz40Tui5vsuKCWJEWVL+5q9sSWRzzx6v2KeNsOBEwd94j0eWkpWCH4yB6rZg9Mf0w==",
"license": "Apache-2.0",
+ "optional": true,
"engines": {
"node": ">=8.0.0"
}
},
- "node_modules/@opentelemetry/core": {
- "version": "1.30.1",
- "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.30.1.tgz",
- "integrity": "sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "@opentelemetry/semantic-conventions": "1.28.0"
- },
- "engines": {
- "node": ">=14"
- },
- "peerDependencies": {
- "@opentelemetry/api": ">=1.0.0 <1.10.0"
- }
- },
- "node_modules/@opentelemetry/semantic-conventions": {
- "version": "1.28.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz",
- "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==",
- "license": "Apache-2.0",
- "engines": {
- "node": ">=14"
- }
- },
"node_modules/@paralleldrive/cuid2": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/@paralleldrive/cuid2/-/cuid2-2.2.2.tgz",
@@ -2087,31 +1909,36 @@
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
"integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==",
- "license": "BSD-3-Clause"
+ "license": "BSD-3-Clause",
+ "optional": true
},
"node_modules/@protobufjs/base64": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz",
"integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==",
- "license": "BSD-3-Clause"
+ "license": "BSD-3-Clause",
+ "optional": true
},
"node_modules/@protobufjs/codegen": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz",
"integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==",
- "license": "BSD-3-Clause"
+ "license": "BSD-3-Clause",
+ "optional": true
},
"node_modules/@protobufjs/eventemitter": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz",
"integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==",
- "license": "BSD-3-Clause"
+ "license": "BSD-3-Clause",
+ "optional": true
},
"node_modules/@protobufjs/fetch": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz",
"integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==",
"license": "BSD-3-Clause",
+ "optional": true,
"dependencies": {
"@protobufjs/aspromise": "^1.1.1",
"@protobufjs/inquire": "^1.1.0"
@@ -2121,31 +1948,36 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz",
"integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==",
- "license": "BSD-3-Clause"
+ "license": "BSD-3-Clause",
+ "optional": true
},
"node_modules/@protobufjs/inquire": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz",
"integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==",
- "license": "BSD-3-Clause"
+ "license": "BSD-3-Clause",
+ "optional": true
},
"node_modules/@protobufjs/path": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz",
"integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==",
- "license": "BSD-3-Clause"
+ "license": "BSD-3-Clause",
+ "optional": true
},
"node_modules/@protobufjs/pool": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz",
"integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==",
- "license": "BSD-3-Clause"
+ "license": "BSD-3-Clause",
+ "optional": true
},
"node_modules/@protobufjs/utf8": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
"integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==",
- "license": "BSD-3-Clause"
+ "license": "BSD-3-Clause",
+ "optional": true
},
"node_modules/@rollup/rollup-win32-x64-msvc": {
"version": "4.45.0",
@@ -2162,12 +1994,12 @@
]
},
"node_modules/@smithy/abort-controller": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-4.1.0.tgz",
- "integrity": "sha512-wEhSYznxOmx7EdwK1tYEWJF5+/wmSFsff9BfTOn8oO/+KPl3gsmThrb6MJlWbOC391+Ya31s5JuHiC2RlT80Zg==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-4.2.0.tgz",
+ "integrity": "sha512-PLUYa+SUKOEZtXFURBu/CNxlsxfaFGxSBPcStL13KpVeVWIfdezWyDqkz7iDLmwnxojXD0s5KzuB5HGHvt4Aeg==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.4.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2175,9 +2007,9 @@
}
},
"node_modules/@smithy/chunked-blob-reader": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader/-/chunked-blob-reader-5.0.0.tgz",
- "integrity": "sha512-+sKqDBQqb036hh4NPaUiEkYFkTUGYzRsn3EuFhyfQfMy6oGHEUJDurLP9Ufb5dasr/XiAmPNMr6wa9afjQB+Gw==",
+ "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"
@@ -2187,12 +2019,12 @@
}
},
"node_modules/@smithy/chunked-blob-reader-native": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-4.0.0.tgz",
- "integrity": "sha512-R9wM2yPmfEMsUmlMlIgSzOyICs0x9uu7UTHoccMyt7BWw8shcGM8HqB355+BZCPBcySvbTYMs62EgEQkNxz2ig==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-4.2.0.tgz",
+ "integrity": "sha512-HNbGWdyTfSM1nfrZKQjYTvD8k086+M8s1EYkBUdGC++lhxegUp2HgNf5RIt6oOGVvsC26hBCW/11tv8KbwLn/Q==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/util-base64": "^4.0.0",
+ "@smithy/util-base64": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2200,15 +2032,15 @@
}
},
"node_modules/@smithy/config-resolver": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-4.2.0.tgz",
- "integrity": "sha512-FA10YhPFLy23uxeWu7pOM2ctlw+gzbPMTZQwrZ8FRIfyJ/p8YIVz7AVTB5jjLD+QIerydyKcVMZur8qzzDILAQ==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-4.3.0.tgz",
+ "integrity": "sha512-9oH+n8AVNiLPK/iK/agOsoWfrKZ3FGP3502tkksd6SRsKMYiu7AFX0YXo6YBADdsAj7C+G/aLKdsafIJHxuCkQ==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/node-config-provider": "^4.2.0",
- "@smithy/types": "^4.4.0",
- "@smithy/util-config-provider": "^4.1.0",
- "@smithy/util-middleware": "^4.1.0",
+ "@smithy/node-config-provider": "^4.3.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/util-config-provider": "^4.2.0",
+ "@smithy/util-middleware": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2216,50 +2048,36 @@
}
},
"node_modules/@smithy/core": {
- "version": "3.10.0",
- "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.10.0.tgz",
- "integrity": "sha512-bXyD3Ij6b1qDymEYlEcF+QIjwb9gObwZNaRjETJsUEvSIzxFdynSQ3E4ysY7lUFSBzeWBNaFvX+5A0smbC2q6A==",
+ "version": "3.14.0",
+ "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.14.0.tgz",
+ "integrity": "sha512-XJ4z5FxvY/t0Dibms/+gLJrI5niRoY0BCmE02fwmPcRYFPI4KI876xaE79YGWIKnEslMbuQPsIEsoU/DXa0DoA==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/middleware-serde": "^4.1.0",
- "@smithy/protocol-http": "^5.2.0",
- "@smithy/types": "^4.4.0",
- "@smithy/util-base64": "^4.1.0",
- "@smithy/util-body-length-browser": "^4.1.0",
- "@smithy/util-middleware": "^4.1.0",
- "@smithy/util-stream": "^4.3.0",
- "@smithy/util-utf8": "^4.1.0",
- "@types/uuid": "^9.0.1",
- "tslib": "^2.6.2",
- "uuid": "^9.0.1"
+ "@smithy/middleware-serde": "^4.2.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/util-base64": "^4.2.0",
+ "@smithy/util-body-length-browser": "^4.2.0",
+ "@smithy/util-middleware": "^4.2.0",
+ "@smithy/util-stream": "^4.4.0",
+ "@smithy/util-utf8": "^4.2.0",
+ "@smithy/uuid": "^1.1.0",
+ "tslib": "^2.6.2"
},
"engines": {
"node": ">=18.0.0"
}
},
- "node_modules/@smithy/core/node_modules/uuid": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
- "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
- "funding": [
- "https://github.com/sponsors/broofa",
- "https://github.com/sponsors/ctavan"
- ],
- "license": "MIT",
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
"node_modules/@smithy/credential-provider-imds": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.1.0.tgz",
- "integrity": "sha512-iVwNhxTsCQTPdp++4C/d9xvaDmuEWhXi55qJobMp9QMaEHRGH3kErU4F8gohtdsawRqnUy/ANylCjKuhcR2mPw==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.2.0.tgz",
+ "integrity": "sha512-SOhFVvFH4D5HJZytb0bLKxCrSnwcqPiNlrw+S4ZXjMnsC+o9JcUQzbZOEQcA8yv9wJFNhfsUiIUKiEnYL68Big==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/node-config-provider": "^4.2.0",
- "@smithy/property-provider": "^4.1.0",
- "@smithy/types": "^4.4.0",
- "@smithy/url-parser": "^4.1.0",
+ "@smithy/node-config-provider": "^4.3.0",
+ "@smithy/property-provider": "^4.2.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/url-parser": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2267,14 +2085,14 @@
}
},
"node_modules/@smithy/eventstream-codec": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-4.0.5.tgz",
- "integrity": "sha512-miEUN+nz2UTNoRYRhRqVTJCx7jMeILdAurStT2XoS+mhokkmz1xAPp95DFW9Gxt4iF2VBqpeF9HbTQ3kY1viOA==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-4.2.0.tgz",
+ "integrity": "sha512-XE7CtKfyxYiNZ5vz7OvyTf1osrdbJfmUy+rbh+NLQmZumMGvY0mT0Cq1qKSfhrvLtRYzMsOBuRpi10dyI0EBPg==",
"license": "Apache-2.0",
"dependencies": {
"@aws-crypto/crc32": "5.2.0",
- "@smithy/types": "^4.3.2",
- "@smithy/util-hex-encoding": "^4.0.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/util-hex-encoding": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2282,13 +2100,13 @@
}
},
"node_modules/@smithy/eventstream-serde-browser": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-4.0.5.tgz",
- "integrity": "sha512-LCUQUVTbM6HFKzImYlSB9w4xafZmpdmZsOh9rIl7riPC3osCgGFVP+wwvYVw6pXda9PPT9TcEZxaq3XE81EdJQ==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-4.2.0.tgz",
+ "integrity": "sha512-U53p7fcrk27k8irLhOwUu+UYnBqsXNLKl1XevOpsxK3y1Lndk8R7CSiZV6FN3fYFuTPuJy5pP6qa/bjDzEkRvA==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/eventstream-serde-universal": "^4.0.5",
- "@smithy/types": "^4.3.2",
+ "@smithy/eventstream-serde-universal": "^4.2.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2296,12 +2114,12 @@
}
},
"node_modules/@smithy/eventstream-serde-config-resolver": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-4.1.3.tgz",
- "integrity": "sha512-yTTzw2jZjn/MbHu1pURbHdpjGbCuMHWncNBpJnQAPxOVnFUAbSIUSwafiphVDjNV93TdBJWmeVAds7yl5QCkcA==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-4.3.0.tgz",
+ "integrity": "sha512-uwx54t8W2Yo9Jr3nVF5cNnkAAnMCJ8Wrm+wDlQY6rY/IrEgZS3OqagtCu/9ceIcZFQ1zVW/zbN9dxb5esuojfA==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.3.2",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2309,13 +2127,13 @@
}
},
"node_modules/@smithy/eventstream-serde-node": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-4.0.5.tgz",
- "integrity": "sha512-lGS10urI4CNzz6YlTe5EYG0YOpsSp3ra8MXyco4aqSkQDuyZPIw2hcaxDU82OUVtK7UY9hrSvgWtpsW5D4rb4g==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-4.2.0.tgz",
+ "integrity": "sha512-yjM2L6QGmWgJjVu/IgYd6hMzwm/tf4VFX0lm8/SvGbGBwc+aFl3hOzvO/e9IJ2XI+22Tx1Zg3vRpFRs04SWFcg==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/eventstream-serde-universal": "^4.0.5",
- "@smithy/types": "^4.3.2",
+ "@smithy/eventstream-serde-universal": "^4.2.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2323,13 +2141,13 @@
}
},
"node_modules/@smithy/eventstream-serde-universal": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-4.0.5.tgz",
- "integrity": "sha512-JFnmu4SU36YYw3DIBVao3FsJh4Uw65vVDIqlWT4LzR6gXA0F3KP0IXFKKJrhaVzCBhAuMsrUUaT5I+/4ZhF7aw==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-4.2.0.tgz",
+ "integrity": "sha512-C3jxz6GeRzNyGKhU7oV656ZbuHY93mrfkT12rmjDdZch142ykjn8do+VOkeRNjSGKw01p4g+hdalPYPhmMwk1g==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/eventstream-codec": "^4.0.5",
- "@smithy/types": "^4.3.2",
+ "@smithy/eventstream-codec": "^4.2.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2337,15 +2155,15 @@
}
},
"node_modules/@smithy/fetch-http-handler": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.2.0.tgz",
- "integrity": "sha512-VZenjDdVaUGiy3hwQtxm75nhXZrhFG+3xyL93qCQAlYDyhT/jeDWM8/3r5uCFMlTmmyrIjiDyiOynVFchb0BSg==",
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.3.0.tgz",
+ "integrity": "sha512-BG3KSmsx9A//KyIfw+sqNmWFr1YBUr+TwpxFT7yPqAk0yyDh7oSNgzfNH7pS6OC099EGx2ltOULvumCFe8bcgw==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/protocol-http": "^5.2.0",
- "@smithy/querystring-builder": "^4.1.0",
- "@smithy/types": "^4.4.0",
- "@smithy/util-base64": "^4.1.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/querystring-builder": "^4.2.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/util-base64": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2353,14 +2171,14 @@
}
},
"node_modules/@smithy/hash-blob-browser": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-4.0.5.tgz",
- "integrity": "sha512-F7MmCd3FH/Q2edhcKd+qulWkwfChHbc9nhguBlVjSUE6hVHhec3q6uPQ+0u69S6ppvLtR3eStfCuEKMXBXhvvA==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-4.2.0.tgz",
+ "integrity": "sha512-MWmrRTPqVKpN8NmxmJPTeQuhewTt8Chf+waB38LXHZoA02+BeWYVQ9ViAwHjug8m7lQb1UWuGqp3JoGDOWvvuA==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/chunked-blob-reader": "^5.0.0",
- "@smithy/chunked-blob-reader-native": "^4.0.0",
- "@smithy/types": "^4.3.2",
+ "@smithy/chunked-blob-reader": "^5.2.0",
+ "@smithy/chunked-blob-reader-native": "^4.2.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2368,14 +2186,14 @@
}
},
"node_modules/@smithy/hash-node": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-4.0.5.tgz",
- "integrity": "sha512-cv1HHkKhpyRb6ahD8Vcfb2Hgz67vNIXEp2vnhzfxLFGRukLCNEA5QdsorbUEzXma1Rco0u3rx5VTqbM06GcZqQ==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-4.2.0.tgz",
+ "integrity": "sha512-ugv93gOhZGysTctZh9qdgng8B+xO0cj+zN0qAZ+Sgh7qTQGPOJbMdIuyP89KNfUyfAqFSNh5tMvC+h2uCpmTtA==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.3.2",
- "@smithy/util-buffer-from": "^4.0.0",
- "@smithy/util-utf8": "^4.0.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/util-buffer-from": "^4.2.0",
+ "@smithy/util-utf8": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2383,13 +2201,13 @@
}
},
"node_modules/@smithy/hash-stream-node": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-4.0.5.tgz",
- "integrity": "sha512-IJuDS3+VfWB67UC0GU0uYBG/TA30w+PlOaSo0GPm9UHS88A6rCP6uZxNjNYiyRtOcjv7TXn/60cW8ox1yuZsLg==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-4.2.0.tgz",
+ "integrity": "sha512-8dELAuGv+UEjtzrpMeNBZc1sJhO8GxFVV/Yh21wE35oX4lOE697+lsMHBoUIFAUuYkTMIeu0EuJSEsH7/8Y+UQ==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.3.2",
- "@smithy/util-utf8": "^4.0.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/util-utf8": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2397,12 +2215,12 @@
}
},
"node_modules/@smithy/invalid-dependency": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-4.0.5.tgz",
- "integrity": "sha512-IVnb78Qtf7EJpoEVo7qJ8BEXQwgC4n3igeJNNKEj/MLYtapnx8A67Zt/J3RXAj2xSO1910zk0LdFiygSemuLow==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-4.2.0.tgz",
+ "integrity": "sha512-ZmK5X5fUPAbtvRcUPtk28aqIClVhbfcmfoS4M7UQBTnDdrNxhsrxYVv0ZEl5NaPSyExsPWqL4GsPlRvtlwg+2A==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.3.2",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2410,9 +2228,9 @@
}
},
"node_modules/@smithy/is-array-buffer": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-4.1.0.tgz",
- "integrity": "sha512-ePTYUOV54wMogio+he4pBybe8fwg4sDvEVDBU8ZlHOZXbXK3/C0XfJgUCu6qAZcawv05ZhZzODGUerFBPsPUDQ==",
+ "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"
@@ -2422,13 +2240,13 @@
}
},
"node_modules/@smithy/md5-js": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-4.0.5.tgz",
- "integrity": "sha512-8n2XCwdUbGr8W/XhMTaxILkVlw2QebkVTn5tm3HOcbPbOpWg89zr6dPXsH8xbeTsbTXlJvlJNTQsKAIoqQGbdA==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-4.2.0.tgz",
+ "integrity": "sha512-LFEPniXGKRQArFmDQ3MgArXlClFJMsXDteuQQY8WG1/zzv6gVSo96+qpkuu1oJp4MZsKrwchY0cuAoPKzEbaNA==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.3.2",
- "@smithy/util-utf8": "^4.0.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/util-utf8": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2436,13 +2254,13 @@
}
},
"node_modules/@smithy/middleware-content-length": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-4.0.5.tgz",
- "integrity": "sha512-l1jlNZoYzoCC7p0zCtBDE5OBXZ95yMKlRlftooE5jPWQn4YBPLgsp+oeHp7iMHaTGoUdFqmHOPa8c9G3gBsRpQ==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-4.2.0.tgz",
+ "integrity": "sha512-6ZAnwrXFecrA4kIDOcz6aLBhU5ih2is2NdcZtobBDSdSHtE9a+MThB5uqyK4XXesdOCvOcbCm2IGB95birTSOQ==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/protocol-http": "^5.1.3",
- "@smithy/types": "^4.3.2",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2450,18 +2268,18 @@
}
},
"node_modules/@smithy/middleware-endpoint": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.2.0.tgz",
- "integrity": "sha512-J1eCF7pPDwgv7fGwRd2+Y+H9hlIolF3OZ2PjptonzzyOXXGh/1KGJAHpEcY1EX+WLlclKu2yC5k+9jWXdUG4YQ==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.3.0.tgz",
+ "integrity": "sha512-jFVjuQeV8TkxaRlcCNg0GFVgg98tscsmIrIwRFeC74TIUyLE3jmY9xgc1WXrPQYRjQNK3aRoaIk6fhFRGOIoGw==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/core": "^3.10.0",
- "@smithy/middleware-serde": "^4.1.0",
- "@smithy/node-config-provider": "^4.2.0",
- "@smithy/shared-ini-file-loader": "^4.1.0",
- "@smithy/types": "^4.4.0",
- "@smithy/url-parser": "^4.1.0",
- "@smithy/util-middleware": "^4.1.0",
+ "@smithy/core": "^3.14.0",
+ "@smithy/middleware-serde": "^4.2.0",
+ "@smithy/node-config-provider": "^4.3.0",
+ "@smithy/shared-ini-file-loader": "^4.3.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/url-parser": "^4.2.0",
+ "@smithy/util-middleware": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2469,47 +2287,33 @@
}
},
"node_modules/@smithy/middleware-retry": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.2.0.tgz",
- "integrity": "sha512-raL5oWYf5ALl3jCJrajE8enKJEnV/2wZkKS6mb3ZRY2tg3nj66ssdWy5Ps8E6Yu8Wqh3Tt+Sb9LozjvwZupq+A==",
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.4.0.tgz",
+ "integrity": "sha512-yaVBR0vQnOnzex45zZ8ZrPzUnX73eUC8kVFaAAbn04+6V7lPtxn56vZEBBAhgS/eqD6Zm86o6sJs6FuQVoX5qg==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/node-config-provider": "^4.2.0",
- "@smithy/protocol-http": "^5.2.0",
- "@smithy/service-error-classification": "^4.1.0",
- "@smithy/smithy-client": "^4.6.0",
- "@smithy/types": "^4.4.0",
- "@smithy/util-middleware": "^4.1.0",
- "@smithy/util-retry": "^4.1.0",
- "@types/uuid": "^9.0.1",
- "tslib": "^2.6.2",
- "uuid": "^9.0.1"
+ "@smithy/node-config-provider": "^4.3.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/service-error-classification": "^4.2.0",
+ "@smithy/smithy-client": "^4.7.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/util-middleware": "^4.2.0",
+ "@smithy/util-retry": "^4.2.0",
+ "@smithy/uuid": "^1.1.0",
+ "tslib": "^2.6.2"
},
"engines": {
"node": ">=18.0.0"
}
},
- "node_modules/@smithy/middleware-retry/node_modules/uuid": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
- "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
- "funding": [
- "https://github.com/sponsors/broofa",
- "https://github.com/sponsors/ctavan"
- ],
- "license": "MIT",
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
"node_modules/@smithy/middleware-serde": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-4.1.0.tgz",
- "integrity": "sha512-CtLFYlHt7c2VcztyVRc+25JLV4aGpmaSv9F1sPB0AGFL6S+RPythkqpGDa2XBQLJQooKkjLA1g7Xe4450knShg==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-4.2.0.tgz",
+ "integrity": "sha512-rpTQ7D65/EAbC6VydXlxjvbifTf4IH+sADKg6JmAvhkflJO2NvDeyU9qsWUNBelJiQFcXKejUHWRSdmpJmEmiw==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/protocol-http": "^5.2.0",
- "@smithy/types": "^4.4.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2517,12 +2321,12 @@
}
},
"node_modules/@smithy/middleware-stack": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-4.1.0.tgz",
- "integrity": "sha512-91Fuw4IKp0eK8PNhMXrHRcYA1jvbZ9BJGT91wwPy3bTQT8mHTcQNius/EhSQTlT9QUI3Ki1wjHeNXbWK0tO8YQ==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-4.2.0.tgz",
+ "integrity": "sha512-G5CJ//eqRd9OARrQu9MK1H8fNm2sMtqFh6j8/rPozhEL+Dokpvi1Og+aCixTuwDAGZUkJPk6hJT5jchbk/WCyg==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.4.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2530,14 +2334,14 @@
}
},
"node_modules/@smithy/node-config-provider": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-4.2.0.tgz",
- "integrity": "sha512-8/fpilqKurQ+f8nFvoFkJ0lrymoMJ+5/CQV5IcTv/MyKhk2Q/EFYCAgTSWHD4nMi9ux9NyBBynkyE9SLg2uSLA==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-4.3.0.tgz",
+ "integrity": "sha512-5QgHNuWdT9j9GwMPPJCKxy2KDxZ3E5l4M3/5TatSZrqYVoEiqQrDfAq8I6KWZw7RZOHtVtCzEPdYz7rHZixwcA==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/property-provider": "^4.1.0",
- "@smithy/shared-ini-file-loader": "^4.1.0",
- "@smithy/types": "^4.4.0",
+ "@smithy/property-provider": "^4.2.0",
+ "@smithy/shared-ini-file-loader": "^4.3.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2545,15 +2349,15 @@
}
},
"node_modules/@smithy/node-http-handler": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.2.0.tgz",
- "integrity": "sha512-G4NV70B4hF9vBrUkkvNfWO6+QR4jYjeO4tc+4XrKCb4nPYj49V9Hu8Ftio7Mb0/0IlFyEOORudHrm+isY29nCA==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.3.0.tgz",
+ "integrity": "sha512-RHZ/uWCmSNZ8cneoWEVsVwMZBKy/8123hEpm57vgGXA3Irf/Ja4v9TVshHK2ML5/IqzAZn0WhINHOP9xl+Qy6Q==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/abort-controller": "^4.1.0",
- "@smithy/protocol-http": "^5.2.0",
- "@smithy/querystring-builder": "^4.1.0",
- "@smithy/types": "^4.4.0",
+ "@smithy/abort-controller": "^4.2.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/querystring-builder": "^4.2.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2561,12 +2365,12 @@
}
},
"node_modules/@smithy/property-provider": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-4.1.0.tgz",
- "integrity": "sha512-eksMjMHUlG5PwOUWO3k+rfLNOPVPJ70mUzyYNKb5lvyIuAwS4zpWGsxGiuT74DFWonW0xRNy+jgzGauUzX7SyA==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-4.2.0.tgz",
+ "integrity": "sha512-rV6wFre0BU6n/tx2Ztn5LdvEdNZ2FasQbPQmDOPfV9QQyDmsCkOAB0osQjotRCQg+nSKFmINhyda0D3AnjSBJw==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.4.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2574,12 +2378,12 @@
}
},
"node_modules/@smithy/protocol-http": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-5.2.0.tgz",
- "integrity": "sha512-bwjlh5JwdOQnA01be+5UvHK4HQz4iaRKlVG46hHSJuqi0Ribt3K06Z1oQ29i35Np4G9MCDgkOGcHVyLMreMcbg==",
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-5.3.0.tgz",
+ "integrity": "sha512-6POSYlmDnsLKb7r1D3SVm7RaYW6H1vcNcTWGWrF7s9+2noNYvUsm7E4tz5ZQ9HXPmKn6Hb67pBDRIjrT4w/d7Q==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.4.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2587,13 +2391,13 @@
}
},
"node_modules/@smithy/querystring-builder": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-4.1.0.tgz",
- "integrity": "sha512-JqTWmVIq4AF8R8OK/2cCCiQo5ZJ0SRPsDkDgLO5/3z8xxuUp1oMIBBjfuueEe+11hGTZ6rRebzYikpKc6yQV9Q==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-4.2.0.tgz",
+ "integrity": "sha512-Q4oFD0ZmI8yJkiPPeGUITZj++4HHYCW3pYBYfIobUCkYpI6mbkzmG1MAQQ3lJYYWj3iNqfzOenUZu+jqdPQ16A==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.4.0",
- "@smithy/util-uri-escape": "^4.1.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/util-uri-escape": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2601,12 +2405,12 @@
}
},
"node_modules/@smithy/querystring-parser": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-4.1.0.tgz",
- "integrity": "sha512-VgdHhr8YTRsjOl4hnKFm7xEMOCRTnKw3FJ1nU+dlWNhdt/7eEtxtkdrJdx7PlRTabdANTmvyjE4umUl9cK4awg==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-4.2.0.tgz",
+ "integrity": "sha512-BjATSNNyvVbQxOOlKse0b0pSezTWGMvA87SvoFoFlkRsKXVsN3bEtjCxvsNXJXfnAzlWFPaT9DmhWy1vn0sNEA==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.4.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2614,24 +2418,24 @@
}
},
"node_modules/@smithy/service-error-classification": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-4.1.0.tgz",
- "integrity": "sha512-UBpNFzBNmS20jJomuYn++Y+soF8rOK9AvIGjS9yGP6uRXF5rP18h4FDUsoNpWTlSsmiJ87e2DpZo9ywzSMH7PQ==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-4.2.0.tgz",
+ "integrity": "sha512-Ylv1ttUeKatpR0wEOMnHf1hXMktPUMObDClSWl2TpCVT4DwtJhCeighLzSLbgH3jr5pBNM0LDXT5yYxUvZ9WpA==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.4.0"
+ "@smithy/types": "^4.6.0"
},
"engines": {
"node": ">=18.0.0"
}
},
"node_modules/@smithy/shared-ini-file-loader": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.1.0.tgz",
- "integrity": "sha512-W0VMlz9yGdQ/0ZAgWICFjFHTVU0YSfGoCVpKaExRM/FDkTeP/yz8OKvjtGjs6oFokCRm0srgj/g4Cg0xuHu8Rw==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.3.0.tgz",
+ "integrity": "sha512-VCUPPtNs+rKWlqqntX0CbVvWyjhmX30JCtzO+s5dlzzxrvSfRh5SY0yxnkirvc1c80vdKQttahL71a9EsdolSQ==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.4.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2639,18 +2443,18 @@
}
},
"node_modules/@smithy/signature-v4": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.2.0.tgz",
- "integrity": "sha512-ObX1ZqG2DdZQlXx9mLD7yAR8AGb7yXurGm+iWx9x4l1fBZ8CZN2BRT09aSbcXVPZXWGdn5VtMuupjxhOTI2EjA==",
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.3.0.tgz",
+ "integrity": "sha512-MKNyhXEs99xAZaFhm88h+3/V+tCRDQ+PrDzRqL0xdDpq4gjxcMmf5rBA3YXgqZqMZ/XwemZEurCBQMfxZOWq/g==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/is-array-buffer": "^4.1.0",
- "@smithy/protocol-http": "^5.2.0",
- "@smithy/types": "^4.4.0",
- "@smithy/util-hex-encoding": "^4.1.0",
- "@smithy/util-middleware": "^4.1.0",
- "@smithy/util-uri-escape": "^4.1.0",
- "@smithy/util-utf8": "^4.1.0",
+ "@smithy/is-array-buffer": "^4.2.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/util-hex-encoding": "^4.2.0",
+ "@smithy/util-middleware": "^4.2.0",
+ "@smithy/util-uri-escape": "^4.2.0",
+ "@smithy/util-utf8": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2658,17 +2462,17 @@
}
},
"node_modules/@smithy/smithy-client": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.6.0.tgz",
- "integrity": "sha512-TvlIshqx5PIi0I0AiR+PluCpJ8olVG++xbYkAIGCUkByaMUlfOXLgjQTmYbr46k4wuDe8eHiTIlUflnjK2drPQ==",
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.7.0.tgz",
+ "integrity": "sha512-3BDx/aCCPf+kkinYf5QQhdQ9UAGihgOVqI3QO5xQfSaIWvUE4KYLtiGRWsNe1SR7ijXC0QEPqofVp5Sb0zC8xQ==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/core": "^3.10.0",
- "@smithy/middleware-endpoint": "^4.2.0",
- "@smithy/middleware-stack": "^4.1.0",
- "@smithy/protocol-http": "^5.2.0",
- "@smithy/types": "^4.4.0",
- "@smithy/util-stream": "^4.3.0",
+ "@smithy/core": "^3.14.0",
+ "@smithy/middleware-endpoint": "^4.3.0",
+ "@smithy/middleware-stack": "^4.2.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/util-stream": "^4.4.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2676,9 +2480,9 @@
}
},
"node_modules/@smithy/types": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/@smithy/types/-/types-4.4.0.tgz",
- "integrity": "sha512-4jY91NgZz+ZnSFcVzWwngOW6VuK3gR/ihTwSU1R/0NENe9Jd8SfWgbhDCAGUWL3bI7DiDSW7XF6Ui6bBBjrqXw==",
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/@smithy/types/-/types-4.6.0.tgz",
+ "integrity": "sha512-4lI9C8NzRPOv66FaY1LL1O/0v0aLVrq/mXP/keUa9mJOApEeae43LsLd2kZRUJw91gxOQfLIrV3OvqPgWz1YsA==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
@@ -2688,13 +2492,13 @@
}
},
"node_modules/@smithy/url-parser": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-4.1.0.tgz",
- "integrity": "sha512-/LYEIOuO5B2u++tKr1NxNxhZTrr3A63jW8N73YTwVeUyAlbB/YM+hkftsvtKAcMt3ADYo0FsF1GY3anehffSVQ==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-4.2.0.tgz",
+ "integrity": "sha512-AlBmD6Idav2ugmoAL6UtR6ItS7jU5h5RNqLMZC7QrLCoITA9NzIN3nx9GWi8g4z1pfWh2r9r96SX/jHiNwPJ9A==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/querystring-parser": "^4.1.0",
- "@smithy/types": "^4.4.0",
+ "@smithy/querystring-parser": "^4.2.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2702,13 +2506,13 @@
}
},
"node_modules/@smithy/util-base64": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-4.1.0.tgz",
- "integrity": "sha512-RUGd4wNb8GeW7xk+AY5ghGnIwM96V0l2uzvs/uVHf+tIuVX2WSvynk5CxNoBCsM2rQRSZElAo9rt3G5mJ/gktQ==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-4.2.0.tgz",
+ "integrity": "sha512-+erInz8WDv5KPe7xCsJCp+1WCjSbah9gWcmUXc9NqmhyPx59tf7jqFz+za1tRG1Y5KM1Cy1rWCcGypylFp4mvA==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/util-buffer-from": "^4.1.0",
- "@smithy/util-utf8": "^4.1.0",
+ "@smithy/util-buffer-from": "^4.2.0",
+ "@smithy/util-utf8": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2716,9 +2520,9 @@
}
},
"node_modules/@smithy/util-body-length-browser": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-4.1.0.tgz",
- "integrity": "sha512-V2E2Iez+bo6bUMOTENPr6eEmepdY8Hbs+Uc1vkDKgKNA/brTJqOW/ai3JO1BGj9GbCeLqw90pbbH7HFQyFotGQ==",
+ "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"
@@ -2728,9 +2532,9 @@
}
},
"node_modules/@smithy/util-body-length-node": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-4.0.0.tgz",
- "integrity": "sha512-q0iDP3VsZzqJyje8xJWEJCNIu3lktUGVoSy1KB0UWym2CL1siV3artm+u1DFYTLejpsrdGyCSWBdGNjJzfDPjg==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-4.2.0.tgz",
+ "integrity": "sha512-U8q1WsSZFjXijlD7a4wsDQOvOwV+72iHSfq1q7VD+V75xP/pdtm0WIGuaFJ3gcADDOKj2MIBn4+zisi140HEnQ==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
@@ -2740,12 +2544,12 @@
}
},
"node_modules/@smithy/util-buffer-from": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-4.1.0.tgz",
- "integrity": "sha512-N6yXcjfe/E+xKEccWEKzK6M+crMrlwaCepKja0pNnlSkm6SjAeLKKA++er5Ba0I17gvKfN/ThV+ZOx/CntKTVw==",
+ "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.1.0",
+ "@smithy/is-array-buffer": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2753,9 +2557,9 @@
}
},
"node_modules/@smithy/util-config-provider": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-4.1.0.tgz",
- "integrity": "sha512-swXz2vMjrP1ZusZWVTB/ai5gK+J8U0BWvP10v9fpcFvg+Xi/87LHvHfst2IgCs1i0v4qFZfGwCmeD/KNCdJZbQ==",
+ "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"
@@ -2765,14 +2569,14 @@
}
},
"node_modules/@smithy/util-defaults-mode-browser": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.1.0.tgz",
- "integrity": "sha512-D27cLtJtC4EEeERJXS+JPoogz2tE5zeE3zhWSSu6ER5/wJ5gihUxIzoarDX6K1U27IFTHit5YfHqU4Y9RSGE0w==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.2.0.tgz",
+ "integrity": "sha512-qzHp7ZDk1Ba4LDwQVCNp90xPGqSu7kmL7y5toBpccuhi3AH7dcVBIT/pUxYcInK4jOy6FikrcTGq5wxcka8UaQ==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/property-provider": "^4.1.0",
- "@smithy/smithy-client": "^4.6.0",
- "@smithy/types": "^4.4.0",
+ "@smithy/property-provider": "^4.2.0",
+ "@smithy/smithy-client": "^4.7.0",
+ "@smithy/types": "^4.6.0",
"bowser": "^2.11.0",
"tslib": "^2.6.2"
},
@@ -2781,17 +2585,17 @@
}
},
"node_modules/@smithy/util-defaults-mode-node": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.1.0.tgz",
- "integrity": "sha512-gnZo3u5dP1o87plKupg39alsbeIY1oFFnCyV2nI/++pL19vTtBLgOyftLEjPjuXmoKn2B2rskX8b7wtC/+3Okg==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.0.tgz",
+ "integrity": "sha512-FxUHS3WXgx3bTWR6yQHNHHkQHZm/XKIi/CchTnKvBulN6obWpcbzJ6lDToXn+Wp0QlVKd7uYAz2/CTw1j7m+Kg==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/config-resolver": "^4.2.0",
- "@smithy/credential-provider-imds": "^4.1.0",
- "@smithy/node-config-provider": "^4.2.0",
- "@smithy/property-provider": "^4.1.0",
- "@smithy/smithy-client": "^4.6.0",
- "@smithy/types": "^4.4.0",
+ "@smithy/config-resolver": "^4.3.0",
+ "@smithy/credential-provider-imds": "^4.2.0",
+ "@smithy/node-config-provider": "^4.3.0",
+ "@smithy/property-provider": "^4.2.0",
+ "@smithy/smithy-client": "^4.7.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2799,13 +2603,13 @@
}
},
"node_modules/@smithy/util-endpoints": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-3.0.7.tgz",
- "integrity": "sha512-klGBP+RpBp6V5JbrY2C/VKnHXn3d5V2YrifZbmMY8os7M6m8wdYFoO6w/fe5VkP+YVwrEktW3IWYaSQVNZJ8oQ==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-3.2.0.tgz",
+ "integrity": "sha512-TXeCn22D56vvWr/5xPqALc9oO+LN+QpFjrSM7peG/ckqEPoI3zaKZFp+bFwfmiHhn5MGWPaLCqDOJPPIixk9Wg==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/node-config-provider": "^4.1.4",
- "@smithy/types": "^4.3.2",
+ "@smithy/node-config-provider": "^4.3.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2813,9 +2617,9 @@
}
},
"node_modules/@smithy/util-hex-encoding": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-4.1.0.tgz",
- "integrity": "sha512-1LcueNN5GYC4tr8mo14yVYbh/Ur8jHhWOxniZXii+1+ePiIbsLZ5fEI0QQGtbRRP5mOhmooos+rLmVASGGoq5w==",
+ "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"
@@ -2825,12 +2629,12 @@
}
},
"node_modules/@smithy/util-middleware": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-4.1.0.tgz",
- "integrity": "sha512-612onNcKyxhP7/YOTKFTb2F6sPYtMRddlT5mZvYf1zduzaGzkYhpYIPxIeeEwBZFjnvEqe53Ijl2cYEfJ9d6/Q==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-4.2.0.tgz",
+ "integrity": "sha512-u9OOfDa43MjagtJZ8AapJcmimP+K2Z7szXn8xbty4aza+7P1wjFmy2ewjSbhEiYQoW1unTlOAIV165weYAaowA==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.4.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2838,13 +2642,13 @@
}
},
"node_modules/@smithy/util-retry": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-4.1.0.tgz",
- "integrity": "sha512-5AGoBHb207xAKSVwaUnaER+L55WFY8o2RhlafELZR3mB0J91fpL+Qn+zgRkPzns3kccGaF2vy0HmNVBMWmN6dA==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-4.2.0.tgz",
+ "integrity": "sha512-BWSiuGbwRnEE2SFfaAZEX0TqaxtvtSYPM/J73PFVm+A29Fg1HTPiYFb8TmX1DXp4hgcdyJcNQmprfd5foeORsg==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/service-error-classification": "^4.1.0",
- "@smithy/types": "^4.4.0",
+ "@smithy/service-error-classification": "^4.2.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2852,18 +2656,18 @@
}
},
"node_modules/@smithy/util-stream": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-4.3.0.tgz",
- "integrity": "sha512-ZOYS94jksDwvsCJtppHprUhsIscRnCKGr6FXCo3SxgQ31ECbza3wqDBqSy6IsAak+h/oAXb1+UYEBmDdseAjUQ==",
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-4.4.0.tgz",
+ "integrity": "sha512-vtO7ktbixEcrVzMRmpQDnw/Ehr9UWjBvSJ9fyAbadKkC4w5Cm/4lMO8cHz8Ysb8uflvQUNRcuux/oNHKPXkffg==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/fetch-http-handler": "^5.2.0",
- "@smithy/node-http-handler": "^4.2.0",
- "@smithy/types": "^4.4.0",
- "@smithy/util-base64": "^4.1.0",
- "@smithy/util-buffer-from": "^4.1.0",
- "@smithy/util-hex-encoding": "^4.1.0",
- "@smithy/util-utf8": "^4.1.0",
+ "@smithy/fetch-http-handler": "^5.3.0",
+ "@smithy/node-http-handler": "^4.3.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/util-base64": "^4.2.0",
+ "@smithy/util-buffer-from": "^4.2.0",
+ "@smithy/util-hex-encoding": "^4.2.0",
+ "@smithy/util-utf8": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2871,9 +2675,9 @@
}
},
"node_modules/@smithy/util-uri-escape": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-4.1.0.tgz",
- "integrity": "sha512-b0EFQkq35K5NHUYxU72JuoheM6+pytEVUGlTwiFxWFpmddA+Bpz3LgsPRIpBk8lnPE47yT7AF2Egc3jVnKLuPg==",
+ "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"
@@ -2883,12 +2687,12 @@
}
},
"node_modules/@smithy/util-utf8": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-4.1.0.tgz",
- "integrity": "sha512-mEu1/UIXAdNYuBcyEPbjScKi/+MQVXNIuY/7Cm5XLIWe319kDrT5SizBE95jqtmEXoDbGoZxKLCMttdZdqTZKQ==",
+ "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.1.0",
+ "@smithy/util-buffer-from": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2896,19 +2700,41 @@
}
},
"node_modules/@smithy/util-waiter": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-4.0.7.tgz",
- "integrity": "sha512-mYqtQXPmrwvUljaHyGxYUIIRI3qjBTEb/f5QFi3A6VlxhpmZd5mWXn9W+qUkf2pVE1Hv3SqxefiZOPGdxmO64A==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-4.2.0.tgz",
+ "integrity": "sha512-0Z+nxUU4/4T+SL8BCNN4ztKdQjToNvUYmkF1kXO5T7Yz3Gafzh0HeIG6mrkN8Fz3gn9hSyxuAT+6h4vM+iQSBQ==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/abort-controller": "^4.0.5",
- "@smithy/types": "^4.3.2",
+ "@smithy/abort-controller": "^4.2.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
"node": ">=18.0.0"
}
},
+ "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"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@so-ric/colorspace": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/@so-ric/colorspace/-/colorspace-1.1.6.tgz",
+ "integrity": "sha512-/KiKkpHNOBgkFJwu9sh48LkHSMYGyuTcSFK/qMBdnOAlrRJzRSXAOFB5qwzaVQuDl8wAvHVMkaASQDReTahxuw==",
+ "license": "MIT",
+ "dependencies": {
+ "color": "^5.0.2",
+ "text-hex": "1.0.x"
+ }
+ },
"node_modules/@socket.io/admin-ui": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/@socket.io/admin-ui/-/admin-ui-0.5.1.tgz",
@@ -3206,12 +3032,6 @@
"integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==",
"license": "MIT"
},
- "node_modules/@types/uuid": {
- "version": "9.0.8",
- "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz",
- "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==",
- "license": "MIT"
- },
"node_modules/@vitest/expect": {
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz",
@@ -3383,6 +3203,7 @@
"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": {
"acorn": "bin/acorn"
@@ -3391,15 +3212,6 @@
"node": ">=0.4.0"
}
},
- "node_modules/acorn-import-attributes": {
- "version": "1.9.5",
- "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz",
- "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==",
- "license": "MIT",
- "peerDependencies": {
- "acorn": "^8"
- }
- },
"node_modules/acorn-jsx": {
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
@@ -3518,6 +3330,7 @@
"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/array-buffer-byte-length": {
@@ -3764,9 +3577,9 @@
"license": "MIT"
},
"node_modules/axios": {
- "version": "1.11.0",
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.11.0.tgz",
- "integrity": "sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==",
+ "version": "1.12.2",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.12.2.tgz",
+ "integrity": "sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==",
"license": "MIT",
"dependencies": {
"follow-redirects": "^1.15.6",
@@ -3781,12 +3594,12 @@
"license": "MIT"
},
"node_modules/axios-ntlm": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/axios-ntlm/-/axios-ntlm-1.4.4.tgz",
- "integrity": "sha512-kpCRdzMfL8gi0Z0o96P3QPAK4XuC8iciGgxGXe+PeQ4oyjI2LZN8WSOKbu0Y9Jo3T/A7pB81n6jYVPIpglEuRA==",
+ "version": "1.4.6",
+ "resolved": "https://registry.npmjs.org/axios-ntlm/-/axios-ntlm-1.4.6.tgz",
+ "integrity": "sha512-4nR5cbVEBfPMTFkd77FEDpDuaR205JKibmrkaQyNwGcCx0szWNpRZaL0jZyMx4+mVY2PXHjRHuJafv9Oipl0Kg==",
"license": "MIT",
"dependencies": {
- "axios": "^1.8.4",
+ "axios": "^1.12.2",
"des.js": "^1.1.0",
"dev-null": "^0.1.1",
"js-md4": "^0.3.2"
@@ -3901,9 +3714,9 @@
"license": "ISC"
},
"node_modules/bowser": {
- "version": "2.12.0",
- "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.12.0.tgz",
- "integrity": "sha512-HcOcTudTeEWgbHh0Y1Tyb6fdeR71m4b/QACf0D4KswGTsNeIJQmg38mRENZPAYPZvGFN3fk3604XbQEPdxXdKg==",
+ "version": "2.12.1",
+ "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.12.1.tgz",
+ "integrity": "sha512-z4rE2Gxh7tvshQ4hluIT7XcFrgLIQaw9X3A+kTTRdovCz5PMukm/0QC/BKSYPj3omF5Qfypn9O/c5kgpmvYUCw==",
"license": "MIT"
},
"node_modules/brace-expansion": {
@@ -3958,9 +3771,9 @@
}
},
"node_modules/bullmq": {
- "version": "5.58.5",
- "resolved": "https://registry.npmjs.org/bullmq/-/bullmq-5.58.5.tgz",
- "integrity": "sha512-0A6Qjxdn8j7aOcxfRZY798vO/aMuwvoZwfE6a9EOXHb1pzpBVAogsc/OfRWeUf+5wMBoYB5nthstnJo/zrQOeQ==",
+ "version": "5.61.0",
+ "resolved": "https://registry.npmjs.org/bullmq/-/bullmq-5.61.0.tgz",
+ "integrity": "sha512-khaTjc1JnzaYFl4FrUtsSsqugAW/urRrcZ9Q0ZE+REAw8W+gkHFqxbGlutOu6q7j7n91wibVaaNlOUMdiEvoSQ==",
"license": "MIT",
"dependencies": {
"cron-parser": "^4.9.0",
@@ -3969,20 +3782,7 @@
"node-abort-controller": "^3.1.1",
"semver": "^7.5.4",
"tslib": "^2.0.0",
- "uuid": "^9.0.0"
- }
- },
- "node_modules/bullmq/node_modules/uuid": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
- "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
- "funding": [
- "https://github.com/sponsors/broofa",
- "https://github.com/sponsors/ctavan"
- ],
- "license": "MIT",
- "bin": {
- "uuid": "dist/bin/uuid"
+ "uuid": "^11.1.0"
}
},
"node_modules/busboy": {
@@ -4170,12 +3970,6 @@
"url": "https://github.com/sponsors/fb55"
}
},
- "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==",
- "license": "MIT"
- },
"node_modules/cliui": {
"version": "8.0.1",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
@@ -4277,13 +4071,16 @@
}
},
"node_modules/color": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz",
- "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==",
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/color/-/color-5.0.2.tgz",
+ "integrity": "sha512-e2hz5BzbUPcYlIRHo8ieAhYgoajrJr+hWoceg6E345TPsATMUKqDgzt8fSXZJJbxfpiPzkWyphz8yn8At7q3fA==",
"license": "MIT",
"dependencies": {
- "color-convert": "^1.9.3",
- "color-string": "^1.6.0"
+ "color-convert": "^3.0.1",
+ "color-string": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=18"
}
},
"node_modules/color-convert": {
@@ -4305,38 +4102,45 @@
"license": "MIT"
},
"node_modules/color-string": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
- "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-2.1.2.tgz",
+ "integrity": "sha512-RxmjYxbWemV9gKu4zPgiZagUxbH3RQpEIO77XoSSX0ivgABDZ+h8Zuash/EMFLTI4N9QgFPOJ6JQpPZKFxa+dA==",
"license": "MIT",
"dependencies": {
- "color-name": "^1.0.0",
- "simple-swizzle": "^0.2.2"
+ "color-name": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/color-string/node_modules/color-name": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-2.0.2.tgz",
+ "integrity": "sha512-9vEt7gE16EW7Eu7pvZnR0abW9z6ufzhXxGXZEVU9IqPdlsUiMwJeJfRtq0zePUmnbHGT9zajca7mX8zgoayo4A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.20"
}
},
"node_modules/color/node_modules/color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-3.1.2.tgz",
+ "integrity": "sha512-UNqkvCDXstVck3kdowtOTWROIJQwafjOfXSmddoDrXo4cewMKmusCeF22Q24zvjR8nwWib/3S/dfyzPItPEiJg==",
"license": "MIT",
"dependencies": {
- "color-name": "1.1.3"
+ "color-name": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=14.6"
}
},
"node_modules/color/node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "license": "MIT"
- },
- "node_modules/colorspace": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz",
- "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-2.0.2.tgz",
+ "integrity": "sha512-9vEt7gE16EW7Eu7pvZnR0abW9z6ufzhXxGXZEVU9IqPdlsUiMwJeJfRtq0zePUmnbHGT9zajca7mX8zgoayo4A==",
"license": "MIT",
- "dependencies": {
- "color": "^3.1.3",
- "text-hex": "1.0.x"
+ "engines": {
+ "node": ">=12.20"
}
},
"node_modules/combined-stream": {
@@ -4647,12 +4451,6 @@
"node": ">= 8"
}
},
- "node_modules/crypto-randomuuid": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/crypto-randomuuid/-/crypto-randomuuid-1.0.0.tgz",
- "integrity": "sha512-/RC5F4l1SCqD/jazwUF6+t34Cd8zTSAGZ7rvvZu1whZUhD2a5MOGKjSGowoGcpj/cbVZk1ZODIooJEQQq3nNAA==",
- "license": "MIT"
- },
"node_modules/csrf": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/csrf/-/csrf-3.1.0.tgz",
@@ -4755,80 +4553,10 @@
"integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==",
"license": "MIT"
},
- "node_modules/dc-polyfill": {
- "version": "0.1.10",
- "resolved": "https://registry.npmjs.org/dc-polyfill/-/dc-polyfill-0.1.10.tgz",
- "integrity": "sha512-9iSbB8XZ7aIrhUtWI5ulEOJ+IyUN+axquodHK+bZO4r7HfY/xwmo6I4fYYf+aiDom+WMcN/wnzCz+pKvHDDCug==",
- "license": "MIT",
- "engines": {
- "node": ">=12.17"
- }
- },
- "node_modules/dd-trace": {
- "version": "5.65.0",
- "resolved": "https://registry.npmjs.org/dd-trace/-/dd-trace-5.65.0.tgz",
- "integrity": "sha512-U4zt7n8hKxjA3y3GTbJI7+ix5iwO5agn+8p6MNIAPgq2JG49jB6hUf78HvrPjGWX5R0fBpyiceOl+aLCsZIHNg==",
- "hasInstallScript": true,
- "license": "(Apache-2.0 OR BSD-3-Clause)",
- "dependencies": {
- "@datadog/libdatadog": "0.7.0",
- "@datadog/native-appsec": "10.1.0",
- "@datadog/native-iast-taint-tracking": "4.0.0",
- "@datadog/native-metrics": "3.1.1",
- "@datadog/pprof": "5.9.0",
- "@datadog/sketches-js": "2.1.1",
- "@datadog/wasm-js-rewriter": "4.0.1",
- "@isaacs/ttlcache": "^1.4.1",
- "@opentelemetry/api": "1.8.0",
- "@opentelemetry/core": "^1.14.0",
- "crypto-randomuuid": "^1.0.0",
- "dc-polyfill": "^0.1.10",
- "ignore": "^7.0.5",
- "import-in-the-middle": "^1.14.2",
- "istanbul-lib-coverage": "^3.2.2",
- "jest-docblock": "^29.7.0",
- "jsonpath-plus": "^10.3.0",
- "koalas": "^1.0.2",
- "limiter": "^1.1.5",
- "lodash.sortby": "^4.7.0",
- "lru-cache": "^10.4.3",
- "module-details-from-path": "^1.0.4",
- "mutexify": "^1.4.0",
- "opentracing": ">=0.14.7",
- "path-to-regexp": "^0.1.12",
- "pprof-format": "^2.1.0",
- "protobufjs": "^7.5.3",
- "retry": "^0.13.1",
- "rfdc": "^1.4.1",
- "semifies": "^1.0.0",
- "shell-quote": "^1.8.2",
- "source-map": "^0.7.4",
- "tlhunter-sorted-set": "^0.1.0",
- "ttl-set": "^1.0.0"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/dd-trace/node_modules/ignore": {
- "version": "7.0.5",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz",
- "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==",
- "license": "MIT",
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/dd-trace/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/debug": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz",
- "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==",
+ "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"
@@ -4913,18 +4641,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/delay": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz",
- "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==",
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
@@ -4973,23 +4689,14 @@
}
},
"node_modules/detect-libc": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz",
- "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==",
+ "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"
}
},
- "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==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/dev-null": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/dev-null/-/dev-null-0.1.1.tgz",
@@ -5093,9 +4800,9 @@
}
},
"node_modules/dotenv": {
- "version": "17.2.2",
- "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.2.2.tgz",
- "integrity": "sha512-Sf2LSQP+bOlhKWWyhFsn0UsfdK/kCWRv1iuA2gXAwt3dyNabr6QSj00I2V10pidqz69soatm9ZwZvpQMTIOd5Q==",
+ "version": "17.2.3",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.2.3.tgz",
+ "integrity": "sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==",
"license": "BSD-2-Clause",
"engines": {
"node": ">=12"
@@ -5536,20 +5243,20 @@
}
},
"node_modules/eslint": {
- "version": "9.35.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.35.0.tgz",
- "integrity": "sha512-QePbBFMJFjgmlE+cXAlbHZbHpdFVS2E/6vzCy7aKlebddvl1vadiC4JFV5u/wqTkNUwEV8WrQi257jf5f06hrg==",
+ "version": "9.37.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.37.0.tgz",
+ "integrity": "sha512-XyLmROnACWqSxiGYArdef1fItQd47weqB7iwtfr9JHwRrqIXZdcFMvvEcL9xHCmL0SNsOvF0c42lWyM1U5dgig==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.8.0",
"@eslint-community/regexpp": "^4.12.1",
"@eslint/config-array": "^0.21.0",
- "@eslint/config-helpers": "^0.3.1",
- "@eslint/core": "^0.15.2",
+ "@eslint/config-helpers": "^0.4.0",
+ "@eslint/core": "^0.16.0",
"@eslint/eslintrc": "^3.3.1",
- "@eslint/js": "9.35.0",
- "@eslint/plugin-kit": "^0.3.5",
+ "@eslint/js": "9.37.0",
+ "@eslint/plugin-kit": "^0.4.0",
"@humanfs/node": "^0.16.6",
"@humanwhocodes/module-importer": "^1.0.1",
"@humanwhocodes/retry": "^0.4.2",
@@ -6870,18 +6577,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/import-in-the-middle": {
- "version": "1.14.2",
- "resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.14.2.tgz",
- "integrity": "sha512-5tCuY9BV8ujfOpwtAGgsTx9CGUapcFMEEyByLv1B+v2+6DhAcw+Zr0nhQT7uwaZ7DiourxFEscghOR8e1aPLQw==",
- "license": "Apache-2.0",
- "dependencies": {
- "acorn": "^8.14.0",
- "acorn-import-attributes": "^1.9.5",
- "cjs-module-lexer": "^1.2.2",
- "module-details-from-path": "^1.0.3"
- }
- },
"node_modules/imurmurhash": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
@@ -6950,12 +6645,12 @@
}
},
"node_modules/ioredis": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.7.0.tgz",
- "integrity": "sha512-NUcA93i1lukyXU+riqEyPtSEkyFq8tX90uL659J+qpCZ3rEdViB/APC58oAhIh3+bJln2hzdlZbBZsGNrlsR8g==",
+ "version": "5.8.1",
+ "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.8.1.tgz",
+ "integrity": "sha512-Qho8TgIamqEPdgiMadJwzRMW3TudIg6vpg4YONokGDudy4eqRIJtDbVX72pfLBcWxvbn3qm/40TyGUObdW4tLQ==",
"license": "MIT",
"dependencies": {
- "@ioredis/commands": "^1.3.0",
+ "@ioredis/commands": "1.4.0",
"cluster-key-slot": "^1.1.0",
"debug": "^4.3.4",
"denque": "^2.1.0",
@@ -7000,12 +6695,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-arrayish": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
- "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==",
- "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",
@@ -7390,15 +7079,6 @@
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
"license": "ISC"
},
- "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==",
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/iterator.prototype": {
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz",
@@ -7432,18 +7112,6 @@
"@pkgjs/parseargs": "^0.11.0"
}
},
- "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==",
- "license": "MIT",
- "dependencies": {
- "detect-newline": "^3.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
"node_modules/jose": {
"version": "4.15.9",
"resolved": "https://registry.npmjs.org/jose/-/jose-4.15.9.tgz",
@@ -7470,6 +7138,7 @@
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "dev": true,
"license": "MIT",
"dependencies": {
"argparse": "^2.0.1"
@@ -7478,15 +7147,6 @@
"js-yaml": "bin/js-yaml.js"
}
},
- "node_modules/jsep": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.4.0.tgz",
- "integrity": "sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==",
- "license": "MIT",
- "engines": {
- "node": ">= 10.16.0"
- }
- },
"node_modules/json-2-csv": {
"version": "5.5.9",
"resolved": "https://registry.npmjs.org/json-2-csv/-/json-2-csv-5.5.9.tgz",
@@ -7539,24 +7199,6 @@
"json11": "dist/cli.mjs"
}
},
- "node_modules/jsonpath-plus": {
- "version": "10.3.0",
- "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-10.3.0.tgz",
- "integrity": "sha512-8TNmfeTCk2Le33A3vRRwtuworG/L5RrgMvdjhKZxvyShO+mBu2fP50OWUjRLNtvw344DdDarFh9buFAZs5ujeA==",
- "license": "MIT",
- "dependencies": {
- "@jsep-plugin/assignment": "^1.3.0",
- "@jsep-plugin/regex": "^1.0.4",
- "jsep": "^1.4.0"
- },
- "bin": {
- "jsonpath": "bin/jsonpath-cli.js",
- "jsonpath-plus": "bin/jsonpath-cli.js"
- },
- "engines": {
- "node": ">=18.0.0"
- }
- },
"node_modules/jsonwebtoken": {
"version": "9.0.2",
"resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz",
@@ -7617,14 +7259,14 @@
}
},
"node_modules/juice": {
- "version": "11.0.1",
- "resolved": "https://registry.npmjs.org/juice/-/juice-11.0.1.tgz",
- "integrity": "sha512-R3KLud4l/sN9AMmFZs0QY7cugGSiKvPhGyIsufCV5nJ0MjSlngUE7k80TmFeK9I62wOXrjWBtYA1knVs2OkF8w==",
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/juice/-/juice-11.0.3.tgz",
+ "integrity": "sha512-VYjPg4WylyWyLPnSiUsJ9tnnGhRZF0vn0YD8WWwaI8FhP9+1UdRMyRDbvqPOH/nBotmLKOc+FI+Oma6FwVWfSw==",
"license": "MIT",
"dependencies": {
- "cheerio": "^1.0.0",
+ "cheerio": "1.0.0",
"commander": "^12.1.0",
- "entities": "^4.5.0",
+ "entities": "^7.0.0",
"mensch": "^0.3.4",
"slick": "^1.12.2",
"web-resource-inliner": "^7.0.0"
@@ -7636,6 +7278,18 @@
"node": ">=18.17"
}
},
+ "node_modules/juice/node_modules/entities": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.0.tgz",
+ "integrity": "sha512-FDWG5cmEYf2Z00IkYRhbFrwIwvdFKH07uV8dvNy0omp/Qb1xcyCWp2UDtcwJF4QZZvk0sLudP6/hAu42TaqVhQ==",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
"node_modules/jwa": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz",
@@ -7684,15 +7338,6 @@
"json-buffer": "3.0.1"
}
},
- "node_modules/koalas": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/koalas/-/koalas-1.0.2.tgz",
- "integrity": "sha512-RYhBbYaTTTHId3l6fnMZc3eGQNW6FVCqMG6AMwA5I1Mafr6AflaXeoi6x3xQuATRotGYRLk6+1ELZH4dstFNOA==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/kuler": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz",
@@ -7886,12 +7531,6 @@
"integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==",
"license": "MIT"
},
- "node_modules/lodash.sortby": {
- "version": "4.7.0",
- "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
- "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==",
- "license": "MIT"
- },
"node_modules/logform": {
"version": "2.7.0",
"resolved": "https://registry.npmjs.org/logform/-/logform-2.7.0.tgz",
@@ -7913,7 +7552,8 @@
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz",
"integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==",
- "license": "Apache-2.0"
+ "license": "Apache-2.0",
+ "optional": true
},
"node_modules/loose-envify": {
"version": "1.4.0",
@@ -7935,15 +7575,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/lru-cache": {
- "version": "7.18.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz",
- "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==",
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
"node_modules/lru-memoizer": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/lru-memoizer/-/lru-memoizer-2.3.0.tgz",
@@ -8146,12 +7777,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/module-details-from-path": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.4.tgz",
- "integrity": "sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==",
- "license": "MIT"
- },
"node_modules/moment": {
"version": "2.30.1",
"resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
@@ -8228,15 +7853,6 @@
"node": ">= 6.0.0"
}
},
- "node_modules/mutexify": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/mutexify/-/mutexify-1.4.0.tgz",
- "integrity": "sha512-pbYSsOrSB/AKN5h/WzzLRMFgZhClWccf2XIB4RSMC8JbquiB0e0/SH5AIfdQMdyHmYtv4seU7yV/TvAwPLJ1Yg==",
- "license": "MIT",
- "dependencies": {
- "queue-tick": "^1.0.0"
- }
- },
"node_modules/nan": {
"version": "2.22.2",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.22.2.tgz",
@@ -8285,12 +7901,6 @@
"integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==",
"license": "MIT"
},
- "node_modules/node-addon-api": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz",
- "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==",
- "license": "MIT"
- },
"node_modules/node-eta": {
"version": "0.9.0",
"resolved": "https://registry.npmjs.org/node-eta/-/node-eta-0.9.0.tgz",
@@ -8326,17 +7936,6 @@
"node": ">= 6.13.0"
}
},
- "node_modules/node-gyp-build": {
- "version": "3.9.0",
- "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-3.9.0.tgz",
- "integrity": "sha512-zLcTg6P4AbcHPq465ZMFNXx7XpKKJh+7kkN699NiQWisR2uWYOWNWqRHAmbnmKiL4e9aLSlmy5U7rEMUXV59+A==",
- "license": "MIT",
- "bin": {
- "node-gyp-build": "bin.js",
- "node-gyp-build-optional": "optional.js",
- "node-gyp-build-test": "build-test.js"
- }
- },
"node_modules/node-gyp-build-optional-packages": {
"version": "5.2.2",
"resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.2.2.tgz",
@@ -8555,15 +8154,6 @@
"fn.name": "1.x.x"
}
},
- "node_modules/opentracing": {
- "version": "0.14.7",
- "resolved": "https://registry.npmjs.org/opentracing/-/opentracing-0.14.7.tgz",
- "integrity": "sha512-vz9iS7MJ5+Bp1URw8Khvdyw1H/hGvzHWlKQ7eRrQojSCDL1/SrWfrY9QebLw97n2deyRtzHRC3MkQfVNUCo91Q==",
- "license": "Apache-2.0",
- "engines": {
- "node": ">=0.10"
- }
- },
"node_modules/optionator": {
"version": "0.9.4",
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
@@ -8853,12 +8443,6 @@
"node": "^10 || ^12 || >=14"
}
},
- "node_modules/pprof-format": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/pprof-format/-/pprof-format-2.1.0.tgz",
- "integrity": "sha512-0+G5bHH0RNr8E5hoZo/zJYsL92MhkZjwrHp3O2IxmY8RJL9ooKeuZ8Tm0ZNBw5sGZ9TiM71sthTjWoR2Vf5/xw==",
- "license": "MIT"
- },
"node_modules/prelude-ls": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
@@ -8953,6 +8537,7 @@
"integrity": "sha512-sildjKwVqOI2kmFDiXQ6aEB0fjYTafpEvIBs8tOR8qI4spuL9OPROLVu2qZqi/xgCfsHIwVqlaF8JBjWFHnKbw==",
"hasInstallScript": true,
"license": "BSD-3-Clause",
+ "optional": true,
"dependencies": {
"@protobufjs/aspromise": "^1.1.2",
"@protobufjs/base64": "^1.1.2",
@@ -9044,12 +8629,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/queue-tick": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz",
- "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==",
- "license": "MIT"
- },
"node_modules/random-bytes": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz",
@@ -9266,6 +8845,7 @@
"resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz",
"integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==",
"license": "MIT",
+ "optional": true,
"engines": {
"node": ">= 4"
}
@@ -9285,12 +8865,6 @@
"node": ">=14"
}
},
- "node_modules/rfdc": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz",
- "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==",
- "license": "MIT"
- },
"node_modules/rimraf": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.0.1.tgz",
@@ -9557,12 +9131,6 @@
"integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==",
"license": "BSD-3-Clause"
},
- "node_modules/semifies": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/semifies/-/semifies-1.0.0.tgz",
- "integrity": "sha512-xXR3KGeoxTNWPD4aBvL5NUpMTT7WMANr3EWnaS190QVkY52lqqcVRD7Q05UVbBhiWDGWMlJEUam9m7uFFGVScw==",
- "license": "Apache-2.0"
- },
"node_modules/semver": {
"version": "7.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz",
@@ -9726,18 +9294,6 @@
"node": ">=8"
}
},
- "node_modules/shell-quote": {
- "version": "1.8.2",
- "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz",
- "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/side-channel": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
@@ -9829,23 +9385,14 @@
"url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/simple-swizzle": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
- "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
- "license": "MIT",
- "dependencies": {
- "is-arrayish": "^0.3.1"
- }
- },
"node_modules/skia-canvas": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/skia-canvas/-/skia-canvas-3.0.6.tgz",
- "integrity": "sha512-OehNQUz6Oucji41Rh82I5V9IqbTfaEqiD5ua+dnrZXymuQDEGOfUXH9JdgvsVEAD+VEdc3iJLQ4lKsSpV8AC5g==",
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/skia-canvas/-/skia-canvas-3.0.8.tgz",
+ "integrity": "sha512-FSYKxp8Ng2vOeeOBiyPhnn6ui6FirPJXMyjk4PKl8N/OWzVrkMawUgY9zubIWHMdYtyWFn0gfX3QlRwg6HBmdg==",
"hasInstallScript": true,
"license": "MIT",
"dependencies": {
- "detect-libc": "^2.0.4",
+ "detect-libc": "^2.1.1",
"follow-redirects": "^1.15.11",
"https-proxy-agent": "^7.0.6",
"string-split-by": "^1.0.0"
@@ -9861,14 +9408,14 @@
}
},
"node_modules/soap": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/soap/-/soap-1.3.0.tgz",
- "integrity": "sha512-NM5+yZBldy+799yk74HvFQYNuMNXkwKVlNEYPhb7ChLVZ3mZEWTpGTiX1k5b8NHHD8NfPzrQebHH5nEazFF5pQ==",
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/soap/-/soap-1.5.0.tgz",
+ "integrity": "sha512-cT3+rKhABIkR7VkG0rtVlctQgBiKflq66jIRvpfiSxPph0Kx/pXhRWmGpvQ22crvswOhVypU/Idr88xjD15gWA==",
"license": "MIT",
"dependencies": {
- "axios": "^1.11.0",
- "axios-ntlm": "^1.4.4",
- "debug": "^4.4.1",
+ "axios": "^1.12.2",
+ "axios-ntlm": "^1.4.6",
+ "debug": "^4.4.3",
"formidable": "^3.5.4",
"get-stream": "^6.0.1",
"lodash": "^4.17.21",
@@ -9973,15 +9520,6 @@
}
}
},
- "node_modules/source-map": {
- "version": "0.7.4",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
- "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">= 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",
@@ -10672,12 +10210,6 @@
"node": ">=14.0.0"
}
},
- "node_modules/tlhunter-sorted-set": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/tlhunter-sorted-set/-/tlhunter-sorted-set-0.1.0.tgz",
- "integrity": "sha512-eGYW4bjf1DtrHzUYxYfAcSytpOkA44zsr7G2n3PV7yOUR23vmkGe3LL4R+1jL9OsXtbsFOwe8XtbCrabeaEFnw==",
- "license": "MIT"
- },
"node_modules/toidentifier": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
@@ -10717,15 +10249,6 @@
"node": ">=0.6.x"
}
},
- "node_modules/ttl-set": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/ttl-set/-/ttl-set-1.0.0.tgz",
- "integrity": "sha512-2fuHn/UR+8Z9HK49r97+p2Ru1b5Eewg2QqPrU14BVCQ9QoyU3+vLLZk2WEiyZ9sgJh6W8G1cZr9I2NBLywAHrA==",
- "license": "MIT",
- "dependencies": {
- "fast-fifo": "^1.3.2"
- }
- },
"node_modules/tweetnacl": {
"version": "0.14.5",
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
@@ -10733,12 +10256,12 @@
"license": "Unlicense"
},
"node_modules/twilio": {
- "version": "5.9.0",
- "resolved": "https://registry.npmjs.org/twilio/-/twilio-5.9.0.tgz",
- "integrity": "sha512-Ij+xT9MZZSjP64lsy+x6vYsCCb5m2Db9KffkMXBrN3zWbG3rbkXxl+MZVVzrvpwEdSbQD0vMuin+TTlQ6kR6Xg==",
+ "version": "5.10.2",
+ "resolved": "https://registry.npmjs.org/twilio/-/twilio-5.10.2.tgz",
+ "integrity": "sha512-pkMdXK0PJHR0elu3GmaDlYt4DDWPkkmuJLVUQjnctehu01IgbAp+VZ2ctbUSh1anDuqKqimAIuMnW9xmKith6w==",
"license": "MIT",
"dependencies": {
- "axios": "^1.11.0",
+ "axios": "^1.12.0",
"dayjs": "^1.11.9",
"https-proxy-agent": "^5.0.0",
"jsonwebtoken": "^9.0.2",
@@ -11483,13 +11006,13 @@
}
},
"node_modules/winston": {
- "version": "3.17.0",
- "resolved": "https://registry.npmjs.org/winston/-/winston-3.17.0.tgz",
- "integrity": "sha512-DLiFIXYC5fMPxaRg832S6F5mJYvePtmO5G9v9IgUFPhXm9/GkXarH/TUrBAVzhTCzAj9anE/+GjrgXp/54nOgw==",
+ "version": "3.18.3",
+ "resolved": "https://registry.npmjs.org/winston/-/winston-3.18.3.tgz",
+ "integrity": "sha512-NoBZauFNNWENgsnC9YpgyYwOVrl2m58PpQ8lNHjV3kosGs7KJ7Npk9pCUE+WJlawVSe8mykWDKWFSVfs3QO9ww==",
"license": "MIT",
"dependencies": {
"@colors/colors": "^1.6.0",
- "@dabh/diagnostics": "^2.0.2",
+ "@dabh/diagnostics": "^2.0.8",
"async": "^3.2.3",
"is-stream": "^2.0.0",
"logform": "^2.7.0",
diff --git a/package.json b/package.json
index 62939ee0b..da73267c6 100644
--- a/package.json
+++ b/package.json
@@ -18,41 +18,40 @@
"job-totals-fixtures:local": "docker exec node-app /usr/bin/node /app/download-job-totals-fixtures.js"
},
"dependencies": {
- "@aws-sdk/client-cloudwatch-logs": "^3.882.0",
- "@aws-sdk/client-elasticache": "^3.882.0",
- "@aws-sdk/client-s3": "^3.882.0",
- "@aws-sdk/client-secrets-manager": "^3.882.0",
- "@aws-sdk/client-ses": "^3.882.0",
- "@aws-sdk/credential-provider-node": "^3.882.0",
- "@aws-sdk/lib-storage": "^3.882.0",
- "@aws-sdk/s3-request-presigner": "^3.882.0",
+ "@aws-sdk/client-cloudwatch-logs": "^3.901.0",
+ "@aws-sdk/client-elasticache": "^3.901.0",
+ "@aws-sdk/client-s3": "^3.901.0",
+ "@aws-sdk/client-secrets-manager": "^3.901.0",
+ "@aws-sdk/client-ses": "^3.901.0",
+ "@aws-sdk/credential-provider-node": "^3.901.0",
+ "@aws-sdk/lib-storage": "^3.903.0",
+ "@aws-sdk/s3-request-presigner": "^3.901.0",
"@opensearch-project/opensearch": "^2.13.0",
"@socket.io/admin-ui": "^0.5.1",
"@socket.io/redis-adapter": "^8.3.0",
"archiver": "^7.0.1",
"aws4": "^1.13.2",
- "axios": "^1.11.0",
+ "axios": "^1.12.2",
"axios-curlirize": "^2.0.0",
"better-queue": "^3.8.12",
- "bullmq": "^5.58.5",
+ "bullmq": "^5.61.0",
"chart.js": "^4.5.0",
"cloudinary": "^2.7.0",
"compression": "^1.8.1",
"cookie-parser": "^1.4.7",
"cors": "^2.8.5",
"crisp-status-reporter": "^1.2.2",
- "dd-trace": "^5.65.0",
"dinero.js": "^1.9.1",
- "dotenv": "^17.2.2",
+ "dotenv": "^17.2.3",
"express": "^4.21.1",
"firebase-admin": "^13.5.0",
"graphql": "^16.11.0",
"graphql-request": "^6.1.0",
"intuit-oauth": "^4.2.0",
- "ioredis": "^5.7.0",
+ "ioredis": "^5.8.1",
"json-2-csv": "^5.5.9",
"jsonwebtoken": "^9.0.2",
- "juice": "^11.0.1",
+ "juice": "^11.0.3",
"lodash": "^4.17.21",
"moment": "^2.30.1",
"moment-timezone": "^0.6.0",
@@ -63,22 +62,22 @@
"query-string": "7.1.3",
"recursive-diff": "^1.0.9",
"rimraf": "^6.0.1",
- "skia-canvas": "^3.0.6",
- "soap": "^1.3.0",
+ "skia-canvas": "^3.0.8",
+ "soap": "^1.5.0",
"socket.io": "^4.8.1",
"socket.io-adapter": "^2.5.5",
"ssh2-sftp-client": "^11.0.0",
- "twilio": "^5.9.0",
+ "twilio": "^5.10.2",
"uuid": "^11.1.0",
- "winston": "^3.17.0",
+ "winston": "^3.18.3",
"winston-cloudwatch": "^6.3.0",
"xml2js": "^0.6.2",
"xmlbuilder2": "^3.1.1",
"yazl": "^3.3.1"
},
"devDependencies": {
- "@eslint/js": "^9.35.0",
- "eslint": "^9.35.0",
+ "@eslint/js": "^9.37.0",
+ "eslint": "^9.37.0",
"eslint-plugin-react": "^7.37.5",
"globals": "^15.15.0",
"mock-require": "^3.0.3",
diff --git a/server.js b/server.js
index 1ddf2201a..06f2f067e 100644
--- a/server.js
+++ b/server.js
@@ -4,14 +4,14 @@ require("dotenv").config({
path: path.resolve(process.cwd(), `.env.${process.env.NODE_ENV || "development"}`)
});
-// Commented out due to stability issues
-if (process.env.NODE_ENV) {
- require("dd-trace").init({
- profiling: true,
- env: process.env.NODE_ENV,
- service: "bodyshop-api"
- });
-}
+// DATADOG TRACE Implemention (Uncomment to enable tracing, requires dd-trace package)
+// if (process.env.NODE_ENV) {
+// require("dd-trace").init({
+// profiling: true,
+// env: process.env.NODE_ENV,
+// service: "bodyshop-api"
+// });
+// }
const cors = require("cors");
const http = require("http");
diff --git a/server/accounting/qb-receivables-lines.js b/server/accounting/qb-receivables-lines.js
index a7ecc30ec..ff14936cd 100644
--- a/server/accounting/qb-receivables-lines.js
+++ b/server/accounting/qb-receivables-lines.js
@@ -919,16 +919,16 @@ exports.default = function ({ bodyshop, jobs_by_pk, qbo = false, items, taxCodes
FullName: responsibilityCenters.ttl_tax_adjustment?.accountitem
},
Desc: "Tax Adjustment",
- Quantity: 1,
+ //Quantity: 1,
Amount: Dinero(jobs_by_pk.job_totals.totals?.ttl_tax_adjustment).toFormat(DineroQbFormat),
- SalesTaxCodeRef: InstanceManager({
- imex: {
- FullName: "E"
- },
- rome: {
- FullName: bodyshop.md_responsibility_centers.taxes.itemexemptcode || "NON"
- }
- })
+ // SalesTaxCodeRef: InstanceManager({
+ // imex: {
+ // FullName: "E"
+ // },
+ // rome: {
+ // FullName: bodyshop.md_responsibility_centers.taxes.itemexemptcode || "NON"
+ // }
+ // })
});
}
}
diff --git a/server/data/analytics/documents.js b/server/data/analytics/documents.js
new file mode 100644
index 000000000..5c457e2ef
--- /dev/null
+++ b/server/data/analytics/documents.js
@@ -0,0 +1,37 @@
+const logger = require("../../utils/logger");
+const { client } = require('../../graphql-client/graphql-client');
+const { INSERT_MEDIA_ANALYTICS, GET_BODYSHOP_BY_ID } = require("../../graphql-client/queries");
+
+const documentAnalytics = async (req, res) => {
+ try {
+ const { data } = req.body;
+
+ //Check if the bodyshopid is real as a "security" measure
+ if (!data.bodyshopid) {
+ throw new Error("No bodyshopid provided in data");
+ }
+
+ const { bodyshops_by_pk } = await client.request(GET_BODYSHOP_BY_ID, {
+ id: data.bodyshopid
+ });
+
+ if (!bodyshops_by_pk) {
+ throw new Error("Invalid bodyshopid provided in data");
+ }
+
+ await client.request(INSERT_MEDIA_ANALYTICS, {
+ mediaObject: data
+ });
+
+ res.json({ status: "success" })
+ } catch (error) {
+ logger.log("document-analytics-error", "ERROR", req?.user?.email, null, {
+ error: error.message,
+ stack: error.stack
+ });
+ res.status(500).json({ error: error.message, stack: error.stack });
+ }
+};
+
+
+exports.default = documentAnalytics;
diff --git a/server/data/carfax-rps.js b/server/data/carfax-rps.js
index d6065df57..de267d7ac 100644
--- a/server/data/carfax-rps.js
+++ b/server/data/carfax-rps.js
@@ -277,6 +277,7 @@ const GenerateDetailLines = (line) => {
line_desc: line.line_desc ? line.line_desc.replace(NON_ASCII_REGEX, "") : null,
oem_partno: line.oem_partno ? line.oem_partno.replace(NON_ASCII_REGEX, "") : null,
alt_partno: line.alt_partno ? line.alt_partno.replace(NON_ASCII_REGEX, "") : null,
+ op_code: line.lbr_op || null,
op_code_desc: generateOpCodeDescription(line.lbr_op),
lbr_ty: generateLaborType(line.mod_lbr_ty),
lbr_hrs: line.mod_lb_hrs || 0,
diff --git a/server/data/carfax.js b/server/data/carfax.js
index f2ff0bac2..aaa7d0dde 100644
--- a/server/data/carfax.js
+++ b/server/data/carfax.js
@@ -336,6 +336,7 @@ const GenerateDetailLines = (line) => {
line_desc: line.line_desc ? line.line_desc.replace(NON_ASCII_REGEX, "") : null,
oem_partno: line.oem_partno ? line.oem_partno.replace(NON_ASCII_REGEX, "") : null,
alt_partno: line.alt_partno ? line.alt_partno.replace(NON_ASCII_REGEX, "") : null,
+ op_code: line.lbr_op || null,
op_code_desc: line.op_code_desc ? line.op_code_desc.replace(NON_ASCII_REGEX, "") : null,
lbr_ty: generateLaborType(line.mod_lbr_ty),
lbr_hrs: line.mod_lb_hrs || 0,
diff --git a/server/data/data.js b/server/data/data.js
index 0aa7f6e34..1706d78af 100644
--- a/server/data/data.js
+++ b/server/data/data.js
@@ -8,4 +8,5 @@ exports.podium = require("./podium").default;
exports.emsUpload = require("./emsUpload").default;
exports.carfax = require("./carfax").default;
exports.carfaxRps = require("./carfax-rps").default;
-exports.vehicletype = require("./vehicletype/vehicletype").default;
\ No newline at end of file
+exports.vehicletype = require("./vehicletype/vehicletype").default;
+exports.documentAnalytics = require("./analytics/documents").default;
\ No newline at end of file
diff --git a/server/email/sendemail.js b/server/email/sendemail.js
index 864031462..e39a2093c 100644
--- a/server/email/sendemail.js
+++ b/server/email/sendemail.js
@@ -47,11 +47,6 @@ const logEmail = async (req, email) => {
const sendServerEmail = async ({ subject, text, to = [] }) => {
if (process.env.NODE_ENV === undefined) return;
- let sentTo = ["support@imexsystems.ca"];
- if (to?.length) {
- sentTo = [...sentTo, ...to];
- }
-
try {
mailer.sendMail(
{
@@ -59,7 +54,7 @@ const sendServerEmail = async ({ subject, text, to = [] }) => {
imex: `ImEX Online API - ${process.env.NODE_ENV} `,
rome: `Rome Online API - ${process.env.NODE_ENV} `
}),
- to: sentTo,
+ to: ["support@imexsystems.ca", ...to],
subject: subject,
text: text,
ses: {
diff --git a/server/graphql-client/graphql-client.js b/server/graphql-client/graphql-client.js
index 2c42bf361..02eee5f5b 100644
--- a/server/graphql-client/graphql-client.js
+++ b/server/graphql-client/graphql-client.js
@@ -1,5 +1,3 @@
-const logger = require("../utils/logger");
-
const GraphQLClient = require("graphql-request").GraphQLClient;
//New bug introduced with Graphql Request.
@@ -14,17 +12,18 @@ const client = new GraphQLClient(process.env.GRAPHQL_ENDPOINT, {
});
const rpsClient =
- process.env.RPS_GRAPHQL_ENDPOINT && process.env.RPS_HASURA_ADMIN_SECRET ?
- new GraphQLClient(process.env.RPS_GRAPHQL_ENDPOINT, {
- headers: {
- "x-hasura-admin-secret": process.env.RPS_HASURA_ADMIN_SECRET
- }
- }) : null;
+ process.env.RPS_GRAPHQL_ENDPOINT && process.env.RPS_HASURA_ADMIN_SECRET
+ ? new GraphQLClient(process.env.RPS_GRAPHQL_ENDPOINT, {
+ headers: {
+ "x-hasura-admin-secret": process.env.RPS_HASURA_ADMIN_SECRET
+ }
+ })
+ : null;
if (!rpsClient) {
//System log to disable RPS functions
- logger.log(`RPS secrets are not set. Client is not configured.`, "WARN", "redis", "api", {
- });
+
+ console.log(`RPS secrets are not set. Client is not configured.`, "WARN", "redis", "api", {});
}
const unauthorizedClient = new GraphQLClient(process.env.GRAPHQL_ENDPOINT);
diff --git a/server/graphql-client/queries.js b/server/graphql-client/queries.js
index 3e29387bb..60a37eebd 100644
--- a/server/graphql-client/queries.js
+++ b/server/graphql-client/queries.js
@@ -904,6 +904,7 @@ exports.CARFAX_QUERY = `query CARFAX_EXPORT($start: timestamptz, $bodyshopid: uu
line_desc
mod_lb_hrs
mod_lbr_ty
+ lbr_op
oem_partno
op_code_desc
part_type
@@ -2901,6 +2902,7 @@ exports.GET_BODYSHOP_BY_ID = `
intellipay_config
state
notification_followers
+ timezone
}
}
`;
@@ -2992,6 +2994,7 @@ query GET_JOBID_BY_MERCHANTID_RONUMBER($merchantID: String!, $roNumber: String!)
id
intellipay_config
email
+ timezone
}
}
}`;
@@ -3001,6 +3004,7 @@ query GET_BODYSHOP_BY_MERCHANTID($merchantID: String!) {
bodyshops(where: {intellipay_merchant_id: {_eq: $merchantID}}) {
id
email
+ timezone
}
}`;
@@ -3147,3 +3151,12 @@ exports.DELETE_PHONE_NUMBER_OPT_OUT = `
}
}
`;
+
+
+exports.INSERT_MEDIA_ANALYTICS = `
+mutation INSERT_MEDIA_ANALYTICS($mediaObject: media_analytics_insert_input!) {
+ insert_media_analytics_one(object: $mediaObject) {
+ id
+ }
+}
+`
\ No newline at end of file
diff --git a/server/integrations/partsManagement/endpoints/partsManagementProvisioning.js b/server/integrations/partsManagement/endpoints/partsManagementProvisioning.js
index 857b2d6c1..66ef19b59 100644
--- a/server/integrations/partsManagement/endpoints/partsManagementProvisioning.js
+++ b/server/integrations/partsManagement/endpoints/partsManagementProvisioning.js
@@ -7,7 +7,8 @@ const {
CREATE_SHOP,
DELETE_VENDORS_BY_SHOP,
DELETE_SHOP,
- CREATE_USER
+ CREATE_USER,
+ UPDATE_BODYSHOP_BY_ID
} = require("../partsManagement.queries");
/**
@@ -131,6 +132,61 @@ const insertUserAssociation = async (uid, email, shopId) => {
return resp.insert_users_one;
};
+/**
+ * PATCH handler for updating bodyshop fields.
+ * Allows patching: shopname, address1, address2, city, state, zip_post, country, email, timezone, phone, logo_img_path
+ * @param req
+ * @param res
+ * @returns {Promise}
+ */
+const patchPartsManagementProvisioning = async (req, res) => {
+ const { id } = req.params;
+ const allowedFields = [
+ "shopname",
+ "address1",
+ "address2",
+ "city",
+ "state",
+ "zip_post",
+ "country",
+ "email",
+ "timezone",
+ "phone",
+ "logo_img_path"
+ ];
+ const updateFields = {};
+ for (const field of allowedFields) {
+ if (req.body[field] !== undefined) {
+ updateFields[field] = req.body[field];
+ }
+ }
+ if (Object.keys(updateFields).length === 0) {
+ return res.status(400).json({ error: "No valid fields provided for update." });
+ }
+ // Check that the bodyshop has an external_shop_id before allowing patch
+ try {
+ // Fetch the bodyshop by id
+ const shopResp = await client.request(
+ `query GetBodyshop($id: uuid!) { bodyshops_by_pk(id: $id) { id external_shop_id } }`,
+ { id }
+ );
+ if (!shopResp.bodyshops_by_pk?.external_shop_id) {
+ return res.status(400).json({ error: "Cannot patch: bodyshop does not have an external_shop_id." });
+ }
+ } catch (err) {
+ return res.status(500).json({ error: "Failed to validate bodyshop external_shop_id.", detail: err });
+ }
+ try {
+ const resp = await client.request(UPDATE_BODYSHOP_BY_ID, { id, fields: updateFields });
+ if (!resp.update_bodyshops_by_pk) {
+ return res.status(404).json({ error: "Bodyshop not found." });
+ }
+ return res.json(resp.update_bodyshops_by_pk);
+ } catch (err) {
+ return res.status(500).json({ error: "Failed to update bodyshop.", detail: err });
+ }
+};
+
/**
* Handles provisioning a new shop for parts management.
* @param req
@@ -259,4 +315,4 @@ const partsManagementProvisioning = async (req, res) => {
}
};
-module.exports = partsManagementProvisioning;
+module.exports = { partsManagementProvisioning, patchPartsManagementProvisioning };
diff --git a/server/integrations/partsManagement/partsManagement.queries.js b/server/integrations/partsManagement/partsManagement.queries.js
index 6b73fcf41..4fef5d702 100644
--- a/server/integrations/partsManagement/partsManagement.queries.js
+++ b/server/integrations/partsManagement/partsManagement.queries.js
@@ -298,6 +298,25 @@ const UPDATE_JOBLINE_BY_PK = `
}
`;
+const UPDATE_BODYSHOP_BY_ID = `
+ mutation UpdateBodyshopById($id: uuid!, $fields: bodyshops_set_input!) {
+ update_bodyshops_by_pk(pk_columns: { id: $id }, _set: $fields) {
+ id
+ shopname
+ address1
+ address2
+ city
+ state
+ zip_post
+ country
+ email
+ timezone
+ phone
+ logo_img_path
+ }
+ }
+`;
+
module.exports = {
GET_BODYSHOP_STATUS,
GET_VEHICLE_BY_SHOP_VIN,
@@ -329,5 +348,6 @@ module.exports = {
DELETE_PARTS_ORDERS_BY_JOB_IDS,
UPSERT_JOBLINES,
GET_JOBLINE_IDS_BY_JOBID_UNQSEQ,
- UPDATE_JOBLINE_BY_PK
+ UPDATE_JOBLINE_BY_PK,
+ UPDATE_BODYSHOP_BY_ID
};
diff --git a/server/intellipay/lib/handleCommentBasedPayment.js b/server/intellipay/lib/handleCommentBasedPayment.js
index 535e92ab8..fd2ff3ef8 100644
--- a/server/intellipay/lib/handleCommentBasedPayment.js
+++ b/server/intellipay/lib/handleCommentBasedPayment.js
@@ -48,7 +48,9 @@ const handleCommentBasedPayment = async (values, decodedComment, logger, logMeta
payer: "Customer",
type: getPaymentType(ipMapping, values.cardtype),
jobid: p.jobid,
- date: moment(Date.now()),
+ date: moment()
+ .tz(bodyshop?.bodyshops_by_pk?.timezone ?? "UTC")
+ .format("YYYY-MM-DD"),
payment_responses: {
data: {
amount: values.total,
diff --git a/server/intellipay/lib/handleInvoiceBasedPayment.js b/server/intellipay/lib/handleInvoiceBasedPayment.js
index d5fc97b9c..34a1a5e8d 100644
--- a/server/intellipay/lib/handleInvoiceBasedPayment.js
+++ b/server/intellipay/lib/handleInvoiceBasedPayment.js
@@ -97,7 +97,9 @@ const handleInvoiceBasedPayment = async (values, logger, logMeta, res) => {
payer: "Customer",
type: getPaymentType(ipMapping, values.cardtype),
jobid: job.id,
- date: moment(Date.now())
+ date: moment()
+ .tz(bodyshop?.timezone ?? "UTC")
+ .format("YYYY-MM-DD")
}
});
diff --git a/server/job/job-costing.js b/server/job/job-costing.js
index d1fe8b3d7..2e8d7d417 100644
--- a/server/job/job-costing.js
+++ b/server/job/job-costing.js
@@ -405,7 +405,7 @@ function GenerateCostingData(job) {
) {
const discountRate =
Math.abs(job.parts_tax_rates[val.part_type.toUpperCase()].prt_discp) > 1
- ? job.parts_tax_rates_rates[val.part_type.toUpperCase()].prt_discp
+ ? job.parts_tax_rates[val.part_type.toUpperCase()].prt_discp
: job.parts_tax_rates[val.part_type.toUpperCase()].prt_discp * 100;
const disc = partsAmount.percentage(discountRate).multiply(-1);
partsAmount = partsAmount.add(disc);
diff --git a/server/job/job-totals-USA.js b/server/job/job-totals-USA.js
index dab44bf56..d1ff5abe6 100644
--- a/server/job/job-totals-USA.js
+++ b/server/job/job-totals-USA.js
@@ -24,7 +24,7 @@ exports.totalsSsu = async function (req, res) {
const BearerToken = req.BearerToken;
const client = req.userGraphQLClient;
- logger.log("job-totals-ssu-USA", "DEBUG", req?.user?.email, id);
+ logger.log("job-totals-ssu-USA", "debug", req?.user?.email, id);
try {
const job = await client.setHeaders({ Authorization: BearerToken }).request(queries.GET_JOB_BY_PK, {
@@ -49,7 +49,7 @@ exports.totalsSsu = async function (req, res) {
res.status(200).send();
} catch (error) {
- logger.log("job-totals-ssu-USA-error", "ERROR", req?.user?.email, id, {
+ logger.log("job-totals-ssu-USA-error", "error", req?.user?.email, id, {
jobid: id,
error: error.message,
stack: error.stack
@@ -95,7 +95,7 @@ async function TotalsServerSide(req, res) {
ret.totals.subtotal = ret.totals.subtotal.add(ret.totals.ttl_adjustment);
ret.totals.total_repairs = ret.totals.total_repairs.add(ret.totals.ttl_adjustment);
ret.totals.net_repairs = ret.totals.net_repairs.add(ret.totals.ttl_adjustment);
- logger.log("job-totals-USA-ttl-adj", "DEBUG", null, job.id, {
+ logger.log("job-totals-USA-ttl-adj", "debug", null, job.id, {
adjAmount: ttlDifference
});
}
@@ -116,7 +116,7 @@ async function TotalsServerSide(req, res) {
ret.totals.ttl_tax_adjustment = Dinero({ amount: Math.round(ttlTaxDifference * 100) });
ret.totals.total_repairs = ret.totals.total_repairs.add(ret.totals.ttl_tax_adjustment);
ret.totals.net_repairs = ret.totals.net_repairs.add(ret.totals.ttl_tax_adjustment);
- logger.log("job-totals-USA-ttl-tax-adj", "DEBUG", null, job.id, {
+ logger.log("job-totals-USA-ttl-tax-adj", "debug", null, job.id, {
adjAmount: ttlTaxDifference
});
}
@@ -124,7 +124,7 @@ async function TotalsServerSide(req, res) {
return ret;
} catch (error) {
- logger.log("job-totals-ssu-USA-error", "ERROR", req.user?.email, job.id, {
+ logger.log("job-totals-ssu-USA-error", "error", req.user?.email, job.id, {
jobid: job.id,
error: error.message,
stack: error.stack
@@ -142,7 +142,7 @@ async function Totals(req, res) {
const logger = req.logger;
const client = req.userGraphQLClient;
- logger.log("job-totals-ssu-USA", "DEBUG", req.user.email, job.id, {
+ logger.log("job-totals-ssu-USA", "debug", req.user.email, job.id, {
jobid: job.id,
id: id
});
@@ -159,7 +159,7 @@ async function Totals(req, res) {
res.status(200).json(ret);
} catch (error) {
- logger.log("job-totals-ssu-USA-error", "ERROR", req.user.email, job.id, {
+ logger.log("job-totals-ssu-USA-error", "error", req.user.email, job.id, {
jobid: job.id,
error: error.message,
stack: error.stack
@@ -240,7 +240,7 @@ async function AtsAdjustmentsIfRequired({ job, client, user }) {
job.joblines.push(newAtsLine);
}
} catch (error) {
- logger.log("job-totals-ssu-ats-error", "ERROR", user?.email, job.id, {
+ logger.log("job-totals-ssu-ats-error", "error", user?.email, job.id, {
jobid: job.id,
error: error.message,
stack: error.stack
@@ -258,7 +258,7 @@ async function AtsAdjustmentsIfRequired({ job, client, user }) {
job.joblines[atsLineIndex].act_price = atsAmount;
}
} catch (error) {
- logger.log("job-totals-ssu-ats-error", "ERROR", user?.email, job.id, {
+ logger.log("job-totals-ssu-ats-error", "error", user?.email, job.id, {
jobid: job.id,
atsLineIndex: atsLineIndex,
atsAmount: atsAmount,
@@ -381,7 +381,7 @@ async function CalculateRatesTotals({ job, client }) {
if (item.mod_lbr_ty) {
//Check to see if it has 0 hours and a price instead.
- if (item.lbr_op === "OP14" && item.act_price > 0 && (!item.part_type || item.mod_lb_hrs === 0)) {
+ if (item.lbr_op === "OP14" && item.act_price > 0 && (!item.part_type || item.mod_lb_hrs === 0) && !IsAdditionalCost(item)) {
//Scenario where SGI may pay out hours using a part price.
if (!ret[item.mod_lbr_ty.toLowerCase()].total) {
ret[item.mod_lbr_ty.toLowerCase()].base = Dinero();
@@ -1055,7 +1055,7 @@ function CalculateTaxesTotals(job, otherTotals) {
}
}
} catch (error) {
- logger.log("job-totals-USA Key with issue", "error", null, job.id, {
+ logger.log("job-totals-USA Key with issue", "warn", null, job.id, {
key: key,
error: error.message,
stack: error.stack
diff --git a/server/job/job-totals.js b/server/job/job-totals.js
index 5f28ac067..c11d8d7de 100644
--- a/server/job/job-totals.js
+++ b/server/job/job-totals.js
@@ -23,7 +23,7 @@ exports.totalsSsu = async function (req, res) {
const BearerToken = req.BearerToken;
const client = req.userGraphQLClient;
- logger.log("job-totals-ssu", "DEBUG", req.user.email, id, null);
+ logger.log("job-totals-ssu", "debug", req.user.email, id, null);
try {
const job = await client.setHeaders({ Authorization: BearerToken }).request(queries.GET_JOB_BY_PK, {
@@ -49,7 +49,7 @@ exports.totalsSsu = async function (req, res) {
res.status(200).send();
} catch (error) {
- logger.log("job-totals-ssu-error", "ERROR", req.user.email, id, {
+ logger.log("job-totals-ssu-error", "error", req.user.email, id, {
jobid: id,
error: error.message,
stack: error.stack
@@ -73,7 +73,7 @@ async function TotalsServerSide(req, res) {
return ret;
} catch (error) {
- logger.log("job-totals-ssu-error", "ERROR", req?.user?.email, job.id, {
+ logger.log("job-totals-ssu-error", "error", req?.user?.email, job.id, {
jobid: job.id,
error: error.message,
stack: error.stack
@@ -91,7 +91,7 @@ async function Totals(req, res) {
const logger = req.logger;
const client = req.userGraphQLClient;
- logger.log("job-totals-ssu", "DEBUG", req.user.email, job.id, {
+ logger.log("job-totals-ssu", "debug", req.user.email, job.id, {
jobid: job.id,
id: id
});
@@ -108,7 +108,7 @@ async function Totals(req, res) {
res.status(200).json(ret);
} catch (error) {
- logger.log("job-totals-ssu-error", "ERROR", req.user.email, job.id, {
+ logger.log("job-totals-ssu-error", "error", req.user.email, job.id, {
jobid: job.id,
error: error.message,
stack: error.stack
@@ -189,7 +189,7 @@ async function AtsAdjustmentsIfRequired({ job, client, user }) {
job.joblines.push(newAtsLine);
}
} catch (error) {
- logger.log("job-totals-ssu-ats-error", "ERROR", user?.email, job.id, {
+ logger.log("job-totals-ssu-ats-error", "error", user?.email, job.id, {
jobid: job.id,
error: error.message,
stack: error.stack
@@ -207,7 +207,7 @@ async function AtsAdjustmentsIfRequired({ job, client, user }) {
job.joblines[atsLineIndex].act_price = atsAmount;
}
} catch (error) {
- logger.log("job-totals-ssu-ats-error", "ERROR", user?.email, job.id, {
+ logger.log("job-totals-ssu-ats-error", "error", user?.email, job.id, {
jobid: job.id,
atsLineIndex: atsLineIndex,
atsAmount: atsAmount,
@@ -315,7 +315,7 @@ function CalculateRatesTotals(ratesList) {
if (item.mod_lbr_ty) {
//Check to see if it has 0 hours and a price instead.
//Extend for when there are hours and a price.
- if (item.lbr_op === "OP14" && item.act_price > 0 && (!item.part_type || item.mod_lb_hrs === 0)) {
+ if (item.lbr_op === "OP14" && item.act_price > 0 && (!item.part_type || item.mod_lb_hrs === 0) && !IsAdditionalCost(item)) {
//Scenario where SGI may pay out hours using a part price.
if (!ret[item.mod_lbr_ty.toLowerCase()].total) {
ret[item.mod_lbr_ty.toLowerCase()].total = Dinero();
diff --git a/server/job/patchJobStatus.js b/server/job/patchJobStatus.js
new file mode 100644
index 000000000..b3d3b2e38
--- /dev/null
+++ b/server/job/patchJobStatus.js
@@ -0,0 +1,40 @@
+const client = require("../graphql-client/graphql-client").client;
+const { UPDATE_JOB_BY_ID } = require("../integrations/partsManagement/partsManagement.queries");
+
+/**
+ * PATCH handler to update job status (parts management only)
+ * @param req
+ * @param res
+ * @returns {Promise}
+ */
+module.exports = async (req, res) => {
+ const { id } = req.params;
+ const { status } = req.body;
+ if (!status) {
+ return res.status(400).json({ error: "Missing required field: status" });
+ }
+ try {
+ // Fetch job to get shopid
+ const jobResp = await client.request(`query GetJob($id: uuid!) { jobs_by_pk(id: $id) { id shopid } }`, { id });
+ const job = jobResp.jobs_by_pk;
+ if (!job) {
+ return res.status(404).json({ error: "Job not found" });
+ }
+ // Fetch bodyshop to check external_shop_id
+ const shopResp = await client.request(
+ `query GetBodyshop($id: uuid!) { bodyshops_by_pk(id: $id) { id external_shop_id } }`,
+ { id: job.shopid }
+ );
+ if (!shopResp.bodyshops_by_pk || !shopResp.bodyshops_by_pk.external_shop_id) {
+ return res.status(400).json({ error: "Cannot patch: parent bodyshop does not have an external_shop_id." });
+ }
+ // Update job status
+ const updateResp = await client.request(UPDATE_JOB_BY_ID, { id, job: { status } });
+ if (!updateResp.update_jobs_by_pk) {
+ return res.status(404).json({ error: "Job not found after update" });
+ }
+ return res.json(updateResp.update_jobs_by_pk);
+ } catch (err) {
+ return res.status(500).json({ error: "Failed to update job status.", detail: err });
+ }
+};
diff --git a/server/notifications/queues/appQueue.js b/server/notifications/queues/appQueue.js
index 1f198698c..b376b2cf6 100644
--- a/server/notifications/queues/appQueue.js
+++ b/server/notifications/queues/appQueue.js
@@ -92,7 +92,7 @@ const loadAppQueue = async ({ pubClient, logger, redisHelpers, ioRedis }) => {
"consolidate-notifications",
{ jobId, recipients },
{
- jobId: `consolidate:${jobId}`,
+ jobId: `consolidate-${jobId}`,
delay: APP_CONSOLIDATION_DELAY,
attempts: 3,
backoff: LOCK_EXPIRATION
@@ -288,7 +288,7 @@ const dispatchAppsToQueue = async ({ appsToDispatch }) => {
await appQueue.add(
"add-notification",
{ jobId, bodyShopId, key, variables, recipients, body, jobRoNumber },
- { jobId: `${jobId}:${Date.now()}` }
+ { jobId: `${jobId}-${Date.now()}` }
);
devDebugLogger(`Added notification to queue for jobId ${jobId} with ${recipients.length} recipients`);
}
diff --git a/server/notifications/queues/emailQueue.js b/server/notifications/queues/emailQueue.js
index 7d965cb69..a5ad8a530 100644
--- a/server/notifications/queues/emailQueue.js
+++ b/server/notifications/queues/emailQueue.js
@@ -86,7 +86,7 @@ const loadEmailQueue = async ({ pubClient, logger }) => {
"consolidate-emails",
{ jobId, jobRoNumber, bodyShopName, bodyShopTimezone },
{
- jobId: `consolidate:${jobId}`,
+ jobId: `consolidate-${jobId}`,
delay: EMAIL_CONSOLIDATION_DELAY,
attempts: 3,
backoff: LOCK_EXPIRATION
@@ -252,7 +252,7 @@ const dispatchEmailsToQueue = async ({ emailsToDispatch, logger }) => {
await emailAddQueue.add(
"add-email-notification",
{ jobId, jobRoNumber, bodyShopName, bodyShopTimezone, body, recipients },
- { jobId: `${jobId}:${Date.now()}` }
+ { jobId: `${jobId}-${Date.now()}` }
);
devDebugLogger(`Added email notification to queue for jobId ${jobId} with ${recipients.length} recipients`);
}
diff --git a/server/routes/intergrationRoutes.js b/server/routes/intergrationRoutes.js
index 50f870a9a..efe4b78ee 100644
--- a/server/routes/intergrationRoutes.js
+++ b/server/routes/intergrationRoutes.js
@@ -19,11 +19,15 @@ if (typeof VSSTA_INTEGRATION_SECRET === "string" && VSSTA_INTEGRATION_SECRET.len
if (typeof PARTS_MANAGEMENT_INTEGRATION_SECRET === "string" && PARTS_MANAGEMENT_INTEGRATION_SECRET.length > 0) {
const XML_BODY_LIMIT = "10mb"; // Set a limit for XML body size
- const partsManagementProvisioning = require("../integrations/partsManagement/endpoints/partsManagementProvisioning");
+ const {
+ partsManagementProvisioning,
+ patchPartsManagementProvisioning
+ } = require("../integrations/partsManagement/endpoints/partsManagementProvisioning");
const partsManagementDeprovisioning = require("../integrations/partsManagement/endpoints/partsManagementDeprovisioning");
const partsManagementIntegrationMiddleware = require("../middleware/partsManagementIntegrationMiddleware");
const partsManagementVehicleDamageEstimateAddRq = require("../integrations/partsManagement/endpoints/vehicleDamageEstimateAddRq");
const partsManagementVehicleDamageEstimateChqRq = require("../integrations/partsManagement/endpoints/vehicleDamageEstimateChgRq");
+ const patchJobStatus = require("../job/patchJobStatus");
/**
* Route to handle Vehicle Damage Estimate Add Request
@@ -55,6 +59,20 @@ if (typeof PARTS_MANAGEMENT_INTEGRATION_SECRET === "string" && PARTS_MANAGEMENT_
* Route to handle Parts Management Provisioning
*/
router.post("/parts-management/provision", partsManagementIntegrationMiddleware, partsManagementProvisioning);
+
+ /**
+ * PATCH route to update Parts Management Provisioning info
+ */
+ router.patch(
+ "/parts-management/provision/:id",
+ partsManagementIntegrationMiddleware,
+ patchPartsManagementProvisioning
+ );
+
+ /**
+ * PATCH route to update job status (parts management only)
+ */
+ router.patch("/parts-management/job/:id/status", partsManagementIntegrationMiddleware, patchJobStatus);
} else {
logger.logger.warn("PARTS_MANAGEMENT_INTEGRATION_SECRET is not set — skipping /parts-management/provision route");
}
diff --git a/server/routes/miscellaneousRoutes.js b/server/routes/miscellaneousRoutes.js
index 0f783146f..df6c3448a 100644
--- a/server/routes/miscellaneousRoutes.js
+++ b/server/routes/miscellaneousRoutes.js
@@ -146,7 +146,7 @@ router.post("/bodyshop-cache", eventAuthorizationMiddleware, updateBodyshopCache
// Estimate Scrubber Vehicle Type
router.post("/es/vehicletype", data.vehicletype);
-
+router.post("/analytics/documents", data.documentAnalytics);
// Health Check for docker-compose-cluster load balancer, only available in development
if (process.env.NODE_ENV === "development") {
router.get("/health", (req, res) => {