From 2e5b87c77111722fda1a69b45290070063d6a76e Mon Sep 17 00:00:00 2001 From: finalerock44 <77282157+finalerock44@users.noreply.github.com> Date: Wed, 28 Oct 2026 13:11:54 +0000 Subject: [PATCH 01/10] chore(deps): bump the qs override to 6.16.1 (#285) GHSA-6pq8-jhm2-2vcw (moderate, published 2026-10-28) covers qs up to 6.16.0, which is exactly where the override held it, so the CI audit fails on every branch. 6.16.1 is the lowest patched version in the major; the lockfile change is qs alone (it reaches us through @modelcontextprotocol/sdk > express). Dependabot cannot bump an overridden pin, hence by hand, as for hono. --- package.json | 2 +- pnpm-lock.yaml | 13 ++----------- 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index 7460522..07f6c80 100644 --- a/package.json +++ b/package.json @@ -108,7 +108,7 @@ "brace-expansion@>=3.0.0 <5.0.12": "5.0.12", "ws@>=8.0.0 <8.21.0": "8.21.0", "esbuild@<0.28.1": ">=0.28.1", - "qs@<6.16.0": "6.16.0", + "qs@<6.16.1": "6.16.1", "fast-uri@>=3.0.0 <3.1.9": "3.1.9", "hono@>=4.0.0 <4.13.11": "4.13.11", "source-map-js@<1.2.2": "1.2.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9e4e3fe..566130e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -29,7 +29,7 @@ overrides: brace-expansion@>=3.0.0 <5.0.12: 5.0.12 ws@>=8.0.0 <8.21.0: 8.21.0 esbuild@<0.28.1: '>=0.28.1' - qs@<6.16.0: 6.16.0 + qs@<6.16.1: 6.16.1 fast-uri@>=3.0.0 <3.1.9: 3.1.9 hono@>=4.0.0 <4.13.11: 4.13.11 source-map-js@<1.2.2: 1.2.2 @@ -1423,10 +1423,6 @@ packages: resolution: {integrity: sha512-+Owyggi9IxT1ePKGafcI87ubSmxol6smwJ+RAHDQlx9+9cPwFWDiKFFCPuWhr9ignlGpZ9vDQLw67N4dcTVFEA==} engines: {node: '>=20'} - qs@6.16.0: - resolution: {integrity: sha512-h6fhOIaRrID2CbEY2fqs+7t+UXZo+MLAnU5gRIq85uFtdiUPCdsApMlHhXogKVM4HM2DVbIjGNTTYH2OcmP1vA==} - engines: {node: '>=0.6'} - qs@6.16.1: resolution: {integrity: sha512-5Px6J7rfHBAGUhNQ3es4YzcOdBBw0SDcVtThJml4RdnKw4tKs2epA0kPZ+K8X+WiHktT93RHVcQ/3ym5aTCgtg==} engines: {node: '>=0.6'} @@ -2472,7 +2468,7 @@ snapshots: once: 1.4.0 parseurl: 1.3.3 proxy-addr: 2.0.8 - qs: 6.16.0 + qs: 6.16.1 range-parser: 1.3.0 router: 2.2.0 send: 1.2.1 @@ -3042,11 +3038,6 @@ snapshots: dependencies: hookified: 2.2.0 - qs@6.16.0: - dependencies: - es-define-property: 1.0.1 - side-channel: 1.1.1 - qs@6.16.1: dependencies: es-define-property: 1.0.1 From e289df518025239de4d4bc975e06df6a49c69776 Mon Sep 17 00:00:00 2001 From: finalerock44 <77282157+finalerock44@users.noreply.github.com> Date: Wed, 28 Oct 2026 13:17:30 +0000 Subject: [PATCH 02/10] chore(help): list iphone-duo in the --ios-device help text (#284) The device enum only feeds --help; validation runs against the live compatibility payload, which advertises the iPhone Duo since the production API deploy on 2026-10-27. --- src/types/domain/device.types.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/types/domain/device.types.ts b/src/types/domain/device.types.ts index 20d58b5..85ebbf4 100644 --- a/src/types/domain/device.types.ts +++ b/src/types/domain/device.types.ts @@ -27,6 +27,7 @@ export enum EiOSDevices { 'iphone-18-pro' = 'iphone-18-pro', 'iphone-18-pro-max' = 'iphone-18-pro-max', 'iphone-air' = 'iphone-air', + 'iphone-duo' = 'iphone-duo', } export enum EAndroidDevices { From 638d71dcc12606d5753df7aa74d48164663a1bef Mon Sep 17 00:00:00 2001 From: "dcd-release-please[bot]" <296541543+dcd-release-please[bot]@users.noreply.github.com> Date: Wed, 28 Oct 2026 13:26:18 +0000 Subject: [PATCH 03/10] chore: merge production into dev after 5.11.0 (#283) * ReleaseAs: 5.8.0 * Release-As: 5.8.0 * Release-As: 5.8.0 * chore(production): release 5.8.0 * chore: pin the 5.9.0 promotion Release-As: 5.9.0 * chore(production): release 5.9.0 * chore: pin the 5.10.0 promotion Release-As: 5.10.0 * chore(production): release 5.10.0 * chore: pin the 5.11.0 promotion Release-As: 5.11.0 * chore(production): release 5.11.0 --------- Co-authored-by: finalerock44 Co-authored-by: finalerock44 <77282157+finalerock44@users.noreply.github.com> Co-authored-by: dcd-release-please[bot] <296541543+dcd-release-please[bot]@users.noreply.github.com> Co-authored-by: Tom Riglar Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .release-please-manifest.json | 2 +- CHANGELOG.md | 37 +++++++++++++++++++++++++++++++++++ package.json | 2 +- server.json | 4 ++-- 4 files changed, 41 insertions(+), 4 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 028d2d6..af6c62f 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "5.10.0" + ".": "5.11.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 17f94af..0f0a87c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,42 @@ # Changelog +## [5.11.0](https://github.com/devicecloud-dev/dcd-cli/compare/v5.10.0...v5.11.0) (2026-10-27) + + +### Features + +* **api:** send the CLI version and CI identity on every API request ([#277](https://github.com/devicecloud-dev/dcd-cli/issues/277)) ([7d751d2](https://github.com/devicecloud-dev/dcd-cli/commit/7d751d299bc70e278b3a3edc352db12cbf9c666c)) +* **cloud:** say which flows use extended runtime, and that they cost 2x ([#272](https://github.com/devicecloud-dev/dcd-cli/issues/272)) ([7be9899](https://github.com/devicecloud-dev/dcd-cli/commit/7be9899fbeb2916ac16b18584845193ff309bdea)) +* **device:** add dcd device and dcd mcp for Agent Devices ([#260](https://github.com/devicecloud-dev/dcd-cli/issues/260)) ([8d87e67](https://github.com/devicecloud-dev/dcd-cli/commit/8d87e672d2d5bfd83d4538824ebe690ce0390a37)) +* **device:** bundle only the files a directory's flows use ([#275](https://github.com/devicecloud-dev/dcd-cli/issues/275)) ([7b31b1e](https://github.com/devicecloud-dev/dcd-cli/commit/7b31b1e787cebd5d7b3ecba13b2e9acb70b060f9)) +* **device:** inspect --all, element state, and screen text on a failed run ([#273](https://github.com/devicecloud-dev/dcd-cli/issues/273)) ([85cde1a](https://github.com/devicecloud-dev/dcd-cli/commit/85cde1af113dc12e2630fee739eb280d9c9b9ef2)) +* **encrypt:** list --encrypt in --help now encryption is on by default (dcd[#1138](https://github.com/devicecloud-dev/dcd-cli/issues/1138)) ([8d87e67](https://github.com/devicecloud-dev/dcd-cli/commit/8d87e672d2d5bfd83d4538824ebe690ce0390a37)) +* **mcp:** add dcd mcp install, and lead the docs with the standalone binary ([#267](https://github.com/devicecloud-dev/dcd-cli/issues/267)) ([8bff82e](https://github.com/devicecloud-dev/dcd-cli/commit/8bff82e4ed6fb06cedefca0d942bbd1ac349857c)) +* polish the install script and the progress spinner ([#264](https://github.com/devicecloud-dev/dcd-cli/issues/264)) ([eb7881f](https://github.com/devicecloud-dev/dcd-cli/commit/eb7881fe397ade839616fdef1fdec6f57268fd0c)), closes [#90](https://github.com/devicecloud-dev/dcd-cli/issues/90) +* **upload:** record APK CPU architectures in binary metadata ([#269](https://github.com/devicecloud-dev/dcd-cli/issues/269)) ([5f4c45e](https://github.com/devicecloud-dev/dcd-cli/commit/5f4c45ee24dcf80762417e52d9f053cac34ef02a)) + + +### Bug Fixes + +* **device:** don't crash when no browser opener is installed ([#265](https://github.com/devicecloud-dev/dcd-cli/issues/265)) ([2e566ef](https://github.com/devicecloud-dev/dcd-cli/commit/2e566ef1bff7484409f2a3e4660c25ca58550847)) +* **device:** drop Pixel 6 Pro and Pixel 7 Pro, and mirror the Pixel 1… ([#268](https://github.com/devicecloud-dev/dcd-cli/issues/268)) ([b07af33](https://github.com/devicecloud-dev/dcd-cli/commit/b07af33c5b7ececf68d80e6e26fbd6cd33ff488d)) +* **device:** drop Pixel 6 Pro and Pixel 7 Pro, and mirror the Pixel 10 default ([b07af33](https://github.com/devicecloud-dev/dcd-cli/commit/b07af33c5b7ececf68d80e6e26fbd6cd33ff488d)) +* **device:** fit start's next steps to the session, and explain dcd mcp ([#266](https://github.com/devicecloud-dev/dcd-cli/issues/266)) ([13a7158](https://github.com/devicecloud-dev/dcd-cli/commit/13a7158d032fc089e8ad54540cc939c4a5bd33a7)) +* **device:** say "since", not "asked", when a person took control unasked ([#279](https://github.com/devicecloud-dev/dcd-cli/issues/279)) ([ec422fd](https://github.com/devicecloud-dev/dcd-cli/commit/ec422fd46197f1daf42bf94d53fed8aaa3c509a2)) +* **mcp:** dry runs honour tags, single flow files bring their subflows, failed starts say what to check ([#278](https://github.com/devicecloud-dev/dcd-cli/issues/278)) ([498f300](https://github.com/devicecloud-dev/dcd-cli/commit/498f3000060fa42e4646b2e153da231b629e010c)) +* **upload:** retry Backblaze uploads on transient failures ([#270](https://github.com/devicecloud-dev/dcd-cli/issues/270)) ([d1cdbd4](https://github.com/devicecloud-dev/dcd-cli/commit/d1cdbd4a1c47608a49ac2723563b89839b74db96)) + + +### Dependencies + +* patch body-parser and fast-uri advisories ([#262](https://github.com/devicecloud-dev/dcd-cli/issues/262)) ([8fe73cd](https://github.com/devicecloud-dev/dcd-cli/commit/8fe73cd8d5c35a0d2919c2e6940ab377ab258a03)) +* patch ip-address advisory ([#256](https://github.com/devicecloud-dev/dcd-cli/issues/256)) ([43cdf5f](https://github.com/devicecloud-dev/dcd-cli/commit/43cdf5fe437a00bad2d278a3ca6ccaae21df3d47)) + + +### Miscellaneous + +* pin the 5.11.0 promotion ([e83ae64](https://github.com/devicecloud-dev/dcd-cli/commit/e83ae6496f1452208ad6fba1b5b08dec004a6958)) + ## [5.10.0](https://github.com/devicecloud-dev/dcd-cli/compare/v5.9.0...v5.10.0) (2026-10-22) diff --git a/package.json b/package.json index 07f6c80..46c5d16 100644 --- a/package.json +++ b/package.json @@ -68,7 +68,7 @@ "test:unit": "node scripts/test-runner.mjs --unit", "typecheck": "tsc --noEmit -p tsconfig.test.json" }, - "version": "5.10.0", + "version": "5.11.0", "bugs": { "url": "https://discord.gg/gm3mJwcNw8" }, diff --git a/server.json b/server.json index 314da65..e3ea537 100644 --- a/server.json +++ b/server.json @@ -2,7 +2,7 @@ "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json", "name": "dev.devicecloud/dcd", "description": "Run Maestro mobile app tests on devicecloud.dev: submit flows, check status, download artifacts.", - "version": "5.10.0", + "version": "5.11.0", "repository": { "url": "https://github.com/devicecloud-dev/dcd-cli", "source": "github" @@ -11,7 +11,7 @@ { "registryType": "npm", "identifier": "@devicecloud.dev/dcd", - "version": "5.10.0", + "version": "5.11.0", "runtimeHint": "npx", "runtimeArguments": [ { From aef5640696d9ef818e89b1ddc4fec9d590bca370 Mon Sep 17 00:00:00 2001 From: Tom Riglar Date: Mon, 2 Nov 2026 10:07:51 +0000 Subject: [PATCH 04/10] chore(deps): override minimatch to 11.0.1 and glob to 14.0.2 (#287) GHSA-g3hv-75wg-m249 (minimatch <11.0.1) and GHSA-3g3m-2fjr-6pw4 (glob >=9.0.0 <=14.0.1) are both moderate, so the CI audit fails on every branch. Both reach us only through dev tools: minimatch through eslint and mocha, glob through mocha. The patched versions are new majors, so they are pinned by override; lint, the unit suite and the build all pass on them. Co-authored-by: Claude Opus 5.5 --- package.json | 3 ++- pnpm-lock.yaml | 49 ++++++++++++++++++++++++------------------------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/package.json b/package.json index 46c5d16..ebb1a62 100644 --- a/package.json +++ b/package.json @@ -96,7 +96,8 @@ "minimatch@<3.1.4": "3.1.4", "minimatch@>=5.0.0 <5.1.8": "5.1.8", "minimatch@>=9.0.0 <9.0.7": "9.0.7", - "minimatch@>=10.0.0 <10.2.3": "10.2.3", + "minimatch@>=10.0.0 <11.0.1": "11.0.1", + "glob@>=9.0.0 <14.0.2": "14.0.2", "picomatch@<2.3.2": "2.3.2", "picomatch@>=4.0.0 <4.0.4": "4.0.4", "serialize-javascript": ">=7.0.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 566130e..1b8ec3e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,7 +17,8 @@ overrides: minimatch@<3.1.4: 3.1.4 minimatch@>=5.0.0 <5.1.8: 5.1.8 minimatch@>=9.0.0 <9.0.7: 9.0.7 - minimatch@>=10.0.0 <10.2.3: 10.2.3 + minimatch@>=10.0.0 <11.0.1: 11.0.1 + glob@>=9.0.0 <14.0.2: 14.0.2 picomatch@<2.3.2: 2.3.2 picomatch@>=4.0.0 <4.0.4: 4.0.4 serialize-javascript: '>=7.0.5' @@ -377,6 +378,9 @@ packages: resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} engines: {node: '>=18.0.0'} + '@isaacs/nonrecursive-glob-match@1.0.3': + resolution: {integrity: sha512-SI7kyKHq4XXDRozw+r9GlRZkia1ZkFrpLW98r2IC2Bpr8YkFGE3fvjzmxCG0x78A++69HmDNrDvSMYBZmHGpKA==} + '@keyv/bigmap@1.3.1': resolution: {integrity: sha512-WbzE9sdmQtKy8vrNPa9BRnwZh5UF4s1KTmSK0KUVLo3eff5BlQNNWDnFOouNpKfPKDnms9xynJjsMYjMaT/aFQ==} engines: {node: '>= 18'} @@ -969,8 +973,8 @@ packages: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} - glob@13.0.6: - resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} + glob@14.0.2: + resolution: {integrity: sha512-vfMgTR2djMHPUchsJMLpZlYQvtjVL+mHpEr5wPpoCbQs2vr/FBNK+3Gnl9Ara1DSs4Aeg4eG9HiADb5/rkY/ZA==} engines: {node: 18 || 20 || >=22} globals@17.13.0: @@ -1264,12 +1268,8 @@ packages: resolution: {integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==} engines: {node: '>=18'} - minimatch@10.2.3: - resolution: {integrity: sha512-Rwi3pnapEqirPSbWbrZaa6N3nmqq4Xer/2XooiOKyV3q12ML06f7MOuc5DVH8ONZIFhwIYQ3yzPH4nt7iWHaTg==} - engines: {node: 18 || 20 || >=22} - - minimatch@10.2.6: - resolution: {integrity: sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==} + minimatch@11.0.1: + resolution: {integrity: sha512-t+Vn6DX4wPCxS23y03C0uhF7S1jpi1GfqPrnlEipCJaA2ykiNbMkVlDutZtmvLfRcUN6R8AYVlzTsQrT4RZoLQ==} engines: {node: 18 || 20 || >=22} minimist@1.2.8: @@ -1366,8 +1366,8 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-scurry@2.0.2: - resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} + path-scurry@3.0.0: + resolution: {integrity: sha512-1pTbQqH1wIwMi/eleQ5leFTTCkzFsPcgXNjwOA8YGGW/W4/kHT3dssE7Z6NH+zuqNLOzOB0uaD61yl7cAcVhgg==} engines: {node: 18 || 20 || >=22} path-to-regexp@8.4.2: @@ -1830,7 +1830,7 @@ snapshots: dependencies: '@eslint/object-schema': 3.0.5 debug: 4.4.3(supports-color@8.1.1) - minimatch: 10.2.6 + minimatch: 11.0.1 transitivePeerDependencies: - supports-color @@ -1882,6 +1882,8 @@ snapshots: dependencies: minipass: 7.1.3 + '@isaacs/nonrecursive-glob-match@1.0.3': {} + '@keyv/bigmap@1.3.1(keyv@5.6.0)': dependencies: hashery: 1.5.1 @@ -2054,7 +2056,7 @@ snapshots: '@typescript-eslint/types': 8.72.0 '@typescript-eslint/visitor-keys': 8.72.0 debug: 4.4.3(supports-color@8.1.1) - minimatch: 10.2.3 + minimatch: 11.0.1 semver: 7.8.5 tinyglobby: 0.2.17 ts-api-utils: 2.5.0(typescript@6.0.3) @@ -2396,7 +2398,7 @@ snapshots: imurmurhash: 0.1.4 is-glob: 4.0.3 json-stable-stringify-without-jsonify: 1.0.1 - minimatch: 10.2.6 + minimatch: 11.0.1 natural-compare: 1.4.0 optionator: 0.9.4 transitivePeerDependencies: @@ -2586,11 +2588,11 @@ snapshots: dependencies: is-glob: 4.0.3 - glob@13.0.6: + glob@14.0.2: dependencies: - minimatch: 10.2.3 + minimatch: 11.0.1 minipass: 7.1.3 - path-scurry: 2.0.2 + path-scurry: 3.0.0 globals@17.13.0: {} @@ -2892,12 +2894,9 @@ snapshots: dependencies: mime-db: 1.54.0 - minimatch@10.2.3: - dependencies: - brace-expansion: 5.0.12 - - minimatch@10.2.6: + minimatch@11.0.1: dependencies: + '@isaacs/nonrecursive-glob-match': 1.0.3 brace-expansion: 5.0.12 minimist@1.2.8: {} @@ -2915,11 +2914,11 @@ snapshots: debug: 4.4.3(supports-color@8.1.1) diff: 8.0.3 find-up-simple: 1.0.1 - glob: 13.0.6 + glob: 14.0.2 is-path-inside: 4.0.0 is-unicode-supported: 0.1.0 js-yaml: 5.5.0 - minimatch: 10.2.3 + minimatch: 11.0.1 ms: 2.1.3 picocolors: 1.1.1 serialize-javascript: 7.1.2 @@ -2990,7 +2989,7 @@ snapshots: path-parse@1.0.7: {} - path-scurry@2.0.2: + path-scurry@3.0.0: dependencies: lru-cache: 11.5.3 minipass: 7.1.3 From 86acd62c2ab04efb33f42f481898904c4f719d43 Mon Sep 17 00:00:00 2001 From: finalerock44 <77282157+finalerock44@users.noreply.github.com> Date: Mon, 2 Nov 2026 12:04:18 +0000 Subject: [PATCH 05/10] =?UTF-8?q?fix(device):=20drop=20iOS=2017=20and=20fi?= =?UTF-8?q?ve=20iOS=20devices,=20and=20mirror=20the=20iPhone=20=E2=80=A6?= =?UTF-8?q?=20(#288)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix(device): drop iOS 17 and five iOS devices, and mirror the iPhone 16 / iOS 26 default The API removes iOS 17 and the iphone-15, iphone-16-plus, iphone-16-pro, iphone-16-pro-max and ipad-pro-6th-gen devices on 2 Nov 2026, and moves the default iOS target from iPhone 14 / iOS 17 to iPhone 16 / iOS 26. Each half still defaults on its own. iphone-14 stays, with iOS 18 only. - The help-text enums lose iOS 17 and the five devices; validation already follows the live compatibility data. - The default mirror is iphone-16 / 26, so a request that names one half is checked against the other half the API will actually use. A device-only request for a device without iOS 26 (now including iphone-14) is told to pass --ios-version, which is what the API answers too. A device-only iphone-17, iphone-air or M5 iPad request, or a version-only --ios-version 27, is no longer refused. - MCP examples and test fixtures use devices and versions the API still offers. schema.types.ts is deliberately not regenerated: the API drift would come with it. --- src/mcp/tools/run-cloud-test.ts | 4 +-- src/services/device-validation.service.ts | 4 +-- src/types/domain/device.types.ts | 6 ---- test/integration/cloud.integration.test.ts | 8 ++--- test/unit/device-matrix.test.ts | 4 +-- test/unit/device-validation.service.test.ts | 35 +++++++++++---------- 6 files changed, 28 insertions(+), 33 deletions(-) diff --git a/src/mcp/tools/run-cloud-test.ts b/src/mcp/tools/run-cloud-test.ts index 38ae9c6..6801ed9 100644 --- a/src/mcp/tools/run-cloud-test.ts +++ b/src/mcp/tools/run-cloud-test.ts @@ -89,8 +89,8 @@ export function registerRunCloudTest(server: McpServer): void { .string() .optional() .describe('ID of a previously uploaded binary. Mutually exclusive with appFile.'), - iosVersion: z.string().optional().describe('iOS version, e.g. "17"'), - iosDevice: z.string().optional().describe('iOS device, e.g. "iphone-14"'), + iosVersion: z.string().optional().describe('iOS version, e.g. "26"'), + iosDevice: z.string().optional().describe('iOS device, e.g. "iphone-16"'), androidApiLevel: z.string().optional().describe('Android API level, e.g. "34"'), androidDevice: z.string().optional().describe('Android device, e.g. "pixel-10"'), googlePlay: z.boolean().optional().describe('Use a Google Play-enabled Android image'), diff --git a/src/services/device-validation.service.ts b/src/services/device-validation.service.ts index bdc1417..f3daace 100644 --- a/src/services/device-validation.service.ts +++ b/src/services/device-validation.service.ts @@ -155,8 +155,8 @@ export class DeviceValidationService { `[DEBUG] Supported iOS versions: ${supportedVersions.join(', ')}`, ], // Mirrors the API's global defaults, as for Android above. - defaultDevice: 'iphone-14', - defaultVersion: '17', + defaultDevice: 'iphone-16', + defaultVersion: '26', device: iOSDevice, deviceArg: argNames.iOSDevice, deviceKind: 'iOS', diff --git a/src/types/domain/device.types.ts b/src/types/domain/device.types.ts index 85ebbf4..a6ca9d2 100644 --- a/src/types/domain/device.types.ts +++ b/src/types/domain/device.types.ts @@ -14,15 +14,10 @@ */ export enum EiOSDevices { - 'ipad-pro-6th-gen' = 'ipad-pro-6th-gen', 'ipad-pro-m5-11' = 'ipad-pro-m5-11', 'ipad-pro-m5-13' = 'ipad-pro-m5-13', 'iphone-14' = 'iphone-14', - 'iphone-15' = 'iphone-15', 'iphone-16' = 'iphone-16', - 'iphone-16-plus' = 'iphone-16-plus', - 'iphone-16-pro' = 'iphone-16-pro', - 'iphone-16-pro-max' = 'iphone-16-pro-max', 'iphone-17' = 'iphone-17', 'iphone-18-pro' = 'iphone-18-pro', 'iphone-18-pro-max' = 'iphone-18-pro-max', @@ -44,7 +39,6 @@ export enum EAndroidDevices { export enum EiOSVersions { 'eighteen' = '18', - 'seventeen' = '17', 'twentySeven' = '27', 'twentySix' = '26', } diff --git a/test/integration/cloud.integration.test.ts b/test/integration/cloud.integration.test.ts index 08a7806..8453f5d 100644 --- a/test/integration/cloud.integration.test.ts +++ b/test/integration/cloud.integration.test.ts @@ -141,7 +141,7 @@ appId: com.example.app describe('device management path', () => { it('should accept valid iOS device configuration', async () => { - const command = `${CLI} cloud ${iosAppFile} ${testFlowFile} --api-key ${mockApiKey} --api-url ${mockApiUrl} --ios-device iphone-14 --ios-version 17 --async --json`; + const command = `${CLI} cloud ${iosAppFile} ${testFlowFile} --api-key ${mockApiKey} --api-url ${mockApiUrl} --ios-device iphone-14 --ios-version 18 --async --json`; const { stdout } = await exec(command, { timeout: 30_000 }); expectAsyncRunJson(stdout); @@ -175,10 +175,10 @@ appId: com.example.app }); it('asks for the version when a lone device needs a non-default one', async () => { - const command = `${CLI} cloud ${iosAppFile} ${testFlowFile} --api-key ${mockApiKey} --api-url ${mockApiUrl} --ios-device iphone-17 --dry-run`; + const command = `${CLI} cloud ${iosAppFile} ${testFlowFile} --api-key ${mockApiKey} --api-url ${mockApiUrl} --ios-device iphone-14 --dry-run`; const { output } = await runExpectingFailure(command); - expect(output).to.include('iphone-17 only supports these iOS versions'); + expect(output).to.include('iphone-14 only supports these iOS versions'); expect(output).to.include('--ios-version'); }); }); @@ -186,7 +186,7 @@ appId: com.example.app // #1105 device matrix: repeated --ios-device-matrix / --android-device-matrix cells. describe('device matrix', () => { it('accepts a repeated --ios-device-matrix matrix and still yields one upload', async () => { - const command = `${CLI} cloud ${iosAppFile} ${testFlowFile} --api-key ${mockApiKey} --api-url ${mockApiUrl} --ios-device-matrix iphone-16:18 --ios-device-matrix iphone-16-pro:26 --async --json`; + const command = `${CLI} cloud ${iosAppFile} ${testFlowFile} --api-key ${mockApiKey} --api-url ${mockApiUrl} --ios-device-matrix iphone-16:18 --ios-device-matrix iphone-17:26 --async --json`; const { stdout } = await exec(command, { timeout: 30_000 }); // Still one upload with one uploadId — the matrix is a property of the diff --git a/test/unit/device-matrix.test.ts b/test/unit/device-matrix.test.ts index 20476a1..bb8a5cd 100644 --- a/test/unit/device-matrix.test.ts +++ b/test/unit/device-matrix.test.ts @@ -20,12 +20,12 @@ describe('parseDeviceMatrix', () => { it('parses each --ios-device-matrix as exactly one cell (no cross-product)', () => { const matrix = parseDeviceMatrix( - ['iphone-16:18', 'iphone-16-pro:26'], + ['iphone-16:18', 'iphone-17:26'], [], ); expect(matrix).to.deep.equal([ { iOSDevice: 'iphone-16', iOSVersion: '18' }, - { iOSDevice: 'iphone-16-pro', iOSVersion: '26' }, + { iOSDevice: 'iphone-17', iOSVersion: '26' }, ]); expect(matrixIsIos(matrix)).to.equal(true); }); diff --git a/test/unit/device-validation.service.test.ts b/test/unit/device-validation.service.test.ts index 5f25e9f..51b8a7b 100644 --- a/test/unit/device-validation.service.test.ts +++ b/test/unit/device-validation.service.test.ts @@ -11,7 +11,8 @@ import type { CompatibilityData } from '../../src/utils/compatibility.js'; */ const compat: CompatibilityData = { ios: { - 'iphone-14': ['17', '18'], + 'iphone-14': ['18'], + 'iphone-16': ['18', '26', '27'], 'iphone-17': ['26', '27'], 'iphone-19': ['28'], // A rollout gate can leave a device with nothing bookable. @@ -65,14 +66,14 @@ describe('DeviceValidationService', () => { describe('unknown devices', () => { it('rejects an unknown iOS device, listing what the API offers in its order', () => { - expect(() => ios('17', 'iphone-99')).to.throw( - 'iOS device "iphone-99" is not supported. Supported iOS devices: iphone-14, iphone-17, iphone-19. See https://docs.devicecloud.dev/getting-started/devices-configuration', + expect(() => ios('26', 'iphone-99')).to.throw( + 'iOS device "iphone-99" is not supported. Supported iOS devices: iphone-14, iphone-16, iphone-17, iphone-19. See https://docs.devicecloud.dev/getting-started/devices-configuration', ); }); it('never offers a gated device, and treats it as unsupported', () => { - expect(() => ios('17', 'iphone-gated')).to.throw( - /iOS device "iphone-gated" is not supported\. Supported iOS devices: iphone-14, iphone-17, iphone-19\./, + expect(() => ios('26', 'iphone-gated')).to.throw( + /iOS device "iphone-gated" is not supported\. Supported iOS devices: iphone-14, iphone-16, iphone-17, iphone-19\./, ); }); @@ -95,14 +96,14 @@ describe('DeviceValidationService', () => { }); it('does not resolve a prototype member as a device', () => { - expect(() => ios('17', 'constructor')).to.throw( + expect(() => ios('26', 'constructor')).to.throw( /iOS device "constructor" is not supported/, ); }); it('still fails when the API sent no list at all, without an empty list', () => { const noIos = { ...compat, ios: {} }; - expect(() => ios('17', 'iphone-14', noIos)).to.throw( + expect(() => ios('18', 'iphone-14', noIos)).to.throw( 'iOS device "iphone-14" is not supported. See https://docs.devicecloud.dev/getting-started/devices-configuration', ); }); @@ -116,7 +117,7 @@ describe('DeviceValidationService', () => { it('rejects an unsupported explicit pair with the device\'s versions', () => { expect(() => ios('27', 'iphone-14')).to.throw( - /^iphone-14 only supports these iOS versions: 17, 18$/, + /^iphone-14 only supports these iOS versions: 18$/, ); expect(() => android('34', 'pixel-10')).to.throw( /^pixel-10 only supports these Android API levels: 36, 37$/, @@ -129,13 +130,13 @@ describe('DeviceValidationService', () => { }); }); - // The API fills an omitted half from the same global defaults (iphone-14 / - // iOS 17, pixel-10 / API 36) and rejects an incompatible pair, so the CLI + // The API fills an omitted half from the same global defaults (iphone-16 / + // iOS 26, pixel-10 / API 36) and rejects an incompatible pair, so the CLI // mirrors that — but must tell the user to pass the other half. describe('requests that rely on a default', () => { it('tells a device-only iOS request to pass the version explicitly', () => { - expect(() => ios(undefined, 'iphone-17')).to.throw( - 'iphone-17 only supports these iOS versions: 26, 27. No iOS version was given, so the default (17) was checked: pass one of those explicitly with --ios-version', + expect(() => ios(undefined, 'iphone-14')).to.throw( + 'iphone-14 only supports these iOS versions: 18. No iOS version was given, so the default (26) was checked: pass one of those explicitly with --ios-version', ); }); @@ -146,14 +147,14 @@ describe('DeviceValidationService', () => { }); it('accepts a device-only request when the default version fits', () => { - expect(() => ios(undefined, 'iphone-14')).to.not.throw(); + expect(() => ios(undefined, 'iphone-17')).to.not.throw(); expect(() => android(undefined, 'pixel-7')).to.not.throw(); expect(() => android(undefined, 'pixel-10')).to.not.throw(); }); it('names the MCP tool parameters when asked to', () => { expect(() => - service.validateiOSDevice(undefined, 'iphone-17', compat, { + service.validateiOSDevice(undefined, 'iphone-14', compat, { argNames: MCP_ARG_NAMES, }), ).to.throw(/pass one of those explicitly with iosVersion$/); @@ -165,14 +166,14 @@ describe('DeviceValidationService', () => { }); it('points a version-only request at the devices that offer that version', () => { - expect(() => ios('27')).to.throw( - 'iphone-14 only supports these iOS versions: 17, 18. No iOS device was given, so the default (iphone-14) was checked: pass one that offers iOS 27 with --ios-device: iphone-17', + expect(() => ios('28')).to.throw( + 'iphone-16 only supports these iOS versions: 18, 26, 27. No iOS device was given, so the default (iphone-16) was checked: pass one that offers iOS 28 with --ios-device: iphone-19', ); }); it('says when no device offers the requested version at all', () => { expect(() => ios('99')).to.throw( - /No iOS device was given, so the default \(iphone-14\) was checked: no iOS device offers iOS 99$/, + /No iOS device was given, so the default \(iphone-16\) was checked: no iOS device offers iOS 99$/, ); // The default device (pixel-10) has Play images, as it does in the API. const playDefault = { From ac75b8f5f2be75c352fc63baac6b8027570c0a2f Mon Sep 17 00:00:00 2001 From: finalerock44 <77282157+finalerock44@users.noreply.github.com> Date: Mon, 2 Nov 2026 12:25:37 +0000 Subject: [PATCH 06/10] =?UTF-8?q?fix(cloud):=20show=20notices=20before=20r?= =?UTF-8?q?ejecting=20an=20unsupported=20iOS=20device=20o=E2=80=A6=20(#289?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix(cloud): show notices before rejecting an unsupported iOS device or version The iOS device/version check ran before the DB-driven notices were rendered, while the Android check ran after them (both date from the initial commit). So a run that pinned a removed iOS device or version was rejected without the notice that explains the removal: on 2 Nov 2026 the removed-ios-17-2026-11-02 and removed-ios-devices-2026-11-02 notices never showed in the CLI, only the bare "not supported" error. The iOS check now runs right after the notices, next to the Android one. Nothing between the two reads the validation result, and the notice context uses the raw flags, so only the output order changes. Checked against dev: --ios-device iphone-15 and --ios-device iphone-14 --ios-version 17 now print their removed notice, then the same error. The MCP tool (dcd_run_cloud_test) renders no notices, so it is unchanged. --- src/commands/cloud.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/commands/cloud.ts b/src/commands/cloud.ts index 969c633..f9a8261 100644 --- a/src/commands/cloud.ts +++ b/src/commands/cloud.ts @@ -490,11 +490,6 @@ export const cloudCommand = defineCommand({ throw new CliError('You must provide a flow file'); } - deviceValidationService.validateiOSDevice(iOSVersion, iOSDevice, compatibilityData, { - debug, - logger: (m: string) => out(m), - }); - // Render DB-driven notices (deprecation/warn/info/marketing) the API // returned with the compatibility data. Replaces the previously hardcoded // iOS-16 deprecation warning — that is now a seeded notice gated on the @@ -529,6 +524,13 @@ export const cloudCommand = defineCommand({ learnMoreUrl: n.learnMoreUrl, })); + // Validated after the notices, so a notice aimed at a removed device or + // OS version (e.g. removed-ios-17-2026-11-02) is shown before the + // rejection it explains. + deviceValidationService.validateiOSDevice(iOSVersion, iOSDevice, compatibilityData, { + debug, + logger: (m: string) => out(m), + }); deviceValidationService.validateAndroidDevice( androidApiLevel, androidDevice, From e8bf43272aae7c218dd89dbb2dea275f773eca1e Mon Sep 17 00:00:00 2001 From: finalerock44 <77282157+finalerock44@users.noreply.github.com> Date: Mon, 2 Nov 2026 13:35:16 +0000 Subject: [PATCH 07/10] =?UTF-8?q?fix(device):=20keep=20iOS=2017,=20iPhone?= =?UTF-8?q?=2016=20Pro=20and=20iPhone=2016=20Pro=20Max=20in=20the=20?= =?UTF-8?q?=E2=80=A6=20(#290)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix(device): keep iOS 17, iPhone 16 Pro and iPhone 16 Pro Max in the help text iOS 17, iphone-16-pro and iphone-16-pro-max stay supported until a later removal, so the --ios-device and --ios-version help text lists them again. iphone-15, iphone-16-plus and ipad-pro-6th-gen stay removed, and the default mirror stays iphone-16 / iOS 26. The validation test fixture gives iphone-14 iOS 17 and 18 again, as the API does; a device-only iphone-14 request still fails because iOS 26 is not offered, and its message now lists 17, 18. --- src/types/domain/device.types.ts | 3 +++ test/unit/device-validation.service.test.ts | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/types/domain/device.types.ts b/src/types/domain/device.types.ts index a6ca9d2..3cce15e 100644 --- a/src/types/domain/device.types.ts +++ b/src/types/domain/device.types.ts @@ -18,6 +18,8 @@ export enum EiOSDevices { 'ipad-pro-m5-13' = 'ipad-pro-m5-13', 'iphone-14' = 'iphone-14', 'iphone-16' = 'iphone-16', + 'iphone-16-pro' = 'iphone-16-pro', + 'iphone-16-pro-max' = 'iphone-16-pro-max', 'iphone-17' = 'iphone-17', 'iphone-18-pro' = 'iphone-18-pro', 'iphone-18-pro-max' = 'iphone-18-pro-max', @@ -39,6 +41,7 @@ export enum EAndroidDevices { export enum EiOSVersions { 'eighteen' = '18', + 'seventeen' = '17', 'twentySeven' = '27', 'twentySix' = '26', } diff --git a/test/unit/device-validation.service.test.ts b/test/unit/device-validation.service.test.ts index 51b8a7b..943020f 100644 --- a/test/unit/device-validation.service.test.ts +++ b/test/unit/device-validation.service.test.ts @@ -11,7 +11,7 @@ import type { CompatibilityData } from '../../src/utils/compatibility.js'; */ const compat: CompatibilityData = { ios: { - 'iphone-14': ['18'], + 'iphone-14': ['17', '18'], 'iphone-16': ['18', '26', '27'], 'iphone-17': ['26', '27'], 'iphone-19': ['28'], @@ -117,7 +117,7 @@ describe('DeviceValidationService', () => { it('rejects an unsupported explicit pair with the device\'s versions', () => { expect(() => ios('27', 'iphone-14')).to.throw( - /^iphone-14 only supports these iOS versions: 18$/, + /^iphone-14 only supports these iOS versions: 17, 18$/, ); expect(() => android('34', 'pixel-10')).to.throw( /^pixel-10 only supports these Android API levels: 36, 37$/, @@ -136,7 +136,7 @@ describe('DeviceValidationService', () => { describe('requests that rely on a default', () => { it('tells a device-only iOS request to pass the version explicitly', () => { expect(() => ios(undefined, 'iphone-14')).to.throw( - 'iphone-14 only supports these iOS versions: 18. No iOS version was given, so the default (26) was checked: pass one of those explicitly with --ios-version', + 'iphone-14 only supports these iOS versions: 17, 18. No iOS version was given, so the default (26) was checked: pass one of those explicitly with --ios-version', ); }); From 304a3231077ac597e443208a80a9421c67436a6d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Nov 2026 18:08:33 +0000 Subject: [PATCH 08/10] chore: bump eslint-plugin-unicorn from 78.0.0 to 79.0.0 (#292) Bumps [eslint-plugin-unicorn](https://github.com/sindresorhus/eslint-plugin-unicorn) from 78.0.0 to 79.0.0. - [Release notes](https://github.com/sindresorhus/eslint-plugin-unicorn/releases) - [Commits](https://github.com/sindresorhus/eslint-plugin-unicorn/compare/v78.0.0...v79.0.0) --- updated-dependencies: - dependency-name: eslint-plugin-unicorn dependency-version: 79.0.0 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 66 +++++++++++++++++++++++++------------------------- 2 files changed, 34 insertions(+), 34 deletions(-) diff --git a/package.json b/package.json index ebb1a62..26d8056 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "chai": "^6.2.2", "eslint": "^10.5.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-unicorn": "^78.0.0", + "eslint-plugin-unicorn": "^79.0.0", "husky": "^9.1.7", "mocha": "^12.0.0", "prettier": "^3.8.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1b8ec3e..055719f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -109,8 +109,8 @@ importers: specifier: ^10.1.8 version: 10.1.8(eslint@10.13.0) eslint-plugin-unicorn: - specifier: ^78.0.0 - version: 78.0.0(eslint@10.13.0)(typescript@6.0.3) + specifier: ^79.0.0 + version: 79.0.0(eslint@10.13.0)(typescript@6.0.3) husky: specifier: ^9.1.7 version: 9.1.7 @@ -579,8 +579,8 @@ packages: resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} engines: {node: 18 || 20 || >=22} - baseline-browser-mapping@2.11.29: - resolution: {integrity: sha512-YeesxhUmR4h5y5V8KF8iBCqJb8YFrBJ++XBTeGcWIaQOYXGN19JM0FoiOjAhwuDoln8owMgXcWBmgHtYSkky2w==} + baseline-browser-mapping@2.11.34: + resolution: {integrity: sha512-Aqr8mA1kIvyJ3UY5YAY7ib8LSo1DmDMbMnVqGPtsKW1LxaFQFwn9Eb3yvq2fUKJsRvaXjnAV7R5osqETapzNiA==} engines: {node: '>=6.0.0'} hasBin: true @@ -603,8 +603,8 @@ packages: browser-stdout@1.3.1: resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} - browserslist@4.29.3: - resolution: {integrity: sha512-1R4kiYKXGViqEN0CnoDrXc1StD9niAwu+j2dukWzrD4bJgsD4lDmEp0CRbc6E/vYJIfTHwPmwyaKtVSudICdPA==} + browserslist@4.29.5: + resolution: {integrity: sha512-khTmKu5NGYTotqcYo8Bew2k4RAE9PuXRSFRXG2lQBrCEQHyeQ/vX6gKMxfokwywBsLiXZMnHsmWMG1pnO8J7uQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -634,8 +634,8 @@ packages: resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} engines: {node: '>= 0.4'} - caniuse-lite@1.0.30001816: - resolution: {integrity: sha512-+8Yx7BXCoqk6IF8yTicjfUR6D/ldJzdlsodlEOiOSPmhK844WIgk67/zIQaGAOxNkZyyvBlrRFnLvqKIoqbAFw==} + caniuse-lite@1.0.30001820: + resolution: {integrity: sha512-gfWD6MxqVCqAOwmODfZf7DchWvlrA+SRdNX7ceLfg3xRqe5ssjjpF7EgslC/0tiLiNTajdaNN/q8c/5u/7Gz8w==} chai@6.3.0: resolution: {integrity: sha512-XWAtwJ6OHO+tj0EKCs0Y2UamnyOxseZWltU4x2U2wh8g4AigdjwvtUjvLP2tqkA/avxHEtzxNaqGq/YGNwckKg==} @@ -689,8 +689,8 @@ packages: resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} engines: {node: '>= 0.6'} - core-js-compat@3.50.0: - resolution: {integrity: sha512-XGpFGbMLHwSt74YLTKho7Ib242qi6O8MSX+sRokV4oz7iKXvQWGYZthjIhjRGMxjzVkAubBO512dKGYcefmX3Q==} + core-js-compat@3.51.0: + resolution: {integrity: sha512-52r6fkXgxv4GLMjmFcMWRx7X9bw071xTTdrDcdyPGRqU2oE+9pCG0bAOMifSBdLw0JRBZKEF0q3B55qPlLuE8g==} engines: {node: '>=6.4.0'} cors@2.8.6: @@ -749,8 +749,8 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.5.458: - resolution: {integrity: sha512-/hIH2gRSmxrf4/X4Nw/t/Wc8PVS22l8/3HnWjWTWsTOM5dsnMUPZF/+u+yr3LqweNuTBJE1rq6qAQzKkZVwMfA==} + electron-to-chromium@1.5.468: + resolution: {integrity: sha512-8XdEp3sIqO+PzmVPxhzqHq/3+yCxp44m27cm2WY1sRn3ZhwKyKmqSi2hx6gEhmnOXmh8NUuYE00z6Onzn5m6DA==} encodeurl@2.0.0: resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} @@ -797,8 +797,8 @@ packages: peerDependencies: eslint: '>=7.0.0' - eslint-plugin-unicorn@78.0.0: - resolution: {integrity: sha512-XTDqxcJeAmh2lhgU75TpuMDdFtPDnAU+DCW56nR5UzXTG+uOyvOGjV80O11my7kNb2bYSCPlWa8c4K8/rwlYog==} + eslint-plugin-unicorn@79.0.0: + resolution: {integrity: sha512-k7MWrjoVTVCnjKpgaxBuScPNSPomLvDpsd9uADpWrIFzrnwiec27eWhGrmmyuTj1bC3xVNYP4QfG3MEzEw6ifg==} engines: {node: '>=22'} peerDependencies: eslint: '>=10.4' @@ -1301,8 +1301,8 @@ packages: nice-try@1.0.5: resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} - node-releases@2.0.59: - resolution: {integrity: sha512-5qr2okC4ItAI0hG5SaV0HoYMpnM/Y6+Oqr7AmPYy/2uEoGvS+GbSKLeRxSS1uAdu59yz0ouzcuXievSgg///WA==} + node-releases@2.0.62: + resolution: {integrity: sha512-A0Eq+qVDQI97IbAD6g/HriIuv256el9N8EwF4+xqJ49pwrdRYpdCSmLk0sO4I3fnS6hpYE5v22B73Bk+WArEoQ==} engines: {node: '>=18'} node-stream-zip@1.16.0: @@ -2117,7 +2117,7 @@ snapshots: balanced-match@4.0.4: {} - baseline-browser-mapping@2.11.29: {} + baseline-browser-mapping@2.11.34: {} body-parser@2.4.0: dependencies: @@ -2145,13 +2145,13 @@ snapshots: browser-stdout@1.3.1: {} - browserslist@4.29.3: + browserslist@4.29.5: dependencies: - baseline-browser-mapping: 2.11.29 - caniuse-lite: 1.0.30001816 - electron-to-chromium: 1.5.458 - node-releases: 2.0.59 - update-browserslist-db: 1.3.4(browserslist@4.29.3) + baseline-browser-mapping: 2.11.34 + caniuse-lite: 1.0.30001820 + electron-to-chromium: 1.5.468 + node-releases: 2.0.62 + update-browserslist-db: 1.3.4(browserslist@4.29.5) buffer-crc32@1.0.0: {} @@ -2179,7 +2179,7 @@ snapshots: call-bind-apply-helpers: 1.0.2 get-intrinsic: 1.3.0 - caniuse-lite@1.0.30001816: {} + caniuse-lite@1.0.30001820: {} chai@6.3.0: {} @@ -2214,9 +2214,9 @@ snapshots: cookie@0.7.2: {} - core-js-compat@3.50.0: + core-js-compat@3.51.0: dependencies: - browserslist: 4.29.3 + browserslist: 4.29.5 cors@2.8.6: dependencies: @@ -2271,7 +2271,7 @@ snapshots: ee-first@1.1.1: {} - electron-to-chromium@1.5.458: {} + electron-to-chromium@1.5.468: {} encodeurl@2.0.0: {} @@ -2328,14 +2328,14 @@ snapshots: dependencies: eslint: 10.13.0 - eslint-plugin-unicorn@78.0.0(eslint@10.13.0)(typescript@6.0.3): + eslint-plugin-unicorn@79.0.0(eslint@10.13.0)(typescript@6.0.3): dependencies: '@eslint-community/eslint-utils': 4.10.1(eslint@10.13.0) '@eslint/css-tree': 4.1.2 - browserslist: 4.29.3 + browserslist: 4.29.5 change-case: 5.4.4 ci-info: 4.4.0 - core-js-compat: 3.50.0 + core-js-compat: 3.51.0 detect-indent: 7.0.2 entities: 8.1.0 eslint: 10.13.0 @@ -2936,7 +2936,7 @@ snapshots: nice-try@1.0.5: {} - node-releases@2.0.59: {} + node-releases@2.0.62: {} node-stream-zip@1.16.0: {} @@ -3273,9 +3273,9 @@ snapshots: unpipe@1.0.0: {} - update-browserslist-db@1.3.4(browserslist@4.29.3): + update-browserslist-db@1.3.4(browserslist@4.29.5): dependencies: - browserslist: 4.29.3 + browserslist: 4.29.5 escalade: 3.2.0 picocolors: 1.1.1 From 2002ad3ff194831db17dc66e16cdfd6f9d3d2f25 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Nov 2026 18:13:07 +0000 Subject: [PATCH 09/10] deps: bump the minor-and-patch group across 1 directory with 4 updates (#291) Bumps the minor-and-patch group with 4 updates in the / directory: [@modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/typescript-sdk), [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node), [eslint](https://github.com/eslint/eslint) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint). Updates `@modelcontextprotocol/sdk` from 1.32.1 to 1.32.2 - [Release notes](https://github.com/modelcontextprotocol/typescript-sdk/releases) - [Commits](https://github.com/modelcontextprotocol/typescript-sdk/compare/1.32.1...1.32.2) Updates `@types/node` from 26.6.5 to 26.6.6 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `eslint` from 10.13.0 to 10.14.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Commits](https://github.com/eslint/eslint/compare/v10.13.0...v10.14.0) Updates `typescript-eslint` from 8.72.0 to 8.72.1 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.72.1/packages/typescript-eslint) --- updated-dependencies: - dependency-name: "@modelcontextprotocol/sdk" dependency-version: 1.32.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: minor-and-patch - dependency-name: "@types/node" dependency-version: 26.6.6 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: minor-and-patch - dependency-name: eslint dependency-version: 10.14.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: minor-and-patch - dependency-name: typescript-eslint dependency-version: 8.72.1 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: minor-and-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pnpm-lock.yaml | 268 ++++++++++++++++++++++++------------------------- 1 file changed, 134 insertions(+), 134 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 055719f..5e22f9a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -46,7 +46,7 @@ importers: version: 1.8.1 '@modelcontextprotocol/sdk': specifier: ^1.31.0 - version: 1.32.1(zod@4.6.7) + version: 1.32.2(zod@4.6.7) '@supabase/supabase-js': specifier: ^2.108.2 version: 2.118.0 @@ -83,7 +83,7 @@ importers: devDependencies: '@eslint/js': specifier: ^10.0.1 - version: 10.0.1(eslint@10.13.0) + version: 10.0.1(eslint@10.14.0) '@types/chai': specifier: ^5.2.3 version: 5.2.3 @@ -95,7 +95,7 @@ importers: version: 10.0.10 '@types/node': specifier: ^26.0.0 - version: 26.6.5 + version: 26.6.6 '@types/yazl': specifier: ^3.3.1 version: 3.3.1 @@ -104,13 +104,13 @@ importers: version: 6.3.0 eslint: specifier: ^10.5.0 - version: 10.13.0 + version: 10.14.0 eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.13.0) + version: 10.1.8(eslint@10.14.0) eslint-plugin-unicorn: specifier: ^79.0.0 - version: 79.0.0(eslint@10.13.0)(typescript@6.0.3) + version: 79.0.0(eslint@10.14.0)(typescript@6.0.3) husky: specifier: ^9.1.7 version: 9.1.7 @@ -131,7 +131,7 @@ importers: version: 6.0.3 typescript-eslint: specifier: ^8.61.1 - version: 8.72.0(eslint@10.13.0)(typescript@6.0.3) + version: 8.72.1(eslint@10.14.0)(typescript@6.0.3) packages: @@ -348,8 +348,8 @@ packages: resolution: {integrity: sha512-IkO+/KEUvwbVpiURZg+P7zF74z5Jxe0UgJxVni+RtoHQ6IZieXaO02kmadomap/q+l6bc/jdPGGqTjhuZnuz1Q==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@hono/node-server@2.1.4': - resolution: {integrity: sha512-2g1qeHl4BduwDn6L8nkAvDrPUWPMlkQ//a5NhP/zIyaXKMjZNRV+cG9Csu+BiJFf6+68pqzjf4Hi5sJGKHuS1g==} + '@hono/node-server@2.1.5': + resolution: {integrity: sha512-MgP/I06GdvsilDspMk/qmRzpk8LOUStP6jFAbSRi40W09DhoyUn+Mj7eyKICPqeYKybOjVFLVIAQzvu1bfIa7Q==} engines: {node: '>=20'} peerDependencies: hono: 4.13.11 @@ -390,8 +390,8 @@ packages: '@keyv/serialize@1.1.1': resolution: {integrity: sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==} - '@modelcontextprotocol/sdk@1.32.1': - resolution: {integrity: sha512-2DdE+SJDtzLEEWzY1ZjY7Q+VcPhcV1KisD3zI4u0XZyktsjHum1mwbMI+JaulUBi2OZk+KJAi2uPXzxichPkdw==} + '@modelcontextprotocol/sdk@1.32.2': + resolution: {integrity: sha512-SWsVtH/0vULSQStoZ6xxH2K09Li8fXYTMC64ZeogCdpZ3XSi1eCPOByV1OpuJxuI3OcmHhosDWYyii07tpPsLw==} engines: {node: '>=18'} peerDependencies: '@cfworker/json-schema': ^4.1.1 @@ -456,8 +456,8 @@ packages: '@types/esrecurse@4.3.1': resolution: {integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==} - '@types/estree@1.0.9': - resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} + '@types/estree@1.0.10': + resolution: {integrity: sha512-lTyOMnOcmRBzdCv6/4zUZCrEhV0xrqQiUZBZtVcbmLHBXKLnN8q89v/wKRF/Q0HbwVsqbIG3o5HDoFl9sduM+g==} '@types/js-yaml@4.0.9': resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} @@ -471,69 +471,69 @@ packages: '@types/ms@2.1.0': resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - '@types/node@26.6.5': - resolution: {integrity: sha512-uMzsv9stDdofIZBx4UGh4Z9ZgXnGC9seRDscilBcTHAeOFk67MZg/k9bWVfO+bk4qZmG+l52hRnLwUiH2LnJTg==} + '@types/node@26.6.6': + resolution: {integrity: sha512-MzQj+8Kx3XI40OmUAE6Qoh58ZMNstNNMwn2nfd3qWsfe7nDNSqJNzes4njhz6AHwrSHOffSLwXU6yb474Q4aog==} '@types/yazl@3.3.1': resolution: {integrity: sha512-DIWfCKpsTp6hE5BDBHV3+fIL/bLUF9Bv13iDrWnMlmhQpH67buNvI291ZauQ1xcccxK3FqQ9honnXpq4R8NMuQ==} - '@typescript-eslint/eslint-plugin@8.72.0': - resolution: {integrity: sha512-aysKgysPX9XOv/dk95UkvUDe++Q3n3dJPG9CEWT3RUccxfkPJ+Qn6nhKPDhZXU6Ofo9kgwGWwKyQCnZIXTgngg==} + '@typescript-eslint/eslint-plugin@8.72.1': + resolution: {integrity: sha512-5CokTWXpmbylfFabsbvHC0CAw3XLaGnoa+nFJX5FR592h/LoZsENUE6p/rg5xvkKrFEXz6pYmgI29AgXc2N3BQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.72.0 + '@typescript-eslint/parser': ^8.72.1 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/parser@8.72.0': - resolution: {integrity: sha512-0O+x3ynciD6zuXb1CKSu165haQV6ey53DKhHHUnujP7U+XlltJG+/keT0Xhd1HXCze+IHf7Tvt39ovyepX/LNw==} + '@typescript-eslint/parser@8.72.1': + resolution: {integrity: sha512-ZGwZP4OCfyA0AQTpEAMWz+rtX01DRhQWW5hB0ucKDEIX5U7jdmPSaMx94rQfaPAQzIYz2BimOgKOJtjfpRFQ9g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/project-service@8.72.0': - resolution: {integrity: sha512-bzHngBbmIgzj6TsTjVUCntGx6FFLgE7mPjpO0PzHycOaZHXqS43XnrkFIHRS16LLr/xO6FHSXG3GJFo/F4bSBQ==} + '@typescript-eslint/project-service@8.72.1': + resolution: {integrity: sha512-fAuVMkwdO/huI8nyo/WKnNKf6Gag93S56Rh3Ts5mGcavwSdaN8tRg1gCeIGX8PF+nzp1BjGfO4gHhGzW1J6jTg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/scope-manager@8.72.0': - resolution: {integrity: sha512-JewPyJOYcXBSAS7PIgufscHOwZqhTGyBRiQJhhuDln66tMchxvvt7nJ90JKKIoOelmdHA3kAQbm9cEUHc4JSEA==} + '@typescript-eslint/scope-manager@8.72.1': + resolution: {integrity: sha512-lC/t6eMCZZQAAKZEYGL6RDVSuFehpdmMT6h+nJIjIa6oylN/PwDgDVtEIbB7O9xFfZYtZAYLoLlDNWKJhtF+uQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.72.0': - resolution: {integrity: sha512-0vbxCf7xLVPSjcOdm6eQbgViH8EDJ8xnl1laLT9yoqSz2YmcSfSg5Vdl0JUvZf6rcuJ0ZivJIuMD4edTg8obaA==} + '@typescript-eslint/tsconfig-utils@8.72.1': + resolution: {integrity: sha512-e4D5R5vpeAEPBxT2BAzsFQL3sbwyeeeo5+aczgNSRK1V734jE7pTqaGFU+fXapWEQwnZbpFaTn32+Z8DwS6OTg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/type-utils@8.72.0': - resolution: {integrity: sha512-gEXxmmbSTSOVTC37IYYvremOM31v+UN2W772bJxmVYPhAOPSUxtacyb7wkm1EhkYKU6KzFJsdU44DCV4to0LWw==} + '@typescript-eslint/type-utils@8.72.1': + resolution: {integrity: sha512-iY2wlmyrXJmx4yxUGP3aYCFF3cA/6ShddOKmLU2dx7LnEykbAM8WThlxZEfd1NddqceF6eJmZUayxx9oKIYNlg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/types@8.72.0': - resolution: {integrity: sha512-Adfoy59kxNEjT5E5fnyrp7GpHYuWs8ONbdohu4ez6IU46qDq8LltG90tLmkucZB2uhYL8mqBjtXqGd8yhfjXqQ==} + '@typescript-eslint/types@8.72.1': + resolution: {integrity: sha512-LmE5IhQet1BWOWEXqBrVtBPsMAOQ6Nzk35d+WLh3mk4EUF33sqlfxjio1MdYeSvKSG5skactKKuixBIKXhL4Rw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.72.0': - resolution: {integrity: sha512-gwLfFgWcw15tN2KXDCJvxEOQjPn+P3j/n3eSqkZ5sX4VpW9Cosodr+tWwBZRvJT3TcKx6HnPRGZMCNAiP1Xhug==} + '@typescript-eslint/typescript-estree@8.72.1': + resolution: {integrity: sha512-DAlUoUV93hIvrtIQLwCbmZQYVZwOMhiHJrOVUUIWicFZaIYjTRqlY3I/NZevfkLmSqkNHRu2qYDcq9lrn16oOQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/utils@8.72.0': - resolution: {integrity: sha512-0up3oArJZBYnzOaEXKo8DmI43QvMZyPoFEt9LWzRJcyl/RcJjfKKPebknN1VbTgXBf3M/KggUh5uUMdURLnseg==} + '@typescript-eslint/utils@8.72.1': + resolution: {integrity: sha512-5v5liypurJBFHCBNqh/RjsymAD+VWcE0djuGY/BUqp5fC3Qn+luWDEksjuTtWjPn6i5zQlUtkZCRG/CYG0yCkA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/visitor-keys@8.72.0': - resolution: {integrity: sha512-E2mroviasaWecDzTGiGMtuEguuLVOeRggnrIn93CJuxYJzQBHbyymlT08aVQydbBal5538o+JkBKXh2sRuCyIA==} + '@typescript-eslint/visitor-keys@8.72.1': + resolution: {integrity: sha512-SB8xqipSzZHUePCCLNeYxqnxq83X61/qzNhjQGbTfjxGZIeOEP7tBgWYX05Tcd6CgE02WdTJnh5b8kMZJ/+bnQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@xmldom/xmldom@0.9.12': @@ -752,8 +752,8 @@ packages: electron-to-chromium@1.5.468: resolution: {integrity: sha512-8XdEp3sIqO+PzmVPxhzqHq/3+yCxp44m27cm2WY1sRn3ZhwKyKmqSi2hx6gEhmnOXmh8NUuYE00z6Onzn5m6DA==} - encodeurl@2.0.0: - resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + encodeurl@2.0.1: + resolution: {integrity: sha512-Ev/hIyePLZtpL98x562lvPtenrUfGr0lfaf44HFZ+hDEwso7ccV9QAZrEVLg0hxNAzygaAFxy2dYaAKKM0G06A==} engines: {node: '>= 0.8'} end-of-stream@1.4.5: @@ -819,8 +819,8 @@ packages: resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - eslint@10.13.0: - resolution: {integrity: sha512-UohDjD4zSzEwhf58M3O7vc/ycc8O1I7dNlhtD0WxE8Px8EHNJKtUwzBqrzeGhisRuv2ag4sAYswszCJRgKXYUg==} + eslint@10.14.0: + resolution: {integrity: sha512-T0pNsxkb9IKmtQjhpK3d7nWOpFv+YHuMbTJnSVMoQblF0onvXfErrtp4V1jHtsQPan7dKaGVD0q1WCXnzMF31A==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} hasBin: true peerDependencies: @@ -865,8 +865,8 @@ packages: resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} engines: {node: '>=6'} - express-rate-limit@8.7.1: - resolution: {integrity: sha512-2FXbqkygil3mZiXzEtM0IjE/UBmBNot0J1GEVrJT4JbrvwOSoEtqtO+wHbiMQELWe1eNvHoYRg2dkjOid+6JkA==} + express-rate-limit@8.7.2: + resolution: {integrity: sha512-U1ScocxDD9WI09LaBVypvNkOtNR5yWAmZLkuKJdAzIchA4YKFYF6GT5IKER7epG58oXtjvGlV0/6ii0F83EyZg==} engines: {node: '>= 16'} peerDependencies: express: '>= 4.11' @@ -1039,8 +1039,8 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} - ignore@7.0.13: - resolution: {integrity: sha512-2E8Q6rh+1RRSq/YdaGsNfXsEZy9FVqv6BSSrkmZJP7BnaoPnRfKL+YaofPvP+5rzdk144qSm6i4+hvPgUcbV4Q==} + ignore@7.0.14: + resolution: {integrity: sha512-wCBiZ77u1tuWde6G/nfOtLaCTYcFDU5yCzARzK10y+rLhzYoL7a7yEemcopcc2Mzow7gZOIjnV2ym1NYmdiJOQ==} engines: {node: '>= 4'} imurmurhash@0.1.4: @@ -1058,8 +1058,8 @@ packages: resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} engines: {node: '>= 0.10'} - ip-address@10.7.4: - resolution: {integrity: sha512-DWBMKyeM25D70nrIiTkgQth59/G+naKOTep6huF9j+GmeK3DMD60Zvxg5d5qQnz+38AHgou6ean2LECX+lrKDg==} + ip-address@10.7.5: + resolution: {integrity: sha512-t2v0rkILYv9WXmSL7TpAaU3HXgaFYOPUcH3QHgwQ++gpJuH3bqyMy4Fvt/DJCTKwzH3Cf+bAp5W/mFL39KPLzA==} engines: {node: '>= 12'} ipaddr.js@1.9.1: @@ -1108,8 +1108,8 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - jose@6.2.12: - resolution: {integrity: sha512-9NiFmJEex0sy2Dk58j2UGBSHgUs2ypF9eZSu4L6vjOX3Dp96Sw1F3uL+H+D1sx02jZZdzUT0HgvCy59CuvXcWw==} + jose@6.2.14: + resolution: {integrity: sha512-3JasLuki1NRLQvY4wCoC37KZk4qxoBx2k2aFqLxT84IezqW0bkJKnNtxnZj/Fu1xsQivoc/lytxaRHJoGLjJ1A==} js-base64@3.7.8: resolution: {integrity: sha512-hNngCeKxIUQiEUN3GPJOkz4wF/YvdUdbNL9hsBcMQTkKzboD7T/q3OYOuuPZLUE6dBxSGpwhk5mwuDud7JVAow==} @@ -1321,8 +1321,8 @@ packages: resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} engines: {node: '>= 0.4'} - on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + on-finished@2.4.2: + resolution: {integrity: sha512-ATWUv387i+nLD49EiDoOft5scf32Vsdz3ktrQJG9bi7jRFmaXTssvyvj1EmeKVVgvesbqUtvQQvaS2TpTukAZQ==} engines: {node: '>= 0.8'} once@1.4.0: @@ -1633,8 +1633,8 @@ packages: resolution: {integrity: sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==} engines: {node: '>= 18'} - typescript-eslint@8.72.0: - resolution: {integrity: sha512-r26Fkc8As+mZvqp7SLsMmNFyYUup/6CjK7/eHBHmhOw6GH6n6YFxHVFrG0jN1c5CMpDzelLPxvgeCOzx7BjN+A==} + typescript-eslint@8.72.1: + resolution: {integrity: sha512-3Li9FfPmQp45nxEtFD1ZCrYFI3cYK5kpyNtmm1H7lMagm8u9sy6PTjy3ytwQZs7KNukOyKFHAZ6z6GjYFeaeXw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -1819,9 +1819,9 @@ snapshots: '@esbuild/win32-x64@0.28.2': optional: true - '@eslint-community/eslint-utils@4.10.1(eslint@10.13.0)': + '@eslint-community/eslint-utils@4.10.1(eslint@10.14.0)': dependencies: - eslint: 10.13.0 + eslint: 10.14.0 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.2': {} @@ -1847,9 +1847,9 @@ snapshots: mdn-data: 2.37.2 source-map-js: 1.2.2 - '@eslint/js@10.0.1(eslint@10.13.0)': + '@eslint/js@10.0.1(eslint@10.14.0)': optionalDependencies: - eslint: 10.13.0 + eslint: 10.14.0 '@eslint/object-schema@3.0.5': {} @@ -1858,7 +1858,7 @@ snapshots: '@eslint/core': 1.2.1 levn: 0.4.1 - '@hono/node-server@2.1.4(hono@4.13.11)': + '@hono/node-server@2.1.5(hono@4.13.11)': dependencies: hono: 4.13.11 @@ -1892,9 +1892,9 @@ snapshots: '@keyv/serialize@1.1.1': {} - '@modelcontextprotocol/sdk@1.32.1(zod@4.6.7)': + '@modelcontextprotocol/sdk@1.32.2(zod@4.6.7)': dependencies: - '@hono/node-server': 2.1.4(hono@4.13.11) + '@hono/node-server': 2.1.5(hono@4.13.11) ajv: 8.20.0 ajv-formats: 3.0.1(ajv@8.20.0) content-type: 1.0.5 @@ -1903,9 +1903,9 @@ snapshots: eventsource: 3.0.7 eventsource-parser: 3.1.1 express: 5.3.0 - express-rate-limit: 8.7.1(express@5.3.0) + express-rate-limit: 8.7.2(express@5.3.0) hono: 4.13.11 - jose: 6.2.12 + jose: 6.2.14 json-schema-typed: 8.0.2 pkce-challenge: 5.0.1 raw-body: 3.0.2 @@ -1971,7 +1971,7 @@ snapshots: '@types/esrecurse@4.3.1': {} - '@types/estree@1.0.9': {} + '@types/estree@1.0.10': {} '@types/js-yaml@4.0.9': {} @@ -1981,80 +1981,80 @@ snapshots: '@types/ms@2.1.0': {} - '@types/node@26.6.5': + '@types/node@26.6.6': dependencies: undici-types: 8.9.0 '@types/yazl@3.3.1': dependencies: - '@types/node': 26.6.5 + '@types/node': 26.6.6 - '@typescript-eslint/eslint-plugin@8.72.0(@typescript-eslint/parser@8.72.0(eslint@10.13.0)(typescript@6.0.3))(eslint@10.13.0)(typescript@6.0.3)': + '@typescript-eslint/eslint-plugin@8.72.1(@typescript-eslint/parser@8.72.1(eslint@10.14.0)(typescript@6.0.3))(eslint@10.14.0)(typescript@6.0.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.72.0(eslint@10.13.0)(typescript@6.0.3) - '@typescript-eslint/scope-manager': 8.72.0 - '@typescript-eslint/type-utils': 8.72.0(eslint@10.13.0)(typescript@6.0.3) - '@typescript-eslint/utils': 8.72.0(eslint@10.13.0)(typescript@6.0.3) - '@typescript-eslint/visitor-keys': 8.72.0 - eslint: 10.13.0 - ignore: 7.0.13 + '@typescript-eslint/parser': 8.72.1(eslint@10.14.0)(typescript@6.0.3) + '@typescript-eslint/scope-manager': 8.72.1 + '@typescript-eslint/type-utils': 8.72.1(eslint@10.14.0)(typescript@6.0.3) + '@typescript-eslint/utils': 8.72.1(eslint@10.14.0)(typescript@6.0.3) + '@typescript-eslint/visitor-keys': 8.72.1 + eslint: 10.14.0 + ignore: 7.0.14 natural-compare: 1.4.0 ts-api-utils: 2.5.0(typescript@6.0.3) typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.72.0(eslint@10.13.0)(typescript@6.0.3)': + '@typescript-eslint/parser@8.72.1(eslint@10.14.0)(typescript@6.0.3)': dependencies: - '@typescript-eslint/scope-manager': 8.72.0 - '@typescript-eslint/types': 8.72.0 - '@typescript-eslint/typescript-estree': 8.72.0(typescript@6.0.3) - '@typescript-eslint/visitor-keys': 8.72.0 + '@typescript-eslint/scope-manager': 8.72.1 + '@typescript-eslint/types': 8.72.1 + '@typescript-eslint/typescript-estree': 8.72.1(typescript@6.0.3) + '@typescript-eslint/visitor-keys': 8.72.1 debug: 4.4.3(supports-color@8.1.1) - eslint: 10.13.0 + eslint: 10.14.0 typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.72.0(typescript@6.0.3)': + '@typescript-eslint/project-service@8.72.1(typescript@6.0.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.72.0(typescript@6.0.3) - '@typescript-eslint/types': 8.72.0 + '@typescript-eslint/tsconfig-utils': 8.72.1(typescript@6.0.3) + '@typescript-eslint/types': 8.72.1 debug: 4.4.3(supports-color@8.1.1) typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.72.0': + '@typescript-eslint/scope-manager@8.72.1': dependencies: - '@typescript-eslint/types': 8.72.0 - '@typescript-eslint/visitor-keys': 8.72.0 + '@typescript-eslint/types': 8.72.1 + '@typescript-eslint/visitor-keys': 8.72.1 - '@typescript-eslint/tsconfig-utils@8.72.0(typescript@6.0.3)': + '@typescript-eslint/tsconfig-utils@8.72.1(typescript@6.0.3)': dependencies: typescript: 6.0.3 - '@typescript-eslint/type-utils@8.72.0(eslint@10.13.0)(typescript@6.0.3)': + '@typescript-eslint/type-utils@8.72.1(eslint@10.14.0)(typescript@6.0.3)': dependencies: - '@typescript-eslint/types': 8.72.0 - '@typescript-eslint/typescript-estree': 8.72.0(typescript@6.0.3) - '@typescript-eslint/utils': 8.72.0(eslint@10.13.0)(typescript@6.0.3) + '@typescript-eslint/types': 8.72.1 + '@typescript-eslint/typescript-estree': 8.72.1(typescript@6.0.3) + '@typescript-eslint/utils': 8.72.1(eslint@10.14.0)(typescript@6.0.3) debug: 4.4.3(supports-color@8.1.1) - eslint: 10.13.0 + eslint: 10.14.0 ts-api-utils: 2.5.0(typescript@6.0.3) typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.72.0': {} + '@typescript-eslint/types@8.72.1': {} - '@typescript-eslint/typescript-estree@8.72.0(typescript@6.0.3)': + '@typescript-eslint/typescript-estree@8.72.1(typescript@6.0.3)': dependencies: - '@typescript-eslint/project-service': 8.72.0(typescript@6.0.3) - '@typescript-eslint/tsconfig-utils': 8.72.0(typescript@6.0.3) - '@typescript-eslint/types': 8.72.0 - '@typescript-eslint/visitor-keys': 8.72.0 + '@typescript-eslint/project-service': 8.72.1(typescript@6.0.3) + '@typescript-eslint/tsconfig-utils': 8.72.1(typescript@6.0.3) + '@typescript-eslint/types': 8.72.1 + '@typescript-eslint/visitor-keys': 8.72.1 debug: 4.4.3(supports-color@8.1.1) minimatch: 11.0.1 semver: 7.8.5 @@ -2064,20 +2064,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.72.0(eslint@10.13.0)(typescript@6.0.3)': + '@typescript-eslint/utils@8.72.1(eslint@10.14.0)(typescript@6.0.3)': dependencies: - '@eslint-community/eslint-utils': 4.10.1(eslint@10.13.0) - '@typescript-eslint/scope-manager': 8.72.0 - '@typescript-eslint/types': 8.72.0 - '@typescript-eslint/typescript-estree': 8.72.0(typescript@6.0.3) - eslint: 10.13.0 + '@eslint-community/eslint-utils': 4.10.1(eslint@10.14.0) + '@typescript-eslint/scope-manager': 8.72.1 + '@typescript-eslint/types': 8.72.1 + '@typescript-eslint/typescript-estree': 8.72.1(typescript@6.0.3) + eslint: 10.14.0 typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.72.0': + '@typescript-eslint/visitor-keys@8.72.1': dependencies: - '@typescript-eslint/types': 8.72.0 + '@typescript-eslint/types': 8.72.1 eslint-visitor-keys: 5.0.1 '@xmldom/xmldom@0.9.12': {} @@ -2126,7 +2126,7 @@ snapshots: debug: 4.4.3(supports-color@8.1.1) http-errors: 2.0.1 iconv-lite: 0.7.3 - on-finished: 2.4.1 + on-finished: 2.4.2 qs: 6.16.1 raw-body: 3.0.2 type-is: 2.1.0 @@ -2273,7 +2273,7 @@ snapshots: electron-to-chromium@1.5.468: {} - encodeurl@2.0.0: {} + encodeurl@2.0.1: {} end-of-stream@1.4.5: dependencies: @@ -2324,13 +2324,13 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-config-prettier@10.1.8(eslint@10.13.0): + eslint-config-prettier@10.1.8(eslint@10.14.0): dependencies: - eslint: 10.13.0 + eslint: 10.14.0 - eslint-plugin-unicorn@79.0.0(eslint@10.13.0)(typescript@6.0.3): + eslint-plugin-unicorn@79.0.0(eslint@10.14.0)(typescript@6.0.3): dependencies: - '@eslint-community/eslint-utils': 4.10.1(eslint@10.13.0) + '@eslint-community/eslint-utils': 4.10.1(eslint@10.14.0) '@eslint/css-tree': 4.1.2 browserslist: 4.29.5 change-case: 5.4.4 @@ -2338,7 +2338,7 @@ snapshots: core-js-compat: 3.51.0 detect-indent: 7.0.2 entities: 8.1.0 - eslint: 10.13.0 + eslint: 10.14.0 find-up-simple: 1.0.1 globals: 17.13.0 identifier-regex: 1.1.0 @@ -2361,7 +2361,7 @@ snapshots: eslint-scope@9.1.2: dependencies: '@types/esrecurse': 4.3.1 - '@types/estree': 1.0.9 + '@types/estree': 1.0.10 esrecurse: 4.3.0 estraverse: 5.3.0 @@ -2369,9 +2369,9 @@ snapshots: eslint-visitor-keys@5.0.1: {} - eslint@10.13.0: + eslint@10.14.0: dependencies: - '@eslint-community/eslint-utils': 4.10.1(eslint@10.13.0) + '@eslint-community/eslint-utils': 4.10.1(eslint@10.14.0) '@eslint-community/regexpp': 4.12.2 '@eslint/config-array': 0.23.5 '@eslint/config-helpers': 0.7.0 @@ -2380,7 +2380,7 @@ snapshots: '@humanfs/node': 0.16.8 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 - '@types/estree': 1.0.9 + '@types/estree': 1.0.10 ajv: 6.14.0 cross-spawn: 7.0.6 debug: 4.4.3(supports-color@8.1.1) @@ -2440,11 +2440,11 @@ snapshots: signal-exit: 3.0.7 strip-eof: 1.0.0 - express-rate-limit@8.7.1(express@5.3.0): + express-rate-limit@8.7.2(express@5.3.0): dependencies: debug: 4.4.3(supports-color@8.1.1) express: 5.3.0 - ip-address: 10.7.4 + ip-address: 10.7.5 transitivePeerDependencies: - supports-color @@ -2458,7 +2458,7 @@ snapshots: cookie-signature: 1.2.2 debug: 4.4.3(supports-color@8.1.1) depd: 2.0.0 - encodeurl: 2.0.0 + encodeurl: 2.0.1 escape-html: 1.0.3 etag: 1.8.1 finalhandler: 2.1.1 @@ -2466,7 +2466,7 @@ snapshots: http-errors: 2.0.1 merge-descriptors: 2.0.0 mime-types: 3.0.2 - on-finished: 2.4.1 + on-finished: 2.4.2 once: 1.4.0 parseurl: 1.3.3 proxy-addr: 2.0.8 @@ -2526,9 +2526,9 @@ snapshots: finalhandler@2.1.1: dependencies: debug: 4.4.3(supports-color@8.1.1) - encodeurl: 2.0.0 + encodeurl: 2.0.1 escape-html: 1.0.3 - on-finished: 2.4.1 + on-finished: 2.4.2 parseurl: 1.3.3 statuses: 2.0.2 transitivePeerDependencies: @@ -2640,7 +2640,7 @@ snapshots: ignore@5.3.2: {} - ignore@7.0.13: {} + ignore@7.0.14: {} imurmurhash@0.1.4: {} @@ -2650,7 +2650,7 @@ snapshots: interpret@1.4.0: {} - ip-address@10.7.4: {} + ip-address@10.7.5: {} ipaddr.js@1.9.1: {} @@ -2682,7 +2682,7 @@ snapshots: isexe@2.0.0: {} - jose@6.2.12: {} + jose@6.2.14: {} js-base64@3.7.8: {} @@ -2948,7 +2948,7 @@ snapshots: object-inspect@1.13.4: {} - on-finished@2.4.1: + on-finished@2.4.2: dependencies: ee-first: 1.1.1 @@ -3107,14 +3107,14 @@ snapshots: send@1.2.1: dependencies: debug: 4.4.3(supports-color@8.1.1) - encodeurl: 2.0.0 + encodeurl: 2.0.1 escape-html: 1.0.3 etag: 1.8.1 fresh: 2.0.0 http-errors: 2.0.1 mime-types: 3.0.2 ms: 2.1.3 - on-finished: 2.4.1 + on-finished: 2.4.2 range-parser: 1.3.0 statuses: 2.0.2 transitivePeerDependencies: @@ -3124,7 +3124,7 @@ snapshots: serve-static@2.2.1: dependencies: - encodeurl: 2.0.0 + encodeurl: 2.0.1 escape-html: 1.0.3 parseurl: 1.3.3 send: 1.2.1 @@ -3256,13 +3256,13 @@ snapshots: media-typer: 1.1.1 mime-types: 3.0.2 - typescript-eslint@8.72.0(eslint@10.13.0)(typescript@6.0.3): + typescript-eslint@8.72.1(eslint@10.14.0)(typescript@6.0.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.72.0(@typescript-eslint/parser@8.72.0(eslint@10.13.0)(typescript@6.0.3))(eslint@10.13.0)(typescript@6.0.3) - '@typescript-eslint/parser': 8.72.0(eslint@10.13.0)(typescript@6.0.3) - '@typescript-eslint/typescript-estree': 8.72.0(typescript@6.0.3) - '@typescript-eslint/utils': 8.72.0(eslint@10.13.0)(typescript@6.0.3) - eslint: 10.13.0 + '@typescript-eslint/eslint-plugin': 8.72.1(@typescript-eslint/parser@8.72.1(eslint@10.14.0)(typescript@6.0.3))(eslint@10.14.0)(typescript@6.0.3) + '@typescript-eslint/parser': 8.72.1(eslint@10.14.0)(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 8.72.1(typescript@6.0.3) + '@typescript-eslint/utils': 8.72.1(eslint@10.14.0)(typescript@6.0.3) + eslint: 10.14.0 typescript: 6.0.3 transitivePeerDependencies: - supports-color From 3b7bcf37f69ced75c6e768c6e1efe0a893b83b3e Mon Sep 17 00:00:00 2001 From: finalerock44 Date: Mon, 2 Nov 2026 18:15:22 +0000 Subject: [PATCH 10/10] chore: pin the 5.11.1 promotion Release-As: 5.11.1