diff --git a/package-lock.json b/package-lock.json
index 6c0a33c..e8efb1e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -10,7 +10,6 @@
"hasInstallScript": true,
"license": "AGPL-3.0-only",
"dependencies": {
- "@aws-sdk/client-s3": "^3.953.0",
"@toondepauw/node-zstd": "^1.2.0",
"ajv": "^8.17.1",
"ajv-formats": "^3.0.1",
@@ -94,87 +93,11 @@
"nodemailer": "^7.0.11"
}
},
- "node_modules/@aws-crypto/crc32": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-5.2.0.tgz",
- "integrity": "sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==",
- "license": "Apache-2.0",
- "dependencies": {
- "@aws-crypto/util": "^5.2.0",
- "@aws-sdk/types": "^3.222.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@aws-crypto/crc32c": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@aws-crypto/crc32c/-/crc32c-5.2.0.tgz",
- "integrity": "sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag==",
- "license": "Apache-2.0",
- "dependencies": {
- "@aws-crypto/util": "^5.2.0",
- "@aws-sdk/types": "^3.222.0",
- "tslib": "^2.6.2"
- }
- },
- "node_modules/@aws-crypto/sha1-browser": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@aws-crypto/sha1-browser/-/sha1-browser-5.2.0.tgz",
- "integrity": "sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg==",
- "license": "Apache-2.0",
- "dependencies": {
- "@aws-crypto/supports-web-crypto": "^5.2.0",
- "@aws-crypto/util": "^5.2.0",
- "@aws-sdk/types": "^3.222.0",
- "@aws-sdk/util-locate-window": "^3.0.0",
- "@smithy/util-utf8": "^2.0.0",
- "tslib": "^2.6.2"
- }
- },
- "node_modules/@aws-crypto/sha1-browser/node_modules/@smithy/is-array-buffer": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz",
- "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==",
- "license": "Apache-2.0",
- "dependencies": {
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/@aws-crypto/sha1-browser/node_modules/@smithy/util-buffer-from": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz",
- "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==",
- "license": "Apache-2.0",
- "dependencies": {
- "@smithy/is-array-buffer": "^2.2.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/@aws-crypto/sha1-browser/node_modules/@smithy/util-utf8": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz",
- "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==",
- "license": "Apache-2.0",
- "dependencies": {
- "@smithy/util-buffer-from": "^2.2.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=14.0.0"
- }
- },
"node_modules/@aws-crypto/sha256-browser": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz",
"integrity": "sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-crypto/sha256-js": "^5.2.0",
@@ -190,6 +113,7 @@
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz",
"integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
@@ -202,6 +126,7 @@
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz",
"integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@smithy/is-array-buffer": "^2.2.0",
@@ -215,6 +140,7 @@
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz",
"integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@smithy/util-buffer-from": "^2.2.0",
@@ -228,6 +154,7 @@
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz",
"integrity": "sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-crypto/util": "^5.2.0",
@@ -242,6 +169,7 @@
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-5.2.0.tgz",
"integrity": "sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
@@ -251,6 +179,7 @@
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-5.2.0.tgz",
"integrity": "sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-sdk/types": "^3.222.0",
@@ -262,6 +191,7 @@
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz",
"integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
@@ -274,6 +204,7 @@
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz",
"integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@smithy/is-array-buffer": "^2.2.0",
@@ -287,6 +218,7 @@
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz",
"integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@smithy/util-buffer-from": "^2.2.0",
@@ -296,72 +228,6 @@
"node": ">=14.0.0"
}
},
- "node_modules/@aws-sdk/client-s3": {
- "version": "3.953.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.953.0.tgz",
- "integrity": "sha512-Lxxdhq5nt6ONulu1UHbIS0tVIar7itXv1m4TJfkVzuSm/yQzxIwnFkLtgW/0P5KIE+FS1yUoE2lS+dJBS1PLFw==",
- "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.953.0",
- "@aws-sdk/credential-provider-node": "3.953.0",
- "@aws-sdk/middleware-bucket-endpoint": "3.953.0",
- "@aws-sdk/middleware-expect-continue": "3.953.0",
- "@aws-sdk/middleware-flexible-checksums": "3.953.0",
- "@aws-sdk/middleware-host-header": "3.953.0",
- "@aws-sdk/middleware-location-constraint": "3.953.0",
- "@aws-sdk/middleware-logger": "3.953.0",
- "@aws-sdk/middleware-recursion-detection": "3.953.0",
- "@aws-sdk/middleware-sdk-s3": "3.953.0",
- "@aws-sdk/middleware-ssec": "3.953.0",
- "@aws-sdk/middleware-user-agent": "3.953.0",
- "@aws-sdk/region-config-resolver": "3.953.0",
- "@aws-sdk/signature-v4-multi-region": "3.953.0",
- "@aws-sdk/types": "3.953.0",
- "@aws-sdk/util-endpoints": "3.953.0",
- "@aws-sdk/util-user-agent-browser": "3.953.0",
- "@aws-sdk/util-user-agent-node": "3.953.0",
- "@smithy/config-resolver": "^4.4.4",
- "@smithy/core": "^3.19.0",
- "@smithy/eventstream-serde-browser": "^4.2.6",
- "@smithy/eventstream-serde-config-resolver": "^4.3.6",
- "@smithy/eventstream-serde-node": "^4.2.6",
- "@smithy/fetch-http-handler": "^5.3.7",
- "@smithy/hash-blob-browser": "^4.2.7",
- "@smithy/hash-node": "^4.2.6",
- "@smithy/hash-stream-node": "^4.2.6",
- "@smithy/invalid-dependency": "^4.2.6",
- "@smithy/md5-js": "^4.2.6",
- "@smithy/middleware-content-length": "^4.2.6",
- "@smithy/middleware-endpoint": "^4.3.15",
- "@smithy/middleware-retry": "^4.4.15",
- "@smithy/middleware-serde": "^4.2.7",
- "@smithy/middleware-stack": "^4.2.6",
- "@smithy/node-config-provider": "^4.3.6",
- "@smithy/node-http-handler": "^4.4.6",
- "@smithy/protocol-http": "^5.3.6",
- "@smithy/smithy-client": "^4.10.0",
- "@smithy/types": "^4.10.0",
- "@smithy/url-parser": "^4.2.6",
- "@smithy/util-base64": "^4.3.0",
- "@smithy/util-body-length-browser": "^4.2.0",
- "@smithy/util-body-length-node": "^4.2.1",
- "@smithy/util-defaults-mode-browser": "^4.3.14",
- "@smithy/util-defaults-mode-node": "^4.2.17",
- "@smithy/util-endpoints": "^3.2.6",
- "@smithy/util-middleware": "^4.2.6",
- "@smithy/util-retry": "^4.2.6",
- "@smithy/util-stream": "^4.5.7",
- "@smithy/util-utf8": "^4.2.0",
- "@smithy/util-waiter": "^4.2.6",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=18.0.0"
- }
- },
"node_modules/@aws-sdk/client-sesv2": {
"version": "3.953.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sesv2/-/client-sesv2-3.953.0.tgz",
@@ -418,6 +284,7 @@
"version": "3.953.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.953.0.tgz",
"integrity": "sha512-WU8XtORGnhy1JjTLflcGcNGU329pmwl/2claTVGp7vrgUKyreQV9Ke3BkMuUPYLOGO/Znstzc1VbUT9ORH3+WQ==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-crypto/sha256-browser": "5.2.0",
@@ -467,6 +334,7 @@
"version": "3.953.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.953.0.tgz",
"integrity": "sha512-hnz4ukn+XupuotZcFAyCIX41QqEWSHc8zf4gN4l5qVP2M8YCyZkLLZ5t5LaWLJkUFbOUU2w4SuGpUp+5ddtSkw==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-sdk/types": "3.953.0",
@@ -491,6 +359,7 @@
"version": "3.953.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.953.0.tgz",
"integrity": "sha512-ahOxDxvaKUf99LU9iRmRtPW2HLmsR+ix2WyzRGl1PpLltiRLMbKJHj5Tu2xyOsgLxs8tefK9D1j0SUgPk8GJ6g==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-sdk/core": "3.953.0",
@@ -507,6 +376,7 @@
"version": "3.953.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.953.0.tgz",
"integrity": "sha512-kYQEcJpJLiT+1ZdsQDMrIs2o3YydxdAIDdLUxbIwks1+WQz2sCr9b94ld19aMZ0rejosASO0J3dfY0lt3Tfl+Q==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-sdk/core": "3.953.0",
@@ -528,6 +398,7 @@
"version": "3.953.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.953.0.tgz",
"integrity": "sha512-5cy6b3VntBvhRCanwohRtR0wbKKUd6JfIsnuXImB4JcZa2iMW5tDW0LhNangYZ9wrrM7sJol6cKHtUW9LNemFQ==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-sdk/core": "3.953.0",
@@ -553,6 +424,7 @@
"version": "3.953.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.953.0.tgz",
"integrity": "sha512-Drf4v7uBKnU/nY/qgQD9ZA2zD5gjQEatxQajQHUN54erDSQ2rB5ApNuTnc2cyNwaxURnQvO1J72mwO6P5lIpsg==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-sdk/core": "3.953.0",
@@ -572,6 +444,7 @@
"version": "3.953.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.953.0.tgz",
"integrity": "sha512-/3gUap/QwAV/U3RPStcSjdiksDboTdcz82qajfhURhtAe9iEdoKJy7vTYqg75eX7IjpgBwLGajt0URasUofrPg==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-sdk/credential-provider-env": "3.953.0",
@@ -595,6 +468,7 @@
"version": "3.953.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.953.0.tgz",
"integrity": "sha512-YeqzqxzBzXnqdzn4pBuoXeCmWrXOLIu5owAowUc4dOvHmtlpXxB3beJdQ9g/Ky6fG6iaAPKO1vrCEoHNjM85Dw==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-sdk/core": "3.953.0",
@@ -612,6 +486,7 @@
"version": "3.953.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.953.0.tgz",
"integrity": "sha512-Kp/49vAJweixMo3q85eVpq1JO9KgKc6A+f8/8WDkN5CkMsfKQcGJZbO5JtuJfzar4pPmRKbgOeOP1qQsOmfyfw==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-sdk/client-sso": "3.953.0",
@@ -631,6 +506,7 @@
"version": "3.953.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.953.0.tgz",
"integrity": "sha512-V8SpGVtNjQZboHjb/GLM4L3/6O/AZJFtwJ8fiBaemKMTntl8haioZlQHDklWixR9s9zthOdFsCDs1+92ndUBRw==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-sdk/core": "3.953.0",
@@ -645,67 +521,11 @@
"node": ">=18.0.0"
}
},
- "node_modules/@aws-sdk/middleware-bucket-endpoint": {
- "version": "3.953.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.953.0.tgz",
- "integrity": "sha512-YHVRIOowtGIl/L2WuS83FgRlm31tU0aL1yryWaFtF+AFjA5BIeiFkxIZqaRGxJpJvFEBdohsyq6Ipv5mgWfezg==",
- "license": "Apache-2.0",
- "dependencies": {
- "@aws-sdk/types": "3.953.0",
- "@aws-sdk/util-arn-parser": "3.953.0",
- "@smithy/node-config-provider": "^4.3.6",
- "@smithy/protocol-http": "^5.3.6",
- "@smithy/types": "^4.10.0",
- "@smithy/util-config-provider": "^4.2.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=18.0.0"
- }
- },
- "node_modules/@aws-sdk/middleware-expect-continue": {
- "version": "3.953.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.953.0.tgz",
- "integrity": "sha512-BQTVXrypQ0rbb7au/Hk4IS5GaJZlwk6O44Rjk6Kxb0IvGQhSurNTuesFiJx1sLbf+w+T31saPtODcfQQERqhCQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "@aws-sdk/types": "3.953.0",
- "@smithy/protocol-http": "^5.3.6",
- "@smithy/types": "^4.10.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=18.0.0"
- }
- },
- "node_modules/@aws-sdk/middleware-flexible-checksums": {
- "version": "3.953.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.953.0.tgz",
- "integrity": "sha512-wpCoYg2ok0oSOupFiSPPiXvAhnXce2FkqMt/Bao+kyG3yx26NVG/4/PBftTDVCsJwuDvX/Fw8EuwbAXVmmYLCg==",
- "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.953.0",
- "@aws-sdk/types": "3.953.0",
- "@smithy/is-array-buffer": "^4.2.0",
- "@smithy/node-config-provider": "^4.3.6",
- "@smithy/protocol-http": "^5.3.6",
- "@smithy/types": "^4.10.0",
- "@smithy/util-middleware": "^4.2.6",
- "@smithy/util-stream": "^4.5.7",
- "@smithy/util-utf8": "^4.2.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=18.0.0"
- }
- },
"node_modules/@aws-sdk/middleware-host-header": {
"version": "3.953.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.953.0.tgz",
"integrity": "sha512-jTGhfkONav+r4E6HLOrl5SzBqDmPByUYCkyB/c/3TVb8jX3wAZx8/q9bphKpCh+G5ARi3IdbSisgkZrJYqQ19Q==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-sdk/types": "3.953.0",
@@ -717,24 +537,11 @@
"node": ">=18.0.0"
}
},
- "node_modules/@aws-sdk/middleware-location-constraint": {
- "version": "3.953.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.953.0.tgz",
- "integrity": "sha512-h0urrbteIQEybyIISaJfQLZ/+/lJPRzPWAQT4epvzfgv/4MKZI7K83dK7SfTwAooVKFBHiCMok2Cf0iHDt07Kw==",
- "license": "Apache-2.0",
- "dependencies": {
- "@aws-sdk/types": "3.953.0",
- "@smithy/types": "^4.10.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=18.0.0"
- }
- },
"node_modules/@aws-sdk/middleware-logger": {
"version": "3.953.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.953.0.tgz",
"integrity": "sha512-PlWdVYgcuptkIC0ZKqVUhWNtSHXJSx7U9V8J7dJjRmsXC40X7zpEycvrkzDMJjeTDGcCceYbyYAg/4X1lkcIMw==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-sdk/types": "3.953.0",
@@ -749,6 +556,7 @@
"version": "3.953.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.953.0.tgz",
"integrity": "sha512-cmIJx0gWeesUKK4YwgE+VQL3mpACr3/J24fbwnc1Z5tntC86b+HQFzU5vsBDw6lLwyD46dBgWdsXFh1jL+ZaFw==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-sdk/types": "3.953.0",
@@ -765,6 +573,7 @@
"version": "3.953.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.953.0.tgz",
"integrity": "sha512-qubXS4GeDdoF7nqq2KEqW6jG7OjifwNfb/m6o5b6o7ZF2OSBr1MqyLykDWqnLjLI4NmM4qRPl5oTDGV0kBqoDA==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-sdk/core": "3.953.0",
@@ -786,24 +595,11 @@
"node": ">=18.0.0"
}
},
- "node_modules/@aws-sdk/middleware-ssec": {
- "version": "3.953.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.953.0.tgz",
- "integrity": "sha512-OrhG1kcQ9zZh3NS3RovR028N0+UndQ957zF1k5HPLeFLwFwQN1uPOufzzPzAyXIIKtR69ARFsQI4mstZS4DMvw==",
- "license": "Apache-2.0",
- "dependencies": {
- "@aws-sdk/types": "3.953.0",
- "@smithy/types": "^4.10.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=18.0.0"
- }
- },
"node_modules/@aws-sdk/middleware-user-agent": {
"version": "3.953.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.953.0.tgz",
"integrity": "sha512-xZSU54cEHlIvRTUewyTAajb4WJPdbBd1mIaDYOzac07+vsfMuCREQ5CheQ3inoBfqske7QOX+mIjLpVV4azAnw==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-sdk/core": "3.953.0",
@@ -822,6 +618,7 @@
"version": "3.953.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.953.0.tgz",
"integrity": "sha512-YEBI0b/4ezNkw5W4+RBRUoueFzqEPPrnkh/3LBqeJ7RWZTymBhxlpoLo6Gfxw9LxtDgv2vZ5K5rgC4/6Ly8ADg==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-crypto/sha256-browser": "5.2.0",
@@ -871,6 +668,7 @@
"version": "3.953.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.953.0.tgz",
"integrity": "sha512-5MJgnsc+HLO+le0EK1cy92yrC7kyhGZSpaq8PcQvKs9qtXCXT5Tb6tMdkr5Y07JxYsYOV1omWBynvL6PWh08tQ==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-sdk/types": "3.953.0",
@@ -887,6 +685,7 @@
"version": "3.953.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.953.0.tgz",
"integrity": "sha512-9xDZTrUveWHLJDiXWW7UdrjtdoqlWijQlxIWRMAlxruqdXJDSRkn6taSAs7fGRwHJfxjiDsn84Fcqwx5Lw55zg==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-sdk/middleware-sdk-s3": "3.953.0",
@@ -904,6 +703,7 @@
"version": "3.953.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.953.0.tgz",
"integrity": "sha512-4FWWR3lDDuIftmCEWpGejfkJu2J1VG2MUktChQshADXABfVfM0fsT7OYlO7Sy106nOe9upE4uQTWXg9YT/6ssw==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-sdk/core": "3.953.0",
@@ -922,6 +722,7 @@
"version": "3.953.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.953.0.tgz",
"integrity": "sha512-M9Iwg9kTyqTErI0vOTVVpcnTHWzS3VplQppy8MuL02EE+mJ0BIwpWfsaAPQW+/XnVpdNpWZTsHcNE29f1+hR8g==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@smithy/types": "^4.10.0",
@@ -935,6 +736,7 @@
"version": "3.953.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.953.0.tgz",
"integrity": "sha512-9hqdKkn4OvYzzaLryq2xnwcrPc8ziY34i9szUdgBfSqEC6pBxbY9/lLXmrgzfwMSL2Z7/v2go4Od0p5eukKLMQ==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
@@ -947,6 +749,7 @@
"version": "3.953.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.953.0.tgz",
"integrity": "sha512-rjaS6jrFksopXvNg6YeN+D1lYwhcByORNlFuYesFvaQNtPOufbE5tJL4GJ3TMXyaY0uFR28N5BHHITPyWWfH/g==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-sdk/types": "3.953.0",
@@ -963,6 +766,7 @@
"version": "3.953.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.953.0.tgz",
"integrity": "sha512-mPxK+I1LcrgC/RSa3G5AMAn8eN2Ay0VOgw8lSRmV1jCtO+iYvNeCqOdxoJUjOW6I5BA4niIRWqVORuRP07776Q==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
@@ -975,6 +779,7 @@
"version": "3.953.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.953.0.tgz",
"integrity": "sha512-UF5NeqYesWuFao+u7LJvpV1SJCaLml5BtFZKUdTnNNMeN6jvV+dW/eQoFGpXF94RCqguX0XESmRuRRPQp+/rzQ==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-sdk/types": "3.953.0",
@@ -987,6 +792,7 @@
"version": "3.953.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.953.0.tgz",
"integrity": "sha512-HjJ0Nq/57kg0QCjt8mwBAK6C34njKezy9ItUNcrWITzrBZv7ikQtyqM1pindAIzgLaBb7ly/0kbJqMY+NPbcJA==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-sdk/middleware-user-agent": "3.953.0",
@@ -1011,6 +817,7 @@
"version": "3.953.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.953.0.tgz",
"integrity": "sha512-Zmrj21jQ2OeOJGr9spPiN00aQvXa/WUqRXcTVENhrMt+OFoSOfDFpYhUj9NQ09QmQ8KMWFoWuWW6iKurNqLvAA==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@smithy/types": "^4.10.0",
@@ -1025,6 +832,7 @@
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/@aws/lambda-invoke-store/-/lambda-invoke-store-0.2.2.tgz",
"integrity": "sha512-C0NBLsIqzDIae8HFw9YIrIBsbc0xTiOtt7fAukGPnqQ/+zZNaq+4jhuccltK0QuWHBnNm/a6kLIRA6GFiM10eg==",
+ "dev": true,
"license": "Apache-2.0",
"engines": {
"node": ">=18.0.0"
@@ -2130,6 +1938,7 @@
"version": "4.2.6",
"resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-4.2.6.tgz",
"integrity": "sha512-P7JD4J+wxHMpGxqIg6SHno2tPkZbBUBLbPpR5/T1DEUvw/mEaINBMaPFZNM7lA+ToSCZ36j6nMHa+5kej+fhGg==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@smithy/types": "^4.10.0",
@@ -2139,35 +1948,11 @@
"node": ">=18.0.0"
}
},
- "node_modules/@smithy/chunked-blob-reader": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader/-/chunked-blob-reader-5.2.0.tgz",
- "integrity": "sha512-WmU0TnhEAJLWvfSeMxBNe5xtbselEO8+4wG0NtZeL8oR21WgH1xiO37El+/Y+H/Ie4SCwBy3MxYWmOYaGgZueA==",
- "license": "Apache-2.0",
- "dependencies": {
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=18.0.0"
- }
- },
- "node_modules/@smithy/chunked-blob-reader-native": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-4.2.1.tgz",
- "integrity": "sha512-lX9Ay+6LisTfpLid2zZtIhSEjHMZoAR5hHCR4H7tBz/Zkfr5ea8RcQ7Tk4mi0P76p4cN+Btz16Ffno7YHpKXnQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "@smithy/util-base64": "^4.3.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=18.0.0"
- }
- },
"node_modules/@smithy/config-resolver": {
"version": "4.4.4",
"resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-4.4.4.tgz",
"integrity": "sha512-s3U5ChS21DwU54kMmZ0UJumoS5cg0+rGVZvN6f5Lp6EbAVi0ZyP+qDSHdewfmXKUgNK1j3z45JyzulkDukrjAA==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@smithy/node-config-provider": "^4.3.6",
@@ -2185,6 +1970,7 @@
"version": "3.19.0",
"resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.19.0.tgz",
"integrity": "sha512-Y9oHXpBcXQgYHOcAEmxjkDilUbSTkgKjoHYed3WaYUH8jngq8lPWDBSpjHblJ9uOgBdy5mh3pzebrScDdYr29w==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@smithy/middleware-serde": "^4.2.7",
@@ -2206,6 +1992,7 @@
"version": "4.2.6",
"resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.2.6.tgz",
"integrity": "sha512-xBmawExyTzOjbhzkZwg+vVm/khg28kG+rj2sbGlULjFd1jI70sv/cbpaR0Ev4Yfd6CpDUDRMe64cTqR//wAOyA==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@smithy/node-config-provider": "^4.3.6",
@@ -2218,80 +2005,11 @@
"node": ">=18.0.0"
}
},
- "node_modules/@smithy/eventstream-codec": {
- "version": "4.2.6",
- "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-4.2.6.tgz",
- "integrity": "sha512-OZfsI+YRG26XZik/jKMMg37acnBSbUiK/8nETW3uM3mLj+0tMmFXdHQw1e5WEd/IHN8BGOh3te91SNDe2o4RHg==",
- "license": "Apache-2.0",
- "dependencies": {
- "@aws-crypto/crc32": "5.2.0",
- "@smithy/types": "^4.10.0",
- "@smithy/util-hex-encoding": "^4.2.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=18.0.0"
- }
- },
- "node_modules/@smithy/eventstream-serde-browser": {
- "version": "4.2.6",
- "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-4.2.6.tgz",
- "integrity": "sha512-6OiaAaEbLB6dEkRbQyNzFSJv5HDvly3Mc6q/qcPd2uS/g3szR8wAIkh7UndAFKfMypNSTuZ6eCBmgCLR5LacTg==",
- "license": "Apache-2.0",
- "dependencies": {
- "@smithy/eventstream-serde-universal": "^4.2.6",
- "@smithy/types": "^4.10.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=18.0.0"
- }
- },
- "node_modules/@smithy/eventstream-serde-config-resolver": {
- "version": "4.3.6",
- "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-4.3.6.tgz",
- "integrity": "sha512-xP5YXbOVRVN8A4pDnSUkEUsL9fYFU6VNhxo8tgr13YnMbf3Pn4xVr+hSyLVjS1Frfi1Uk03ET5Bwml4+0CeYEw==",
- "license": "Apache-2.0",
- "dependencies": {
- "@smithy/types": "^4.10.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=18.0.0"
- }
- },
- "node_modules/@smithy/eventstream-serde-node": {
- "version": "4.2.6",
- "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-4.2.6.tgz",
- "integrity": "sha512-jhH7nJuaOpnTFcuZpWK9dqb6Ge2yGi1okTo0W6wkJrfwAm2vwmO74tF1v07JmrSyHBcKLQATEexclJw9K1Vj7w==",
- "license": "Apache-2.0",
- "dependencies": {
- "@smithy/eventstream-serde-universal": "^4.2.6",
- "@smithy/types": "^4.10.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=18.0.0"
- }
- },
- "node_modules/@smithy/eventstream-serde-universal": {
- "version": "4.2.6",
- "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-4.2.6.tgz",
- "integrity": "sha512-olIfZ230B64TvPD6b0tPvrEp2eB0FkyL3KvDlqF4RVmIc/kn3orzXnV6DTQdOOW5UU+M5zKY3/BU47X420/oPw==",
- "license": "Apache-2.0",
- "dependencies": {
- "@smithy/eventstream-codec": "^4.2.6",
- "@smithy/types": "^4.10.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=18.0.0"
- }
- },
"node_modules/@smithy/fetch-http-handler": {
"version": "5.3.7",
"resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.3.7.tgz",
"integrity": "sha512-fcVap4QwqmzQwQK9QU3keeEpCzTjnP9NJ171vI7GnD7nbkAIcP9biZhDUx88uRH9BabSsQDS0unUps88uZvFIQ==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@smithy/protocol-http": "^5.3.6",
@@ -2304,25 +2022,11 @@
"node": ">=18.0.0"
}
},
- "node_modules/@smithy/hash-blob-browser": {
- "version": "4.2.7",
- "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-4.2.7.tgz",
- "integrity": "sha512-CIbCTGGX5CI7tfewBPSYD9ycp2Vb2GW5xnXD1n7GcO9mu37EN7A6DvCHM9MX7pOeS1adMn5D+1yRwI3eABVbcA==",
- "license": "Apache-2.0",
- "dependencies": {
- "@smithy/chunked-blob-reader": "^5.2.0",
- "@smithy/chunked-blob-reader-native": "^4.2.1",
- "@smithy/types": "^4.10.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=18.0.0"
- }
- },
"node_modules/@smithy/hash-node": {
"version": "4.2.6",
"resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-4.2.6.tgz",
"integrity": "sha512-k3Dy9VNR37wfMh2/1RHkFf/e0rMyN0pjY0FdyY6ItJRjENYyVPRMwad6ZR1S9HFm6tTuIOd9pqKBmtJ4VHxvxg==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@smithy/types": "^4.10.0",
@@ -2334,24 +2038,11 @@
"node": ">=18.0.0"
}
},
- "node_modules/@smithy/hash-stream-node": {
- "version": "4.2.6",
- "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-4.2.6.tgz",
- "integrity": "sha512-+3T8LkH39YIhYHsv/Ec8lF+92nykZpU+XMBvAyXF/uLcTp86pxa5oSJk1vzaRY9N++qgDLYjzJ6OVbtAgDGwfw==",
- "license": "Apache-2.0",
- "dependencies": {
- "@smithy/types": "^4.10.0",
- "@smithy/util-utf8": "^4.2.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=18.0.0"
- }
- },
"node_modules/@smithy/invalid-dependency": {
"version": "4.2.6",
"resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-4.2.6.tgz",
"integrity": "sha512-E4t/V/q2T46RY21fpfznd1iSLTvCXKNKo4zJ1QuEFN4SE9gKfu2vb6bgq35LpufkQ+SETWIC7ZAf2GGvTlBaMQ==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@smithy/types": "^4.10.0",
@@ -2365,6 +2056,7 @@
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-4.2.0.tgz",
"integrity": "sha512-DZZZBvC7sjcYh4MazJSGiWMI2L7E0oCiRHREDzIxi/M2LY79/21iXt6aPLHge82wi5LsuRF5A06Ds3+0mlh6CQ==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
@@ -2373,24 +2065,11 @@
"node": ">=18.0.0"
}
},
- "node_modules/@smithy/md5-js": {
- "version": "4.2.6",
- "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-4.2.6.tgz",
- "integrity": "sha512-ZXeh8UmH31JdcNsrQ1o9v1IVuva9JFwxIc6zTMxWX7wcmWvVR7Ai9aUEw5LraNKqdkAsb06clpM2sRH4Iy55Sg==",
- "license": "Apache-2.0",
- "dependencies": {
- "@smithy/types": "^4.10.0",
- "@smithy/util-utf8": "^4.2.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=18.0.0"
- }
- },
"node_modules/@smithy/middleware-content-length": {
"version": "4.2.6",
"resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-4.2.6.tgz",
"integrity": "sha512-0cjqjyfj+Gls30ntq45SsBtqF3dfJQCeqQPyGz58Pk8OgrAr5YiB7ZvDzjCA94p4r6DCI4qLm7FKobqBjf515w==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@smithy/protocol-http": "^5.3.6",
@@ -2405,6 +2084,7 @@
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.4.0.tgz",
"integrity": "sha512-M6qWfUNny6NFNy8amrCGIb9TfOMUkHVtg9bHtEFGRgfH7A7AtPpn/fcrToGPjVDK1ECuMVvqGQOXcZxmu9K+7A==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@smithy/core": "^3.19.0",
@@ -2424,6 +2104,7 @@
"version": "4.4.16",
"resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.4.16.tgz",
"integrity": "sha512-XPpNhNRzm3vhYm7YCsyw3AtmWggJbg1wNGAoqb7NBYr5XA5isMRv14jgbYyUV6IvbTBFZQdf2QpeW43LrRdStQ==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@smithy/node-config-provider": "^4.3.6",
@@ -2444,6 +2125,7 @@
"version": "4.2.7",
"resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-4.2.7.tgz",
"integrity": "sha512-PFMVHVPgtFECeu4iZ+4SX6VOQT0+dIpm4jSPLLL6JLSkp9RohGqKBKD0cbiXdeIFS08Forp0UHI6kc0gIHenSA==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@smithy/protocol-http": "^5.3.6",
@@ -2458,6 +2140,7 @@
"version": "4.2.6",
"resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-4.2.6.tgz",
"integrity": "sha512-JSbALU3G+JS4kyBZPqnJ3hxIYwOVRV7r9GNQMS6j5VsQDo5+Es5nddLfr9TQlxZLNHPvKSh+XSB0OuWGfSWFcA==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@smithy/types": "^4.10.0",
@@ -2471,6 +2154,7 @@
"version": "4.3.6",
"resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-4.3.6.tgz",
"integrity": "sha512-fYEyL59Qe82Ha1p97YQTMEQPJYmBS+ux76foqluaTVWoG9Px5J53w6NvXZNE3wP7lIicLDF7Vj1Em18XTX7fsA==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@smithy/property-provider": "^4.2.6",
@@ -2486,6 +2170,7 @@
"version": "4.4.6",
"resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.4.6.tgz",
"integrity": "sha512-Gsb9jf4ido5BhPfani4ggyrKDd3ZK+vTFWmUaZeFg5G3E5nhFmqiTzAIbHqmPs1sARuJawDiGMGR/nY+Gw6+aQ==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@smithy/abort-controller": "^4.2.6",
@@ -2502,6 +2187,7 @@
"version": "4.2.6",
"resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-4.2.6.tgz",
"integrity": "sha512-a/tGSLPtaia2krbRdwR4xbZKO8lU67DjMk/jfY4QKt4PRlKML+2tL/gmAuhNdFDioO6wOq0sXkfnddNFH9mNUA==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@smithy/types": "^4.10.0",
@@ -2515,6 +2201,7 @@
"version": "5.3.6",
"resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-5.3.6.tgz",
"integrity": "sha512-qLRZzP2+PqhE3OSwvY2jpBbP0WKTZ9opTsn+6IWYI0SKVpbG+imcfNxXPq9fj5XeaUTr7odpsNpK6dmoiM1gJQ==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@smithy/types": "^4.10.0",
@@ -2528,6 +2215,7 @@
"version": "4.2.6",
"resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-4.2.6.tgz",
"integrity": "sha512-MeM9fTAiD3HvoInK/aA8mgJaKQDvm8N0dKy6EiFaCfgpovQr4CaOkJC28XqlSRABM+sHdSQXbC8NZ0DShBMHqg==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@smithy/types": "^4.10.0",
@@ -2542,6 +2230,7 @@
"version": "4.2.6",
"resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-4.2.6.tgz",
"integrity": "sha512-YmWxl32SQRw/kIRccSOxzS/Ib8/b5/f9ex0r5PR40jRJg8X1wgM3KrR2In+8zvOGVhRSXgvyQpw9yOSlmfmSnA==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@smithy/types": "^4.10.0",
@@ -2555,6 +2244,7 @@
"version": "4.2.6",
"resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-4.2.6.tgz",
"integrity": "sha512-Q73XBrzJlGTut2nf5RglSntHKgAG0+KiTJdO5QQblLfr4TdliGwIAha1iZIjwisc3rA5ulzqwwsYC6xrclxVQg==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@smithy/types": "^4.10.0"
@@ -2567,6 +2257,7 @@
"version": "4.4.1",
"resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.4.1.tgz",
"integrity": "sha512-tph+oQYPbpN6NamF030hx1gb5YN2Plog+GLaRHpoEDwp8+ZPG26rIJvStG9hkWzN2HBn3HcWg0sHeB0tmkYzqA==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@smithy/types": "^4.10.0",
@@ -2580,6 +2271,7 @@
"version": "5.3.6",
"resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.3.6.tgz",
"integrity": "sha512-P1TXDHuQMadTMTOBv4oElZMURU4uyEhxhHfn+qOc2iofW9Rd4sZtBGx58Lzk112rIGVEYZT8eUMK4NftpewpRA==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@smithy/is-array-buffer": "^4.2.0",
@@ -2599,6 +2291,7 @@
"version": "4.10.1",
"resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.10.1.tgz",
"integrity": "sha512-1ovWdxzYprhq+mWqiGZlt3kF69LJthuQcfY9BIyHx9MywTFKzFapluku1QXoaBB43GCsLDxNqS+1v30ure69AA==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@smithy/core": "^3.19.0",
@@ -2617,6 +2310,7 @@
"version": "4.10.0",
"resolved": "https://registry.npmjs.org/@smithy/types/-/types-4.10.0.tgz",
"integrity": "sha512-K9mY7V/f3Ul+/Gz4LJANZ3vJ/yiBIwCyxe0sPT4vNJK63Srvd+Yk1IzP0t+nE7XFSpIGtzR71yljtnqpUTYFlQ==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
@@ -2629,6 +2323,7 @@
"version": "4.2.6",
"resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-4.2.6.tgz",
"integrity": "sha512-tVoyzJ2vXp4R3/aeV4EQjBDmCuWxRa8eo3KybL7Xv4wEM16nObYh7H1sNfcuLWHAAAzb0RVyxUz1S3sGj4X+Tg==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@smithy/querystring-parser": "^4.2.6",
@@ -2643,6 +2338,7 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-4.3.0.tgz",
"integrity": "sha512-GkXZ59JfyxsIwNTWFnjmFEI8kZpRNIBfxKjv09+nkAWPt/4aGaEWMM04m4sxgNVWkbt2MdSvE3KF/PfX4nFedQ==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@smithy/util-buffer-from": "^4.2.0",
@@ -2657,6 +2353,7 @@
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-4.2.0.tgz",
"integrity": "sha512-Fkoh/I76szMKJnBXWPdFkQJl2r9SjPt3cMzLdOB6eJ4Pnpas8hVoWPYemX/peO0yrrvldgCUVJqOAjUrOLjbxg==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
@@ -2669,6 +2366,7 @@
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-4.2.1.tgz",
"integrity": "sha512-h53dz/pISVrVrfxV1iqXlx5pRg3V2YWFcSQyPyXZRrZoZj4R4DeWRDo1a7dd3CPTcFi3kE+98tuNyD2axyZReA==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
@@ -2681,6 +2379,7 @@
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-4.2.0.tgz",
"integrity": "sha512-kAY9hTKulTNevM2nlRtxAG2FQ3B2OR6QIrPY3zE5LqJy1oxzmgBGsHLWTcNhWXKchgA0WHW+mZkQrng/pgcCew==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@smithy/is-array-buffer": "^4.2.0",
@@ -2694,6 +2393,7 @@
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-4.2.0.tgz",
"integrity": "sha512-YEjpl6XJ36FTKmD+kRJJWYvrHeUvm5ykaUS5xK+6oXffQPHeEM4/nXlZPe+Wu0lsgRUcNZiliYNh/y7q9c2y6Q==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
@@ -2706,6 +2406,7 @@
"version": "4.3.15",
"resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.15.tgz",
"integrity": "sha512-LiZQVAg/oO8kueX4c+oMls5njaD2cRLXRfcjlTYjhIqmwHnCwkQO5B3dMQH0c5PACILxGAQf6Mxsq7CjlDc76A==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@smithy/property-provider": "^4.2.6",
@@ -2721,6 +2422,7 @@
"version": "4.2.18",
"resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.18.tgz",
"integrity": "sha512-Kw2J+KzYm9C9Z9nY6+W0tEnoZOofstVCMTshli9jhQbQCy64rueGfKzPfuFBnVUqZD9JobxTh2DzHmPkp/Va/Q==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@smithy/config-resolver": "^4.4.4",
@@ -2739,6 +2441,7 @@
"version": "3.2.6",
"resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-3.2.6.tgz",
"integrity": "sha512-v60VNM2+mPvgHCBXEfMCYrQ0RepP6u6xvbAkMenfe4Mi872CqNkJzgcnQL837e8NdeDxBgrWQRTluKq5Lqdhfg==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@smithy/node-config-provider": "^4.3.6",
@@ -2753,6 +2456,7 @@
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-4.2.0.tgz",
"integrity": "sha512-CCQBwJIvXMLKxVbO88IukazJD9a4kQ9ZN7/UMGBjBcJYvatpWk+9g870El4cB8/EJxfe+k+y0GmR9CAzkF+Nbw==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
@@ -2765,6 +2469,7 @@
"version": "4.2.6",
"resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-4.2.6.tgz",
"integrity": "sha512-qrvXUkxBSAFomM3/OEMuDVwjh4wtqK8D2uDZPShzIqOylPst6gor2Cdp6+XrH4dyksAWq/bE2aSDYBTTnj0Rxg==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@smithy/types": "^4.10.0",
@@ -2778,6 +2483,7 @@
"version": "4.2.6",
"resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-4.2.6.tgz",
"integrity": "sha512-x7CeDQLPQ9cb6xN7fRJEjlP9NyGW/YeXWc4j/RUhg4I+H60F0PEeRc2c/z3rm9zmsdiMFzpV/rT+4UHW6KM1SA==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@smithy/service-error-classification": "^4.2.6",
@@ -2792,6 +2498,7 @@
"version": "4.5.7",
"resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-4.5.7.tgz",
"integrity": "sha512-Uuy4S5Aj4oF6k1z+i2OtIBJUns4mlg29Ph4S+CqjR+f4XXpSFVgTCYLzMszHJTicYDBxKFtwq2/QSEDSS5l02A==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@smithy/fetch-http-handler": "^5.3.7",
@@ -2811,6 +2518,7 @@
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-4.2.0.tgz",
"integrity": "sha512-igZpCKV9+E/Mzrpq6YacdTQ0qTiLm85gD6N/IrmyDvQFA4UnU3d5g3m8tMT/6zG/vVkWSU+VxeUyGonL62DuxA==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
@@ -2823,6 +2531,7 @@
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-4.2.0.tgz",
"integrity": "sha512-zBPfuzoI8xyBtR2P6WQj63Rz8i3AmfAaJLuNG8dWsfvPe8lO4aCPYLn879mEgHndZH1zQ2oXmG8O1GGzzaoZiw==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@smithy/util-buffer-from": "^4.2.0",
@@ -2832,24 +2541,11 @@
"node": ">=18.0.0"
}
},
- "node_modules/@smithy/util-waiter": {
- "version": "4.2.6",
- "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-4.2.6.tgz",
- "integrity": "sha512-xU9HwUSik9UUCJmm530yvBy0AwlQFICveKmqvaaTukKkXEAhyiBdHtSrhPrH3rH+uz0ykyaE3LdgsX86C6mDCQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "@smithy/abort-controller": "^4.2.6",
- "@smithy/types": "^4.10.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=18.0.0"
- }
- },
"node_modules/@smithy/uuid": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@smithy/uuid/-/uuid-1.1.0.tgz",
"integrity": "sha512-4aUIteuyxtBUhVdiQqcDhKFitwfd9hqoSDYY2KRXiWtgoWJ9Bmise+KfEPDiVHWeJepvF8xJO9/9+WDIciMFFw==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
@@ -4063,6 +3759,7 @@
"version": "2.13.1",
"resolved": "https://registry.npmjs.org/bowser/-/bowser-2.13.1.tgz",
"integrity": "sha512-OHawaAbjwx6rqICCKgSG0SAnT05bzd7ppyKLVUITZpANBaaMFBAsaNkto3LoQ31tyFP5kNujE8Cdx85G9VzOkw==",
+ "dev": true,
"license": "MIT"
},
"node_modules/brace-expansion": {
@@ -5259,6 +4956,7 @@
"version": "5.2.5",
"resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.2.5.tgz",
"integrity": "sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ==",
+ "dev": true,
"funding": [
{
"type": "github",
@@ -8349,6 +8047,7 @@
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/strnum/-/strnum-2.1.2.tgz",
"integrity": "sha512-l63NF9y/cLROq/yqKXSLtcMeeyOfnSQlfMSlzFt/K73oIaD8DGaQWd7Z34X9GPiKqP5rbSh84Hl4bOlLcjiSrQ==",
+ "dev": true,
"funding": [
{
"type": "github",
diff --git a/package.json b/package.json
index 14b4c5f..98d4a54 100644
--- a/package.json
+++ b/package.json
@@ -73,7 +73,6 @@
"typescript-json-schema": "^0.65.1"
},
"dependencies": {
- "@aws-sdk/client-s3": "^3.953.0",
"@toondepauw/node-zstd": "^1.2.0",
"ajv": "^8.17.1",
"ajv-formats": "^3.0.1",
diff --git a/src/cdn/util/S3Storage.ts b/src/cdn/util/S3Storage.ts
index f3ac0b4..f657fd2 100644
--- a/src/cdn/util/S3Storage.ts
+++ b/src/cdn/util/S3Storage.ts
@@ -16,7 +16,6 @@
along with this program. If not, see .
*/
-import { S3 } from "@aws-sdk/client-s3";
import { Readable } from "stream";
import { Storage } from "./Storage";
@@ -29,11 +28,15 @@
});
export class S3Storage implements Storage {
+ private client: unknown;
public constructor(
- private client: S3,
+ private region: string,
private bucket: string,
private basePath?: string,
- ) {}
+ ) {
+ const { S3 } = require("@aws-sdk/client-s3");
+ this.client = new S3({ region });
+ }
/**
* Always return a string, to ensure consistency.
@@ -43,6 +46,8 @@
}
async set(path: string, data: Buffer): Promise {
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
+ // @ts-expect-error
await this.client.putObject({
Bucket: this.bucket,
Key: `${this.bucketBasePath}${path}`,
@@ -52,6 +57,8 @@
async clone(path: string, newPath: string): Promise {
// TODO: does this even work?
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
+ // @ts-expect-error
await this.client.copyObject({
Bucket: this.bucket,
CopySource: `/${this.bucket}/${this.bucketBasePath}${path}`,
@@ -61,6 +68,8 @@
async get(path: string): Promise {
try {
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
+ // @ts-expect-error
const s3Object = await this.client.getObject({
Bucket: this.bucket,
Key: `${this.bucketBasePath ?? ""}${path}`,
@@ -79,6 +88,8 @@
}
async delete(path: string): Promise {
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
+ // @ts-expect-error
await this.client.deleteObject({
Bucket: this.bucket,
Key: `${this.bucketBasePath}${path}`,
diff --git a/src/cdn/util/Storage.ts b/src/cdn/util/Storage.ts
index 6ec1b79..1184bde 100644
--- a/src/cdn/util/Storage.ts
+++ b/src/cdn/util/Storage.ts
@@ -19,8 +19,7 @@
import { FileStorage } from "./FileStorage";
import path from "path";
import fs from "fs";
-import { S3 } from "@aws-sdk/client-s3";
-import { S3Storage } from "./S3Storage";
+import { red } from "picocolors";
process.cwd();
export interface Storage {
@@ -46,6 +45,13 @@
storage = new FileStorage();
} else if (process.env.STORAGE_PROVIDER === "s3") {
+ try {
+ require("@aws-sdk/client-s3");
+ } catch (e) {
+ console.error(red(`[CDN] AWS S3 SDK not installed. Please run 'npm install --no-save @aws-sdk/client-s3' to use the S3 storage provider.`));
+ process.exit(1);
+ }
+
const region = process.env.STORAGE_REGION,
bucket = process.env.STORAGE_BUCKET;
@@ -67,9 +73,8 @@
location = undefined;
}
- const client = new S3({ region });
-
- storage = new S3Storage(client, bucket, location);
+ const { S3Storage } = require("S3Storage");
+ storage = new S3Storage(region, bucket, location);
}
export { storage };