From 23fe6d10f5f7d92502f20c3460995caed68ecf75 Mon Sep 17 00:00:00 2001 From: Oliver Date: Tue, 13 Jan 2026 17:07:15 -0700 Subject: [PATCH 01/38] Remove scripts in favour of submodule --- scripts/buildCompendia.mjs | 32 ------------- scripts/createForgejoRelease.mjs | 55 ---------------------- scripts/extractCompendia.mjs | 27 ----------- scripts/linkFoundry.mjs | 47 ------------------- scripts/macros/deleteInvalidActors.mjs | 4 -- scripts/macros/deleteInvalidItems.mjs | 4 -- scripts/prepareManifest.mjs | 45 ------------------ scripts/tagExists.mjs | 38 --------------- scripts/uploadToS3.mjs | 65 -------------------------- 9 files changed, 317 deletions(-) delete mode 100644 scripts/buildCompendia.mjs delete mode 100644 scripts/createForgejoRelease.mjs delete mode 100644 scripts/extractCompendia.mjs delete mode 100644 scripts/linkFoundry.mjs delete mode 100644 scripts/macros/deleteInvalidActors.mjs delete mode 100644 scripts/macros/deleteInvalidItems.mjs delete mode 100644 scripts/prepareManifest.mjs delete mode 100644 scripts/tagExists.mjs delete mode 100644 scripts/uploadToS3.mjs diff --git a/scripts/buildCompendia.mjs b/scripts/buildCompendia.mjs deleted file mode 100644 index a9f3152..0000000 --- a/scripts/buildCompendia.mjs +++ /dev/null @@ -1,32 +0,0 @@ -import { compilePack } from "@foundryvtt/foundryvtt-cli"; -import { existsSync } from "fs"; -import { join } from "path"; -import { readFile } from "fs/promises"; - -async function main() { - const system = JSON.parse(await readFile(`./system.json`, `utf-8`)); - - if (!system.packs || system.packs.length === 0) { - console.log(`No compendium packs defined`); - process.exit(0); - }; - - for (const compendium of system.packs) { - console.debug(`Packing ${compendium.label} (${compendium.name})`); - let src = join(process.cwd(), compendium.path, `_source`); - if (!existsSync(src)) { - console.warn(`${compendium.path} doesn't exist, skipping.`) - continue; - }; - await compilePack( - src, - join(process.cwd(), compendium.path), - { recursive: true }, - ); - console.debug(`Finished packing ${compendium.name}`); - }; - - console.log(`Finished packing compendia`) -}; - -main(); diff --git a/scripts/createForgejoRelease.mjs b/scripts/createForgejoRelease.mjs deleted file mode 100644 index c45ae47..0000000 --- a/scripts/createForgejoRelease.mjs +++ /dev/null @@ -1,55 +0,0 @@ -import axios from "axios"; - -const { - TAG, - FORGEJO_SERVER_URL: WEB_URL, - FORGEJO_API_URL: API, - FORGEJO_REPOSITORY: REPO, - FORGEJO_TOKEN: TOKEN, - CDN_URL, -} = process.env; - -async function addReleaseAsset(releaseID, name) { - return axios.post( - `${API}/repos/${REPO}/releases/${releaseID}/assets`, - { external_url: `${CDN_URL}/${REPO}/${TAG}/${name}`, }, - { - headers: { - Authorization: `token ${TOKEN}`, - "Content-Type": `multipart/form-data`, - }, - params: { name }, - } - ); -}; - -async function main() { - - // Initial Release Data - const release = await axios.post( - `${API}/repos/${REPO}/releases`, - { - name: TAG, - tag_name: TAG, - draft: true, - hide_archive_links: true, - target_commitish: `main`, - body: ``, - }, - { - headers: { Authorization: `token ${TOKEN}` }, - } - ); - - try { - await addReleaseAsset(release.data.id, `release.zip`); - await addReleaseAsset(release.data.id, `system.json`); - } catch (e) { - console.error(`Failed to add assets to the release`); - process.exit(1); - }; - - console.log(`Release created`); -}; - -main(); diff --git a/scripts/extractCompendia.mjs b/scripts/extractCompendia.mjs deleted file mode 100644 index 32935c9..0000000 --- a/scripts/extractCompendia.mjs +++ /dev/null @@ -1,27 +0,0 @@ -import { readFile } from "fs/promises"; -import { join } from "path"; -import { extractPack } from "@foundryvtt/foundryvtt-cli"; - -async function main() { - const system = JSON.parse(await readFile(`./system.json`, `utf-8`)); - - if (!system.packs || system.packs.length === 0) { - console.log(`No compendium packs defined`); - process.exit(0); - }; - - for (const compendium of system.packs) { - console.debug(`Unpacking ${compendium.label} (${compendium.name})`); - let src = join(process.cwd(), compendium.path, `_source`); - await extractPack( - join(process.cwd(), compendium.path), - src, - { recursive: true }, - ); - console.debug(`Finished packing ${compendium.name}`); - }; - - console.log(`Finished unpacking compendia`); -}; - -main(); diff --git a/scripts/linkFoundry.mjs b/scripts/linkFoundry.mjs deleted file mode 100644 index 1cbb71a..0000000 --- a/scripts/linkFoundry.mjs +++ /dev/null @@ -1,47 +0,0 @@ -import { existsSync } from "fs"; -import { symlink, unlink } from "fs/promises"; -import { join } from "path"; -import { config } from "dotenv"; - -config({ quiet: true }); - -const root = process.env.FOUNDRY_ROOT; - -// Early exit -if (!root) { - console.error(`Must provide a FOUNDRY_ROOT environment variable`); - process.exit(1); -}; - -// Assert Foundry exists -if (!existsSync(root)) { - console.error(`Foundry root not found.`); - process.exit(1); -}; - -// Removing existing symlink -if (existsSync(`foundry`)) { - console.log(`Attempting to unlink foundry instance`); - try { - await unlink(`foundry`); - } catch { - console.error(`Failed to unlink foundry folder.`); - process.exit(1); - }; -}; - -// Account for if the root is pointing at an Electron install -let targetRoot = root; -if (existsSync(join(root, `resources`, `app`))) { - console.log(`Switching to use the "${root}/resources/app" directory`); - targetRoot = join(root, `resources`, `app`); -}; - -// Create symlink -console.log(`Linking foundry source into folder`) -try { - await symlink(targetRoot, `foundry`); -} catch (e) { - console.error(e); - process.exit(1); -}; diff --git a/scripts/macros/deleteInvalidActors.mjs b/scripts/macros/deleteInvalidActors.mjs deleted file mode 100644 index c8f09e6..0000000 --- a/scripts/macros/deleteInvalidActors.mjs +++ /dev/null @@ -1,4 +0,0 @@ -const invalids = game.actors.invalidDocumentIds; -invalids.forEach(id => { - game.actors.getInvalid(id).delete(); -}); diff --git a/scripts/macros/deleteInvalidItems.mjs b/scripts/macros/deleteInvalidItems.mjs deleted file mode 100644 index 6fcbdc9..0000000 --- a/scripts/macros/deleteInvalidItems.mjs +++ /dev/null @@ -1,4 +0,0 @@ -const invalids = game.items.invalidDocumentIds; -invalids.forEach(id => { - game.items.getInvalid(id).delete(); -}); diff --git a/scripts/prepareManifest.mjs b/scripts/prepareManifest.mjs deleted file mode 100644 index 34f4236..0000000 --- a/scripts/prepareManifest.mjs +++ /dev/null @@ -1,45 +0,0 @@ -/* -The intent of this script is to do all of the modifications of the -manifest file that we need to do in order to release the system. -This can include removing dev-only fields/attributes that end -users will never, and should never, care about nor need. -*/ -import { readFile, writeFile } from "fs/promises"; - -const MANIFEST_PATH = `system.json`; - -const { - DOWNLOAD_URL, - LATEST_URL, -} = process.env; - -let manifest; -try { - manifest = JSON.parse(await readFile(MANIFEST_PATH, `utf-8`)); - console.log(`Manifest loaded from disk`); -} catch { - console.error(`Failed to parse manifest file.`); - process.exit(1); -}; - -console.log(`Updating download/manifest URLs`) -manifest.download = DOWNLOAD_URL; -manifest.manifest = LATEST_URL; - -// Filter out dev-only resources -if (manifest.esmodules) { - console.log(`Removing dev-only esmodules`); - manifest.esmodules = manifest.esmodules.filter( - filepath => !filepath.startsWith(`dev/`) - ); -}; - -// Remove dev flags -console.log(`Cleaning up flags`); -delete manifest.flags?.hotReload; -if (Object.keys(manifest.flags).length === 0) { - delete manifest.flags; -}; - -await writeFile(MANIFEST_PATH, JSON.stringify(manifest, undefined, `\t`)); -console.log(`Manifest written back to disk`); diff --git a/scripts/tagExists.mjs b/scripts/tagExists.mjs deleted file mode 100644 index 2ddcdbd..0000000 --- a/scripts/tagExists.mjs +++ /dev/null @@ -1,38 +0,0 @@ -import axios from "axios"; - -const { - TAG_NAME, - FORGEJO_API_URL: API_URL, - FORGEJO_REPOSITORY: REPO, - FORGEJO_TOKEN: TOKEN, -} = process.env; - - -async function main() { - - if (!TAG_NAME) { - console.log(`Tag name must not be blank`); - process.exit(1); - }; - - const requestURL = `${API_URL}/repos/${REPO}/tags/${TAG_NAME}`; - - const response = await axios.get( - requestURL, - { - headers: { Authorization: `token ${TOKEN}` }, - validateStatus: () => true, - }, - ); - - // We actually *want* an error when the tag exists, instead of when - // it doesn't - if (response.status === 200) { - console.log(`Tag with name "${TAG_NAME}" already exists`); - process.exit(1); - }; - - console.log(`Tag with name "${TAG_NAME}" not found, proceeding`); -}; - -main(); diff --git a/scripts/uploadToS3.mjs b/scripts/uploadToS3.mjs deleted file mode 100644 index dacd2e8..0000000 --- a/scripts/uploadToS3.mjs +++ /dev/null @@ -1,65 +0,0 @@ -import { PutObjectCommand, S3Client } from '@aws-sdk/client-s3'; -import { createReadStream } from "fs"; - -const requiredEnvVariables = [ - `TAG`, `FILE`, - `FORGEJO_REPOSITORY`, - `S3_BUCKET`, `S3_REGION`, `S3_KEY`, `S3_SECRET`, `S3_ENDPOINT`, -]; - -async function main() { - - // Assert all of the required env variables are present - const missing = []; - for (const envVar of requiredEnvVariables) { - if (!(envVar in process.env)) { - missing.push(envVar); - }; - }; - if (missing.length > 0) { - console.error(`Missing the following required environment variables: ${missing.join(`, `)}`); - process.exit(1); - }; - - const { - TAG, - S3_ENDPOINT, - S3_REGION, - S3_KEY, - S3_SECRET, - S3_BUCKET, - FILE, - FORGEJO_REPOSITORY: REPO, - } = process.env; - - const s3Client = new S3Client({ - endpoint: S3_ENDPOINT, - forcePathStyle: false, - region: S3_REGION, - credentials: { - accessKeyId: S3_KEY, - secretAccessKey: S3_SECRET - }, - }); - - const name = FILE.split(`/`).at(-1); - - const params = { - Bucket: S3_BUCKET, - Key: `${REPO}/${TAG}/${name}`, - Body: createReadStream(FILE), - ACL: "public-read", - METADATA: { - "x-repo-version": TAG, - }, - }; - - try { - const response = await s3Client.send(new PutObjectCommand(params)); - console.log("Upload successful"); - } catch (err) { - console.error("Upload to s3 failed"); - }; -}; - -main(); From 3b2d886f58488b9a3457ec6594ab8ce59b0c5535 Mon Sep 17 00:00:00 2001 From: Oliver Date: Tue, 13 Jan 2026 17:27:29 -0700 Subject: [PATCH 02/38] Move the scripts into a submodule repo --- .gitmodules | 3 + package-lock.json | 2121 +++------------------------------------------ package.json | 12 +- scripts | 1 + 4 files changed, 133 insertions(+), 2004 deletions(-) create mode 100644 .gitmodules create mode 160000 scripts diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..2668c89 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "scripts"] + path = scripts + url = https://git.varify.ca/Foundry/scripts.git diff --git a/package-lock.json b/package-lock.json index 27b1468..9fd1850 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,936 +1,22 @@ { - "name": "Text-Actors-Foundry", + "name": "taf", "lockfileVersion": 3, "requires": true, "packages": { "": { "devDependencies": { - "@aws-sdk/client-s3": "^3.934.0", "@eslint/js": "^9.8.0", "@foundryvtt/foundryvtt-cli": "^1.0.3", "@stylistic/eslint-plugin": "^2.6.1", - "axios": "^1.13.2", - "dotenv": "^17.2.2", "eslint": "^9.8.0", - "globals": "^15.9.0" - } - }, - "node_modules/@aws-crypto/crc32": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-5.2.0.tgz", - "integrity": "sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@aws-crypto/util": "^5.2.0", - "@aws-sdk/types": "^3.222.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/@aws-crypto/crc32c": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/crc32c/-/crc32c-5.2.0.tgz", - "integrity": "sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@aws-crypto/util": "^5.2.0", - "@aws-sdk/types": "^3.222.0", - "tslib": "^2.6.2" - } - }, - "node_modules/@aws-crypto/sha1-browser": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha1-browser/-/sha1-browser-5.2.0.tgz", - "integrity": "sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@aws-crypto/supports-web-crypto": "^5.2.0", - "@aws-crypto/util": "^5.2.0", - "@aws-sdk/types": "^3.222.0", - "@aws-sdk/util-locate-window": "^3.0.0", - "@smithy/util-utf8": "^2.0.0", - "tslib": "^2.6.2" - } - }, - "node_modules/@aws-crypto/sha1-browser/node_modules/@smithy/is-array-buffer": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", - "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-crypto/sha1-browser/node_modules/@smithy/util-buffer-from": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", - "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/is-array-buffer": "^2.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-crypto/sha1-browser/node_modules/@smithy/util-utf8": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", - "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/util-buffer-from": "^2.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-crypto/sha256-browser": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz", - "integrity": "sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@aws-crypto/sha256-js": "^5.2.0", - "@aws-crypto/supports-web-crypto": "^5.2.0", - "@aws-crypto/util": "^5.2.0", - "@aws-sdk/types": "^3.222.0", - "@aws-sdk/util-locate-window": "^3.0.0", - "@smithy/util-utf8": "^2.0.0", - "tslib": "^2.6.2" - } - }, - "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/is-array-buffer": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", - "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-buffer-from": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", - "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/is-array-buffer": "^2.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-utf8": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", - "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/util-buffer-from": "^2.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-crypto/sha256-js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz", - "integrity": "sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@aws-crypto/util": "^5.2.0", - "@aws-sdk/types": "^3.222.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/@aws-crypto/supports-web-crypto": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-5.2.0.tgz", - "integrity": "sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.6.2" - } - }, - "node_modules/@aws-crypto/util": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-5.2.0.tgz", - "integrity": "sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/types": "^3.222.0", - "@smithy/util-utf8": "^2.0.0", - "tslib": "^2.6.2" - } - }, - "node_modules/@aws-crypto/util/node_modules/@smithy/is-array-buffer": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", - "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-crypto/util/node_modules/@smithy/util-buffer-from": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", - "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/is-array-buffer": "^2.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-crypto/util/node_modules/@smithy/util-utf8": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", - "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/util-buffer-from": "^2.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/client-s3": { - "version": "3.934.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.934.0.tgz", - "integrity": "sha512-dtg77FGTgt8WlqgrRriCOie/SUl0x0cx2itPgK6fkf3pRK0t1betQ0EUZM6VYQcj+hqVMzh/XRcr1TDm5n5eVw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@aws-crypto/sha1-browser": "5.2.0", - "@aws-crypto/sha256-browser": "5.2.0", - "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.934.0", - "@aws-sdk/credential-provider-node": "3.934.0", - "@aws-sdk/middleware-bucket-endpoint": "3.930.0", - "@aws-sdk/middleware-expect-continue": "3.930.0", - "@aws-sdk/middleware-flexible-checksums": "3.934.0", - "@aws-sdk/middleware-host-header": "3.930.0", - "@aws-sdk/middleware-location-constraint": "3.930.0", - "@aws-sdk/middleware-logger": "3.930.0", - "@aws-sdk/middleware-recursion-detection": "3.933.0", - "@aws-sdk/middleware-sdk-s3": "3.934.0", - "@aws-sdk/middleware-ssec": "3.930.0", - "@aws-sdk/middleware-user-agent": "3.934.0", - "@aws-sdk/region-config-resolver": "3.930.0", - "@aws-sdk/signature-v4-multi-region": "3.934.0", - "@aws-sdk/types": "3.930.0", - "@aws-sdk/util-endpoints": "3.930.0", - "@aws-sdk/util-user-agent-browser": "3.930.0", - "@aws-sdk/util-user-agent-node": "3.934.0", - "@smithy/config-resolver": "^4.4.3", - "@smithy/core": "^3.18.2", - "@smithy/eventstream-serde-browser": "^4.2.5", - "@smithy/eventstream-serde-config-resolver": "^4.3.5", - "@smithy/eventstream-serde-node": "^4.2.5", - "@smithy/fetch-http-handler": "^5.3.6", - "@smithy/hash-blob-browser": "^4.2.6", - "@smithy/hash-node": "^4.2.5", - "@smithy/hash-stream-node": "^4.2.5", - "@smithy/invalid-dependency": "^4.2.5", - "@smithy/md5-js": "^4.2.5", - "@smithy/middleware-content-length": "^4.2.5", - "@smithy/middleware-endpoint": "^4.3.9", - "@smithy/middleware-retry": "^4.4.9", - "@smithy/middleware-serde": "^4.2.5", - "@smithy/middleware-stack": "^4.2.5", - "@smithy/node-config-provider": "^4.3.5", - "@smithy/node-http-handler": "^4.4.5", - "@smithy/protocol-http": "^5.3.5", - "@smithy/smithy-client": "^4.9.5", - "@smithy/types": "^4.9.0", - "@smithy/url-parser": "^4.2.5", - "@smithy/util-base64": "^4.3.0", - "@smithy/util-body-length-browser": "^4.2.0", - "@smithy/util-body-length-node": "^4.2.1", - "@smithy/util-defaults-mode-browser": "^4.3.8", - "@smithy/util-defaults-mode-node": "^4.2.11", - "@smithy/util-endpoints": "^3.2.5", - "@smithy/util-middleware": "^4.2.5", - "@smithy/util-retry": "^4.2.5", - "@smithy/util-stream": "^4.5.6", - "@smithy/util-utf8": "^4.2.0", - "@smithy/util-waiter": "^4.2.5", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@aws-sdk/client-sso": { - "version": "3.934.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.934.0.tgz", - "integrity": "sha512-gsgJevqhY0j3x014ejhXtHLCA6o83FYm3rJoZG7tqoy3DnWerLv/FHaAnHI/+Q+csadqjoFkWGQTOedPoOunzA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@aws-crypto/sha256-browser": "5.2.0", - "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.934.0", - "@aws-sdk/middleware-host-header": "3.930.0", - "@aws-sdk/middleware-logger": "3.930.0", - "@aws-sdk/middleware-recursion-detection": "3.933.0", - "@aws-sdk/middleware-user-agent": "3.934.0", - "@aws-sdk/region-config-resolver": "3.930.0", - "@aws-sdk/types": "3.930.0", - "@aws-sdk/util-endpoints": "3.930.0", - "@aws-sdk/util-user-agent-browser": "3.930.0", - "@aws-sdk/util-user-agent-node": "3.934.0", - "@smithy/config-resolver": "^4.4.3", - "@smithy/core": "^3.18.2", - "@smithy/fetch-http-handler": "^5.3.6", - "@smithy/hash-node": "^4.2.5", - "@smithy/invalid-dependency": "^4.2.5", - "@smithy/middleware-content-length": "^4.2.5", - "@smithy/middleware-endpoint": "^4.3.9", - "@smithy/middleware-retry": "^4.4.9", - "@smithy/middleware-serde": "^4.2.5", - "@smithy/middleware-stack": "^4.2.5", - "@smithy/node-config-provider": "^4.3.5", - "@smithy/node-http-handler": "^4.4.5", - "@smithy/protocol-http": "^5.3.5", - "@smithy/smithy-client": "^4.9.5", - "@smithy/types": "^4.9.0", - "@smithy/url-parser": "^4.2.5", - "@smithy/util-base64": "^4.3.0", - "@smithy/util-body-length-browser": "^4.2.0", - "@smithy/util-body-length-node": "^4.2.1", - "@smithy/util-defaults-mode-browser": "^4.3.8", - "@smithy/util-defaults-mode-node": "^4.2.11", - "@smithy/util-endpoints": "^3.2.5", - "@smithy/util-middleware": "^4.2.5", - "@smithy/util-retry": "^4.2.5", - "@smithy/util-utf8": "^4.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@aws-sdk/core": { - "version": "3.934.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.934.0.tgz", - "integrity": "sha512-b6k916ZxSrBwQPzeirncTIQXGnhps0HFOUakFt0ZEzjksePYUiEoU/SQ7VeY1j9JeAdJ24ejqddCiyLt99/3lg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/types": "3.930.0", - "@aws-sdk/xml-builder": "3.930.0", - "@smithy/core": "^3.18.2", - "@smithy/node-config-provider": "^4.3.5", - "@smithy/property-provider": "^4.2.5", - "@smithy/protocol-http": "^5.3.5", - "@smithy/signature-v4": "^5.3.5", - "@smithy/smithy-client": "^4.9.5", - "@smithy/types": "^4.9.0", - "@smithy/util-base64": "^4.3.0", - "@smithy/util-middleware": "^4.2.5", - "@smithy/util-utf8": "^4.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-env": { - "version": "3.934.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.934.0.tgz", - "integrity": "sha512-bnpIGYm7Jy46dxZa1cxMQ1sF0n2iBIT+TpOPHK51sz1N2dYOicUVWUHMDgU2xIFOVcKaqV+GV4VyicMmvDBcBQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/core": "3.934.0", - "@aws-sdk/types": "3.930.0", - "@smithy/property-provider": "^4.2.5", - "@smithy/types": "^4.9.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-http": { - "version": "3.934.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.934.0.tgz", - "integrity": "sha512-WJcfFik7MPIgjE8lmuDcCqddHKRMpifzoBzTZWqUJJWYXIy0rDfNzt6pn3/TMLwVgnCGjnXlw6dChTxLzO60RQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/core": "3.934.0", - "@aws-sdk/types": "3.930.0", - "@smithy/fetch-http-handler": "^5.3.6", - "@smithy/node-http-handler": "^4.4.5", - "@smithy/property-provider": "^4.2.5", - "@smithy/protocol-http": "^5.3.5", - "@smithy/smithy-client": "^4.9.5", - "@smithy/types": "^4.9.0", - "@smithy/util-stream": "^4.5.6", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.934.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.934.0.tgz", - "integrity": "sha512-3vVKGe1F2S09G9kC0ZcpWh09opyrGOgQETllqWbuxlTVd7zBgrZWloItLIvneSDP+dWvdLFUbkD7WDWNCeGiig==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/core": "3.934.0", - "@aws-sdk/credential-provider-env": "3.934.0", - "@aws-sdk/credential-provider-http": "3.934.0", - "@aws-sdk/credential-provider-process": "3.934.0", - "@aws-sdk/credential-provider-sso": "3.934.0", - "@aws-sdk/credential-provider-web-identity": "3.934.0", - "@aws-sdk/nested-clients": "3.934.0", - "@aws-sdk/types": "3.930.0", - "@smithy/credential-provider-imds": "^4.2.5", - "@smithy/property-provider": "^4.2.5", - "@smithy/shared-ini-file-loader": "^4.4.0", - "@smithy/types": "^4.9.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.934.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.934.0.tgz", - "integrity": "sha512-nguy36xi8nbH346dJjCmwWtOgfS4VfL7yHP+EEGmma+yg+J7mxgs8kA1NGQdJ8B46GdjlJPpI1P9pm7Pmz7nOw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/credential-provider-env": "3.934.0", - "@aws-sdk/credential-provider-http": "3.934.0", - "@aws-sdk/credential-provider-ini": "3.934.0", - "@aws-sdk/credential-provider-process": "3.934.0", - "@aws-sdk/credential-provider-sso": "3.934.0", - "@aws-sdk/credential-provider-web-identity": "3.934.0", - "@aws-sdk/types": "3.930.0", - "@smithy/credential-provider-imds": "^4.2.5", - "@smithy/property-provider": "^4.2.5", - "@smithy/shared-ini-file-loader": "^4.4.0", - "@smithy/types": "^4.9.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-process": { - "version": "3.934.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.934.0.tgz", - "integrity": "sha512-PhvpAgoJ88IOuqlUws9nvHuPex2jK+WS+0s00BQcRTwqPP0jtLT7eql6UfCRduwv2sIy3m1wnWDUubvbpejp/Q==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/core": "3.934.0", - "@aws-sdk/types": "3.930.0", - "@smithy/property-provider": "^4.2.5", - "@smithy/shared-ini-file-loader": "^4.4.0", - "@smithy/types": "^4.9.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.934.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.934.0.tgz", - "integrity": "sha512-7wO86w95V9MZSYo2dunBKruKHdAUmgg9ccOSJSYGnPip1PPBK/rgSgQ8mDlYtFAW3/82bdeM/668QcgLT4+ofA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/client-sso": "3.934.0", - "@aws-sdk/core": "3.934.0", - "@aws-sdk/token-providers": "3.934.0", - "@aws-sdk/types": "3.930.0", - "@smithy/property-provider": "^4.2.5", - "@smithy/shared-ini-file-loader": "^4.4.0", - "@smithy/types": "^4.9.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.934.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.934.0.tgz", - "integrity": "sha512-hb+lvFxiAPcAvUorB0hrUd1kDjDRXhZgCi5426I8KUpGzZ+ALh8/ep0KXAiYe2yg9ZkyMUbMaMvYYhMFcbXRFA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/core": "3.934.0", - "@aws-sdk/nested-clients": "3.934.0", - "@aws-sdk/types": "3.930.0", - "@smithy/property-provider": "^4.2.5", - "@smithy/shared-ini-file-loader": "^4.4.0", - "@smithy/types": "^4.9.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@aws-sdk/middleware-bucket-endpoint": { - "version": "3.930.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.930.0.tgz", - "integrity": "sha512-cnCLWeKPYgvV4yRYPFH6pWMdUByvu2cy2BAlfsPpvnm4RaVioztyvxmQj5PmVN5fvWs5w/2d6U7le8X9iye2sA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/types": "3.930.0", - "@aws-sdk/util-arn-parser": "3.893.0", - "@smithy/node-config-provider": "^4.3.5", - "@smithy/protocol-http": "^5.3.5", - "@smithy/types": "^4.9.0", - "@smithy/util-config-provider": "^4.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@aws-sdk/middleware-expect-continue": { - "version": "3.930.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.930.0.tgz", - "integrity": "sha512-5HEQ+JU4DrLNWeY27wKg/jeVa8Suy62ivJHOSUf6e6hZdVIMx0h/kXS1fHEQNNiLu2IzSEP/bFXsKBaW7x7s0g==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/types": "3.930.0", - "@smithy/protocol-http": "^5.3.5", - "@smithy/types": "^4.9.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@aws-sdk/middleware-flexible-checksums": { - "version": "3.934.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.934.0.tgz", - "integrity": "sha512-kAV0fhwUhh/CV8hR5iip+du5QSXvIsONERVY/iJPbiBItqsmFaWcwiZE9E+ORJPNyoT/3X17632W33pCweKGDQ==", - "dev": true, - "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.934.0", - "@aws-sdk/types": "3.930.0", - "@smithy/is-array-buffer": "^4.2.0", - "@smithy/node-config-provider": "^4.3.5", - "@smithy/protocol-http": "^5.3.5", - "@smithy/types": "^4.9.0", - "@smithy/util-middleware": "^4.2.5", - "@smithy/util-stream": "^4.5.6", - "@smithy/util-utf8": "^4.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@aws-sdk/middleware-host-header": { - "version": "3.930.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.930.0.tgz", - "integrity": "sha512-x30jmm3TLu7b/b+67nMyoV0NlbnCVT5DI57yDrhXAPCtdgM1KtdLWt45UcHpKOm1JsaIkmYRh2WYu7Anx4MG0g==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/types": "3.930.0", - "@smithy/protocol-http": "^5.3.5", - "@smithy/types": "^4.9.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@aws-sdk/middleware-location-constraint": { - "version": "3.930.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.930.0.tgz", - "integrity": "sha512-QIGNsNUdRICog+LYqmtJ03PLze6h2KCORXUs5td/hAEjVP5DMmubhtrGg1KhWyctACluUH/E/yrD14p4pRXxwA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/types": "3.930.0", - "@smithy/types": "^4.9.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@aws-sdk/middleware-logger": { - "version": "3.930.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.930.0.tgz", - "integrity": "sha512-vh4JBWzMCBW8wREvAwoSqB2geKsZwSHTa0nSt0OMOLp2PdTYIZDi0ZiVMmpfnjcx9XbS6aSluLv9sKx4RrG46A==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/types": "3.930.0", - "@smithy/types": "^4.9.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@aws-sdk/middleware-recursion-detection": { - "version": "3.933.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.933.0.tgz", - "integrity": "sha512-qgrMlkVKzTCAdNw2A05DC2sPBo0KRQ7wk+lbYSRJnWVzcrceJhnmhoZVV5PFv7JtchK7sHVcfm9lcpiyd+XaCA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/types": "3.930.0", - "@aws/lambda-invoke-store": "^0.2.0", - "@smithy/protocol-http": "^5.3.5", - "@smithy/types": "^4.9.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@aws-sdk/middleware-sdk-s3": { - "version": "3.934.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.934.0.tgz", - "integrity": "sha512-eU2R7pVOhCxnkDzq9mW+xh4WvCA3mdXVUHezIcJNFyKCKKv/c9I4WFcnMnUy+wnCWO2mzN/gwSgQxADkvxfLNQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/core": "3.934.0", - "@aws-sdk/types": "3.930.0", - "@aws-sdk/util-arn-parser": "3.893.0", - "@smithy/core": "^3.18.2", - "@smithy/node-config-provider": "^4.3.5", - "@smithy/protocol-http": "^5.3.5", - "@smithy/signature-v4": "^5.3.5", - "@smithy/smithy-client": "^4.9.5", - "@smithy/types": "^4.9.0", - "@smithy/util-config-provider": "^4.2.0", - "@smithy/util-middleware": "^4.2.5", - "@smithy/util-stream": "^4.5.6", - "@smithy/util-utf8": "^4.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@aws-sdk/middleware-ssec": { - "version": "3.930.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.930.0.tgz", - "integrity": "sha512-N2/SvodmaDS6h7CWfuapt3oJyn1T2CBz0CsDIiTDv9cSagXAVFjPdm2g4PFJqrNBeqdDIoYBnnta336HmamWHg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/types": "3.930.0", - "@smithy/types": "^4.9.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.934.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.934.0.tgz", - "integrity": "sha512-68giGM2Zm9K6Qas14ws3Qo5wafpn0I8/L64fS9E6Rc6Tu0k+So73hupysw+9ZOzHwQS5FEBUqLOMtbUibAcjNA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/core": "3.934.0", - "@aws-sdk/types": "3.930.0", - "@aws-sdk/util-endpoints": "3.930.0", - "@smithy/core": "^3.18.2", - "@smithy/protocol-http": "^5.3.5", - "@smithy/types": "^4.9.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@aws-sdk/nested-clients": { - "version": "3.934.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.934.0.tgz", - "integrity": "sha512-kRO61EMrDR4UuPlKAkziG6urcYXlhrFW/Ce5PjWFdjkm0ZOge75OFV1vhf/vE4Pmoop9jaAONX4E5BaIYrIQfg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@aws-crypto/sha256-browser": "5.2.0", - "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.934.0", - "@aws-sdk/middleware-host-header": "3.930.0", - "@aws-sdk/middleware-logger": "3.930.0", - "@aws-sdk/middleware-recursion-detection": "3.933.0", - "@aws-sdk/middleware-user-agent": "3.934.0", - "@aws-sdk/region-config-resolver": "3.930.0", - "@aws-sdk/types": "3.930.0", - "@aws-sdk/util-endpoints": "3.930.0", - "@aws-sdk/util-user-agent-browser": "3.930.0", - "@aws-sdk/util-user-agent-node": "3.934.0", - "@smithy/config-resolver": "^4.4.3", - "@smithy/core": "^3.18.2", - "@smithy/fetch-http-handler": "^5.3.6", - "@smithy/hash-node": "^4.2.5", - "@smithy/invalid-dependency": "^4.2.5", - "@smithy/middleware-content-length": "^4.2.5", - "@smithy/middleware-endpoint": "^4.3.9", - "@smithy/middleware-retry": "^4.4.9", - "@smithy/middleware-serde": "^4.2.5", - "@smithy/middleware-stack": "^4.2.5", - "@smithy/node-config-provider": "^4.3.5", - "@smithy/node-http-handler": "^4.4.5", - "@smithy/protocol-http": "^5.3.5", - "@smithy/smithy-client": "^4.9.5", - "@smithy/types": "^4.9.0", - "@smithy/url-parser": "^4.2.5", - "@smithy/util-base64": "^4.3.0", - "@smithy/util-body-length-browser": "^4.2.0", - "@smithy/util-body-length-node": "^4.2.1", - "@smithy/util-defaults-mode-browser": "^4.3.8", - "@smithy/util-defaults-mode-node": "^4.2.11", - "@smithy/util-endpoints": "^3.2.5", - "@smithy/util-middleware": "^4.2.5", - "@smithy/util-retry": "^4.2.5", - "@smithy/util-utf8": "^4.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@aws-sdk/region-config-resolver": { - "version": "3.930.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.930.0.tgz", - "integrity": "sha512-KL2JZqH6aYeQssu1g1KuWsReupdfOoxD6f1as2VC+rdwYFUu4LfzMsFfXnBvvQWWqQ7rZHWOw1T+o5gJmg7Dzw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/types": "3.930.0", - "@smithy/config-resolver": "^4.4.3", - "@smithy/node-config-provider": "^4.3.5", - "@smithy/types": "^4.9.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@aws-sdk/signature-v4-multi-region": { - "version": "3.934.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.934.0.tgz", - "integrity": "sha512-cLphxVoHapSdouAdLSDEwR2Bktjg5dc11EpSpaLo8jcFpAXhFaDllKBfDfws0EqGY6N2CMqEjqPqxDFzmmQOQA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/middleware-sdk-s3": "3.934.0", - "@aws-sdk/types": "3.930.0", - "@smithy/protocol-http": "^5.3.5", - "@smithy/signature-v4": "^5.3.5", - "@smithy/types": "^4.9.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@aws-sdk/token-providers": { - "version": "3.934.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.934.0.tgz", - "integrity": "sha512-M0WEmgXDdUxapSfjplqJoVCBMcn0vQ5Jou0X/XiQwyVDbfvIyNSHUHyMXEIBAew9kVx9sfMMEYz3LXewvQxdCA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/core": "3.934.0", - "@aws-sdk/nested-clients": "3.934.0", - "@aws-sdk/types": "3.930.0", - "@smithy/property-provider": "^4.2.5", - "@smithy/shared-ini-file-loader": "^4.4.0", - "@smithy/types": "^4.9.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@aws-sdk/types": { - "version": "3.930.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.930.0.tgz", - "integrity": "sha512-we/vaAgwlEFW7IeftmCLlLMw+6hFs3DzZPJw7lVHbj/5HJ0bz9gndxEsS2lQoeJ1zhiiLqAqvXxmM43s0MBg0A==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/types": "^4.9.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@aws-sdk/util-arn-parser": { - "version": "3.893.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.893.0.tgz", - "integrity": "sha512-u8H4f2Zsi19DGnwj5FSZzDMhytYF/bCh37vAtBsn3cNDL3YG578X5oc+wSX54pM3tOxS+NY7tvOAo52SW7koUA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@aws-sdk/util-endpoints": { - "version": "3.930.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.930.0.tgz", - "integrity": "sha512-M2oEKBzzNAYr136RRc6uqw3aWlwCxqTP1Lawps9E1d2abRPvl1p1ztQmmXp1Ak4rv8eByIZ+yQyKQ3zPdRG5dw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/types": "3.930.0", - "@smithy/types": "^4.9.0", - "@smithy/url-parser": "^4.2.5", - "@smithy/util-endpoints": "^3.2.5", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@aws-sdk/util-locate-window": { - "version": "3.893.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.893.0.tgz", - "integrity": "sha512-T89pFfgat6c8nMmpI8eKjBcDcgJq36+m9oiXbcUzeU55MP9ZuGgBomGjGnHaEyF36jenW9gmg3NfZDm0AO2XPg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@aws-sdk/util-user-agent-browser": { - "version": "3.930.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.930.0.tgz", - "integrity": "sha512-q6lCRm6UAe+e1LguM5E4EqM9brQlDem4XDcQ87NzEvlTW6GzmNCO0w1jS0XgCFXQHjDxjdlNFX+5sRbHijwklg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/types": "3.930.0", - "@smithy/types": "^4.9.0", - "bowser": "^2.11.0", - "tslib": "^2.6.2" - } - }, - "node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.934.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.934.0.tgz", - "integrity": "sha512-vPRR4PaqNmuOQJSzq4EAVwFHUaSpPtgDgCEc7AYbArIy+59fckb6JNddlrjx4w4iWbqO0d+7OC5PtRcIk0AcZA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/middleware-user-agent": "3.934.0", - "@aws-sdk/types": "3.930.0", - "@smithy/node-config-provider": "^4.3.5", - "@smithy/types": "^4.9.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "aws-crt": ">=1.0.0" - }, - "peerDependenciesMeta": { - "aws-crt": { - "optional": true - } - } - }, - "node_modules/@aws-sdk/xml-builder": { - "version": "3.930.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.930.0.tgz", - "integrity": "sha512-YIfkD17GocxdmlUVc3ia52QhcWuRIUJonbF8A2CYfcWNV3HzvAqpcPeC0bYUhkK+8e8YO1ARnLKZQE0TlwzorA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/types": "^4.9.0", - "fast-xml-parser": "5.2.5", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@aws/lambda-invoke-store": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@aws/lambda-invoke-store/-/lambda-invoke-store-0.2.0.tgz", - "integrity": "sha512-D1jAmAZQYMoPiacfgNf7AWhg3DFN3Wq/vQv3WINt9znwjzHp2x+WzdJFxxj7xZL7V1U79As6G8f7PorMYWBKsQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.0.0" + "globals": "^15.9.0", + "scripts": "file:./scripts" } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz", - "integrity": "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", + "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1035,9 +121,9 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", - "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.3.tgz", + "integrity": "sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1047,7 +133,7 @@ "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", + "js-yaml": "^4.1.1", "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, @@ -1096,9 +182,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.39.1", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.1.tgz", - "integrity": "sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==", + "version": "9.39.2", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.2.tgz", + "integrity": "sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==", "dev": true, "license": "MIT", "engines": { @@ -1206,44 +292,6 @@ "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/@seald-io/binary-search-tree": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@seald-io/binary-search-tree/-/binary-search-tree-1.0.3.tgz", @@ -1262,789 +310,6 @@ "util": "^0.12.5" } }, - "node_modules/@smithy/abort-controller": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-4.2.5.tgz", - "integrity": "sha512-j7HwVkBw68YW8UmFRcjZOmssE77Rvk0GWAIN1oFBhsaovQmZWYCIcGa9/pwRB0ExI8Sk9MWNALTjftjHZea7VA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/types": "^4.9.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/chunked-blob-reader": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader/-/chunked-blob-reader-5.2.0.tgz", - "integrity": "sha512-WmU0TnhEAJLWvfSeMxBNe5xtbselEO8+4wG0NtZeL8oR21WgH1xiO37El+/Y+H/Ie4SCwBy3MxYWmOYaGgZueA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/chunked-blob-reader-native": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-4.2.1.tgz", - "integrity": "sha512-lX9Ay+6LisTfpLid2zZtIhSEjHMZoAR5hHCR4H7tBz/Zkfr5ea8RcQ7Tk4mi0P76p4cN+Btz16Ffno7YHpKXnQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/util-base64": "^4.3.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/config-resolver": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-4.4.3.tgz", - "integrity": "sha512-ezHLe1tKLUxDJo2LHtDuEDyWXolw8WGOR92qb4bQdWq/zKenO5BvctZGrVJBK08zjezSk7bmbKFOXIVyChvDLw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/node-config-provider": "^4.3.5", - "@smithy/types": "^4.9.0", - "@smithy/util-config-provider": "^4.2.0", - "@smithy/util-endpoints": "^3.2.5", - "@smithy/util-middleware": "^4.2.5", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/core": { - "version": "3.18.4", - "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.18.4.tgz", - "integrity": "sha512-o5tMqPZILBvvROfC8vC+dSVnWJl9a0u9ax1i1+Bq8515eYjUJqqk5XjjEsDLoeL5dSqGSh6WGdVx1eJ1E/Nwhw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/middleware-serde": "^4.2.6", - "@smithy/protocol-http": "^5.3.5", - "@smithy/types": "^4.9.0", - "@smithy/util-base64": "^4.3.0", - "@smithy/util-body-length-browser": "^4.2.0", - "@smithy/util-middleware": "^4.2.5", - "@smithy/util-stream": "^4.5.6", - "@smithy/util-utf8": "^4.2.0", - "@smithy/uuid": "^1.1.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/credential-provider-imds": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.2.5.tgz", - "integrity": "sha512-BZwotjoZWn9+36nimwm/OLIcVe+KYRwzMjfhd4QT7QxPm9WY0HiOV8t/Wlh+HVUif0SBVV7ksq8//hPaBC/okQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/node-config-provider": "^4.3.5", - "@smithy/property-provider": "^4.2.5", - "@smithy/types": "^4.9.0", - "@smithy/url-parser": "^4.2.5", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/eventstream-codec": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-4.2.5.tgz", - "integrity": "sha512-Ogt4Zi9hEbIP17oQMd68qYOHUzmH47UkK7q7Gl55iIm9oKt27MUGrC5JfpMroeHjdkOliOA4Qt3NQ1xMq/nrlA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@aws-crypto/crc32": "5.2.0", - "@smithy/types": "^4.9.0", - "@smithy/util-hex-encoding": "^4.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/eventstream-serde-browser": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-4.2.5.tgz", - "integrity": "sha512-HohfmCQZjppVnKX2PnXlf47CW3j92Ki6T/vkAT2DhBR47e89pen3s4fIa7otGTtrVxmj7q+IhH0RnC5kpR8wtw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/eventstream-serde-universal": "^4.2.5", - "@smithy/types": "^4.9.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/eventstream-serde-config-resolver": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-4.3.5.tgz", - "integrity": "sha512-ibjQjM7wEXtECiT6my1xfiMH9IcEczMOS6xiCQXoUIYSj5b1CpBbJ3VYbdwDy8Vcg5JHN7eFpOCGk8nyZAltNQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/types": "^4.9.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/eventstream-serde-node": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-4.2.5.tgz", - "integrity": "sha512-+elOuaYx6F2H6x1/5BQP5ugv12nfJl66GhxON8+dWVUEDJ9jah/A0tayVdkLRP0AeSac0inYkDz5qBFKfVp2Gg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/eventstream-serde-universal": "^4.2.5", - "@smithy/types": "^4.9.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/eventstream-serde-universal": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-4.2.5.tgz", - "integrity": "sha512-G9WSqbST45bmIFaeNuP/EnC19Rhp54CcVdX9PDL1zyEB514WsDVXhlyihKlGXnRycmHNmVv88Bvvt4EYxWef/Q==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/eventstream-codec": "^4.2.5", - "@smithy/types": "^4.9.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/fetch-http-handler": { - "version": "5.3.6", - "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.3.6.tgz", - "integrity": "sha512-3+RG3EA6BBJ/ofZUeTFJA7mHfSYrZtQIrDP9dI8Lf7X6Jbos2jptuLrAAteDiFVrmbEmLSuRG/bUKzfAXk7dhg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/protocol-http": "^5.3.5", - "@smithy/querystring-builder": "^4.2.5", - "@smithy/types": "^4.9.0", - "@smithy/util-base64": "^4.3.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/hash-blob-browser": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-4.2.6.tgz", - "integrity": "sha512-8P//tA8DVPk+3XURk2rwcKgYwFvwGwmJH/wJqQiSKwXZtf/LiZK+hbUZmPj/9KzM+OVSwe4o85KTp5x9DUZTjw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/chunked-blob-reader": "^5.2.0", - "@smithy/chunked-blob-reader-native": "^4.2.1", - "@smithy/types": "^4.9.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/hash-node": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-4.2.5.tgz", - "integrity": "sha512-DpYX914YOfA3UDT9CN1BM787PcHfWRBB43fFGCYrZFUH0Jv+5t8yYl+Pd5PW4+QzoGEDvn5d5QIO4j2HyYZQSA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/types": "^4.9.0", - "@smithy/util-buffer-from": "^4.2.0", - "@smithy/util-utf8": "^4.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/hash-stream-node": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-4.2.5.tgz", - "integrity": "sha512-6+do24VnEyvWcGdHXomlpd0m8bfZePpUKBy7m311n+JuRwug8J4dCanJdTymx//8mi0nlkflZBvJe+dEO/O12Q==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/types": "^4.9.0", - "@smithy/util-utf8": "^4.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/invalid-dependency": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-4.2.5.tgz", - "integrity": "sha512-2L2erASEro1WC5nV+plwIMxrTXpvpfzl4e+Nre6vBVRR2HKeGGcvpJyyL3/PpiSg+cJG2KpTmZmq934Olb6e5A==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/types": "^4.9.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/is-array-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-4.2.0.tgz", - "integrity": "sha512-DZZZBvC7sjcYh4MazJSGiWMI2L7E0oCiRHREDzIxi/M2LY79/21iXt6aPLHge82wi5LsuRF5A06Ds3+0mlh6CQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/md5-js": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-4.2.5.tgz", - "integrity": "sha512-Bt6jpSTMWfjCtC0s79gZ/WZ1w90grfmopVOWqkI2ovhjpD5Q2XRXuecIPB9689L2+cCySMbaXDhBPU56FKNDNg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/types": "^4.9.0", - "@smithy/util-utf8": "^4.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/middleware-content-length": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-4.2.5.tgz", - "integrity": "sha512-Y/RabVa5vbl5FuHYV2vUCwvh/dqzrEY/K2yWPSqvhFUwIY0atLqO4TienjBXakoy4zrKAMCZwg+YEqmH7jaN7A==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/protocol-http": "^5.3.5", - "@smithy/types": "^4.9.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/middleware-endpoint": { - "version": "4.3.11", - "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.3.11.tgz", - "integrity": "sha512-eJXq9VJzEer1W7EQh3HY2PDJdEcEUnv6sKuNt4eVjyeNWcQFS4KmnY+CKkYOIR6tSqarn6bjjCqg1UB+8UJiPQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/core": "^3.18.4", - "@smithy/middleware-serde": "^4.2.6", - "@smithy/node-config-provider": "^4.3.5", - "@smithy/shared-ini-file-loader": "^4.4.0", - "@smithy/types": "^4.9.0", - "@smithy/url-parser": "^4.2.5", - "@smithy/util-middleware": "^4.2.5", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/middleware-retry": { - "version": "4.4.11", - "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.4.11.tgz", - "integrity": "sha512-EL5OQHvFOKneJVRgzRW4lU7yidSwp/vRJOe542bHgExN3KNThr1rlg0iE4k4SnA+ohC+qlUxoK+smKeAYPzfAQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/node-config-provider": "^4.3.5", - "@smithy/protocol-http": "^5.3.5", - "@smithy/service-error-classification": "^4.2.5", - "@smithy/smithy-client": "^4.9.7", - "@smithy/types": "^4.9.0", - "@smithy/util-middleware": "^4.2.5", - "@smithy/util-retry": "^4.2.5", - "@smithy/uuid": "^1.1.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/middleware-serde": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-4.2.6.tgz", - "integrity": "sha512-VkLoE/z7e2g8pirwisLz8XJWedUSY8my/qrp81VmAdyrhi94T+riBfwP+AOEEFR9rFTSonC/5D2eWNmFabHyGQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/protocol-http": "^5.3.5", - "@smithy/types": "^4.9.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/middleware-stack": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-4.2.5.tgz", - "integrity": "sha512-bYrutc+neOyWxtZdbB2USbQttZN0mXaOyYLIsaTbJhFsfpXyGWUxJpEuO1rJ8IIJm2qH4+xJT0mxUSsEDTYwdQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/types": "^4.9.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/node-config-provider": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-4.3.5.tgz", - "integrity": "sha512-UTurh1C4qkVCtqggI36DGbLB2Kv8UlcFdMXDcWMbqVY2uRg0XmT9Pb4Vj6oSQ34eizO1fvR0RnFV4Axw4IrrAg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/property-provider": "^4.2.5", - "@smithy/shared-ini-file-loader": "^4.4.0", - "@smithy/types": "^4.9.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/node-http-handler": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.4.5.tgz", - "integrity": "sha512-CMnzM9R2WqlqXQGtIlsHMEZfXKJVTIrqCNoSd/QpAyp+Dw0a1Vps13l6ma1fH8g7zSPNsA59B/kWgeylFuA/lw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/abort-controller": "^4.2.5", - "@smithy/protocol-http": "^5.3.5", - "@smithy/querystring-builder": "^4.2.5", - "@smithy/types": "^4.9.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/property-provider": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-4.2.5.tgz", - "integrity": "sha512-8iLN1XSE1rl4MuxvQ+5OSk/Zb5El7NJZ1td6Tn+8dQQHIjp59Lwl6bd0+nzw6SKm2wSSriH2v/I9LPzUic7EOg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/types": "^4.9.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/protocol-http": { - "version": "5.3.5", - "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-5.3.5.tgz", - "integrity": "sha512-RlaL+sA0LNMp03bf7XPbFmT5gN+w3besXSWMkA8rcmxLSVfiEXElQi4O2IWwPfxzcHkxqrwBFMbngB8yx/RvaQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/types": "^4.9.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/querystring-builder": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-4.2.5.tgz", - "integrity": "sha512-y98otMI1saoajeik2kLfGyRp11e5U/iJYH/wLCh3aTV/XutbGT9nziKGkgCaMD1ghK7p6htHMm6b6scl9JRUWg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/types": "^4.9.0", - "@smithy/util-uri-escape": "^4.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/querystring-parser": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-4.2.5.tgz", - "integrity": "sha512-031WCTdPYgiQRYNPXznHXof2YM0GwL6SeaSyTH/P72M1Vz73TvCNH2Nq8Iu2IEPq9QP2yx0/nrw5YmSeAi/AjQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/types": "^4.9.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/service-error-classification": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-4.2.5.tgz", - "integrity": "sha512-8fEvK+WPE3wUAcDvqDQG1Vk3ANLR8Px979te96m84CbKAjBVf25rPYSzb4xU4hlTyho7VhOGnh5i62D/JVF0JQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/types": "^4.9.0" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/shared-ini-file-loader": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.4.0.tgz", - "integrity": "sha512-5WmZ5+kJgJDjwXXIzr1vDTG+RhF9wzSODQBfkrQ2VVkYALKGvZX1lgVSxEkgicSAFnFhPj5rudJV0zoinqS0bA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/types": "^4.9.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/signature-v4": { - "version": "5.3.5", - "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.3.5.tgz", - "integrity": "sha512-xSUfMu1FT7ccfSXkoLl/QRQBi2rOvi3tiBZU2Tdy3I6cgvZ6SEi9QNey+lqps/sJRnogIS+lq+B1gxxbra2a/w==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/is-array-buffer": "^4.2.0", - "@smithy/protocol-http": "^5.3.5", - "@smithy/types": "^4.9.0", - "@smithy/util-hex-encoding": "^4.2.0", - "@smithy/util-middleware": "^4.2.5", - "@smithy/util-uri-escape": "^4.2.0", - "@smithy/util-utf8": "^4.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/smithy-client": { - "version": "4.9.7", - "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.9.7.tgz", - "integrity": "sha512-pskaE4kg0P9xNQWihfqlTMyxyFR3CH6Sr6keHYghgyqqDXzjl2QJg5lAzuVe/LzZiOzcbcVtxKYi1/fZPt/3DA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/core": "^3.18.4", - "@smithy/middleware-endpoint": "^4.3.11", - "@smithy/middleware-stack": "^4.2.5", - "@smithy/protocol-http": "^5.3.5", - "@smithy/types": "^4.9.0", - "@smithy/util-stream": "^4.5.6", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/types": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@smithy/types/-/types-4.9.0.tgz", - "integrity": "sha512-MvUbdnXDTwykR8cB1WZvNNwqoWVaTRA0RLlLmf/cIFNMM2cKWz01X4Ly6SMC4Kks30r8tT3Cty0jmeWfiuyHTA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/url-parser": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-4.2.5.tgz", - "integrity": "sha512-VaxMGsilqFnK1CeBX+LXnSuaMx4sTL/6znSZh2829txWieazdVxr54HmiyTsIbpOTLcf5nYpq9lpzmwRdxj6rQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/querystring-parser": "^4.2.5", - "@smithy/types": "^4.9.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/util-base64": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-4.3.0.tgz", - "integrity": "sha512-GkXZ59JfyxsIwNTWFnjmFEI8kZpRNIBfxKjv09+nkAWPt/4aGaEWMM04m4sxgNVWkbt2MdSvE3KF/PfX4nFedQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/util-buffer-from": "^4.2.0", - "@smithy/util-utf8": "^4.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/util-body-length-browser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-4.2.0.tgz", - "integrity": "sha512-Fkoh/I76szMKJnBXWPdFkQJl2r9SjPt3cMzLdOB6eJ4Pnpas8hVoWPYemX/peO0yrrvldgCUVJqOAjUrOLjbxg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/util-body-length-node": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-4.2.1.tgz", - "integrity": "sha512-h53dz/pISVrVrfxV1iqXlx5pRg3V2YWFcSQyPyXZRrZoZj4R4DeWRDo1a7dd3CPTcFi3kE+98tuNyD2axyZReA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/util-buffer-from": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-4.2.0.tgz", - "integrity": "sha512-kAY9hTKulTNevM2nlRtxAG2FQ3B2OR6QIrPY3zE5LqJy1oxzmgBGsHLWTcNhWXKchgA0WHW+mZkQrng/pgcCew==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/is-array-buffer": "^4.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/util-config-provider": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-4.2.0.tgz", - "integrity": "sha512-YEjpl6XJ36FTKmD+kRJJWYvrHeUvm5ykaUS5xK+6oXffQPHeEM4/nXlZPe+Wu0lsgRUcNZiliYNh/y7q9c2y6Q==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/util-defaults-mode-browser": { - "version": "4.3.10", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.10.tgz", - "integrity": "sha512-3iA3JVO1VLrP21FsZZpMCeF93aqP3uIOMvymAT3qHIJz2YlgDeRvNUspFwCNqd/j3qqILQJGtsVQnJZICh/9YA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/property-provider": "^4.2.5", - "@smithy/smithy-client": "^4.9.7", - "@smithy/types": "^4.9.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/util-defaults-mode-node": { - "version": "4.2.13", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.13.tgz", - "integrity": "sha512-PTc6IpnpSGASuzZAgyUtaVfOFpU0jBD2mcGwrgDuHf7PlFgt5TIPxCYBDbFQs06jxgeV3kd/d/sok1pzV0nJRg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/config-resolver": "^4.4.3", - "@smithy/credential-provider-imds": "^4.2.5", - "@smithy/node-config-provider": "^4.3.5", - "@smithy/property-provider": "^4.2.5", - "@smithy/smithy-client": "^4.9.7", - "@smithy/types": "^4.9.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/util-endpoints": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-3.2.5.tgz", - "integrity": "sha512-3O63AAWu2cSNQZp+ayl9I3NapW1p1rR5mlVHcF6hAB1dPZUQFfRPYtplWX/3xrzWthPGj5FqB12taJJCfH6s8A==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/node-config-provider": "^4.3.5", - "@smithy/types": "^4.9.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/util-hex-encoding": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-4.2.0.tgz", - "integrity": "sha512-CCQBwJIvXMLKxVbO88IukazJD9a4kQ9ZN7/UMGBjBcJYvatpWk+9g870El4cB8/EJxfe+k+y0GmR9CAzkF+Nbw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/util-middleware": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-4.2.5.tgz", - "integrity": "sha512-6Y3+rvBF7+PZOc40ybeZMcGln6xJGVeY60E7jy9Mv5iKpMJpHgRE6dKy9ScsVxvfAYuEX4Q9a65DQX90KaQ3bA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/types": "^4.9.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/util-retry": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-4.2.5.tgz", - "integrity": "sha512-GBj3+EZBbN4NAqJ/7pAhsXdfzdlznOh8PydUijy6FpNIMnHPSMO2/rP4HKu+UFeikJxShERk528oy7GT79YiJg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/service-error-classification": "^4.2.5", - "@smithy/types": "^4.9.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/util-stream": { - "version": "4.5.6", - "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-4.5.6.tgz", - "integrity": "sha512-qWw/UM59TiaFrPevefOZ8CNBKbYEP6wBAIlLqxn3VAIo9rgnTNc4ASbVrqDmhuwI87usnjhdQrxodzAGFFzbRQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/fetch-http-handler": "^5.3.6", - "@smithy/node-http-handler": "^4.4.5", - "@smithy/types": "^4.9.0", - "@smithy/util-base64": "^4.3.0", - "@smithy/util-buffer-from": "^4.2.0", - "@smithy/util-hex-encoding": "^4.2.0", - "@smithy/util-utf8": "^4.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/util-uri-escape": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-4.2.0.tgz", - "integrity": "sha512-igZpCKV9+E/Mzrpq6YacdTQ0qTiLm85gD6N/IrmyDvQFA4UnU3d5g3m8tMT/6zG/vVkWSU+VxeUyGonL62DuxA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/util-utf8": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-4.2.0.tgz", - "integrity": "sha512-zBPfuzoI8xyBtR2P6WQj63Rz8i3AmfAaJLuNG8dWsfvPe8lO4aCPYLn879mEgHndZH1zQ2oXmG8O1GGzzaoZiw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/util-buffer-from": "^4.2.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/util-waiter": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-4.2.5.tgz", - "integrity": "sha512-Dbun99A3InifQdIrsXZ+QLcC0PGBPAdrl4cj1mTgJvyc9N2zf7QSxg8TBkzsCmGJdE3TLbO9ycwpY0EkWahQ/g==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/abort-controller": "^4.2.5", - "@smithy/types": "^4.9.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/uuid": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@smithy/uuid/-/uuid-1.1.0.tgz", - "integrity": "sha512-4aUIteuyxtBUhVdiQqcDhKFitwfd9hqoSDYY2KRXiWtgoWJ9Bmise+KfEPDiVHWeJepvF8xJO9/9+WDIciMFFw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, "node_modules/@stylistic/eslint-plugin": { "version": "2.13.0", "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-2.13.0.tgz", @@ -2080,15 +345,15 @@ "license": "MIT" }, "node_modules/@typescript-eslint/project-service": { - "version": "8.46.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.46.4.tgz", - "integrity": "sha512-nPiRSKuvtTN+no/2N1kt2tUh/HoFzeEgOm9fQ6XQk4/ApGqjx0zFIIaLJ6wooR1HIoozvj2j6vTi/1fgAz7UYQ==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.53.0.tgz", + "integrity": "sha512-Bl6Gdr7NqkqIP5yP9z1JU///Nmes4Eose6L1HwpuVHwScgDPPuEWbUVhvlZmb8hy0vX9syLk5EGNL700WcBlbg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.46.4", - "@typescript-eslint/types": "^8.46.4", - "debug": "^4.3.4" + "@typescript-eslint/tsconfig-utils": "^8.53.0", + "@typescript-eslint/types": "^8.53.0", + "debug": "^4.4.3" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2102,14 +367,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.46.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.46.4.tgz", - "integrity": "sha512-tMDbLGXb1wC+McN1M6QeDx7P7c0UWO5z9CXqp7J8E+xGcJuUuevWKxuG8j41FoweS3+L41SkyKKkia16jpX7CA==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.53.0.tgz", + "integrity": "sha512-kWNj3l01eOGSdVBnfAF2K1BTh06WS0Yet6JUgb9Cmkqaz3Jlu0fdVUjj9UI8gPidBWSMqDIglmEXifSgDT/D0g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.46.4", - "@typescript-eslint/visitor-keys": "8.46.4" + "@typescript-eslint/types": "8.53.0", + "@typescript-eslint/visitor-keys": "8.53.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2120,9 +385,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.46.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.46.4.tgz", - "integrity": "sha512-+/XqaZPIAk6Cjg7NWgSGe27X4zMGqrFqZ8atJsX3CWxH/jACqWnrWI68h7nHQld0y+k9eTTjb9r+KU4twLoo9A==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.53.0.tgz", + "integrity": "sha512-K6Sc0R5GIG6dNoPdOooQ+KtvT5KCKAvTcY8h2rIuul19vxH5OTQk7ArKkd4yTzkw66WnNY0kPPzzcmWA+XRmiA==", "dev": true, "license": "MIT", "engines": { @@ -2137,9 +402,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.46.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.46.4.tgz", - "integrity": "sha512-USjyxm3gQEePdUwJBFjjGNG18xY9A2grDVGuk7/9AkjIF1L+ZrVnwR5VAU5JXtUnBL/Nwt3H31KlRDaksnM7/w==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.53.0.tgz", + "integrity": "sha512-Bmh9KX31Vlxa13+PqPvt4RzKRN1XORYSLlAE+sO1i28NkisGbTtSLFVB3l7PWdHtR3E0mVMuC7JilWJ99m2HxQ==", "dev": true, "license": "MIT", "engines": { @@ -2151,22 +416,21 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.46.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.4.tgz", - "integrity": "sha512-7oV2qEOr1d4NWNmpXLR35LvCfOkTNymY9oyW+lUHkmCno7aOmIf/hMaydnJBUTBMRCOGZh8YjkFOc8dadEoNGA==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.53.0.tgz", + "integrity": "sha512-pw0c0Gdo7Z4xOG987u3nJ8akL9093yEEKv8QTJ+Bhkghj1xyj8cgPaavlr9rq8h7+s6plUJ4QJYw2gCZodqmGw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.46.4", - "@typescript-eslint/tsconfig-utils": "8.46.4", - "@typescript-eslint/types": "8.46.4", - "@typescript-eslint/visitor-keys": "8.46.4", - "debug": "^4.3.4", - "fast-glob": "^3.3.2", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^2.1.0" + "@typescript-eslint/project-service": "8.53.0", + "@typescript-eslint/tsconfig-utils": "8.53.0", + "@typescript-eslint/types": "8.53.0", + "@typescript-eslint/visitor-keys": "8.53.0", + "debug": "^4.4.3", + "minimatch": "^9.0.5", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ts-api-utils": "^2.4.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2180,16 +444,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.46.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.46.4.tgz", - "integrity": "sha512-AbSv11fklGXV6T28dp2Me04Uw90R2iJ30g2bgLz529Koehrmkbs1r7paFqr1vPCZi7hHwYxYtxfyQMRC8QaVSg==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.53.0.tgz", + "integrity": "sha512-XDY4mXTez3Z1iRDI5mbRhH4DFSt46oaIFsLg+Zn97+sYrXACziXSQcSelMybnVZ5pa1P6xYkPr5cMJyunM1ZDA==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.7.0", - "@typescript-eslint/scope-manager": "8.46.4", - "@typescript-eslint/types": "8.46.4", - "@typescript-eslint/typescript-estree": "8.46.4" + "@eslint-community/eslint-utils": "^4.9.1", + "@typescript-eslint/scope-manager": "8.53.0", + "@typescript-eslint/types": "8.53.0", + "@typescript-eslint/typescript-estree": "8.53.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2204,13 +468,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.46.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.4.tgz", - "integrity": "sha512-/++5CYLQqsO9HFGLI7APrxBJYo+5OCMpViuhV8q5/Qa3o5mMrF//eQHks+PXcsAVaLdn817fMuS7zqoXNNZGaw==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.53.0.tgz", + "integrity": "sha512-LZ2NqIHFhvFwxG0qZeLL9DvdNAHPGCY5dIRwBhyYeU+LfLhcStE1ImjsuTG/WaVh3XysGaeLW8Rqq7cGkPCFvw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.46.4", + "@typescript-eslint/types": "8.53.0", "eslint-visitor-keys": "^4.2.1" }, "engines": { @@ -2376,13 +640,6 @@ ], "license": "MIT" }, - "node_modules/bowser": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.12.1.tgz", - "integrity": "sha512-z4rE2Gxh7tvshQ4hluIT7XcFrgLIQaw9X3A+kTTRdovCz5PMukm/0QC/BKSYPj3omF5Qfypn9O/c5kgpmvYUCw==", - "dev": true, - "license": "MIT" - }, "node_modules/brace-expansion": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", @@ -2393,19 +650,6 @@ "balanced-match": "^1.0.0" } }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/buffer": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", @@ -2763,9 +1007,9 @@ } }, "node_modules/eslint": { - "version": "9.39.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.1.tgz", - "integrity": "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==", + "version": "9.39.2", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.2.tgz", + "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==", "dev": true, "license": "MIT", "dependencies": { @@ -2775,7 +1019,7 @@ "@eslint/config-helpers": "^0.4.2", "@eslint/core": "^0.17.0", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.39.1", + "@eslint/js": "9.39.2", "@eslint/plugin-kit": "^0.4.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", @@ -2922,9 +1166,9 @@ } }, "node_modules/esquery": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", - "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -2974,36 +1218,6 @@ "dev": true, "license": "MIT" }, - "node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/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==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -3018,33 +1232,22 @@ "dev": true, "license": "MIT" }, - "node_modules/fast-xml-parser": { - "version": "5.2.5", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.2.5.tgz", - "integrity": "sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ==", + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/NaturalIntelligence" - } - ], "license": "MIT", - "dependencies": { - "strnum": "^2.1.0" + "engines": { + "node": ">=12.0.0" }, - "bin": { - "fxparser": "src/cli/cli.js" - } - }, - "node_modules/fastq": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", - "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } } }, "node_modules/file-entry-cache": { @@ -3060,19 +1263,6 @@ "node": ">=16.0.0" } }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -3149,9 +1339,9 @@ } }, "node_modules/form-data": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", - "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", "dev": true, "license": "MIT", "dependencies": { @@ -3517,16 +1707,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, "node_modules/is-regex": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", @@ -3704,43 +1884,6 @@ "node": ">= 0.4" } }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/micromatch/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -4023,41 +2166,6 @@ "node": ">=4" } }, - "node_modules/reusify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", - "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, "node_modules/safe-regex-test": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", @@ -4076,6 +2184,10 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/scripts": { + "resolved": "scripts", + "link": true + }, "node_modules/semver": { "version": "7.7.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", @@ -4171,19 +2283,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/strnum": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.1.1.tgz", - "integrity": "sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/NaturalIntelligence" - } - ], - "license": "MIT" - }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -4197,23 +2296,27 @@ "node": ">=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", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", "dev": true, "license": "MIT", "dependencies": { - "is-number": "^7.0.0" + "fdir": "^6.5.0", + "picomatch": "^4.0.3" }, "engines": { - "node": ">=8.0" + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" } }, "node_modules/ts-api-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", - "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz", + "integrity": "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==", "dev": true, "license": "MIT", "engines": { @@ -4223,13 +2326,6 @@ "typescript": ">=4.8.4" } }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -4399,6 +2495,37 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "scripts": { + "version": "0.0.0", + "dev": true, + "devDependencies": { + "@foundryvtt/foundryvtt-cli": "^3.0.2", + "axios": "^1.13.2", + "dotenv": "^17.2.3" + } + }, + "scripts/node_modules/@foundryvtt/foundryvtt-cli": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@foundryvtt/foundryvtt-cli/-/foundryvtt-cli-3.0.2.tgz", + "integrity": "sha512-coh4Cf4FD/GHxk2QMsd+3wLMivNeih4rfkbZy8CaYjdlpo6iciFQwxLqznZWtn+5p06zekvS2xLUF55NnbXQDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^5.4.1", + "classic-level": "^1.4.1", + "esm": "^3.2.25", + "js-yaml": "^4.1.0", + "mkdirp": "^3.0.1", + "nedb-promises": "^6.2.3", + "yargs": "^17.7.2" + }, + "bin": { + "fvtt": "fvtt.mjs" + }, + "engines": { + "node": ">17.0.0" + } } } } diff --git a/package.json b/package.json index 2532d39..5f7781f 100644 --- a/package.json +++ b/package.json @@ -1,18 +1,16 @@ { "devDependencies": { - "@aws-sdk/client-s3": "^3.934.0", "@eslint/js": "^9.8.0", "@foundryvtt/foundryvtt-cli": "^1.0.3", "@stylistic/eslint-plugin": "^2.6.1", - "axios": "^1.13.2", - "dotenv": "^17.2.2", "eslint": "^9.8.0", - "globals": "^15.9.0" + "globals": "^15.9.0", + "scripts": "file:./scripts" }, "scripts": { - "data:build": "node scripts/buildCompendia.mjs", - "data:extract": "node scripts/extractCompendia.mjs", - "link": "node scripts/linkFoundry.mjs", + "data:build": "node scripts/src/buildCompendia.mjs", + "data:extract": "node scripts/src/extractCompendia.mjs", + "link": "node scripts/src/linkFoundry.mjs", "lint": "eslint --fix", "lint:nofix": "eslint" } diff --git a/scripts b/scripts new file mode 160000 index 0000000..1b983cb --- /dev/null +++ b/scripts @@ -0,0 +1 @@ +Subproject commit 1b983cb54d7c632bbadcc0689ac9bf82a5a5fa50 From e26baae8650fde5ebee53ca7f4f52044a5fecd9b Mon Sep 17 00:00:00 2001 From: Oliver Date: Tue, 13 Jan 2026 17:46:42 -0700 Subject: [PATCH 03/38] Update the ref for the scripts --- scripts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts b/scripts index 1b983cb..075562c 160000 --- a/scripts +++ b/scripts @@ -1 +1 @@ -Subproject commit 1b983cb54d7c632bbadcc0689ac9bf82a5a5fa50 +Subproject commit 075562c65659397579e2b22ae6161ade9b18d019 From 1b26cacc4d995da8f1a4785c9e00a357b691bf36 Mon Sep 17 00:00:00 2001 From: Oliver Date: Tue, 13 Jan 2026 17:46:56 -0700 Subject: [PATCH 04/38] Update the manifest template --- .env.template | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.env.template b/.env.template index 180dbd6..ae7771d 100644 --- a/.env.template +++ b/.env.template @@ -1,2 +1,5 @@ # The absolute path to the Foundry installation to create symlinks to FOUNDRY_ROOT="" + +# The manifest file for the module/system +MANIFEST="./system.json" From f0cf155ae8be7632e2e1c85ae4436f2cb5e5ad4d Mon Sep 17 00:00:00 2001 From: Oliver Date: Tue, 13 Jan 2026 22:50:13 -0700 Subject: [PATCH 05/38] Update the scripts reference --- scripts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts b/scripts index 075562c..fc0a289 160000 --- a/scripts +++ b/scripts @@ -1 +1 @@ -Subproject commit 075562c65659397579e2b22ae6161ade9b18d019 +Subproject commit fc0a289866aaa4b8543056b9aa80316f07483ef6 From 401edf05c0e34496b634e0939b844e07b170b556 Mon Sep 17 00:00:00 2001 From: Oliver Date: Tue, 13 Jan 2026 22:59:12 -0700 Subject: [PATCH 06/38] Update scripts reference --- scripts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts b/scripts index fc0a289..3fa0aa7 160000 --- a/scripts +++ b/scripts @@ -1 +1 @@ -Subproject commit fc0a289866aaa4b8543056b9aa80316f07483ef6 +Subproject commit 3fa0aa7873598c2f82e1a4184086c03c6d144458 From 6373d92fea9dbfe25a6dd3d7607db93923255912 Mon Sep 17 00:00:00 2001 From: Oliver Date: Tue, 13 Jan 2026 22:59:40 -0700 Subject: [PATCH 07/38] Update the release process to use the new scripts --- .forgejo/workflows/draft-release.yaml | 90 +++++++++------------------ 1 file changed, 28 insertions(+), 62 deletions(-) diff --git a/.forgejo/workflows/draft-release.yaml b/.forgejo/workflows/draft-release.yaml index e89aba7..6f1881a 100644 --- a/.forgejo/workflows/draft-release.yaml +++ b/.forgejo/workflows/draft-release.yaml @@ -1,7 +1,7 @@ on: [ workflow_dispatch ] jobs: - create-artifacts: - name: "Create artifacts" + create-draft-release: + name: "Create Draft Release" runs-on: act steps: - name: Checkout code @@ -14,7 +14,7 @@ jobs: run: cat system.json | echo version=`jq -r ".version"` >> "$FORGEJO_OUTPUT" - name: Assert that the tag doesn't exist - run: node scripts/tagExists.mjs + run: node scripts/src/tagExists.mjs env: TAG_NAME: "v${{steps.version.outputs.version}}" @@ -24,73 +24,39 @@ jobs: - name: Remove compendia source run: "rm -rf packs/**/_source" - - name: Compress files - run: zip -r release.zip langs module styles templates README.md assets LICENSE - - - name: Upload artifacts - uses: https://data.forgejo.org/forgejo/upload-artifact@v4 - with: - path: | - system.json - release.zip - scripts/*.mjs - package-lock.json - package.json - retention-days: 7 - if-no-files-found: error - - - forgejo-release: - name: "Create Forgejo release" - runs-on: act - needs: - - create-artifacts - if: vars.RELEASE_TO_FORGEJO == 'yes' - steps: - - name: Download artifacts - uses: https://data.forgejo.org/forgejo/download-artifact@v4 - with: - merge-multiple: true - - - name: Install dependencies - run: npm i - - - id: version - run: cat system.json | echo version=`jq -r ".version"` >> "$FORGEJO_OUTPUT" - - name: Update manifest - run: node scripts/prepareManifest.mjs + run: node scripts/src/prepareManifest.mjs env: DOWNLOAD_URL: "${{forgejo.server_url}}/${{forgejo.repository}}/releases/download/v${{steps.version.outputs.version}}/release.zip" LATEST_URL: "${{forgejo.server_url}}/${{forgejo.repository}}/releases/download/latest/system.json" - - name: Add manifest into release archive - run: zip release.zip --update system.json + - name: Compress files + run: zip -r release.zip langs module styles templates README.md assets LICENSE - - name: Upload archive to s3 - run: node scripts/uploadToS3.mjs - env: - TAG: "v${{steps.version.outputs.version}}" - FILE: "release.zip" - S3_BUCKET: "${{vars.S3_BUCKET}}" - S3_REGION: "${{vars.S3_REGION}}" - S3_KEY: "${{secrets.S3_KEY}}" - S3_SECRET: "${{secrets.S3_SECRET}}" - S3_ENDPOINT: "${{vars.S3_ENDPOINT}}" + # - name: Upload archive to s3 + # run: node scripts/uploadToS3.mjs + # env: + # TAG: "v${{steps.version.outputs.version}}" + # FILE: "release.zip" + # S3_BUCKET: "${{vars.S3_BUCKET}}" + # S3_REGION: "${{vars.S3_REGION}}" + # S3_KEY: "${{secrets.S3_KEY}}" + # S3_SECRET: "${{secrets.S3_SECRET}}" + # S3_ENDPOINT: "${{vars.S3_ENDPOINT}}" - - name: Upload manifest to s3 - run: node scripts/uploadToS3.mjs - env: - TAG: "v${{steps.version.outputs.version}}" - FILE: "system.json" - S3_BUCKET: "${{vars.S3_BUCKET}}" - S3_REGION: "${{vars.S3_REGION}}" - S3_KEY: "${{secrets.S3_KEY}}" - S3_SECRET: "${{secrets.S3_SECRET}}" - S3_ENDPOINT: "${{vars.S3_ENDPOINT}}" + # - name: Upload manifest to s3 + # run: node scripts/uploadToS3.mjs + # env: + # TAG: "v${{steps.version.outputs.version}}" + # FILE: "system.json" + # S3_BUCKET: "${{vars.S3_BUCKET}}" + # S3_REGION: "${{vars.S3_REGION}}" + # S3_KEY: "${{secrets.S3_KEY}}" + # S3_SECRET: "${{secrets.S3_SECRET}}" + # S3_ENDPOINT: "${{vars.S3_ENDPOINT}}" - - name: Create draft release - run: node scripts/createForgejoRelease.mjs + - name: Create forgejo release + run: node scripts/src/createForgejoRelease.mjs env: TAG: "v${{steps.version.outputs.version}}" CDN_URL: "${{vars.CDN_URL}}" From 4681e908f74fea93b3a436b2d88dee6408e34087 Mon Sep 17 00:00:00 2001 From: Oliver Date: Tue, 13 Jan 2026 23:01:14 -0700 Subject: [PATCH 08/38] Update the version number --- system.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system.json b/system.json index 2f29455..1d2cbea 100644 --- a/system.json +++ b/system.json @@ -2,7 +2,7 @@ "id": "taf", "title": "Text-Based Actors", "description": "An intentionally minimalist system that enables you to play rules-light games without getting in your way!", - "version": "2.4.0", + "version": "2.4.1", "download": "", "manifest": "", "url": "https://git.varify.ca/Foundry/taf", From 5c3240ed8dad987f92ce1973cc3c374fa5abfc0f Mon Sep 17 00:00:00 2001 From: Oliver Date: Tue, 13 Jan 2026 23:08:06 -0700 Subject: [PATCH 09/38] Update scripts reference --- scripts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts b/scripts index 3fa0aa7..e22278d 160000 --- a/scripts +++ b/scripts @@ -1 +1 @@ -Subproject commit 3fa0aa7873598c2f82e1a4184086c03c6d144458 +Subproject commit e22278d9db26d3b86ab7d5b9aa2601976d7497c2 From 1aaf148ce4eb2bbb709afa91a5dc816b68bf74a8 Mon Sep 17 00:00:00 2001 From: Oliver Date: Tue, 13 Jan 2026 23:11:21 -0700 Subject: [PATCH 10/38] Make sure the checkout action pulls the submodules as well --- .forgejo/workflows/draft-release.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.forgejo/workflows/draft-release.yaml b/.forgejo/workflows/draft-release.yaml index 6f1881a..45b18e8 100644 --- a/.forgejo/workflows/draft-release.yaml +++ b/.forgejo/workflows/draft-release.yaml @@ -6,6 +6,8 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v4 + with: + submodules: true - name: Install dependencies run: npm clean-install From 738d579a814649979fc1d15528e2b7fcf2fe0b68 Mon Sep 17 00:00:00 2001 From: Oliver Date: Tue, 13 Jan 2026 23:13:23 -0700 Subject: [PATCH 11/38] Update scripts reference --- scripts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts b/scripts index e22278d..61e5891 160000 --- a/scripts +++ b/scripts @@ -1 +1 @@ -Subproject commit e22278d9db26d3b86ab7d5b9aa2601976d7497c2 +Subproject commit 61e589112a6cfcb603ed69792960d952f89b3181 From 6a3b81ec0df2f681650e3e530fd3c0b6af528247 Mon Sep 17 00:00:00 2001 From: Oliver Date: Tue, 13 Jan 2026 23:22:08 -0700 Subject: [PATCH 12/38] Add manifest env variable to all steps --- .forgejo/workflows/draft-release.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.forgejo/workflows/draft-release.yaml b/.forgejo/workflows/draft-release.yaml index 45b18e8..152ec69 100644 --- a/.forgejo/workflows/draft-release.yaml +++ b/.forgejo/workflows/draft-release.yaml @@ -1,4 +1,6 @@ on: [ workflow_dispatch ] +env: + MANIFEST: "system.json" jobs: create-draft-release: name: "Create Draft Release" From 2bbc7cdc428139eb1e09ec2f1a66b4e7cbd77562 Mon Sep 17 00:00:00 2001 From: Oliver Date: Tue, 13 Jan 2026 23:29:20 -0700 Subject: [PATCH 13/38] Remove commented out S3 steps --- .forgejo/workflows/draft-release.yaml | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/.forgejo/workflows/draft-release.yaml b/.forgejo/workflows/draft-release.yaml index 152ec69..1ef0a6d 100644 --- a/.forgejo/workflows/draft-release.yaml +++ b/.forgejo/workflows/draft-release.yaml @@ -37,28 +37,6 @@ jobs: - name: Compress files run: zip -r release.zip langs module styles templates README.md assets LICENSE - # - name: Upload archive to s3 - # run: node scripts/uploadToS3.mjs - # env: - # TAG: "v${{steps.version.outputs.version}}" - # FILE: "release.zip" - # S3_BUCKET: "${{vars.S3_BUCKET}}" - # S3_REGION: "${{vars.S3_REGION}}" - # S3_KEY: "${{secrets.S3_KEY}}" - # S3_SECRET: "${{secrets.S3_SECRET}}" - # S3_ENDPOINT: "${{vars.S3_ENDPOINT}}" - - # - name: Upload manifest to s3 - # run: node scripts/uploadToS3.mjs - # env: - # TAG: "v${{steps.version.outputs.version}}" - # FILE: "system.json" - # S3_BUCKET: "${{vars.S3_BUCKET}}" - # S3_REGION: "${{vars.S3_REGION}}" - # S3_KEY: "${{secrets.S3_KEY}}" - # S3_SECRET: "${{secrets.S3_SECRET}}" - # S3_ENDPOINT: "${{vars.S3_ENDPOINT}}" - - name: Create forgejo release run: node scripts/src/createForgejoRelease.mjs env: From f1834f83dc07b4387bafe813706c1aacef95d5cf Mon Sep 17 00:00:00 2001 From: Oliver Date: Thu, 15 Jan 2026 21:31:11 -0700 Subject: [PATCH 14/38] Update scripts and CD in order to include the wiki artifact in the release --- .forgejo/workflows/draft-release.yaml | 25 +++++++++++++++++++++++++ scripts | 2 +- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/.forgejo/workflows/draft-release.yaml b/.forgejo/workflows/draft-release.yaml index 1ef0a6d..713d968 100644 --- a/.forgejo/workflows/draft-release.yaml +++ b/.forgejo/workflows/draft-release.yaml @@ -5,6 +5,8 @@ jobs: create-draft-release: name: "Create Draft Release" runs-on: act + outputs: + version: ${{steps.version.outputs.version}} steps: - name: Checkout code uses: actions/checkout@v4 @@ -42,3 +44,26 @@ jobs: env: TAG: "v${{steps.version.outputs.version}}" CDN_URL: "${{vars.CDN_URL}}" + + wiki-release-artifact: + name: "Add Wiki to Release" + runs-on: act + needs: + - create-draft-release + steps: + - name: "Clone wiki repo" + uses: actions/checkout@v4 + with: + repository: "${{forgejo.repository}}.wiki" + path: "wiki" + + - name: "Remove git folder" + run: "rm -rf wiki/.git" + + - name: "Compress wiki folder" + run: "cd wiki && zip -r wiki.zip **/*" + + - name: "Upload wiki archive" + run: "node scripts/src/addWikiArtifactToRelease.mjs" + env: + TAG: "v${{needs.create-draft-release.outputs.version}}" diff --git a/scripts b/scripts index 61e5891..dbfb368 160000 --- a/scripts +++ b/scripts @@ -1 +1 @@ -Subproject commit 61e589112a6cfcb603ed69792960d952f89b3181 +Subproject commit dbfb3684b9d2f268f2a7ad45f75109899d4c2f45 From 4c2e0e41755f594ab635378399185016920bde1c Mon Sep 17 00:00:00 2001 From: Oliver Date: Thu, 15 Jan 2026 21:34:32 -0700 Subject: [PATCH 15/38] Update scripts reference --- scripts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts b/scripts index dbfb368..cbff616 160000 --- a/scripts +++ b/scripts @@ -1 +1 @@ -Subproject commit dbfb3684b9d2f268f2a7ad45f75109899d4c2f45 +Subproject commit cbff616b5400f0a145d55edbc1812ebee204303f From c61d42f23ed42f53cf1fe09b1a75750e3a739147 Mon Sep 17 00:00:00 2001 From: Oliver Date: Thu, 15 Jan 2026 21:36:26 -0700 Subject: [PATCH 16/38] Update scripts reference --- scripts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts b/scripts index cbff616..24c9071 160000 --- a/scripts +++ b/scripts @@ -1 +1 @@ -Subproject commit cbff616b5400f0a145d55edbc1812ebee204303f +Subproject commit 24c907137c1bcadebcd751f3458c01d3294acf9f From 241a97eb78b6bdd775d60ba50cd0c824853628d5 Mon Sep 17 00:00:00 2001 From: Oliver Date: Thu, 15 Jan 2026 21:55:49 -0700 Subject: [PATCH 17/38] Update scripts reference --- scripts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts b/scripts index 24c9071..c7410e0 160000 --- a/scripts +++ b/scripts @@ -1 +1 @@ -Subproject commit 24c907137c1bcadebcd751f3458c01d3294acf9f +Subproject commit c7410e0c65940da75f2c6b194c75d4fcfd1f0dff From 26432693e8ef1e5729820955c043a10877e6ce96 Mon Sep 17 00:00:00 2001 From: Oliver Date: Thu, 15 Jan 2026 22:07:48 -0700 Subject: [PATCH 18/38] Use the correct ref --- .forgejo/workflows/draft-release.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.forgejo/workflows/draft-release.yaml b/.forgejo/workflows/draft-release.yaml index 713d968..ab321a7 100644 --- a/.forgejo/workflows/draft-release.yaml +++ b/.forgejo/workflows/draft-release.yaml @@ -56,6 +56,8 @@ jobs: with: repository: "${{forgejo.repository}}.wiki" path: "wiki" + ref: "main" + token: ${{forgejo.token}} - name: "Remove git folder" run: "rm -rf wiki/.git" From 2adce057038c493fd3a434ee6ee98b2deb00542f Mon Sep 17 00:00:00 2001 From: Oliver Date: Thu, 15 Jan 2026 22:16:51 -0700 Subject: [PATCH 19/38] Update CD workflow --- .forgejo/workflows/draft-release.yaml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.forgejo/workflows/draft-release.yaml b/.forgejo/workflows/draft-release.yaml index ab321a7..8753d03 100644 --- a/.forgejo/workflows/draft-release.yaml +++ b/.forgejo/workflows/draft-release.yaml @@ -55,15 +55,17 @@ jobs: uses: actions/checkout@v4 with: repository: "${{forgejo.repository}}.wiki" - path: "wiki" ref: "main" token: ${{forgejo.token}} - name: "Remove git folder" - run: "rm -rf wiki/.git" + run: "rm -rf .git" + + - name: "log" + run: "ls" - name: "Compress wiki folder" - run: "cd wiki && zip -r wiki.zip **/*" + run: "cd wiki && zip -r wiki.zip ." - name: "Upload wiki archive" run: "node scripts/src/addWikiArtifactToRelease.mjs" From 6bff0bd5acab5950441f773f83cc9176b9f3bbe5 Mon Sep 17 00:00:00 2001 From: Oliver Date: Thu, 15 Jan 2026 22:24:02 -0700 Subject: [PATCH 20/38] Update wiki release zipping --- .forgejo/workflows/draft-release.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.forgejo/workflows/draft-release.yaml b/.forgejo/workflows/draft-release.yaml index 8753d03..e5eebc1 100644 --- a/.forgejo/workflows/draft-release.yaml +++ b/.forgejo/workflows/draft-release.yaml @@ -58,14 +58,14 @@ jobs: ref: "main" token: ${{forgejo.token}} + - name: "Install dependencies" + run: "npm i" + - name: "Remove git folder" run: "rm -rf .git" - - name: "log" - run: "ls" - - name: "Compress wiki folder" - run: "cd wiki && zip -r wiki.zip ." + run: "zip -r wiki.zip . --exclude .git node_modules" - name: "Upload wiki archive" run: "node scripts/src/addWikiArtifactToRelease.mjs" From bc5e21680ef0ee192df77f09bc8ef0cdc28a58f3 Mon Sep 17 00:00:00 2001 From: Oliver Date: Thu, 15 Jan 2026 22:28:10 -0700 Subject: [PATCH 21/38] Update CD pipeline --- .forgejo/workflows/draft-release.yaml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.forgejo/workflows/draft-release.yaml b/.forgejo/workflows/draft-release.yaml index e5eebc1..f6c77e6 100644 --- a/.forgejo/workflows/draft-release.yaml +++ b/.forgejo/workflows/draft-release.yaml @@ -51,11 +51,17 @@ jobs: needs: - create-draft-release steps: + - name: Checkout main code + uses: actions/checkout@v4 + with: + submodules: true + - name: "Clone wiki repo" uses: actions/checkout@v4 with: repository: "${{forgejo.repository}}.wiki" ref: "main" + path: "wiki" token: ${{forgejo.token}} - name: "Install dependencies" @@ -63,9 +69,11 @@ jobs: - name: "Remove git folder" run: "rm -rf .git" + working-directory: "wiki" - name: "Compress wiki folder" - run: "zip -r wiki.zip . --exclude .git node_modules" + run: "zip -r wiki.zip ." + working-directory: "wiki" - name: "Upload wiki archive" run: "node scripts/src/addWikiArtifactToRelease.mjs" From 1ae598f06fcebac59f5e4d1f21e07e8cc5171e18 Mon Sep 17 00:00:00 2001 From: Oliver Date: Thu, 15 Jan 2026 22:39:15 -0700 Subject: [PATCH 22/38] Comment out most of the action for debugging purposes --- .forgejo/workflows/draft-release.yaml | 100 +++++++++++++------------- 1 file changed, 50 insertions(+), 50 deletions(-) diff --git a/.forgejo/workflows/draft-release.yaml b/.forgejo/workflows/draft-release.yaml index f6c77e6..853e645 100644 --- a/.forgejo/workflows/draft-release.yaml +++ b/.forgejo/workflows/draft-release.yaml @@ -2,60 +2,63 @@ on: [ workflow_dispatch ] env: MANIFEST: "system.json" jobs: - create-draft-release: - name: "Create Draft Release" - runs-on: act - outputs: - version: ${{steps.version.outputs.version}} - steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - submodules: true + # create-draft-release: + # name: "Create Draft Release" + # runs-on: act + # outputs: + # version: ${{steps.version.outputs.version}} + # steps: + # - name: Checkout code + # uses: actions/checkout@v4 + # with: + # submodules: true - - name: Install dependencies - run: npm clean-install + # - name: Install dependencies + # run: npm clean-install - - id: version - run: cat system.json | echo version=`jq -r ".version"` >> "$FORGEJO_OUTPUT" + # - id: version + # run: cat system.json | echo version=`jq -r ".version"` >> "$FORGEJO_OUTPUT" - - name: Assert that the tag doesn't exist - run: node scripts/src/tagExists.mjs - env: - TAG_NAME: "v${{steps.version.outputs.version}}" + # - name: Assert that the tag doesn't exist + # run: node scripts/src/tagExists.mjs + # env: + # TAG_NAME: "v${{steps.version.outputs.version}}" - # Compendia steps - - name: Build compendia - run: "npm run data:build" - - name: Remove compendia source - run: "rm -rf packs/**/_source" + # # Compendia steps + # - name: Build compendia + # run: "npm run data:build" + # - name: Remove compendia source + # run: "rm -rf packs/**/_source" - - name: Update manifest - run: node scripts/src/prepareManifest.mjs - env: - DOWNLOAD_URL: "${{forgejo.server_url}}/${{forgejo.repository}}/releases/download/v${{steps.version.outputs.version}}/release.zip" - LATEST_URL: "${{forgejo.server_url}}/${{forgejo.repository}}/releases/download/latest/system.json" + # - name: Update manifest + # run: node scripts/src/prepareManifest.mjs + # env: + # DOWNLOAD_URL: "${{forgejo.server_url}}/${{forgejo.repository}}/releases/download/v${{steps.version.outputs.version}}/release.zip" + # LATEST_URL: "${{forgejo.server_url}}/${{forgejo.repository}}/releases/download/latest/system.json" - - name: Compress files - run: zip -r release.zip langs module styles templates README.md assets LICENSE + # - name: Compress files + # run: zip -r release.zip langs module styles templates README.md assets LICENSE - - name: Create forgejo release - run: node scripts/src/createForgejoRelease.mjs - env: - TAG: "v${{steps.version.outputs.version}}" - CDN_URL: "${{vars.CDN_URL}}" + # - name: Create forgejo release + # run: node scripts/src/createForgejoRelease.mjs + # env: + # TAG: "v${{steps.version.outputs.version}}" + # CDN_URL: "${{vars.CDN_URL}}" wiki-release-artifact: name: "Add Wiki to Release" runs-on: act - needs: - - create-draft-release + needs: [] + # - create-draft-release steps: - name: Checkout main code uses: actions/checkout@v4 with: submodules: true + # - name: "Install dependencies" + # run: "npm i" + - name: "Clone wiki repo" uses: actions/checkout@v4 with: @@ -64,18 +67,15 @@ jobs: path: "wiki" token: ${{forgejo.token}} - - name: "Install dependencies" - run: "npm i" + # - name: "Remove git folder" + # run: "rm -rf .git" + # working-directory: "wiki" - - name: "Remove git folder" - run: "rm -rf .git" - working-directory: "wiki" + # - name: "Compress wiki folder" + # run: "zip -r wiki.zip ." + # working-directory: "wiki" - - name: "Compress wiki folder" - run: "zip -r wiki.zip ." - working-directory: "wiki" - - - name: "Upload wiki archive" - run: "node scripts/src/addWikiArtifactToRelease.mjs" - env: - TAG: "v${{needs.create-draft-release.outputs.version}}" + # - name: "Upload wiki archive" + # run: "node scripts/src/addWikiArtifactToRelease.mjs" + # env: + # TAG: "v${{needs.create-draft-release.outputs.version}}" From 47c6bba8cba40d1179bac4d7658ee5d9a91ee6f6 Mon Sep 17 00:00:00 2001 From: Oliver Date: Thu, 15 Jan 2026 22:40:35 -0700 Subject: [PATCH 23/38] Add debug command --- .forgejo/workflows/draft-release.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.forgejo/workflows/draft-release.yaml b/.forgejo/workflows/draft-release.yaml index 853e645..3eca984 100644 --- a/.forgejo/workflows/draft-release.yaml +++ b/.forgejo/workflows/draft-release.yaml @@ -67,6 +67,9 @@ jobs: path: "wiki" token: ${{forgejo.token}} + - name: "command" + run: ls + # - name: "Remove git folder" # run: "rm -rf .git" # working-directory: "wiki" From 0a35000118d5ffeb65f134c6e394ff148d36a640 Mon Sep 17 00:00:00 2001 From: Oliver Date: Thu, 15 Jan 2026 22:42:04 -0700 Subject: [PATCH 24/38] Add dependency installation step back in --- .forgejo/workflows/draft-release.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.forgejo/workflows/draft-release.yaml b/.forgejo/workflows/draft-release.yaml index 3eca984..3bf6fc0 100644 --- a/.forgejo/workflows/draft-release.yaml +++ b/.forgejo/workflows/draft-release.yaml @@ -56,9 +56,6 @@ jobs: with: submodules: true - # - name: "Install dependencies" - # run: "npm i" - - name: "Clone wiki repo" uses: actions/checkout@v4 with: @@ -70,6 +67,9 @@ jobs: - name: "command" run: ls + - name: "Install dependencies" + run: "pwd; npm i" + # - name: "Remove git folder" # run: "rm -rf .git" # working-directory: "wiki" From bab175eb24527f76b93c59eccb1d9f4ecc0a62b4 Mon Sep 17 00:00:00 2001 From: Oliver Date: Thu, 15 Jan 2026 22:43:58 -0700 Subject: [PATCH 25/38] Add wiki clean/zip steps back in --- .forgejo/workflows/draft-release.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.forgejo/workflows/draft-release.yaml b/.forgejo/workflows/draft-release.yaml index 3bf6fc0..72e0a44 100644 --- a/.forgejo/workflows/draft-release.yaml +++ b/.forgejo/workflows/draft-release.yaml @@ -65,18 +65,18 @@ jobs: token: ${{forgejo.token}} - name: "command" - run: ls + run: "ls; echo newnewnewnewnewnewnew; cd wiki && ls" - name: "Install dependencies" run: "pwd; npm i" - # - name: "Remove git folder" - # run: "rm -rf .git" - # working-directory: "wiki" + - name: "Remove git folder" + run: "rm -rf .git" + working-directory: "wiki" - # - name: "Compress wiki folder" - # run: "zip -r wiki.zip ." - # working-directory: "wiki" + - name: "Compress wiki folder" + run: "zip -r wiki.zip ." + working-directory: "wiki" # - name: "Upload wiki archive" # run: "node scripts/src/addWikiArtifactToRelease.mjs" From 0f627fee539036688e62980ef48fb28933a1adfa Mon Sep 17 00:00:00 2001 From: Oliver Date: Fri, 16 Jan 2026 16:43:54 -0700 Subject: [PATCH 26/38] Add final upload step back in --- .forgejo/workflows/draft-release.yaml | 84 +++++++++++++-------------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/.forgejo/workflows/draft-release.yaml b/.forgejo/workflows/draft-release.yaml index 72e0a44..ebf6c3d 100644 --- a/.forgejo/workflows/draft-release.yaml +++ b/.forgejo/workflows/draft-release.yaml @@ -2,54 +2,54 @@ on: [ workflow_dispatch ] env: MANIFEST: "system.json" jobs: - # create-draft-release: - # name: "Create Draft Release" - # runs-on: act - # outputs: - # version: ${{steps.version.outputs.version}} - # steps: - # - name: Checkout code - # uses: actions/checkout@v4 - # with: - # submodules: true + create-draft-release: + name: "Create Draft Release" + runs-on: act + outputs: + version: ${{steps.version.outputs.version}} + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + submodules: true - # - name: Install dependencies - # run: npm clean-install + - name: Install dependencies + run: npm clean-install - # - id: version - # run: cat system.json | echo version=`jq -r ".version"` >> "$FORGEJO_OUTPUT" + - id: version + run: cat system.json | echo version=`jq -r ".version"` >> "$FORGEJO_OUTPUT" - # - name: Assert that the tag doesn't exist - # run: node scripts/src/tagExists.mjs - # env: - # TAG_NAME: "v${{steps.version.outputs.version}}" + - name: Assert that the tag doesn't exist + run: node scripts/src/tagExists.mjs + env: + TAG_NAME: "v${{steps.version.outputs.version}}" - # # Compendia steps - # - name: Build compendia - # run: "npm run data:build" - # - name: Remove compendia source - # run: "rm -rf packs/**/_source" + # Compendia steps + - name: Build compendia + run: "npm run data:build" + - name: Remove compendia source + run: "rm -rf packs/**/_source" - # - name: Update manifest - # run: node scripts/src/prepareManifest.mjs - # env: - # DOWNLOAD_URL: "${{forgejo.server_url}}/${{forgejo.repository}}/releases/download/v${{steps.version.outputs.version}}/release.zip" - # LATEST_URL: "${{forgejo.server_url}}/${{forgejo.repository}}/releases/download/latest/system.json" + - name: Update manifest + run: node scripts/src/prepareManifest.mjs + env: + DOWNLOAD_URL: "${{forgejo.server_url}}/${{forgejo.repository}}/releases/download/v${{steps.version.outputs.version}}/release.zip" + LATEST_URL: "${{forgejo.server_url}}/${{forgejo.repository}}/releases/download/latest/system.json" - # - name: Compress files - # run: zip -r release.zip langs module styles templates README.md assets LICENSE + - name: Compress files + run: zip -r release.zip langs module styles templates README.md assets LICENSE - # - name: Create forgejo release - # run: node scripts/src/createForgejoRelease.mjs - # env: - # TAG: "v${{steps.version.outputs.version}}" - # CDN_URL: "${{vars.CDN_URL}}" + - name: Create forgejo release + run: node scripts/src/createForgejoRelease.mjs + env: + TAG: "v${{steps.version.outputs.version}}" + CDN_URL: "${{vars.CDN_URL}}" wiki-release-artifact: name: "Add Wiki to Release" runs-on: act needs: [] - # - create-draft-release + - create-draft-release steps: - name: Checkout main code uses: actions/checkout@v4 @@ -70,15 +70,15 @@ jobs: - name: "Install dependencies" run: "pwd; npm i" - - name: "Remove git folder" - run: "rm -rf .git" + - name: "Remove development folders" + run: "rm -rf .git .vscode" working-directory: "wiki" - name: "Compress wiki folder" run: "zip -r wiki.zip ." working-directory: "wiki" - # - name: "Upload wiki archive" - # run: "node scripts/src/addWikiArtifactToRelease.mjs" - # env: - # TAG: "v${{needs.create-draft-release.outputs.version}}" + - name: "Upload wiki archive" + run: "node scripts/src/addWikiArtifactToRelease.mjs" + env: + TAG: "v${{needs.create-draft-release.outputs.version}}" From c9d8a811532ddcd45dcbb470668ec17397fc733f Mon Sep 17 00:00:00 2001 From: Oliver Date: Fri, 16 Jan 2026 16:45:17 -0700 Subject: [PATCH 27/38] Remove duplicated list --- .forgejo/workflows/draft-release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/draft-release.yaml b/.forgejo/workflows/draft-release.yaml index ebf6c3d..10c4ca5 100644 --- a/.forgejo/workflows/draft-release.yaml +++ b/.forgejo/workflows/draft-release.yaml @@ -48,7 +48,7 @@ jobs: wiki-release-artifact: name: "Add Wiki to Release" runs-on: act - needs: [] + needs: - create-draft-release steps: - name: Checkout main code From fe7fb028bd0cb7ca8cee8e3020c0f565a0dc6c54 Mon Sep 17 00:00:00 2001 From: Oliver Date: Fri, 16 Jan 2026 17:13:07 -0700 Subject: [PATCH 28/38] Add move archive step --- .forgejo/workflows/draft-release.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.forgejo/workflows/draft-release.yaml b/.forgejo/workflows/draft-release.yaml index 10c4ca5..39be84b 100644 --- a/.forgejo/workflows/draft-release.yaml +++ b/.forgejo/workflows/draft-release.yaml @@ -78,6 +78,9 @@ jobs: run: "zip -r wiki.zip ." working-directory: "wiki" + - name: "Move wiki archive to root" + run: "mv wiki/wiki.zip wiki.zip" + - name: "Upload wiki archive" run: "node scripts/src/addWikiArtifactToRelease.mjs" env: From deedda76487c29f6ec00aafb95afdf566adb4ca0 Mon Sep 17 00:00:00 2001 From: Oliver Date: Fri, 16 Jan 2026 17:22:03 -0700 Subject: [PATCH 29/38] Upload the wiki upload to work with the generic asset upload script --- .forgejo/workflows/draft-release.yaml | 9 ++------- scripts | 2 +- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/.forgejo/workflows/draft-release.yaml b/.forgejo/workflows/draft-release.yaml index 39be84b..33c6543 100644 --- a/.forgejo/workflows/draft-release.yaml +++ b/.forgejo/workflows/draft-release.yaml @@ -64,9 +64,6 @@ jobs: path: "wiki" token: ${{forgejo.token}} - - name: "command" - run: "ls; echo newnewnewnewnewnewnew; cd wiki && ls" - - name: "Install dependencies" run: "pwd; npm i" @@ -78,10 +75,8 @@ jobs: run: "zip -r wiki.zip ." working-directory: "wiki" - - name: "Move wiki archive to root" - run: "mv wiki/wiki.zip wiki.zip" - - name: "Upload wiki archive" - run: "node scripts/src/addWikiArtifactToRelease.mjs" + run: "node scripts/src/uploadReleaseAsset.mjs" env: + ASSET: "wiki/wiki.zip" TAG: "v${{needs.create-draft-release.outputs.version}}" diff --git a/scripts b/scripts index c7410e0..edfb087 160000 --- a/scripts +++ b/scripts @@ -1 +1 @@ -Subproject commit c7410e0c65940da75f2c6b194c75d4fcfd1f0dff +Subproject commit edfb087341d74e5fb1398d3833e3d4c8261d215b From 116eb216d07096e334e8756e2a8bcd7f54d96709 Mon Sep 17 00:00:00 2001 From: Oliver Date: Tue, 20 Jan 2026 23:16:45 -0700 Subject: [PATCH 30/38] Allow the Combat tracker to roll intiative using a custom formula --- langs/en-ca.json | 4 ++++ module/documents/Combatant.mjs | 9 +++++++++ module/hooks/init.mjs | 2 ++ module/settings/world.mjs | 10 ++++++++++ 4 files changed, 25 insertions(+) create mode 100644 module/documents/Combatant.mjs diff --git a/langs/en-ca.json b/langs/en-ca.json index 14b5d33..4df34e0 100644 --- a/langs/en-ca.json +++ b/langs/en-ca.json @@ -10,6 +10,10 @@ "name": "Players Can Manage Attributes", "hint": "This allows players who have edit access to a document to be able to edit what attributes those characters have via the attribute editor" }, + "initiativeFormula": { + "name": "Initiative Formula", + "hint": "The dice formula used for initiative, this can reference attributes on the actor. If the actor doesn't have the attribute it will be interpreted as 0." + }, "sheetDefaultHeight": { "name": "Default Actor Sheet Height", "hint": "The height that all actor sheets will open at unless overwridden for that sheet specifically. This setting will not affect already opened sheets." diff --git a/module/documents/Combatant.mjs b/module/documents/Combatant.mjs new file mode 100644 index 0000000..846b782 --- /dev/null +++ b/module/documents/Combatant.mjs @@ -0,0 +1,9 @@ +import { __ID__ } from "../consts.mjs"; + +const { Combatant } = foundry.documents; + +export class TAFCombatant extends Combatant { + _getInitiativeFormula() { + return game.settings.get(__ID__, `initiativeFormula`); + }; +}; diff --git a/module/hooks/init.mjs b/module/hooks/init.mjs index 9bdfc34..c225bd2 100644 --- a/module/hooks/init.mjs +++ b/module/hooks/init.mjs @@ -7,6 +7,7 @@ import { PlayerData } from "../data/Player.mjs"; // Documents import { TAFActor } from "../documents/Actor.mjs"; +import { TAFCombatant } from "../documents/Combatant.mjs"; import { TAFItem } from "../documents/Item.mjs"; import { TAFTokenDocument } from "../documents/Token.mjs"; @@ -25,6 +26,7 @@ Hooks.on(`init`, () => { CONFIG.Token.documentClass = TAFTokenDocument; CONFIG.Actor.documentClass = TAFActor; + CONFIG.Combatant.documentClass = TAFCombatant; CONFIG.Actor.dataModels.player = PlayerData; diff --git a/module/settings/world.mjs b/module/settings/world.mjs index 705ed22..a351c37 100644 --- a/module/settings/world.mjs +++ b/module/settings/world.mjs @@ -3,6 +3,16 @@ import { __ID__ } from "../consts.mjs"; const { NumberField, StringField } = foundry.data.fields; export function registerWorldSettings() { + + game.settings.register(__ID__, `initiativeFormula`, { + name: `taf.settings.initiativeFormula.name`, + hint: `taf.settings.initiativeFormula.hint`, + config: true, + type: String, + default: `1d20`, + scope: `world`, + }); + game.settings.register(__ID__, `canPlayersManageAttributes`, { name: `taf.settings.canPlayersManageAttributes.name`, hint: `taf.settings.canPlayersManageAttributes.hint`, From 357af820bf57b9d6f10c699cbfef18127bcd8c13 Mon Sep 17 00:00:00 2001 From: Oliver Date: Wed, 21 Jan 2026 15:17:55 -0700 Subject: [PATCH 31/38] Update scripts pointer --- scripts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts b/scripts index edfb087..06fb33b 160000 --- a/scripts +++ b/scripts @@ -1 +1 @@ -Subproject commit edfb087341d74e5fb1398d3833e3d4c8261d215b +Subproject commit 06fb33b35ff446dee613afe271b6fe2ff976735a From 9f6c117c84f943e201692a3ac3d739e816e7f074 Mon Sep 17 00:00:00 2001 From: Oliver Date: Wed, 21 Jan 2026 15:27:12 -0700 Subject: [PATCH 32/38] Fully localize the Ask app where possible --- langs/en-ca.json | 8 +++++++- module/apps/Ask.mjs | 8 ++++++-- templates/Ask/controls.hbs | 4 ++-- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/langs/en-ca.json b/langs/en-ca.json index 14b5d33..82a7438 100644 --- a/langs/en-ca.json +++ b/langs/en-ca.json @@ -36,9 +36,15 @@ "Key": "Key", "Value": "Value", "no-data-submitted": "No data submitted", - "data-query-notif-header": "Data Query Notification" + "data-query-notif-header": "Data Query Notification", + "cancel": "Cancel", + "confirm-and-close": "Confirm and Close" }, "Apps": { + "Ask": { + "title": "Questions", + "invalid-input-type": "Invalid input type provided: {type}" + }, "QueryStatus": { "title": "Information Request Status", "user-disconnected-tooltip": "This user is not logged in to Foundry", diff --git a/module/apps/Ask.mjs b/module/apps/Ask.mjs index e6d3ce4..1ad0c64 100644 --- a/module/apps/Ask.mjs +++ b/module/apps/Ask.mjs @@ -1,4 +1,5 @@ import { __ID__, filePath } from "../consts.mjs"; +import { localizer } from "../utils/localizer.mjs"; const { HandlebarsApplicationMixin, ApplicationV2 } = foundry.applications.api; @@ -24,7 +25,7 @@ export class Ask extends HandlebarsApplicationMixin(ApplicationV2) { width: 330, }, window: { - title: `Questions`, + title: `taf.Apps.Ask.title`, resizable: true, minimizable: true, contentTag: `form`, @@ -80,7 +81,10 @@ export class Ask extends HandlebarsApplicationMixin(ApplicationV2) { for (const input of inputs) { if (!validInputTypes.includes(input.type)) { - input.details = `Invalid input type provided: ${input.type}`; + input.details = localizer( + `taf.Apps.Ask.invalid-input-type`, + { type: input.type }, + ); input.type = `error`; }; }; diff --git a/templates/Ask/controls.hbs b/templates/Ask/controls.hbs index a619549..f354689 100644 --- a/templates/Ask/controls.hbs +++ b/templates/Ask/controls.hbs @@ -3,11 +3,11 @@ type="button" data-action="cancel" > - Cancel + {{localize "taf.misc.cancel"}} From 3819db1ce49d6c1baa47384ce002a68471e1bebd Mon Sep 17 00:00:00 2001 From: Oliver Date: Wed, 21 Jan 2026 15:39:23 -0700 Subject: [PATCH 33/38] Fully localize the Attribute Manager app --- langs/en-ca.json | 11 ++++++++++- module/apps/AttributeManager.mjs | 7 +++++-- templates/AttributeManager/attribute-list.hbs | 10 ++++++---- templates/AttributeManager/controls.hbs | 4 ++-- 4 files changed, 23 insertions(+), 9 deletions(-) diff --git a/langs/en-ca.json b/langs/en-ca.json index 82a7438..b768f0e 100644 --- a/langs/en-ca.json +++ b/langs/en-ca.json @@ -38,13 +38,22 @@ "no-data-submitted": "No data submitted", "data-query-notif-header": "Data Query Notification", "cancel": "Cancel", - "confirm-and-close": "Confirm and Close" + "confirm-and-close": "Confirm and Close", + "save-and-close": "Save and Close", + "delete": "Delete" }, "Apps": { "Ask": { "title": "Questions", "invalid-input-type": "Invalid input type provided: {type}" }, + "AttributeManager": { + "title": "Attributes: {name}", + "has-max": "Has Maximum?", + "name-placeholder": "Attribute Name...", + "no-attributes": "No attributes yet", + "add-new-attribute": "Add New Attribute" + }, "QueryStatus": { "title": "Information Request Status", "user-disconnected-tooltip": "This user is not logged in to Foundry", diff --git a/module/apps/AttributeManager.mjs b/module/apps/AttributeManager.mjs index c81bb1a..5e92b25 100644 --- a/module/apps/AttributeManager.mjs +++ b/module/apps/AttributeManager.mjs @@ -1,5 +1,6 @@ import { __ID__, filePath } from "../consts.mjs"; import { attributeSorter } from "../utils/attributeSort.mjs"; +import { localizer } from "../utils/localizer.mjs"; import { toID } from "../utils/toID.mjs"; const { HandlebarsApplicationMixin, ApplicationV2 } = foundry.applications.api; @@ -52,7 +53,10 @@ export class AttributeManager extends HandlebarsApplicationMixin(ApplicationV2) }; get title() { - return `Attributes: ${this.#doc.name}`; + return localizer( + `taf.Apps.AttributeManager.title`, + this.#doc, + ); }; // #endregion Instance Data @@ -102,7 +106,6 @@ export class AttributeManager extends HandlebarsApplicationMixin(ApplicationV2) attrs.push({ id, name: data.name, - displayName: data.isNew ? `New Attribute` : data.name, sort: data.sort, isRange: data.isRange, isNew: data.isNew ?? false, diff --git a/templates/AttributeManager/attribute-list.hbs b/templates/AttributeManager/attribute-list.hbs index 5899acb..b6ea745 100644 --- a/templates/AttributeManager/attribute-list.hbs +++ b/templates/AttributeManager/attribute-list.hbs @@ -15,13 +15,13 @@ type="text" data-bind="{{ attr.id }}.name" value="{{ attr.name }}" - placeholder="Attribute Name..." + placeholder="{{localize "taf.Apps.AttributeManager.name-placeholder"}}" > {{else}} {{ attr.name }} {{/if}}