Compare commits

..

No commits in common. "1bfa2a85c98d63d68993ca579b398ab41c9700cf" and "35c1bad51f474f0d75ead5a43209e1e178f8403f" have entirely different histories.

18 changed files with 269 additions and 281 deletions

View file

@ -1,7 +1,9 @@
name: deploy
on:
workflow_dispatch:
push:
branches:
- main
permissions:
contents: read

View file

@ -63,8 +63,7 @@ npx cdk deploy sh-mcp-auth \
```
CI runs `npx cdk synth` at the repo root on every PR (the `ci-typescript-cdk` reusable workflow with
`run-cdk-synth: true`); deploys are triggered manually (Actions → deploy → Run workflow on
`main`, i.e. `workflow_dispatch`) via the `cd-cdk` reusable workflow over the
`run-cdk-synth: true`); merges to `main` deploy via the `cd-cdk` reusable workflow over the
per-repo `githubdeploy-sh-mcp` OIDC role. **Nothing is deployed to AWS yet** — see status above.
## Auth substrate (Phase 2a — `infra/` + `auth/`)

View file

@ -14,14 +14,14 @@
"test:coverage": "vitest run --coverage"
},
"dependencies": {
"jose": "^6.2.4"
"jose": "^6.2.3"
},
"devDependencies": {
"@aws-sdk/client-cognito-identity-provider": "^3.1096.0",
"@aws-sdk/client-dynamodb": "^3.1096.0",
"@aws-sdk/client-secrets-manager": "^3.1096.0",
"@aws-sdk/lib-dynamodb": "^3.1096.0",
"@types/node": "^26.1.2",
"@aws-sdk/client-cognito-identity-provider": "^3.1092.0",
"@aws-sdk/client-dynamodb": "^3.1092.0",
"@aws-sdk/client-secrets-manager": "^3.1092.0",
"@aws-sdk/lib-dynamodb": "^3.1092.0",
"@types/node": "^26.1.1",
"@vitest/coverage-v8": "4.1.10",
"typescript": "^6.0.3",
"vitest": "4.1.10"

View file

@ -14,9 +14,9 @@
"test:coverage": "vitest run --coverage"
},
"devDependencies": {
"@aws-sdk/client-dynamodb": "^3.1096.0",
"@aws-sdk/lib-dynamodb": "^3.1096.0",
"@types/node": "^26.1.2",
"@aws-sdk/client-dynamodb": "^3.1092.0",
"@aws-sdk/lib-dynamodb": "^3.1092.0",
"@types/node": "^26.1.1",
"@vitest/coverage-v8": "4.1.10",
"typescript": "^6.0.3",
"vitest": "4.1.10"

View file

@ -11,11 +11,11 @@ validated."
- **Toolchain:** aws-cdk `2.1128.1` (CLI, root devDep), aws-cdk-lib `2.260.0`, constructs `10.6.0`.
> **CD is already wired and currently red.** `.github/workflows/deploy.yaml`
> (manual `workflow_dispatch` → org reusable `cd-cdk.yaml@main`, OIDC) has failed
> on every run so far (~4s) because the `githubdeploy-sh-mcp` deploy role does not
> exist yet (Prereq 4). Once the prerequisites below are in place, CD is triggered
> manually via the Actions "Run workflow" button on `main`; the first deploy is
> done **manually** (Step 2) so a human watches the initial resource creation.
> (push-to-`main` → org reusable `cd-cdk.yaml@main`, OIDC) has failed on every
> merge so far (~4s) because the `githubdeploy-sh-mcp` deploy role does not exist
> yet (Prereq 4). Once the prerequisites below are in place, CD deploys on the
> next push to `main`; the first deploy is done **manually** (Step 2) so a human
> watches the initial resource creation.
---
@ -162,13 +162,12 @@ grants). Note the stack outputs (exported for 2b cross-stack import):
## Step 3 — hand off to CD
After the manual first deploy succeeds and Prereq 4 is in place, deploys are
triggered manually via `.github/workflows/deploy.yaml` (Actions → deploy → Run
workflow on `main`, i.e. `workflow_dispatch`). Re-run the last failed deploy
After the manual first deploy succeeds and Prereq 4 is in place, every push to
`main` deploys via `.github/workflows/deploy.yaml`. Re-run the last failed deploy
to confirm it now goes green:
```bash
gh workflow run deploy.yaml --ref main
gh workflow run deploy.yaml --ref main # or push any commit to main
gh run watch $(gh run list --workflow=deploy.yaml --limit 1 --json databaseId --jq '.[0].databaseId')
```
@ -222,8 +221,7 @@ aws dynamodb delete-item --table-name sh-mcp-deny-list --region us-east-1 \
a later redeploy re-adopts them). Delete the tables manually only if you intend
to lose revocation/freshness state.
- A bad deploy rolls back automatically (CloudFormation). To revert code, revert
the commit on `main`, then run the deploy workflow manually (Actions → deploy →
Run workflow) to redeploy the prior template.
the commit on `main`; CD redeploys the prior template.
- **0a spike teardown is the LAST step, not part of this deploy.** The live 0a
spike kit (Cognito pool `us-east-1_GsDbGe0pa`, probe Lambda/API, the SF
`sh_mcp_0a` objects) stays up until `sh-mcp-auth` is deployed **and validated**

View file

@ -12,8 +12,8 @@
},
"devDependencies": {
"@types/node": "^26.1.0",
"aws-cdk": "2.1133.0",
"aws-cdk-lib": "2.262.1",
"aws-cdk": "2.1132.0",
"aws-cdk-lib": "2.261.0",
"constructs": "10.7.1",
"tsx": "4.23.1",
"typescript": "^7.0.2",

465
package-lock.json generated
View file

@ -15,14 +15,14 @@
"auth/*"
],
"devDependencies": {
"@types/node": "26.1.2",
"@types/node": "26.1.1",
"@typescript-eslint/eslint-plugin": "8.65.0",
"@typescript-eslint/parser": "8.65.0",
"@vitest/coverage-v8": "4.1.10",
"aws-cdk": "2.1133.0",
"aws-cdk-lib": "2.262.1",
"aws-cdk": "2.1132.0",
"aws-cdk-lib": "2.261.0",
"constructs": "10.7.1",
"eslint": "10.8.0",
"eslint": "10.7.0",
"prettier": "3.9.6",
"tsx": "4.23.1",
"typescript": "6.0.3",
@ -36,14 +36,14 @@
"name": "@sh-mcp/auth-group-sync",
"version": "0.1.0",
"dependencies": {
"jose": "^6.2.4"
"jose": "^6.2.3"
},
"devDependencies": {
"@aws-sdk/client-cognito-identity-provider": "^3.1096.0",
"@aws-sdk/client-dynamodb": "^3.1096.0",
"@aws-sdk/client-secrets-manager": "^3.1096.0",
"@aws-sdk/lib-dynamodb": "^3.1096.0",
"@types/node": "^26.1.2",
"@aws-sdk/client-cognito-identity-provider": "^3.1092.0",
"@aws-sdk/client-dynamodb": "^3.1092.0",
"@aws-sdk/client-secrets-manager": "^3.1092.0",
"@aws-sdk/lib-dynamodb": "^3.1092.0",
"@types/node": "^26.1.1",
"@vitest/coverage-v8": "4.1.10",
"typescript": "^6.0.3",
"vitest": "4.1.10"
@ -56,9 +56,9 @@
"name": "@sh-mcp/auth-pre-token-gen",
"version": "0.1.0",
"devDependencies": {
"@aws-sdk/client-dynamodb": "^3.1096.0",
"@aws-sdk/lib-dynamodb": "^3.1096.0",
"@types/node": "^26.1.2",
"@aws-sdk/client-dynamodb": "^3.1092.0",
"@aws-sdk/lib-dynamodb": "^3.1092.0",
"@types/node": "^26.1.1",
"@vitest/coverage-v8": "4.1.10",
"typescript": "^6.0.3",
"vitest": "4.1.10"
@ -82,9 +82,9 @@
"license": "Apache-2.0"
},
"node_modules/@aws-cdk/cloud-assembly-schema": {
"version": "54.14.0",
"resolved": "https://registry.npmjs.org/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-54.14.0.tgz",
"integrity": "sha512-JCZCzgp3SuXQVljaKqXnttHzcezEHt9Ag/YipK0XwUFD+Iz2T4jY7gUc3pA25Uq6pzY2n9DvO/nEU++dPXW4Rw==",
"version": "54.5.0",
"resolved": "https://registry.npmjs.org/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-54.5.0.tgz",
"integrity": "sha512-X37oRfMQYO/wXBBDotbW8msJ6AgrcMio/W6TpDR/9To9TUWld1KtY/jveHpU58nZyLVPTYEhDgFP548w3JJGsQ==",
"bundleDependencies": [
"jsonschema",
"semver"
@ -93,7 +93,7 @@
"license": "Apache-2.0",
"dependencies": {
"jsonschema": "^1.5.0",
"semver": "^7.8.5"
"semver": "^7.8.4"
},
"engines": {
"node": ">= 18.0.0"
@ -109,7 +109,7 @@
}
},
"node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver": {
"version": "7.8.5",
"version": "7.8.4",
"dev": true,
"inBundle": true,
"license": "ISC",
@ -121,18 +121,18 @@
}
},
"node_modules/@aws-sdk/client-cognito-identity-provider": {
"version": "3.1096.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity-provider/-/client-cognito-identity-provider-3.1096.0.tgz",
"integrity": "sha512-JU1Q8X5lF9aGMoLnxPghqpEeJ4powqo+Y1xaqtPBvS5SDnxjZSzrYyC6MN8smoiD6O4/mo6kEGySH+MhNR18CA==",
"version": "3.1092.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity-provider/-/client-cognito-identity-provider-3.1092.0.tgz",
"integrity": "sha512-wM5rew1mOZAT61Pj3cLDEE+5W2Cq56FdlheqzVW4m8frFD/JtDWuaSgoGHWP833qxJ3Y/8eyqVRoP+uZFaaunw==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-sdk/core": "^3.977.1",
"@aws-sdk/credential-provider-node": "^3.972.73",
"@aws-sdk/core": "^3.976.0",
"@aws-sdk/credential-provider-node": "^3.972.71",
"@aws-sdk/types": "^3.974.2",
"@smithy/core": "^3.29.8",
"@smithy/fetch-http-handler": "^5.6.10",
"@smithy/node-http-handler": "^4.9.10",
"@smithy/core": "^3.29.4",
"@smithy/fetch-http-handler": "^5.6.6",
"@smithy/node-http-handler": "^4.9.6",
"@smithy/types": "^4.16.1",
"tslib": "^2.6.2"
},
@ -141,20 +141,20 @@
}
},
"node_modules/@aws-sdk/client-dynamodb": {
"version": "3.1096.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/client-dynamodb/-/client-dynamodb-3.1096.0.tgz",
"integrity": "sha512-MECHramebCF5ThSH+hNFKeZBwrT2k1w3Vhn7tVGG1UYEgZZSDeP1okNN2rIzCXaGuACHDa+EyqksAfJAqLj7Xw==",
"version": "3.1092.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/client-dynamodb/-/client-dynamodb-3.1092.0.tgz",
"integrity": "sha512-4aSTSu5VaTe6YlyMrSbRE49Cd4v54kP57NmzU0H00dxBniNbeN5ZdjmKoBN8bWmS4DAQfiqFUXZIHup6Boa/xQ==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-sdk/core": "^3.977.1",
"@aws-sdk/credential-provider-node": "^3.972.73",
"@aws-sdk/dynamodb-codec": "^3.973.36",
"@aws-sdk/middleware-endpoint-discovery": "^3.972.26",
"@aws-sdk/core": "^3.976.0",
"@aws-sdk/credential-provider-node": "^3.972.71",
"@aws-sdk/dynamodb-codec": "^3.973.34",
"@aws-sdk/middleware-endpoint-discovery": "^3.972.25",
"@aws-sdk/types": "^3.974.2",
"@smithy/core": "^3.29.8",
"@smithy/fetch-http-handler": "^5.6.10",
"@smithy/node-http-handler": "^4.9.10",
"@smithy/core": "^3.29.4",
"@smithy/fetch-http-handler": "^5.6.6",
"@smithy/node-http-handler": "^4.9.6",
"@smithy/types": "^4.16.1",
"tslib": "^2.6.2"
},
@ -163,18 +163,18 @@
}
},
"node_modules/@aws-sdk/client-secrets-manager": {
"version": "3.1096.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.1096.0.tgz",
"integrity": "sha512-6BAVBOjYOUtDlb6bbCG5Yb/Ny4FGhVuOe5dmdwlrrpjmeQw83qH2D6w7njBwRc0V8FAMoLhJyHjEfzvsm7L9vg==",
"version": "3.1092.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.1092.0.tgz",
"integrity": "sha512-DiUnsmpt8ypPoakaVJ3VAgd3NnwMUdw3jgSizrD0H/SfjJkhBxClIyy9aA68D81s7QBDvh4fdV9ecJi5Xq0NHQ==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-sdk/core": "^3.977.1",
"@aws-sdk/credential-provider-node": "^3.972.73",
"@aws-sdk/core": "^3.976.0",
"@aws-sdk/credential-provider-node": "^3.972.71",
"@aws-sdk/types": "^3.974.2",
"@smithy/core": "^3.29.8",
"@smithy/fetch-http-handler": "^5.6.10",
"@smithy/node-http-handler": "^4.9.10",
"@smithy/core": "^3.29.4",
"@smithy/fetch-http-handler": "^5.6.6",
"@smithy/node-http-handler": "^4.9.6",
"@smithy/types": "^4.16.1",
"tslib": "^2.6.2"
},
@ -183,17 +183,17 @@
}
},
"node_modules/@aws-sdk/core": {
"version": "3.977.1",
"resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.977.1.tgz",
"integrity": "sha512-KVtQRtc00ES/y+Sc3vYXeP6pCIcNlBJCZOwvqSy8ZpVGmbM5+IG+AfhuTKQ2oXmIVqZJewaGMMpzPkywC6xg0w==",
"version": "3.976.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.976.0.tgz",
"integrity": "sha512-0cjRaEdlVoOrsNb9pP5q1Syyc8pXw5xSj2Np2ryReRTr9FppIIRVSdZK4lbnfmc2Hvgux/xBOUU6baB7z8//uA==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-sdk/types": "^3.974.2",
"@aws-sdk/xml-builder": "^3.972.37",
"@aws-sdk/xml-builder": "^3.972.36",
"@aws/lambda-invoke-store": "^0.3.0",
"@smithy/core": "^3.29.8",
"@smithy/signature-v4": "^5.6.9",
"@smithy/core": "^3.29.4",
"@smithy/signature-v4": "^5.6.5",
"@smithy/types": "^4.16.1",
"bowser": "^2.11.0",
"tslib": "^2.6.2"
@ -203,15 +203,15 @@
}
},
"node_modules/@aws-sdk/credential-provider-env": {
"version": "3.972.62",
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.62.tgz",
"integrity": "sha512-BkDrk2cNjed31IKin/Oksb2ziF+gfuyRskFVuT4EU9Mep7M8Y/d8DJG4+anHme4Vuse7CwaEscwEfGyR6mzBhQ==",
"version": "3.972.60",
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.60.tgz",
"integrity": "sha512-BAkxdoe7tpDDqCghGpuOeHQRbm/2znVvOQm0AvpQbA2tbfMN46doN4zx65fv85ImP3KADwc2zQPmbrlI9MPfMg==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-sdk/core": "^3.977.1",
"@aws-sdk/core": "^3.976.0",
"@aws-sdk/types": "^3.974.2",
"@smithy/core": "^3.29.8",
"@smithy/core": "^3.29.4",
"@smithy/types": "^4.16.1",
"tslib": "^2.6.2"
},
@ -220,17 +220,17 @@
}
},
"node_modules/@aws-sdk/credential-provider-http": {
"version": "3.972.64",
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.64.tgz",
"integrity": "sha512-Wj1FGK2IxY5EccQCvH+niTYhIvDoDujJf2CpRRgS3NpYNEgiFNVItNbJYQjINRlu7fG7jSsXkKV0UWKriEplrw==",
"version": "3.972.62",
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.62.tgz",
"integrity": "sha512-g/0fGqKTb9xpKdd9AtpmV5Eo3DFKbnkpA2+w0peISSlu7NfAoWOuYBFxsu+yWBtxU89ka55ezoZBCbFaS8pjYQ==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-sdk/core": "^3.977.1",
"@aws-sdk/core": "^3.976.0",
"@aws-sdk/types": "^3.974.2",
"@smithy/core": "^3.29.8",
"@smithy/fetch-http-handler": "^5.6.10",
"@smithy/node-http-handler": "^4.9.10",
"@smithy/core": "^3.29.4",
"@smithy/fetch-http-handler": "^5.6.6",
"@smithy/node-http-handler": "^4.9.6",
"@smithy/types": "^4.16.1",
"tslib": "^2.6.2"
},
@ -239,23 +239,23 @@
}
},
"node_modules/@aws-sdk/credential-provider-ini": {
"version": "3.973.7",
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.973.7.tgz",
"integrity": "sha512-2CefB8cCxDu52P24B8Ay93/cTT199bcSvNHQ8e2f4BjSCF83yErBnTIZEBo0VeIgCfmw+PJKFUXnlQWxm2dkug==",
"version": "3.973.5",
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.973.5.tgz",
"integrity": "sha512-ylubazcRfq2TVus/qXucSXeC42Qdjp5HQxTu68K/BsdMiZlcSLD1zkpoCgApXZX1Y6YJhtGGs7ZHhO/GuIgBlw==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-sdk/core": "^3.977.1",
"@aws-sdk/credential-provider-env": "^3.972.62",
"@aws-sdk/credential-provider-http": "^3.972.64",
"@aws-sdk/credential-provider-login": "^3.972.69",
"@aws-sdk/credential-provider-process": "^3.972.62",
"@aws-sdk/credential-provider-sso": "^3.973.6",
"@aws-sdk/credential-provider-web-identity": "^3.972.68",
"@aws-sdk/nested-clients": "^3.997.36",
"@aws-sdk/core": "^3.976.0",
"@aws-sdk/credential-provider-env": "^3.972.60",
"@aws-sdk/credential-provider-http": "^3.972.62",
"@aws-sdk/credential-provider-login": "^3.972.67",
"@aws-sdk/credential-provider-process": "^3.972.60",
"@aws-sdk/credential-provider-sso": "^3.973.4",
"@aws-sdk/credential-provider-web-identity": "^3.972.66",
"@aws-sdk/nested-clients": "^3.997.34",
"@aws-sdk/types": "^3.974.2",
"@smithy/core": "^3.29.8",
"@smithy/credential-provider-imds": "^4.4.13",
"@smithy/core": "^3.29.4",
"@smithy/credential-provider-imds": "^4.4.9",
"@smithy/types": "^4.16.1",
"tslib": "^2.6.2"
},
@ -264,16 +264,16 @@
}
},
"node_modules/@aws-sdk/credential-provider-login": {
"version": "3.972.69",
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.69.tgz",
"integrity": "sha512-gM3j0Ie9+FoLNTYODY+QWbg3vCRBc7mR9cRdntxTMkFYIrwfRmuucfavP6HNBlYSuaYww54TNJGej4GFgoPZAg==",
"version": "3.972.67",
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.67.tgz",
"integrity": "sha512-CCygIKJ9YbI3n84OClSaSppkgKKHVj2TGT33c6FRORZrYNZQ1POmD+ip0FLYokiJAK7sSdc3YVkOsBm90oxWMQ==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-sdk/core": "^3.977.1",
"@aws-sdk/nested-clients": "^3.997.36",
"@aws-sdk/core": "^3.976.0",
"@aws-sdk/nested-clients": "^3.997.34",
"@aws-sdk/types": "^3.974.2",
"@smithy/core": "^3.29.8",
"@smithy/core": "^3.29.4",
"@smithy/types": "^4.16.1",
"tslib": "^2.6.2"
},
@ -282,21 +282,21 @@
}
},
"node_modules/@aws-sdk/credential-provider-node": {
"version": "3.972.73",
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.73.tgz",
"integrity": "sha512-VTzdbf8Ukjdb9yUubZzRI678CWZvKovhE8Nv3qihwhC187sRMGls+r9N8Wuht5q1xjKx2nmpS48ar8ppupjkCA==",
"version": "3.972.71",
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.71.tgz",
"integrity": "sha512-HIg7Q2osBzajQwL+1Vkyh2E7Gim3eTNb9RHIsOxDGjW0eZg4oEKtRs5sioCnc73ilhaOm4gX2lHVF8J7+nt2rg==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-sdk/credential-provider-env": "^3.972.62",
"@aws-sdk/credential-provider-http": "^3.972.64",
"@aws-sdk/credential-provider-ini": "^3.973.7",
"@aws-sdk/credential-provider-process": "^3.972.62",
"@aws-sdk/credential-provider-sso": "^3.973.6",
"@aws-sdk/credential-provider-web-identity": "^3.972.68",
"@aws-sdk/credential-provider-env": "^3.972.60",
"@aws-sdk/credential-provider-http": "^3.972.62",
"@aws-sdk/credential-provider-ini": "^3.973.5",
"@aws-sdk/credential-provider-process": "^3.972.60",
"@aws-sdk/credential-provider-sso": "^3.973.4",
"@aws-sdk/credential-provider-web-identity": "^3.972.66",
"@aws-sdk/types": "^3.974.2",
"@smithy/core": "^3.29.8",
"@smithy/credential-provider-imds": "^4.4.13",
"@smithy/core": "^3.29.4",
"@smithy/credential-provider-imds": "^4.4.9",
"@smithy/types": "^4.16.1",
"tslib": "^2.6.2"
},
@ -305,15 +305,15 @@
}
},
"node_modules/@aws-sdk/credential-provider-process": {
"version": "3.972.62",
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.62.tgz",
"integrity": "sha512-zXYU9UWNL66gtMgNLhmxlrvEokuI7r6G2q7FRGu41Bya4iS30JLelUipJX9SV4zhyCPWJhI9Li54R1d9H8Tq6A==",
"version": "3.972.60",
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.60.tgz",
"integrity": "sha512-YIo3f99hM43QdYG8hDzwGemnR/pU95b0kramqSJUTleCqaB7+HwKf7YZFHqvOgTqZTPx/mRmNIqoDRr3U0Z3Tw==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-sdk/core": "^3.977.1",
"@aws-sdk/core": "^3.976.0",
"@aws-sdk/types": "^3.974.2",
"@smithy/core": "^3.29.8",
"@smithy/core": "^3.29.4",
"@smithy/types": "^4.16.1",
"tslib": "^2.6.2"
},
@ -322,17 +322,17 @@
}
},
"node_modules/@aws-sdk/credential-provider-sso": {
"version": "3.973.6",
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.973.6.tgz",
"integrity": "sha512-DobZggy3K49xdCpjeyMou0FQhkoYbluVGNydL6D+lcxF8GoAsttFX0xnH5GmiQ89We5dB6TRpW+CD/VowBH6HQ==",
"version": "3.973.4",
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.973.4.tgz",
"integrity": "sha512-BPdmL8sSBOCv4ngZ+3LHxyc3CNqDCEK37CHioCk7zGrTMY5sUtkH8q+o6qA80nn6w3/fyBPGNE7OIRlmoOxRQA==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-sdk/core": "^3.977.1",
"@aws-sdk/nested-clients": "^3.997.36",
"@aws-sdk/token-providers": "3.1096.0",
"@aws-sdk/core": "^3.976.0",
"@aws-sdk/nested-clients": "^3.997.34",
"@aws-sdk/token-providers": "3.1092.0",
"@aws-sdk/types": "^3.974.2",
"@smithy/core": "^3.29.8",
"@smithy/core": "^3.29.4",
"@smithy/types": "^4.16.1",
"tslib": "^2.6.2"
},
@ -341,16 +341,16 @@
}
},
"node_modules/@aws-sdk/credential-provider-web-identity": {
"version": "3.972.68",
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.68.tgz",
"integrity": "sha512-bq+yTt+uWJx60VVp/OIAX5xqUAu/K2Uc3eknWnWl+KtfcU2CQe0uNw6lySrn2t5GKHq7jsV0Z63HiBGVtzr/lg==",
"version": "3.972.66",
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.66.tgz",
"integrity": "sha512-kSAziJboOmZmsR9/MTbiNjowl2BPes1bQuJpne4qAZ62ubi8fjfr/aupJSQje6udBoYxXTQbsL0e0kby2la3ng==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-sdk/core": "^3.977.1",
"@aws-sdk/nested-clients": "^3.997.36",
"@aws-sdk/core": "^3.976.0",
"@aws-sdk/nested-clients": "^3.997.34",
"@aws-sdk/types": "^3.974.2",
"@smithy/core": "^3.29.8",
"@smithy/core": "^3.29.4",
"@smithy/types": "^4.16.1",
"tslib": "^2.6.2"
},
@ -359,14 +359,14 @@
}
},
"node_modules/@aws-sdk/dynamodb-codec": {
"version": "3.973.36",
"resolved": "https://registry.npmjs.org/@aws-sdk/dynamodb-codec/-/dynamodb-codec-3.973.36.tgz",
"integrity": "sha512-CzSjdIF8ZqSad5wUaqJbHZ8sF7tOKRHZJYoOG95J54n+OpE/ByrWm7mUP8wvNdnu99eZkSCA2cPFIci834SJBg==",
"version": "3.973.34",
"resolved": "https://registry.npmjs.org/@aws-sdk/dynamodb-codec/-/dynamodb-codec-3.973.34.tgz",
"integrity": "sha512-/7kfOufSN9t/g7OR6gNpCsSj/4nR7WdRnd54qSlnRuzQN7JmOz6ulJSwrUpqkDk/mkFgQqUIFBfnAZ0OTw2pxw==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-sdk/core": "^3.977.1",
"@smithy/core": "^3.29.8",
"@aws-sdk/core": "^3.976.0",
"@smithy/core": "^3.29.4",
"@smithy/types": "^4.16.1",
"tslib": "^2.6.2"
},
@ -389,15 +389,15 @@
}
},
"node_modules/@aws-sdk/lib-dynamodb": {
"version": "3.1096.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/lib-dynamodb/-/lib-dynamodb-3.1096.0.tgz",
"integrity": "sha512-ylVyjSMNs5+lohlXPBNGLPKC4sSGG7bR3e9XYjVYFkX8UaaQVGwpQ7hjnUeDjgIbKfAdOkdPbmZNZzMOdfPBAg==",
"version": "3.1092.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/lib-dynamodb/-/lib-dynamodb-3.1092.0.tgz",
"integrity": "sha512-wEfCtDfPhCeQ4zlgy+eyVeEMwcW8+Mty0Z8HtoUK+KtOzIxcND63WeWmIaXLY63HyJ3f53didmkrIT/KHjYDwQ==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-sdk/core": "^3.977.1",
"@aws-sdk/core": "^3.976.0",
"@aws-sdk/util-dynamodb": "^3.996.7",
"@smithy/core": "^3.29.8",
"@smithy/core": "^3.29.4",
"@smithy/types": "^4.16.1",
"tslib": "^2.6.2"
},
@ -405,19 +405,19 @@
"node": ">=20.0.0"
},
"peerDependencies": {
"@aws-sdk/client-dynamodb": "^3.1096.0"
"@aws-sdk/client-dynamodb": "^3.1092.0"
}
},
"node_modules/@aws-sdk/middleware-endpoint-discovery": {
"version": "3.972.26",
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint-discovery/-/middleware-endpoint-discovery-3.972.26.tgz",
"integrity": "sha512-suOMAYAM43aSyC3cLBvvJIuNyg96nUsPvYQUrq4G+8Prt2qTpFETgaiXX7JP1gIcK5FF0Z2IdyEsPXseZATOPw==",
"version": "3.972.25",
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint-discovery/-/middleware-endpoint-discovery-3.972.25.tgz",
"integrity": "sha512-5G2aVPmbWC5dFI76D0vsNg2L0fgWP4uybcetf+06dzeZuRtpihnow88fOl5zm3+ABdIw27FKgyFzV4yB5Bm29Q==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-sdk/endpoint-cache": "^3.972.9",
"@aws-sdk/types": "^3.974.2",
"@smithy/core": "^3.29.8",
"@smithy/core": "^3.29.4",
"@smithy/types": "^4.16.1",
"tslib": "^2.6.2"
},
@ -426,18 +426,18 @@
}
},
"node_modules/@aws-sdk/nested-clients": {
"version": "3.997.36",
"resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.997.36.tgz",
"integrity": "sha512-b71Suv7L+DnhM0MsQHU4WO42I32kxLZi96PbVhZbxMYIoKnEZz3v+LSrG8fupAoA4cBSshCk1Dl/PeRz49qUSg==",
"version": "3.997.34",
"resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.997.34.tgz",
"integrity": "sha512-Y9REVrSwmLM+Qy6sZJ7ofMC2S3Hr3tPP/4CzL5U1olPP7OGoF+6+Px0E49cVQBtSxJtyeLJMf0UaBErfeSahAA==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-sdk/core": "^3.977.1",
"@aws-sdk/signature-v4-multi-region": "^3.996.42",
"@aws-sdk/core": "^3.976.0",
"@aws-sdk/signature-v4-multi-region": "^3.996.41",
"@aws-sdk/types": "^3.974.2",
"@smithy/core": "^3.29.8",
"@smithy/fetch-http-handler": "^5.6.10",
"@smithy/node-http-handler": "^4.9.10",
"@smithy/core": "^3.29.4",
"@smithy/fetch-http-handler": "^5.6.6",
"@smithy/node-http-handler": "^4.9.6",
"@smithy/types": "^4.16.1",
"tslib": "^2.6.2"
},
@ -446,14 +446,14 @@
}
},
"node_modules/@aws-sdk/signature-v4-multi-region": {
"version": "3.996.42",
"resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.996.42.tgz",
"integrity": "sha512-DBV4naZP6HYBlAvPpoQzOP12Wvfou/5rN8yJPXjBTBylU5qwCbh/tXr2MddHoIjgoRkEl/eS+IljiUqvmwey1Q==",
"version": "3.996.41",
"resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.996.41.tgz",
"integrity": "sha512-QMUytg+FQMGouc8gHS00KoYih3+N6cqmVI/pQGOIo7Nr7OpQaiXjSYOuL+vsPZ1tymY4LAQ8MYcHJmws5LRxng==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-sdk/types": "^3.974.2",
"@smithy/signature-v4": "^5.6.9",
"@smithy/signature-v4": "^5.6.5",
"@smithy/types": "^4.16.1",
"tslib": "^2.6.2"
},
@ -462,16 +462,16 @@
}
},
"node_modules/@aws-sdk/token-providers": {
"version": "3.1096.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.1096.0.tgz",
"integrity": "sha512-hdUS2hDppy3vkWeFl5y86RLNU6OWH2mQB09yOSsRefwhhGTSFPkaZvfLDD/9vFcvMzlr8QFQFw3fw2FtrurVQA==",
"version": "3.1092.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.1092.0.tgz",
"integrity": "sha512-hBYUAr6iBLNFcsiWTgtBb0stdSw39VOUq4Sp4A5caCNf66BAZplWN4FleKrVpJx5li2YgdnK2DqoFSMWC642FQ==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"@aws-sdk/core": "^3.977.1",
"@aws-sdk/nested-clients": "^3.997.36",
"@aws-sdk/core": "^3.976.0",
"@aws-sdk/nested-clients": "^3.997.34",
"@aws-sdk/types": "^3.974.2",
"@smithy/core": "^3.29.8",
"@smithy/core": "^3.29.4",
"@smithy/types": "^4.16.1",
"tslib": "^2.6.2"
},
@ -510,9 +510,9 @@
}
},
"node_modules/@aws-sdk/xml-builder": {
"version": "3.972.37",
"resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.972.37.tgz",
"integrity": "sha512-zKq4HQum8JwDyEuyfuI4bbiAcU0KxP6qy+9PR/IsR92IyE/DaBAikzAS50tjxip4bqIIANpCcG+Yyj6CVhXupg==",
"version": "3.972.36",
"resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.972.36.tgz",
"integrity": "sha512-RdGmS1GLrtaTOLE1ElSluMldNrpk9Emq6uYs8SS8iHlu5xTAmM9rRkM91o48+rIRryBtyO9t+uLYCoMG6jVMVA==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@ -1070,9 +1070,9 @@
}
},
"node_modules/@eslint/config-helpers": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.7.0.tgz",
"integrity": "sha512-DObd/KKUsU+FaFv4PLxSRenpXfQWmPXXP3pPZ6/K1PCrMu2vQpMDMuQe/BqYeoLcz8ro0bVDF1RxOJgfVEdhUw==",
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.6.0.tgz",
"integrity": "sha512-ii6Bw9jJ2zi2cWA2Z+9/QZ/+3DX6kwaV5Q986D/CdP3Lap3w/pgQZ373FV7byY/i7L4IRH/G43I5dz1ClsCbpA==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@ -1226,12 +1226,12 @@
}
},
"node_modules/@modelcontextprotocol/sdk": {
"version": "1.30.0",
"resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.30.0.tgz",
"integrity": "sha512-xKd8OIzlqNzcqcNumGAa6g+PW2kjD5vrpcKOnfldAUPP3j7lnqMPwlTXQm8gF+UwH72z0lqaRbjr9hqGz0eITA==",
"version": "1.29.0",
"resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.29.0.tgz",
"integrity": "sha512-zo37mZA9hJWpULgkRpowewez1y6ML5GsXJPY8FI0tBBCd77HEvza4jDqRKOXgHNn867PVGCyTdzqpz0izu5ZjQ==",
"license": "MIT",
"dependencies": {
"@hono/node-server": "^1.19.9 || ^2.0.5",
"@hono/node-server": "^1.19.9",
"ajv": "^8.17.1",
"ajv-formats": "^3.0.1",
"content-type": "^1.0.5",
@ -1756,9 +1756,9 @@
"link": true
},
"node_modules/@smithy/core": {
"version": "3.31.0",
"resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.31.0.tgz",
"integrity": "sha512-sylYk2l9d7CmRv8ts8p0SDQUr3VO+HMeS1nrjL6+UtbO8ktJHTOeQ1McX+aAyvGGccp5aZX9eNtdcXrSwzoZaw==",
"version": "3.29.6",
"resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.29.6.tgz",
"integrity": "sha512-TO3w25cdGWBeYqKNDaqH3v4O3jjMPpKwf39YlG5X5xhqWfpOWJbi5gQi1lrllukuwohdhY0TPB8jBEv6UC50Vg==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@ -1770,13 +1770,13 @@
}
},
"node_modules/@smithy/credential-provider-imds": {
"version": "4.4.15",
"resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.4.15.tgz",
"integrity": "sha512-xYVGrisQqTJWhOnScUhbx8s9H63TMtoxzuUoxG6mP8J+B/YbX3vZxVsgV0xDf43abJnJP0fjP7BkQh7OESwuRA==",
"version": "4.4.11",
"resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.4.11.tgz",
"integrity": "sha512-6CUvZwS0tCcVCrcvh2TpwTXxmAkuY6JGNPeKODYRLjHtUUhFLGS3dNkNdRvT/ttJyqimqnhFMTS2nqp4pDZ7oQ==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"@smithy/core": "^3.31.0",
"@smithy/core": "^3.29.6",
"@smithy/types": "^4.16.1",
"tslib": "^2.6.2"
},
@ -1785,13 +1785,13 @@
}
},
"node_modules/@smithy/fetch-http-handler": {
"version": "5.6.12",
"resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.6.12.tgz",
"integrity": "sha512-OpQgP6IGH4j0NJ2zjfYZLjQL85ai+Wi/q51EmZJovXsEwKSvu89qiXUq77Q6EmwZ/hSl7fKpn2Z9mhiDN6OM+Q==",
"version": "5.6.8",
"resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.6.8.tgz",
"integrity": "sha512-AFuLou893FesRZeQcKMh87P9x4PF2/ksPOYLLI1ctW7WJxm55SWInFSHAhaNRBPBmbgZyUcCCDKepBX+1jZBBw==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"@smithy/core": "^3.31.0",
"@smithy/core": "^3.29.6",
"@smithy/types": "^4.16.1",
"tslib": "^2.6.2"
},
@ -1800,13 +1800,13 @@
}
},
"node_modules/@smithy/node-http-handler": {
"version": "4.9.12",
"resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.9.12.tgz",
"integrity": "sha512-dWW5KRt4mnEvjNzbGqGeCuAvgum85Y9ZoyuMQqcTEfapndyVJ1k9BEHK7kdXJZ32enyRmmwcFjMwlB/KgLKI3Q==",
"version": "4.9.8",
"resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.9.8.tgz",
"integrity": "sha512-ArSSIN4t1wLutcIkHzaL6N11J7xpZK7W3T0pFz9cep9zIpEr9x5+lhJRcVUgObGI3OIMbnROq7w8bwzx+Nkf8A==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"@smithy/core": "^3.31.0",
"@smithy/core": "^3.29.6",
"@smithy/types": "^4.16.1",
"tslib": "^2.6.2"
},
@ -1815,13 +1815,13 @@
}
},
"node_modules/@smithy/signature-v4": {
"version": "5.6.11",
"resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.6.11.tgz",
"integrity": "sha512-7HsspeiNCZvZHEJ22vV5L/QYuJdTyJvPJvMrYD3AgkM3IJB0pkln4jkjPvtpTWRMkHXbO8WKwNjoVdVlBFwHmw==",
"version": "5.6.7",
"resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.6.7.tgz",
"integrity": "sha512-32PmEsuZV9lz7SZk3gJcm+EfIAoIVu83AJyEzgALpwmSqLvuacdAu0fvCVNMbDbegyk1S0lHUDrMWIfR47Micw==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"@smithy/core": "^3.31.0",
"@smithy/core": "^3.29.6",
"@smithy/types": "^4.16.1",
"tslib": "^2.6.2"
},
@ -1956,9 +1956,9 @@
"license": "MIT"
},
"node_modules/@types/node": {
"version": "26.1.2",
"resolved": "https://registry.npmjs.org/@types/node/-/node-26.1.2.tgz",
"integrity": "sha512-Vu4a5UFA9rIIFJ7rB/Vaafh9lrCQszopTCx6KjFboXTGQbPNasehVR5TEiithSDGyd1DEiUByggTZsg8jukeIg==",
"version": "26.1.1",
"resolved": "https://registry.npmjs.org/@types/node/-/node-26.1.1.tgz",
"integrity": "sha512-nxAkRSVkN1Y0JC1W8ky/fTfkGsMmcrRsbx+3XoZE+rMOX71kLYTV7fLXpqud1GpbpP5TuffXFqfX7fH2GgZREw==",
"dev": true,
"license": "MIT",
"dependencies": {
@ -2550,9 +2550,9 @@
"license": "MIT"
},
"node_modules/aws-cdk": {
"version": "2.1133.0",
"resolved": "https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.1133.0.tgz",
"integrity": "sha512-DGlCBwqxSHTe1u/IoT5WV+Bbd2K3UhwFHsdMqb2nQa1fkJmaQgoNFu0It+p3HxyMWeW+gKsVzT5KcjQPQ6Kzuw==",
"version": "2.1132.0",
"resolved": "https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.1132.0.tgz",
"integrity": "sha512-kcIzBZQO+2v+F97iaeI29fdOUQEx44wr0qDb9HXNqdU82V+1ZKI1KuFlHwH2nq7+6iNc1bu60se4hFf+2d7vXg==",
"dev": true,
"license": "Apache-2.0",
"bin": {
@ -2563,11 +2563,10 @@
}
},
"node_modules/aws-cdk-lib": {
"version": "2.262.1",
"resolved": "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.262.1.tgz",
"integrity": "sha512-B6YP4r6ojUZCDhl+qBu/CrWzcipR8sIgshcqYvgw013sghPXmVkYdJ3yuI9+DKML3YLSjQrHy1nGJs+Nqq7JCg==",
"version": "2.261.0",
"resolved": "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.261.0.tgz",
"integrity": "sha512-e52e3Abjg0HkuRWlWwtSv5+ZiMW1rhCDdL9ff7lzWXInU8xdfLJpuoimfa0IJwjiNGyphppgg52Azx9M80OA0g==",
"bundleDependencies": [
"@aws/cloudformation-validate",
"@balena/dockerignore",
"@aws-cdk/cloud-assembly-api",
"case",
@ -2585,18 +2584,17 @@
"dependencies": {
"@aws-cdk/asset-awscli-v1": "2.2.282",
"@aws-cdk/asset-node-proxy-agent-v6": "^2.1.2",
"@aws-cdk/cloud-assembly-api": "^2.2.6",
"@aws-cdk/cloud-assembly-schema": "^54.11.0",
"@aws/cloudformation-validate": "1.5.1-beta",
"@aws-cdk/cloud-assembly-api": "^2.2.5",
"@aws-cdk/cloud-assembly-schema": "^54.0.0",
"@balena/dockerignore": "^1.0.2",
"case": "1.6.3",
"fs-extra": "^11.3.6",
"fs-extra": "^11.3.5",
"ignore": "^5.3.2",
"jsonschema": "^1.5.0",
"mime-types": "^2.1.35",
"minimatch": "^10.2.5",
"punycode": "^2.3.1",
"semver": "^7.8.5",
"semver": "^7.8.1",
"yaml": "1.10.3"
},
"engines": {
@ -2607,28 +2605,19 @@
}
},
"node_modules/aws-cdk-lib/node_modules/@aws-cdk/cloud-assembly-api": {
"version": "2.2.6",
"version": "2.2.5",
"dev": true,
"inBundle": true,
"license": "Apache-2.0",
"dependencies": {
"jsonschema": "^1.5.0",
"semver": "^7.8.4"
"semver": "^7.8.0"
},
"engines": {
"node": ">= 18.0.0"
},
"peerDependencies": {
"@aws-cdk/cloud-assembly-schema": ">=54.5.0"
}
},
"node_modules/aws-cdk-lib/node_modules/@aws/cloudformation-validate": {
"version": "1.5.1-beta",
"dev": true,
"inBundle": true,
"license": "Apache-2.0",
"engines": {
"node": ">=20.0.0"
"@aws-cdk/cloud-assembly-schema": ">=53.28.0"
}
},
"node_modules/aws-cdk-lib/node_modules/@balena/dockerignore": {
@ -2647,7 +2636,7 @@
}
},
"node_modules/aws-cdk-lib/node_modules/brace-expansion": {
"version": "5.0.7",
"version": "5.0.6",
"dev": true,
"inBundle": true,
"license": "MIT",
@ -2668,7 +2657,7 @@
}
},
"node_modules/aws-cdk-lib/node_modules/fs-extra": {
"version": "11.3.6",
"version": "11.3.5",
"dev": true,
"inBundle": true,
"license": "MIT",
@ -2763,7 +2752,7 @@
}
},
"node_modules/aws-cdk-lib/node_modules/semver": {
"version": "7.8.5",
"version": "7.8.1",
"dev": true,
"inBundle": true,
"license": "ISC",
@ -2847,16 +2836,16 @@
"license": "MIT"
},
"node_modules/brace-expansion": {
"version": "5.0.8",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.8.tgz",
"integrity": "sha512-JZyDyq3D4AUifKTPOB7DELf6XsB3WdPuNxCtob1vFXPsSXhdAiHBWJ/tJ8HAc9aH84BK+5JFZLNkJKx3G9kzQg==",
"version": "5.0.7",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.7.tgz",
"integrity": "sha512-7oFy703dxfY3/NLxC1fh2SUCQ0H9rmAY+5EpDVfXjUTTs+HEwR2nYaqLv+GWcTsumwxPfiz6CzCNkwXwBUwqCA==",
"dev": true,
"license": "MIT",
"dependencies": {
"balanced-match": "^4.0.2"
},
"engines": {
"node": "20 || >=22"
"node": "18 || 20 || >=22"
}
},
"node_modules/bytes": {
@ -3271,9 +3260,9 @@
}
},
"node_modules/eslint": {
"version": "10.8.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-10.8.0.tgz",
"integrity": "sha512-nuKKvN+oIBO0koN7Tm7dlkmnkc21mtt0QJLwAKzjLq14y6lRTdVG36MZHJ8eQHwdJMwZbQNMlPOYedMq/oVJvQ==",
"version": "10.7.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-10.7.0.tgz",
"integrity": "sha512-GVTD7s1vdIl6UYvAfriOPeY1Df8LIZjfofLvHwde+erDHGGuHyuM6xoxRxmHiebhYuD2p1vN4wWh0XzPARSGDQ==",
"dev": true,
"license": "MIT",
"workspaces": [
@ -3283,7 +3272,7 @@
"@eslint-community/eslint-utils": "^4.8.0",
"@eslint-community/regexpp": "^4.12.2",
"@eslint/config-array": "^0.23.5",
"@eslint/config-helpers": "^0.7.0",
"@eslint/config-helpers": "^0.6.0",
"@eslint/core": "^1.2.1",
"@eslint/plugin-kit": "^0.7.2",
"@humanfs/node": "^0.16.6",
@ -3307,7 +3296,7 @@
"imurmurhash": "^0.1.4",
"is-glob": "^4.0.0",
"json-stable-stringify-without-jsonify": "^1.0.1",
"minimatch": "^10.2.5",
"minimatch": "^10.2.4",
"natural-compare": "^1.4.0",
"optionator": "^0.9.3"
},
@ -3545,9 +3534,9 @@
}
},
"node_modules/express-rate-limit": {
"version": "8.6.1",
"resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-8.6.1.tgz",
"integrity": "sha512-0D493aP61w0TJ2A0wy27riRsO7FMQ7FK+KUHOKCSfPvYo0R55aiC6emCVgFUeShH0fq0ICPVzNcgoS+BsbXQCA==",
"version": "8.6.0",
"resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-8.6.0.tgz",
"integrity": "sha512-XKJXDsASUOo0LLtFwW5hCcQGH0N4WQc/Rn8/Pvoia+TJFOkkFPvrtW9lZOeeNcxQJspvOIERMwiRLsVFlhHEkA==",
"license": "MIT",
"dependencies": {
"debug": "^4.4.3",
@ -4079,9 +4068,9 @@
}
},
"node_modules/jose": {
"version": "6.2.4",
"resolved": "https://registry.npmjs.org/jose/-/jose-6.2.4.tgz",
"integrity": "sha512-N8acGzVsQy6M/fjFcxtysNc4Q379TcM5dM/qKkNtsHFji88yANnXTr7BLeP75iPnFwBfQzM/jg2BZ9+HZrHCZA==",
"version": "6.2.3",
"resolved": "https://registry.npmjs.org/jose/-/jose-6.2.3.tgz",
"integrity": "sha512-YYVDInQKFJfR/xa3ojUTl8c2KoTwiL1R5Wg9YCydwH0x0B9grbzlg5HC7mMjCtUJjbQ/YnGEZIhI5tCgfTb4Hw==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/panva"
@ -4310,9 +4299,9 @@
"license": "MIT"
},
"node_modules/nanoid": {
"version": "3.3.16",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.16.tgz",
"integrity": "sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==",
"version": "3.3.15",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.15.tgz",
"integrity": "sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA==",
"dev": true,
"funding": [
{
@ -4532,9 +4521,9 @@
}
},
"node_modules/postcss": {
"version": "8.5.24",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.24.tgz",
"integrity": "sha512-8RyVklq0owXUTa4xlpzu4l9AaVKIdQvAcOHZWaMh98HgySsUtxRVf/chRe3dsSLqb6i40BzGRzEUddRaI+9TSw==",
"version": "8.5.16",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.16.tgz",
"integrity": "sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg==",
"dev": true,
"funding": [
{
@ -4552,7 +4541,7 @@
],
"license": "MIT",
"dependencies": {
"nanoid": "^3.3.16",
"nanoid": "^3.3.12",
"picocolors": "^1.1.1",
"source-map-js": "^1.2.1"
},
@ -5841,7 +5830,7 @@
"@sh-mcp/shared": "*"
},
"devDependencies": {
"@types/node": "^26.1.2",
"@types/node": "^26.1.1",
"typescript": "^6.0.3",
"vitest": "^4.1.10"
},
@ -5872,7 +5861,7 @@
"@sh-mcp/shared": "*"
},
"devDependencies": {
"@types/node": "^26.1.2",
"@types/node": "^26.1.1",
"typescript": "^6.0.3",
"vitest": "^4.1.10"
},
@ -5887,7 +5876,7 @@
"@sh-mcp/shared": "*"
},
"devDependencies": {
"@types/node": "^26.1.2",
"@types/node": "^26.1.1",
"@vitest/coverage-v8": "^4.1.10",
"typescript": "^6.0.3",
"vitest": "^4.1.10"
@ -5903,7 +5892,7 @@
"@sh-mcp/shared": "*"
},
"devDependencies": {
"@types/node": "^26.1.2",
"@types/node": "^26.1.1",
"@vitest/coverage-v8": "^4.1.10",
"typescript": "^6.0.3",
"vitest": "^4.1.10"
@ -5919,7 +5908,7 @@
"@sh-mcp/shared": "*"
},
"devDependencies": {
"@types/node": "^26.1.2",
"@types/node": "^26.1.1",
"@vitest/coverage-v8": "^4.1.10",
"typescript": "^6.0.3",
"vitest": "^4.1.10"
@ -5935,7 +5924,7 @@
"@sh-mcp/shared": "*"
},
"devDependencies": {
"@types/node": "^26.1.2",
"@types/node": "^26.1.1",
"@vitest/coverage-v8": "^4.1.10",
"typescript": "^6.0.3",
"vitest": "^4.1.10"
@ -5952,7 +5941,7 @@
"@sh-mcp/shared": "*"
},
"devDependencies": {
"@types/node": "^26.1.2",
"@types/node": "^26.1.1",
"typescript": "^6.0.3",
"vitest": "^4.1.10"
},
@ -5964,12 +5953,12 @@
"name": "@sh-mcp/shared",
"version": "0.1.0",
"dependencies": {
"@modelcontextprotocol/sdk": "1.30.0",
"@modelcontextprotocol/sdk": "1.29.0",
"ajv": "8.20.0",
"ajv-formats": "3.0.1",
"express": "5.2.1",
"express-rate-limit": "^8.6.1",
"jose": "^6.2.4"
"express-rate-limit": "^8.6.0",
"jose": "^6.2.3"
},
"devDependencies": {
"@types/express": "5.0.6",
@ -6030,8 +6019,8 @@
"express": "5.2.1"
},
"devDependencies": {
"@types/node": "^26.1.2",
"aws-cdk-lib": "2.262.1",
"@types/node": "^26.1.1",
"aws-cdk-lib": "2.261.0",
"constructs": "10.7.1",
"tsx": "4.23.1",
"typescript": "^6.0.3",
@ -6057,8 +6046,8 @@
"express": "5.2.1"
},
"devDependencies": {
"@types/node": "^26.1.2",
"aws-cdk-lib": "2.262.1",
"@types/node": "^26.1.1",
"aws-cdk-lib": "2.261.0",
"constructs": "10.7.1",
"tsx": "4.23.1",
"typescript": "^6.0.3",

View file

@ -23,14 +23,14 @@
"synth": "npm run synth --workspaces --if-present"
},
"devDependencies": {
"@types/node": "26.1.2",
"@types/node": "26.1.1",
"@typescript-eslint/eslint-plugin": "8.65.0",
"@typescript-eslint/parser": "8.65.0",
"@vitest/coverage-v8": "4.1.10",
"aws-cdk": "2.1133.0",
"aws-cdk-lib": "2.262.1",
"aws-cdk": "2.1132.0",
"aws-cdk-lib": "2.261.0",
"constructs": "10.7.1",
"eslint": "10.8.0",
"eslint": "10.7.0",
"prettier": "3.9.6",
"tsx": "4.23.1",
"typescript": "6.0.3",

View file

@ -20,7 +20,7 @@
"@sh-mcp/shared": "*"
},
"devDependencies": {
"@types/node": "^26.1.2",
"@types/node": "^26.1.1",
"typescript": "^6.0.3",
"vitest": "^4.1.10"
}

View file

@ -16,7 +16,7 @@
"@sh-mcp/shared": "*"
},
"devDependencies": {
"@types/node": "^26.1.2",
"@types/node": "^26.1.1",
"typescript": "^6.0.3",
"vitest": "^4.1.10"
},

View file

@ -17,7 +17,7 @@
"@sh-mcp/shared": "*"
},
"devDependencies": {
"@types/node": "^26.1.2",
"@types/node": "^26.1.1",
"@vitest/coverage-v8": "^4.1.10",
"typescript": "^6.0.3",
"vitest": "^4.1.10"

View file

@ -23,7 +23,7 @@
"@sh-mcp/shared": "*"
},
"devDependencies": {
"@types/node": "^26.1.2",
"@types/node": "^26.1.1",
"@vitest/coverage-v8": "^4.1.10",
"typescript": "^6.0.3",
"vitest": "^4.1.10"

View file

@ -23,7 +23,7 @@
"@sh-mcp/shared": "*"
},
"devDependencies": {
"@types/node": "^26.1.2",
"@types/node": "^26.1.1",
"@vitest/coverage-v8": "^4.1.10",
"typescript": "^6.0.3",
"vitest": "^4.1.10"

View file

@ -23,7 +23,7 @@
"@sh-mcp/shared": "*"
},
"devDependencies": {
"@types/node": "^26.1.2",
"@types/node": "^26.1.1",
"@vitest/coverage-v8": "^4.1.10",
"typescript": "^6.0.3",
"vitest": "^4.1.10"

View file

@ -20,7 +20,7 @@
"@sh-mcp/shared": "*"
},
"devDependencies": {
"@types/node": "^26.1.2",
"@types/node": "^26.1.1",
"typescript": "^6.0.3",
"vitest": "^4.1.10"
}

View file

@ -30,11 +30,11 @@
"vitest": "^4.1.10"
},
"dependencies": {
"@modelcontextprotocol/sdk": "1.30.0",
"@modelcontextprotocol/sdk": "1.29.0",
"ajv": "8.20.0",
"ajv-formats": "3.0.1",
"express": "5.2.1",
"express-rate-limit": "^8.6.1",
"jose": "^6.2.4"
"express-rate-limit": "^8.6.0",
"jose": "^6.2.3"
}
}

View file

@ -26,8 +26,8 @@
"express": "5.2.1"
},
"devDependencies": {
"@types/node": "^26.1.2",
"aws-cdk-lib": "2.262.1",
"@types/node": "^26.1.1",
"aws-cdk-lib": "2.261.0",
"constructs": "10.7.1",
"tsx": "4.23.1",
"typescript": "^6.0.3",

View file

@ -31,8 +31,8 @@
"express": "5.2.1"
},
"devDependencies": {
"@types/node": "^26.1.2",
"aws-cdk-lib": "2.262.1",
"@types/node": "^26.1.1",
"aws-cdk-lib": "2.261.0",
"constructs": "10.7.1",
"tsx": "4.23.1",
"typescript": "^6.0.3",