diff --git a/next.config.mjs b/next.config.mjs
index 6c84806..06b5eb7 100644
--- a/next.config.mjs
+++ b/next.config.mjs
@@ -7,6 +7,9 @@ const nextConfig = {
experimental: {
reactCompiler: true,
ppr: "incremental",
+ turbo: {
+
+ }
},
serverExternalPackages: ["typeorm", "better-sqlite3"],
reactStrictMode: true,
diff --git a/package-lock.json b/package-lock.json
index 1f384b5..ad5ac14 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8,52 +8,60 @@
"name": "next-portfolio",
"version": "0.1.0",
"dependencies": {
- "@aws-sdk/client-s3": "^3.712.0",
+ "@aws-sdk/client-s3": "^3.750.0",
+ "@dimforge/rapier2d-compat": "^0.14.0",
"@heroicons/react": "^2.2.0",
"@mdx-js/loader": "^3.1.0",
"@mdx-js/react": "^3.1.0",
- "@next/bundle-analyzer": "^15.1.0",
- "@next/mdx": "^15.1.0",
- "@tailwindcss/typography": "^0.5.15",
- "@tanstack/react-query": "^5.62.7",
- "@tanstack/react-virtual": "^3.11.1",
- "@trpc/client": "^11.0.0-rc.660",
- "@trpc/react-query": "^11.0.0-rc.660",
- "@trpc/server": "^11.0.0-rc.660",
+ "@next/bundle-analyzer": "^15.1.7",
+ "@next/mdx": "^15.1.7",
+ "@pixi-essentials/object-pool": "^1.0.1",
+ "@pixi/events": "^7.4.2",
+ "@tailwindcss/postcss": "^4.0.8",
+ "@tailwindcss/typography": "^0.5.16",
+ "@tanstack/react-query": "^5.66.9",
+ "@tanstack/react-virtual": "^3.13.0",
+ "@trpc/client": "^11.0.0-rc.802",
+ "@trpc/react-query": "^11.0.0-rc.802",
+ "@trpc/server": "^11.0.0-rc.802",
"@types/better-sqlite3": "^7.6.12",
"@types/mdx": "^2.0.13",
- "@types/node": "^22.10.2",
- "@types/react": "^19.0.1",
- "@types/react-dom": "^19.0.2",
- "@typescript-eslint/eslint-plugin": "^8.18.0",
+ "@types/node": "^22.13.5",
+ "@types/react": "^19.0.10",
+ "@types/react-dom": "^19.0.4",
+ "@typescript-eslint/eslint-plugin": "^8.14.1",
"autoprefixer": "^10.4.20",
"babel-plugin-react-compiler": "beta",
- "better-sqlite3": "^11.7.0",
+ "better-sqlite3": "^11.8.1",
"client-only": "^0.0.1",
- "drizzle-kit": "^0.30.1",
- "drizzle-orm": "^0.38.2",
- "eslint": "^9.17.0",
- "eslint-config-next": "^15.1.0",
- "exif-reader": "^2.0.1",
- "framer-motion": "^11.14.4",
- "glob": "^11.0.0",
+ "drizzle-kit": "^0.30.4",
+ "drizzle-orm": "^0.39.3",
+ "eslint": "^9.21.0",
+ "eslint-config-next": "^15.1.7",
+ "eventemitter3": "^5.0.1",
+ "exif-reader": "^2.0.2",
+ "framer-motion": "^12.4.7",
+ "glob": "^11.0.1",
"million": "^3.1.11",
- "next": "15.1.1-canary.5",
+ "next": "15.2.0-canary.69",
"next-auth": "5.0.0-beta.25",
- "postcss": "^8.4.49",
+ "pixi-filters": "^6.1.0",
+ "pixi-viewport": "^6.0.3",
+ "pixi.js": "^8.8.0",
+ "postcss": "^8.5.3",
"radash": "^12.1.0",
"react": "19.0.0",
"react-dom": "19.0.0",
- "react-zoom-pan-pinch": "^3.6.1",
+ "react-zoom-pan-pinch": "^3.7.0",
"reflect-metadata": "^0.2.2",
"server-only": "^0.0.1",
"sharp": "^0.33.5",
"superjson": "^2.2.2",
- "tailwind-scrollbar": "^3.1.0",
- "tailwindcss": "^3.4.16",
- "typescript": "^5.7.2",
+ "tailwind-scrollbar": "^4.0.0",
+ "tailwindcss": "^4.0.8",
+ "typescript": "^5.7.3",
"yet-another-react-lightbox": "^3.21.7",
- "zod": "^3.24.1"
+ "zod": "^3.24.2"
}
},
"node_modules/@alloc/quick-lru": {
@@ -315,653 +323,590 @@
}
},
"node_modules/@aws-sdk/client-s3": {
- "version": "3.714.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.714.0.tgz",
- "integrity": "sha512-DqzfbecKrhUEpsYTsYRIm4cKKlIvAl4I/A2NpzDPDSiA2EmCWLy0T5fK1ivUA4XL+09+4pHJGNVTpMyDs7n6vg==",
+ "version": "3.750.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.750.0.tgz",
+ "integrity": "sha512-S9G9noCeBxchoMVkHYrRi1A1xW/VOTP2W7X34lP+Y7Wpl32yMA7IJo0fAGAuTc0q1Nu6/pXDm+oDG7rhTCA1tg==",
"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/client-sso-oidc": "3.714.0",
- "@aws-sdk/client-sts": "3.714.0",
- "@aws-sdk/core": "3.714.0",
- "@aws-sdk/credential-provider-node": "3.714.0",
- "@aws-sdk/middleware-bucket-endpoint": "3.714.0",
- "@aws-sdk/middleware-expect-continue": "3.714.0",
- "@aws-sdk/middleware-flexible-checksums": "3.714.0",
- "@aws-sdk/middleware-host-header": "3.714.0",
- "@aws-sdk/middleware-location-constraint": "3.714.0",
- "@aws-sdk/middleware-logger": "3.714.0",
- "@aws-sdk/middleware-recursion-detection": "3.714.0",
- "@aws-sdk/middleware-sdk-s3": "3.714.0",
- "@aws-sdk/middleware-ssec": "3.714.0",
- "@aws-sdk/middleware-user-agent": "3.714.0",
- "@aws-sdk/region-config-resolver": "3.714.0",
- "@aws-sdk/signature-v4-multi-region": "3.714.0",
- "@aws-sdk/types": "3.714.0",
- "@aws-sdk/util-endpoints": "3.714.0",
- "@aws-sdk/util-user-agent-browser": "3.714.0",
- "@aws-sdk/util-user-agent-node": "3.714.0",
- "@aws-sdk/xml-builder": "3.709.0",
- "@smithy/config-resolver": "^3.0.13",
- "@smithy/core": "^2.5.5",
- "@smithy/eventstream-serde-browser": "^3.0.14",
- "@smithy/eventstream-serde-config-resolver": "^3.0.11",
- "@smithy/eventstream-serde-node": "^3.0.13",
- "@smithy/fetch-http-handler": "^4.1.2",
- "@smithy/hash-blob-browser": "^3.1.10",
- "@smithy/hash-node": "^3.0.11",
- "@smithy/hash-stream-node": "^3.1.10",
- "@smithy/invalid-dependency": "^3.0.11",
- "@smithy/md5-js": "^3.0.11",
- "@smithy/middleware-content-length": "^3.0.13",
- "@smithy/middleware-endpoint": "^3.2.5",
- "@smithy/middleware-retry": "^3.0.30",
- "@smithy/middleware-serde": "^3.0.11",
- "@smithy/middleware-stack": "^3.0.11",
- "@smithy/node-config-provider": "^3.1.12",
- "@smithy/node-http-handler": "^3.3.2",
- "@smithy/protocol-http": "^4.1.8",
- "@smithy/smithy-client": "^3.5.0",
- "@smithy/types": "^3.7.2",
- "@smithy/url-parser": "^3.0.11",
- "@smithy/util-base64": "^3.0.0",
- "@smithy/util-body-length-browser": "^3.0.0",
- "@smithy/util-body-length-node": "^3.0.0",
- "@smithy/util-defaults-mode-browser": "^3.0.30",
- "@smithy/util-defaults-mode-node": "^3.0.30",
- "@smithy/util-endpoints": "^2.1.7",
- "@smithy/util-middleware": "^3.0.11",
- "@smithy/util-retry": "^3.0.11",
- "@smithy/util-stream": "^3.3.2",
- "@smithy/util-utf8": "^3.0.0",
- "@smithy/util-waiter": "^3.2.0",
+ "@aws-sdk/core": "3.750.0",
+ "@aws-sdk/credential-provider-node": "3.750.0",
+ "@aws-sdk/middleware-bucket-endpoint": "3.734.0",
+ "@aws-sdk/middleware-expect-continue": "3.734.0",
+ "@aws-sdk/middleware-flexible-checksums": "3.750.0",
+ "@aws-sdk/middleware-host-header": "3.734.0",
+ "@aws-sdk/middleware-location-constraint": "3.734.0",
+ "@aws-sdk/middleware-logger": "3.734.0",
+ "@aws-sdk/middleware-recursion-detection": "3.734.0",
+ "@aws-sdk/middleware-sdk-s3": "3.750.0",
+ "@aws-sdk/middleware-ssec": "3.734.0",
+ "@aws-sdk/middleware-user-agent": "3.750.0",
+ "@aws-sdk/region-config-resolver": "3.734.0",
+ "@aws-sdk/signature-v4-multi-region": "3.750.0",
+ "@aws-sdk/types": "3.734.0",
+ "@aws-sdk/util-endpoints": "3.743.0",
+ "@aws-sdk/util-user-agent-browser": "3.734.0",
+ "@aws-sdk/util-user-agent-node": "3.750.0",
+ "@aws-sdk/xml-builder": "3.734.0",
+ "@smithy/config-resolver": "^4.0.1",
+ "@smithy/core": "^3.1.4",
+ "@smithy/eventstream-serde-browser": "^4.0.1",
+ "@smithy/eventstream-serde-config-resolver": "^4.0.1",
+ "@smithy/eventstream-serde-node": "^4.0.1",
+ "@smithy/fetch-http-handler": "^5.0.1",
+ "@smithy/hash-blob-browser": "^4.0.1",
+ "@smithy/hash-node": "^4.0.1",
+ "@smithy/hash-stream-node": "^4.0.1",
+ "@smithy/invalid-dependency": "^4.0.1",
+ "@smithy/md5-js": "^4.0.1",
+ "@smithy/middleware-content-length": "^4.0.1",
+ "@smithy/middleware-endpoint": "^4.0.5",
+ "@smithy/middleware-retry": "^4.0.6",
+ "@smithy/middleware-serde": "^4.0.2",
+ "@smithy/middleware-stack": "^4.0.1",
+ "@smithy/node-config-provider": "^4.0.1",
+ "@smithy/node-http-handler": "^4.0.2",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/smithy-client": "^4.1.5",
+ "@smithy/types": "^4.1.0",
+ "@smithy/url-parser": "^4.0.1",
+ "@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.6",
+ "@smithy/util-defaults-mode-node": "^4.0.6",
+ "@smithy/util-endpoints": "^3.0.1",
+ "@smithy/util-middleware": "^4.0.1",
+ "@smithy/util-retry": "^4.0.1",
+ "@smithy/util-stream": "^4.1.1",
+ "@smithy/util-utf8": "^4.0.0",
+ "@smithy/util-waiter": "^4.0.2",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/client-sso": {
- "version": "3.714.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.714.0.tgz",
- "integrity": "sha512-pFtjY5Ga91qrryo0UfbjetdT2p9rOgtHofogAeEuGjxx7/rupBpdlW0WDOtD/7jhmbhM8WZEr6aH7GLzzkKfCA==",
+ "version": "3.750.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.750.0.tgz",
+ "integrity": "sha512-y0Rx6pTQXw0E61CaptpZF65qNggjqOgymq/RYZU5vWba5DGQ+iqGt8Yq8s+jfBoBBNXshxq8l8Dl5Uq/JTY1wg==",
"license": "Apache-2.0",
"dependencies": {
"@aws-crypto/sha256-browser": "5.2.0",
"@aws-crypto/sha256-js": "5.2.0",
- "@aws-sdk/core": "3.714.0",
- "@aws-sdk/middleware-host-header": "3.714.0",
- "@aws-sdk/middleware-logger": "3.714.0",
- "@aws-sdk/middleware-recursion-detection": "3.714.0",
- "@aws-sdk/middleware-user-agent": "3.714.0",
- "@aws-sdk/region-config-resolver": "3.714.0",
- "@aws-sdk/types": "3.714.0",
- "@aws-sdk/util-endpoints": "3.714.0",
- "@aws-sdk/util-user-agent-browser": "3.714.0",
- "@aws-sdk/util-user-agent-node": "3.714.0",
- "@smithy/config-resolver": "^3.0.13",
- "@smithy/core": "^2.5.5",
- "@smithy/fetch-http-handler": "^4.1.2",
- "@smithy/hash-node": "^3.0.11",
- "@smithy/invalid-dependency": "^3.0.11",
- "@smithy/middleware-content-length": "^3.0.13",
- "@smithy/middleware-endpoint": "^3.2.5",
- "@smithy/middleware-retry": "^3.0.30",
- "@smithy/middleware-serde": "^3.0.11",
- "@smithy/middleware-stack": "^3.0.11",
- "@smithy/node-config-provider": "^3.1.12",
- "@smithy/node-http-handler": "^3.3.2",
- "@smithy/protocol-http": "^4.1.8",
- "@smithy/smithy-client": "^3.5.0",
- "@smithy/types": "^3.7.2",
- "@smithy/url-parser": "^3.0.11",
- "@smithy/util-base64": "^3.0.0",
- "@smithy/util-body-length-browser": "^3.0.0",
- "@smithy/util-body-length-node": "^3.0.0",
- "@smithy/util-defaults-mode-browser": "^3.0.30",
- "@smithy/util-defaults-mode-node": "^3.0.30",
- "@smithy/util-endpoints": "^2.1.7",
- "@smithy/util-middleware": "^3.0.11",
- "@smithy/util-retry": "^3.0.11",
- "@smithy/util-utf8": "^3.0.0",
+ "@aws-sdk/core": "3.750.0",
+ "@aws-sdk/middleware-host-header": "3.734.0",
+ "@aws-sdk/middleware-logger": "3.734.0",
+ "@aws-sdk/middleware-recursion-detection": "3.734.0",
+ "@aws-sdk/middleware-user-agent": "3.750.0",
+ "@aws-sdk/region-config-resolver": "3.734.0",
+ "@aws-sdk/types": "3.734.0",
+ "@aws-sdk/util-endpoints": "3.743.0",
+ "@aws-sdk/util-user-agent-browser": "3.734.0",
+ "@aws-sdk/util-user-agent-node": "3.750.0",
+ "@smithy/config-resolver": "^4.0.1",
+ "@smithy/core": "^3.1.4",
+ "@smithy/fetch-http-handler": "^5.0.1",
+ "@smithy/hash-node": "^4.0.1",
+ "@smithy/invalid-dependency": "^4.0.1",
+ "@smithy/middleware-content-length": "^4.0.1",
+ "@smithy/middleware-endpoint": "^4.0.5",
+ "@smithy/middleware-retry": "^4.0.6",
+ "@smithy/middleware-serde": "^4.0.2",
+ "@smithy/middleware-stack": "^4.0.1",
+ "@smithy/node-config-provider": "^4.0.1",
+ "@smithy/node-http-handler": "^4.0.2",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/smithy-client": "^4.1.5",
+ "@smithy/types": "^4.1.0",
+ "@smithy/url-parser": "^4.0.1",
+ "@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.6",
+ "@smithy/util-defaults-mode-node": "^4.0.6",
+ "@smithy/util-endpoints": "^3.0.1",
+ "@smithy/util-middleware": "^4.0.1",
+ "@smithy/util-retry": "^4.0.1",
+ "@smithy/util-utf8": "^4.0.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@aws-sdk/client-sso-oidc": {
- "version": "3.714.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.714.0.tgz",
- "integrity": "sha512-dMvpPUaL3v01psPY1ZyCzQ/w2tOgQTH1if0zBF5r2q7Vc0oOPzbBZgNAhG1bDWlRCBW0iXmoqRFoWUwQ5rtx+A==",
- "license": "Apache-2.0",
- "dependencies": {
- "@aws-crypto/sha256-browser": "5.2.0",
- "@aws-crypto/sha256-js": "5.2.0",
- "@aws-sdk/core": "3.714.0",
- "@aws-sdk/credential-provider-node": "3.714.0",
- "@aws-sdk/middleware-host-header": "3.714.0",
- "@aws-sdk/middleware-logger": "3.714.0",
- "@aws-sdk/middleware-recursion-detection": "3.714.0",
- "@aws-sdk/middleware-user-agent": "3.714.0",
- "@aws-sdk/region-config-resolver": "3.714.0",
- "@aws-sdk/types": "3.714.0",
- "@aws-sdk/util-endpoints": "3.714.0",
- "@aws-sdk/util-user-agent-browser": "3.714.0",
- "@aws-sdk/util-user-agent-node": "3.714.0",
- "@smithy/config-resolver": "^3.0.13",
- "@smithy/core": "^2.5.5",
- "@smithy/fetch-http-handler": "^4.1.2",
- "@smithy/hash-node": "^3.0.11",
- "@smithy/invalid-dependency": "^3.0.11",
- "@smithy/middleware-content-length": "^3.0.13",
- "@smithy/middleware-endpoint": "^3.2.5",
- "@smithy/middleware-retry": "^3.0.30",
- "@smithy/middleware-serde": "^3.0.11",
- "@smithy/middleware-stack": "^3.0.11",
- "@smithy/node-config-provider": "^3.1.12",
- "@smithy/node-http-handler": "^3.3.2",
- "@smithy/protocol-http": "^4.1.8",
- "@smithy/smithy-client": "^3.5.0",
- "@smithy/types": "^3.7.2",
- "@smithy/url-parser": "^3.0.11",
- "@smithy/util-base64": "^3.0.0",
- "@smithy/util-body-length-browser": "^3.0.0",
- "@smithy/util-body-length-node": "^3.0.0",
- "@smithy/util-defaults-mode-browser": "^3.0.30",
- "@smithy/util-defaults-mode-node": "^3.0.30",
- "@smithy/util-endpoints": "^2.1.7",
- "@smithy/util-middleware": "^3.0.11",
- "@smithy/util-retry": "^3.0.11",
- "@smithy/util-utf8": "^3.0.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- },
- "peerDependencies": {
- "@aws-sdk/client-sts": "^3.714.0"
- }
- },
- "node_modules/@aws-sdk/client-sts": {
- "version": "3.714.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.714.0.tgz",
- "integrity": "sha512-ThcXgolapPsOzeavJF4Am312umFyoFBBeiTYD8PQGIiYkbJi4hXcjoWacmtkq6moMmMZSP9iK/ellls7vwY2JQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "@aws-crypto/sha256-browser": "5.2.0",
- "@aws-crypto/sha256-js": "5.2.0",
- "@aws-sdk/client-sso-oidc": "3.714.0",
- "@aws-sdk/core": "3.714.0",
- "@aws-sdk/credential-provider-node": "3.714.0",
- "@aws-sdk/middleware-host-header": "3.714.0",
- "@aws-sdk/middleware-logger": "3.714.0",
- "@aws-sdk/middleware-recursion-detection": "3.714.0",
- "@aws-sdk/middleware-user-agent": "3.714.0",
- "@aws-sdk/region-config-resolver": "3.714.0",
- "@aws-sdk/types": "3.714.0",
- "@aws-sdk/util-endpoints": "3.714.0",
- "@aws-sdk/util-user-agent-browser": "3.714.0",
- "@aws-sdk/util-user-agent-node": "3.714.0",
- "@smithy/config-resolver": "^3.0.13",
- "@smithy/core": "^2.5.5",
- "@smithy/fetch-http-handler": "^4.1.2",
- "@smithy/hash-node": "^3.0.11",
- "@smithy/invalid-dependency": "^3.0.11",
- "@smithy/middleware-content-length": "^3.0.13",
- "@smithy/middleware-endpoint": "^3.2.5",
- "@smithy/middleware-retry": "^3.0.30",
- "@smithy/middleware-serde": "^3.0.11",
- "@smithy/middleware-stack": "^3.0.11",
- "@smithy/node-config-provider": "^3.1.12",
- "@smithy/node-http-handler": "^3.3.2",
- "@smithy/protocol-http": "^4.1.8",
- "@smithy/smithy-client": "^3.5.0",
- "@smithy/types": "^3.7.2",
- "@smithy/url-parser": "^3.0.11",
- "@smithy/util-base64": "^3.0.0",
- "@smithy/util-body-length-browser": "^3.0.0",
- "@smithy/util-body-length-node": "^3.0.0",
- "@smithy/util-defaults-mode-browser": "^3.0.30",
- "@smithy/util-defaults-mode-node": "^3.0.30",
- "@smithy/util-endpoints": "^2.1.7",
- "@smithy/util-middleware": "^3.0.11",
- "@smithy/util-retry": "^3.0.11",
- "@smithy/util-utf8": "^3.0.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/core": {
- "version": "3.714.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.714.0.tgz",
- "integrity": "sha512-TlZ50d8MEPVp9O03SvisOmcmxjxhMDKHJJcrBgYjgDej6QmNfiFwtCRkReXDdkEeXP29ehMs7uPXtmVvPqziYw==",
+ "version": "3.750.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.750.0.tgz",
+ "integrity": "sha512-bZ5K7N5L4+Pa2epbVpUQqd1XLG2uU8BGs/Sd+2nbgTf+lNQJyIxAg/Qsrjz9MzmY8zzQIeRQEkNmR6yVAfCmmQ==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.714.0",
- "@smithy/core": "^2.5.5",
- "@smithy/node-config-provider": "^3.1.12",
- "@smithy/property-provider": "^3.1.11",
- "@smithy/protocol-http": "^4.1.8",
- "@smithy/signature-v4": "^4.2.4",
- "@smithy/smithy-client": "^3.5.0",
- "@smithy/types": "^3.7.2",
- "@smithy/util-middleware": "^3.0.11",
+ "@aws-sdk/types": "3.734.0",
+ "@smithy/core": "^3.1.4",
+ "@smithy/node-config-provider": "^4.0.1",
+ "@smithy/property-provider": "^4.0.1",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/signature-v4": "^5.0.1",
+ "@smithy/smithy-client": "^4.1.5",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-middleware": "^4.0.1",
"fast-xml-parser": "4.4.1",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/credential-provider-env": {
- "version": "3.714.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.714.0.tgz",
- "integrity": "sha512-0S4nKE1a+EHXAInXUeuWkyzVnXzmwIbwLStVidAIoyl6sJF8xGdw+r3AaoTr7p0YXzdoDUsn3wBTCA6ZwgXVbA==",
+ "version": "3.750.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.750.0.tgz",
+ "integrity": "sha512-In6bsG0p/P31HcH4DBRKBbcDS/3SHvEPjfXV8ODPWZO/l3/p7IRoYBdQ07C9R+VMZU2D0+/Sc/DWK/TUNDk1+Q==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "3.714.0",
- "@aws-sdk/types": "3.714.0",
- "@smithy/property-provider": "^3.1.11",
- "@smithy/types": "^3.7.2",
+ "@aws-sdk/core": "3.750.0",
+ "@aws-sdk/types": "3.734.0",
+ "@smithy/property-provider": "^4.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/credential-provider-http": {
- "version": "3.714.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.714.0.tgz",
- "integrity": "sha512-1AXEfUSQUQg+x/DpH1XJhjf2yEgTHHatM3cvYu7FZMhRXF28Q5OJDbEFPfdqrK+vmCiYRWhszDb+zuUIvz46bw==",
+ "version": "3.750.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.750.0.tgz",
+ "integrity": "sha512-wFB9qqfa20AB0dElsQz5ZlZT5o+a+XzpEpmg0erylmGYqEOvh8NQWfDUVpRmQuGq9VbvW/8cIbxPoNqEbPtuWQ==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "3.714.0",
- "@aws-sdk/types": "3.714.0",
- "@smithy/fetch-http-handler": "^4.1.2",
- "@smithy/node-http-handler": "^3.3.2",
- "@smithy/property-provider": "^3.1.11",
- "@smithy/protocol-http": "^4.1.8",
- "@smithy/smithy-client": "^3.5.0",
- "@smithy/types": "^3.7.2",
- "@smithy/util-stream": "^3.3.2",
+ "@aws-sdk/core": "3.750.0",
+ "@aws-sdk/types": "3.734.0",
+ "@smithy/fetch-http-handler": "^5.0.1",
+ "@smithy/node-http-handler": "^4.0.2",
+ "@smithy/property-provider": "^4.0.1",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/smithy-client": "^4.1.5",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-stream": "^4.1.1",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/credential-provider-ini": {
- "version": "3.714.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.714.0.tgz",
- "integrity": "sha512-w5wOcgBngfcvVev5wnYWXoc/W2ewVmGJkfRdGquhFt8pkUxktyd8eXehqkP7u31SONVlgy96EFTdSCzWpTrqOw==",
+ "version": "3.750.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.750.0.tgz",
+ "integrity": "sha512-2YIZmyEr5RUd3uxXpxOLD9G67Bibm4I/65M6vKFP17jVMUT+R1nL7mKqmhEVO2p+BoeV+bwMyJ/jpTYG368PCg==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "3.714.0",
- "@aws-sdk/credential-provider-env": "3.714.0",
- "@aws-sdk/credential-provider-http": "3.714.0",
- "@aws-sdk/credential-provider-process": "3.714.0",
- "@aws-sdk/credential-provider-sso": "3.714.0",
- "@aws-sdk/credential-provider-web-identity": "3.714.0",
- "@aws-sdk/types": "3.714.0",
- "@smithy/credential-provider-imds": "^3.2.8",
- "@smithy/property-provider": "^3.1.11",
- "@smithy/shared-ini-file-loader": "^3.1.12",
- "@smithy/types": "^3.7.2",
+ "@aws-sdk/core": "3.750.0",
+ "@aws-sdk/credential-provider-env": "3.750.0",
+ "@aws-sdk/credential-provider-http": "3.750.0",
+ "@aws-sdk/credential-provider-process": "3.750.0",
+ "@aws-sdk/credential-provider-sso": "3.750.0",
+ "@aws-sdk/credential-provider-web-identity": "3.750.0",
+ "@aws-sdk/nested-clients": "3.750.0",
+ "@aws-sdk/types": "3.734.0",
+ "@smithy/credential-provider-imds": "^4.0.1",
+ "@smithy/property-provider": "^4.0.1",
+ "@smithy/shared-ini-file-loader": "^4.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
- },
- "peerDependencies": {
- "@aws-sdk/client-sts": "^3.714.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/credential-provider-node": {
- "version": "3.714.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.714.0.tgz",
- "integrity": "sha512-ebho1HYNKzaw0ZfbI9kEicSW8J7tsOoV6EJajsjfFnuP+GY9J5Oi4759GEq1Qqj7GxIhrySOZFzif/hxAXPWtQ==",
+ "version": "3.750.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.750.0.tgz",
+ "integrity": "sha512-THWHHAceLwsOiowPEmKyhWVDlEUxH07GHSw5AQFDvNQtGKOQl0HSIFO1mKObT2Q2Vqzji9Bq8H58SO5BFtNPRw==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/credential-provider-env": "3.714.0",
- "@aws-sdk/credential-provider-http": "3.714.0",
- "@aws-sdk/credential-provider-ini": "3.714.0",
- "@aws-sdk/credential-provider-process": "3.714.0",
- "@aws-sdk/credential-provider-sso": "3.714.0",
- "@aws-sdk/credential-provider-web-identity": "3.714.0",
- "@aws-sdk/types": "3.714.0",
- "@smithy/credential-provider-imds": "^3.2.8",
- "@smithy/property-provider": "^3.1.11",
- "@smithy/shared-ini-file-loader": "^3.1.12",
- "@smithy/types": "^3.7.2",
+ "@aws-sdk/credential-provider-env": "3.750.0",
+ "@aws-sdk/credential-provider-http": "3.750.0",
+ "@aws-sdk/credential-provider-ini": "3.750.0",
+ "@aws-sdk/credential-provider-process": "3.750.0",
+ "@aws-sdk/credential-provider-sso": "3.750.0",
+ "@aws-sdk/credential-provider-web-identity": "3.750.0",
+ "@aws-sdk/types": "3.734.0",
+ "@smithy/credential-provider-imds": "^4.0.1",
+ "@smithy/property-provider": "^4.0.1",
+ "@smithy/shared-ini-file-loader": "^4.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/credential-provider-process": {
- "version": "3.714.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.714.0.tgz",
- "integrity": "sha512-mHM+zYJDUiXggBx4YvQgMOhbkV07KUib8/jWPnAZbUJcRncN/yevAp/WNocjUN4VaBWkooJUgoTET/okRK+TCQ==",
+ "version": "3.750.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.750.0.tgz",
+ "integrity": "sha512-Q78SCH1n0m7tpu36sJwfrUSxI8l611OyysjQeMiIOliVfZICEoHcLHLcLkiR+tnIpZ3rk7d2EQ6R1jwlXnalMQ==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "3.714.0",
- "@aws-sdk/types": "3.714.0",
- "@smithy/property-provider": "^3.1.11",
- "@smithy/shared-ini-file-loader": "^3.1.12",
- "@smithy/types": "^3.7.2",
+ "@aws-sdk/core": "3.750.0",
+ "@aws-sdk/types": "3.734.0",
+ "@smithy/property-provider": "^4.0.1",
+ "@smithy/shared-ini-file-loader": "^4.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/credential-provider-sso": {
- "version": "3.714.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.714.0.tgz",
- "integrity": "sha512-LQyHUQd+/A0PO96m6/A3KeekRplRpG9AmwLn8VPknlmACAhhbWHehzerCTd42V8dClf5pigr25/aVqh/2p/sRw==",
+ "version": "3.750.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.750.0.tgz",
+ "integrity": "sha512-FGYrDjXN/FOQVi/t8fHSv8zCk+NEvtFnuc4cZUj5OIbM4vrfFc5VaPyn41Uza3iv6Qq9rZg0QOwWnqK8lNrqUw==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/client-sso": "3.714.0",
- "@aws-sdk/core": "3.714.0",
- "@aws-sdk/token-providers": "3.714.0",
- "@aws-sdk/types": "3.714.0",
- "@smithy/property-provider": "^3.1.11",
- "@smithy/shared-ini-file-loader": "^3.1.12",
- "@smithy/types": "^3.7.2",
+ "@aws-sdk/client-sso": "3.750.0",
+ "@aws-sdk/core": "3.750.0",
+ "@aws-sdk/token-providers": "3.750.0",
+ "@aws-sdk/types": "3.734.0",
+ "@smithy/property-provider": "^4.0.1",
+ "@smithy/shared-ini-file-loader": "^4.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/credential-provider-web-identity": {
- "version": "3.714.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.714.0.tgz",
- "integrity": "sha512-piKfEJvLrGZ0bH4NPO19d1dtfCZi2p6YJUK/9vRCD1rvJidOuHNeUwIcxTnkIMovQHX12rZVvU9ub0C3CwegUQ==",
+ "version": "3.750.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.750.0.tgz",
+ "integrity": "sha512-Nz8zs3YJ+GOTSrq+LyzbbC1Ffpt7pK38gcOyNZv76pP5MswKTUKNYBJehqwa+i7FcFQHsCk3TdhR8MT1ZR23uA==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "3.714.0",
- "@aws-sdk/types": "3.714.0",
- "@smithy/property-provider": "^3.1.11",
- "@smithy/types": "^3.7.2",
+ "@aws-sdk/core": "3.750.0",
+ "@aws-sdk/nested-clients": "3.750.0",
+ "@aws-sdk/types": "3.734.0",
+ "@smithy/property-provider": "^4.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
- },
- "peerDependencies": {
- "@aws-sdk/client-sts": "^3.714.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/middleware-bucket-endpoint": {
- "version": "3.714.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.714.0.tgz",
- "integrity": "sha512-I/xSOskiseJJ8i183Z522BgqbgYzLKP7jGcg2Qeib/IWoG2IP+9DH8pwqagKaPAycyswtnoKBJiiFXY43n0CkA==",
+ "version": "3.734.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.734.0.tgz",
+ "integrity": "sha512-etC7G18aF7KdZguW27GE/wpbrNmYLVT755EsFc8kXpZj8D6AFKxc7OuveinJmiy0bYXAMspJUWsF6CrGpOw6CQ==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.714.0",
- "@aws-sdk/util-arn-parser": "3.693.0",
- "@smithy/node-config-provider": "^3.1.12",
- "@smithy/protocol-http": "^4.1.8",
- "@smithy/types": "^3.7.2",
- "@smithy/util-config-provider": "^3.0.0",
+ "@aws-sdk/types": "3.734.0",
+ "@aws-sdk/util-arn-parser": "3.723.0",
+ "@smithy/node-config-provider": "^4.0.1",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-config-provider": "^4.0.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/middleware-expect-continue": {
- "version": "3.714.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.714.0.tgz",
- "integrity": "sha512-rlzsXdG8Lzo4Qpl35ZnpOBAWlzvDHpP9++0AXoUwAJA0QmMm7auIRmgxJuNj91VwT9h15ZU6xjU4S7fJl4W0+w==",
+ "version": "3.734.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.734.0.tgz",
+ "integrity": "sha512-P38/v1l6HjuB2aFUewt7ueAW5IvKkFcv5dalPtbMGRhLeyivBOHwbCyuRKgVs7z7ClTpu9EaViEGki2jEQqEsQ==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.714.0",
- "@smithy/protocol-http": "^4.1.8",
- "@smithy/types": "^3.7.2",
+ "@aws-sdk/types": "3.734.0",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/middleware-flexible-checksums": {
- "version": "3.714.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.714.0.tgz",
- "integrity": "sha512-y5I2mRmTDRQ/SYa+F30RRE4xchTHmDPDiYKFRRoENxFhVcrv/FbjA3hfhB8Z95JfSalzJVr+XQjd+N+t4M2gMw==",
+ "version": "3.750.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.750.0.tgz",
+ "integrity": "sha512-ach0d2buDnX2TUausUbiXXFWFo3IegLnCrA+Rw8I9AYVpLN9lTaRwAYJwYC6zEuW9Golff8MwkYsp/OaC5tKMw==",
"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.714.0",
- "@aws-sdk/types": "3.714.0",
- "@smithy/is-array-buffer": "^3.0.0",
- "@smithy/node-config-provider": "^3.1.12",
- "@smithy/protocol-http": "^4.1.8",
- "@smithy/types": "^3.7.2",
- "@smithy/util-middleware": "^3.0.11",
- "@smithy/util-stream": "^3.3.2",
- "@smithy/util-utf8": "^3.0.0",
+ "@aws-sdk/core": "3.750.0",
+ "@aws-sdk/types": "3.734.0",
+ "@smithy/is-array-buffer": "^4.0.0",
+ "@smithy/node-config-provider": "^4.0.1",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-middleware": "^4.0.1",
+ "@smithy/util-stream": "^4.1.1",
+ "@smithy/util-utf8": "^4.0.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/middleware-host-header": {
- "version": "3.714.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.714.0.tgz",
- "integrity": "sha512-6l68kjNrh5QC8FGX3I3geBDavWN5Tg1RLHJ2HLA8ByGBtJyCwnz3hEkKfaxn0bBx0hF9DzbfjEOUF6cDqy2Kjg==",
+ "version": "3.734.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.734.0.tgz",
+ "integrity": "sha512-LW7RRgSOHHBzWZnigNsDIzu3AiwtjeI2X66v+Wn1P1u+eXssy1+up4ZY/h+t2sU4LU36UvEf+jrZti9c6vRnFw==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.714.0",
- "@smithy/protocol-http": "^4.1.8",
- "@smithy/types": "^3.7.2",
+ "@aws-sdk/types": "3.734.0",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/middleware-location-constraint": {
- "version": "3.714.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.714.0.tgz",
- "integrity": "sha512-MX7M+V+FblujKck3fyuzePVIAy9530gY719IiSxV6uN1qLHl7VDJxNblpF/KpXakD6rOg8OpvtmqsXj9aBMftw==",
+ "version": "3.734.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.734.0.tgz",
+ "integrity": "sha512-EJEIXwCQhto/cBfHdm3ZOeLxd2NlJD+X2F+ZTOxzokuhBtY0IONfC/91hOo5tWQweerojwshSMHRCKzRv1tlwg==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.714.0",
- "@smithy/types": "^3.7.2",
+ "@aws-sdk/types": "3.734.0",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/middleware-logger": {
- "version": "3.714.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.714.0.tgz",
- "integrity": "sha512-RkqHlMvQWUaRklU1bMfUuBvdWwxgUtEqpADaHXlGVj3vtEY2UgBjy+57CveC4MByqKIunNvVHBBbjrGVtwY7Lg==",
+ "version": "3.734.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.734.0.tgz",
+ "integrity": "sha512-mUMFITpJUW3LcKvFok176eI5zXAUomVtahb9IQBwLzkqFYOrMJvWAvoV4yuxrJ8TlQBG8gyEnkb9SnhZvjg67w==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.714.0",
- "@smithy/types": "^3.7.2",
+ "@aws-sdk/types": "3.734.0",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/middleware-recursion-detection": {
- "version": "3.714.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.714.0.tgz",
- "integrity": "sha512-AVU5ixnh93nqtsfgNc284oXsXaadyHGPHpql/jwgaaqQfEXjS/1/j3j9E/vpacfTTz2Vzo7hAOjnvrOXSEVDaA==",
+ "version": "3.734.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.734.0.tgz",
+ "integrity": "sha512-CUat2d9ITsFc2XsmeiRQO96iWpxSKYFjxvj27Hc7vo87YUHRnfMfnc8jw1EpxEwMcvBD7LsRa6vDNky6AjcrFA==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.714.0",
- "@smithy/protocol-http": "^4.1.8",
- "@smithy/types": "^3.7.2",
+ "@aws-sdk/types": "3.734.0",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/middleware-sdk-s3": {
- "version": "3.714.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.714.0.tgz",
- "integrity": "sha512-YYhX+JefwwEsUxYs0YXn5Mfb97Lo3hwnk3qRIlUkcotCsHYwgCX4jVWjeh8HK+RFFx3Krbh/8/YmzTkI/Z4Z9Q==",
+ "version": "3.750.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.750.0.tgz",
+ "integrity": "sha512-3H6Z46cmAQCHQ0z8mm7/cftY5ifiLfCjbObrbyyp2fhQs9zk6gCKzIX8Zjhw0RMd93FZi3ebRuKJWmMglf4Itw==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "3.714.0",
- "@aws-sdk/types": "3.714.0",
- "@aws-sdk/util-arn-parser": "3.693.0",
- "@smithy/core": "^2.5.5",
- "@smithy/node-config-provider": "^3.1.12",
- "@smithy/protocol-http": "^4.1.8",
- "@smithy/signature-v4": "^4.2.4",
- "@smithy/smithy-client": "^3.5.0",
- "@smithy/types": "^3.7.2",
- "@smithy/util-config-provider": "^3.0.0",
- "@smithy/util-middleware": "^3.0.11",
- "@smithy/util-stream": "^3.3.2",
- "@smithy/util-utf8": "^3.0.0",
+ "@aws-sdk/core": "3.750.0",
+ "@aws-sdk/types": "3.734.0",
+ "@aws-sdk/util-arn-parser": "3.723.0",
+ "@smithy/core": "^3.1.4",
+ "@smithy/node-config-provider": "^4.0.1",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/signature-v4": "^5.0.1",
+ "@smithy/smithy-client": "^4.1.5",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-config-provider": "^4.0.0",
+ "@smithy/util-middleware": "^4.0.1",
+ "@smithy/util-stream": "^4.1.1",
+ "@smithy/util-utf8": "^4.0.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/middleware-ssec": {
- "version": "3.714.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.714.0.tgz",
- "integrity": "sha512-RkK8REAVwNUQmYbIDRw8eYbMJ8F1Rw4C9mlME4BBMhFlelGcD3ErU2ce24moQbDxBjNwHNESmIqgmdQk93CDCQ==",
+ "version": "3.734.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.734.0.tgz",
+ "integrity": "sha512-d4yd1RrPW/sspEXizq2NSOUivnheac6LPeLSLnaeTbBG9g1KqIqvCzP1TfXEqv2CrWfHEsWtJpX7oyjySSPvDQ==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.714.0",
- "@smithy/types": "^3.7.2",
+ "@aws-sdk/types": "3.734.0",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/middleware-user-agent": {
- "version": "3.714.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.714.0.tgz",
- "integrity": "sha512-OgLjJf7WxUqA2OgiqGCfIc68gsbXlIG8LjObBiF0qlMStAd0L23AGuK5VmYinJlsle9qUpwQvWgKFKaDgdQXgA==",
+ "version": "3.750.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.750.0.tgz",
+ "integrity": "sha512-YYcslDsP5+2NZoN3UwuhZGkhAHPSli7HlJHBafBrvjGV/I9f8FuOO1d1ebxGdEP4HyRXUGyh+7Ur4q+Psk0ryw==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "3.714.0",
- "@aws-sdk/types": "3.714.0",
- "@aws-sdk/util-endpoints": "3.714.0",
- "@smithy/core": "^2.5.5",
- "@smithy/protocol-http": "^4.1.8",
- "@smithy/types": "^3.7.2",
+ "@aws-sdk/core": "3.750.0",
+ "@aws-sdk/types": "3.734.0",
+ "@aws-sdk/util-endpoints": "3.743.0",
+ "@smithy/core": "^3.1.4",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/nested-clients": {
+ "version": "3.750.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.750.0.tgz",
+ "integrity": "sha512-OH68BRF0rt9nDloq4zsfeHI0G21lj11a66qosaljtEP66PWm7tQ06feKbFkXHT5E1K3QhJW3nVyK8v2fEBY5fg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-crypto/sha256-browser": "5.2.0",
+ "@aws-crypto/sha256-js": "5.2.0",
+ "@aws-sdk/core": "3.750.0",
+ "@aws-sdk/middleware-host-header": "3.734.0",
+ "@aws-sdk/middleware-logger": "3.734.0",
+ "@aws-sdk/middleware-recursion-detection": "3.734.0",
+ "@aws-sdk/middleware-user-agent": "3.750.0",
+ "@aws-sdk/region-config-resolver": "3.734.0",
+ "@aws-sdk/types": "3.734.0",
+ "@aws-sdk/util-endpoints": "3.743.0",
+ "@aws-sdk/util-user-agent-browser": "3.734.0",
+ "@aws-sdk/util-user-agent-node": "3.750.0",
+ "@smithy/config-resolver": "^4.0.1",
+ "@smithy/core": "^3.1.4",
+ "@smithy/fetch-http-handler": "^5.0.1",
+ "@smithy/hash-node": "^4.0.1",
+ "@smithy/invalid-dependency": "^4.0.1",
+ "@smithy/middleware-content-length": "^4.0.1",
+ "@smithy/middleware-endpoint": "^4.0.5",
+ "@smithy/middleware-retry": "^4.0.6",
+ "@smithy/middleware-serde": "^4.0.2",
+ "@smithy/middleware-stack": "^4.0.1",
+ "@smithy/node-config-provider": "^4.0.1",
+ "@smithy/node-http-handler": "^4.0.2",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/smithy-client": "^4.1.5",
+ "@smithy/types": "^4.1.0",
+ "@smithy/url-parser": "^4.0.1",
+ "@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.6",
+ "@smithy/util-defaults-mode-node": "^4.0.6",
+ "@smithy/util-endpoints": "^3.0.1",
+ "@smithy/util-middleware": "^4.0.1",
+ "@smithy/util-retry": "^4.0.1",
+ "@smithy/util-utf8": "^4.0.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/region-config-resolver": {
- "version": "3.714.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.714.0.tgz",
- "integrity": "sha512-HJzsQxgMOAzZrbf/YIqEx30or4tZK1oNAk6Wm6xecUQx+23JXIaePRu1YFUOLBBERQ4QBPpISFurZWBMZ5ibAw==",
+ "version": "3.734.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.734.0.tgz",
+ "integrity": "sha512-Lvj1kPRC5IuJBr9DyJ9T9/plkh+EfKLy+12s/mykOy1JaKHDpvj+XGy2YO6YgYVOb8JFtaqloid+5COtje4JTQ==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.714.0",
- "@smithy/node-config-provider": "^3.1.12",
- "@smithy/types": "^3.7.2",
- "@smithy/util-config-provider": "^3.0.0",
- "@smithy/util-middleware": "^3.0.11",
+ "@aws-sdk/types": "3.734.0",
+ "@smithy/node-config-provider": "^4.0.1",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-config-provider": "^4.0.0",
+ "@smithy/util-middleware": "^4.0.1",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/signature-v4-multi-region": {
- "version": "3.714.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.714.0.tgz",
- "integrity": "sha512-xIQyx0ILRtJZnSUPpMsWkwASuFDYh9GPnr7p+pmfsV5KtRQluHuoH1wPkPTeNuTnAl7RDHUOmcOgTPUCDxiKxg==",
+ "version": "3.750.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.750.0.tgz",
+ "integrity": "sha512-RA9hv1Irro/CrdPcOEXKwJ0DJYJwYCsauGEdRXihrRfy8MNSR9E+mD5/Fr5Rxjaq5AHM05DYnN3mg/DU6VwzSw==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/middleware-sdk-s3": "3.714.0",
- "@aws-sdk/types": "3.714.0",
- "@smithy/protocol-http": "^4.1.8",
- "@smithy/signature-v4": "^4.2.4",
- "@smithy/types": "^3.7.2",
+ "@aws-sdk/middleware-sdk-s3": "3.750.0",
+ "@aws-sdk/types": "3.734.0",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/signature-v4": "^5.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/token-providers": {
- "version": "3.714.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.714.0.tgz",
- "integrity": "sha512-vKN064aLE3kl+Zl16Ony3jltHnMddMBT7JRkP1L+lLywhA0PcAKxpdvComul/sTBWnbnwLnaS5NsDUhcWySH8A==",
+ "version": "3.750.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.750.0.tgz",
+ "integrity": "sha512-X/KzqZw41iWolwNdc8e3RMcNSMR364viHv78u6AefXOO5eRM40c4/LuST1jDzq35/LpnqRhL7/MuixOetw+sFw==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.714.0",
- "@smithy/property-provider": "^3.1.11",
- "@smithy/shared-ini-file-loader": "^3.1.12",
- "@smithy/types": "^3.7.2",
+ "@aws-sdk/nested-clients": "3.750.0",
+ "@aws-sdk/types": "3.734.0",
+ "@smithy/property-provider": "^4.0.1",
+ "@smithy/shared-ini-file-loader": "^4.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
- },
- "peerDependencies": {
- "@aws-sdk/client-sso-oidc": "^3.714.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/types": {
- "version": "3.714.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.714.0.tgz",
- "integrity": "sha512-ZjpP2gYbSFlxxaUDa1Il5AVvfggvUPbjzzB/l3q0gIE5Thd6xKW+yzEpt2mLZ5s5UaYSABZbF94g8NUOF4CVGA==",
+ "version": "3.734.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.734.0.tgz",
+ "integrity": "sha512-o11tSPTT70nAkGV1fN9wm/hAIiLPyWX6SuGf+9JyTp7S/rC2cFWhR26MvA69nplcjNaXVzB0f+QFrLXXjOqCrg==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^3.7.2",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/util-arn-parser": {
- "version": "3.693.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.693.0.tgz",
- "integrity": "sha512-WC8x6ca+NRrtpAH64rWu+ryDZI3HuLwlEr8EU6/dbC/pt+r/zC0PBoC15VEygUaBA+isppCikQpGyEDu0Yj7gQ==",
+ "version": "3.723.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.723.0.tgz",
+ "integrity": "sha512-ZhEfvUwNliOQROcAk34WJWVYTlTa4694kSVhDSjW6lE1bMataPnIN8A0ycukEzBXmd8ZSoBcQLn6lKGl7XIJ5w==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/util-endpoints": {
- "version": "3.714.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.714.0.tgz",
- "integrity": "sha512-Xv+Z2lhe7w7ZZRsgBwBMZgGTVmS+dkkj2S13uNHAx9lhB5ovM8PhK5G/j28xYf6vIibeuHkRAbb7/ozdZIGR+A==",
+ "version": "3.743.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.743.0.tgz",
+ "integrity": "sha512-sN1l559zrixeh5x+pttrnd0A3+r34r0tmPkJ/eaaMaAzXqsmKU/xYre9K3FNnsSS1J1k4PEfk/nHDTVUgFYjnw==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.714.0",
- "@smithy/types": "^3.7.2",
- "@smithy/util-endpoints": "^2.1.7",
+ "@aws-sdk/types": "3.734.0",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-endpoints": "^3.0.1",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/util-locate-window": {
@@ -977,31 +922,31 @@
}
},
"node_modules/@aws-sdk/util-user-agent-browser": {
- "version": "3.714.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.714.0.tgz",
- "integrity": "sha512-OdJJ03cP9/MgIVToPJPCPUImbpZzTcwdIgbXC0tUQPJhbD7b7cB4LdnkhNHko+MptpOrCq4CPY/33EpOjRdofw==",
+ "version": "3.734.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.734.0.tgz",
+ "integrity": "sha512-xQTCus6Q9LwUuALW+S76OL0jcWtMOVu14q+GoLnWPUM7QeUw963oQcLhF7oq0CtaLLKyl4GOUfcwc773Zmwwng==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.714.0",
- "@smithy/types": "^3.7.2",
+ "@aws-sdk/types": "3.734.0",
+ "@smithy/types": "^4.1.0",
"bowser": "^2.11.0",
"tslib": "^2.6.2"
}
},
"node_modules/@aws-sdk/util-user-agent-node": {
- "version": "3.714.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.714.0.tgz",
- "integrity": "sha512-x8JoZb7yBEbNUmHUNoRAP4L++6A5uZCVf2yFLw8CZKpH4q+Cf1a68ou48OfnND3H0rbBnLXc/3uOlseRvd57/g==",
+ "version": "3.750.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.750.0.tgz",
+ "integrity": "sha512-84HJj9G9zbrHX2opLk9eHfDceB+UIHVrmflMzWHpsmo9fDuro/flIBqaVDlE021Osj6qIM0SJJcnL6s23j7JEw==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/middleware-user-agent": "3.714.0",
- "@aws-sdk/types": "3.714.0",
- "@smithy/node-config-provider": "^3.1.12",
- "@smithy/types": "^3.7.2",
+ "@aws-sdk/middleware-user-agent": "3.750.0",
+ "@aws-sdk/types": "3.734.0",
+ "@smithy/node-config-provider": "^4.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
},
"peerDependencies": {
"aws-crt": ">=1.0.0"
@@ -1013,16 +958,16 @@
}
},
"node_modules/@aws-sdk/xml-builder": {
- "version": "3.709.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.709.0.tgz",
- "integrity": "sha512-2GPCwlNxeHspoK/Mc8nbk9cBOkSpp3j2SJUQmFnyQK6V/pR6II2oPRyZkMomug1Rc10hqlBHByMecq4zhV2uUw==",
+ "version": "3.734.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.734.0.tgz",
+ "integrity": "sha512-Zrjxi5qwGEcUsJ0ru7fRtW74WcTS0rbLcehoFB+rN1GRi2hbLcFaYs4PwVA5diLeAJH0gszv3x4Hr/S87MfbKQ==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^3.7.2",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@babel/code-frame": {
@@ -1267,6 +1212,12 @@
"node": ">=6.9.0"
}
},
+ "node_modules/@dimforge/rapier2d-compat": {
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/@dimforge/rapier2d-compat/-/rapier2d-compat-0.14.0.tgz",
+ "integrity": "sha512-sljQVPstRS63hVLnVNphsZUjH51TZoptVM0XlglKAdZ8CT+kWnmA6olwjkF7omPWYrlKMd/nHORxOUdJDOSoAQ==",
+ "license": "Apache-2.0"
+ },
"node_modules/@discoveryjs/json-ext": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz",
@@ -2099,12 +2050,12 @@
}
},
"node_modules/@eslint/config-array": {
- "version": "0.19.1",
- "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.1.tgz",
- "integrity": "sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==",
+ "version": "0.19.2",
+ "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.2.tgz",
+ "integrity": "sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==",
"license": "Apache-2.0",
"dependencies": {
- "@eslint/object-schema": "^2.1.5",
+ "@eslint/object-schema": "^2.1.6",
"debug": "^4.3.1",
"minimatch": "^3.1.2"
},
@@ -2135,9 +2086,9 @@
}
},
"node_modules/@eslint/core": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.1.tgz",
- "integrity": "sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==",
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz",
+ "integrity": "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==",
"license": "Apache-2.0",
"dependencies": {
"@types/json-schema": "^7.0.15"
@@ -2147,9 +2098,9 @@
}
},
"node_modules/@eslint/eslintrc": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz",
- "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.0.tgz",
+ "integrity": "sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==",
"license": "MIT",
"dependencies": {
"ajv": "^6.12.4",
@@ -2192,29 +2143,30 @@
}
},
"node_modules/@eslint/js": {
- "version": "9.17.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.17.0.tgz",
- "integrity": "sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w==",
+ "version": "9.21.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.21.0.tgz",
+ "integrity": "sha512-BqStZ3HX8Yz6LvsF5ByXYrtigrV5AXADWLAGc7PH/1SxOb7/FIYYMszZZWiUou/GB9P2lXWk2SV4d+Z8h0nknw==",
"license": "MIT",
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
"node_modules/@eslint/object-schema": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.5.tgz",
- "integrity": "sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==",
+ "version": "2.1.6",
+ "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz",
+ "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==",
"license": "Apache-2.0",
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
"node_modules/@eslint/plugin-kit": {
- "version": "0.2.4",
- "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.4.tgz",
- "integrity": "sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==",
+ "version": "0.2.7",
+ "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz",
+ "integrity": "sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==",
"license": "Apache-2.0",
"dependencies": {
+ "@eslint/core": "^0.12.0",
"levn": "^0.4.1"
},
"engines": {
@@ -2279,9 +2231,9 @@
}
},
"node_modules/@humanwhocodes/retry": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz",
- "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==",
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz",
+ "integrity": "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==",
"license": "Apache-2.0",
"engines": {
"node": ">=18.18"
@@ -2793,24 +2745,24 @@
}
},
"node_modules/@next/bundle-analyzer": {
- "version": "15.1.1",
- "resolved": "https://registry.npmjs.org/@next/bundle-analyzer/-/bundle-analyzer-15.1.1.tgz",
- "integrity": "sha512-9B3cSGYpzWYjLzjR9TDw4JroZoGZ6xJIjiEowGFSILCYhy9WoOW6JXdxiuLalIoKPP+wNmNuV68LI1Pu6nq8dA==",
+ "version": "15.1.7",
+ "resolved": "https://registry.npmjs.org/@next/bundle-analyzer/-/bundle-analyzer-15.1.7.tgz",
+ "integrity": "sha512-tESiAwTUEpzzxKMLDbQuPHvD+PFDjY+0O3R4T5bpjIo0cr5fvppbbllQbtksQbBEquT55Eu8JmDoOlc9YFv6Kw==",
"license": "MIT",
"dependencies": {
"webpack-bundle-analyzer": "4.10.1"
}
},
"node_modules/@next/env": {
- "version": "15.1.1-canary.5",
- "resolved": "https://registry.npmjs.org/@next/env/-/env-15.1.1-canary.5.tgz",
- "integrity": "sha512-DjAoWwdjOYsLEmy8dGNT5jG1In9RG2A5mcPSySaO56+CYgd82a8Xqf3r+sH0Op6D6V7/TmzuIPTdxofYZOZFqg==",
+ "version": "15.2.0-canary.69",
+ "resolved": "https://registry.npmjs.org/@next/env/-/env-15.2.0-canary.69.tgz",
+ "integrity": "sha512-vFyniXXqRNL1AM8TFCAEh8YsPuphIHHg+FlpbFE40+AVvmuBcruhwgillpzoA/laa6HalKOZ8HdeaUz4387ZSA==",
"license": "MIT"
},
"node_modules/@next/eslint-plugin-next": {
- "version": "15.1.1",
- "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.1.1.tgz",
- "integrity": "sha512-yACipsS2HI9ktcfz/1UsO0/sDbVjXWKDE/fzzMLnYES+K4KJyqHChyBQeaxiK7/NDnxrdk7Ow2i9LRm3ZTAWow==",
+ "version": "15.1.7",
+ "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.1.7.tgz",
+ "integrity": "sha512-kRP7RjSxfTO13NE317ek3mSGzoZlI33nc/i5hs1KaWpK+egs85xg0DJ4p32QEiHnR0mVjuUfhRIun7awqfL7pQ==",
"license": "MIT",
"dependencies": {
"fast-glob": "3.3.1"
@@ -2845,9 +2797,9 @@
}
},
"node_modules/@next/mdx": {
- "version": "15.1.1",
- "resolved": "https://registry.npmjs.org/@next/mdx/-/mdx-15.1.1.tgz",
- "integrity": "sha512-Kg7SWpscs6fiSbIOJB3tCd5LT+XOixucia9QoeM34Z9HLiLZfYpSAnXtLysptxfZC9Dm43PR8HnmtxFXRm3fNw==",
+ "version": "15.1.7",
+ "resolved": "https://registry.npmjs.org/@next/mdx/-/mdx-15.1.7.tgz",
+ "integrity": "sha512-olVOjKA1K8b7/cu0zqWecVkwyCUnB9xlKXxB/CeCRoZYlH0zluLHwhWBX0PR9yf3CG7eNLrK+PfuPBF+LdWODQ==",
"license": "MIT",
"dependencies": {
"source-map": "^0.7.0"
@@ -2866,9 +2818,9 @@
}
},
"node_modules/@next/swc-darwin-arm64": {
- "version": "15.1.1-canary.5",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.1.1-canary.5.tgz",
- "integrity": "sha512-kgUQnOTNZrIDKBYPrEuv56WRbt1IAUx1OIYweFZnvHRfmnxuMjjFS4FBOFk1dSdBQsMi8CJ5geki8eJ9Uhobgg==",
+ "version": "15.2.0-canary.69",
+ "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.2.0-canary.69.tgz",
+ "integrity": "sha512-pHLUIxHS4IwZ05EoyyW8Nvq3kd4uWkg5HpRz3kVMb5ErQTU5snzS3zr48LMmuCjDSAAlRnfbZGHPF8l/AtA84g==",
"cpu": [
"arm64"
],
@@ -2882,9 +2834,9 @@
}
},
"node_modules/@next/swc-darwin-x64": {
- "version": "15.1.1-canary.5",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.1.1-canary.5.tgz",
- "integrity": "sha512-cx+iA74gwYgbJaPgxbRk3E8OPhylTMK5EEbE/EEx+uYrIixNQQ/zXS9BJjLe1eFN7DuEDDEJEEeeUStqu/FemA==",
+ "version": "15.2.0-canary.69",
+ "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.2.0-canary.69.tgz",
+ "integrity": "sha512-oktG31knl2z49XbcpMrIgFME9wwofD0V1ZyZSqzqlCvLu4vEa59J9doVyzXd0X9J16IJEE4vI57bKQiWJmmR5Q==",
"cpu": [
"x64"
],
@@ -2898,9 +2850,9 @@
}
},
"node_modules/@next/swc-linux-arm64-gnu": {
- "version": "15.1.1-canary.5",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.1.1-canary.5.tgz",
- "integrity": "sha512-l1sxaav3IGn08TeIA/zWO4nfnNjZ+7EdR46r5sSwXz/gRdcZ0OlRNWOVSUUlVOeQDixtFhZj+XWDxQWFPCy5VQ==",
+ "version": "15.2.0-canary.69",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.2.0-canary.69.tgz",
+ "integrity": "sha512-JvRLPJF1/JsbY4aNRSy87HgA6wqNHTO2VnsY1ErNGUnCvB8dHvyTjfd5/hf83hOj/iVAB11CtxKCqW+8bmeJmA==",
"cpu": [
"arm64"
],
@@ -2914,9 +2866,9 @@
}
},
"node_modules/@next/swc-linux-arm64-musl": {
- "version": "15.1.1-canary.5",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.1.1-canary.5.tgz",
- "integrity": "sha512-8V2hfdTkkdThpSL/hLgW4O/JDmRzXFz6LYhjDyRD/Tj2a63FIagoqiwyZ8Z6xkvbPIqDFDhoocNDm23lY/xM3w==",
+ "version": "15.2.0-canary.69",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.2.0-canary.69.tgz",
+ "integrity": "sha512-nwiV4jd+aG5MNA2kwkxZmAmYYlRFgpLOdthWKrcQq7OCvJMbeDGf6h430qBJdNhC37Gzb4x683eILqSTppBhuA==",
"cpu": [
"arm64"
],
@@ -2930,9 +2882,9 @@
}
},
"node_modules/@next/swc-linux-x64-gnu": {
- "version": "15.1.1-canary.5",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.1.1-canary.5.tgz",
- "integrity": "sha512-8NTdiIRtT3sZaIBuVGPyS56+G6d4+3biEYSN+35qqnnHmXledokcA9MPi2z9/mbPFFO/CsEdolrUFbs6OxCsrw==",
+ "version": "15.2.0-canary.69",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.2.0-canary.69.tgz",
+ "integrity": "sha512-nOnGtaXTZ/yI+PYwm3LQjw/Kxzbw00Jw0vGuuqfSgg4NVf4Nm7O0QzbNWMb0tpKGAQkxUbhEe7vUPTdN9uqBWg==",
"cpu": [
"x64"
],
@@ -2946,9 +2898,9 @@
}
},
"node_modules/@next/swc-linux-x64-musl": {
- "version": "15.1.1-canary.5",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.1.1-canary.5.tgz",
- "integrity": "sha512-eCzJd34zxt88RcZOM4pJYsbYUE8TZ07aOrpxn/S/4nqNd/NU7qMrkNjnEXAzGnSatMGZgskueF66YTtpAmbMyw==",
+ "version": "15.2.0-canary.69",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.2.0-canary.69.tgz",
+ "integrity": "sha512-pWW2PmNj/UT5uzLMqi6dX/HG+OEIUbOPfyjvXXRXjwmlabktOY3FgI2OPBWWplneXrf8pM2gMQfnN8WAEJsggA==",
"cpu": [
"x64"
],
@@ -2962,9 +2914,9 @@
}
},
"node_modules/@next/swc-win32-arm64-msvc": {
- "version": "15.1.1-canary.5",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.1.1-canary.5.tgz",
- "integrity": "sha512-faS9mQbnCCkwt0n4z+luvOTIrPcwIBGhTXistTov0ODhDlIGgog0PFvLNtfCRrmvTbjHpUEjGnvKc2jP/oCcsw==",
+ "version": "15.2.0-canary.69",
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.2.0-canary.69.tgz",
+ "integrity": "sha512-m/QodJZjb8/A3bmvXn8ydnYaOv0TWugL5EyQHVVm37h+UJujQcj8n/OQqGtesUh6DQ8X091fuNRCB2bjheV5dA==",
"cpu": [
"arm64"
],
@@ -2978,9 +2930,9 @@
}
},
"node_modules/@next/swc-win32-x64-msvc": {
- "version": "15.1.1-canary.5",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.1.1-canary.5.tgz",
- "integrity": "sha512-cor0a3R+bAkDGPSmd37xER99X9lcXn8eFWri4mu4LU66AfMNgteqhKYXsgBjsZ1MH9ieAt4TLUTRv9D5vFKvVQ==",
+ "version": "15.2.0-canary.69",
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.2.0-canary.69.tgz",
+ "integrity": "sha512-7iW1kCEVB0JMUUYatQeb+JsBr0JZ6pscJs0HM03adbcKS08fRRK6ENk9nUDmRow995FfLDpx5fblJTkAGfDp5g==",
"cpu": [
"x64"
],
@@ -3046,16 +2998,148 @@
"url": "https://github.com/sponsors/panva"
}
},
- "node_modules/@pkgjs/parseargs": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
- "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
+ "node_modules/@pixi-essentials/object-pool": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@pixi-essentials/object-pool/-/object-pool-1.0.1.tgz",
+ "integrity": "sha512-8/rwSi+yOjINQcAsviRaTcWRybmR6SVQnYpMXSgGzoMobv4jNSvS5HULlskAMXWh/Q44XCxY0Hi9jwv5gaw6bQ==",
"license": "MIT",
- "optional": true,
- "engines": {
- "node": ">=14"
+ "peerDependencies": {
+ "@pixi/settings": "^7.0.0",
+ "@pixi/ticker": "^7.0.0"
}
},
+ "node_modules/@pixi/color": {
+ "version": "7.4.2",
+ "resolved": "https://registry.npmjs.org/@pixi/color/-/color-7.4.2.tgz",
+ "integrity": "sha512-av1LOvhHsiaW8+T4n/FgnOKHby55/w7VcA1HzPIHRBtEcsmxvSCDanT1HU2LslNhrxLPzyVx18nlmalOyt5OBg==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@pixi/colord": "^2.9.6"
+ }
+ },
+ "node_modules/@pixi/colord": {
+ "version": "2.9.6",
+ "resolved": "https://registry.npmjs.org/@pixi/colord/-/colord-2.9.6.tgz",
+ "integrity": "sha512-nezytU2pw587fQstUu1AsJZDVEynjskwOL+kibwcdxsMBFqPsFFNA7xl0ii/gXuDi6M0xj3mfRJj8pBSc2jCfA==",
+ "license": "MIT"
+ },
+ "node_modules/@pixi/constants": {
+ "version": "7.4.2",
+ "resolved": "https://registry.npmjs.org/@pixi/constants/-/constants-7.4.2.tgz",
+ "integrity": "sha512-N9vn6Wpz5WIQg7ugUg2+SdqD2u2+NM0QthE8YzLJ4tLH2Iz+/TrnPKUJzeyIqbg3sxJG5ZpGGPiacqIBpy1KyA==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/@pixi/core": {
+ "version": "7.4.2",
+ "resolved": "https://registry.npmjs.org/@pixi/core/-/core-7.4.2.tgz",
+ "integrity": "sha512-UbMtgSEnyCOFPzbE6ThB9qopXxbZ5GCof2ArB4FXOC5Xi/83MOIIYg5kf5M8689C5HJMhg2SrJu3xLKppF+CMg==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@pixi/color": "7.4.2",
+ "@pixi/constants": "7.4.2",
+ "@pixi/extensions": "7.4.2",
+ "@pixi/math": "7.4.2",
+ "@pixi/runner": "7.4.2",
+ "@pixi/settings": "7.4.2",
+ "@pixi/ticker": "7.4.2",
+ "@pixi/utils": "7.4.2"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/pixijs"
+ }
+ },
+ "node_modules/@pixi/display": {
+ "version": "7.4.2",
+ "resolved": "https://registry.npmjs.org/@pixi/display/-/display-7.4.2.tgz",
+ "integrity": "sha512-DaD0J7gIlNlzO0Fdlby/0OH+tB5LtCY6rgFeCBKVDnzmn8wKW3zYZRenWBSFJ0Psx6vLqXYkSIM/rcokaKviIw==",
+ "license": "MIT",
+ "peer": true,
+ "peerDependencies": {
+ "@pixi/core": "7.4.2"
+ }
+ },
+ "node_modules/@pixi/events": {
+ "version": "7.4.2",
+ "resolved": "https://registry.npmjs.org/@pixi/events/-/events-7.4.2.tgz",
+ "integrity": "sha512-Jw/w57heZjzZShIXL0bxOvKB+XgGIevyezhGtfF2ZSzQoSBWo+Fj1uE0QwKd0RIaXegZw/DhSmiMJSbNmcjifA==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@pixi/core": "7.4.2",
+ "@pixi/display": "7.4.2"
+ }
+ },
+ "node_modules/@pixi/extensions": {
+ "version": "7.4.2",
+ "resolved": "https://registry.npmjs.org/@pixi/extensions/-/extensions-7.4.2.tgz",
+ "integrity": "sha512-Hmx2+O0yZ8XIvgomHM9GZEGcy9S9Dd8flmtOK5Aa3fXs/8v7xD08+ANQpN9ZqWU2Xs+C6UBlpqlt2BWALvKKKA==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/@pixi/math": {
+ "version": "7.4.2",
+ "resolved": "https://registry.npmjs.org/@pixi/math/-/math-7.4.2.tgz",
+ "integrity": "sha512-7jHmCQoYk6e0rfSKjdNFOPl0wCcdgoraxgteXJTTHv3r0bMNx2pHD9FJ0VvocEUG7XHfj55O3+u7yItOAx0JaQ==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/@pixi/runner": {
+ "version": "7.4.2",
+ "resolved": "https://registry.npmjs.org/@pixi/runner/-/runner-7.4.2.tgz",
+ "integrity": "sha512-LPBpwym4vdyyDY5ucF4INQccaGyxztERyLTY1YN6aqJyyMmnc7iqXlIKt+a0euMBtNoLoxy6MWMvIuZj0JfFPA==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/@pixi/settings": {
+ "version": "7.4.2",
+ "resolved": "https://registry.npmjs.org/@pixi/settings/-/settings-7.4.2.tgz",
+ "integrity": "sha512-pMN+L6aWgvUbwhFIL/BTHKe2ShYGPZ8h9wlVBnFHMtUcJcFLMF1B3lzuvCayZRepOphs6RY0TqvnDvVb585JhQ==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@pixi/constants": "7.4.2",
+ "@types/css-font-loading-module": "^0.0.12",
+ "ismobilejs": "^1.1.0"
+ }
+ },
+ "node_modules/@pixi/ticker": {
+ "version": "7.4.2",
+ "resolved": "https://registry.npmjs.org/@pixi/ticker/-/ticker-7.4.2.tgz",
+ "integrity": "sha512-cAvxCh/KI6IW4m3tp2b+GQIf+DoSj9NNmPJmsOeEJ7LzvruG8Ps7SKI6CdjQob5WbceL1apBTDbqZ/f77hFDiQ==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@pixi/extensions": "7.4.2",
+ "@pixi/settings": "7.4.2",
+ "@pixi/utils": "7.4.2"
+ }
+ },
+ "node_modules/@pixi/utils": {
+ "version": "7.4.2",
+ "resolved": "https://registry.npmjs.org/@pixi/utils/-/utils-7.4.2.tgz",
+ "integrity": "sha512-aU/itcyMC4TxFbmdngmak6ey4kC5c16Y5ntIYob9QnjNAfD/7GTsYIBnP6FqEAyO1eq0MjkAALxdONuay1BG3g==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@pixi/color": "7.4.2",
+ "@pixi/constants": "7.4.2",
+ "@pixi/settings": "7.4.2",
+ "@types/earcut": "^2.1.0",
+ "earcut": "^2.2.4",
+ "eventemitter3": "^4.0.0",
+ "url": "^0.11.0"
+ }
+ },
+ "node_modules/@pixi/utils/node_modules/eventemitter3": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
+ "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
+ "license": "MIT",
+ "peer": true
+ },
"node_modules/@polka/url": {
"version": "1.0.0-next.28",
"resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz",
@@ -3115,693 +3199,720 @@
"license": "MIT"
},
"node_modules/@smithy/abort-controller": {
- "version": "3.1.9",
- "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-3.1.9.tgz",
- "integrity": "sha512-yiW0WI30zj8ZKoSYNx90no7ugVn3khlyH/z5W8qtKBtVE6awRALbhSG+2SAHA1r6bO/6M9utxYKVZ3PCJ1rWxw==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-4.0.1.tgz",
+ "integrity": "sha512-fiUIYgIgRjMWznk6iLJz35K2YxSLHzLBA/RC6lBrKfQ8fHbPfvk7Pk9UvpKoHgJjI18MnbPuEju53zcVy6KF1g==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^3.7.2",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/chunked-blob-reader": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader/-/chunked-blob-reader-4.0.0.tgz",
- "integrity": "sha512-jSqRnZvkT4egkq/7b6/QRCNXmmYVcHwnJldqJ3IhVpQE2atObVJ137xmGeuGFhjFUr8gCEVAOKwSY79OvpbDaQ==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader/-/chunked-blob-reader-5.0.0.tgz",
+ "integrity": "sha512-+sKqDBQqb036hh4NPaUiEkYFkTUGYzRsn3EuFhyfQfMy6oGHEUJDurLP9Ufb5dasr/XiAmPNMr6wa9afjQB+Gw==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/chunked-blob-reader-native": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-3.0.1.tgz",
- "integrity": "sha512-VEYtPvh5rs/xlyqpm5NRnfYLZn+q0SRPELbvBV+C/G7IQ+ouTuo+NKKa3ShG5OaFR8NYVMXls9hPYLTvIKKDrQ==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-4.0.0.tgz",
+ "integrity": "sha512-R9wM2yPmfEMsUmlMlIgSzOyICs0x9uu7UTHoccMyt7BWw8shcGM8HqB355+BZCPBcySvbTYMs62EgEQkNxz2ig==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/util-base64": "^3.0.0",
+ "@smithy/util-base64": "^4.0.0",
"tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/config-resolver": {
- "version": "3.0.13",
- "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-3.0.13.tgz",
- "integrity": "sha512-Gr/qwzyPaTL1tZcq8WQyHhTZREER5R1Wytmz4WnVGL4onA3dNk6Btll55c8Vr58pLdvWZmtG8oZxJTw3t3q7Jg==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-4.0.1.tgz",
+ "integrity": "sha512-Igfg8lKu3dRVkTSEm98QpZUvKEOa71jDX4vKRcvJVyRc3UgN3j7vFMf0s7xLQhYmKa8kyJGQgUJDOV5V3neVlQ==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/node-config-provider": "^3.1.12",
- "@smithy/types": "^3.7.2",
- "@smithy/util-config-provider": "^3.0.0",
- "@smithy/util-middleware": "^3.0.11",
+ "@smithy/node-config-provider": "^4.0.1",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-config-provider": "^4.0.0",
+ "@smithy/util-middleware": "^4.0.1",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/core": {
- "version": "2.5.5",
- "resolved": "https://registry.npmjs.org/@smithy/core/-/core-2.5.5.tgz",
- "integrity": "sha512-G8G/sDDhXA7o0bOvkc7bgai6POuSld/+XhNnWAbpQTpLv2OZPvyqQ58tLPPlz0bSNsXktldDDREIv1LczFeNEw==",
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.1.4.tgz",
+ "integrity": "sha512-wFExFGK+7r2wYriOqe7RRIBNpvxwiS95ih09+GSLRBdoyK/O1uZA7K7pKesj5CBvwJuSBeXwLyR88WwIAY+DGA==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/middleware-serde": "^3.0.11",
- "@smithy/protocol-http": "^4.1.8",
- "@smithy/types": "^3.7.2",
- "@smithy/util-body-length-browser": "^3.0.0",
- "@smithy/util-middleware": "^3.0.11",
- "@smithy/util-stream": "^3.3.2",
- "@smithy/util-utf8": "^3.0.0",
+ "@smithy/middleware-serde": "^4.0.2",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-body-length-browser": "^4.0.0",
+ "@smithy/util-middleware": "^4.0.1",
+ "@smithy/util-stream": "^4.1.1",
+ "@smithy/util-utf8": "^4.0.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/credential-provider-imds": {
- "version": "3.2.8",
- "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-3.2.8.tgz",
- "integrity": "sha512-ZCY2yD0BY+K9iMXkkbnjo+08T2h8/34oHd0Jmh6BZUSZwaaGlGCyBT/3wnS7u7Xl33/EEfN4B6nQr3Gx5bYxgw==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.0.1.tgz",
+ "integrity": "sha512-l/qdInaDq1Zpznpmev/+52QomsJNZ3JkTl5yrTl02V6NBgJOQ4LY0SFw/8zsMwj3tLe8vqiIuwF6nxaEwgf6mg==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/node-config-provider": "^3.1.12",
- "@smithy/property-provider": "^3.1.11",
- "@smithy/types": "^3.7.2",
- "@smithy/url-parser": "^3.0.11",
+ "@smithy/node-config-provider": "^4.0.1",
+ "@smithy/property-provider": "^4.0.1",
+ "@smithy/types": "^4.1.0",
+ "@smithy/url-parser": "^4.0.1",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/eventstream-codec": {
- "version": "3.1.10",
- "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-3.1.10.tgz",
- "integrity": "sha512-323B8YckSbUH0nMIpXn7HZsAVKHYHFUODa8gG9cHo0ySvA1fr5iWaNT+iIL0UCqUzG6QPHA3BSsBtRQou4mMqQ==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-4.0.1.tgz",
+ "integrity": "sha512-Q2bCAAR6zXNVtJgifsU16ZjKGqdw/DyecKNgIgi7dlqw04fqDu0mnq+JmGphqheypVc64CYq3azSuCpAdFk2+A==",
"license": "Apache-2.0",
"dependencies": {
"@aws-crypto/crc32": "5.2.0",
- "@smithy/types": "^3.7.2",
- "@smithy/util-hex-encoding": "^3.0.0",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-hex-encoding": "^4.0.0",
"tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/eventstream-serde-browser": {
- "version": "3.0.14",
- "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.14.tgz",
- "integrity": "sha512-kbrt0vjOIihW3V7Cqj1SXQvAI5BR8SnyQYsandva0AOR307cXAc+IhPngxIPslxTLfxwDpNu0HzCAq6g42kCPg==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-4.0.1.tgz",
+ "integrity": "sha512-HbIybmz5rhNg+zxKiyVAnvdM3vkzjE6ccrJ620iPL8IXcJEntd3hnBl+ktMwIy12Te/kyrSbUb8UCdnUT4QEdA==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/eventstream-serde-universal": "^3.0.13",
- "@smithy/types": "^3.7.2",
+ "@smithy/eventstream-serde-universal": "^4.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/eventstream-serde-config-resolver": {
- "version": "3.0.11",
- "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.0.11.tgz",
- "integrity": "sha512-P2pnEp4n75O+QHjyO7cbw/vsw5l93K/8EWyjNCAAybYwUmj3M+hjSQZ9P5TVdUgEG08ueMAP5R4FkuSkElZ5tQ==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-4.0.1.tgz",
+ "integrity": "sha512-lSipaiq3rmHguHa3QFF4YcCM3VJOrY9oq2sow3qlhFY+nBSTF/nrO82MUQRPrxHQXA58J5G1UnU2WuJfi465BA==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^3.7.2",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/eventstream-serde-node": {
- "version": "3.0.13",
- "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.13.tgz",
- "integrity": "sha512-zqy/9iwbj8Wysmvi7Lq7XFLeDgjRpTbCfwBhJa8WbrylTAHiAu6oQTwdY7iu2lxigbc9YYr9vPv5SzYny5tCXQ==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-4.0.1.tgz",
+ "integrity": "sha512-o4CoOI6oYGYJ4zXo34U8X9szDe3oGjmHgsMGiZM0j4vtNoT+h80TLnkUcrLZR3+E6HIxqW+G+9WHAVfl0GXK0Q==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/eventstream-serde-universal": "^3.0.13",
- "@smithy/types": "^3.7.2",
+ "@smithy/eventstream-serde-universal": "^4.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/eventstream-serde-universal": {
- "version": "3.0.13",
- "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.13.tgz",
- "integrity": "sha512-L1Ib66+gg9uTnqp/18Gz4MDpJPKRE44geOjOQ2SVc0eiaO5l255ADziATZgjQjqumC7yPtp1XnjHlF1srcwjKw==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-4.0.1.tgz",
+ "integrity": "sha512-Z94uZp0tGJuxds3iEAZBqGU2QiaBHP4YytLUjwZWx+oUeohCsLyUm33yp4MMBmhkuPqSbQCXq5hDet6JGUgHWA==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/eventstream-codec": "^3.1.10",
- "@smithy/types": "^3.7.2",
+ "@smithy/eventstream-codec": "^4.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/fetch-http-handler": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-4.1.2.tgz",
- "integrity": "sha512-R7rU7Ae3ItU4rC0c5mB2sP5mJNbCfoDc8I5XlYjIZnquyUwec7fEo78F6DA3SmgJgkU1qTMcZJuGblxZsl10ZA==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.0.1.tgz",
+ "integrity": "sha512-3aS+fP28urrMW2KTjb6z9iFow6jO8n3MFfineGbndvzGZit3taZhKWtTorf+Gp5RpFDDafeHlhfsGlDCXvUnJA==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/protocol-http": "^4.1.8",
- "@smithy/querystring-builder": "^3.0.11",
- "@smithy/types": "^3.7.2",
- "@smithy/util-base64": "^3.0.0",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/querystring-builder": "^4.0.1",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-base64": "^4.0.0",
"tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/hash-blob-browser": {
- "version": "3.1.10",
- "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-3.1.10.tgz",
- "integrity": "sha512-elwslXOoNunmfS0fh55jHggyhccobFkexLYC1ZeZ1xP2BTSrcIBaHV2b4xUQOdctrSNOpMqOZH1r2XzWTEhyfA==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-4.0.1.tgz",
+ "integrity": "sha512-rkFIrQOKZGS6i1D3gKJ8skJ0RlXqDvb1IyAphksaFOMzkn3v3I1eJ8m7OkLj0jf1McP63rcCEoLlkAn/HjcTRw==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/chunked-blob-reader": "^4.0.0",
- "@smithy/chunked-blob-reader-native": "^3.0.1",
- "@smithy/types": "^3.7.2",
+ "@smithy/chunked-blob-reader": "^5.0.0",
+ "@smithy/chunked-blob-reader-native": "^4.0.0",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/hash-node": {
- "version": "3.0.11",
- "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-3.0.11.tgz",
- "integrity": "sha512-emP23rwYyZhQBvklqTtwetkQlqbNYirDiEEwXl2v0GYWMnCzxst7ZaRAnWuy28njp5kAH54lvkdG37MblZzaHA==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-4.0.1.tgz",
+ "integrity": "sha512-TJ6oZS+3r2Xu4emVse1YPB3Dq3d8RkZDKcPr71Nj/lJsdAP1c7oFzYqEn1IBc915TsgLl2xIJNuxCz+gLbLE0w==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^3.7.2",
- "@smithy/util-buffer-from": "^3.0.0",
- "@smithy/util-utf8": "^3.0.0",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-buffer-from": "^4.0.0",
+ "@smithy/util-utf8": "^4.0.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/hash-stream-node": {
- "version": "3.1.10",
- "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-3.1.10.tgz",
- "integrity": "sha512-olomK/jZQ93OMayW1zfTHwcbwBdhcZOHsyWyiZ9h9IXvc1mCD/VuvzbLb3Gy/qNJwI4MANPLctTp2BucV2oU/Q==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-4.0.1.tgz",
+ "integrity": "sha512-U1rAE1fxmReCIr6D2o/4ROqAQX+GffZpyMt3d7njtGDr2pUNmAKRWa49gsNVhCh2vVAuf3wXzWwNr2YN8PAXIw==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^3.7.2",
- "@smithy/util-utf8": "^3.0.0",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-utf8": "^4.0.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/invalid-dependency": {
- "version": "3.0.11",
- "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-3.0.11.tgz",
- "integrity": "sha512-NuQmVPEJjUX6c+UELyVz8kUx8Q539EDeNwbRyu4IIF8MeV7hUtq1FB3SHVyki2u++5XLMFqngeMKk7ccspnNyQ==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-4.0.1.tgz",
+ "integrity": "sha512-gdudFPf4QRQ5pzj7HEnu6FhKRi61BfH/Gk5Yf6O0KiSbr1LlVhgjThcvjdu658VE6Nve8vaIWB8/fodmS1rBPQ==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^3.7.2",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/is-array-buffer": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-3.0.0.tgz",
- "integrity": "sha512-+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-4.0.0.tgz",
+ "integrity": "sha512-saYhF8ZZNoJDTvJBEWgeBccCg+yvp1CX+ed12yORU3NilJScfc6gfch2oVb4QgxZrGUx3/ZJlb+c/dJbyupxlw==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/md5-js": {
- "version": "3.0.11",
- "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-3.0.11.tgz",
- "integrity": "sha512-3NM0L3i2Zm4bbgG6Ymi9NBcxXhryi3uE8fIfHJZIOfZVxOkGdjdgjR9A06SFIZCfnEIWKXZdm6Yq5/aPXFFhsQ==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-4.0.1.tgz",
+ "integrity": "sha512-HLZ647L27APi6zXkZlzSFZIjpo8po45YiyjMGJZM3gyDY8n7dPGdmxIIljLm4gPt/7rRvutLTTkYJpZVfG5r+A==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^3.7.2",
- "@smithy/util-utf8": "^3.0.0",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-utf8": "^4.0.0",
"tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/middleware-content-length": {
- "version": "3.0.13",
- "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-3.0.13.tgz",
- "integrity": "sha512-zfMhzojhFpIX3P5ug7jxTjfUcIPcGjcQYzB9t+rv0g1TX7B0QdwONW+ATouaLoD7h7LOw/ZlXfkq4xJ/g2TrIw==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-4.0.1.tgz",
+ "integrity": "sha512-OGXo7w5EkB5pPiac7KNzVtfCW2vKBTZNuCctn++TTSOMpe6RZO/n6WEC1AxJINn3+vWLKW49uad3lo/u0WJ9oQ==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/protocol-http": "^4.1.8",
- "@smithy/types": "^3.7.2",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/middleware-endpoint": {
- "version": "3.2.5",
- "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-3.2.5.tgz",
- "integrity": "sha512-VhJNs/s/lyx4weiZdXSloBgoLoS8osV0dKIain8nGmx7of3QFKu5BSdEuk1z/U8x9iwes1i+XCiNusEvuK1ijg==",
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.0.5.tgz",
+ "integrity": "sha512-cPzGZV7qStHwboFrm6GfrzQE+YDiCzWcTh4+7wKrP/ZQ4gkw+r7qDjV8GjM4N0UYsuUyLfpzLGg5hxsYTU11WA==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/core": "^2.5.5",
- "@smithy/middleware-serde": "^3.0.11",
- "@smithy/node-config-provider": "^3.1.12",
- "@smithy/shared-ini-file-loader": "^3.1.12",
- "@smithy/types": "^3.7.2",
- "@smithy/url-parser": "^3.0.11",
- "@smithy/util-middleware": "^3.0.11",
+ "@smithy/core": "^3.1.4",
+ "@smithy/middleware-serde": "^4.0.2",
+ "@smithy/node-config-provider": "^4.0.1",
+ "@smithy/shared-ini-file-loader": "^4.0.1",
+ "@smithy/types": "^4.1.0",
+ "@smithy/url-parser": "^4.0.1",
+ "@smithy/util-middleware": "^4.0.1",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/middleware-retry": {
- "version": "3.0.30",
- "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-3.0.30.tgz",
- "integrity": "sha512-6323RL2BvAR3VQpTjHpa52kH/iSHyxd/G9ohb2MkBk2Ucu+oMtRXT8yi7KTSIS9nb58aupG6nO0OlXnQOAcvmQ==",
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.0.6.tgz",
+ "integrity": "sha512-s8QzuOQnbdvRymD9Gt9c9zMq10wUQAHQ3z72uirrBHCwZcLTrL5iCOuVTMdka2IXOYhQE890WD5t6G24+F+Qcg==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/node-config-provider": "^3.1.12",
- "@smithy/protocol-http": "^4.1.8",
- "@smithy/service-error-classification": "^3.0.11",
- "@smithy/smithy-client": "^3.5.0",
- "@smithy/types": "^3.7.2",
- "@smithy/util-middleware": "^3.0.11",
- "@smithy/util-retry": "^3.0.11",
+ "@smithy/node-config-provider": "^4.0.1",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/service-error-classification": "^4.0.1",
+ "@smithy/smithy-client": "^4.1.5",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-middleware": "^4.0.1",
+ "@smithy/util-retry": "^4.0.1",
"tslib": "^2.6.2",
"uuid": "^9.0.1"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/middleware-serde": {
- "version": "3.0.11",
- "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-3.0.11.tgz",
- "integrity": "sha512-KzPAeySp/fOoQA82TpnwItvX8BBURecpx6ZMu75EZDkAcnPtO6vf7q4aH5QHs/F1s3/snQaSFbbUMcFFZ086Mw==",
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-4.0.2.tgz",
+ "integrity": "sha512-Sdr5lOagCn5tt+zKsaW+U2/iwr6bI9p08wOkCp6/eL6iMbgdtc2R5Ety66rf87PeohR0ExI84Txz9GYv5ou3iQ==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^3.7.2",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/middleware-stack": {
- "version": "3.0.11",
- "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-3.0.11.tgz",
- "integrity": "sha512-1HGo9a6/ikgOMrTrWL/WiN9N8GSVYpuRQO5kjstAq4CvV59bjqnh7TbdXGQ4vxLD3xlSjfBjq5t1SOELePsLnA==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-4.0.1.tgz",
+ "integrity": "sha512-dHwDmrtR/ln8UTHpaIavRSzeIk5+YZTBtLnKwDW3G2t6nAupCiQUvNzNoHBpik63fwUaJPtlnMzXbQrNFWssIA==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^3.7.2",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/node-config-provider": {
- "version": "3.1.12",
- "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.12.tgz",
- "integrity": "sha512-O9LVEu5J/u/FuNlZs+L7Ikn3lz7VB9hb0GtPT9MQeiBmtK8RSY3ULmsZgXhe6VAlgTw0YO+paQx4p8xdbs43vQ==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-4.0.1.tgz",
+ "integrity": "sha512-8mRTjvCtVET8+rxvmzRNRR0hH2JjV0DFOmwXPrISmTIJEfnCBugpYYGAsCj8t41qd+RB5gbheSQ/6aKZCQvFLQ==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/property-provider": "^3.1.11",
- "@smithy/shared-ini-file-loader": "^3.1.12",
- "@smithy/types": "^3.7.2",
+ "@smithy/property-provider": "^4.0.1",
+ "@smithy/shared-ini-file-loader": "^4.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/node-http-handler": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-3.3.2.tgz",
- "integrity": "sha512-t4ng1DAd527vlxvOfKFYEe6/QFBcsj7WpNlWTyjorwXXcKw3XlltBGbyHfSJ24QT84nF+agDha9tNYpzmSRZPA==",
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.0.2.tgz",
+ "integrity": "sha512-X66H9aah9hisLLSnGuzRYba6vckuFtGE+a5DcHLliI/YlqKrGoxhisD5XbX44KyoeRzoNlGr94eTsMVHFAzPOw==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/abort-controller": "^3.1.9",
- "@smithy/protocol-http": "^4.1.8",
- "@smithy/querystring-builder": "^3.0.11",
- "@smithy/types": "^3.7.2",
+ "@smithy/abort-controller": "^4.0.1",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/querystring-builder": "^4.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/property-provider": {
- "version": "3.1.11",
- "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-3.1.11.tgz",
- "integrity": "sha512-I/+TMc4XTQ3QAjXfOcUWbSS073oOEAxgx4aZy8jHaf8JQnRkq2SZWw8+PfDtBvLUjcGMdxl+YwtzWe6i5uhL/A==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-4.0.1.tgz",
+ "integrity": "sha512-o+VRiwC2cgmk/WFV0jaETGOtX16VNPp2bSQEzu0whbReqE1BMqsP2ami2Vi3cbGVdKu1kq9gQkDAGKbt0WOHAQ==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^3.7.2",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/protocol-http": {
- "version": "4.1.8",
- "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-4.1.8.tgz",
- "integrity": "sha512-hmgIAVyxw1LySOwkgMIUN0kjN8TG9Nc85LJeEmEE/cNEe2rkHDUWhnJf2gxcSRFLWsyqWsrZGw40ROjUogg+Iw==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-5.0.1.tgz",
+ "integrity": "sha512-TE4cpj49jJNB/oHyh/cRVEgNZaoPaxd4vteJNB0yGidOCVR0jCw/hjPVsT8Q8FRmj8Bd3bFZt8Dh7xGCT+xMBQ==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^3.7.2",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/querystring-builder": {
- "version": "3.0.11",
- "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-3.0.11.tgz",
- "integrity": "sha512-u+5HV/9uJaeLj5XTb6+IEF/dokWWkEqJ0XiaRRogyREmKGUgZnNecLucADLdauWFKUNbQfulHFEZEdjwEBjXRg==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-4.0.1.tgz",
+ "integrity": "sha512-wU87iWZoCbcqrwszsOewEIuq+SU2mSoBE2CcsLwE0I19m0B2gOJr1MVjxWcDQYOzHbR1xCk7AcOBbGFUYOKvdg==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^3.7.2",
- "@smithy/util-uri-escape": "^3.0.0",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-uri-escape": "^4.0.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/querystring-parser": {
- "version": "3.0.11",
- "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-3.0.11.tgz",
- "integrity": "sha512-Je3kFvCsFMnso1ilPwA7GtlbPaTixa3WwC+K21kmMZHsBEOZYQaqxcMqeFFoU7/slFjKDIpiiPydvdJm8Q/MCw==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-4.0.1.tgz",
+ "integrity": "sha512-Ma2XC7VS9aV77+clSFylVUnPZRindhB7BbmYiNOdr+CHt/kZNJoPP0cd3QxCnCFyPXC4eybmyE98phEHkqZ5Jw==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^3.7.2",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/service-error-classification": {
- "version": "3.0.11",
- "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-3.0.11.tgz",
- "integrity": "sha512-QnYDPkyewrJzCyaeI2Rmp7pDwbUETe+hU8ADkXmgNusO1bgHBH7ovXJiYmba8t0fNfJx75fE8dlM6SEmZxheog==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-4.0.1.tgz",
+ "integrity": "sha512-3JNjBfOWpj/mYfjXJHB4Txc/7E4LVq32bwzE7m28GN79+M1f76XHflUaSUkhOriprPDzev9cX/M+dEB80DNDKA==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^3.7.2"
+ "@smithy/types": "^4.1.0"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/shared-ini-file-loader": {
- "version": "3.1.12",
- "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.12.tgz",
- "integrity": "sha512-1xKSGI+U9KKdbG2qDvIR9dGrw3CNx+baqJfyr0igKEpjbHL5stsqAesYBzHChYHlelWtb87VnLWlhvfCz13H8Q==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.0.1.tgz",
+ "integrity": "sha512-hC8F6qTBbuHRI/uqDgqqi6J0R4GtEZcgrZPhFQnMhfJs3MnUTGSnR1NSJCJs5VWlMydu0kJz15M640fJlRsIOw==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^3.7.2",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/signature-v4": {
- "version": "4.2.4",
- "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-4.2.4.tgz",
- "integrity": "sha512-5JWeMQYg81TgU4cG+OexAWdvDTs5JDdbEZx+Qr1iPbvo91QFGzjy0IkXAKaXUHqmKUJgSHK0ZxnCkgZpzkeNTA==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.0.1.tgz",
+ "integrity": "sha512-nCe6fQ+ppm1bQuw5iKoeJ0MJfz2os7Ic3GBjOkLOPtavbD1ONoyE3ygjBfz2ythFWm4YnRm6OxW+8p/m9uCoIA==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/is-array-buffer": "^3.0.0",
- "@smithy/protocol-http": "^4.1.8",
- "@smithy/types": "^3.7.2",
- "@smithy/util-hex-encoding": "^3.0.0",
- "@smithy/util-middleware": "^3.0.11",
- "@smithy/util-uri-escape": "^3.0.0",
- "@smithy/util-utf8": "^3.0.0",
+ "@smithy/is-array-buffer": "^4.0.0",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-hex-encoding": "^4.0.0",
+ "@smithy/util-middleware": "^4.0.1",
+ "@smithy/util-uri-escape": "^4.0.0",
+ "@smithy/util-utf8": "^4.0.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/smithy-client": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.5.0.tgz",
- "integrity": "sha512-Y8FeOa7gbDfCWf7njrkoRATPa5eNLUEjlJS5z5rXatYuGkCb80LbHcu8AQR8qgAZZaNHCLyo2N+pxPsV7l+ivg==",
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.1.5.tgz",
+ "integrity": "sha512-DMXYoYeL4QkElr216n1yodTFeATbfb4jwYM9gKn71Rw/FNA1/Sm36tkTSCsZEs7mgpG3OINmkxL9vgVFzyGPaw==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/core": "^2.5.5",
- "@smithy/middleware-endpoint": "^3.2.5",
- "@smithy/middleware-stack": "^3.0.11",
- "@smithy/protocol-http": "^4.1.8",
- "@smithy/types": "^3.7.2",
- "@smithy/util-stream": "^3.3.2",
+ "@smithy/core": "^3.1.4",
+ "@smithy/middleware-endpoint": "^4.0.5",
+ "@smithy/middleware-stack": "^4.0.1",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-stream": "^4.1.1",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/types": {
- "version": "3.7.2",
- "resolved": "https://registry.npmjs.org/@smithy/types/-/types-3.7.2.tgz",
- "integrity": "sha512-bNwBYYmN8Eh9RyjS1p2gW6MIhSO2rl7X9QeLM8iTdcGRP+eDiIWDt66c9IysCc22gefKszZv+ubV9qZc7hdESg==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@smithy/types/-/types-4.1.0.tgz",
+ "integrity": "sha512-enhjdwp4D7CXmwLtD6zbcDMbo6/T6WtuuKCY49Xxc6OMOmUWlBEBDREsxxgV2LIdeQPW756+f97GzcgAwp3iLw==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/url-parser": {
- "version": "3.0.11",
- "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-3.0.11.tgz",
- "integrity": "sha512-TmlqXkSk8ZPhfc+SQutjmFr5FjC0av3GZP4B/10caK1SbRwe/v+Wzu/R6xEKxoNqL+8nY18s1byiy6HqPG37Aw==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-4.0.1.tgz",
+ "integrity": "sha512-gPXcIEUtw7VlK8f/QcruNXm7q+T5hhvGu9tl63LsJPZ27exB6dtNwvh2HIi0v7JcXJ5emBxB+CJxwaLEdJfA+g==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/querystring-parser": "^3.0.11",
- "@smithy/types": "^3.7.2",
+ "@smithy/querystring-parser": "^4.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/util-base64": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-3.0.0.tgz",
- "integrity": "sha512-Kxvoh5Qtt0CDsfajiZOCpJxgtPHXOKwmM+Zy4waD43UoEMA+qPxxa98aE/7ZhdnBFZFXMOiBR5xbcaMhLtznQQ==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-4.0.0.tgz",
+ "integrity": "sha512-CvHfCmO2mchox9kjrtzoHkWHxjHZzaFojLc8quxXY7WAAMAg43nuxwv95tATVgQFNDwd4M9S1qFzj40Ul41Kmg==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/util-buffer-from": "^3.0.0",
- "@smithy/util-utf8": "^3.0.0",
+ "@smithy/util-buffer-from": "^4.0.0",
+ "@smithy/util-utf8": "^4.0.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/util-body-length-browser": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-3.0.0.tgz",
- "integrity": "sha512-cbjJs2A1mLYmqmyVl80uoLTJhAcfzMOyPgjwAYusWKMdLeNtzmMz9YxNl3/jRLoxSS3wkqkf0jwNdtXWtyEBaQ==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-4.0.0.tgz",
+ "integrity": "sha512-sNi3DL0/k64/LO3A256M+m3CDdG6V7WKWHdAiBBMUN8S3hK3aMPhwnPik2A/a2ONN+9doY9UxaLfgqsIRg69QA==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/util-body-length-node": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-3.0.0.tgz",
- "integrity": "sha512-Tj7pZ4bUloNUP6PzwhN7K386tmSmEET9QtQg0TgdNOnxhZvCssHji+oZTUIuzxECRfG8rdm2PMw2WCFs6eIYkA==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-4.0.0.tgz",
+ "integrity": "sha512-q0iDP3VsZzqJyje8xJWEJCNIu3lktUGVoSy1KB0UWym2CL1siV3artm+u1DFYTLejpsrdGyCSWBdGNjJzfDPjg==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/util-buffer-from": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-3.0.0.tgz",
- "integrity": "sha512-aEOHCgq5RWFbP+UDPvPot26EJHjOC+bRgse5A8V3FSShqd5E5UN4qc7zkwsvJPPAVsf73QwYcHN1/gt/rtLwQA==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-4.0.0.tgz",
+ "integrity": "sha512-9TOQ7781sZvddgO8nxueKi3+yGvkY35kotA0Y6BWRajAv8jjmigQ1sBwz0UX47pQMYXJPahSKEKYFgt+rXdcug==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/is-array-buffer": "^3.0.0",
+ "@smithy/is-array-buffer": "^4.0.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/util-config-provider": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-3.0.0.tgz",
- "integrity": "sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-4.0.0.tgz",
+ "integrity": "sha512-L1RBVzLyfE8OXH+1hsJ8p+acNUSirQnWQ6/EgpchV88G6zGBTDPdXiiExei6Z1wR2RxYvxY/XLw6AMNCCt8H3w==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/util-defaults-mode-browser": {
- "version": "3.0.30",
- "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.30.tgz",
- "integrity": "sha512-nLuGmgfcr0gzm64pqF2UT4SGWVG8UGviAdayDlVzJPNa6Z4lqvpDzdRXmLxtOdEjVlTOEdpZ9dd3ZMMu488mzg==",
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.0.6.tgz",
+ "integrity": "sha512-N8+VCt+piupH1A7DgSVDNrVHqRLz8r6DvBkpS7EWHiIxsUk4jqGuQLjqC/gnCzmwGkVBdNruHoYAzzaSQ8e80w==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/property-provider": "^3.1.11",
- "@smithy/smithy-client": "^3.5.0",
- "@smithy/types": "^3.7.2",
+ "@smithy/property-provider": "^4.0.1",
+ "@smithy/smithy-client": "^4.1.5",
+ "@smithy/types": "^4.1.0",
"bowser": "^2.11.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">= 10.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/util-defaults-mode-node": {
- "version": "3.0.30",
- "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.30.tgz",
- "integrity": "sha512-OD63eWoH68vp75mYcfYyuVH+p7Li/mY4sYOROnauDrtObo1cS4uWfsy/zhOTW8F8ZPxQC1ZXZKVxoxvMGUv2Ow==",
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.0.6.tgz",
+ "integrity": "sha512-9zhx1shd1VwSSVvLZB8CM3qQ3RPD3le7A3h/UPuyh/PC7g4OaWDi2xUNzamsVoSmCGtmUBONl56lM2EU6LcH7A==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/config-resolver": "^3.0.13",
- "@smithy/credential-provider-imds": "^3.2.8",
- "@smithy/node-config-provider": "^3.1.12",
- "@smithy/property-provider": "^3.1.11",
- "@smithy/smithy-client": "^3.5.0",
- "@smithy/types": "^3.7.2",
+ "@smithy/config-resolver": "^4.0.1",
+ "@smithy/credential-provider-imds": "^4.0.1",
+ "@smithy/node-config-provider": "^4.0.1",
+ "@smithy/property-provider": "^4.0.1",
+ "@smithy/smithy-client": "^4.1.5",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">= 10.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/util-endpoints": {
- "version": "2.1.7",
- "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-2.1.7.tgz",
- "integrity": "sha512-tSfcqKcN/Oo2STEYCABVuKgJ76nyyr6skGl9t15hs+YaiU06sgMkN7QYjo0BbVw+KT26zok3IzbdSOksQ4YzVw==",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-3.0.1.tgz",
+ "integrity": "sha512-zVdUENQpdtn9jbpD9SCFK4+aSiavRb9BxEtw9ZGUR1TYo6bBHbIoi7VkrFQ0/RwZlzx0wRBaRmPclj8iAoJCLA==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/node-config-provider": "^3.1.12",
- "@smithy/types": "^3.7.2",
+ "@smithy/node-config-provider": "^4.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/util-hex-encoding": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-3.0.0.tgz",
- "integrity": "sha512-eFndh1WEK5YMUYvy3lPlVmYY/fZcQE1D8oSf41Id2vCeIkKJXPcYDCZD+4+xViI6b1XSd7tE+s5AmXzz5ilabQ==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-4.0.0.tgz",
+ "integrity": "sha512-Yk5mLhHtfIgW2W2WQZWSg5kuMZCVbvhFmC7rV4IO2QqnZdbEFPmQnCcGMAX2z/8Qj3B9hYYNjZOhWym+RwhePw==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/util-middleware": {
- "version": "3.0.11",
- "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-3.0.11.tgz",
- "integrity": "sha512-dWpyc1e1R6VoXrwLoLDd57U1z6CwNSdkM69Ie4+6uYh2GC7Vg51Qtan7ITzczuVpqezdDTKJGJB95fFvvjU/ow==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-4.0.1.tgz",
+ "integrity": "sha512-HiLAvlcqhbzhuiOa0Lyct5IIlyIz0PQO5dnMlmQ/ubYM46dPInB+3yQGkfxsk6Q24Y0n3/JmcA1v5iEhmOF5mA==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^3.7.2",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/util-retry": {
- "version": "3.0.11",
- "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-3.0.11.tgz",
- "integrity": "sha512-hJUC6W7A3DQgaee3Hp9ZFcOxVDZzmBIRBPlUAk8/fSOEl7pE/aX7Dci0JycNOnm9Mfr0KV2XjIlUOcGWXQUdVQ==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-4.0.1.tgz",
+ "integrity": "sha512-WmRHqNVwn3kI3rKk1LsKcVgPBG6iLTBGC1iYOV3GQegwJ3E8yjzHytPt26VNzOWr1qu0xE03nK0Ug8S7T7oufw==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/service-error-classification": "^3.0.11",
- "@smithy/types": "^3.7.2",
+ "@smithy/service-error-classification": "^4.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/util-stream": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-3.3.2.tgz",
- "integrity": "sha512-sInAqdiVeisUGYAv/FrXpmJ0b4WTFmciTRqzhb7wVuem9BHvhIG7tpiYHLDWrl2stOokNZpTTGqz3mzB2qFwXg==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-4.1.1.tgz",
+ "integrity": "sha512-+Xvh8nhy0Wjv1y71rBVyV3eJU3356XsFQNI8dEZVNrQju7Eib8G31GWtO+zMa9kTCGd41Mflu+ZKfmQL/o2XzQ==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/fetch-http-handler": "^4.1.2",
- "@smithy/node-http-handler": "^3.3.2",
- "@smithy/types": "^3.7.2",
- "@smithy/util-base64": "^3.0.0",
- "@smithy/util-buffer-from": "^3.0.0",
- "@smithy/util-hex-encoding": "^3.0.0",
- "@smithy/util-utf8": "^3.0.0",
+ "@smithy/fetch-http-handler": "^5.0.1",
+ "@smithy/node-http-handler": "^4.0.2",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-base64": "^4.0.0",
+ "@smithy/util-buffer-from": "^4.0.0",
+ "@smithy/util-hex-encoding": "^4.0.0",
+ "@smithy/util-utf8": "^4.0.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/util-uri-escape": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-3.0.0.tgz",
- "integrity": "sha512-LqR7qYLgZTD7nWLBecUi4aqolw8Mhza9ArpNEQ881MJJIU2sE5iHCK6TdyqqzcDLy0OPe10IY4T8ctVdtynubg==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-4.0.0.tgz",
+ "integrity": "sha512-77yfbCbQMtgtTylO9itEAdpPXSog3ZxMe09AEhm0dU0NLTalV70ghDZFR+Nfi1C60jnJoh/Re4090/DuZh2Omg==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/util-utf8": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-3.0.0.tgz",
- "integrity": "sha512-rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-4.0.0.tgz",
+ "integrity": "sha512-b+zebfKCfRdgNJDknHCob3O7FpeYQN6ZG6YLExMcasDHsCXlsXCEuiPZeLnJLpwa5dvPetGlnGCiMHuLwGvFow==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/util-buffer-from": "^3.0.0",
+ "@smithy/util-buffer-from": "^4.0.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/util-waiter": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-3.2.0.tgz",
- "integrity": "sha512-PpjSboaDUE6yl+1qlg3Si57++e84oXdWGbuFUSAciXsVfEZJJJupR2Nb0QuXHiunt2vGR+1PTizOMvnUPaG2Qg==",
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-4.0.2.tgz",
+ "integrity": "sha512-piUTHyp2Axx3p/kc2CIJkYSv0BAaheBQmbACZgQSSfWUumWNW+R1lL+H9PDBxKJkvOeEX+hKYEFiwO8xagL8AQ==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/abort-controller": "^3.1.9",
- "@smithy/types": "^3.7.2",
+ "@smithy/abort-controller": "^4.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@swc/counter": {
@@ -3819,10 +3930,233 @@
"tslib": "^2.8.0"
}
},
+ "node_modules/@tailwindcss/node": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.0.8.tgz",
+ "integrity": "sha512-FKArQpbrbwv08TNT0k7ejYXpF+R8knZFAatNc0acOxbgeqLzwb86r+P3LGOjIeI3Idqe9CVkZrh4GlsJLJKkkw==",
+ "license": "MIT",
+ "dependencies": {
+ "enhanced-resolve": "^5.18.1",
+ "jiti": "^2.4.2",
+ "tailwindcss": "4.0.8"
+ }
+ },
+ "node_modules/@tailwindcss/oxide": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.0.8.tgz",
+ "integrity": "sha512-KfMcuAu/Iw+DcV1e8twrFyr2yN8/ZDC/odIGta4wuuJOGkrkHZbvJvRNIbQNhGh7erZTYV6Ie0IeD6WC9Y8Hcw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10"
+ },
+ "optionalDependencies": {
+ "@tailwindcss/oxide-android-arm64": "4.0.8",
+ "@tailwindcss/oxide-darwin-arm64": "4.0.8",
+ "@tailwindcss/oxide-darwin-x64": "4.0.8",
+ "@tailwindcss/oxide-freebsd-x64": "4.0.8",
+ "@tailwindcss/oxide-linux-arm-gnueabihf": "4.0.8",
+ "@tailwindcss/oxide-linux-arm64-gnu": "4.0.8",
+ "@tailwindcss/oxide-linux-arm64-musl": "4.0.8",
+ "@tailwindcss/oxide-linux-x64-gnu": "4.0.8",
+ "@tailwindcss/oxide-linux-x64-musl": "4.0.8",
+ "@tailwindcss/oxide-win32-arm64-msvc": "4.0.8",
+ "@tailwindcss/oxide-win32-x64-msvc": "4.0.8"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-android-arm64": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.0.8.tgz",
+ "integrity": "sha512-We7K79+Sm4mwJHk26Yzu/GAj7C7myemm7PeXvpgMxyxO70SSFSL3uCcqFbz9JA5M5UPkrl7N9fkBe/Y0iazqpA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-darwin-arm64": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.0.8.tgz",
+ "integrity": "sha512-Lv9Isi2EwkCTG1sRHNDi0uRNN1UGFdEThUAGFrydRmQZnraGLMjN8gahzg2FFnOizDl7LB2TykLUuiw833DSNg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-darwin-x64": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.0.8.tgz",
+ "integrity": "sha512-fWfywfYIlSWtKoqWTjukTHLWV3ARaBRjXCC2Eo0l6KVpaqGY4c2y8snUjp1xpxUtpqwMvCvFWFaleMoz1Vhzlw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-freebsd-x64": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.0.8.tgz",
+ "integrity": "sha512-SO+dyvjJV9G94bnmq2288Ke0BIdvrbSbvtPLaQdqjqHR83v5L2fWADyFO+1oecHo9Owsk8MxcXh1agGVPIKIqw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.0.8.tgz",
+ "integrity": "sha512-ZSHggWiEblQNV69V0qUK5vuAtHP+I+S2eGrKGJ5lPgwgJeAd6GjLsVBN+Mqn2SPVfYM3BOpS9jX/zVg9RWQVDQ==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-linux-arm64-gnu": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.0.8.tgz",
+ "integrity": "sha512-xWpr6M0OZLDNsr7+bQz+3X7zcnDJZJ1N9gtBWCtfhkEtDjjxYEp+Lr5L5nc/yXlL4MyCHnn0uonGVXy3fhxaVA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-linux-arm64-musl": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.0.8.tgz",
+ "integrity": "sha512-5tz2IL7LN58ssGEq7h/staD7pu/izF/KeMWdlJ86WDe2Ah46LF3ET6ZGKTr5eZMrnEA0M9cVFuSPprKRHNgjeg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-linux-x64-gnu": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.0.8.tgz",
+ "integrity": "sha512-KSzMkhyrxAQyY2o194NKVKU9j/c+NFSoMvnHWFaNHKi3P1lb+Vq1UC19tLHrmxSkKapcMMu69D7+G1+FVGNDXQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-linux-x64-musl": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.0.8.tgz",
+ "integrity": "sha512-yFYKG5UtHTRimjtqxUWXBgI4Tc6NJe3USjRIVdlTczpLRxq/SFwgzGl5JbatCxgSRDPBFwRrNPxq+ukfQFGdrw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-win32-arm64-msvc": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.0.8.tgz",
+ "integrity": "sha512-tndGujmCSba85cRCnQzXgpA2jx5gXimyspsUYae5jlPyLRG0RjXbDshFKOheVXU4TLflo7FSG8EHCBJ0EHTKdQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-win32-x64-msvc": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.0.8.tgz",
+ "integrity": "sha512-T77jroAc0p4EHVVgTUiNeFn6Nj3jtD3IeNId2X+0k+N1XxfNipy81BEkYErpKLiOkNhpNFjPee8/ZVas29b2OQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/postcss": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.0.8.tgz",
+ "integrity": "sha512-SUwlrXjn1ycmUbA0o0n3Y0LqlXqxN5R8HR+ti+OBbRS79wl2seDmiypEs3xJCuQXe07ol81s1AmRMitBmPveJA==",
+ "license": "MIT",
+ "dependencies": {
+ "@alloc/quick-lru": "^5.2.0",
+ "@tailwindcss/node": "4.0.8",
+ "@tailwindcss/oxide": "4.0.8",
+ "lightningcss": "^1.29.1",
+ "postcss": "^8.4.41",
+ "tailwindcss": "4.0.8"
+ }
+ },
"node_modules/@tailwindcss/typography": {
- "version": "0.5.15",
- "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.15.tgz",
- "integrity": "sha512-AqhlCXl+8grUz8uqExv5OTtgpjuVIwFTSXTrh8y9/pw6q2ek7fJ+Y8ZEVw7EB2DCcuCOtEjf9w3+J3rzts01uA==",
+ "version": "0.5.16",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.16.tgz",
+ "integrity": "sha512-0wDLwCVF5V3x3b1SGXPCDcdsbDHMBe+lkFzBRaHeLvNi+nrrnZ1lA18u+OTWO8iSWU2GxUOCvlXtDuqftc1oiA==",
"license": "MIT",
"dependencies": {
"lodash.castarray": "^4.4.0",
@@ -3831,13 +4165,13 @@
"postcss-selector-parser": "6.0.10"
},
"peerDependencies": {
- "tailwindcss": ">=3.0.0 || insiders || >=4.0.0-alpha.20"
+ "tailwindcss": ">=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1"
}
},
"node_modules/@tanstack/query-core": {
- "version": "5.62.8",
- "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.62.8.tgz",
- "integrity": "sha512-4fV31vDsUyvNGrKIOUNPrZztoyL187bThnoQOvAXEVlZbSiuPONpfx53634MKKdvsDir5NyOGm80ShFaoHS/mw==",
+ "version": "5.66.4",
+ "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.66.4.tgz",
+ "integrity": "sha512-skM/gzNX4shPkqmdTCSoHtJAPMTtmIJNS0hE+xwTTUVYwezArCT34NMermABmBVUg5Ls5aiUXEDXfqwR1oVkcA==",
"license": "MIT",
"funding": {
"type": "github",
@@ -3845,12 +4179,12 @@
}
},
"node_modules/@tanstack/react-query": {
- "version": "5.62.8",
- "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.62.8.tgz",
- "integrity": "sha512-8TUstKxF/fysHonZsWg/hnlDVgasTdHx6Q+f1/s/oPKJBJbKUWPZEHwLTMOZgrZuroLMiqYKJ9w69Abm8mWP0Q==",
+ "version": "5.66.9",
+ "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.66.9.tgz",
+ "integrity": "sha512-NRI02PHJsP5y2gAuWKP+awamTIBFBSKMnO6UVzi03GTclmHHHInH5UzVgzi5tpu4+FmGfsdT7Umqegobtsp23A==",
"license": "MIT",
"dependencies": {
- "@tanstack/query-core": "5.62.8"
+ "@tanstack/query-core": "5.66.4"
},
"funding": {
"type": "github",
@@ -3861,12 +4195,12 @@
}
},
"node_modules/@tanstack/react-virtual": {
- "version": "3.11.2",
- "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.11.2.tgz",
- "integrity": "sha512-OuFzMXPF4+xZgx8UzJha0AieuMihhhaWG0tCqpp6tDzlFwOmNBPYMuLOtMJ1Tr4pXLHmgjcWhG6RlknY2oNTdQ==",
+ "version": "3.13.0",
+ "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.13.0.tgz",
+ "integrity": "sha512-CchF0NlLIowiM2GxtsoKBkXA4uqSnY2KvnXo+kyUFD4a4ll6+J0qzoRsUPMwXV/H26lRsxgJIr/YmjYum2oEjg==",
"license": "MIT",
"dependencies": {
- "@tanstack/virtual-core": "3.11.2"
+ "@tanstack/virtual-core": "3.13.0"
},
"funding": {
"type": "github",
@@ -3878,9 +4212,9 @@
}
},
"node_modules/@tanstack/virtual-core": {
- "version": "3.11.2",
- "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.11.2.tgz",
- "integrity": "sha512-vTtpNt7mKCiZ1pwU9hfKPhpdVO2sVzFQsxoVBGtOSHxlrRRzYr8iQ2TlwbAcRYCcEiZ9ECAM8kBzH0v2+VzfKw==",
+ "version": "3.13.0",
+ "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.13.0.tgz",
+ "integrity": "sha512-NBKJP3OIdmZY3COJdWkSonr50FMVIi+aj5ZJ7hI/DTpEKg2RMfo/KvP8A3B/zOSpMgIe52B5E2yn7rryULzA6g==",
"license": "MIT",
"funding": {
"type": "github",
@@ -3888,45 +4222,45 @@
}
},
"node_modules/@trpc/client": {
- "version": "11.0.0-rc.666",
- "resolved": "https://registry.npmjs.org/@trpc/client/-/client-11.0.0-rc.666.tgz",
- "integrity": "sha512-BP3H0bktY03m7haVT5QoPR4sn30DNJcvFHsA3Msj3uPRY8JLVE03MR4rVG6T7VbcglORKpyMlRxjpUgdRmJErA==",
+ "version": "11.0.0-rc.802",
+ "resolved": "https://registry.npmjs.org/@trpc/client/-/client-11.0.0-rc.802.tgz",
+ "integrity": "sha512-oToR54iL/sxmu2RwVxh/dJfY6CrZ8IeSEpsu5KjtlwQHM7/w5awSTF4+odjhgB0QnVFgM0vOjw8MNbExKCKSFw==",
"funding": [
"https://trpc.io/sponsor"
],
"license": "MIT",
"peerDependencies": {
- "@trpc/server": "11.0.0-rc.666+99556c074",
- "typescript": ">=5.6.2"
+ "@trpc/server": "11.0.0-rc.802+1eccc1171",
+ "typescript": ">=5.7.2"
}
},
"node_modules/@trpc/react-query": {
- "version": "11.0.0-rc.666",
- "resolved": "https://registry.npmjs.org/@trpc/react-query/-/react-query-11.0.0-rc.666.tgz",
- "integrity": "sha512-BH0vU7g5w4IrN7xmWSKvLucZ9ZnpRwsDWCSJ0R09xdYwR7geHkna3PBbd8vQVFBSw7MpWEy6LGXVSCHSbUicLg==",
+ "version": "11.0.0-rc.802",
+ "resolved": "https://registry.npmjs.org/@trpc/react-query/-/react-query-11.0.0-rc.802.tgz",
+ "integrity": "sha512-4hJU8UdYq/7+cWNS/bW4Bslcqe0SJPACbQ3JDJRKp4GsSlq4GsaFsTJnxSfoGIyDuKaUczjn3Y7CpXObTJaZZw==",
"funding": [
"https://trpc.io/sponsor"
],
"license": "MIT",
"peerDependencies": {
"@tanstack/react-query": "^5.62.8",
- "@trpc/client": "11.0.0-rc.666+99556c074",
- "@trpc/server": "11.0.0-rc.666+99556c074",
+ "@trpc/client": "11.0.0-rc.802+1eccc1171",
+ "@trpc/server": "11.0.0-rc.802+1eccc1171",
"react": ">=18.2.0",
"react-dom": ">=18.2.0",
- "typescript": ">=5.6.2"
+ "typescript": ">=5.7.2"
}
},
"node_modules/@trpc/server": {
- "version": "11.0.0-rc.666",
- "resolved": "https://registry.npmjs.org/@trpc/server/-/server-11.0.0-rc.666.tgz",
- "integrity": "sha512-k+jKrdH/owDRRXPR7oPKCQRTu0dOEnqdGh56863ym95sFY8qXE7BhOR8S4WqyZw1CiPZGjRkdFN0q/GsJhKsIA==",
+ "version": "11.0.0-rc.802",
+ "resolved": "https://registry.npmjs.org/@trpc/server/-/server-11.0.0-rc.802.tgz",
+ "integrity": "sha512-CkV2qTnmSOy84Qtev3B4WA6oLft7q2pg8X/IewssaD4LQevBrmTdTPDfvGeT1wdCa/NAT4ZIMt7AgbbWfAs/9Q==",
"funding": [
"https://trpc.io/sponsor"
],
"license": "MIT",
"peerDependencies": {
- "typescript": ">=5.6.2"
+ "typescript": ">=5.7.2"
}
},
"node_modules/@types/acorn": {
@@ -3953,6 +4287,12 @@
"integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==",
"license": "MIT"
},
+ "node_modules/@types/css-font-loading-module": {
+ "version": "0.0.12",
+ "resolved": "https://registry.npmjs.org/@types/css-font-loading-module/-/css-font-loading-module-0.0.12.tgz",
+ "integrity": "sha512-x2tZZYkSxXqWvTDgveSynfjq/T2HyiZHXb00j/+gy19yp70PHCizM48XFdjBCWH7eHBD0R5i/pw9yMBP/BH5uA==",
+ "license": "MIT"
+ },
"node_modules/@types/debug": {
"version": "4.1.12",
"resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz",
@@ -3962,6 +4302,12 @@
"@types/ms": "*"
}
},
+ "node_modules/@types/earcut": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@types/earcut/-/earcut-2.1.4.tgz",
+ "integrity": "sha512-qp3m9PPz4gULB9MhjGID7wpo3gJ4bTGXm7ltNDsmOvsPduTeHp8wSW9YckBj3mljeOh4F0m2z/0JKAALRKbmLQ==",
+ "license": "MIT"
+ },
"node_modules/@types/estree": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
@@ -3977,6 +4323,12 @@
"@types/estree": "*"
}
},
+ "node_modules/@types/gradient-parser": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/@types/gradient-parser/-/gradient-parser-0.1.5.tgz",
+ "integrity": "sha512-r7K3NkJz3A95WkVVmjs0NcchhHstC2C/VIYNX4JC6tieviUNo774FFeOHjThr3Vw/WCeMP9kAT77MKbIRlO/4w==",
+ "license": "MIT"
+ },
"node_modules/@types/hast": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz",
@@ -4020,27 +4372,33 @@
"license": "MIT"
},
"node_modules/@types/node": {
- "version": "22.10.2",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz",
- "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==",
+ "version": "22.13.5",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.5.tgz",
+ "integrity": "sha512-+lTU0PxZXn0Dr1NBtC7Y8cR21AJr87dLLU953CWA6pMxxv/UDc7jYAY90upcrie1nRcD6XNG5HOYEDtgW5TxAg==",
"license": "MIT",
"dependencies": {
"undici-types": "~6.20.0"
}
},
+ "node_modules/@types/prismjs": {
+ "version": "1.26.5",
+ "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.5.tgz",
+ "integrity": "sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==",
+ "license": "MIT"
+ },
"node_modules/@types/react": {
- "version": "19.0.1",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.1.tgz",
- "integrity": "sha512-YW6614BDhqbpR5KtUYzTA+zlA7nayzJRA9ljz9CQoxthR0sDisYZLuvSMsil36t4EH/uAt8T52Xb4sVw17G+SQ==",
+ "version": "19.0.10",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.10.tgz",
+ "integrity": "sha512-JuRQ9KXLEjaUNjTWpzuR231Z2WpIwczOkBEIvbHNCzQefFIT0L8IqE6NV6ULLyC1SI/i234JnDoMkfg+RjQj2g==",
"license": "MIT",
"dependencies": {
"csstype": "^3.0.2"
}
},
"node_modules/@types/react-dom": {
- "version": "19.0.2",
- "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.2.tgz",
- "integrity": "sha512-c1s+7TKFaDRRxr1TxccIX2u7sfCnc3RxkVyBIUA2lCpyqCF+QoAwQ/CBg7bsMdVwP120HEH143VQezKtef5nCg==",
+ "version": "19.0.4",
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.4.tgz",
+ "integrity": "sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg==",
"license": "MIT",
"peerDependencies": {
"@types/react": "^19.0.0"
@@ -4242,6 +4600,21 @@
"integrity": "sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA==",
"license": "ISC"
},
+ "node_modules/@webgpu/types": {
+ "version": "0.1.54",
+ "resolved": "https://registry.npmjs.org/@webgpu/types/-/types-0.1.54.tgz",
+ "integrity": "sha512-81oaalC8LFrXjhsczomEQ0u3jG+TqE6V9QHLA8GNZq/Rnot0KDugu3LhSYSlie8tSdooAN1Hov05asrUUp9qgg==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@xmldom/xmldom": {
+ "version": "0.8.10",
+ "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz",
+ "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
"node_modules/acorn": {
"version": "8.14.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz",
@@ -4318,31 +4691,6 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/any-promise": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
- "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
- "license": "MIT"
- },
- "node_modules/anymatch": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
- "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
- "license": "ISC",
- "dependencies": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/arg": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
- "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
- "license": "MIT"
- },
"node_modules/argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
@@ -4638,9 +4986,9 @@
"license": "MIT"
},
"node_modules/better-sqlite3": {
- "version": "11.7.0",
- "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-11.7.0.tgz",
- "integrity": "sha512-mXpa5jnIKKHeoGzBrUJrc65cXFKcILGZpU3FXR0pradUEm9MA7UZz02qfEejaMcm9iXrSOCenwwYMJ/tZ1y5Ig==",
+ "version": "11.8.1",
+ "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-11.8.1.tgz",
+ "integrity": "sha512-9BxNaBkblMjhJW8sMRZxnxVTRgbRmssZW0Oxc1MPBTfiR+WW21e2Mk4qu8CzrcZb1LwPCnFsfDEzq+SNcBU8eg==",
"hasInstallScript": true,
"license": "MIT",
"dependencies": {
@@ -4648,18 +4996,6 @@
"prebuild-install": "^7.1.1"
}
},
- "node_modules/binary-extensions": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
- "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/bindings": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
@@ -4836,15 +5172,6 @@
"node": ">=6"
}
},
- "node_modules/camelcase-css": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
- "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
- "license": "MIT",
- "engines": {
- "node": ">= 6"
- }
- },
"node_modules/caniuse-lite": {
"version": "1.0.30001689",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001689.tgz",
@@ -4931,42 +5258,6 @@
"url": "https://github.com/sponsors/wooorm"
}
},
- "node_modules/chokidar": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
- "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
- "license": "MIT",
- "dependencies": {
- "anymatch": "~3.1.2",
- "braces": "~3.0.2",
- "glob-parent": "~5.1.2",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.6.0"
- },
- "engines": {
- "node": ">= 8.10.0"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.2"
- }
- },
- "node_modules/chokidar/node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "license": "ISC",
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
"node_modules/chownr": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
@@ -4979,6 +5270,15 @@
"integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==",
"license": "MIT"
},
+ "node_modules/clsx": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
+ "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/collapse-white-space": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz",
@@ -5040,15 +5340,6 @@
"url": "https://github.com/sponsors/wooorm"
}
},
- "node_modules/commander": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
- "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
- "license": "MIT",
- "engines": {
- "node": ">= 6"
- }
- },
"node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@@ -5305,18 +5596,6 @@
"url": "https://github.com/sponsors/wooorm"
}
},
- "node_modules/didyoumean": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
- "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
- "license": "Apache-2.0"
- },
- "node_modules/dlv": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
- "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
- "license": "MIT"
- },
"node_modules/doctrine": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
@@ -5330,9 +5609,9 @@
}
},
"node_modules/drizzle-kit": {
- "version": "0.30.1",
- "resolved": "https://registry.npmjs.org/drizzle-kit/-/drizzle-kit-0.30.1.tgz",
- "integrity": "sha512-HmA/NeewvHywhJ2ENXD3KvOuM/+K2dGLJfxVfIHsGwaqKICJnS+Ke2L6UcSrSrtMJLJaT0Im1Qv4TFXfaZShyw==",
+ "version": "0.30.4",
+ "resolved": "https://registry.npmjs.org/drizzle-kit/-/drizzle-kit-0.30.4.tgz",
+ "integrity": "sha512-B2oJN5UkvwwNHscPWXDG5KqAixu7AUzZ3qbe++KU9SsQ+cZWR4DXEPYcvWplyFAno0dhRJECNEhNxiDmFaPGyQ==",
"license": "MIT",
"dependencies": {
"@drizzle-team/brocli": "^0.10.2",
@@ -5345,9 +5624,9 @@
}
},
"node_modules/drizzle-orm": {
- "version": "0.38.2",
- "resolved": "https://registry.npmjs.org/drizzle-orm/-/drizzle-orm-0.38.2.tgz",
- "integrity": "sha512-eCE3yPRAskLo1WpM9OHpFaM70tBEDsWhwR/0M3CKyztAXKR9Qs3asZlcJOEliIcUSg8GuwrlY0dmYDgmm6y5GQ==",
+ "version": "0.39.3",
+ "resolved": "https://registry.npmjs.org/drizzle-orm/-/drizzle-orm-0.39.3.tgz",
+ "integrity": "sha512-EZ8ZpYvDIvKU9C56JYLOmUskazhad+uXZCTCRN4OnRMsL+xAJ05dv1eCpAG5xzhsm1hqiuC5kAZUCS924u2DTw==",
"license": "Apache-2.0",
"peerDependencies": {
"@aws-sdk/client-rds-data": ">=3",
@@ -5363,7 +5642,6 @@
"@tidbcloud/serverless": "*",
"@types/better-sqlite3": "*",
"@types/pg": "*",
- "@types/react": ">=18",
"@types/sql.js": "*",
"@vercel/postgres": ">=0.8.0",
"@xata.io/client": "*",
@@ -5375,7 +5653,6 @@
"mysql2": ">=2",
"pg": ">=8",
"postgres": ">=3",
- "react": ">=18",
"sql.js": ">=1",
"sqlite3": ">=5"
},
@@ -5419,9 +5696,6 @@
"@types/pg": {
"optional": true
},
- "@types/react": {
- "optional": true
- },
"@types/sql.js": {
"optional": true
},
@@ -5458,9 +5732,6 @@
"prisma": {
"optional": true
},
- "react": {
- "optional": true
- },
"sql.js": {
"optional": true
},
@@ -5489,6 +5760,12 @@
"integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==",
"license": "MIT"
},
+ "node_modules/earcut": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz",
+ "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==",
+ "license": "ISC"
+ },
"node_modules/eastasianwidth": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
@@ -5517,9 +5794,9 @@
}
},
"node_modules/enhanced-resolve": {
- "version": "5.17.1",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz",
- "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==",
+ "version": "5.18.1",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz",
+ "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==",
"license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.4",
@@ -5791,21 +6068,21 @@
}
},
"node_modules/eslint": {
- "version": "9.17.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.17.0.tgz",
- "integrity": "sha512-evtlNcpJg+cZLcnVKwsai8fExnqjGPicK7gnUtlNuzu+Fv9bI0aLpND5T44VLQtoMEnI57LoXO9XAkIXwohKrA==",
+ "version": "9.21.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.21.0.tgz",
+ "integrity": "sha512-KjeihdFqTPhOMXTt7StsDxriV4n66ueuF/jfPNC3j/lduHwr/ijDwJMsF+wyMJethgiKi5wniIE243vi07d3pg==",
"license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.12.1",
- "@eslint/config-array": "^0.19.0",
- "@eslint/core": "^0.9.0",
- "@eslint/eslintrc": "^3.2.0",
- "@eslint/js": "9.17.0",
- "@eslint/plugin-kit": "^0.2.3",
+ "@eslint/config-array": "^0.19.2",
+ "@eslint/core": "^0.12.0",
+ "@eslint/eslintrc": "^3.3.0",
+ "@eslint/js": "9.21.0",
+ "@eslint/plugin-kit": "^0.2.7",
"@humanfs/node": "^0.16.6",
"@humanwhocodes/module-importer": "^1.0.1",
- "@humanwhocodes/retry": "^0.4.1",
+ "@humanwhocodes/retry": "^0.4.2",
"@types/estree": "^1.0.6",
"@types/json-schema": "^7.0.15",
"ajv": "^6.12.4",
@@ -5850,12 +6127,12 @@
}
},
"node_modules/eslint-config-next": {
- "version": "15.1.1",
- "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.1.1.tgz",
- "integrity": "sha512-St2CvkRaqwbEXot9XdivAqeznlZt5bACFyOy821k67SVJEgw4ansmrwhtlFUTRdYGmgmqapFKy4RN2yz/znHcg==",
+ "version": "15.1.7",
+ "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.1.7.tgz",
+ "integrity": "sha512-zXoMnYUIy3XHaAoOhrcYkT9UQWvXqWju2K7NNsmb5wd/7XESDwof61eUdW4QhERr3eJ9Ko/vnXqIrj8kk/drYw==",
"license": "MIT",
"dependencies": {
- "@next/eslint-plugin-next": "15.1.1",
+ "@next/eslint-plugin-next": "15.1.7",
"@rushstack/eslint-patch": "^1.10.3",
"@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0",
"@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0",
@@ -6397,10 +6674,16 @@
"node": ">=0.10.0"
}
},
+ "node_modules/eventemitter3": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz",
+ "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==",
+ "license": "MIT"
+ },
"node_modules/exif-reader": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/exif-reader/-/exif-reader-2.0.1.tgz",
- "integrity": "sha512-gCQ/86RiAWSjeSlalj1G99IC6XnxbwkvB91HLqhh8somj/YBtC/2xuplvyjDjlfO7NsmYREPPElu/Syuy/H52g==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/exif-reader/-/exif-reader-2.0.2.tgz",
+ "integrity": "sha512-CVFqcwdwFe2GnbbW7/Q7sUhVP5Ilaw7fuXQc6ad3AbX20uGfHhXTpkF/hQHPrtOuys9elFVgsUkvwfhfvjDa1A==",
"license": "MIT"
},
"node_modules/expand-template": {
@@ -6599,13 +6882,13 @@
}
},
"node_modules/framer-motion": {
- "version": "11.15.0",
- "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-11.15.0.tgz",
- "integrity": "sha512-MLk8IvZntxOMg7lDBLw2qgTHHv664bYoYmnFTmE0Gm/FW67aOJk0WM3ctMcG+Xhcv+vh5uyyXwxvxhSeJzSe+w==",
+ "version": "12.4.7",
+ "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.4.7.tgz",
+ "integrity": "sha512-VhrcbtcAMXfxlrjeHPpWVu2+mkcoR31e02aNSR7OUS/hZAciKa8q6o3YN2mA1h+jjscRsSyKvX6E1CiY/7OLMw==",
"license": "MIT",
"dependencies": {
- "motion-dom": "^11.14.3",
- "motion-utils": "^11.14.3",
+ "motion-dom": "^12.4.5",
+ "motion-utils": "^12.0.0",
"tslib": "^2.4.0"
},
"peerDependencies": {
@@ -6631,20 +6914,6 @@
"integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
"license": "MIT"
},
- "node_modules/fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "hasInstallScript": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
"node_modules/function-bind": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
@@ -6751,9 +7020,9 @@
"license": "MIT"
},
"node_modules/glob": {
- "version": "11.0.0",
- "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz",
- "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==",
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.1.tgz",
+ "integrity": "sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw==",
"license": "ISC",
"dependencies": {
"foreground-child": "^3.1.0",
@@ -7070,9 +7339,9 @@
}
},
"node_modules/import-fresh": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
- "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz",
+ "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",
"license": "MIT",
"dependencies": {
"parent-module": "^1.0.0",
@@ -7203,18 +7472,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-binary-path": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
- "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
- "license": "MIT",
- "dependencies": {
- "binary-extensions": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/is-boolean-object": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.1.tgz",
@@ -7610,6 +7867,12 @@
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
"license": "ISC"
},
+ "node_modules/ismobilejs": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ismobilejs/-/ismobilejs-1.1.1.tgz",
+ "integrity": "sha512-VaFW53yt8QO61k2WJui0dHf4SlL8lxBofUuUmwBo0ljPk0Drz2TiuDW4jo3wDcv41qy/SxrJ+VAzJ/qYqsmzRw==",
+ "license": "MIT"
+ },
"node_modules/iterator.prototype": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.4.tgz",
@@ -7643,12 +7906,12 @@
}
},
"node_modules/jiti": {
- "version": "1.21.7",
- "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz",
- "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==",
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.2.tgz",
+ "integrity": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==",
"license": "MIT",
"bin": {
- "jiti": "bin/jiti.js"
+ "jiti": "lib/jiti-cli.mjs"
}
},
"node_modules/jose": {
@@ -7784,23 +8047,245 @@
"node": ">= 0.8.0"
}
},
- "node_modules/lilconfig": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz",
- "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==",
- "license": "MIT",
+ "node_modules/lightningcss": {
+ "version": "1.29.1",
+ "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.29.1.tgz",
+ "integrity": "sha512-FmGoeD4S05ewj+AkhTY+D+myDvXI6eL27FjHIjoyUkO/uw7WZD1fBVs0QxeYWa7E17CUHJaYX/RUGISCtcrG4Q==",
+ "license": "MPL-2.0",
+ "dependencies": {
+ "detect-libc": "^1.0.3"
+ },
"engines": {
- "node": ">=14"
+ "node": ">= 12.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/antonk52"
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "optionalDependencies": {
+ "lightningcss-darwin-arm64": "1.29.1",
+ "lightningcss-darwin-x64": "1.29.1",
+ "lightningcss-freebsd-x64": "1.29.1",
+ "lightningcss-linux-arm-gnueabihf": "1.29.1",
+ "lightningcss-linux-arm64-gnu": "1.29.1",
+ "lightningcss-linux-arm64-musl": "1.29.1",
+ "lightningcss-linux-x64-gnu": "1.29.1",
+ "lightningcss-linux-x64-musl": "1.29.1",
+ "lightningcss-win32-arm64-msvc": "1.29.1",
+ "lightningcss-win32-x64-msvc": "1.29.1"
}
},
- "node_modules/lines-and-columns": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
- "license": "MIT"
+ "node_modules/lightningcss-darwin-arm64": {
+ "version": "1.29.1",
+ "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.29.1.tgz",
+ "integrity": "sha512-HtR5XJ5A0lvCqYAoSv2QdZZyoHNttBpa5EP9aNuzBQeKGfbyH5+UipLWvVzpP4Uml5ej4BYs5I9Lco9u1fECqw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-darwin-x64": {
+ "version": "1.29.1",
+ "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.29.1.tgz",
+ "integrity": "sha512-k33G9IzKUpHy/J/3+9MCO4e+PzaFblsgBjSGlpAaFikeBFm8B/CkO3cKU9oI4g+fjS2KlkLM/Bza9K/aw8wsNA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-freebsd-x64": {
+ "version": "1.29.1",
+ "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.29.1.tgz",
+ "integrity": "sha512-0SUW22fv/8kln2LnIdOCmSuXnxgxVC276W5KLTwoehiO0hxkacBxjHOL5EtHD8BAXg2BvuhsJPmVMasvby3LiQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm-gnueabihf": {
+ "version": "1.29.1",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.29.1.tgz",
+ "integrity": "sha512-sD32pFvlR0kDlqsOZmYqH/68SqUMPNj+0pucGxToXZi4XZgZmqeX/NkxNKCPsswAXU3UeYgDSpGhu05eAufjDg==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm64-gnu": {
+ "version": "1.29.1",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.29.1.tgz",
+ "integrity": "sha512-0+vClRIZ6mmJl/dxGuRsE197o1HDEeeRk6nzycSy2GofC2JsY4ifCRnvUWf/CUBQmlrvMzt6SMQNMSEu22csWQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm64-musl": {
+ "version": "1.29.1",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.29.1.tgz",
+ "integrity": "sha512-UKMFrG4rL/uHNgelBsDwJcBqVpzNJbzsKkbI3Ja5fg00sgQnHw/VrzUTEc4jhZ+AN2BvQYz/tkHu4vt1kLuJyw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-x64-gnu": {
+ "version": "1.29.1",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.29.1.tgz",
+ "integrity": "sha512-u1S+xdODy/eEtjADqirA774y3jLcm8RPtYztwReEXoZKdzgsHYPl0s5V52Tst+GKzqjebkULT86XMSxejzfISw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-x64-musl": {
+ "version": "1.29.1",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.29.1.tgz",
+ "integrity": "sha512-L0Tx0DtaNUTzXv0lbGCLB/c/qEADanHbu4QdcNOXLIe1i8i22rZRpbT3gpWYsCh9aSL9zFujY/WmEXIatWvXbw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-win32-arm64-msvc": {
+ "version": "1.29.1",
+ "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.29.1.tgz",
+ "integrity": "sha512-QoOVnkIEFfbW4xPi+dpdft/zAKmgLgsRHfJalEPYuJDOWf7cLQzYg0DEh8/sn737FaeMJxHZRc1oBreiwZCjog==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-win32-x64-msvc": {
+ "version": "1.29.1",
+ "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.29.1.tgz",
+ "integrity": "sha512-NygcbThNBe4JElP+olyTI/doBNGJvLs3bFCRPdvuCcxZCcCZ71B858IHpdm7L1btZex0FvCmM17FK98Y9MRy1Q==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss/node_modules/detect-libc": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
+ "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==",
+ "license": "Apache-2.0",
+ "bin": {
+ "detect-libc": "bin/detect-libc.js"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
},
"node_modules/locate-path": {
"version": "6.0.0",
@@ -8749,15 +9234,18 @@
"license": "MIT"
},
"node_modules/motion-dom": {
- "version": "11.14.3",
- "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-11.14.3.tgz",
- "integrity": "sha512-lW+D2wBy5vxLJi6aCP0xyxTxlTfiu+b+zcpVbGVFUxotwThqhdpPRSmX8xztAgtZMPMeU0WGVn/k1w4I+TbPqA==",
- "license": "MIT"
+ "version": "12.4.5",
+ "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.4.5.tgz",
+ "integrity": "sha512-Q2xmhuyYug1CGTo0jdsL05EQ4RhIYXlggFS/yPhQQRNzbrhjKQ1tbjThx5Plv68aX31LsUQRq4uIkuDxdO5vRQ==",
+ "license": "MIT",
+ "dependencies": {
+ "motion-utils": "^12.0.0"
+ }
},
"node_modules/motion-utils": {
- "version": "11.14.3",
- "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-11.14.3.tgz",
- "integrity": "sha512-Xg+8xnqIJTpr0L/cidfTTBFkvRw26ZtGGuIhA94J9PQ2p4mEa06Xx7QVYZH0BP+EpMSaDlu+q0I0mmvwADPsaQ==",
+ "version": "12.0.0",
+ "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.0.0.tgz",
+ "integrity": "sha512-MNFiBKbbqnmvOjkPyOKgHUp3Q6oiokLkI1bEwm5QA28cxMZrv0CbbBGDNmhF6DIXsi1pCQBSs0dX8xjeER1tmA==",
"license": "MIT"
},
"node_modules/mrmime": {
@@ -8775,17 +9263,6 @@
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
"license": "MIT"
},
- "node_modules/mz": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
- "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
- "license": "MIT",
- "dependencies": {
- "any-promise": "^1.0.0",
- "object-assign": "^4.0.1",
- "thenify-all": "^1.0.0"
- }
- },
"node_modules/nanoid": {
"version": "3.3.8",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz",
@@ -8817,12 +9294,12 @@
"license": "MIT"
},
"node_modules/next": {
- "version": "15.1.1-canary.5",
- "resolved": "https://registry.npmjs.org/next/-/next-15.1.1-canary.5.tgz",
- "integrity": "sha512-9Se4EwpK6VtMWZSkAAOTLSF+/RBizsvmkNnIXAieFBTPD0Mjoi7Sw8I6tOXH0yUZFo+YHDPG5jk4H3hFUszdfg==",
+ "version": "15.2.0-canary.69",
+ "resolved": "https://registry.npmjs.org/next/-/next-15.2.0-canary.69.tgz",
+ "integrity": "sha512-+qipnBfBufXRaLn4FVTkVOKKjlR92pL+PT3BqhLVr9+mU0PAA1+S1nMXPgnQ+L9eeX0G8TfRfS6nNWP9YCyu9A==",
"license": "MIT",
"dependencies": {
- "@next/env": "15.1.1-canary.5",
+ "@next/env": "15.2.0-canary.69",
"@swc/counter": "0.1.3",
"@swc/helpers": "0.5.15",
"busboy": "1.6.0",
@@ -8837,14 +9314,14 @@
"node": "^18.18.0 || ^19.8.0 || >= 20.0.0"
},
"optionalDependencies": {
- "@next/swc-darwin-arm64": "15.1.1-canary.5",
- "@next/swc-darwin-x64": "15.1.1-canary.5",
- "@next/swc-linux-arm64-gnu": "15.1.1-canary.5",
- "@next/swc-linux-arm64-musl": "15.1.1-canary.5",
- "@next/swc-linux-x64-gnu": "15.1.1-canary.5",
- "@next/swc-linux-x64-musl": "15.1.1-canary.5",
- "@next/swc-win32-arm64-msvc": "15.1.1-canary.5",
- "@next/swc-win32-x64-msvc": "15.1.1-canary.5",
+ "@next/swc-darwin-arm64": "15.2.0-canary.69",
+ "@next/swc-darwin-x64": "15.2.0-canary.69",
+ "@next/swc-linux-arm64-gnu": "15.2.0-canary.69",
+ "@next/swc-linux-arm64-musl": "15.2.0-canary.69",
+ "@next/swc-linux-x64-gnu": "15.2.0-canary.69",
+ "@next/swc-linux-x64-musl": "15.2.0-canary.69",
+ "@next/swc-win32-arm64-msvc": "15.2.0-canary.69",
+ "@next/swc-win32-x64-msvc": "15.2.0-canary.69",
"sharp": "^0.33.5"
},
"peerDependencies": {
@@ -8943,15 +9420,6 @@
"integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==",
"license": "MIT"
},
- "node_modules/normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/normalize-range": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
@@ -8979,15 +9447,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/object-hash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
- "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
- "license": "MIT",
- "engines": {
- "node": ">= 6"
- }
- },
"node_modules/object-inspect": {
"version": "1.13.3",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz",
@@ -9198,6 +9657,12 @@
"integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==",
"license": "MIT"
},
+ "node_modules/parse-svg-path": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/parse-svg-path/-/parse-svg-path-0.1.2.tgz",
+ "integrity": "sha512-JyPSBnkTJ0AI8GGJLfMXvKq42cj5c006fnLz6fXy6zfoVjJizi8BNTpu8on8ziI1cKy9d9DGNuY17Ce7wuejpQ==",
+ "license": "MIT"
+ },
"node_modules/path-exists": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
@@ -9265,22 +9730,41 @@
"url": "https://github.com/sponsors/jonschlinkert"
}
},
- "node_modules/pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
+ "node_modules/pixi-filters": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/pixi-filters/-/pixi-filters-6.1.0.tgz",
+ "integrity": "sha512-Btjyg/WvCD/xWqZk1BAygqkTvoN7bSU7b4G/R+FpZ06f0DDwGTVnmlp8ZSITEV89osQHMe+8lKGDbuR1tndePQ==",
+ "dependencies": {
+ "@types/gradient-parser": "^0.1.2"
+ },
+ "peerDependencies": {
+ "pixi.js": ">=8.0.0-0"
}
},
- "node_modules/pirates": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
- "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
+ "node_modules/pixi-viewport": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/pixi-viewport/-/pixi-viewport-6.0.3.tgz",
+ "integrity": "sha512-2+qPJ0/n+8hQYhWvY+795+x9y3MiUrCOWacK0DY53whowWaGdx9iDocy7z1pBwjkZhC52YvrJQuZKK0sdVLtBw==",
"license": "MIT",
- "engines": {
- "node": ">= 6"
+ "peerDependencies": {
+ "pixi.js": ">=8"
+ }
+ },
+ "node_modules/pixi.js": {
+ "version": "8.8.0",
+ "resolved": "https://registry.npmjs.org/pixi.js/-/pixi.js-8.8.0.tgz",
+ "integrity": "sha512-0xW8tKa+uF28mi1SwvnNscMpYJSQrqLN7jJs6Ore37FZoXmIRzQNrGA6drpHDVTuEmoqJlSiGLCk5cUgz3ODgQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@pixi/colord": "^2.9.6",
+ "@types/css-font-loading-module": "^0.0.12",
+ "@types/earcut": "^2.1.4",
+ "@webgpu/types": "^0.1.40",
+ "@xmldom/xmldom": "^0.8.10",
+ "earcut": "^2.2.4",
+ "eventemitter3": "^5.0.1",
+ "ismobilejs": "^1.1.1",
+ "parse-svg-path": "^0.1.2"
}
},
"node_modules/possible-typed-array-names": {
@@ -9293,9 +9777,9 @@
}
},
"node_modules/postcss": {
- "version": "8.4.49",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz",
- "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==",
+ "version": "8.5.3",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz",
+ "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==",
"funding": [
{
"type": "opencollective",
@@ -9312,7 +9796,7 @@
],
"license": "MIT",
"dependencies": {
- "nanoid": "^3.3.7",
+ "nanoid": "^3.3.8",
"picocolors": "^1.1.1",
"source-map-js": "^1.2.1"
},
@@ -9320,115 +9804,6 @@
"node": "^10 || ^12 || >=14"
}
},
- "node_modules/postcss-import": {
- "version": "15.1.0",
- "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
- "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
- "license": "MIT",
- "dependencies": {
- "postcss-value-parser": "^4.0.0",
- "read-cache": "^1.0.0",
- "resolve": "^1.1.7"
- },
- "engines": {
- "node": ">=14.0.0"
- },
- "peerDependencies": {
- "postcss": "^8.0.0"
- }
- },
- "node_modules/postcss-js": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz",
- "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==",
- "license": "MIT",
- "dependencies": {
- "camelcase-css": "^2.0.1"
- },
- "engines": {
- "node": "^12 || ^14 || >= 16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- "peerDependencies": {
- "postcss": "^8.4.21"
- }
- },
- "node_modules/postcss-load-config": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz",
- "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "lilconfig": "^3.0.0",
- "yaml": "^2.3.4"
- },
- "engines": {
- "node": ">= 14"
- },
- "peerDependencies": {
- "postcss": ">=8.0.9",
- "ts-node": ">=9.0.0"
- },
- "peerDependenciesMeta": {
- "postcss": {
- "optional": true
- },
- "ts-node": {
- "optional": true
- }
- }
- },
- "node_modules/postcss-nested": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz",
- "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "postcss-selector-parser": "^6.1.1"
- },
- "engines": {
- "node": ">=12.0"
- },
- "peerDependencies": {
- "postcss": "^8.2.14"
- }
- },
- "node_modules/postcss-nested/node_modules/postcss-selector-parser": {
- "version": "6.1.2",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz",
- "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==",
- "license": "MIT",
- "dependencies": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
- },
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/postcss-selector-parser": {
"version": "6.0.10",
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz",
@@ -9511,6 +9886,19 @@
"integrity": "sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==",
"license": "MIT"
},
+ "node_modules/prism-react-renderer": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-2.4.1.tgz",
+ "integrity": "sha512-ey8Ls/+Di31eqzUxC46h8MksNuGx/n0AAC8uKpwFau4RPDYLuE3EXTp8N8G2vX2N7UC/+IXeNUnlWBGGcAG+Ig==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/prismjs": "^1.26.0",
+ "clsx": "^2.0.0"
+ },
+ "peerDependencies": {
+ "react": ">=16.0.0"
+ }
+ },
"node_modules/prop-types": {
"version": "15.8.1",
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
@@ -9551,6 +9939,22 @@
"node": ">=6"
}
},
+ "node_modules/qs": {
+ "version": "6.14.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz",
+ "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==",
+ "license": "BSD-3-Clause",
+ "peer": true,
+ "dependencies": {
+ "side-channel": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/queue-microtask": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
@@ -9632,9 +10036,9 @@
"license": "MIT"
},
"node_modules/react-zoom-pan-pinch": {
- "version": "3.6.1",
- "resolved": "https://registry.npmjs.org/react-zoom-pan-pinch/-/react-zoom-pan-pinch-3.6.1.tgz",
- "integrity": "sha512-SdPqdk7QDSV7u/WulkFOi+cnza8rEZ0XX4ZpeH7vx3UZEg7DoyuAy3MCmm+BWv/idPQL2Oe73VoC0EhfCN+sZQ==",
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/react-zoom-pan-pinch/-/react-zoom-pan-pinch-3.7.0.tgz",
+ "integrity": "sha512-UmReVZ0TxlKzxSbYiAj+LeGRW8s8LraAFTXRAxzMYnNRgGPsxCudwZKVkjvGmjtx7SW/hZamt69NUmGf4xrkXA==",
"license": "MIT",
"engines": {
"node": ">=8",
@@ -9645,15 +10049,6 @@
"react-dom": "*"
}
},
- "node_modules/read-cache": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
- "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
- "license": "MIT",
- "dependencies": {
- "pify": "^2.3.0"
- }
- },
"node_modules/readable-stream": {
"version": "3.6.2",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
@@ -9668,18 +10063,6 @@
"node": ">= 6"
}
},
- "node_modules/readdirp": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "license": "MIT",
- "dependencies": {
- "picomatch": "^2.2.1"
- },
- "engines": {
- "node": ">=8.10.0"
- }
- },
"node_modules/recma-build-jsx": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz",
@@ -10552,9 +10935,15 @@
}
},
"node_modules/strnum": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz",
- "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.1.1.tgz",
+ "integrity": "sha512-O7aCHfYCamLCctjAiaucmE+fHf2DYHkus2OKCn4Wv03sykfFtgeECn505X6K4mPl8CRNd/qurC9guq+ynoN4pw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/NaturalIntelligence"
+ }
+ ],
"license": "MIT"
},
"node_modules/style-to-object": {
@@ -10589,85 +10978,6 @@
}
}
},
- "node_modules/sucrase": {
- "version": "3.35.0",
- "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
- "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==",
- "license": "MIT",
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.2",
- "commander": "^4.0.0",
- "glob": "^10.3.10",
- "lines-and-columns": "^1.1.6",
- "mz": "^2.7.0",
- "pirates": "^4.0.1",
- "ts-interface-checker": "^0.1.9"
- },
- "bin": {
- "sucrase": "bin/sucrase",
- "sucrase-node": "bin/sucrase-node"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/sucrase/node_modules/glob": {
- "version": "10.4.5",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
- "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
- "license": "ISC",
- "dependencies": {
- "foreground-child": "^3.1.0",
- "jackspeak": "^3.1.2",
- "minimatch": "^9.0.4",
- "minipass": "^7.1.2",
- "package-json-from-dist": "^1.0.0",
- "path-scurry": "^1.11.1"
- },
- "bin": {
- "glob": "dist/esm/bin.mjs"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/sucrase/node_modules/jackspeak": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
- "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
- "license": "BlueOak-1.0.0",
- "dependencies": {
- "@isaacs/cliui": "^8.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- },
- "optionalDependencies": {
- "@pkgjs/parseargs": "^0.11.0"
- }
- },
- "node_modules/sucrase/node_modules/lru-cache": {
- "version": "10.4.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
- "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
- "license": "ISC"
- },
- "node_modules/sucrase/node_modules/path-scurry": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
- "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
- "license": "BlueOak-1.0.0",
- "dependencies": {
- "lru-cache": "^10.2.0",
- "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
- },
- "engines": {
- "node": ">=16 || 14 >=14.18"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
"node_modules/superjson": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/superjson/-/superjson-2.2.2.tgz",
@@ -10705,66 +11015,25 @@
}
},
"node_modules/tailwind-scrollbar": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/tailwind-scrollbar/-/tailwind-scrollbar-3.1.0.tgz",
- "integrity": "sha512-pmrtDIZeHyu2idTejfV59SbaJyvp1VRjYxAjZBH0jnyrPRo6HL1kD5Glz8VPagasqr6oAx6M05+Tuw429Z8jxg==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/tailwind-scrollbar/-/tailwind-scrollbar-4.0.0.tgz",
+ "integrity": "sha512-elqx9m09VHY8gkrMiyimFO09JlS3AyLFXT0eaLaWPi7ImwHlbZj1ce/AxSis2LtR+ewBGEyUV7URNEMcjP1Z2w==",
"license": "MIT",
+ "dependencies": {
+ "prism-react-renderer": "^2.4.1"
+ },
"engines": {
"node": ">=12.13.0"
},
"peerDependencies": {
- "tailwindcss": "3.x"
+ "tailwindcss": "4.x"
}
},
"node_modules/tailwindcss": {
- "version": "3.4.17",
- "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz",
- "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==",
- "license": "MIT",
- "dependencies": {
- "@alloc/quick-lru": "^5.2.0",
- "arg": "^5.0.2",
- "chokidar": "^3.6.0",
- "didyoumean": "^1.2.2",
- "dlv": "^1.1.3",
- "fast-glob": "^3.3.2",
- "glob-parent": "^6.0.2",
- "is-glob": "^4.0.3",
- "jiti": "^1.21.6",
- "lilconfig": "^3.1.3",
- "micromatch": "^4.0.8",
- "normalize-path": "^3.0.0",
- "object-hash": "^3.0.0",
- "picocolors": "^1.1.1",
- "postcss": "^8.4.47",
- "postcss-import": "^15.1.0",
- "postcss-js": "^4.0.1",
- "postcss-load-config": "^4.0.2",
- "postcss-nested": "^6.2.0",
- "postcss-selector-parser": "^6.1.2",
- "resolve": "^1.22.8",
- "sucrase": "^3.35.0"
- },
- "bin": {
- "tailwind": "lib/cli.js",
- "tailwindcss": "lib/cli.js"
- },
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/tailwindcss/node_modules/postcss-selector-parser": {
- "version": "6.1.2",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz",
- "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==",
- "license": "MIT",
- "dependencies": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
- },
- "engines": {
- "node": ">=4"
- }
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.8.tgz",
+ "integrity": "sha512-Me7N5CKR+D2A1xdWA5t5+kjjT7bwnxZOE6/yDI/ixJdJokszsn2n++mdU5yJwrsTpqFX2B9ZNMBJDwcqk9C9lw==",
+ "license": "MIT"
},
"node_modules/tapable": {
"version": "2.2.1",
@@ -10803,27 +11072,6 @@
"node": ">=6"
}
},
- "node_modules/thenify": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
- "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
- "license": "MIT",
- "dependencies": {
- "any-promise": "^1.0.0"
- }
- },
- "node_modules/thenify-all": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
- "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
- "license": "MIT",
- "dependencies": {
- "thenify": ">= 3.1.0 < 4"
- },
- "engines": {
- "node": ">=0.8"
- }
- },
"node_modules/to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -10877,12 +11125,6 @@
"typescript": ">=4.2.0"
}
},
- "node_modules/ts-interface-checker": {
- "version": "0.1.13",
- "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
- "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
- "license": "Apache-2.0"
- },
"node_modules/tsconfig-paths": {
"version": "3.15.0",
"resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz",
@@ -11012,9 +11254,9 @@
}
},
"node_modules/typescript": {
- "version": "5.7.2",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz",
- "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==",
+ "version": "5.7.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz",
+ "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==",
"license": "Apache-2.0",
"bin": {
"tsc": "bin/tsc",
@@ -11209,6 +11451,27 @@
"punycode": "^2.1.0"
}
},
+ "node_modules/url": {
+ "version": "0.11.4",
+ "resolved": "https://registry.npmjs.org/url/-/url-0.11.4.tgz",
+ "integrity": "sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "punycode": "^1.4.1",
+ "qs": "^6.12.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/url/node_modules/punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==",
+ "license": "MIT",
+ "peer": true
+ },
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
@@ -11526,18 +11789,6 @@
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
"license": "ISC"
},
- "node_modules/yaml": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.1.tgz",
- "integrity": "sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==",
- "license": "ISC",
- "bin": {
- "yaml": "bin.mjs"
- },
- "engines": {
- "node": ">= 14"
- }
- },
"node_modules/yet-another-react-lightbox": {
"version": "3.21.7",
"resolved": "https://registry.npmjs.org/yet-another-react-lightbox/-/yet-another-react-lightbox-3.21.7.tgz",
@@ -11564,9 +11815,9 @@
}
},
"node_modules/zod": {
- "version": "3.24.1",
- "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.1.tgz",
- "integrity": "sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==",
+ "version": "3.24.2",
+ "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.2.tgz",
+ "integrity": "sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/colinhacks"
diff --git a/package.json b/package.json
index 7ec37f8..9ac1f59 100644
--- a/package.json
+++ b/package.json
@@ -3,7 +3,7 @@
"version": "0.1.0",
"private": true,
"scripts": {
- "dev": "next dev",
+ "dev": "next dev --turbopack",
"build": "next build",
"build:analyse": "ANALYZE=true npm run build",
"start": "next start",
@@ -11,51 +11,59 @@
"lint:fix": "next lint --fix"
},
"dependencies": {
- "@aws-sdk/client-s3": "^3.712.0",
+ "@aws-sdk/client-s3": "^3.750.0",
+ "@dimforge/rapier2d-compat": "^0.14.0",
"@heroicons/react": "^2.2.0",
"@mdx-js/loader": "^3.1.0",
"@mdx-js/react": "^3.1.0",
- "@next/bundle-analyzer": "^15.1.0",
- "@next/mdx": "^15.1.0",
- "@tailwindcss/typography": "^0.5.15",
- "@tanstack/react-query": "^5.62.7",
- "@tanstack/react-virtual": "^3.11.1",
- "@trpc/client": "^11.0.0-rc.660",
- "@trpc/react-query": "^11.0.0-rc.660",
- "@trpc/server": "^11.0.0-rc.660",
+ "@next/bundle-analyzer": "^15.1.7",
+ "@next/mdx": "^15.1.7",
+ "@pixi-essentials/object-pool": "^1.0.1",
+ "@pixi/events": "^7.4.2",
+ "@tailwindcss/postcss": "^4.0.8",
+ "@tailwindcss/typography": "^0.5.16",
+ "@tanstack/react-query": "^5.66.9",
+ "@tanstack/react-virtual": "^3.13.0",
+ "@trpc/client": "^11.0.0-rc.802",
+ "@trpc/react-query": "^11.0.0-rc.802",
+ "@trpc/server": "^11.0.0-rc.802",
"@types/better-sqlite3": "^7.6.12",
"@types/mdx": "^2.0.13",
- "@types/node": "^22.10.2",
- "@types/react": "^19.0.1",
- "@types/react-dom": "^19.0.2",
- "@typescript-eslint/eslint-plugin": "^8.18.0",
+ "@types/node": "^22.13.5",
+ "@types/react": "^19.0.10",
+ "@types/react-dom": "^19.0.4",
+ "@typescript-eslint/eslint-plugin": "^8.14.1",
"autoprefixer": "^10.4.20",
"babel-plugin-react-compiler": "beta",
- "better-sqlite3": "^11.7.0",
+ "better-sqlite3": "^11.8.1",
"client-only": "^0.0.1",
- "drizzle-kit": "^0.30.1",
- "drizzle-orm": "^0.38.2",
- "eslint": "^9.17.0",
- "eslint-config-next": "^15.1.0",
- "exif-reader": "^2.0.1",
- "framer-motion": "^11.14.4",
- "glob": "^11.0.0",
+ "drizzle-kit": "^0.30.4",
+ "drizzle-orm": "^0.39.3",
+ "eslint": "^9.21.0",
+ "eslint-config-next": "^15.1.7",
+ "eventemitter3": "^5.0.1",
+ "exif-reader": "^2.0.2",
+ "framer-motion": "^12.4.7",
+ "glob": "^11.0.1",
"million": "^3.1.11",
- "next": "15.1.1-canary.5",
+ "next": "15.2.0-canary.69",
"next-auth": "5.0.0-beta.25",
- "postcss": "^8.4.49",
+ "pixi-filters": "^6.1.0",
+ "pixi-viewport": "^6.0.3",
+ "pixi.js": "^8.8.0",
+ "postcss": "^8.5.3",
"radash": "^12.1.0",
"react": "19.0.0",
"react-dom": "19.0.0",
- "react-zoom-pan-pinch": "^3.6.1",
+ "react-zoom-pan-pinch": "^3.7.0",
"reflect-metadata": "^0.2.2",
"server-only": "^0.0.1",
"sharp": "^0.33.5",
"superjson": "^2.2.2",
- "tailwind-scrollbar": "^3.1.0",
- "tailwindcss": "^3.4.16",
- "typescript": "^5.7.2",
+ "tailwind-scrollbar": "^4.0.0",
+ "tailwindcss": "^4.0.8",
+ "typescript": "^5.7.3",
"yet-another-react-lightbox": "^3.21.7",
- "zod": "^3.24.1"
+ "zod": "^3.24.2"
}
}
diff --git a/postcss.config.js b/postcss.config.js
index 12a703d..3dc0bfb 100644
--- a/postcss.config.js
+++ b/postcss.config.js
@@ -1,6 +1,3 @@
module.exports = {
- plugins: {
- tailwindcss: {},
- autoprefixer: {},
- },
+ plugins: ["@tailwindcss/postcss"],
};
diff --git a/src/app/(root)/games/map/page.tsx b/src/app/(root)/games/map/page.tsx
new file mode 100644
index 0000000..0c18d42
--- /dev/null
+++ b/src/app/(root)/games/map/page.tsx
@@ -0,0 +1,9 @@
+import Wrapper from "./wrapper";
+
+export default function Game(): React.JSX.Element {
+ return (
+ <>
+
+ >
+ );
+}
diff --git a/src/app/(root)/games/map/wrapper.tsx b/src/app/(root)/games/map/wrapper.tsx
new file mode 100644
index 0000000..7b7032b
--- /dev/null
+++ b/src/app/(root)/games/map/wrapper.tsx
@@ -0,0 +1,16 @@
+"use client";
+
+import dynamic from "next/dynamic";
+import React from "react";
+
+const MapGen = dynamic>(() => import('../../../../games/games/MapGen/MapGenWrapper').then((module) => module.default), {
+ ssr: false,
+});
+
+export default function Wrapper(): React.ReactNode {
+ return (
+
+
+
+ )
+}
\ No newline at end of file
diff --git a/src/app/(root)/games/player/page.tsx b/src/app/(root)/games/player/page.tsx
new file mode 100644
index 0000000..0c18d42
--- /dev/null
+++ b/src/app/(root)/games/player/page.tsx
@@ -0,0 +1,9 @@
+import Wrapper from "./wrapper";
+
+export default function Game(): React.JSX.Element {
+ return (
+ <>
+
+ >
+ );
+}
diff --git a/src/app/(root)/games/player/wrapper.tsx b/src/app/(root)/games/player/wrapper.tsx
new file mode 100644
index 0000000..1751ec4
--- /dev/null
+++ b/src/app/(root)/games/player/wrapper.tsx
@@ -0,0 +1,16 @@
+"use client";
+
+import dynamic from "next/dynamic";
+import React from "react";
+
+const TestGame = dynamic>(() => import('../../../../games/games/TestGame/TestGameWrapper').then((module) => module.default), {
+ ssr: false,
+});
+
+export default function Wrapper(): React.ReactNode {
+ return (
+
+
+
+ )
+}
\ No newline at end of file
diff --git a/src/app/globals.css b/src/app/globals.css
index 39a9271..4b749ce 100644
--- a/src/app/globals.css
+++ b/src/app/globals.css
@@ -1,6 +1,4 @@
-@tailwind base;
-@tailwind components;
-@tailwind utilities;
+@import "tailwindcss";
@layer utilities {
.text-balance {
diff --git a/src/games/games/MapGen/MapGenApp.ts b/src/games/games/MapGen/MapGenApp.ts
new file mode 100644
index 0000000..715bf75
--- /dev/null
+++ b/src/games/games/MapGen/MapGenApp.ts
@@ -0,0 +1,82 @@
+import BaseGameApp from '@/core/BaseGameApp/BaseGameApp';
+import Registry from '@/utils/Registry';
+import Control from '@/control/Control';
+import Tile, { TileDir } from './Tile';
+import Vector from '@/games/lib/utils/Vector';
+import { min, shuffle } from 'radash';
+
+const grid = new Vector(64, 256);
+
+/**
+ * A test "game" to start generating useful examples, building up classes as needed etc
+ */
+class TestGameApp extends BaseGameApp {
+ private _control: Control;
+ private _tileGrid: Tile[][] = Array.from({ length: grid.x }).map(() => Array.from({ length: grid.y }));
+ private _allTiles: Tile[] = Array.from({ length: grid.x * grid.y });
+
+ constructor(canvas: HTMLCanvasElement | null) {
+ super(canvas);
+ this._control = new Control();
+ }
+
+ protected async _start(canvas: HTMLCanvasElement): Promise {
+ await super._start(canvas);
+ Registry.register('Control', this._control);
+
+ for (let x = 0; x < grid.x; x++) {
+ for (let y = 0; y < grid.y; y++) {
+ this._tileGrid[x][y] = new Tile({ x, y });
+ this._allTiles[x + y * grid.x] = this._tileGrid[x][y];
+ this._viewport.addChild(this._tileGrid[x][y]);
+ }
+ }
+
+ for (let x = 0; x < grid.x; x++) {
+ for (let y = 0; y < grid.y; y++) {
+ if (x > 0) {
+ this._tileGrid[x][y].link(this._tileGrid[x - 1][y], TileDir.west);
+ }
+ if (x < grid.x - 1) {
+ this._tileGrid[x][y].link(this._tileGrid[x + 1][y], TileDir.east);
+ }
+
+ if (y > 0) {
+ this._tileGrid[x][y].link(this._tileGrid[x][y - 1], TileDir.north);
+ }
+ if (y < grid.y - 1) {
+ this._tileGrid[x][y].link(this._tileGrid[x][y + 1], TileDir.south);
+ }
+ }
+ }
+
+ for (let x = 0; x < grid.x; x++) {
+ for (let y = 0; y < grid.y; y++) {
+ this._tileGrid[x][y].rescore()
+ }
+ }
+ }
+
+ /**
+ * Update the logic of the game
+ *
+ * @param timeDelta - The time difference since the last update (in ms)
+ */
+ protected async _update(timeDelta: number): Promise {
+ await super._update(timeDelta);
+
+ while (true) {
+
+ const activeTiles = this._allTiles.filter((tile) => !tile.selected && tile.score > 0);
+ if (activeTiles.length === 0) {
+ break;
+ }
+ const lowestScore = min(activeTiles, t => t.score)!.score;
+ const lowestTiles = activeTiles.filter((tile) => tile.score === lowestScore);
+ const selectedTile = shuffle(lowestTiles)[0];
+ selectedTile.select();
+ }
+ }
+}
+
+export default TestGameApp;
diff --git a/src/games/games/MapGen/MapGenWrapper.tsx b/src/games/games/MapGen/MapGenWrapper.tsx
new file mode 100644
index 0000000..d5067af
--- /dev/null
+++ b/src/games/games/MapGen/MapGenWrapper.tsx
@@ -0,0 +1,24 @@
+import React, { useEffect, useRef } from 'react';
+import MapGenApp from './MapGenApp';
+
+/**
+ * The wrapper for Test Game so it can be dynamically loaded with the WebGL hook
+ */
+function TestGameWrapper(): React.ReactElement {
+ const canvas = useRef(null);
+ const gameCreated = useRef(false);
+
+ useEffect(() => {
+ if (!gameCreated.current) {
+ console.log('Creating game');
+ gameCreated.current = true;
+ new MapGenApp(canvas.current);
+ }
+ }, []);
+
+ return (
+
+ );
+}
+
+export default TestGameWrapper;
diff --git a/src/games/games/MapGen/Tile.ts b/src/games/games/MapGen/Tile.ts
new file mode 100644
index 0000000..485ac4d
--- /dev/null
+++ b/src/games/games/MapGen/Tile.ts
@@ -0,0 +1,212 @@
+import Container from "@/games/lib/visual/Container";
+import Graphics from "@/games/lib/visual/Graphics";
+import Text from "@/games/lib/visual/Text";
+
+const TileTypes = {
+ grass: "grass",
+ dirt: "dirt",
+ rock: "rock",
+ iron: "iron",
+ copper: "copper",
+};
+
+export enum TileDir {
+ north,
+ east,
+ south,
+ west
+};
+
+type TileData = {
+ available: boolean,
+ colour: number
+}
+
+const tileData: { [key in keyof typeof TileTypes]: TileData } = {
+ grass: {
+ available: false,
+ colour: 0x117c13
+ },
+ rock: {
+ available: false,
+ colour: 0xc6bfb8
+ },
+ dirt: {
+ available: false,
+ colour: 0x402905
+ },
+ copper: {
+ available: false,
+ colour: 0xb87333
+ },
+ iron: {
+ available: false,
+ colour: 0xa19d94
+ },
+}
+
+export default class Tile extends Container {
+ private static readonly size = {
+ x: 30,
+ y: 30
+ }
+ private _graphic: Graphics = new Graphics();
+ private _point: { x: number, y: number };
+ private _text: Text = new Text({
+ position: {
+ x: Tile.size.x / 2,
+ y: Tile.size.y / 2,
+ }
+ });
+ private _choices = structuredClone(tileData);
+ private _selected: null | keyof typeof tileData = null;
+ public score = 0;
+ public neighbors: Tile[] = [];
+
+
+ constructor(point: { x: number, y: number }) {
+ super({
+ position: {
+ x: point.x * Tile.size.x,
+ y: point.y * Tile.size.y,
+ }
+ });
+
+ this._point = point;
+ this.addChild(this._graphic, this._text);
+
+ this._graphic.rect(0, 0, Tile.size.x, Tile.size.y).fill({ color: 0xcccccc }).stroke();
+ this._text.text = "-1";
+ }
+
+ link(tile: Tile, dir: TileDir) {
+ this.neighbors[dir] = tile;
+ }
+
+ reset() {
+ this._graphic.clear();
+ this._graphic.rect(0, 0, Tile.size.x, Tile.size.y).fill({ color: 0xcccccc }).stroke();
+ Object.values(this._choices).forEach((choice) => choice.available = false);
+ this._text.text = "-1";
+ this._point = {
+ x: -1,
+ y: -1
+ }
+ this._selected = null;
+ }
+
+ _calculateAvailable() {
+ if (!this.neighbors[TileDir.north]) {
+ this._choices.grass.available = true;
+ this._choices.dirt.available = true;
+ return;
+ }
+
+ this.neighbors.forEach((neighbor) => {
+ if (neighbor.selected === 'grass') {
+ this._choices.dirt.available = true;
+ }
+
+ if (neighbor.selected === 'dirt') {
+ this._choices.dirt.available = true;
+ this._choices.rock.available = true;
+ }
+
+ if (neighbor.selected === 'rock') {
+ this._choices.rock.available = true;
+ this._choices.iron.available = true;
+ this._choices.copper.available = true;
+ }
+
+ if (neighbor.selected === 'iron') {
+ this._choices.rock.available = true;
+ this._choices.iron.available = true;
+ }
+
+ if (neighbor.selected === 'copper') {
+ this._choices.rock.available = true;
+ this._choices.copper.available = true;
+ }
+ })
+
+ if (this._point.y < 32) {
+ this._choices.iron.available = false;
+ }
+ if (this._point.y < 64) {
+ this._choices.copper.available = false;
+ this._choices.dirt.available = true;
+ this._choices.rock.available = true;
+ }
+ }
+
+ rescore(): number {
+ if (this._selected) {
+ return 0;
+ }
+ this._calculateAvailable();
+
+ this.score = Object.values(this._choices).reduce((count, choice) => {
+ return choice.available ? count + 1 : count;
+ }, 0);
+
+ this._text.text = this.score;
+ return this.score;
+ }
+
+ select(): void {
+
+ //const available = Object.entries(this._choices).filter((choice) => choice[1].available);
+ //this._selected = shuffle(available)[0][0] as keyof typeof tileData;
+ const available = Object.entries(this._choices).filter((choice) => choice[1].available) as [keyof typeof TileTypes, TileData][];
+
+ const weightedAvailable = available.map(([tileType, tileData]) => {
+ const weightedEntry = {
+ type: tileType,
+ weight: 4
+ };
+
+ if (tileType === 'grass') {
+ weightedEntry.weight = 8;
+ }
+ else if (tileType === 'dirt') {
+ if (this._point.y === 0) {
+ weightedEntry.weight = 2;
+ } else {
+ weightedEntry.weight += 20 - Math.floor(((Math.min(this._point.y, 63) / 64) * 20) + 3);
+ }
+ }
+ else if (tileType === 'iron') {
+ weightedEntry.weight = 3;
+ }
+ else if (tileType === 'copper') {
+ weightedEntry.weight = 1;
+ }
+
+ return weightedEntry;
+ });
+
+ const totalWeight = weightedAvailable.reduce((weight, avail) => weight + avail.weight, 0);
+ let pick = Math.floor(Math.random() * totalWeight)
+
+ for (let i = 0; i < weightedAvailable.length; i++) {
+ if (pick < weightedAvailable[i].weight) {
+ this._selected = weightedAvailable[i].type;
+ break;
+ }
+ pick -= weightedAvailable[i].weight;
+ }
+ if (this._selected === null) {
+ throw new Error('Selection not done');
+ }
+
+ this._graphic.clear();
+ this._graphic.rect(0, 0, Tile.size.x, Tile.size.y).fill({ color: this._choices[this._selected].colour });
+ this._text.text = "";
+
+ this.neighbors.forEach((neighbor) => neighbor.rescore());
+ }
+
+ get selected() {
+ return this._selected;
+ }
+}
\ No newline at end of file
diff --git a/src/games/games/TestGame/TestGameApp.ts b/src/games/games/TestGame/TestGameApp.ts
new file mode 100644
index 0000000..85f0fa1
--- /dev/null
+++ b/src/games/games/TestGame/TestGameApp.ts
@@ -0,0 +1,41 @@
+import BaseGameApp from '@/core/BaseGameApp/BaseGameApp';
+import Registry from '@/utils/Registry';
+import Control from '@/control/Control';
+
+import Player from './components/Player/Player';
+import Trees from './components/Trees';
+import Walls from './components/Walls/Walls';
+
+/**
+ * A test "game" to start generating useful examples, building up classes as needed etc
+ */
+class TestGameApp extends BaseGameApp {
+ private _player!: Player;
+ private _control: Control;
+
+
+ constructor(canvas: HTMLCanvasElement | null) {
+ super(canvas);
+ this._control = new Control();
+ }
+
+ protected async _start(canvas: HTMLCanvasElement): Promise {
+ await super._start(canvas);
+ Registry.register('Control', this._control);
+ this._viewport.addChild(new Trees({ numberOfTrees: 200 }));
+ this._player = this._viewport.addChild(new Player());
+ this._viewport.addChild(new Walls());
+ }
+
+ /**
+ * Update the logic of the game
+ *
+ * @param timeDelta - The time difference since the last update (in ms)
+ */
+ protected async _update(timeDelta: number): Promise {
+ this._player.update(timeDelta);
+ await super._update(timeDelta);
+ }
+}
+
+export default TestGameApp;
diff --git a/src/games/games/TestGame/TestGameWrapper.tsx b/src/games/games/TestGame/TestGameWrapper.tsx
new file mode 100644
index 0000000..acc7f88
--- /dev/null
+++ b/src/games/games/TestGame/TestGameWrapper.tsx
@@ -0,0 +1,24 @@
+import React, { useEffect, useRef } from 'react';
+import TestGameApp from './TestGameApp';
+
+/**
+ * The wrapper for Test Game so it can be dynamically loaded with the WebGL hook
+ */
+function TestGameWrapper(): React.ReactElement {
+ const canvas = useRef(null);
+ const gameCreated = useRef(false);
+
+ useEffect(() => {
+ if (!gameCreated.current) {
+ console.log('Creating game');
+ gameCreated.current = true;
+ new TestGameApp(canvas.current);
+ }
+ }, []);
+
+ return (
+
+ );
+}
+
+export default TestGameWrapper;
diff --git a/src/games/games/TestGame/components/Player/Player.ts b/src/games/games/TestGame/components/Player/Player.ts
new file mode 100644
index 0000000..f051a92
--- /dev/null
+++ b/src/games/games/TestGame/components/Player/Player.ts
@@ -0,0 +1,132 @@
+import Collidable from '@/control/Collidable';
+import Rapier from '@/utils/Rapier';
+import Registry from '@/utils/Registry';
+import Vector from '@/utils/Vector';
+import Container from '@/visual/Container';
+import Graphics from '@/visual/Graphics';
+
+import BaseAttack from './attack/BaseAttack';
+import Forward from './attack/Forward';
+
+import type { Viewport } from '@/visual/pixi';
+import type Control from '@/control/Control';
+import { assign } from 'radash';
+
+type PlayerSettings = ConstructorParameters[0]
+
+
+/**
+ * - TODO
+ */
+class Player extends Collidable {
+ private _control: Control;
+ private _characterGraphics: Graphics;
+
+ private _attacks: BaseAttack[] = [];
+ private _rapier: Rapier;
+ private _collider: InstanceType;
+ private _characterController: InstanceType;
+
+ constructor(settings?: PlayerSettings) {
+ super(assign(structuredClone(settings ?? {}), {
+ position: {
+ x: 960,
+ y: 540
+ }
+ }));
+ const viewport = Registry.fetch('Viewport');
+ this._rapier = Registry.fetch('Rapier');
+ this._control = Registry.fetch('Control');
+
+ this._characterGraphics = viewport.addChild(new Graphics());
+ this._characterGraphics.setStrokeStyle({
+ color: 0x00DD00,
+ width: 1
+ }).regularPoly(-10, -10, 20, 3).fill(0x00AA00).stroke();
+ this._characterGraphics.pivot.set(-10, -10);
+ this.addChild(this._characterGraphics);
+
+ viewport.follow(this, { radius: 250 });
+ viewport.addChild(this);
+
+ const projectileContainer = new Container();
+ viewport.addChild(projectileContainer);
+ const forwardAttack = new Forward(projectileContainer);
+ this._attacks.push(forwardAttack);
+ this.addChild(forwardAttack);
+
+ const trianglePoints = {
+ a: new Vector(0, -20),
+ b: new Vector(10 * Math.sqrt(3), 10),
+ c: new Vector(-10 * Math.sqrt(3), 10)
+ };
+ this._collider = this._rapier.createCollider(this, 'triangle', trianglePoints);
+ this._collider.setRestitution(0);
+ this._collider.setTranslation(this.position);
+
+ this._rapier.addColliderMemberGroups(this._collider, 'player');
+ this._rapier.addColliderFilterGroups(this._collider, 'enemy', 'enemyProjectile', 'wall');
+
+ this._characterController = this._rapier.world.createCharacterController(0.01);
+
+ }
+
+ update(timeDelta: number): void {
+ let impulse = new Vector(0, 0);
+ let speed = 250;
+
+ if (this._control.isDown('up')) {
+ impulse.y -= 1;
+ }
+ if (this._control.isDown('down')) {
+ impulse.y += 1;
+ }
+ if (this._control.isDown('left')) {
+ impulse.x -= 1;
+ }
+ if (this._control.isDown('right')) {
+ impulse.x += 1;
+ }
+ if (this._control.isDown('shift')) {
+ speed *= 4;
+ }
+
+ if (impulse.magnitude() > 0) {
+ const normImpulse = impulse.normalize();
+ this.rotation = Math.atan2(normImpulse.y, normImpulse.x) - Math.atan2(1, 0) + Math.PI;
+ impulse = impulse.normalize().multiplyScalar(speed);
+ }
+
+ this._characterController.computeColliderMovement(
+ this._collider,
+ impulse.multiplyScalar(timeDelta)
+ );
+
+ const correctedMovement = this._characterController.computedMovement();
+ this.position.add(correctedMovement);
+ // console.log('impulse', impulse);
+ // console.log('corrected', correctedMovement)
+ //this._collider.setTranslation(this.position);
+
+
+ if (this._control.isDown(' ')) {
+ const modifiedRotation = this.rotation - (Math.PI / 2);
+ const currentVector = new Vector(Math.cos(modifiedRotation), Math.sin(modifiedRotation));
+ this._attacks[0].fire({
+ playerVector: currentVector
+ });
+ }
+
+ this._attacks.forEach((attack) => {
+ attack.update(timeDelta);
+ });
+ }
+
+ collide(collided: Collidable, colliding: boolean): void {
+ if (!colliding) {
+ console.log('player no longer colliding');
+ }
+ }
+}
+
+export default Player;
diff --git a/src/games/games/TestGame/components/Player/attack/BaseAttack.ts b/src/games/games/TestGame/components/Player/attack/BaseAttack.ts
new file mode 100644
index 0000000..f9db9ff
--- /dev/null
+++ b/src/games/games/TestGame/components/Player/attack/BaseAttack.ts
@@ -0,0 +1,20 @@
+import Container from '../../../../../lib/visual/Container';
+import type Vector from '../../../../../lib/utils/Vector';
+
+type fireState = {
+ playerVector: Vector
+}
+
+abstract class BaseAttack extends Container {
+ protected _projectileContainer: Container;
+
+ constructor(projectileContainer: Container) {
+ super();
+ this._projectileContainer = projectileContainer;
+ }
+ abstract fire(state: fireState): void;
+ abstract update(timeDelta: number): void;
+}
+
+
+export default BaseAttack;
diff --git a/src/games/games/TestGame/components/Player/attack/Forward.ts b/src/games/games/TestGame/components/Player/attack/Forward.ts
new file mode 100644
index 0000000..a3cb4ed
--- /dev/null
+++ b/src/games/games/TestGame/components/Player/attack/Forward.ts
@@ -0,0 +1,159 @@
+import Collidable from '@/control/Collidable';
+import Pool from '@/utils/Pool';
+import Registry from '@/utils/Registry';
+import Vector from '@/utils/Vector';
+import Graphics from '@/visual/Graphics';
+
+import BaseAttack from './BaseAttack';
+
+import type Rapier from '@/utils/Rapier';
+
+/**
+ * - TODO
+ */
+class ForwardProjectile extends Collidable {
+ private _speed: number = 600;
+ private _size: number = 5;
+ private _graphic: Graphics;
+
+ private _lifeTime: {
+ lifeTime: number,
+ lifeTimeRemaining: number
+ } = {
+ lifeTime: 2500,
+ lifeTimeRemaining: 0
+ };
+ private _collider!: InstanceType;
+ private _rigidBody!: InstanceType;
+ private _rapier: Rapier;
+ private _alive: boolean = true;
+
+ constructor() {
+ super();
+ this._rapier = Registry.fetch('Rapier');
+ this._graphic = new Graphics();
+ this._graphic.circle(this._size / 2, this._size / 2, this._size).fill(0xAA0000);
+ this.addChild(this._graphic);
+ this.pivot.set(this._size / 2, this._size / 2);
+ }
+
+ /**
+ * - TODO
+ */
+ alive(): boolean {
+ return this._lifeTime.lifeTimeRemaining > 0 && this._alive;
+ }
+
+ /**
+ * - TODO
+ */
+ fire(vector: Vector): void {
+ this._alive = true;
+ this._addPhysics();
+ this._rigidBody.setTranslation(this.position, true);
+ this._rigidBody.setLinvel(vector.multiplyScalar(this._speed), true);
+ this._lifeTime.lifeTimeRemaining = this._lifeTime.lifeTime;
+ }
+
+ /**
+ * - TODO
+ *
+ * @param timeDelta - TODO
+ */
+ update(timeDelta: number): void {
+ this.position.copyFrom(this._rigidBody.translation());
+
+ if (this._lifeTime.lifeTimeRemaining > 0) {
+ this._lifeTime.lifeTimeRemaining = Math.max(0, this._lifeTime.lifeTimeRemaining - timeDelta);
+ }
+ }
+
+ /**
+ * Gets called when we've collided with something.
+ * Use to kill the projectile.
+ *
+ * @param collided - The Collidable this projectile has hit
+ * @param colliding - Are we currently colliding?
+ */
+ collide(collided: Collidable, colliding: boolean): void {
+ if (colliding) {
+ this._alive = false;
+ }
+ }
+
+ /**
+ * - TODO
+ */
+ private _addPhysics(): void {
+ this._rigidBody = this._rapier.createRigidBody(this, 'Dynamic', false, true);
+ this._collider = this._rapier.createCollider(this, 'ball', { radius: this._size }, this._rigidBody);
+ this._collider.setRestitution(0);
+ this._rapier.addColliderMemberGroups(this._collider, 'playerProjectile');
+ this._rapier.addColliderFilterGroups(this._collider, 'enemy', 'wall');
+ }
+
+ /**
+ * - TODO
+ */
+ removePhysics(): void {
+ this._rapier.removeRigidBody(this._rigidBody);
+ }
+}
+
+
+/**
+ * - TODO
+ */
+class Forward extends BaseAttack {
+ private _projectilePool: Pool = new Pool(ForwardProjectile, 50);
+ private _activeProjectiles: ForwardProjectile[] = [];
+ private _coolDown: {
+ coolDown: number,
+ coolDownRemaining: number
+ } = {
+ coolDown: 250,
+ coolDownRemaining: 0
+ };
+
+ /**
+ * - TODO
+ */
+ fire(state: Parameters[0]): void {
+ if (this._coolDown.coolDownRemaining > 0) {
+ return;
+ }
+ const newBullet = this._projectilePool.allocate();
+
+ const newPoint = this._projectileContainer.toLocal(new Vector(0, 0), this);
+ newBullet.position.copyFrom(newPoint);
+ this._projectileContainer.addChild(newBullet);
+ this._activeProjectiles.push(newBullet);
+
+ newBullet.fire(state.playerVector.clone());
+
+ this._coolDown.coolDownRemaining = this._coolDown.coolDown;
+ }
+
+ /**
+ * - TODO
+ */
+ update(timeDelta: number): void {
+ if (this._coolDown.coolDownRemaining > 0) {
+ this._coolDown.coolDownRemaining = Math.max(0, this._coolDown.coolDownRemaining - timeDelta);
+ }
+
+ this._activeProjectiles = this._activeProjectiles.filter((projectile) => {
+ projectile.update(timeDelta);
+ const alive = projectile.alive();
+ if (!alive) {
+ projectile.removePhysics();
+ this._projectileContainer.removeChild(projectile);
+ this._projectilePool.release(projectile);
+ }
+ return alive;
+ });
+ }
+}
+
+export default Forward;
+
diff --git a/src/games/games/TestGame/components/Trees.ts b/src/games/games/TestGame/components/Trees.ts
new file mode 100644
index 0000000..c2c9c4e
--- /dev/null
+++ b/src/games/games/TestGame/components/Trees.ts
@@ -0,0 +1,31 @@
+import Pool from '@/utils/Pool';
+import Container from '@/visual/Container';
+import Graphics from '@/visual/Graphics';
+import { PIXI } from '@/visual/pixi';
+
+type TreesSettings = ConstructorParameters[0] & {
+ numberOfTrees: number
+}
+
+class Trees extends Container {
+ private readonly _allTrees: Graphics[] = new Array(200);
+ private readonly _treePool: Pool;
+ constructor(settings: TreesSettings) {
+ super(settings);
+ this._treePool = new Pool(Graphics, settings.numberOfTrees);
+
+ for (let i = 0; i < settings.numberOfTrees; i++) {
+ const tree = this.addChild(this._treePool.allocate());
+ const treeColour = ((Math.random() * 80) + 70);
+ tree.regularPoly(-10, 10, 20, 3).fill({ color: new PIXI.Color([0, (treeColour - 10) / 255, 0]) });
+ tree.regularPoly(-10, 0, 20, 3).fill({ color: new PIXI.Color([0, treeColour / 255, 0]) });
+ tree.regularPoly(-10, -10, 20, 3).fill({ color: new PIXI.Color([0, (treeColour + 10) / 255, 0]) });
+ tree.position.set(Math.random() * 1920, Math.random() * 1080);
+ tree.cullable = true;
+ this._allTrees.push(tree);
+ }
+ this.cullable = true;
+ }
+}
+
+export default Trees;
diff --git a/src/games/games/TestGame/components/Walls/Walls.ts b/src/games/games/TestGame/components/Walls/Walls.ts
new file mode 100644
index 0000000..073062e
--- /dev/null
+++ b/src/games/games/TestGame/components/Walls/Walls.ts
@@ -0,0 +1,76 @@
+import Collidable from '@/control/Collidable';
+import Registry from '@/utils/Registry';
+import Container from '@/visual/Container';
+import Graphics from '@/visual/Graphics';
+import { PIXI } from '@/visual/pixi';
+
+import type Rapier from '@/utils/Rapier';
+
+type WallsSettings = ConstructorParameters[0] & {
+ numberOfTrees: number
+}
+
+type wallData = {
+ graphic: Graphics,
+ collider: InstanceType,
+ rigidBody: InstanceType,
+}
+
+/**
+ * - TODO
+ */
+class Walls extends Collidable {
+ private _rapier: Rapier;
+ private _walls: wallData[] = [];
+
+ constructor(settings?: WallsSettings) {
+ super(settings);
+ this._rapier = Registry.fetch('Rapier');
+ this._walls.push(this._createWall(10, 1110, -10, 540));
+ this._walls.push(this._createWall(10, 1110, 1930, 540));
+ this._walls.push(this._createWall(1950, 10, 960, -10));
+ this._walls.push(this._createWall(1950, 10, 960, 1090));
+
+ this._walls.forEach((wall) => {
+ this.addChild(wall.graphic);
+ });
+ }
+
+ /**
+ * - TODO
+ *
+ * @param width - TODO
+ * @param height
+ * @param x
+ * @param y
+ */
+ private _createWall(width: number, height: number, x: number, y: number): wallData {
+ const wall = new Graphics();
+ wall.rect(-width / 2, -height / 2, width, height).fill({ color: new PIXI.Color([0, 0, 0]) });
+ wall.position.set(x, y);
+
+
+ const rigidBody = this._rapier.createRigidBody(this, 'Fixed');
+ const collider = this._rapier.createCollider(this, 'cuboid', { halfHeight: height / 2, halfWidth: width / 2 }, rigidBody);
+ collider.setRestitution(0);
+
+ rigidBody.setTranslation(this.position.add({ x, y }), true);
+
+ this._rapier.addColliderMemberGroups(collider, 'wall');
+ this._rapier.addColliderFilterGroups(collider, 'player', 'enemy', 'enemyProjectile', 'playerProjectile');
+
+ return {
+ graphic: wall,
+ collider,
+ rigidBody
+ };
+ }
+
+ /**
+ * - TODO
+ */
+ collide(collided: Collidable, colliding: boolean): void {
+ }
+}
+
+export default Walls;
diff --git a/src/games/lib/control/Collidable.ts b/src/games/lib/control/Collidable.ts
new file mode 100644
index 0000000..4b81ae5
--- /dev/null
+++ b/src/games/lib/control/Collidable.ts
@@ -0,0 +1,7 @@
+import Container from '@/visual/Container';
+
+abstract class Collidable extends Container {
+ abstract collide(collided: Collidable, colliding: boolean): void;
+}
+
+export default Collidable;
diff --git a/src/games/lib/control/Control.ts b/src/games/lib/control/Control.ts
new file mode 100644
index 0000000..34a2c1a
--- /dev/null
+++ b/src/games/lib/control/Control.ts
@@ -0,0 +1,87 @@
+type state = 'down' | 'up';
+
+// - TODO - Pull this from the actual game creating the controls
+const GameControls = {
+ down: 'down',
+ up: 'up',
+ left: 'left',
+ right: 'right',
+ shift: 'shift',
+ ' ': ' ',
+} as const;
+
+/**
+ * Abstraction for game controls, the game should say what controls it expects and then we can remap the actual controls separately.
+ * i.e. Both "ArrowDown" and "Down" from the keyboard listener should be the games "down" event.
+ * Also handles when the keys are pressed or not.
+ */
+class Control {
+ readonly gameControls = GameControls;
+ private _controlMap: { [key: string]: keyof typeof GameControls } = {
+ ArrowDown: GameControls.down,
+ Down: GameControls.down,
+ ArrowUp: GameControls.up,
+ Up: GameControls.up,
+ ArrowLeft: GameControls.left,
+ Left: GameControls.left,
+ ArrowRight: GameControls.right,
+ Right: GameControls.right,
+ Shift: GameControls.shift,
+ ' ': GameControls[' '],
+ };
+
+ private _controlState: Map = new Map();
+
+ constructor() {
+ this._setKeys();
+ window.addEventListener('keydown', (event) => {
+ if (this._controlState.get(this._controlMap[event.key])?.state !== 'down') {
+ this._controlState.set(this._controlMap[event.key], { state: 'down', consumed: false });
+ }
+ });
+
+ window.addEventListener('keyup', (event) => {
+ if (this._controlState.get(this._controlMap[event.key])?.state !== 'up') {
+ this._controlState.set(this._controlMap[event.key], { state: 'up', consumed: false });
+ }
+ });
+ }
+
+ /**
+ * - TODO
+ */
+ private _setKeys(): void {
+ Object.keys(GameControls).forEach((key) => {
+ this._controlState.set(key as keyof typeof GameControls, { state: 'up', consumed: false });
+ });
+ }
+
+ /**
+ * - TODO
+ *
+ * @param key - TODO
+ */
+ isDown(key: keyof typeof GameControls): boolean {
+ return this._controlState.get(key)?.state === 'down';
+ }
+
+ /**
+ * Consume a down key event once
+ *
+ * @param key - TODO
+ */
+ onceDown(key: keyof typeof GameControls): boolean {
+ const keyState = this._controlState.get(key);
+ if (keyState && keyState.state === 'down' && !keyState.consumed) {
+ keyState.consumed = true;
+ return true;
+ }
+ return false;
+ }
+}
+
+export default Control;
diff --git a/src/games/lib/core/BaseGameApp/BaseGameApp.ts b/src/games/lib/core/BaseGameApp/BaseGameApp.ts
new file mode 100644
index 0000000..1b680ff
--- /dev/null
+++ b/src/games/lib/core/BaseGameApp/BaseGameApp.ts
@@ -0,0 +1,96 @@
+import { PIXI, Viewport } from '@/visual/pixi';
+import Text from '@/visual/Text';
+import Rapier from '@/utils/Rapier';
+import Registry from '@/utils/Registry';
+import Ticker from '@/utils/Ticker';
+import Vector from '@/utils/Vector';
+import config from './BaseGameAppConfig';
+
+
+/**
+ * - TODO
+ */
+class BaseGameApp {
+ protected readonly _app: PIXI.Application;
+ protected readonly _ticker: Ticker = new Ticker();
+ protected _fps: Text = new Text(config.fps);
+ protected _viewport!: Viewport;
+ protected _rapier!: Rapier;
+
+ constructor(canvas: HTMLCanvasElement | null) {
+ if (canvas === null) {
+ throw new Error('No canvas');
+ }
+
+ this._app = new PIXI.Application();
+
+ void this._start(canvas);
+ }
+
+ /**
+ * - TODO
+ */
+ protected async _start(canvas: HTMLCanvasElement): Promise {
+ await this._app.init({
+ backgroundColor: 0x999999,
+ canvas: canvas,
+ antialias: true,
+ resizeTo: canvas.parentElement as HTMLElement
+ });
+
+ this._app.ticker.autoStart = false;
+ this._app.ticker.stop();
+
+ this._viewport = new Viewport({
+ screenWidth: this._app.canvas.width,
+ screenHeight: this._app.canvas.height,
+ worldWidth: 1920,
+ worldHeight: 1080,
+ passiveWheel: false,
+ noTicker: true,
+ events: this._app.renderer.events
+ });
+ Registry.register('Viewport', this._viewport);
+ this._rapier = new Rapier(new Vector(0, 0));
+ Registry.register('Rapier', this._rapier);
+
+ this._viewport.ensureVisible(0, 0, 1920, 1080, true);
+ this._viewport.fitWorld(true);
+ this._viewport.drag();
+
+ this._app.stage.addChild(this._viewport);
+ this._app.stage.addChild(this._fps);
+
+ await this._rapier.setup();
+
+ this._ticker.ticker(1000 / 60, this._update.bind(this), this._updateComplete.bind(this));
+ }
+
+ /**
+ * Update the logic of the game
+ * - TODO - Figure out if this should be called before or after game updates
+ *
+ * @param timeDelta - The time difference since the last update (in ms)
+ */
+ protected async _update(timeDelta: number): Promise {
+ this._rapier.debugRender();
+ this._viewport.update(timeDelta);
+ this._rapier.update();
+ this._fps.text = this._ticker.currentTicksPerSecond;
+ return Promise.resolve();
+ }
+
+ /**
+ * When the update is complete, kick off a render
+ *
+ * @param updated - Was there actually an update in the last raf?
+ */
+ protected async _updateComplete(updated: boolean): Promise {
+ this._viewport.resize(this._app.canvas.width, this._app.canvas.height);
+ this._viewport.fitWorld(true);
+ this._app.renderer.render(this._app.stage);
+ return Promise.resolve();
+ }
+}
+
+export default BaseGameApp;
diff --git a/src/games/lib/core/BaseGameApp/BaseGameAppConfig.ts b/src/games/lib/core/BaseGameApp/BaseGameAppConfig.ts
new file mode 100644
index 0000000..f727aa5
--- /dev/null
+++ b/src/games/lib/core/BaseGameApp/BaseGameAppConfig.ts
@@ -0,0 +1,10 @@
+const BaseGameAppConfig = {
+ fps: {
+ position: {
+ x: 20,
+ y: 20
+ }
+ }
+} as const;
+
+export default BaseGameAppConfig;
diff --git a/src/games/lib/utils/Pool.ts b/src/games/lib/utils/Pool.ts
new file mode 100644
index 0000000..62de2c9
--- /dev/null
+++ b/src/games/lib/utils/Pool.ts
@@ -0,0 +1,31 @@
+import { ObjectPoolFactory } from '@pixi-essentials/object-pool';
+
+/**
+ * - TODO
+ */
+class Pool {
+ private _pool: ObjectPoolFactory;
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ constructor(ctor: new (...args: any[]) => T, reserve: number) {
+ // Unsure why this needs the cast, probably because of the generic
+ this._pool = ObjectPoolFactory.build(ctor) as ObjectPoolFactory;
+ this._pool.reserve(reserve);
+ this._pool.startGC();
+ }
+
+ /**
+ * - TODO
+ */
+ allocate(): T {
+ return this._pool.allocate();
+ }
+
+ /**
+ * - TODO
+ */
+ release(object: T): void {
+ this._pool.release(object);
+ }
+}
+
+export default Pool;
diff --git a/src/games/lib/utils/Rapier.ts b/src/games/lib/utils/Rapier.ts
new file mode 100644
index 0000000..f99f51d
--- /dev/null
+++ b/src/games/lib/utils/Rapier.ts
@@ -0,0 +1,223 @@
+import StoredPromise from './StoredPromise';
+import Vector from './Vector';
+import Collidable from '../control/Collidable';
+import _rapier from '@dimforge/rapier2d-compat';
+import Graphics from '@/visual/Graphics';
+import Registry from '@/utils/Registry';
+import { PIXI, type Viewport } from '@/visual/pixi';
+
+/**
+ * - TODO
+ * https://rapier.rs/docs/user_guides/javascript/colliders#overview
+ */
+type colliderTypes = {
+ ball: {
+ radius: number
+ },
+ cuboid: {
+ halfHeight: number,
+ halfWidth: number
+ },
+ capsule: {
+ halfHeight: number,
+ radius: number
+ },
+ triangle: {
+ a: Vector,
+ b: Vector,
+ c: Vector
+ }
+}
+
+const colliderGroups = {
+ 'wall': 0b0000_0000_0000_0001,
+ 'player': 0b0000_0000_0001_0000,
+ 'enemy': 0b0000_0000_0010_0000,
+ 'playerProjectile': 0b0000_0001_0000_0000,
+ 'enemyProjectile': 0b0000_0010_0000_0000,
+} as const;
+
+/**
+ * - TODO
+ */
+class Rapier {
+ private _settingUp!: StoredPromise;
+ private _world!: _rapier.World;
+ private _eventQueue!: _rapier.EventQueue;
+ private _rigidBodyMap: Map = new Map();
+ private _colliderMap: Map = new Map();
+ private _debugLines: Graphics;
+
+ constructor(gravity: Vector) {
+ void this._setup(gravity);
+ this._debugLines = new Graphics();
+ }
+
+ get rapier(): typeof _rapier {
+ return _rapier;
+ }
+
+ get world(): _rapier.World {
+ return this._world;
+ }
+
+ /**
+ * Needed as rapier2d is a webasm module that needs to be async imported directly
+ */
+ private async _setup(gravity: Vector): Promise {
+ this._settingUp = new StoredPromise();
+ await this.rapier.init()
+ // - TODO - Change integration params dt to ticker speed
+ this._world = new this.rapier.World(gravity);
+ this._eventQueue = new this.rapier.EventQueue(true);
+
+ const viewport = Registry.fetch('Viewport');
+ viewport.addChild(this._debugLines);
+
+ this._settingUp.resolve();
+ }
+
+ /**
+ * - TODO
+ */
+ async setup(): Promise {
+ await this._settingUp.promise;
+
+ }
+
+ /**
+ * - TODO
+ */
+ createRigidBody(container: Collidable, type: keyof typeof _rapier.RigidBodyType, sleep: boolean = true, CCD: boolean = false): _rapier.RigidBody {
+ const rigidBodyDesc = new this.rapier.RigidBodyDesc(this.rapier.RigidBodyType[type])
+ .setCanSleep(sleep)
+ .setCcdEnabled(CCD);
+
+ const rigidBody = this._world.createRigidBody(rigidBodyDesc);
+ this._rigidBodyMap.set(rigidBody.handle, container);
+ return rigidBody;
+ }
+
+ /**
+ * - TODO
+ */
+ createCollider(container: Collidable, type: T, settings: U, rigidBody?: _rapier.RigidBody): _rapier.Collider {
+ let colliderDesc: _rapier.ColliderDesc;
+ if (type === 'ball') {
+ const castSettings = (settings as colliderTypes['ball']);
+ colliderDesc = new this.rapier.ColliderDesc(new this.rapier.Ball(castSettings.radius));
+ } else if (type === 'capsule') {
+ const castSettings = (settings as colliderTypes['capsule']);
+ colliderDesc = new this.rapier.ColliderDesc(new this.rapier.Capsule(castSettings.halfHeight, castSettings.radius));
+ } else if (type === 'cuboid') {
+ const castSettings = (settings as colliderTypes['cuboid']);
+ colliderDesc = new this.rapier.ColliderDesc(new this.rapier.Cuboid(castSettings.halfWidth, castSettings.halfHeight));
+ } else if (type === 'triangle') {
+ const castSettings = (settings as colliderTypes['triangle']);
+ colliderDesc = new this.rapier.ColliderDesc(new this.rapier.Triangle(castSettings.a, castSettings.b, castSettings.c));
+ } else {
+ throw new Error(`Cannot create collider of type ${type}`);
+ }
+ colliderDesc.setActiveEvents(this.rapier.ActiveEvents.COLLISION_EVENTS);
+ colliderDesc.setActiveCollisionTypes(this.rapier.ActiveCollisionTypes.DEFAULT);
+
+ const collider = this._world.createCollider(colliderDesc, rigidBody);
+ collider.setCollisionGroups(0);
+ collider.setFriction(0);
+
+ this._colliderMap.set(collider.handle, container);
+
+ return collider;
+ }
+
+ /**
+ * - TODO
+ */
+ removeRigidBody(rigidBody: _rapier.RigidBody): void {
+ if (rigidBody) {
+ this._world.removeRigidBody(rigidBody);
+ }
+ }
+
+ /**
+ * - TODO
+ */
+ removeCollider(collider: _rapier.Collider): void {
+ if (collider) {
+ this._world.removeCollider(collider, true);
+ }
+ }
+
+ /**
+ * Add the collider to member groups.
+ * A member group is what groups we're in (i.e. so other groups can collide with us).
+ *
+ * @param collider - The collider to add the groups to
+ * @param groups - The groups to add to
+ */
+ addColliderMemberGroups(collider: _rapier.Collider, ...groups: (keyof typeof colliderGroups)[]): void {
+ const bitmask = this._getColliderGroupsBitmask(groups) << 16;
+ collider.setCollisionGroups(collider.collisionGroups() | bitmask);
+ }
+
+ /**
+ * Add the collider to filter groups.
+ * A filter group is what groups we can collide with.
+ *
+ * @param collider - The collider to add the groups to
+ * @param groups - The groups to add to
+ */
+ addColliderFilterGroups(collider: _rapier.Collider, ...groups: (keyof typeof colliderGroups)[]): void {
+ const bitmask = this._getColliderGroupsBitmask(groups);
+ collider.setCollisionGroups(collider.collisionGroups() | bitmask);
+ }
+
+ /**
+ * - TODO
+ */
+ private _getColliderGroupsBitmask(groups: (keyof typeof colliderGroups)[]): number {
+ return groups.reduce((bitmask, group) => {
+ return bitmask | colliderGroups[group];
+ }, 0);
+ }
+
+ /**
+ * - TODO
+ */
+ update(): void {
+ this._world.step(this._eventQueue);
+ this._eventQueue.drainCollisionEvents((handle1, handle2, colliding) => {
+ const container1 = this._colliderMap.get(handle1);
+ const container2 = this._colliderMap.get(handle2);
+ if (container1 && container2) {
+ container1.collide(container2, colliding);
+ container2.collide(container1, colliding);
+ }
+ });
+ }
+
+ debugRender(): void {
+ const { vertices, colors } = this._world.debugRender();
+
+ this._debugLines.clear();
+
+ for (let i = 0; i < vertices.length / 4; i += 1) {
+ let color = new PIXI.Color([
+ colors[i * 8],
+ colors[i * 8 + 1],
+ colors[i * 8 + 2],
+ ]);
+ this._debugLines.setStrokeStyle({
+ color: color,
+ width: 2,
+ alignment: 0.5,
+ })
+ this._debugLines.moveTo(vertices[i * 4], vertices[i * 4 + 1]);
+ this._debugLines.lineTo(vertices[i * 4 + 2], vertices[i * 4 + 3]);
+ this._debugLines.stroke();
+ }
+ }
+
+}
+
+export default Rapier;
diff --git a/src/games/lib/utils/Registry.ts b/src/games/lib/utils/Registry.ts
new file mode 100644
index 0000000..878fbbd
--- /dev/null
+++ b/src/games/lib/utils/Registry.ts
@@ -0,0 +1,32 @@
+/**
+ * - TODO
+ */
+class Registry {
+ static _objects: Map = new Map();
+
+ /**
+ * - TODO
+ *
+ * @param name - TODO
+ * @param obj - TODO
+ */
+ static register(name: string, obj: T): void {
+ this._objects.set(name, obj);
+ }
+
+ /**
+ * - TODO
+ *
+ * @param name - TODO
+ */
+ static fetch(name: string): T {
+ const obj = this._objects.get(name) as T;
+ if (obj) {
+ return obj;
+ } else {
+ throw new Error(`Cannot find ${name}`);
+ }
+ }
+}
+
+export default Registry;
diff --git a/src/games/lib/utils/StoredPromise.ts b/src/games/lib/utils/StoredPromise.ts
new file mode 100644
index 0000000..038e94c
--- /dev/null
+++ b/src/games/lib/utils/StoredPromise.ts
@@ -0,0 +1,31 @@
+class StoredPromise {
+ promise: null | Promise;
+ private _resolve: null | (( value: T | PromiseLike ) => void);
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ private _reject: null | (( reason?: any ) => void);
+ constructor() {
+ this.promise = new Promise((resolve, reject) => {
+ this._resolve = resolve;
+ this._reject = reject;
+ });
+ }
+
+ resolve(value: T | PromiseLike): void {
+ this._resolve?.(value);
+ this.clear();
+ }
+
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ reject( reason?: any ): void {
+ this._reject?.(reason);
+ this.clear();
+ }
+
+ clear(): void {
+ this.promise = null;
+ this._resolve = null;
+ this._reject = null;
+ }
+}
+
+export default StoredPromise;
diff --git a/src/games/lib/utils/Ticker.ts b/src/games/lib/utils/Ticker.ts
new file mode 100644
index 0000000..7f9f45b
--- /dev/null
+++ b/src/games/lib/utils/Ticker.ts
@@ -0,0 +1,75 @@
+/**
+ * A ticker class to call a callback on a set time\
+ * Is catch-up tick based so will call update multiple times
+ */
+class Ticker {
+ private _tickUpdateCb: (timeDelta: number) => Promise = async () => {};
+ private _tickCompleteCb: (updated: boolean) => Promise = async () => {};
+ private _voidUpdate: ( frameTime: number ) => void;
+ private _tickCounter: number[] = [];
+ private _tickTime = 0;
+ private _lastFrameTime = 0;
+ private _currentTotalDelta = 0;
+ private _ticksPerSecond = 0;
+
+ constructor() {
+ this._voidUpdate = (frameTime: number): void => {
+ void this._update(frameTime);
+ };
+ }
+
+ get currentTicksPerSecond(): number {
+ return this._ticksPerSecond;
+ }
+
+ /**
+ * Start the ticker to update every tickTime\
+ * Will use requestAnimationFrame and catch up if needed\
+ * Use the tick callback for logic updates and the complete callback for visual representations of that logic
+ */
+ ticker(tickTime: number, tickCb: (timeDelta: number) => Promise, completeCb: (updated: boolean) => Promise): void {
+ this._tickTime = tickTime;
+ this._lastFrameTime = performance.now();
+ this._tickUpdateCb = tickCb;
+ this._tickCompleteCb = completeCb;
+ requestAnimationFrame(this._voidUpdate);
+ }
+
+ /**
+ * The update loop on raf, call the update multiple times to catch up, then call raf again
+ */
+ private async _update(currentFrameTime: number): Promise {
+ const delta = currentFrameTime - this._lastFrameTime;
+ this._lastFrameTime = currentFrameTime;
+ this._currentTotalDelta += delta;
+
+ let updated = false;
+ /**
+ * - TODO - This min number probably needs to change, and reset the time differently
+ * This way will reset on the next frame, do we want to allow a min frame for update/render purposes but run all the ticks?
+ * Probably depends on the game.
+ */
+ let ticks = Math.min(Math.floor(this._currentTotalDelta / this._tickTime), 100);
+ this._currentTotalDelta = this._currentTotalDelta % this._tickTime;
+ while (ticks > 0) {
+ updated = true;
+ ticks -= 1;
+ await this._tickUpdateCb(this._tickTime);
+ }
+
+ if (updated) {
+ this._tickCounter.push(currentFrameTime);
+ const minusOneSecond = currentFrameTime - 1000;
+ while (this._tickCounter[0] < minusOneSecond) {
+ this._tickCounter.shift();
+ }
+
+ this._ticksPerSecond = this._tickCounter.length;
+ }
+ await this._tickCompleteCb(updated);
+
+ requestAnimationFrame(this._voidUpdate);
+ }
+}
+
+export default Ticker;
diff --git a/src/games/lib/utils/Vector.ts b/src/games/lib/utils/Vector.ts
new file mode 100644
index 0000000..3962fb1
--- /dev/null
+++ b/src/games/lib/utils/Vector.ts
@@ -0,0 +1,7 @@
+import { PIXI } from '@/visual/pixi';
+
+class Vector extends PIXI.Point {
+
+}
+
+export default Vector;
diff --git a/src/games/lib/utils/pixi-object-pool.d.ts b/src/games/lib/utils/pixi-object-pool.d.ts
new file mode 100644
index 0000000..3ffb717
--- /dev/null
+++ b/src/games/lib/utils/pixi-object-pool.d.ts
@@ -0,0 +1,9 @@
+declare module '@pixi-essentials/object-pool' {
+ class ObjectPoolFactory {
+ static build: (ctor: new (args: unknown[]) => T) => ObjectPoolFactory;
+ reserve: (reserve: number) => void;
+ startGC: () => void;
+ allocate: () => T;
+ release: (obj: T) => void;
+ }
+}
diff --git a/src/games/lib/visual/Container.ts b/src/games/lib/visual/Container.ts
new file mode 100644
index 0000000..0e8a00d
--- /dev/null
+++ b/src/games/lib/visual/Container.ts
@@ -0,0 +1,23 @@
+import Vector from '@/utils/Vector';
+import { PIXI } from './pixi';
+import { VisualBase, VisualBaseSettings } from './VisualBase';
+
+type ContainerSettings = VisualBaseSettings;
+
+class Container extends PIXI.Container {
+ constructor(settings?: ContainerSettings) {
+ super();
+ VisualBase.applySettings(this, settings);
+ }
+
+ /**
+ * Switch this container's parent to a new parent, keeping it's positioning
+ */
+ addToNewParent(newParent: Container): void {
+ const localPoint = newParent.toLocal(new Vector(0, 0), this);
+ this.position.set(localPoint.x, localPoint.y);
+ newParent.addChild(this);
+ }
+}
+
+export default Container;
diff --git a/src/games/lib/visual/Graphics.ts b/src/games/lib/visual/Graphics.ts
new file mode 100644
index 0000000..8495fbf
--- /dev/null
+++ b/src/games/lib/visual/Graphics.ts
@@ -0,0 +1,13 @@
+import { PIXI } from './pixi';
+import { VisualBase, VisualBaseSettings } from './VisualBase';
+
+type GraphicsSettings = VisualBaseSettings;
+
+class Graphics extends PIXI.Graphics {
+ constructor(settings?: GraphicsSettings ) {
+ super();
+ VisualBase.applySettings(this, settings);
+ }
+}
+
+export default Graphics;
diff --git a/src/games/lib/visual/Text.ts b/src/games/lib/visual/Text.ts
new file mode 100644
index 0000000..909f3f2
--- /dev/null
+++ b/src/games/lib/visual/Text.ts
@@ -0,0 +1,29 @@
+import { assign } from 'radash';
+import { PIXI } from './pixi';
+import { VisualBase, VisualBaseSettings } from './VisualBase';
+
+type TextSettings = VisualBaseSettings & {
+ text?: string | number,
+ style?: string
+}
+
+class Text extends PIXI.Text {
+ static styles: { [key: string]: (Partial | PIXI.TextStyle) } = {
+ default: {
+ fontSize: 16,
+ fill: 0x000000,
+ align: 'center',
+
+ }
+ };
+
+ constructor(settings?: TextSettings, style?: Partial | PIXI.TextStyle) {
+ super({
+ text: settings?.text,
+ style: assign(Text.styles[settings?.style ?? 'default'], style ?? {})
+ })
+ VisualBase.applySettings(this, settings);
+ }
+}
+
+export default Text;
diff --git a/src/games/lib/visual/VisualBase.ts b/src/games/lib/visual/VisualBase.ts
new file mode 100644
index 0000000..c217708
--- /dev/null
+++ b/src/games/lib/visual/VisualBase.ts
@@ -0,0 +1,93 @@
+import { PIXI } from './pixi';
+
+type pointOrNumber = {
+ x: number,
+ y: number
+} | number | undefined | PIXI.Point;
+
+type VisualBaseSettings = {
+ angle?: number,
+ pivot?: pointOrNumber
+ position?: {
+ x: number,
+ y: number
+ },
+ rotation?: number,
+ scale?: pointOrNumber
+ skew?: pointOrNumber,
+ width?: number,
+ height?: number,
+ alpha?: number,
+ visible?: boolean,
+ interactive?: boolean,
+ zIndex?: number
+}
+
+
+/**
+ * - TODO
+ */
+class VisualBase {
+ static applySettings(applyTo: T, settings?: VisualBaseSettings): void {
+ if (settings?.angle) {
+ applyTo.angle = settings.angle;
+ }
+
+ if (settings?.position) {
+ applyTo?.position.set(settings.position.x, settings.position.y);
+ }
+
+ if (settings?.rotation) {
+ applyTo.rotation = settings.rotation;
+ }
+
+ if (settings?.interactive) {
+ applyTo.interactive = settings.interactive;
+ }
+
+ if (settings?.zIndex) {
+ applyTo.zIndex = settings.zIndex;
+ }
+
+ if (settings?.alpha) {
+ applyTo.alpha = settings.alpha;
+ }
+
+ if (settings?.visible) {
+ applyTo.visible = settings.visible;
+ }
+
+ if (settings?.position) {
+ applyTo?.position.set(settings.position.x, settings.position.y);
+ }
+
+ applyPointPrimitiveOrObject('pivot', applyTo, settings?.pivot);
+ applyPointPrimitiveOrObject('scale', applyTo, settings?.scale);
+ applyPointPrimitiveOrObject('skew', applyTo, settings?.skew);
+ }
+}
+
+/**
+ * - TODO
+ *
+ * @param prop - TODO
+ * @param applyTo - TODO
+ * @param setting - TODO
+ */
+function applyPointPrimitiveOrObject(prop: 'skew' | 'pivot' | 'scale', applyTo: T, setting: pointOrNumber): void {
+ if (setting) {
+ if (typeof setting === 'object') {
+ applyTo[prop].set(setting.x, setting.y);
+ } else {
+ applyTo[prop].set(setting);
+ }
+ }
+}
+
+export {
+ VisualBase
+};
+
+export type {
+ VisualBaseSettings
+};
diff --git a/src/games/lib/visual/pixi.ts b/src/games/lib/visual/pixi.ts
new file mode 100644
index 0000000..11283db
--- /dev/null
+++ b/src/games/lib/visual/pixi.ts
@@ -0,0 +1,11 @@
+// - TODO - Clean this up
+import * as PIXI from 'pixi.js';
+import * as Events from '@pixi/events';
+import { Viewport } from 'pixi-viewport';
+
+import 'pixi.js/math-extras';
+
+// Filters
+import * as Filters from 'pixi-filters';
+
+export { PIXI, Events, Viewport, Filters };
diff --git a/tsconfig.json b/tsconfig.json
index abe99af..3f716c1 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -27,7 +27,19 @@
"paths": {
"@/*": [
"./src/*"
- ]
+ ],
+ "@/control/*": [
+ "./src/games/lib/control/*"
+ ],
+ "@/core/*": [
+ "./src/games/lib/core/*"
+ ],
+ "@/utils/*": [
+ "./src/games/lib/utils/*"
+ ],
+ "@/visual/*": [
+ "./src/games/lib/visual/*"
+ ],
}
},
"include": [