From 9b85d15ff1c89e855f1349b37c3fa3e63a057ac4 Mon Sep 17 00:00:00 2001 From: Dave Richer Date: Mon, 9 Jun 2025 11:18:08 -0400 Subject: [PATCH 1/3] feature/IO-3258-Shop-User-Vendor-Creation: bump deps --- client/package-lock.json | 119 ++++--- client/package.json | 4 +- package-lock.json | 661 ++++++++++++++++++++------------------- package.json | 20 +- 4 files changed, 423 insertions(+), 381 deletions(-) diff --git a/client/package-lock.json b/client/package-lock.json index 9905f4fec..189f1fbe3 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -46,7 +46,7 @@ "logrocket": "^9.0.2", "markerjs2": "^2.32.4", "memoize-one": "^6.0.0", - "normalize-url": "^8.0.1", + "normalize-url": "^8.0.2", "object-hash": "^3.0.0", "phone": "^3.1.59", "prop-types": "^15.8.1", @@ -121,7 +121,7 @@ "vite-plugin-node-polyfills": "^0.23.0", "vite-plugin-pwa": "^1.0.0", "vite-plugin-style-import": "^2.0.0", - "vitest": "^3.2.2", + "vitest": "^3.2.3", "workbox-window": "^7.3.0" }, "engines": { @@ -5843,15 +5843,15 @@ } }, "node_modules/@vitest/expect": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.2.tgz", - "integrity": "sha512-ipHw0z669vEMjzz3xQE8nJX1s0rQIb7oEl4jjl35qWTwm/KIHERIg/p/zORrjAaZKXfsv7IybcNGHwhOOAPMwQ==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.3.tgz", + "integrity": "sha512-W2RH2TPWVHA1o7UmaFKISPvdicFJH+mjykctJFoAkUw+SPTJTGjUNdKscFBrqM7IPnCVu6zihtKYa7TkZS1dkQ==", "dev": true, "license": "MIT", "dependencies": { "@types/chai": "^5.2.2", - "@vitest/spy": "3.2.2", - "@vitest/utils": "3.2.2", + "@vitest/spy": "3.2.3", + "@vitest/utils": "3.2.3", "chai": "^5.2.0", "tinyrainbow": "^2.0.0" }, @@ -5860,13 +5860,13 @@ } }, "node_modules/@vitest/mocker": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.2.tgz", - "integrity": "sha512-jKojcaRyIYpDEf+s7/dD3LJt53c0dPfp5zCPXz9H/kcGrSlovU/t1yEaNzM9oFME3dcd4ULwRI/x0Po1Zf+LTw==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.3.tgz", + "integrity": "sha512-cP6fIun+Zx8he4rbWvi+Oya6goKQDZK+Yq4hhlggwQBbrlOQ4qtZ+G4nxB6ZnzI9lyIb+JnvyiJnPC2AGbKSPA==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/spy": "3.2.2", + "@vitest/spy": "3.2.3", "estree-walker": "^3.0.3", "magic-string": "^0.30.17" }, @@ -5907,9 +5907,9 @@ } }, "node_modules/@vitest/pretty-format": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.2.tgz", - "integrity": "sha512-FY4o4U1UDhO9KMd2Wee5vumwcaHw7Vg4V7yR4Oq6uK34nhEJOmdRYrk3ClburPRUA09lXD/oXWZ8y/Sdma0aUQ==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.3.tgz", + "integrity": "sha512-yFglXGkr9hW/yEXngO+IKMhP0jxyFw2/qys/CK4fFUZnSltD+MU7dVYGrH8rvPcK/O6feXQA+EU33gjaBBbAng==", "dev": true, "license": "MIT", "dependencies": { @@ -5920,14 +5920,15 @@ } }, "node_modules/@vitest/runner": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.2.tgz", - "integrity": "sha512-GYcHcaS3ejGRZYed2GAkvsjBeXIEerDKdX3orQrBJqLRiea4NSS9qvn9Nxmuy1IwIB+EjFOaxXnX79l8HFaBwg==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.3.tgz", + "integrity": "sha512-83HWYisT3IpMaU9LN+VN+/nLHVBCSIUKJzGxC5RWUOsK1h3USg7ojL+UXQR3b4o4UBIWCYdD2fxuzM7PQQ1u8w==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/utils": "3.2.2", - "pathe": "^2.0.3" + "@vitest/utils": "3.2.3", + "pathe": "^2.0.3", + "strip-literal": "^3.0.0" }, "funding": { "url": "https://opencollective.com/vitest" @@ -5941,13 +5942,13 @@ "license": "MIT" }, "node_modules/@vitest/snapshot": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.2.tgz", - "integrity": "sha512-aMEI2XFlR1aNECbBs5C5IZopfi5Lb8QJZGGpzS8ZUHML5La5wCbrbhLOVSME68qwpT05ROEEOAZPRXFpxZV2wA==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.3.tgz", + "integrity": "sha512-9gIVWx2+tysDqUmmM1L0hwadyumqssOL1r8KJipwLx5JVYyxvVRfxvMq7DaWbZZsCqZnu/dZedaZQh4iYTtneA==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "3.2.2", + "@vitest/pretty-format": "3.2.3", "magic-string": "^0.30.17", "pathe": "^2.0.3" }, @@ -5973,9 +5974,9 @@ "license": "MIT" }, "node_modules/@vitest/spy": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.2.tgz", - "integrity": "sha512-6Utxlx3o7pcTxvp0u8kUiXtRFScMrUg28KjB3R2hon7w4YqOFAEA9QwzPVVS1QNL3smo4xRNOpNZClRVfpMcYg==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.3.tgz", + "integrity": "sha512-JHu9Wl+7bf6FEejTCREy+DmgWe+rQKbK+y32C/k5f4TBIAlijhJbRBIRIOCEpVevgRsCQR2iHRUH2/qKVM/plw==", "dev": true, "license": "MIT", "dependencies": { @@ -5986,13 +5987,13 @@ } }, "node_modules/@vitest/utils": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.2.tgz", - "integrity": "sha512-qJYMllrWpF/OYfWHP32T31QCaLa3BAzT/n/8mNGhPdVcjY+JYazQFO1nsJvXU12Kp1xMpNY4AGuljPTNjQve6A==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.3.tgz", + "integrity": "sha512-4zFBCU5Pf+4Z6v+rwnZ1HU1yzOKKvDkMXZrymE2PBlbjKJRlrOxbvpfPSvJTGRIwGoahaOGvp+kbCoxifhzJ1Q==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "3.2.2", + "@vitest/pretty-format": "3.2.3", "loupe": "^3.1.3", "tinyrainbow": "^2.0.0" }, @@ -12707,9 +12708,9 @@ } }, "node_modules/normalize-url": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz", - "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.2.tgz", + "integrity": "sha512-Ee/R3SyN4BuynXcnTaekmaVdbDAEiNrHqjQIA37mHU8G9pf7aaAD4ZX3XjBLo6rsdcxA/gtkcNYZLt30ACgynw==", "license": "MIT", "engines": { "node": ">=14.16" @@ -16299,6 +16300,26 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/strip-literal": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.0.0.tgz", + "integrity": "sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==", + "dev": true, + "license": "MIT", + "dependencies": { + "js-tokens": "^9.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", + "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", + "dev": true, + "license": "MIT" + }, "node_modules/style-to-js": { "version": "1.1.16", "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.16.tgz", @@ -17576,9 +17597,9 @@ } }, "node_modules/vite-node": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.2.tgz", - "integrity": "sha512-Xj/jovjZvDXOq2FgLXu8NsY4uHUMWtzVmMC2LkCu9HWdr9Qu1Is5sanX3Z4jOFKdohfaWDnEJWp9pRP0vVpAcA==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.3.tgz", + "integrity": "sha512-gc8aAifGuDIpZHrPjuHyP4dpQmYXqWw7D1GmDnWeNWP654UEXzVfQ5IHPSK5HaHkwB/+p1atpYpSdw/2kOv8iQ==", "dev": true, "license": "MIT", "dependencies": { @@ -17774,20 +17795,20 @@ } }, "node_modules/vitest": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.2.tgz", - "integrity": "sha512-fyNn/Rp016Bt5qvY0OQvIUCwW2vnaEBLxP42PmKbNIoasSYjML+8xyeADOPvBe+Xfl/ubIw4og7Lt9jflRsCNw==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.3.tgz", + "integrity": "sha512-E6U2ZFXe3N/t4f5BwUaVCKRLHqUpk1CBWeMh78UT4VaTPH/2dyvH6ALl29JTovEPu9dVKr/K/J4PkXgrMbw4Ww==", "dev": true, "license": "MIT", "dependencies": { "@types/chai": "^5.2.2", - "@vitest/expect": "3.2.2", - "@vitest/mocker": "3.2.2", - "@vitest/pretty-format": "^3.2.2", - "@vitest/runner": "3.2.2", - "@vitest/snapshot": "3.2.2", - "@vitest/spy": "3.2.2", - "@vitest/utils": "3.2.2", + "@vitest/expect": "3.2.3", + "@vitest/mocker": "3.2.3", + "@vitest/pretty-format": "^3.2.3", + "@vitest/runner": "3.2.3", + "@vitest/snapshot": "3.2.3", + "@vitest/spy": "3.2.3", + "@vitest/utils": "3.2.3", "chai": "^5.2.0", "debug": "^4.4.1", "expect-type": "^1.2.1", @@ -17801,7 +17822,7 @@ "tinypool": "^1.1.0", "tinyrainbow": "^2.0.0", "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0", - "vite-node": "3.2.2", + "vite-node": "3.2.3", "why-is-node-running": "^2.3.0" }, "bin": { @@ -17817,8 +17838,8 @@ "@edge-runtime/vm": "*", "@types/debug": "^4.1.12", "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", - "@vitest/browser": "3.2.2", - "@vitest/ui": "3.2.2", + "@vitest/browser": "3.2.3", + "@vitest/ui": "3.2.3", "happy-dom": "*", "jsdom": "*" }, diff --git a/client/package.json b/client/package.json index a9d04ee7b..b8de01625 100644 --- a/client/package.json +++ b/client/package.json @@ -45,7 +45,7 @@ "logrocket": "^9.0.2", "markerjs2": "^2.32.4", "memoize-one": "^6.0.0", - "normalize-url": "^8.0.1", + "normalize-url": "^8.0.2", "object-hash": "^3.0.0", "phone": "^3.1.59", "prop-types": "^15.8.1", @@ -161,7 +161,7 @@ "vite-plugin-node-polyfills": "^0.23.0", "vite-plugin-pwa": "^1.0.0", "vite-plugin-style-import": "^2.0.0", - "vitest": "^3.2.2", + "vitest": "^3.2.3", "workbox-window": "^7.3.0" } } diff --git a/package-lock.json b/package-lock.json index 406e81992..82ec89bb2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,14 +9,14 @@ "version": "0.2.0", "license": "UNLICENSED", "dependencies": { - "@aws-sdk/client-cloudwatch-logs": "^3.823.0", - "@aws-sdk/client-elasticache": "^3.823.0", - "@aws-sdk/client-s3": "^3.824.0", - "@aws-sdk/client-secrets-manager": "^3.823.0", - "@aws-sdk/client-ses": "^3.823.0", - "@aws-sdk/credential-provider-node": "^3.823.0", - "@aws-sdk/lib-storage": "^3.824.0", - "@aws-sdk/s3-request-presigner": "^3.824.0", + "@aws-sdk/client-cloudwatch-logs": "^3.826.0", + "@aws-sdk/client-elasticache": "^3.826.0", + "@aws-sdk/client-s3": "^3.826.0", + "@aws-sdk/client-secrets-manager": "^3.826.0", + "@aws-sdk/client-ses": "^3.826.0", + "@aws-sdk/credential-provider-node": "^3.826.0", + "@aws-sdk/lib-storage": "^3.826.0", + "@aws-sdk/s3-request-presigner": "^3.826.0", "@opensearch-project/opensearch": "^2.13.0", "@socket.io/admin-ui": "^0.5.1", "@socket.io/redis-adapter": "^8.3.0", @@ -31,7 +31,7 @@ "cookie-parser": "^1.4.7", "cors": "^2.8.5", "crisp-status-reporter": "^1.2.2", - "dd-trace": "^5.54.0", + "dd-trace": "^5.55.0", "dinero.js": "^1.9.1", "dotenv": "^16.4.5", "express": "^4.21.1", @@ -74,7 +74,7 @@ "p-limit": "^3.1.0", "prettier": "^3.5.3", "supertest": "^7.1.1", - "vitest": "^3.2.2" + "vitest": "^3.2.3" }, "engines": { "node": ">=22.13.0", @@ -284,26 +284,26 @@ } }, "node_modules/@aws-sdk/client-cloudwatch-logs": { - "version": "3.823.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudwatch-logs/-/client-cloudwatch-logs-3.823.0.tgz", - "integrity": "sha512-EkXzeENJDpw1DaidDMUCwApd+VWV+qS9WsfiIieN7XGnzCr+0a2TeaBJ4xqMPXTxzlU+8S92rHYaiq8n0KdorA==", + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudwatch-logs/-/client-cloudwatch-logs-3.826.0.tgz", + "integrity": "sha512-eldrBVavaXqSGIMbhje0oKQntGNAdAXGqKeuWPa1Igl10KVGvQke/MA1Qqh7Tp+JL/FSfr2BhCjATdooPDb0hA==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.823.0", - "@aws-sdk/credential-provider-node": "3.823.0", + "@aws-sdk/core": "3.826.0", + "@aws-sdk/credential-provider-node": "3.826.0", "@aws-sdk/middleware-host-header": "3.821.0", "@aws-sdk/middleware-logger": "3.821.0", "@aws-sdk/middleware-recursion-detection": "3.821.0", - "@aws-sdk/middleware-user-agent": "3.823.0", + "@aws-sdk/middleware-user-agent": "3.826.0", "@aws-sdk/region-config-resolver": "3.821.0", "@aws-sdk/types": "3.821.0", "@aws-sdk/util-endpoints": "3.821.0", "@aws-sdk/util-user-agent-browser": "3.821.0", - "@aws-sdk/util-user-agent-node": "3.823.0", + "@aws-sdk/util-user-agent-node": "3.826.0", "@smithy/config-resolver": "^4.1.4", - "@smithy/core": "^3.5.1", + "@smithy/core": "^3.5.3", "@smithy/eventstream-serde-browser": "^4.0.4", "@smithy/eventstream-serde-config-resolver": "^4.1.2", "@smithy/eventstream-serde-node": "^4.0.4", @@ -311,21 +311,21 @@ "@smithy/hash-node": "^4.0.4", "@smithy/invalid-dependency": "^4.0.4", "@smithy/middleware-content-length": "^4.0.4", - "@smithy/middleware-endpoint": "^4.1.9", - "@smithy/middleware-retry": "^4.1.10", + "@smithy/middleware-endpoint": "^4.1.11", + "@smithy/middleware-retry": "^4.1.12", "@smithy/middleware-serde": "^4.0.8", "@smithy/middleware-stack": "^4.0.4", "@smithy/node-config-provider": "^4.1.3", "@smithy/node-http-handler": "^4.0.6", "@smithy/protocol-http": "^5.1.2", - "@smithy/smithy-client": "^4.4.1", + "@smithy/smithy-client": "^4.4.3", "@smithy/types": "^4.3.1", "@smithy/url-parser": "^4.0.4", "@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.17", - "@smithy/util-defaults-mode-node": "^4.0.17", + "@smithy/util-defaults-mode-browser": "^4.0.19", + "@smithy/util-defaults-mode-node": "^4.0.19", "@smithy/util-endpoints": "^3.0.6", "@smithy/util-middleware": "^4.0.4", "@smithy/util-retry": "^4.0.5", @@ -352,45 +352,45 @@ } }, "node_modules/@aws-sdk/client-elasticache": { - "version": "3.823.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-elasticache/-/client-elasticache-3.823.0.tgz", - "integrity": "sha512-gLKN5bp9mGzgiqK7+YU8cHVsufHYLaTMLC8EEPKAH72jfMkCP11g3U3vrLMuwQsO44vhYTh2PH84b6WHKPS59w==", + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-elasticache/-/client-elasticache-3.826.0.tgz", + "integrity": "sha512-NUaHi6Yl7HC3COYO09D4Gudy3a5N/OKk0OGF0Er4qcSv+1V+hjIffmjWTgDODreBgRdsCXjCfiPfY6T/FFLb1g==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.823.0", - "@aws-sdk/credential-provider-node": "3.823.0", + "@aws-sdk/core": "3.826.0", + "@aws-sdk/credential-provider-node": "3.826.0", "@aws-sdk/middleware-host-header": "3.821.0", "@aws-sdk/middleware-logger": "3.821.0", "@aws-sdk/middleware-recursion-detection": "3.821.0", - "@aws-sdk/middleware-user-agent": "3.823.0", + "@aws-sdk/middleware-user-agent": "3.826.0", "@aws-sdk/region-config-resolver": "3.821.0", "@aws-sdk/types": "3.821.0", "@aws-sdk/util-endpoints": "3.821.0", "@aws-sdk/util-user-agent-browser": "3.821.0", - "@aws-sdk/util-user-agent-node": "3.823.0", + "@aws-sdk/util-user-agent-node": "3.826.0", "@smithy/config-resolver": "^4.1.4", - "@smithy/core": "^3.5.1", + "@smithy/core": "^3.5.3", "@smithy/fetch-http-handler": "^5.0.4", "@smithy/hash-node": "^4.0.4", "@smithy/invalid-dependency": "^4.0.4", "@smithy/middleware-content-length": "^4.0.4", - "@smithy/middleware-endpoint": "^4.1.9", - "@smithy/middleware-retry": "^4.1.10", + "@smithy/middleware-endpoint": "^4.1.11", + "@smithy/middleware-retry": "^4.1.12", "@smithy/middleware-serde": "^4.0.8", "@smithy/middleware-stack": "^4.0.4", "@smithy/node-config-provider": "^4.1.3", "@smithy/node-http-handler": "^4.0.6", "@smithy/protocol-http": "^5.1.2", - "@smithy/smithy-client": "^4.4.1", + "@smithy/smithy-client": "^4.4.3", "@smithy/types": "^4.3.1", "@smithy/url-parser": "^4.0.4", "@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.17", - "@smithy/util-defaults-mode-node": "^4.0.17", + "@smithy/util-defaults-mode-browser": "^4.0.19", + "@smithy/util-defaults-mode-node": "^4.0.19", "@smithy/util-endpoints": "^3.0.6", "@smithy/util-middleware": "^4.0.4", "@smithy/util-retry": "^4.0.5", @@ -403,35 +403,35 @@ } }, "node_modules/@aws-sdk/client-s3": { - "version": "3.824.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.824.0.tgz", - "integrity": "sha512-7neTQIdSVP/F4RTWG5T87LDpB955iQD6lxg9nJ00fdkIPczDcRtAEXow44NjF4fEdpQ1A9jokUtBSVE+GMXZ/A==", + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.826.0.tgz", + "integrity": "sha512-odX3C3CEbcBoxB06vgBjJ9jQheFsIFwHmvCIMXn8duuVyIL/klgp14+ICzbEwIgPv7xVjSlycaiURcKS876QHA==", "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.823.0", - "@aws-sdk/credential-provider-node": "3.823.0", + "@aws-sdk/core": "3.826.0", + "@aws-sdk/credential-provider-node": "3.826.0", "@aws-sdk/middleware-bucket-endpoint": "3.821.0", "@aws-sdk/middleware-expect-continue": "3.821.0", - "@aws-sdk/middleware-flexible-checksums": "3.823.0", + "@aws-sdk/middleware-flexible-checksums": "3.826.0", "@aws-sdk/middleware-host-header": "3.821.0", "@aws-sdk/middleware-location-constraint": "3.821.0", "@aws-sdk/middleware-logger": "3.821.0", "@aws-sdk/middleware-recursion-detection": "3.821.0", - "@aws-sdk/middleware-sdk-s3": "3.823.0", + "@aws-sdk/middleware-sdk-s3": "3.826.0", "@aws-sdk/middleware-ssec": "3.821.0", - "@aws-sdk/middleware-user-agent": "3.823.0", + "@aws-sdk/middleware-user-agent": "3.826.0", "@aws-sdk/region-config-resolver": "3.821.0", - "@aws-sdk/signature-v4-multi-region": "3.824.0", + "@aws-sdk/signature-v4-multi-region": "3.826.0", "@aws-sdk/types": "3.821.0", "@aws-sdk/util-endpoints": "3.821.0", "@aws-sdk/util-user-agent-browser": "3.821.0", - "@aws-sdk/util-user-agent-node": "3.823.0", + "@aws-sdk/util-user-agent-node": "3.826.0", "@aws-sdk/xml-builder": "3.821.0", "@smithy/config-resolver": "^4.1.4", - "@smithy/core": "^3.5.1", + "@smithy/core": "^3.5.3", "@smithy/eventstream-serde-browser": "^4.0.4", "@smithy/eventstream-serde-config-resolver": "^4.1.2", "@smithy/eventstream-serde-node": "^4.0.4", @@ -442,21 +442,21 @@ "@smithy/invalid-dependency": "^4.0.4", "@smithy/md5-js": "^4.0.4", "@smithy/middleware-content-length": "^4.0.4", - "@smithy/middleware-endpoint": "^4.1.9", - "@smithy/middleware-retry": "^4.1.10", + "@smithy/middleware-endpoint": "^4.1.11", + "@smithy/middleware-retry": "^4.1.12", "@smithy/middleware-serde": "^4.0.8", "@smithy/middleware-stack": "^4.0.4", "@smithy/node-config-provider": "^4.1.3", "@smithy/node-http-handler": "^4.0.6", "@smithy/protocol-http": "^5.1.2", - "@smithy/smithy-client": "^4.4.1", + "@smithy/smithy-client": "^4.4.3", "@smithy/types": "^4.3.1", "@smithy/url-parser": "^4.0.4", "@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.17", - "@smithy/util-defaults-mode-node": "^4.0.17", + "@smithy/util-defaults-mode-browser": "^4.0.19", + "@smithy/util-defaults-mode-node": "^4.0.19", "@smithy/util-endpoints": "^3.0.6", "@smithy/util-middleware": "^4.0.4", "@smithy/util-retry": "^4.0.5", @@ -470,45 +470,45 @@ } }, "node_modules/@aws-sdk/client-secrets-manager": { - "version": "3.823.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.823.0.tgz", - "integrity": "sha512-KP5LjcFNfoVakVjvBRFuQ2B4GLSkOYRpzsoloy32MFyT/IJaJg+NhVtFPq5XpJ2FiVJFV1+8qwp9wRzxnC0h1A==", + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.826.0.tgz", + "integrity": "sha512-Uqy9UyQqhsMoxOk0HLv0c7RMwMu2tRnjHKL6be0Spsy41Q+cZuJRjPvq1AmHUblvam8olbQwud99A6cFO/8Efw==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.823.0", - "@aws-sdk/credential-provider-node": "3.823.0", + "@aws-sdk/core": "3.826.0", + "@aws-sdk/credential-provider-node": "3.826.0", "@aws-sdk/middleware-host-header": "3.821.0", "@aws-sdk/middleware-logger": "3.821.0", "@aws-sdk/middleware-recursion-detection": "3.821.0", - "@aws-sdk/middleware-user-agent": "3.823.0", + "@aws-sdk/middleware-user-agent": "3.826.0", "@aws-sdk/region-config-resolver": "3.821.0", "@aws-sdk/types": "3.821.0", "@aws-sdk/util-endpoints": "3.821.0", "@aws-sdk/util-user-agent-browser": "3.821.0", - "@aws-sdk/util-user-agent-node": "3.823.0", + "@aws-sdk/util-user-agent-node": "3.826.0", "@smithy/config-resolver": "^4.1.4", - "@smithy/core": "^3.5.1", + "@smithy/core": "^3.5.3", "@smithy/fetch-http-handler": "^5.0.4", "@smithy/hash-node": "^4.0.4", "@smithy/invalid-dependency": "^4.0.4", "@smithy/middleware-content-length": "^4.0.4", - "@smithy/middleware-endpoint": "^4.1.9", - "@smithy/middleware-retry": "^4.1.10", + "@smithy/middleware-endpoint": "^4.1.11", + "@smithy/middleware-retry": "^4.1.12", "@smithy/middleware-serde": "^4.0.8", "@smithy/middleware-stack": "^4.0.4", "@smithy/node-config-provider": "^4.1.3", "@smithy/node-http-handler": "^4.0.6", "@smithy/protocol-http": "^5.1.2", - "@smithy/smithy-client": "^4.4.1", + "@smithy/smithy-client": "^4.4.3", "@smithy/types": "^4.3.1", "@smithy/url-parser": "^4.0.4", "@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.17", - "@smithy/util-defaults-mode-node": "^4.0.17", + "@smithy/util-defaults-mode-browser": "^4.0.19", + "@smithy/util-defaults-mode-node": "^4.0.19", "@smithy/util-endpoints": "^3.0.6", "@smithy/util-middleware": "^4.0.4", "@smithy/util-retry": "^4.0.5", @@ -535,45 +535,45 @@ } }, "node_modules/@aws-sdk/client-ses": { - "version": "3.823.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-ses/-/client-ses-3.823.0.tgz", - "integrity": "sha512-5SaJ2LYCvcJPZ3btb4iM1d7CVnJByb9Y7b9V6rqE6NfHsNAGIa7e//1opY1Od3xVxebCpNtlWsFEU3lmyMSIDQ==", + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-ses/-/client-ses-3.826.0.tgz", + "integrity": "sha512-rCuj6Fd8pyDA/gZKyI/C4nAHTRT2w1L+DpEecxfQikFJLwUGZ8Nvk3JxRt0XADqDbdOmrgH/cc11kpEjO7sjEw==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.823.0", - "@aws-sdk/credential-provider-node": "3.823.0", + "@aws-sdk/core": "3.826.0", + "@aws-sdk/credential-provider-node": "3.826.0", "@aws-sdk/middleware-host-header": "3.821.0", "@aws-sdk/middleware-logger": "3.821.0", "@aws-sdk/middleware-recursion-detection": "3.821.0", - "@aws-sdk/middleware-user-agent": "3.823.0", + "@aws-sdk/middleware-user-agent": "3.826.0", "@aws-sdk/region-config-resolver": "3.821.0", "@aws-sdk/types": "3.821.0", "@aws-sdk/util-endpoints": "3.821.0", "@aws-sdk/util-user-agent-browser": "3.821.0", - "@aws-sdk/util-user-agent-node": "3.823.0", + "@aws-sdk/util-user-agent-node": "3.826.0", "@smithy/config-resolver": "^4.1.4", - "@smithy/core": "^3.5.1", + "@smithy/core": "^3.5.3", "@smithy/fetch-http-handler": "^5.0.4", "@smithy/hash-node": "^4.0.4", "@smithy/invalid-dependency": "^4.0.4", "@smithy/middleware-content-length": "^4.0.4", - "@smithy/middleware-endpoint": "^4.1.9", - "@smithy/middleware-retry": "^4.1.10", + "@smithy/middleware-endpoint": "^4.1.11", + "@smithy/middleware-retry": "^4.1.12", "@smithy/middleware-serde": "^4.0.8", "@smithy/middleware-stack": "^4.0.4", "@smithy/node-config-provider": "^4.1.3", "@smithy/node-http-handler": "^4.0.6", "@smithy/protocol-http": "^5.1.2", - "@smithy/smithy-client": "^4.4.1", + "@smithy/smithy-client": "^4.4.3", "@smithy/types": "^4.3.1", "@smithy/url-parser": "^4.0.4", "@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.17", - "@smithy/util-defaults-mode-node": "^4.0.17", + "@smithy/util-defaults-mode-browser": "^4.0.19", + "@smithy/util-defaults-mode-node": "^4.0.19", "@smithy/util-endpoints": "^3.0.6", "@smithy/util-middleware": "^4.0.4", "@smithy/util-retry": "^4.0.5", @@ -586,44 +586,44 @@ } }, "node_modules/@aws-sdk/client-sso": { - "version": "3.823.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.823.0.tgz", - "integrity": "sha512-dBWdsbyGw8rPfdCsZySNtTOGQK4EZ8lxB/CneSQWRBPHgQ+Ys88NXxImO8xfWO7Itt1eh8O7UDTZ9+smcvw2pw==", + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.826.0.tgz", + "integrity": "sha512-/FEKnUC3xPkLL4RuRydwzx+y4b55HIX6qLPbGnyIs+sNmCUyc/62ijtV1Ml+b++YzEF6jWNBsJOxeyZdgrJ3Ig==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.823.0", + "@aws-sdk/core": "3.826.0", "@aws-sdk/middleware-host-header": "3.821.0", "@aws-sdk/middleware-logger": "3.821.0", "@aws-sdk/middleware-recursion-detection": "3.821.0", - "@aws-sdk/middleware-user-agent": "3.823.0", + "@aws-sdk/middleware-user-agent": "3.826.0", "@aws-sdk/region-config-resolver": "3.821.0", "@aws-sdk/types": "3.821.0", "@aws-sdk/util-endpoints": "3.821.0", "@aws-sdk/util-user-agent-browser": "3.821.0", - "@aws-sdk/util-user-agent-node": "3.823.0", + "@aws-sdk/util-user-agent-node": "3.826.0", "@smithy/config-resolver": "^4.1.4", - "@smithy/core": "^3.5.1", + "@smithy/core": "^3.5.3", "@smithy/fetch-http-handler": "^5.0.4", "@smithy/hash-node": "^4.0.4", "@smithy/invalid-dependency": "^4.0.4", "@smithy/middleware-content-length": "^4.0.4", - "@smithy/middleware-endpoint": "^4.1.9", - "@smithy/middleware-retry": "^4.1.10", + "@smithy/middleware-endpoint": "^4.1.11", + "@smithy/middleware-retry": "^4.1.12", "@smithy/middleware-serde": "^4.0.8", "@smithy/middleware-stack": "^4.0.4", "@smithy/node-config-provider": "^4.1.3", "@smithy/node-http-handler": "^4.0.6", "@smithy/protocol-http": "^5.1.2", - "@smithy/smithy-client": "^4.4.1", + "@smithy/smithy-client": "^4.4.3", "@smithy/types": "^4.3.1", "@smithy/url-parser": "^4.0.4", "@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.17", - "@smithy/util-defaults-mode-node": "^4.0.17", + "@smithy/util-defaults-mode-browser": "^4.0.19", + "@smithy/util-defaults-mode-node": "^4.0.19", "@smithy/util-endpoints": "^3.0.6", "@smithy/util-middleware": "^4.0.4", "@smithy/util-retry": "^4.0.5", @@ -635,19 +635,19 @@ } }, "node_modules/@aws-sdk/core": { - "version": "3.823.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.823.0.tgz", - "integrity": "sha512-1Cf4w8J7wYexz0KU3zpaikHvldGXQEjFldHOhm0SBGRy7qfYNXecfJAamccF7RdgLxKGgkv5Pl9zX/Z/DcW9zg==", + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.826.0.tgz", + "integrity": "sha512-BGbQYzWj3ps+dblq33FY5tz/SsgJCcXX0zjQlSC07tYvU1jHTUvsefphyig+fY38xZ4wdKjbTop+KUmXUYrOXw==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "3.821.0", "@aws-sdk/xml-builder": "3.821.0", - "@smithy/core": "^3.5.1", + "@smithy/core": "^3.5.3", "@smithy/node-config-provider": "^4.1.3", "@smithy/property-provider": "^4.0.4", "@smithy/protocol-http": "^5.1.2", "@smithy/signature-v4": "^5.1.2", - "@smithy/smithy-client": "^4.4.1", + "@smithy/smithy-client": "^4.4.3", "@smithy/types": "^4.3.1", "@smithy/util-base64": "^4.0.0", "@smithy/util-body-length-browser": "^4.0.0", @@ -661,12 +661,12 @@ } }, "node_modules/@aws-sdk/credential-provider-env": { - "version": "3.823.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.823.0.tgz", - "integrity": "sha512-AIrLLwumObge+U1klN4j5ToIozI+gE9NosENRyHe0GIIZgTLOG/8jxrMFVYFeNHs7RUtjDTxxewislhFyGxJ/w==", + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.826.0.tgz", + "integrity": "sha512-DK3pQY8+iKK3MGDdC3uOZQ2psU01obaKlTYhEwNu4VWzgwQL4Vi3sWj4xSWGEK41vqZxiRLq6fOq7ysRI+qEZA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.823.0", + "@aws-sdk/core": "3.826.0", "@aws-sdk/types": "3.821.0", "@smithy/property-provider": "^4.0.4", "@smithy/types": "^4.3.1", @@ -677,18 +677,18 @@ } }, "node_modules/@aws-sdk/credential-provider-http": { - "version": "3.823.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.823.0.tgz", - "integrity": "sha512-u4DXvB/J/o2bcvP1JP6n3ch7V3/NngmiJFPsM0hKUyRlLuWM37HEDEdjPRs3/uL/soTxrEhWKTA9//YVkvzI0w==", + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.826.0.tgz", + "integrity": "sha512-N+IVZBh+yx/9GbMZTKO/gErBi/FYZQtcFRItoLbY+6WU+0cSWyZYfkoeOxHmQV3iX9k65oljERIWUmL9x6OSQg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.823.0", + "@aws-sdk/core": "3.826.0", "@aws-sdk/types": "3.821.0", "@smithy/fetch-http-handler": "^5.0.4", "@smithy/node-http-handler": "^4.0.6", "@smithy/property-provider": "^4.0.4", "@smithy/protocol-http": "^5.1.2", - "@smithy/smithy-client": "^4.4.1", + "@smithy/smithy-client": "^4.4.3", "@smithy/types": "^4.3.1", "@smithy/util-stream": "^4.2.2", "tslib": "^2.6.2" @@ -698,18 +698,18 @@ } }, "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.823.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.823.0.tgz", - "integrity": "sha512-C0o63qviK5yFvjH9zKWAnCUBkssJoQ1A1XAHe0IAQkurzoNBSmu9oVemqwnKKHA4H6QrmusaEERfL00yohIkJA==", + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.826.0.tgz", + "integrity": "sha512-g7n+qSklq/Lzjxe2Ke5QFNCgYn26a3ydZnbFIk8QqYin4pzG+qiunaqJjpV3c/EeHMlfK8bBc7MXAylKzGRccQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.823.0", - "@aws-sdk/credential-provider-env": "3.823.0", - "@aws-sdk/credential-provider-http": "3.823.0", - "@aws-sdk/credential-provider-process": "3.823.0", - "@aws-sdk/credential-provider-sso": "3.823.0", - "@aws-sdk/credential-provider-web-identity": "3.823.0", - "@aws-sdk/nested-clients": "3.823.0", + "@aws-sdk/core": "3.826.0", + "@aws-sdk/credential-provider-env": "3.826.0", + "@aws-sdk/credential-provider-http": "3.826.0", + "@aws-sdk/credential-provider-process": "3.826.0", + "@aws-sdk/credential-provider-sso": "3.826.0", + "@aws-sdk/credential-provider-web-identity": "3.826.0", + "@aws-sdk/nested-clients": "3.826.0", "@aws-sdk/types": "3.821.0", "@smithy/credential-provider-imds": "^4.0.6", "@smithy/property-provider": "^4.0.4", @@ -722,17 +722,17 @@ } }, "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.823.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.823.0.tgz", - "integrity": "sha512-nfSxXVuZ+2GJDpVFlflNfh55Yb4BtDsXLGNssXF5YU6UgSPsi8j2YkaE92Jv2s7dlUK07l0vRpLyPuXMaGeiRQ==", + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.826.0.tgz", + "integrity": "sha512-UfIJXxHjmSxH6bea00HBPLkjNI2D04enQA/xNLZvB+4xtzt1/gYdCis1P4/73f5aGVVVB4/zQMobBbnjkrmbQw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/credential-provider-env": "3.823.0", - "@aws-sdk/credential-provider-http": "3.823.0", - "@aws-sdk/credential-provider-ini": "3.823.0", - "@aws-sdk/credential-provider-process": "3.823.0", - "@aws-sdk/credential-provider-sso": "3.823.0", - "@aws-sdk/credential-provider-web-identity": "3.823.0", + "@aws-sdk/credential-provider-env": "3.826.0", + "@aws-sdk/credential-provider-http": "3.826.0", + "@aws-sdk/credential-provider-ini": "3.826.0", + "@aws-sdk/credential-provider-process": "3.826.0", + "@aws-sdk/credential-provider-sso": "3.826.0", + "@aws-sdk/credential-provider-web-identity": "3.826.0", "@aws-sdk/types": "3.821.0", "@smithy/credential-provider-imds": "^4.0.6", "@smithy/property-provider": "^4.0.4", @@ -745,12 +745,12 @@ } }, "node_modules/@aws-sdk/credential-provider-process": { - "version": "3.823.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.823.0.tgz", - "integrity": "sha512-U/A10/7zu2FbMFFVpIw95y0TZf+oYyrhZTBn9eL8zgWcrYRqxrxdqtPj/zMrfIfyIvQUhuJSENN4dx4tfpCMWQ==", + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.826.0.tgz", + "integrity": "sha512-kURrc4amu3NLtw1yZw7EoLNEVhmOMRUTs+chaNcmS+ERm3yK0nKjaJzmKahmwlTQTSl3wJ8jjK7x962VPo+zWw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.823.0", + "@aws-sdk/core": "3.826.0", "@aws-sdk/types": "3.821.0", "@smithy/property-provider": "^4.0.4", "@smithy/shared-ini-file-loader": "^4.0.4", @@ -762,14 +762,14 @@ } }, "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.823.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.823.0.tgz", - "integrity": "sha512-ff8IM80Wqz1V7VVMaMUqO2iR417jggfGWLPl8j2l7uCgwpEyop1ZZl5CFVYEwSupRBtwp+VlW1gTCk7ke56MUw==", + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.826.0.tgz", + "integrity": "sha512-F19J3zcfoom6OnQ0MyAtvduVKQXPgkz9i5ExSO01J2CzjbyMhCDA99qAjHYe+LwhW+W7P/jzBPd0+uOQ2Nhh9Q==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/client-sso": "3.823.0", - "@aws-sdk/core": "3.823.0", - "@aws-sdk/token-providers": "3.823.0", + "@aws-sdk/client-sso": "3.826.0", + "@aws-sdk/core": "3.826.0", + "@aws-sdk/token-providers": "3.826.0", "@aws-sdk/types": "3.821.0", "@smithy/property-provider": "^4.0.4", "@smithy/shared-ini-file-loader": "^4.0.4", @@ -781,13 +781,13 @@ } }, "node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.823.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.823.0.tgz", - "integrity": "sha512-lzoZdJMQq9w7i4lXVka30cVBe/dZoUDZST8Xz/soEd73gg7RTKgG+0szL4xFWgdBDgcJDWLfZfJzlbyIVyAyOA==", + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.826.0.tgz", + "integrity": "sha512-o27GZ6Hy7qhuvMFVUL2eFEpBzf33Jaa/x3u3SHwU0nL7ko7jmbpeF0x4+wmagpI9X2IvVlUxIs0VaQ3YayPLEA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.823.0", - "@aws-sdk/nested-clients": "3.823.0", + "@aws-sdk/core": "3.826.0", + "@aws-sdk/nested-clients": "3.826.0", "@aws-sdk/types": "3.821.0", "@smithy/property-provider": "^4.0.4", "@smithy/types": "^4.3.1", @@ -798,14 +798,14 @@ } }, "node_modules/@aws-sdk/lib-storage": { - "version": "3.824.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.824.0.tgz", - "integrity": "sha512-K63o6J22jBKSFGjOCNXbwNJ5znSdpo8PtfCX8c6FIMQCBT2+ZqlRWEgz6Q9DmN4wmDkW5jNOKyMQZt626Mi4nw==", + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.826.0.tgz", + "integrity": "sha512-NmZJVnP09ZGTVVz8ZCD8sQeVMfvyX5c2/NEJHSdavmWi2sJHuln09i/YQg90LFGL4eCFslzME/mP3pMtLQEeKQ==", "license": "Apache-2.0", "dependencies": { "@smithy/abort-controller": "^4.0.4", - "@smithy/middleware-endpoint": "^4.1.9", - "@smithy/smithy-client": "^4.4.1", + "@smithy/middleware-endpoint": "^4.1.11", + "@smithy/smithy-client": "^4.4.3", "buffer": "5.6.0", "events": "3.3.0", "stream-browserify": "3.0.0", @@ -815,7 +815,7 @@ "node": ">=18.0.0" }, "peerDependencies": { - "@aws-sdk/client-s3": "^3.824.0" + "@aws-sdk/client-s3": "^3.826.0" } }, "node_modules/@aws-sdk/middleware-bucket-endpoint": { @@ -852,15 +852,15 @@ } }, "node_modules/@aws-sdk/middleware-flexible-checksums": { - "version": "3.823.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.823.0.tgz", - "integrity": "sha512-Elt6G1ryEEdkrppqbyJON0o2x4x9xKknimJtMLdfG1b4YfO9X+UB31pk4R2SHvMYfrJ+p8DE2jRAhvV4g/dwIQ==", + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.826.0.tgz", + "integrity": "sha512-Fz9w8CFYPfSlHEB6feSsi06hdS+s+FB8k5pO4L7IV0tUa78mlhxF/VNlAJaVWYyOkZXl4HPH2K48aapACSQOXw==", "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.823.0", + "@aws-sdk/core": "3.826.0", "@aws-sdk/types": "3.821.0", "@smithy/is-array-buffer": "^4.0.0", "@smithy/node-config-provider": "^4.1.3", @@ -934,19 +934,19 @@ } }, "node_modules/@aws-sdk/middleware-sdk-s3": { - "version": "3.823.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.823.0.tgz", - "integrity": "sha512-UV755wt2HDru8PbxLn2S0Fvwgdn9mYamexn31Q6wyUGQ6rkpjKNEzL+oNDGQQmDQAOcQO+nLubKFsCwtBM02fQ==", + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.826.0.tgz", + "integrity": "sha512-8F0qWaYKfvD/de1AKccXuigM+gb/IZSncCqxdnFWqd+TFzo9qI9Hh+TpUhWOMYSgxsMsYQ8ipmLzlD/lDhjrmA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.823.0", + "@aws-sdk/core": "3.826.0", "@aws-sdk/types": "3.821.0", "@aws-sdk/util-arn-parser": "3.804.0", - "@smithy/core": "^3.5.1", + "@smithy/core": "^3.5.3", "@smithy/node-config-provider": "^4.1.3", "@smithy/protocol-http": "^5.1.2", "@smithy/signature-v4": "^5.1.2", - "@smithy/smithy-client": "^4.4.1", + "@smithy/smithy-client": "^4.4.3", "@smithy/types": "^4.3.1", "@smithy/util-config-provider": "^4.0.0", "@smithy/util-middleware": "^4.0.4", @@ -973,15 +973,15 @@ } }, "node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.823.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.823.0.tgz", - "integrity": "sha512-TKRQK09ld1LrIPExC9rIDpqnMsWcv+eq8ABKFHVo8mDLTSuWx/IiQ4eCh9T5zDuEZcLY4nNYCSzXKqw6XKcMCA==", + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.826.0.tgz", + "integrity": "sha512-j404+EcfBbtTlAhyObjXbdKwwDXO1pCxHvR5Fw8FXNvp/H330j6YnXgs3SJ6d3bZUwUJ/ztPx2S5AlBbLVLDFw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.823.0", + "@aws-sdk/core": "3.826.0", "@aws-sdk/types": "3.821.0", "@aws-sdk/util-endpoints": "3.821.0", - "@smithy/core": "^3.5.1", + "@smithy/core": "^3.5.3", "@smithy/protocol-http": "^5.1.2", "@smithy/types": "^4.3.1", "tslib": "^2.6.2" @@ -991,44 +991,44 @@ } }, "node_modules/@aws-sdk/nested-clients": { - "version": "3.823.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.823.0.tgz", - "integrity": "sha512-/BcyOBubrJnd2gxlbbmNJR1w0Z3OVN/UE8Yz20e+ou+Mijjv7EbtVwmWvio1e3ZjphwdA8tVfPYZKwXmrvHKmQ==", + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.826.0.tgz", + "integrity": "sha512-p7olPq0uTtHqGuXI1GSc/gzKDvV55PMbLtnmupEDfnY9SoRu+QatbWQ6da9sI1lhOcNmRMgiNQBXFzaUFrG+SQ==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.823.0", + "@aws-sdk/core": "3.826.0", "@aws-sdk/middleware-host-header": "3.821.0", "@aws-sdk/middleware-logger": "3.821.0", "@aws-sdk/middleware-recursion-detection": "3.821.0", - "@aws-sdk/middleware-user-agent": "3.823.0", + "@aws-sdk/middleware-user-agent": "3.826.0", "@aws-sdk/region-config-resolver": "3.821.0", "@aws-sdk/types": "3.821.0", "@aws-sdk/util-endpoints": "3.821.0", "@aws-sdk/util-user-agent-browser": "3.821.0", - "@aws-sdk/util-user-agent-node": "3.823.0", + "@aws-sdk/util-user-agent-node": "3.826.0", "@smithy/config-resolver": "^4.1.4", - "@smithy/core": "^3.5.1", + "@smithy/core": "^3.5.3", "@smithy/fetch-http-handler": "^5.0.4", "@smithy/hash-node": "^4.0.4", "@smithy/invalid-dependency": "^4.0.4", "@smithy/middleware-content-length": "^4.0.4", - "@smithy/middleware-endpoint": "^4.1.9", - "@smithy/middleware-retry": "^4.1.10", + "@smithy/middleware-endpoint": "^4.1.11", + "@smithy/middleware-retry": "^4.1.12", "@smithy/middleware-serde": "^4.0.8", "@smithy/middleware-stack": "^4.0.4", "@smithy/node-config-provider": "^4.1.3", "@smithy/node-http-handler": "^4.0.6", "@smithy/protocol-http": "^5.1.2", - "@smithy/smithy-client": "^4.4.1", + "@smithy/smithy-client": "^4.4.3", "@smithy/types": "^4.3.1", "@smithy/url-parser": "^4.0.4", "@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.17", - "@smithy/util-defaults-mode-node": "^4.0.17", + "@smithy/util-defaults-mode-browser": "^4.0.19", + "@smithy/util-defaults-mode-node": "^4.0.19", "@smithy/util-endpoints": "^3.0.6", "@smithy/util-middleware": "^4.0.4", "@smithy/util-retry": "^4.0.5", @@ -1057,17 +1057,17 @@ } }, "node_modules/@aws-sdk/s3-request-presigner": { - "version": "3.824.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.824.0.tgz", - "integrity": "sha512-r8NueKxJaoWbZTnfENmIeoDFjdYbgA9sxALrT1mDKU6+sHeAMNZLJfgEtSFKm7CjVmmdk2ZbYblrP3DY9Ftqsg==", + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.826.0.tgz", + "integrity": "sha512-47IcILH3CfVzUmGwJhwuZQyuZ5zXNsFyvtpQWR2s2dkoT7TJCMAKY0MtWE+y2T99b20OGbUhQHz/9qlx7dR3zw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/signature-v4-multi-region": "3.824.0", + "@aws-sdk/signature-v4-multi-region": "3.826.0", "@aws-sdk/types": "3.821.0", "@aws-sdk/util-format-url": "3.821.0", - "@smithy/middleware-endpoint": "^4.1.9", + "@smithy/middleware-endpoint": "^4.1.11", "@smithy/protocol-http": "^5.1.2", - "@smithy/smithy-client": "^4.4.1", + "@smithy/smithy-client": "^4.4.3", "@smithy/types": "^4.3.1", "tslib": "^2.6.2" }, @@ -1076,12 +1076,12 @@ } }, "node_modules/@aws-sdk/signature-v4-multi-region": { - "version": "3.824.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.824.0.tgz", - "integrity": "sha512-HBjuWeN6Z1pvJjUvGXdMNLwEypKKB4km6zXj9jsbOOwP8NTL6J5rY+JmlX/mfBTmvzmI0kMu2bxlQ4ME2CIRbA==", + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.826.0.tgz", + "integrity": "sha512-3fEi/zy6tpMzomYosksGtu7jZqGFcdBXoL7YRsG7OEeQzBbOW9B+fVaQZ4jnsViSjzA/yKydLahMrfPnt+iaxg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/middleware-sdk-s3": "3.823.0", + "@aws-sdk/middleware-sdk-s3": "3.826.0", "@aws-sdk/types": "3.821.0", "@smithy/protocol-http": "^5.1.2", "@smithy/signature-v4": "^5.1.2", @@ -1093,13 +1093,13 @@ } }, "node_modules/@aws-sdk/token-providers": { - "version": "3.823.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.823.0.tgz", - "integrity": "sha512-vz6onCb/+g4y+owxGGPMEMdN789dTfBOgz/c9pFv0f01840w9Rrt46l+gjQlnXnx+0KG6wNeBIVhFdbCfV3HyQ==", + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.826.0.tgz", + "integrity": "sha512-iCOcVAqGPSHtQL8ZBXifZMEcHyUl9wJ8HvLZ5l1ohA/3ZNP+dqEPGi7jfhR5jZKs+xyp2jxByFqfil9PjI9c5A==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.823.0", - "@aws-sdk/nested-clients": "3.823.0", + "@aws-sdk/core": "3.826.0", + "@aws-sdk/nested-clients": "3.826.0", "@aws-sdk/types": "3.821.0", "@smithy/property-provider": "^4.0.4", "@smithy/shared-ini-file-loader": "^4.0.4", @@ -1190,12 +1190,12 @@ } }, "node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.823.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.823.0.tgz", - "integrity": "sha512-WvNeRz7HV3JLBVGTXW4Qr5QvvWY0vtggH5jW/NqHFH+ZEliVQaUIJ/HNLMpMoCSiu/DlpQAyAjRZXAptJ0oqbw==", + "version": "3.826.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.826.0.tgz", + "integrity": "sha512-wHw6bZQWIMcFF/8r03aY9Itp6JLBYY4absGGhCDK1dc3tPEfi8NVSdb05a/Oz+g4TVaDdxLo0OQ/OKMS1DFRHQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/middleware-user-agent": "3.823.0", + "@aws-sdk/middleware-user-agent": "3.826.0", "@aws-sdk/types": "3.821.0", "@smithy/node-config-provider": "^4.1.3", "@smithy/types": "^4.3.1", @@ -2566,9 +2566,9 @@ "license": "BSD-3-Clause" }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.41.1.tgz", - "integrity": "sha512-NELNvyEWZ6R9QMkiytB4/L4zSEaBC03KIXEghptLGLZWJ6VPrL63ooZQCOnlx36aQPGhzuOMwDerC1Eb2VmrLw==", + "version": "4.42.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.42.0.tgz", + "integrity": "sha512-gldmAyS9hpj+H6LpRNlcjQWbuKUtb94lodB9uCz71Jm+7BxK1VIOo7y62tZZwxhA7j1ylv/yQz080L5WkS+LoQ==", "cpu": [ "arm" ], @@ -2580,9 +2580,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.41.1.tgz", - "integrity": "sha512-DXdQe1BJ6TK47ukAoZLehRHhfKnKg9BjnQYUu9gzhI8Mwa1d2fzxA1aw2JixHVl403bwp1+/o/NhhHtxWJBgEA==", + "version": "4.42.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.42.0.tgz", + "integrity": "sha512-bpRipfTgmGFdCZDFLRvIkSNO1/3RGS74aWkJJTFJBH7h3MRV4UijkaEUeOMbi9wxtxYmtAbVcnMtHTPBhLEkaw==", "cpu": [ "arm64" ], @@ -2594,9 +2594,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.41.1.tgz", - "integrity": "sha512-5afxvwszzdulsU2w8JKWwY8/sJOLPzf0e1bFuvcW5h9zsEg+RQAojdW0ux2zyYAz7R8HvvzKCjLNJhVq965U7w==", + "version": "4.42.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.42.0.tgz", + "integrity": "sha512-JxHtA081izPBVCHLKnl6GEA0w3920mlJPLh89NojpU2GsBSB6ypu4erFg/Wx1qbpUbepn0jY4dVWMGZM8gplgA==", "cpu": [ "arm64" ], @@ -2608,9 +2608,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.41.1.tgz", - "integrity": "sha512-egpJACny8QOdHNNMZKf8xY0Is6gIMz+tuqXlusxquWu3F833DcMwmGM7WlvCO9sB3OsPjdC4U0wHw5FabzCGZg==", + "version": "4.42.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.42.0.tgz", + "integrity": "sha512-rv5UZaWVIJTDMyQ3dCEK+m0SAn6G7H3PRc2AZmExvbDvtaDc+qXkei0knQWcI3+c9tEs7iL/4I4pTQoPbNL2SA==", "cpu": [ "x64" ], @@ -2622,9 +2622,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.41.1.tgz", - "integrity": "sha512-DBVMZH5vbjgRk3r0OzgjS38z+atlupJ7xfKIDJdZZL6sM6wjfDNo64aowcLPKIx7LMQi8vybB56uh1Ftck/Atg==", + "version": "4.42.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.42.0.tgz", + "integrity": "sha512-fJcN4uSGPWdpVmvLuMtALUFwCHgb2XiQjuECkHT3lWLZhSQ3MBQ9pq+WoWeJq2PrNxr9rPM1Qx+IjyGj8/c6zQ==", "cpu": [ "arm64" ], @@ -2636,9 +2636,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.41.1.tgz", - "integrity": "sha512-3FkydeohozEskBxNWEIbPfOE0aqQgB6ttTkJ159uWOFn42VLyfAiyD9UK5mhu+ItWzft60DycIN1Xdgiy8o/SA==", + "version": "4.42.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.42.0.tgz", + "integrity": "sha512-CziHfyzpp8hJpCVE/ZdTizw58gr+m7Y2Xq5VOuCSrZR++th2xWAz4Nqk52MoIIrV3JHtVBhbBsJcAxs6NammOQ==", "cpu": [ "x64" ], @@ -2650,9 +2650,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.41.1.tgz", - "integrity": "sha512-wC53ZNDgt0pqx5xCAgNunkTzFE8GTgdZ9EwYGVcg+jEjJdZGtq9xPjDnFgfFozQI/Xm1mh+D9YlYtl+ueswNEg==", + "version": "4.42.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.42.0.tgz", + "integrity": "sha512-UsQD5fyLWm2Fe5CDM7VPYAo+UC7+2Px4Y+N3AcPh/LdZu23YcuGPegQly++XEVaC8XUTFVPscl5y5Cl1twEI4A==", "cpu": [ "arm" ], @@ -2664,9 +2664,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.41.1.tgz", - "integrity": "sha512-jwKCca1gbZkZLhLRtsrka5N8sFAaxrGz/7wRJ8Wwvq3jug7toO21vWlViihG85ei7uJTpzbXZRcORotE+xyrLA==", + "version": "4.42.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.42.0.tgz", + "integrity": "sha512-/i8NIrlgc/+4n1lnoWl1zgH7Uo0XK5xK3EDqVTf38KvyYgCU/Rm04+o1VvvzJZnVS5/cWSd07owkzcVasgfIkQ==", "cpu": [ "arm" ], @@ -2678,9 +2678,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.41.1.tgz", - "integrity": "sha512-g0UBcNknsmmNQ8V2d/zD2P7WWfJKU0F1nu0k5pW4rvdb+BIqMm8ToluW/eeRmxCared5dD76lS04uL4UaNgpNA==", + "version": "4.42.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.42.0.tgz", + "integrity": "sha512-eoujJFOvoIBjZEi9hJnXAbWg+Vo1Ov8n/0IKZZcPZ7JhBzxh2A+2NFyeMZIRkY9iwBvSjloKgcvnjTbGKHE44Q==", "cpu": [ "arm64" ], @@ -2692,9 +2692,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.41.1.tgz", - "integrity": "sha512-XZpeGB5TKEZWzIrj7sXr+BEaSgo/ma/kCgrZgL0oo5qdB1JlTzIYQKel/RmhT6vMAvOdM2teYlAaOGJpJ9lahg==", + "version": "4.42.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.42.0.tgz", + "integrity": "sha512-/3NrcOWFSR7RQUQIuZQChLND36aTU9IYE4j+TB40VU78S+RA0IiqHR30oSh6P1S9f9/wVOenHQnacs/Byb824g==", "cpu": [ "arm64" ], @@ -2706,9 +2706,9 @@ ] }, "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.41.1.tgz", - "integrity": "sha512-bkCfDJ4qzWfFRCNt5RVV4DOw6KEgFTUZi2r2RuYhGWC8WhCA8lCAJhDeAmrM/fdiAH54m0mA0Vk2FGRPyzI+tw==", + "version": "4.42.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.42.0.tgz", + "integrity": "sha512-O8AplvIeavK5ABmZlKBq9/STdZlnQo7Sle0LLhVA7QT+CiGpNVe197/t8Aph9bhJqbDVGCHpY2i7QyfEDDStDg==", "cpu": [ "loong64" ], @@ -2720,9 +2720,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.41.1.tgz", - "integrity": "sha512-3mr3Xm+gvMX+/8EKogIZSIEF0WUu0HL9di+YWlJpO8CQBnoLAEL/roTCxuLncEdgcfJcvA4UMOf+2dnjl4Ut1A==", + "version": "4.42.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.42.0.tgz", + "integrity": "sha512-6Qb66tbKVN7VyQrekhEzbHRxXXFFD8QKiFAwX5v9Xt6FiJ3BnCVBuyBxa2fkFGqxOCSGGYNejxd8ht+q5SnmtA==", "cpu": [ "ppc64" ], @@ -2734,9 +2734,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.41.1.tgz", - "integrity": "sha512-3rwCIh6MQ1LGrvKJitQjZFuQnT2wxfU+ivhNBzmxXTXPllewOF7JR1s2vMX/tWtUYFgphygxjqMl76q4aMotGw==", + "version": "4.42.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.42.0.tgz", + "integrity": "sha512-KQETDSEBamQFvg/d8jajtRwLNBlGc3aKpaGiP/LvEbnmVUKlFta1vqJqTrvPtsYsfbE/DLg5CC9zyXRX3fnBiA==", "cpu": [ "riscv64" ], @@ -2748,9 +2748,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.41.1.tgz", - "integrity": "sha512-LdIUOb3gvfmpkgFZuccNa2uYiqtgZAz3PTzjuM5bH3nvuy9ty6RGc/Q0+HDFrHrizJGVpjnTZ1yS5TNNjFlklw==", + "version": "4.42.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.42.0.tgz", + "integrity": "sha512-qMvnyjcU37sCo/tuC+JqeDKSuukGAd+pVlRl/oyDbkvPJ3awk6G6ua7tyum02O3lI+fio+eM5wsVd66X0jQtxw==", "cpu": [ "riscv64" ], @@ -2762,9 +2762,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.41.1.tgz", - "integrity": "sha512-oIE6M8WC9ma6xYqjvPhzZYk6NbobIURvP/lEbh7FWplcMO6gn7MM2yHKA1eC/GvYwzNKK/1LYgqzdkZ8YFxR8g==", + "version": "4.42.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.42.0.tgz", + "integrity": "sha512-I2Y1ZUgTgU2RLddUHXTIgyrdOwljjkmcZ/VilvaEumtS3Fkuhbw4p4hgHc39Ypwvo2o7sBFNl2MquNvGCa55Iw==", "cpu": [ "s390x" ], @@ -2776,9 +2776,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.41.1.tgz", - "integrity": "sha512-cWBOvayNvA+SyeQMp79BHPK8ws6sHSsYnK5zDcsC3Hsxr1dgTABKjMnMslPq1DvZIp6uO7kIWhiGwaTdR4Og9A==", + "version": "4.42.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.42.0.tgz", + "integrity": "sha512-Gfm6cV6mj3hCUY8TqWa63DB8Mx3NADoFwiJrMpoZ1uESbK8FQV3LXkhfry+8bOniq9pqY1OdsjFWNsSbfjPugw==", "cpu": [ "x64" ], @@ -2790,9 +2790,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.41.1.tgz", - "integrity": "sha512-y5CbN44M+pUCdGDlZFzGGBSKCA4A/J2ZH4edTYSSxFg7ce1Xt3GtydbVKWLlzL+INfFIZAEg1ZV6hh9+QQf9YQ==", + "version": "4.42.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.42.0.tgz", + "integrity": "sha512-g86PF8YZ9GRqkdi0VoGlcDUb4rYtQKyTD1IVtxxN4Hpe7YqLBShA7oHMKU6oKTCi3uxwW4VkIGnOaH/El8de3w==", "cpu": [ "x64" ], @@ -2804,9 +2804,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.41.1.tgz", - "integrity": "sha512-lZkCxIrjlJlMt1dLO/FbpZbzt6J/A8p4DnqzSa4PWqPEUUUnzXLeki/iyPLfV0BmHItlYgHUqJe+3KiyydmiNQ==", + "version": "4.42.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.42.0.tgz", + "integrity": "sha512-+axkdyDGSp6hjyzQ5m1pgcvQScfHnMCcsXkx8pTgy/6qBmWVhtRVlgxjWwDp67wEXXUr0x+vD6tp5W4x6V7u1A==", "cpu": [ "arm64" ], @@ -2818,9 +2818,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.41.1.tgz", - "integrity": "sha512-+psFT9+pIh2iuGsxFYYa/LhS5MFKmuivRsx9iPJWNSGbh2XVEjk90fmpUEjCnILPEPJnikAU6SFDiEUyOv90Pg==", + "version": "4.42.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.42.0.tgz", + "integrity": "sha512-F+5J9pelstXKwRSDq92J0TEBXn2nfUrQGg+HK1+Tk7VOL09e0gBqUHugZv7SW4MGrYj41oNCUe3IKCDGVlis2g==", "cpu": [ "ia32" ], @@ -2832,9 +2832,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.41.1.tgz", - "integrity": "sha512-Wq2zpapRYLfi4aKxf2Xff0tN+7slj2d4R87WEzqw7ZLsVvO5zwYCIuEGSZYiK41+GlwUo1HiR+GdkLEJnCKTCw==", + "version": "4.42.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.42.0.tgz", + "integrity": "sha512-LpHiJRwkaVz/LqjHjK8LCi8osq7elmpwujwbXKNW88bM8eeGxavJIKKjkjpMHAh/2xfnrt1ZSnhTv41WYUHYmA==", "cpu": [ "x64" ], @@ -3881,15 +3881,15 @@ "license": "MIT" }, "node_modules/@vitest/expect": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.2.tgz", - "integrity": "sha512-ipHw0z669vEMjzz3xQE8nJX1s0rQIb7oEl4jjl35qWTwm/KIHERIg/p/zORrjAaZKXfsv7IybcNGHwhOOAPMwQ==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.3.tgz", + "integrity": "sha512-W2RH2TPWVHA1o7UmaFKISPvdicFJH+mjykctJFoAkUw+SPTJTGjUNdKscFBrqM7IPnCVu6zihtKYa7TkZS1dkQ==", "dev": true, "license": "MIT", "dependencies": { "@types/chai": "^5.2.2", - "@vitest/spy": "3.2.2", - "@vitest/utils": "3.2.2", + "@vitest/spy": "3.2.3", + "@vitest/utils": "3.2.3", "chai": "^5.2.0", "tinyrainbow": "^2.0.0" }, @@ -3898,13 +3898,13 @@ } }, "node_modules/@vitest/mocker": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.2.tgz", - "integrity": "sha512-jKojcaRyIYpDEf+s7/dD3LJt53c0dPfp5zCPXz9H/kcGrSlovU/t1yEaNzM9oFME3dcd4ULwRI/x0Po1Zf+LTw==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.3.tgz", + "integrity": "sha512-cP6fIun+Zx8he4rbWvi+Oya6goKQDZK+Yq4hhlggwQBbrlOQ4qtZ+G4nxB6ZnzI9lyIb+JnvyiJnPC2AGbKSPA==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/spy": "3.2.2", + "@vitest/spy": "3.2.3", "estree-walker": "^3.0.3", "magic-string": "^0.30.17" }, @@ -3925,9 +3925,9 @@ } }, "node_modules/@vitest/pretty-format": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.2.tgz", - "integrity": "sha512-FY4o4U1UDhO9KMd2Wee5vumwcaHw7Vg4V7yR4Oq6uK34nhEJOmdRYrk3ClburPRUA09lXD/oXWZ8y/Sdma0aUQ==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.3.tgz", + "integrity": "sha512-yFglXGkr9hW/yEXngO+IKMhP0jxyFw2/qys/CK4fFUZnSltD+MU7dVYGrH8rvPcK/O6feXQA+EU33gjaBBbAng==", "dev": true, "license": "MIT", "dependencies": { @@ -3938,27 +3938,28 @@ } }, "node_modules/@vitest/runner": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.2.tgz", - "integrity": "sha512-GYcHcaS3ejGRZYed2GAkvsjBeXIEerDKdX3orQrBJqLRiea4NSS9qvn9Nxmuy1IwIB+EjFOaxXnX79l8HFaBwg==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.3.tgz", + "integrity": "sha512-83HWYisT3IpMaU9LN+VN+/nLHVBCSIUKJzGxC5RWUOsK1h3USg7ojL+UXQR3b4o4UBIWCYdD2fxuzM7PQQ1u8w==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/utils": "3.2.2", - "pathe": "^2.0.3" + "@vitest/utils": "3.2.3", + "pathe": "^2.0.3", + "strip-literal": "^3.0.0" }, "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/@vitest/snapshot": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.2.tgz", - "integrity": "sha512-aMEI2XFlR1aNECbBs5C5IZopfi5Lb8QJZGGpzS8ZUHML5La5wCbrbhLOVSME68qwpT05ROEEOAZPRXFpxZV2wA==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.3.tgz", + "integrity": "sha512-9gIVWx2+tysDqUmmM1L0hwadyumqssOL1r8KJipwLx5JVYyxvVRfxvMq7DaWbZZsCqZnu/dZedaZQh4iYTtneA==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "3.2.2", + "@vitest/pretty-format": "3.2.3", "magic-string": "^0.30.17", "pathe": "^2.0.3" }, @@ -3967,9 +3968,9 @@ } }, "node_modules/@vitest/spy": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.2.tgz", - "integrity": "sha512-6Utxlx3o7pcTxvp0u8kUiXtRFScMrUg28KjB3R2hon7w4YqOFAEA9QwzPVVS1QNL3smo4xRNOpNZClRVfpMcYg==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.3.tgz", + "integrity": "sha512-JHu9Wl+7bf6FEejTCREy+DmgWe+rQKbK+y32C/k5f4TBIAlijhJbRBIRIOCEpVevgRsCQR2iHRUH2/qKVM/plw==", "dev": true, "license": "MIT", "dependencies": { @@ -3980,13 +3981,13 @@ } }, "node_modules/@vitest/utils": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.2.tgz", - "integrity": "sha512-qJYMllrWpF/OYfWHP32T31QCaLa3BAzT/n/8mNGhPdVcjY+JYazQFO1nsJvXU12Kp1xMpNY4AGuljPTNjQve6A==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.3.tgz", + "integrity": "sha512-4zFBCU5Pf+4Z6v+rwnZ1HU1yzOKKvDkMXZrymE2PBlbjKJRlrOxbvpfPSvJTGRIwGoahaOGvp+kbCoxifhzJ1Q==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "3.2.2", + "@vitest/pretty-format": "3.2.3", "loupe": "^3.1.3", "tinyrainbow": "^2.0.0" }, @@ -5497,9 +5498,9 @@ } }, "node_modules/dd-trace": { - "version": "5.54.0", - "resolved": "https://registry.npmjs.org/dd-trace/-/dd-trace-5.54.0.tgz", - "integrity": "sha512-JbvSMapqGsqQNvZSPrMUMAtjWELoGFSWGdXk12SEgt35p+3wbXztrMof903ZODE07AQPJJ8YbPOioACMcAvOlg==", + "version": "5.55.0", + "resolved": "https://registry.npmjs.org/dd-trace/-/dd-trace-5.55.0.tgz", + "integrity": "sha512-nXg5W0s/8kl5Btj9hIG1YgzkARoezAEqT03/cJ/VF3G41fB8KfBWUTY1+aw795UZ6Cv2dXD3yPYdckJeuCwjVQ==", "hasInstallScript": true, "license": "(Apache-2.0 OR BSD-3-Clause)", "dependencies": { @@ -10343,9 +10344,9 @@ "license": "MIT" }, "node_modules/rollup": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.41.1.tgz", - "integrity": "sha512-cPmwD3FnFv8rKMBc1MxWCwVQFxwf1JEmSX3iQXrRVVG15zerAIXRjMFVWnd5Q5QvgKF7Aj+5ykXFhUl+QGnyOw==", + "version": "4.42.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.42.0.tgz", + "integrity": "sha512-LW+Vse3BJPyGJGAJt1j8pWDKPd73QM8cRXYK1IxOBgL2AGLu7Xd2YOW0M2sLUBCkF5MshXXtMApyEAEzMVMsnw==", "dev": true, "license": "MIT", "dependencies": { @@ -10359,26 +10360,26 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.41.1", - "@rollup/rollup-android-arm64": "4.41.1", - "@rollup/rollup-darwin-arm64": "4.41.1", - "@rollup/rollup-darwin-x64": "4.41.1", - "@rollup/rollup-freebsd-arm64": "4.41.1", - "@rollup/rollup-freebsd-x64": "4.41.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.41.1", - "@rollup/rollup-linux-arm-musleabihf": "4.41.1", - "@rollup/rollup-linux-arm64-gnu": "4.41.1", - "@rollup/rollup-linux-arm64-musl": "4.41.1", - "@rollup/rollup-linux-loongarch64-gnu": "4.41.1", - "@rollup/rollup-linux-powerpc64le-gnu": "4.41.1", - "@rollup/rollup-linux-riscv64-gnu": "4.41.1", - "@rollup/rollup-linux-riscv64-musl": "4.41.1", - "@rollup/rollup-linux-s390x-gnu": "4.41.1", - "@rollup/rollup-linux-x64-gnu": "4.41.1", - "@rollup/rollup-linux-x64-musl": "4.41.1", - "@rollup/rollup-win32-arm64-msvc": "4.41.1", - "@rollup/rollup-win32-ia32-msvc": "4.41.1", - "@rollup/rollup-win32-x64-msvc": "4.41.1", + "@rollup/rollup-android-arm-eabi": "4.42.0", + "@rollup/rollup-android-arm64": "4.42.0", + "@rollup/rollup-darwin-arm64": "4.42.0", + "@rollup/rollup-darwin-x64": "4.42.0", + "@rollup/rollup-freebsd-arm64": "4.42.0", + "@rollup/rollup-freebsd-x64": "4.42.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.42.0", + "@rollup/rollup-linux-arm-musleabihf": "4.42.0", + "@rollup/rollup-linux-arm64-gnu": "4.42.0", + "@rollup/rollup-linux-arm64-musl": "4.42.0", + "@rollup/rollup-linux-loongarch64-gnu": "4.42.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.42.0", + "@rollup/rollup-linux-riscv64-gnu": "4.42.0", + "@rollup/rollup-linux-riscv64-musl": "4.42.0", + "@rollup/rollup-linux-s390x-gnu": "4.42.0", + "@rollup/rollup-linux-x64-gnu": "4.42.0", + "@rollup/rollup-linux-x64-musl": "4.42.0", + "@rollup/rollup-win32-arm64-msvc": "4.42.0", + "@rollup/rollup-win32-ia32-msvc": "4.42.0", + "@rollup/rollup-win32-x64-msvc": "4.42.0", "fsevents": "~2.3.2" } }, @@ -11493,6 +11494,26 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/strip-literal": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.0.0.tgz", + "integrity": "sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==", + "dev": true, + "license": "MIT", + "dependencies": { + "js-tokens": "^9.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", + "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", + "dev": true, + "license": "MIT" + }, "node_modules/strnum": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.1.2.tgz", @@ -12177,9 +12198,9 @@ } }, "node_modules/vite-node": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.2.tgz", - "integrity": "sha512-Xj/jovjZvDXOq2FgLXu8NsY4uHUMWtzVmMC2LkCu9HWdr9Qu1Is5sanX3Z4jOFKdohfaWDnEJWp9pRP0vVpAcA==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.3.tgz", + "integrity": "sha512-gc8aAifGuDIpZHrPjuHyP4dpQmYXqWw7D1GmDnWeNWP654UEXzVfQ5IHPSK5HaHkwB/+p1atpYpSdw/2kOv8iQ==", "dev": true, "license": "MIT", "dependencies": { @@ -12200,20 +12221,20 @@ } }, "node_modules/vitest": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.2.tgz", - "integrity": "sha512-fyNn/Rp016Bt5qvY0OQvIUCwW2vnaEBLxP42PmKbNIoasSYjML+8xyeADOPvBe+Xfl/ubIw4og7Lt9jflRsCNw==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.3.tgz", + "integrity": "sha512-E6U2ZFXe3N/t4f5BwUaVCKRLHqUpk1CBWeMh78UT4VaTPH/2dyvH6ALl29JTovEPu9dVKr/K/J4PkXgrMbw4Ww==", "dev": true, "license": "MIT", "dependencies": { "@types/chai": "^5.2.2", - "@vitest/expect": "3.2.2", - "@vitest/mocker": "3.2.2", - "@vitest/pretty-format": "^3.2.2", - "@vitest/runner": "3.2.2", - "@vitest/snapshot": "3.2.2", - "@vitest/spy": "3.2.2", - "@vitest/utils": "3.2.2", + "@vitest/expect": "3.2.3", + "@vitest/mocker": "3.2.3", + "@vitest/pretty-format": "^3.2.3", + "@vitest/runner": "3.2.3", + "@vitest/snapshot": "3.2.3", + "@vitest/spy": "3.2.3", + "@vitest/utils": "3.2.3", "chai": "^5.2.0", "debug": "^4.4.1", "expect-type": "^1.2.1", @@ -12227,7 +12248,7 @@ "tinypool": "^1.1.0", "tinyrainbow": "^2.0.0", "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0", - "vite-node": "3.2.2", + "vite-node": "3.2.3", "why-is-node-running": "^2.3.0" }, "bin": { @@ -12243,8 +12264,8 @@ "@edge-runtime/vm": "*", "@types/debug": "^4.1.12", "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", - "@vitest/browser": "3.2.2", - "@vitest/ui": "3.2.2", + "@vitest/browser": "3.2.3", + "@vitest/ui": "3.2.3", "happy-dom": "*", "jsdom": "*" }, diff --git a/package.json b/package.json index 88c02c7b9..b57c9f6b2 100644 --- a/package.json +++ b/package.json @@ -16,14 +16,14 @@ "job-totals-fixtures:local": "docker exec node-app /usr/bin/node /app/download-job-totals-fixtures.js" }, "dependencies": { - "@aws-sdk/client-cloudwatch-logs": "^3.823.0", - "@aws-sdk/client-elasticache": "^3.823.0", - "@aws-sdk/client-s3": "^3.824.0", - "@aws-sdk/client-secrets-manager": "^3.823.0", - "@aws-sdk/client-ses": "^3.823.0", - "@aws-sdk/credential-provider-node": "^3.823.0", - "@aws-sdk/lib-storage": "^3.824.0", - "@aws-sdk/s3-request-presigner": "^3.824.0", + "@aws-sdk/client-cloudwatch-logs": "^3.826.0", + "@aws-sdk/client-elasticache": "^3.826.0", + "@aws-sdk/client-s3": "^3.826.0", + "@aws-sdk/client-secrets-manager": "^3.826.0", + "@aws-sdk/client-ses": "^3.826.0", + "@aws-sdk/credential-provider-node": "^3.826.0", + "@aws-sdk/lib-storage": "^3.826.0", + "@aws-sdk/s3-request-presigner": "^3.826.0", "@opensearch-project/opensearch": "^2.13.0", "@socket.io/admin-ui": "^0.5.1", "@socket.io/redis-adapter": "^8.3.0", @@ -38,7 +38,7 @@ "cookie-parser": "^1.4.7", "cors": "^2.8.5", "crisp-status-reporter": "^1.2.2", - "dd-trace": "^5.54.0", + "dd-trace": "^5.55.0", "dinero.js": "^1.9.1", "dotenv": "^16.4.5", "express": "^4.21.1", @@ -81,6 +81,6 @@ "p-limit": "^3.1.0", "prettier": "^3.5.3", "supertest": "^7.1.1", - "vitest": "^3.2.2" + "vitest": "^3.2.3" } } From 68c7b184d27ad016e9ecd989efbff6ab1f62ec00 Mon Sep 17 00:00:00 2001 From: Dave Richer Date: Mon, 9 Jun 2025 18:39:29 -0400 Subject: [PATCH 2/3] feature/IO-3258-Shop-User-Vendor-Creation: Finish --- hasura/metadata/tables.yaml | 2 + .../down.sql | 4 + .../up.sql | 2 + .../down.sql | 2 + .../up.sql | 2 + .../down.sql | 1 + .../up.sql | 1 + .../partsManagement/defaultNewShop.json | 1236 +++++++++++++++++ .../partsManagementProvisioning.js | 257 ++++ .../integrations/partsManagement/swagger.yaml | 160 +++ .../partsManagementIntegrationMiddleware.js | 23 + .../middleware/vsstaIntegrationMiddleware.js | 15 +- server/routes/intergrationRoutes.js | 25 +- 13 files changed, 1721 insertions(+), 9 deletions(-) create mode 100644 hasura/migrations/1749499292683_alter_table_public_bodyshops_add_column_we_profile_id/down.sql create mode 100644 hasura/migrations/1749499292683_alter_table_public_bodyshops_add_column_we_profile_id/up.sql create mode 100644 hasura/migrations/1749505657175_alter_table_public_bodyshops_alter_column_we_profile_id/down.sql create mode 100644 hasura/migrations/1749505657175_alter_table_public_bodyshops_alter_column_we_profile_id/up.sql create mode 100644 hasura/migrations/1749507125123_alter_table_public_bodyshops_alter_column_parts_management_key/down.sql create mode 100644 hasura/migrations/1749507125123_alter_table_public_bodyshops_alter_column_parts_management_key/up.sql create mode 100644 server/integrations/partsManagement/defaultNewShop.json create mode 100644 server/integrations/partsManagement/partsManagementProvisioning.js create mode 100644 server/integrations/partsManagement/swagger.yaml create mode 100644 server/middleware/partsManagementIntegrationMiddleware.js diff --git a/hasura/metadata/tables.yaml b/hasura/metadata/tables.yaml index 92d857181..613c5ec82 100644 --- a/hasura/metadata/tables.yaml +++ b/hasura/metadata/tables.yaml @@ -1035,6 +1035,7 @@ - use_fippa - use_paint_scale_data - uselocalmediaserver + - external_shop_id - website - workingdays - zip_post @@ -1130,6 +1131,7 @@ - use_fippa - use_paint_scale_data - uselocalmediaserver + - external_shop_id - website - workingdays - zip_post diff --git a/hasura/migrations/1749499292683_alter_table_public_bodyshops_add_column_we_profile_id/down.sql b/hasura/migrations/1749499292683_alter_table_public_bodyshops_add_column_we_profile_id/down.sql new file mode 100644 index 000000000..e3d2f88eb --- /dev/null +++ b/hasura/migrations/1749499292683_alter_table_public_bodyshops_add_column_we_profile_id/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"."bodyshops" add column "we_profile_id" text +-- null; diff --git a/hasura/migrations/1749499292683_alter_table_public_bodyshops_add_column_we_profile_id/up.sql b/hasura/migrations/1749499292683_alter_table_public_bodyshops_add_column_we_profile_id/up.sql new file mode 100644 index 000000000..f8fc3a654 --- /dev/null +++ b/hasura/migrations/1749499292683_alter_table_public_bodyshops_add_column_we_profile_id/up.sql @@ -0,0 +1,2 @@ +alter table "public"."bodyshops" add column "we_profile_id" text + null; diff --git a/hasura/migrations/1749505657175_alter_table_public_bodyshops_alter_column_we_profile_id/down.sql b/hasura/migrations/1749505657175_alter_table_public_bodyshops_alter_column_we_profile_id/down.sql new file mode 100644 index 000000000..6c5fb479a --- /dev/null +++ b/hasura/migrations/1749505657175_alter_table_public_bodyshops_alter_column_we_profile_id/down.sql @@ -0,0 +1,2 @@ +alter table "public"."bodyshops" rename column "parts_management_key" to "we_profile_id"; +alter table "public"."bodyshops" drop constraint "bodyshops_we_profile_id_key"; diff --git a/hasura/migrations/1749505657175_alter_table_public_bodyshops_alter_column_we_profile_id/up.sql b/hasura/migrations/1749505657175_alter_table_public_bodyshops_alter_column_we_profile_id/up.sql new file mode 100644 index 000000000..8c84ea5f5 --- /dev/null +++ b/hasura/migrations/1749505657175_alter_table_public_bodyshops_alter_column_we_profile_id/up.sql @@ -0,0 +1,2 @@ +alter table "public"."bodyshops" add constraint "bodyshops_we_profile_id_key" unique ("we_profile_id"); +alter table "public"."bodyshops" rename column "we_profile_id" to "parts_management_key"; diff --git a/hasura/migrations/1749507125123_alter_table_public_bodyshops_alter_column_parts_management_key/down.sql b/hasura/migrations/1749507125123_alter_table_public_bodyshops_alter_column_parts_management_key/down.sql new file mode 100644 index 000000000..a809155d5 --- /dev/null +++ b/hasura/migrations/1749507125123_alter_table_public_bodyshops_alter_column_parts_management_key/down.sql @@ -0,0 +1 @@ +alter table "public"."bodyshops" rename column "external_shop_id" to "parts_management_key"; diff --git a/hasura/migrations/1749507125123_alter_table_public_bodyshops_alter_column_parts_management_key/up.sql b/hasura/migrations/1749507125123_alter_table_public_bodyshops_alter_column_parts_management_key/up.sql new file mode 100644 index 000000000..2127b4003 --- /dev/null +++ b/hasura/migrations/1749507125123_alter_table_public_bodyshops_alter_column_parts_management_key/up.sql @@ -0,0 +1 @@ +alter table "public"."bodyshops" rename column "parts_management_key" to "external_shop_id"; diff --git a/server/integrations/partsManagement/defaultNewShop.json b/server/integrations/partsManagement/defaultNewShop.json new file mode 100644 index 000000000..281f31dbb --- /dev/null +++ b/server/integrations/partsManagement/defaultNewShop.json @@ -0,0 +1,1236 @@ +{ + "associations": { + "data": [ + { + "useremail": "linda@imex.prod", + "active": false, + "authlevel": 99 + }, + { + "useremail": "patrick@imex.prod", + "active": false, + "authlevel": 99 + }, + { + "useremail": "allan@imex.prod", + "active": false, + "authlevel": 99 + }, + { + "useremail": "logan@imex.prod", + "active": false, + "authlevel": 99 + }, + { + "useremail": "nicolette@imex.prod", + "active": false, + "authlevel": 99 + } + ] + }, + "logo_img_path": { + "src": "", + "width": "", + "height": "", + "headerMargin": "135" + }, + "md_ro_statuses": { + "statuses": [ + "Open", + "Scheduled", + "Arrived", + "Hold", + "Parts", + "Body", + "Prep", + "Paint", + "Reassembly", + "Sublet", + "Detail", + "Completed", + "Delivered", + "Invoiced", + "Exported", + "Void" + ], + "default_void": "Void", + "active_statuses": [ + "Open", + "Scheduled", + "Arrived", + "Hold", + "Parts", + "Body", + "Prep", + "Paint", + "Reassembly", + "Sublet", + "Detail", + "Completed", + "Delivered" + ], + "default_arrived": "Arrived", + "default_exported": "Exported", + "default_imported": "Open", + "default_invoiced": "Invoiced", + "default_completed": "Completed", + "default_delivered": "Delivered", + "default_scheduled": "Scheduled", + "production_statuses": [ + "Arrived", + "Hold", + "Parts", + "Body", + "Prep", + "Paint", + "Reassembly", + "Sublet", + "Detail", + "Completed" + ], + "pre_production_statuses": [ + "Open", + "Scheduled" + ], + "post_production_statuses": [ + "Delivered", + "Invoiced", + "Exported" + ] + }, + "md_order_statuses": { + "default_bo": "Backordered", + "default_ordered": "Ordered", + "default_received": "Received", + "default_returned": "Returned" + }, + "shoprates": { + "rate_ats": 8.68, + "rate_ats_flat": 100.0 + }, + "md_responsibility_centers": { + "ar": { + "accountname": "ACCOUNTS RECEIVABLE" + }, + "costs": [ + { + "name": "Aftermarket", + "accountdesc": "Aftermarket", + "accountitem": "Aftermarket", + "accountname": "BODY SHOP COST:PARTS:AFTERMARKET", + "accountnumber": "Aftermarket" + }, + { + "name": "ATP", + "accountdesc": "ATP", + "accountitem": "BODY SHOP_ATP", + "accountname": "BODY SHOP COST:ATP", + "accountnumber": "ATP" + }, + { + "name": "Body", + "accountdesc": "Body", + "accountitem": "BODY SHOP_LAB", + "accountname": "BODY SHOP COST:LABOR:BODY", + "accountnumber": "BODY" + }, + { + "name": "DETAIL", + "accountdesc": "Detailing", + "accountitem": "Detail", + "accountname": "BODY SHOP COST:LABOR:DETAIL", + "accountnumber": "DETAIL" + }, + { + "name": "Diagnostic", + "accountdesc": "Diagnostic", + "accountitem": "BODY SHOP_LAB", + "accountname": "BODY SHOP COST:SUBLET", + "accountnumber": "SUBLET" + }, + { + "name": "Electrical", + "accountdesc": "Electrical", + "accountitem": "Electrical", + "accountname": "BODY SHOP COST:SUBLET", + "accountnumber": "Electrical" + }, + { + "name": "Chrome", + "accountdesc": "Chrome", + "accountitem": "Chrome", + "accountname": "BODY SHOP COST:PARTS:AFTERMARKET", + "accountnumber": "Aftermarket" + }, + { + "name": "Frame", + "accountdesc": "Frame", + "accountitem": "Frame", + "accountname": "BODY SHOP COST:LABOR:FRAME", + "accountnumber": "Frame" + }, + { + "name": "Mechanical", + "accountdesc": "Mechanical", + "accountitem": "Mechanical", + "accountname": "BODY SHOP COST:LABOR:MECHANICAL", + "accountnumber": "Mechanical" + }, + { + "name": "Refinish", + "accountdesc": "Refinish", + "accountitem": "BODY SHOP_LAR", + "accountname": "BODY SHOP COST:LABOR:REFINISH", + "accountnumber": "REFINISH" + }, + { + "name": "Structural", + "accountdesc": "Structural", + "accountitem": "Structural", + "accountname": "BODY SHOP COST:SUBLET", + "accountnumber": "SUBLET" + }, + { + "name": "Existing", + "accountdesc": "Existing", + "accountitem": "Existing", + "accountname": "BODY SHOP COST:PARTS:OTHER", + "accountnumber": "Existing" + }, + { + "name": "Glass", + "accountdesc": "Glass", + "accountitem": "Glass", + "accountname": "BODY SHOP COST:PARTS:GLASS", + "accountnumber": "Glass" + }, + { + "name": "LKQ", + "accountdesc": "LKQ", + "accountitem": "LKQ", + "accountname": "BODY SHOP COST:PARTS:LKQ", + "accountnumber": "LKQ" + }, + { + "name": "OEM", + "accountdesc": "OEM", + "accountitem": "OEM", + "accountname": "BODY SHOP COST:PARTS:OEM", + "accountnumber": "OEM" + }, + { + "name": "OEM Partial", + "accountdesc": "Partial", + "accountitem": "Partial", + "accountname": "BODY SHOP COST:PARTS:OEM", + "accountnumber": "OEM " + }, + { + "name": "Re-cored", + "accountdesc": "cored", + "accountitem": "cored", + "accountname": "BODY SHOP COST:PARTS:AFTERMARKET", + "accountnumber": "Aftermarket" + }, + { + "name": "Remanufactured", + "accountdesc": "Remanufactured", + "accountitem": "Remanufactured", + "accountname": "BODY SHOP COST:PARTS:LKQ", + "accountnumber": "Remanufactured" + }, + { + "name": "Other", + "accountdesc": "Other", + "accountitem": "Other", + "accountname": "BODY SHOP COST:PARTS:OTHER", + "accountnumber": "OTHER" + }, + { + "name": "Sublet", + "accountdesc": "Sublet to Other", + "accountitem": "Sublet", + "accountname": "BODY SHOP COST:SUBLET", + "accountnumber": "Sublet" + }, + { + "name": "Towing", + "accountdesc": "Towing", + "accountitem": "Towing", + "accountname": "BODY SHOP COST:TOWING", + "accountnumber": "Towing" + }, + { + "name": "Paint Materials", + "accountdesc": "PAINT MATERIALS", + "accountitem": "mat", + "accountname": "BODY SHOP COST:MATERIALS:PAINT", + "accountnumber": "PAINT" + }, + { + "name": "Shop Materials", + "accountdesc": "BODY MATERIALS", + "accountitem": "shop", + "accountname": "BODY SHOP COST:MATERIALS:BODY", + "accountnumber": "Shop" + }, + { + "name": "Levies", + "accountdesc": "Levies", + "accountitem": "Levies", + "accountname": "BODY SHOP COST:Levies (Tire And Battery)", + "accountnumber": "Levies" + }, + { + "name": "LA1", + "accountdesc": "LA1", + "accountname": "BODY SHOP COST:LABOR" + }, + { + "name": "LA2", + "accountdesc": "LA2", + "accountname": "BODY SHOP COST:LABOR" + }, + { + "name": "LA3", + "accountdesc": "LA3", + "accountname": "BODY SHOP COST:LABOR" + }, + { + "name": "LA4", + "accountdesc": "LA4", + "accountname": "BODY SHOP COST:LABOR" + }, + { + "name": "Sublet (L)", + "accountdesc": "Sublet Labor", + "accountname": "BODY SHOP COST:SUBLET" + }, + { + "name": "Aluminum", + "accountdesc": "Aluminum", + "accountname": "BODY SHOP COST:LABOR:BODY" + }, + { + "name": "Glass Labor", + "accountdesc": "Glass Labor", + "accountname": "BODY SHOP COST:LABOR:GLASS" + } + ], + "taxes": { + "local": { + "name": "n", + "rate": 0, + "accountdesc": "n", + "accountitem": "n" + }, + "state": { + "name": "PST on Sales", + "rate": 7, + "accountdesc": "PST on Sales", + "accountitem": "PST On Sales" + }, + "federal": { + "name": "GST on Sales", + "rate": 5, + "accountdesc": "GST on Sales", + "accountitem": "GST On Sales" + } + }, + "refund": { + "accountitem": "BODY SHOP_CUSTPAY" + }, + "profits": [ + { + "name": "Aftermarket", + "accountdesc": "Aftermarket", + "accountitem": "BODY SHOP_PAA", + "accountname": "Aftermarket", + "accountnumber": "Aftermarket" + }, + { + "name": "ATP", + "accountdesc": "ATP", + "accountitem": "BODY SHOP_ATP", + "accountname": "ATP", + "accountnumber": "ATP" + }, + { + "name": "Body", + "accountdesc": "Body Labour", + "accountitem": "BODY SHOP_LAB", + "accountname": "BODY SHOP SALES:LABOR:BODY", + "accountnumber": "Body" + }, + { + "name": "Detail", + "accountdesc": "Detail", + "accountitem": "BODY SHOP_LAU", + "accountname": "BODY SHOP SALES:LABOR:DETAIL", + "accountnumber": "Detail" + }, + { + "name": "Diagnostic", + "accountdesc": "Diagnostic", + "accountitem": "BODY SHOP_LAB", + "accountname": "BODY SHOP SALES:LABOR:BODY", + "accountnumber": "Body" + }, + { + "name": "Electrical", + "accountdesc": "Electrical", + "accountitem": "BODY SHOP_LAB", + "accountname": "BODY SHOP SALES:LABOR:BODY", + "accountnumber": "Body" + }, + { + "name": "Chrome", + "accountdesc": "Chrome", + "accountitem": "BODY SHOP_PAA", + "accountname": "Aftermarket", + "accountnumber": "Aftermarket" + }, + { + "name": "Frame", + "accountdesc": "Frame", + "accountitem": "BODY SHOP_LAF", + "accountname": "Frame", + "accountnumber": "Frame" + }, + { + "name": "Mechanical", + "accountdesc": "Mechanical", + "accountitem": "BODY SHOP_LAM", + "accountname": "Mechanical", + "accountnumber": "Mechanical" + }, + { + "name": "Refinish", + "accountdesc": "Refinish Labour", + "accountitem": "BODY SHOP_LAR", + "accountname": "BODY SHOP SALES:LABOR:REFINISH", + "accountnumber": "Refinish" + }, + { + "name": "Structural", + "accountdesc": "Structural", + "accountitem": "BODY SHOP_LAB", + "accountname": "Structural", + "accountnumber": "Structural" + }, + { + "name": "Existing", + "accountdesc": "Existing", + "accountitem": "BODY SHOP_PAO", + "accountname": "Existing", + "accountnumber": "Existing" + }, + { + "name": "Glass", + "accountdesc": "Glass", + "accountitem": "BODY SHOP_LAB", + "accountname": "Glass", + "accountnumber": "Glass" + }, + { + "name": "LKQ", + "accountdesc": "LKQ", + "accountitem": "BODY SHOP_PAL", + "accountname": "BODY SHOP SALES:PARTS:LKQ", + "accountnumber": "LKQ" + }, + { + "name": "OEM", + "accountdesc": "OEM Parts", + "accountitem": "BODY SHOP_PAN", + "accountname": "BODY SHOP SALES:PARTS:OEM", + "accountnumber": "OEM" + }, + { + "name": "OEM Partial", + "accountdesc": "OEM Partial", + "accountitem": "BODY SHOP_PAN", + "accountname": "OEM Partial", + "accountnumber": "OEM Partial" + }, + { + "name": "Re-cored", + "accountdesc": "Cored", + "accountitem": "BODY SHOP_PAO", + "accountname": "Re-cored", + "accountnumber": "Re-cored" + }, + { + "name": "Remanufactured", + "accountdesc": "Remanufactured", + "accountitem": "BODY SHOP_PAO", + "accountname": "Remanufactured", + "accountnumber": "Remanufactured" + }, + { + "name": "Other", + "accountdesc": "Other", + "accountitem": "BODY SHOP_PAO", + "accountname": "Other", + "accountnumber": "Other" + }, + { + "name": "Sublet", + "accountdesc": "Sublet", + "accountitem": "BODY SHOP_PAS", + "accountname": "BODY SHOP SALES:SUBLET", + "accountnumber": "BODY SHOP SALES:SUBLET" + }, + { + "name": "Towing", + "accountdesc": "Towing", + "accountitem": "BODY SHOP_TOW", + "accountname": "BODY SHOP SALES:TOWING", + "accountnumber": "BODY SHOP SALES:TOWING" + }, + { + "name": "Paint Materials", + "accountdesc": "Paint Material ", + "accountitem": "BODY SHOP_MAPA", + "accountname": "BODY SHOP SALES:MATERIALS:PAINT", + "accountnumber": "BODY SHOP SALES:MATERIALS:PAINT" + }, + { + "name": "Shop Materials", + "accountdesc": "Shop Material ", + "accountitem": "BODY SHOP_MASH", + "accountname": "BODY SHOP SALES:MATERIALS:SHOP", + "accountnumber": "BODY SHOP SALES:MATERIALS:SHOP" + }, + { + "name": "LA1", + "accountdesc": "LA1", + "accountitem": "BODY SHOP_LAB" + }, + { + "name": "LA2", + "accountdesc": "LA2", + "accountitem": "BODY SHOP_LAB" + }, + { + "name": "LA3", + "accountdesc": "LA3", + "accountitem": "BODY SHOP_LAB" + }, + { + "name": "LA4", + "accountdesc": "LA4", + "accountitem": "BODY SHOP_LAB" + }, + { + "name": "Sublet Labor", + "accountdesc": "PASL", + "accountitem": "BODY SHOP_PAS" + }, + { + "name": "Aluminum", + "accountdesc": "Aluminum", + "accountitem": "BODY SHOP_LAB" + }, + { + "name": "Adjustments", + "accountdesc": "Adjustments", + "accountitem": "BODY SHOP_ADJ" + }, + { + "name": "Glass Labor", + "accountdesc": "Glass Labor", + "accountitem": "BODY SHOP_LAG" + } + ], + "defaults": { + "costs": { + "ATS": "ATP", + "LA1": "LA1", + "LA2": "LA2", + "LA3": "LA3", + "LA4": "LA4", + "LAA": "Aluminum", + "LAB": "Body", + "LAD": "Diagnostic", + "LAE": "Electrical", + "LAF": "Frame", + "LAG": "Glass Labor", + "LAM": "Mechanical", + "LAR": "Refinish", + "LAS": "Structural", + "LAU": "DETAIL", + "PAA": "Aftermarket", + "PAC": "Chrome", + "PAG": "Glass", + "PAL": "LKQ", + "PAM": "Remanufactured", + "PAN": "OEM", + "PAO": "Other", + "PAP": "OEM Partial", + "PAR": "Re-cored", + "PAS": "Sublet", + "TOW": "Towing", + "MAPA": "Paint Materials", + "MASH": "Shop Materials", + "PASL": "Sublet (L)" + }, + "profits": { + "ATS": "ATP", + "LA1": "LA1", + "LA2": "LA2", + "LA3": "LA3", + "LA4": "LA4", + "LAA": "Body", + "LAB": "Body", + "LAD": "Diagnostic", + "LAE": "Electrical", + "LAF": "Frame", + "LAG": "Glass Labor", + "LAM": "Mechanical", + "LAR": "Refinish", + "LAS": "Structural", + "LAU": "Detail", + "PAA": "Aftermarket", + "PAC": "Chrome", + "PAG": "Glass", + "PAL": "LKQ", + "PAM": "Remanufactured", + "PAN": "OEM", + "PAO": "Other", + "PAP": "OEM Partial", + "PAR": "Re-cored", + "PAS": "Sublet", + "TOW": "Towing", + "MAPA": "Paint Materials", + "MASH": "Shop Materials", + "PASL": "Sublet Labor" + } + }, + "sales_tax_codes": [ + { + "code": "G", + "local": false, + "state": false, + "federal": true, + "description": "GST Only" + }, + { + "code": "S", + "state": true, + "federal": true, + "description": "Standard" + }, + { + "code": "E", + "local": false, + "state": false, + "federal": false, + "description": "Exempt" + } + ] + }, + "template_header": "", + "bill_tax_rates": { + "local_tax_rate": 0, + "state_tax_rate": 7, + "federal_tax_rate": 5 + }, + "accountingconfig": { + "tiers": 2, + "twotierpref": "source" + }, + "appt_length": 15, + "stripe_acct_id": "", + "ssbuckets": [ + { + "id": "express", + "lt": 3, + "gte": 0, + "label": "Express", + "target": 1 + }, + { + "id": "small", + "lt": 8, + "gte": 3, + "label": "Small", + "target": 4 + }, + { + "id": "medium", + "lt": 15, + "gte": 8, + "label": "Medium", + "target": 2 + }, + { + "id": "large", + "lt": 30, + "gte": 15, + "label": "Large", + "target": 1 + }, + { + "id": "heavy", + "lt": 999, + "gte": 30, + "label": "Heavy", + "target": 1 + } + ], + "scoreboard_target": { + "dailyBodyTarget": 80, + "dailyPaintTarget": 25, + "lastNumberWorkingDays": 12 + }, + "md_referral_sources": [ + "Friend", + "Word of Mouth", + "Google", + "ICBC" + ], + "md_messaging_presets": [ + { + "text": "Thanks for getting your car fixed with us.", + "label": "Thanks" + }, + { + "text": "Your appointment has been confirmed!", + "label": "Confirmation" + } + ], + "intakechecklist": { + "form": [ + { + "name": "Keys", + "type": "checkbox", + "label": "Keys", + "required": false + }, + { + "name": "Wheel Locks", + "type": "checkbox", + "label": "Wheel Locks", + "required": false + }, + { + "name": "Notes", + "type": "textarea", + "label": "Notes" + } + ], + "templates": [ + "worksheet_sorted_by_operation", + "fippa_authorization" + ] + }, + "speedprint": [ + { + "id": "New File", + "label": "New File", + "templates": [ + "coversheet_landscape", + "fippa_authorization", + "window_tag" + ] + }, + { + "id": "Final Paperwork", + "label": "Final Paperwork", + "templates": [ + "ro_totals", + "final_invoice" + ] + }, + { + "id": "Tech Paperwork", + "label": "Tech Paperwork", + "templates": [ + "worksheet_sorted_by_operation", + "supplement_request" + ] + } + ], + "md_parts_locations": [ + "Parts Room A", + "Parts Room B" + ], + "md_notes_presets": [ + { + "text": "CUSTOMER UPDATE:", + "label": "CUSTOMER UPDATE:" + } + ], + "md_rbac": { + "csi:page": 11, + "jobs:void": 80, + "shop:rbac": 99, + "bills:list": 11, + "bills:view": 11, + "csi:export": 11, + "jobs:admin": 80, + "jobs:close": 11, + "bills:enter": 11, + "jobs:create": 11, + "jobs:detail": 11, + "jobs:intake": 11, + "owners:list": 11, + "shop:config": 70, + "bills:delete": 11, + "jobs:deliver": 11, + "shop:vendors": 1, + "jobs:list-all": 11, + "owners:detail": 11, + "payments:list": 11, + "schedule:view": 11, + "bills:reexport": 11, + "contracts:list": 11, + "employees:page": 80, + "payments:enter": 11, + "phonebook:edit": 11, + "phonebook:view": 1, + "shop:dashboard": 80, + "jobs:list-ready": 11, + "jobs:partsqueue": 1, + "production:list": 1, + "scoreboard:view": 11, + "shiftclock:view": 1, + "contracts:create": 11, + "contracts:detail": 11, + "courtesycar:list": 11, + "jobs:list-active": 1, + "production:board": 1, + "timetickets:edit": 80, + "timetickets:list": 11, + "ttapprovals:view": 80, + "users:editaccess": 99, + "shop:reportcenter": 11, + "timetickets:enter": 1, + "courtesycar:create": 11, + "courtesycar:detail": 11, + "temporarydocs:view": 1, + "accounting:payables": 11, + "accounting:payments": 11, + "employee_teams:page": 80, + "jobs:available-list": 11, + "jobs:checklist-view": 11, + "ttapprovals:approve": 80, + "accounting:exportlog": 11, + "timetickets:shiftedit": 80, + "accounting:receivables": 11, + "timetickets:editcommitted": 80 + }, + "prodtargethrs": 105.0, + "md_classes": [], + "md_ins_cos": [ + { + "zip": "", + "city": "", + "name": "ICBC", + "state": "", + "street1": "" + }, + { + "zip": "", + "city": "", + "name": "ICBC-GLASS", + "state": "", + "street1": "" + }, + { + "zip": "", + "city": "", + "name": "PRIVATE", + "state": "", + "street1": "" + }, + { + "zip": "", + "city": "", + "name": "BCAA", + "state": "", + "street1": "" + }, + { + "zip": "", + "city": "", + "name": "ECONOMICAL", + "state": "", + "street1": "" + }, + { + "zip": "", + "city": "", + "name": "MPI", + "state": "", + "street1": "" + }, + { + "zip": "", + "city": "", + "name": "OPTIOM", + "state": "", + "street1": "" + }, + { + "zip": "", + "city": "", + "name": "SGI", + "state": "", + "street1": "" + }, + { + "zip": "", + "city": "", + "name": "WARRANTY", + "state": "", + "street1": "" + } + ], + "md_categories": [ + "Hit & Run", + "OEM only", + "Comp", + "Warranty" + ], + "enforce_class": false, + "md_labor_rates": [ + { + "label": "1", + "rate_la1": 0, + "rate_la2": 0, + "rate_la3": 0, + "rate_la4": 0, + "rate_laa": 0, + "rate_lab": 75.3, + "rate_lad": 0, + "rate_lae": 0, + "rate_laf": 86.07, + "rate_lag": 0, + "rate_lam": 94.39, + "rate_lar": 75.3, + "rate_las": 0, + "rate_ma2s": 0, + "rate_ma3s": 0, + "rate_mabl": 1, + "rate_macs": 1, + "rate_mahw": 0, + "rate_mapa": 45.15, + "rate_mash": 6.11, + "rate_matd": 0, + "rate_label": "PRIVATE" + } + ], + "deliverchecklist": { + "form": [ + { + "name": "Detailed", + "type": "checkbox", + "label": "Detailed?", + "required": false + }, + { + "name": "Post Scan", + "type": "checkbox", + "label": "Scanned?", + "required": false + }, + { + "name": "Comments", + "type": "text", + "label": "Additional Comments?", + "required": false + } + ], + "templates": [ + "ro_with_description", + "final_invoice", + "invoice_total_payable" + ], + "actual_delivery": true + }, + "target_touchtime": 3.0, + "appt_colors": [ + { + "color": { + "hex": "#e6b3e4", + "hsl": { + "a": 1, + "h": 301.8897637795275, + "l": 0.8, + "s": 0.4999999999999999 + }, + "hsv": { + "a": 1, + "h": 301.8897637795275, + "s": 0.22222222222222215, + "v": 0.9 + }, + "rgb": { + "a": 1, + "b": 228, + "g": 179, + "r": 230 + }, + "oldHue": 301.8897637795275, + "source": "hsl" + }, + "label": "EXPRESS 0-3H" + }, + { + "color": { + "hex": "#e5e6b3", + "hsl": { + "a": 1, + "h": 60.00000000000003, + "l": 0.8, + "s": 0.4999999999999999 + }, + "hsv": { + "a": 1, + "h": 60.00000000000003, + "s": 0.22222222222222215, + "v": 0.9 + }, + "rgb": { + "a": 1, + "b": 179, + "g": 230, + "r": 229 + }, + "oldHue": 60, + "source": "hsl" + }, + "label": "SMALL 3-8H" + }, + { + "color": { + "hex": "#40bf5e", + "hsl": { + "a": 1, + "h": 134.11764705882354, + "l": 0.5, + "s": 0.5 + }, + "hsv": { + "a": 1, + "h": 134.11764705882354, + "s": 0.6666666666666666, + "v": 0.75 + }, + "rgb": { + "a": 1, + "b": 94, + "g": 191, + "r": 64 + }, + "oldHue": 134.11764705882354, + "source": "hsl" + }, + "label": "MEDIUM 8-15H" + }, + { + "color": { + "hex": "#4085bf", + "hsl": { + "a": 1, + "h": 207.4015748031496, + "l": 0.5, + "s": 0.5 + }, + "hsv": { + "a": 1, + "h": 207.4015748031496, + "s": 0.6666666666666666, + "v": 0.75 + }, + "rgb": { + "a": 1, + "b": 191, + "g": 133, + "r": 64 + }, + "oldHue": 207.4015748031496, + "source": "hsl" + }, + "label": "LARGE 15-30H" + }, + { + "color": { + "hex": "#bf4068", + "hsl": { + "a": 1, + "h": 341.12359550561797, + "l": 0.5, + "s": 0.5 + }, + "hsv": { + "a": 1, + "h": 341.12359550561797, + "s": 0.6666666666666666, + "v": 0.75 + }, + "rgb": { + "a": 1, + "b": 104, + "g": 64, + "r": 191 + }, + "oldHue": 341.12359550561797, + "source": "hsl" + }, + "label": "HEAVY 30-999H" + }, + { + "color": { + "hex": "#b3e6e2", + "hsl": { + "a": 1, + "h": 175.95505617977528, + "l": 0.8, + "s": 0.4999999999999999 + }, + "hsv": { + "a": 1, + "h": 175.95505617977528, + "s": 0.22222222222222215, + "v": 0.9 + }, + "rgb": { + "a": 1, + "b": 226, + "g": 230, + "r": 179 + }, + "oldHue": 175.95505617977528, + "source": "hsl" + }, + "label": "EST" + }, + { + "color": { + "hex": "#3b2d86", + "hsl": { + "a": 1, + "h": 249.99999999999994, + "l": 0.35, + "s": 0.49999999999999983 + }, + "hsv": { + "a": 1, + "h": 249.99999999999994, + "s": 0.6666666666666665, + "v": 0.5249999999999999 + }, + "rgb": { + "a": 1, + "b": 134, + "g": 45, + "r": 59 + }, + "oldHue": 249.99999999999994, + "source": "hsl" + }, + "label": "OTHER APPT" + } + ], + "appt_alt_transport": [ + "No car", + "Rental", + "CC", + "Vehicle Pick up", + "Ride", + "Internal" + ], + "schedule_start_time": "2020-12-15T16:00:00+00:00", + "schedule_end_time": "2021-02-12T01:30:00+00:00", + "default_adjustment_rate": 0, + "workingdays": { + "friday": true, + "monday": true, + "sunday": false, + "tuesday": true, + "saturday": false, + "thursday": true, + "wednesday": true + }, + "use_fippa": false, + "md_payment_types": [ + "Cash", + "Cheque", + "Master Card", + "Visa", + "Debit", + "EFT", + "American Express" + ], + "md_hour_split": { + "prep": 0.0, + "paint": 0.0 + }, + "sub_status": "active", + "jobsizelimit": 104857600, + "md_ccc_rates": [], + "enforce_referral": false, + "last_name_first": true, + "jc_hourly_rates": { + "mapa": 33.0, + "mash": 4.2 + }, + "md_jobline_presets": [ + { + "label": "Glass Labour", + "line_desc": "Glass Labour", + "mod_lb_hrs": null, + "mod_lbr_ty": "LAG" + }, + { + "label": "Urethane", + "part_qty": 1, + "act_price": 48, + "line_desc": "Urethane", + "part_type": "PAL" + }, + { + "label": "Windshield OEM", + "part_qty": 1, + "part_type": "PAN" + }, + { + "label": "PDR", + "part_type": "PAS", + "oem_partno": "" + }, + { + "label": "Windshield Aftermarket", + "part_qty": 1, + "part_type": "PAA" + }, + { + "label": "Moulding", + "part_qty": 1, + "part_type": "PAA" + } + ], + "cdk_dealerid": null, + "features": { + "allAccess": true, + "singleDeviceOnly": false + }, + "attach_pdf_to_email": true, + "tt_allow_post_to_invoiced": true, + "cdk_configuration": null, + "md_estimators": [], + "md_ded_notes": [ + "Paid", + "Owning" + ], + "pbs_configuration": {}, + "pbs_serialnumber": null, + "md_filehandlers": [], + "md_email_cc": { + "parts_order": [] + }, + "timezone": "America/Vancouver" +} diff --git a/server/integrations/partsManagement/partsManagementProvisioning.js b/server/integrations/partsManagement/partsManagementProvisioning.js new file mode 100644 index 000000000..8e2213bdf --- /dev/null +++ b/server/integrations/partsManagement/partsManagementProvisioning.js @@ -0,0 +1,257 @@ +const crypto = require("crypto"); +const admin = require("firebase-admin"); +const client = require("../../graphql-client/graphql-client").client; +const DefaultNewShop = require("./defaultNewShop.json"); + +/** + * Ensures that the required fields are present in the payload. + * @param payload + * @param fields + */ +const requireFields = (payload, fields) => { + for (const field of fields) { + if (!payload[field]) { + throw { status: 400, message: `${field} is required.` }; + } + } +}; + +/** + * Ensures that the email is not already registered in Firebase. + * @param email + * @returns {Promise} + */ +const ensureEmailNotRegistered = async (email) => { + try { + await admin.auth().getUserByEmail(email); + throw { status: 400, message: "userEmail is already registered in Firebase." }; + } catch (err) { + if (err.code !== "auth/user-not-found") { + throw { status: 500, message: "Error validating userEmail uniqueness", detail: err }; + } + } +}; + +/** + * Creates a new Firebase user with the provided email. + * @param email + * @returns {Promise} + */ +const createFirebaseUser = async (email) => { + return admin.auth().createUser({ email }); +}; + +/** + * Deletes a Firebase user by their UID. + * @param uid + * @returns {Promise} + */ +const deleteFirebaseUser = async (uid) => { + return admin.auth().deleteUser(uid); +}; + +/** + * Generates a password reset link for the given email. + * @param email + * @returns {Promise} + */ +const generateResetLink = async (email) => { + return admin.auth().generatePasswordResetLink(email); +}; + +/** + * Ensures that the external shop ID is unique in the database. + * @param externalId + * @returns {Promise} + */ +const ensureExternalIdUnique = async (externalId) => { + const query = ` + query CHECK_KEY($key: String!) { + bodyshops(where: { external_shop_id: { _eq: $key } }) { + external_shop_id + } + }`; + const resp = await client.request(query, { key: externalId }); + if (resp.bodyshops.length) { + throw { status: 400, message: `external_shop_id '${externalId}' is already in use.` }; + } +}; + +/** + * Inserts a new bodyshop into the database. + * @param input + * @returns {Promise<*>} + */ +const insertBodyshop = async (input) => { + const mutation = ` + mutation CREATE_SHOP($bs: bodyshops_insert_input!) { + insert_bodyshops_one(object: $bs) { id } + }`; + const resp = await client.request(mutation, { bs: input }); + return resp.insert_bodyshops_one.id; +}; + +/** + * Deletes all vendors associated with a specific shop ID. + * @param shopId + * @returns {Promise} + */ +const deleteVendorsByShop = async (shopId) => { + const mutation = ` + mutation DELETE_VENDORS($shopId: uuid!) { + delete_vendors(where: { shopid: { _eq: $shopId } }) { + affected_rows + } + }`; + await client.request(mutation, { shopId }); +}; + +/** + * Deletes a bodyshop by its ID. + * @param shopId + * @returns {Promise} + */ +const deleteBodyshop = async (shopId) => { + const mutation = ` + mutation DELETE_SHOP($id: uuid!) { + delete_bodyshops_by_pk(id: $id) { id } + }`; + await client.request(mutation, { id: shopId }); +}; + +/** + * Inserts a new user association into the database. + * @param uid + * @param email + * @param shopId + * @returns {Promise<*>} + */ +const insertUserAssociation = async (uid, email, shopId) => { + const mutation = ` + mutation CREATE_USER($u: users_insert_input!) { + insert_users_one(object: $u) { + id: authid + email + } + }`; + const vars = { + u: { + email, + authid: uid, + validemail: true, + associations: { + data: [{ shopid: shopId, authlevel: 80, active: true }] + } + } + }; + const resp = await client.request(mutation, vars); + return resp.insert_users_one; +}; + +/** + * Handles the provisioning of a new parts management shop and user. + * @param req + * @param res + * @returns {Promise<*>} + */ +const partsManagementProvisioning = async (req, res) => { + const { logger } = req; + const p = { ...req.body, userEmail: req.body.userEmail?.toLowerCase() }; + + try { + // Validate inputs + await ensureEmailNotRegistered(p.userEmail); + requireFields(p, [ + "external_shop_id", + "shopname", + "address1", + "city", + "state", + "zip_post", + "country", + "email", + "phone", + "userEmail" + ]); + await ensureExternalIdUnique(p.external_shop_id); + + logger.log("admin-create-shop-user", "debug", p.userEmail, null, { + request: req.body, + ioadmin: true + }); + + // Create shop + const shopInput = { + shopname: p.shopname, + address1: p.address1, + address2: p.address2 || null, + city: p.city, + state: p.state, + zip_post: p.zip_post, + country: p.country, + email: p.email, + external_shop_id: p.external_shop_id, + timezone: p.timezone, + phone: p.phone, + logo_img_path: { + src: p.logoUrl, + width: "", + height: "", + headerMargin: DefaultNewShop.logo_img_path.headerMargin + }, + md_ro_statuses: DefaultNewShop.md_ro_statuses, + vendors: { + data: p.vendors.map((v) => ({ + name: v.name, + street1: v.street1 || null, + street2: v.street2 || null, + city: v.city || null, + state: v.state || null, + zip: v.zip || null, + country: v.country || null, + email: v.email || null, + discount: v.discount ?? 0, + due_date: v.due_date ?? null, + cost_center: v.cost_center || null, + favorite: v.favorite ?? [], + phone: v.phone || null, + active: v.active ?? true, + dmsid: v.dmsid || null + })) + } + }; + const newShopId = await insertBodyshop(shopInput); + + // Create user + association + const userRecord = await createFirebaseUser(p.userEmail); + const resetLink = await generateResetLink(p.userEmail); + const createdUser = await insertUserAssociation(userRecord.uid, p.userEmail, newShopId); + + return res.status(200).json({ + shop: { id: newShopId, shopname: p.shopname }, + user: { + id: createdUser.id, + email: createdUser.email, + resetLink + } + }); + } catch (err) { + logger.log("admin-create-shop-user-error", "error", p.userEmail, null, { + message: err.message, + detail: err.detail || err + }); + + // Cleanup on failure + if (err.userRecord) { + await deleteFirebaseUser(err.userRecord.uid).catch(() => {}); + } + if (err.newShopId) { + await deleteVendorsByShop(err.newShopId).catch(() => {}); + await deleteBodyshop(err.newShopId).catch(() => {}); + } + + return res.status(err.status || 500).json({ error: err.message || "Internal server error" }); + } +}; + +module.exports = partsManagementProvisioning; diff --git a/server/integrations/partsManagement/swagger.yaml b/server/integrations/partsManagement/swagger.yaml new file mode 100644 index 000000000..40e28e9b5 --- /dev/null +++ b/server/integrations/partsManagement/swagger.yaml @@ -0,0 +1,160 @@ +openapi: 3.0.3 +info: + title: Parts Management Provisioning API + description: API endpoint to provision a new shop and user in the Parts Management system. + version: 1.0.0 + +paths: + /parts-management/provision: + post: + summary: Provision a new parts management shop and user + operationId: partsManagementProvisioning + tags: + - Parts Management + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - external_shop_id + - shopname + - address1 + - city + - state + - zip_post + - country + - email + - phone + - userEmail + properties: + external_shop_id: + type: string + description: External shop ID (must be unique) + shopname: + type: string + address1: + type: string + address2: + type: string + nullable: true + city: + type: string + state: + type: string + zip_post: + type: string + country: + type: string + email: + type: string + phone: + type: string + userEmail: + type: string + format: email + logoUrl: + type: string + format: uri + nullable: true + timezone: + type: string + nullable: true + vendors: + type: array + items: + type: object + properties: + name: + type: string + street1: + type: string + nullable: true + street2: + type: string + nullable: true + city: + type: string + nullable: true + state: + type: string + nullable: true + zip: + type: string + nullable: true + country: + type: string + nullable: true + email: + type: string + format: email + nullable: true + discount: + type: number + nullable: true + due_date: + type: string + format: date + nullable: true + cost_center: + type: string + nullable: true + favorite: + type: array + items: + type: string + nullable: true + phone: + type: string + nullable: true + active: + type: boolean + nullable: true + dmsid: + type: string + nullable: true + responses: + '200': + description: Shop and user successfully created + content: + application/json: + schema: + type: object + properties: + shop: + type: object + properties: + id: + type: string + format: uuid + shopname: + type: string + user: + type: object + properties: + id: + type: string + email: + type: string + resetLink: + type: string + format: uri + '400': + description: Bad request (missing or invalid fields) + content: + application/json: + schema: + type: object + properties: + error: + type: string + '500': + description: Internal server error + content: + application/json: + schema: + type: object + properties: + error: + type: string diff --git a/server/middleware/partsManagementIntegrationMiddleware.js b/server/middleware/partsManagementIntegrationMiddleware.js new file mode 100644 index 000000000..b564543a4 --- /dev/null +++ b/server/middleware/partsManagementIntegrationMiddleware.js @@ -0,0 +1,23 @@ +/** + * Middleware to check if the request is authorized for Parts Management Integration. + * @param req + * @param res + * @param next + * @returns {*} + */ +const partsManagementIntegrationMiddleware = (req, res, next) => { + const secret = process.env.PARTS_MANAGEMENT_INTEGRATION_SECRET; + if (typeof secret !== "string" || secret.length === 0) { + return res.status(500).send("Server misconfiguration"); + } + + const headerValue = req.headers["parts-management-integration-secret"]; + if (typeof headerValue !== "string" || headerValue.trim() !== secret) { + return res.status(401).send("Unauthorized"); + } + + req.isPartsManagementIntegrationAuthorized = true; + next(); +}; + +module.exports = partsManagementIntegrationMiddleware; diff --git a/server/middleware/vsstaIntegrationMiddleware.js b/server/middleware/vsstaIntegrationMiddleware.js index 44a0bb45d..081c41179 100644 --- a/server/middleware/vsstaIntegrationMiddleware.js +++ b/server/middleware/vsstaIntegrationMiddleware.js @@ -1,16 +1,19 @@ /** * VSSTA Integration Middleware - * @param req - * @param res - * @param next - * @returns {*} + * Fails closed if the env var is missing or empty, and strictly compares header. */ const vsstaIntegrationMiddleware = (req, res, next) => { - if (req?.headers?.["vssta-integration-secret"] !== process.env?.VSSTA_INTEGRATION_SECRET) { + const secret = process.env.VSSTA_INTEGRATION_SECRET; + if (typeof secret !== "string" || secret.length === 0) { + return res.status(500).send("Server misconfiguration"); + } + + const headerValue = req.headers["vssta-integration-secret"]; + if (typeof headerValue !== "string" || headerValue.trim() !== secret) { return res.status(401).send("Unauthorized"); } - req.isIntegrationAuthorized = true; + req.isVsstaIntegrationAuthorized = true; next(); }; diff --git a/server/routes/intergrationRoutes.js b/server/routes/intergrationRoutes.js index 841805675..46826d28e 100644 --- a/server/routes/intergrationRoutes.js +++ b/server/routes/intergrationRoutes.js @@ -1,8 +1,27 @@ const express = require("express"); -const vsstaIntegration = require("../integrations/VSSTA/vsstaIntegrationRoute"); -const vsstaMiddleware = require("../middleware/vsstaIntegrationMiddleware"); const router = express.Router(); -router.post("/vssta", vsstaMiddleware, vsstaIntegration); +// Pull secrets from env +const { VSSTA_INTEGRATION_SECRET, PARTS_MANAGEMENT_INTEGRATION_SECRET } = process.env; + +// Only load VSSTA routes if the secret is set +if (typeof VSSTA_INTEGRATION_SECRET === "string" && VSSTA_INTEGRATION_SECRET.length > 0) { + const vsstaIntegration = require("../integrations/VSSTA/vsstaIntegrationRoute"); + const vsstaMiddleware = require("../middleware/vsstaIntegrationMiddleware"); + + router.post("/vssta", vsstaMiddleware, vsstaIntegration); +} else { + console.warn("VSSTA_INTEGRATION_SECRET is not set — skipping /vssta integration route"); +} + +// Only load Parts Management routes if that secret is set +if (typeof PARTS_MANAGEMENT_INTEGRATION_SECRET === "string" && PARTS_MANAGEMENT_INTEGRATION_SECRET.length > 0) { + const partsManagementProvisioning = require("../integrations/partsManagement/partsManagementProvisioning"); + const partsManagementIntegrationMiddleware = require("../middleware/partsManagementIntegrationMiddleware"); + + router.post("/parts-management/provision", partsManagementIntegrationMiddleware, partsManagementProvisioning); +} else { + console.warn("PARTS_MANAGEMENT_INTEGRATION_SECRET is not set — skipping /parts-management/provision route"); +} module.exports = router; From 13e4143eeb80830c39aea85a078811eda154d5f7 Mon Sep 17 00:00:00 2001 From: Dave Richer Date: Mon, 9 Jun 2025 18:43:15 -0400 Subject: [PATCH 3/3] feature/IO-3258-Shop-User-Vendor-Creation: Finish --- client/src/translations/en_us/common.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/src/translations/en_us/common.json b/client/src/translations/en_us/common.json index 6055e40a0..b56a6e5ee 100644 --- a/client/src/translations/en_us/common.json +++ b/client/src/translations/en_us/common.json @@ -1232,8 +1232,8 @@ "sizelimit": "The selected items exceed the size limit.", "submit-for-testing": "Error submitting Job for testing.", "sub_status": { - "expired": "The subscription for this shop has expired. Please contact technical support to reactivate.", - "trial-expired": "The trial for this shop has expired. Please contact technical support to reactivate." + "expired": "The subscription for this shop has expired. Please contact Sales to reactivate.", + "trial-expired": "The trial for this shop has expired. Please contact Sales to reactivate." } }, "itemtypes": {