From 0f5b1856ab06cace2d378aee9bd6695e4661306f Mon Sep 17 00:00:00 2001 From: Simon M Date: Thu, 22 Jan 2026 20:09:44 +0000 Subject: [PATCH 1/3] Change node support to 20, 22, 24 (default 20) --- .../src/generators/function/function.spec.ts | 16 ++++++++-------- .../src/generators/function/schema.d.ts | 2 +- .../src/generators/function/schema.json | 4 ++-- .../nx-firebase/src/utils/update-tsconfig.ts | 5 ++--- tools/generate-package-versions.js | 4 ++-- 5 files changed, 15 insertions(+), 16 deletions(-) diff --git a/packages/nx-firebase/src/generators/function/function.spec.ts b/packages/nx-firebase/src/generators/function/function.spec.ts index 5d4c2dc9..e2c40d37 100644 --- a/packages/nx-firebase/src/generators/function/function.spec.ts +++ b/packages/nx-firebase/src/generators/function/function.spec.ts @@ -80,7 +80,7 @@ describe('function generator', () => { bundle: true, thirdParty: false, dependenciesFieldType: 'dependencies', - target: 'node18', + target: 'node20', format: ['esm'], esbuildOptions: { logLevel: 'info', @@ -195,7 +195,7 @@ describe('function generator', () => { expect(firebaseConfig.functions[0]).toEqual({ codebase: 'myFirebaseFunction', source: 'dist/myFirebaseFunction', - runtime: `nodejs18`, + runtime: `nodejs20`, ignore: ['*.local'], }) }) @@ -215,7 +215,7 @@ describe('function generator', () => { expect(firebaseConfig.functions[0]).toEqual({ codebase: 'myFirebaseFunction', source: 'dist/myFirebaseFunction', - runtime: `nodejs18`, + runtime: `nodejs20`, ignore: ['*.local'], }) }) @@ -225,7 +225,7 @@ describe('function generator', () => { const testFunction = { codebase: 'test', source: 'dist/apps/test', - runtime: `nodejs18`, + runtime: `nodejs20`, ignore: ['*.local'], } firebaseConfigInitial.functions = [testFunction] @@ -241,7 +241,7 @@ describe('function generator', () => { expect(firebaseConfig.functions).toContainEqual({ codebase: 'myFirebaseFunction', source: 'dist/myFirebaseFunction', - runtime: `nodejs18`, + runtime: `nodejs20`, ignore: ['*.local'], }) }) @@ -302,7 +302,7 @@ describe('function generator', () => { await functionGenerator(tree, { name: 'myFirebaseFunction', app: 'myFirebaseApp', - runTime: '18', + runTime: '22', }) const project = readProjectConfiguration(tree, 'myFirebaseFunction') @@ -311,11 +311,11 @@ describe('function generator', () => { tree, joinPathFragments(project.root, 'package.json'), ) - expect(packageJson.engines.node).toEqual('18') + expect(packageJson.engines.node).toEqual('22') // check the function firebase config const firebaseConfig = readJson(tree, 'firebase.json') - expect(firebaseConfig.functions[0].runtime).toEqual('nodejs18') + expect(firebaseConfig.functions[0].runtime).toEqual('nodejs22') }) }) }) diff --git a/packages/nx-firebase/src/generators/function/schema.d.ts b/packages/nx-firebase/src/generators/function/schema.d.ts index c2f7693b..e263fc2c 100644 --- a/packages/nx-firebase/src/generators/function/schema.d.ts +++ b/packages/nx-firebase/src/generators/function/schema.d.ts @@ -15,7 +15,7 @@ export interface Schema { // nx-firebase:function generator specific options app: string - runTime?: '18' | '20' | '22' + runTime?: '20' | '22' | '24' format?: 'esm' | 'cjs' } diff --git a/packages/nx-firebase/src/generators/function/schema.json b/packages/nx-firebase/src/generators/function/schema.json index a8d3a366..e0759572 100644 --- a/packages/nx-firebase/src/generators/function/schema.json +++ b/packages/nx-firebase/src/generators/function/schema.json @@ -49,8 +49,8 @@ "runTime": { "description": "The node runtime target for this function.", "type": "string", - "enum": ["18", "20", "22"], - "default": "18" + "enum": ["20", "22", "24"], + "default": "20" } }, "additionalProperties": false, diff --git a/packages/nx-firebase/src/utils/update-tsconfig.ts b/packages/nx-firebase/src/utils/update-tsconfig.ts index 23b97f1e..45ccb1c2 100644 --- a/packages/nx-firebase/src/utils/update-tsconfig.ts +++ b/packages/nx-firebase/src/utils/update-tsconfig.ts @@ -4,11 +4,10 @@ import { packageVersions } from '../__generated__/nx-firebase-versions' // https://stackoverflow.com/questions/59787574/typescript-tsconfig-settings-for-node-js-12 export const nodeEsVersion: Record = { - '12': 'es2019', - '14': 'es2020', - '16': 'es2020', // es2020 seems more preferred with node 16 than es2021 '18': 'es2022', '20': 'es2022', + '22': 'es2023', + '24': 'es2024', } /** diff --git a/tools/generate-package-versions.js b/tools/generate-package-versions.js index b208cba2..57911d8e 100644 --- a/tools/generate-package-versions.js +++ b/tools/generate-package-versions.js @@ -10,8 +10,8 @@ const nxMajorVersion = parseInt(nxVersion.split('.')[0]) // const nodeVersion = nvmVersion.trim().split('.')[0] // default firebase node version is to be derived from Nx version for now -// Nx 17+ offically suports Node 18, so may as well use that pattern -const nodeVersion = nxMajorVersion >= 17 ? '18' : '16' +// Nx 21+ officially supports Node 20+, Nx 17-20 supports Node 18+ +const nodeVersion = nxMajorVersion >= 21 ? '20' : nxMajorVersion >= 17 ? '18' : '16' function ensureDirectoryExistence(filePath) { const dirname = path.dirname(filePath) From 173668237b9bddb545698c80913ccc73ea2ac062 Mon Sep 17 00:00:00 2001 From: Simon M Date: Thu, 22 Jan 2026 20:10:21 +0000 Subject: [PATCH 2/3] Update firebase dependencies --- package.json | 4 +- .../src/__generated__/nx-firebase-versions.ts | 4 +- .../application/files/firestore.indexes.json | 27 +- .../application/files/firestore.rules | 2 + .../function/files/src/main.ts__tmpl__ | 15 +- pnpm-lock.yaml | 1141 +++++++++++++---- 6 files changed, 904 insertions(+), 289 deletions(-) diff --git a/package.json b/package.json index 1e4fcfce..5d74ec6a 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "@nx/webpack": "21.6.10", "@nx/workspace": "21.6.10", "@types/jest": "30.0.0", - "@types/node": "18.19.99", + "@types/node": "20.19.0", "@types/semver": "^7.3.13", "eslint": "^9.8.0", "eslint-config-prettier": "10.1.8", @@ -41,7 +41,7 @@ "firebase-admin": "13.6.0", "firebase-functions": "7.0.3", "firebase-functions-test": "3.4.1", - "firebase-tools": "13.35.1", + "firebase-tools": "15.3.1", "jest": "30.0.5", "jest-environment-jsdom": "30.0.5", "kill-port": "2.0.1", diff --git a/packages/nx-firebase/src/__generated__/nx-firebase-versions.ts b/packages/nx-firebase/src/__generated__/nx-firebase-versions.ts index 9faf0879..8b0ad310 100644 --- a/packages/nx-firebase/src/__generated__/nx-firebase-versions.ts +++ b/packages/nx-firebase/src/__generated__/nx-firebase-versions.ts @@ -8,8 +8,8 @@ export const packageVersions = { firebaseAdmin: '13.6.0', firebaseFunctions: '7.0.3', firebaseFunctionsTest: '3.4.1', - firebaseTools: '13.35.1', + firebaseTools: '15.3.1', killPort: '2.0.1', - nodeEngine: '18', + nodeEngine: '20', googleCloudFunctionsFramework: '3.3.0', } diff --git a/packages/nx-firebase/src/generators/application/files/firestore.indexes.json b/packages/nx-firebase/src/generators/application/files/firestore.indexes.json index 4ff4fab5..0e6de7cb 100644 --- a/packages/nx-firebase/src/generators/application/files/firestore.indexes.json +++ b/packages/nx-firebase/src/generators/application/files/firestore.indexes.json @@ -1,5 +1,5 @@ { - // Example: + // Example (Standard Edition): // // "indexes": [ // { @@ -21,6 +21,31 @@ // }, // ] // ] + // + // Example (Enterprise Edition): + // + // "indexes": [ + // { + // "collectionGroup": "reviews", + // "queryScope": "COLLECTION_GROUP", + // "apiScope": "MONGODB_COMPATIBLE_API", + // "density": "DENSE", + // "multikey": false, + // "fields": [ + // { "fieldPath": "baz", "mode": "ASCENDING" } + // ] + // }, + // { + // "collectionGroup": "items", + // "queryScope": "COLLECTION_GROUP", + // "apiScope": "MONGODB_COMPATIBLE_API", + // "density": "SPARSE_ANY", + // "multikey": true, + // "fields": [ + // { "fieldPath": "baz", "mode": "ASCENDING" } + // ] + // }, + // ] "indexes": [], "fieldOverrides": [] } \ No newline at end of file diff --git a/packages/nx-firebase/src/generators/application/files/firestore.rules b/packages/nx-firebase/src/generators/application/files/firestore.rules index 2ac60709..102984f7 100644 --- a/packages/nx-firebase/src/generators/application/files/firestore.rules +++ b/packages/nx-firebase/src/generators/application/files/firestore.rules @@ -1,3 +1,5 @@ +rules_version='2' + service cloud.firestore { match /databases/{database}/documents { match /{document=**} { diff --git a/packages/nx-firebase/src/generators/function/files/src/main.ts__tmpl__ b/packages/nx-firebase/src/generators/function/files/src/main.ts__tmpl__ index 9462d2c7..ade33ec3 100644 --- a/packages/nx-firebase/src/generators/function/files/src/main.ts__tmpl__ +++ b/packages/nx-firebase/src/generators/function/files/src/main.ts__tmpl__ @@ -7,12 +7,25 @@ * See a full list of supported triggers at https://firebase.google.com/docs/functions */ -import {onRequest} from "firebase-functions/v2/https"; +import {setGlobalOptions} from "firebase-functions"; +import {onRequest} from "firebase-functions/https"; import * as logger from "firebase-functions/logger"; // Start writing functions // https://firebase.google.com/docs/functions/typescript +// For cost control, you can set the maximum number of containers that can be +// running at the same time. This helps mitigate the impact of unexpected +// traffic spikes by instead downgrading performance. This limit is a +// per-function limit. You can override the limit for each function using the +// `maxInstances` option in the function's options, e.g. +// `onRequest({ maxInstances: 5 }, (req, res) => { ... })`. +// NOTE: setGlobalOptions does not apply to functions using the v1 API. V1 +// functions should each use functions.runWith({ maxInstances: 10 }) instead. +// In the v1 API, each function can only serve one request per container, so +// this will be the maximum concurrent request count. +setGlobalOptions({ maxInstances: 10 }); + // export const helloWorld = onRequest((request, response) => { // logger.info("Hello logs!", {structuredData: true}); // response.send("Hello from Firebase!"); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a1d84b2e..d3e6c27d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,7 +7,7 @@ settings: dependencies: ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@18.19.99)(typescript@5.9.3) + version: 10.9.2(@types/node@20.19.0)(typescript@5.9.3) tslib: specifier: ^2.0.0 version: 2.4.1 @@ -30,16 +30,16 @@ devDependencies: version: 21.6.10(@typescript-eslint/parser@8.53.1)(eslint-config-prettier@10.1.8)(eslint@9.39.2)(nx@21.6.10)(typescript@5.9.3) '@nx/jest': specifier: 21.6.10 - version: 21.6.10(@types/node@18.19.99)(nx@21.6.10)(ts-node@10.9.2)(typescript@5.9.3) + version: 21.6.10(@types/node@20.19.0)(nx@21.6.10)(ts-node@10.9.2)(typescript@5.9.3) '@nx/js': specifier: 21.6.10 version: 21.6.10(nx@21.6.10) '@nx/node': specifier: 21.6.10 - version: 21.6.10(@types/node@18.19.99)(eslint@9.39.2)(nx@21.6.10)(ts-node@10.9.2)(typescript@5.9.3) + version: 21.6.10(@types/node@20.19.0)(eslint@9.39.2)(nx@21.6.10)(ts-node@10.9.2)(typescript@5.9.3) '@nx/plugin': specifier: 21.6.10 - version: 21.6.10(@types/node@18.19.99)(eslint@9.39.2)(nx@21.6.10)(ts-node@10.9.2)(typescript@5.9.3) + version: 21.6.10(@types/node@20.19.0)(eslint@9.39.2)(nx@21.6.10)(ts-node@10.9.2)(typescript@5.9.3) '@nx/webpack': specifier: 21.6.10 version: 21.6.10(nx@21.6.10)(typescript@5.9.3) @@ -50,8 +50,8 @@ devDependencies: specifier: 30.0.0 version: 30.0.0 '@types/node': - specifier: 18.19.99 - version: 18.19.99 + specifier: 20.19.0 + version: 20.19.0 '@types/semver': specifier: ^7.3.13 version: 7.3.13 @@ -80,11 +80,11 @@ devDependencies: specifier: 3.4.1 version: 3.4.1(firebase-admin@13.6.0)(firebase-functions@7.0.3)(jest@30.0.5) firebase-tools: - specifier: 13.35.1 - version: 13.35.1 + specifier: 15.3.1 + version: 15.3.1(@types/node@20.19.0)(hono@4.11.5)(typescript@5.9.3) jest: specifier: 30.0.5 - version: 30.0.5(@types/node@18.19.99)(ts-node@10.9.2) + version: 30.0.5(@types/node@20.19.0)(ts-node@10.9.2) jest-environment-jsdom: specifier: 30.0.5 version: 30.0.5 @@ -132,6 +132,31 @@ packages: js-yaml: 4.1.1 dev: true + /@apphosting/build@0.1.7(@types/node@20.19.0)(typescript@5.9.3): + resolution: {integrity: sha512-zNgQGiAWDOj6c+4ylv5ej3nLGXzMAVmzCGMqlbSarHe4bvBmZ2C5GfBRdJksedP7C9pqlwTWpxU5+GSzhJ+nKA==} + hasBin: true + dependencies: + '@apphosting/common': 0.0.9 + '@npmcli/promise-spawn': 3.0.0 + colorette: 2.0.20 + commander: 11.1.0 + npm-pick-manifest: 9.1.0 + ts-node: 10.9.2(@types/node@20.19.0)(typescript@5.9.3) + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - typescript + dev: true + + /@apphosting/common@0.0.8: + resolution: {integrity: sha512-RJu5gXs2HYV7+anxpVPpp04oXeuHbV3qn402AdXVlnuYM/uWo7aceqmngpfp6Bi376UzRqGjfpdwFHxuwsEGXQ==} + dev: true + + /@apphosting/common@0.0.9: + resolution: {integrity: sha512-ZbPZDcVhEN+8m0sf90PmQN4xWaKmmySnBSKKPaIOD0JvcDsRr509WenFEFlojP++VSxwFZDGG/TYsHs1FMMqpw==} + dev: true + /@asamuzakjp/css-color@3.2.0: resolution: {integrity: sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==} dependencies: @@ -1547,10 +1572,22 @@ packages: kuler: 2.0.0 dev: true + /@electric-sql/pglite-tools@0.2.20(@electric-sql/pglite@0.3.15): + resolution: {integrity: sha512-BK50ZnYa3IG7ztXhtgYf0Q7zijV32Iw1cYS8C+ThdQlwx12V5VZ9KRJ42y82Hyb4PkTxZQklVQA9JHyUlex33A==} + peerDependencies: + '@electric-sql/pglite': 0.3.15 + dependencies: + '@electric-sql/pglite': 0.3.15 + dev: true + /@electric-sql/pglite@0.2.17: resolution: {integrity: sha512-qEpKRT2oUaWDH6tjRxLHjdzMqRUGYDnGZlKrnL4dJ77JVMcP2Hpo3NYnOSPKdZdeec57B6QPprCUFg0picx5Pw==} dev: true + /@electric-sql/pglite@0.3.15: + resolution: {integrity: sha512-Cj++n1Mekf9ETfdc16TlDi+cDDQF0W7EcbyRHYOAeZdsAe8M/FJg18itDTSwyHfar2WIezawM9o0EKaRGVKygQ==} + dev: true + /@emnapi/core@1.8.1: resolution: {integrity: sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==} dependencies: @@ -2199,19 +2236,35 @@ packages: /@google-cloud/paginator@5.0.2: resolution: {integrity: sha512-DJS3s0OVH4zFDB1PzjxAsHqJT6sKVbRwwML0ZBP9PbU7Yebtu/7SWMRzvO2J3nUi9pRNITCfu4LJeooM2w4pjg==} engines: {node: '>=14.0.0'} + requiresBuild: true dependencies: arrify: 2.0.1 extend: 3.0.2 dev: true + optional: true - /@google-cloud/precise-date@4.0.0: - resolution: {integrity: sha512-1TUx3KdaU3cN7nfCdNf+UVqA/PSX29Cjcox3fZZBtINlRrXVTmUkQnCKv2MbBUbCopbK4olAT1IHl76uZyCiVA==} - engines: {node: '>=14.0.0'} + /@google-cloud/paginator@6.0.0: + resolution: {integrity: sha512-g5nmMnzC+94kBxOKkLGpK1ikvolTFCC3s2qtE4F+1EuArcJ7HHC23RDQVt3Ra3CqpUYZ+oXNKZ8n5Cn5yug8DA==} + engines: {node: '>=18'} + dependencies: + extend: 3.0.2 + dev: true + + /@google-cloud/precise-date@5.0.0: + resolution: {integrity: sha512-9h0Gvw92EvPdE8AK8AgZPbMnH5ftDyPtKm7/KUfcJVaPEPjwGDsJd1QV0H8esBDV4II41R/2lDWH1epBqIoKUw==} + engines: {node: '>=18'} dev: true /@google-cloud/projectify@4.0.0: resolution: {integrity: sha512-MmaX6HeSvyPbWGwFq7mXdo0uQZLGBYCwziiLIGq5JVX+/bdI3SAq6bP98trV5eTWfLuvsMcIC1YJOF2vfteLFA==} engines: {node: '>=14.0.0'} + requiresBuild: true + dev: true + optional: true + + /@google-cloud/projectify@5.0.0: + resolution: {integrity: sha512-XXQLaIcLrOAMWvRrzz+mlUGtN6vlVNja3XQbMqRi/V7XJTAVwib3VcKd7oRwyZPkp7rBVlHGcaqdyGRrcnkhlA==} + engines: {node: '>=18'} dev: true /@google-cloud/promisify@3.0.1: @@ -2221,31 +2274,31 @@ packages: dev: true optional: true - /@google-cloud/promisify@4.0.0: - resolution: {integrity: sha512-Orxzlfb9c67A15cq2JQEyVc7wEsmFBmHjZWZYQMUyJ1qivXyMwdyNOs9odi79hze+2zqdTtu1E19IM/FtqZ10g==} - engines: {node: '>=14'} + /@google-cloud/promisify@5.0.0: + resolution: {integrity: sha512-N8qS6dlORGHwk7WjGXKOSsLjIjNINCPicsOX6gyyLiYk7mq3MtII96NZ9N2ahwA2vnkLmZODOIH9rlNniYWvCQ==} + engines: {node: '>=18'} dev: true - /@google-cloud/pubsub@4.11.0: - resolution: {integrity: sha512-xWxJAlyUGd6OPp97u8maMcI3xVXuHjxfwh6Dr7P/P+6NK9o446slJobsbgsmK0xKY4nTK8m5uuJrhEKapfZSmQ==} - engines: {node: '>=14.0.0'} + /@google-cloud/pubsub@5.2.2: + resolution: {integrity: sha512-mf26hQnwms46Fe/gQtt+zEO8QpQ3bkHZNzXAVJCQShhYo+xMsYkSMKJdn0aV2yxC4grlxgUrh3Ao8umJ2q1zkA==} + engines: {node: '>=18'} dependencies: - '@google-cloud/paginator': 5.0.2 - '@google-cloud/precise-date': 4.0.0 - '@google-cloud/projectify': 4.0.0 - '@google-cloud/promisify': 4.0.0 + '@google-cloud/paginator': 6.0.0 + '@google-cloud/precise-date': 5.0.0 + '@google-cloud/projectify': 5.0.0 + '@google-cloud/promisify': 5.0.0 '@opentelemetry/api': 1.9.0 - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.34.0 arrify: 2.0.1 extend: 3.0.2 - google-auth-library: 9.15.1 - google-gax: 4.6.1 - heap-js: 2.5.0 + google-auth-library: 10.5.0 + google-gax: 5.0.6 + heap-js: 2.7.1 is-stream-ended: 0.1.4 lodash.snakecase: 4.1.1 p-defer: 3.0.0 transitivePeerDependencies: - - encoding - supports-color dev: true @@ -2297,7 +2350,7 @@ packages: engines: {node: ^8.13.0 || >=10.10.0} dependencies: '@grpc/proto-loader': 0.7.12 - '@types/node': 18.19.99 + '@types/node': 20.19.0 dev: true /@grpc/proto-loader@0.7.12: @@ -2316,12 +2369,14 @@ packages: resolution: {integrity: sha512-tMXdRCfYVixjuFK+Hk0Q1s38gV9zDiDJfWL3h1rv4Qc39oILCu1TRTDt7+fGUI8K4G1Fj125Hx/ru3azECWTyQ==} engines: {node: '>=6'} hasBin: true + requiresBuild: true dependencies: lodash.camelcase: 4.3.0 long: 5.2.3 protobufjs: 7.5.4 yargs: 17.7.2 dev: true + optional: true /@grpc/proto-loader@0.8.0: resolution: {integrity: sha512-rc1hOQtjIWGxcxpb9aHAfLpIctjEnsDehj0DAiVfBlmT84uvR0uUtN2hEi/ecvWVjXUGf5qPF4qEgiLOx1YIMQ==} @@ -2334,6 +2389,15 @@ packages: yargs: 17.7.2 dev: true + /@hono/node-server@1.19.9(hono@4.11.5): + resolution: {integrity: sha512-vHL6w3ecZsky+8P5MD+eFfaGTyCeOHUIFYMGpQGbrBTSmNNoxv0if69rEZ5giu36weC5saFuznL411gRX7bJDw==} + engines: {node: '>=18.14.1'} + peerDependencies: + hono: ^4 + dependencies: + hono: 4.11.5 + dev: true + /@humanfs/core@0.19.1: resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} engines: {node: '>=18.18.0'} @@ -2357,6 +2421,236 @@ packages: engines: {node: '>=18.18'} dev: true + /@inquirer/ansi@1.0.2: + resolution: {integrity: sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==} + engines: {node: '>=18'} + dev: true + + /@inquirer/checkbox@4.3.2(@types/node@20.19.0): + resolution: {integrity: sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.2(@types/node@20.19.0) + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@20.19.0) + '@types/node': 20.19.0 + yoctocolors-cjs: 2.1.3 + dev: true + + /@inquirer/confirm@5.1.21(@types/node@20.19.0): + resolution: {integrity: sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + dependencies: + '@inquirer/core': 10.3.2(@types/node@20.19.0) + '@inquirer/type': 3.0.10(@types/node@20.19.0) + '@types/node': 20.19.0 + dev: true + + /@inquirer/core@10.3.2(@types/node@20.19.0): + resolution: {integrity: sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@20.19.0) + '@types/node': 20.19.0 + cli-width: 4.1.0 + mute-stream: 2.0.0 + signal-exit: 4.1.0 + wrap-ansi: 6.2.0 + yoctocolors-cjs: 2.1.3 + dev: true + + /@inquirer/editor@4.2.23(@types/node@20.19.0): + resolution: {integrity: sha512-aLSROkEwirotxZ1pBaP8tugXRFCxW94gwrQLxXfrZsKkfjOYC1aRvAZuhpJOb5cu4IBTJdsCigUlf2iCOu4ZDQ==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + dependencies: + '@inquirer/core': 10.3.2(@types/node@20.19.0) + '@inquirer/external-editor': 1.0.3(@types/node@20.19.0) + '@inquirer/type': 3.0.10(@types/node@20.19.0) + '@types/node': 20.19.0 + dev: true + + /@inquirer/expand@4.0.23(@types/node@20.19.0): + resolution: {integrity: sha512-nRzdOyFYnpeYTTR2qFwEVmIWypzdAx/sIkCMeTNTcflFOovfqUk+HcFhQQVBftAh9gmGrpFj6QcGEqrDMDOiew==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + dependencies: + '@inquirer/core': 10.3.2(@types/node@20.19.0) + '@inquirer/type': 3.0.10(@types/node@20.19.0) + '@types/node': 20.19.0 + yoctocolors-cjs: 2.1.3 + dev: true + + /@inquirer/external-editor@1.0.3(@types/node@20.19.0): + resolution: {integrity: sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + dependencies: + '@types/node': 20.19.0 + chardet: 2.1.1 + iconv-lite: 0.7.2 + dev: true + + /@inquirer/figures@1.0.15: + resolution: {integrity: sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==} + engines: {node: '>=18'} + dev: true + + /@inquirer/input@4.3.1(@types/node@20.19.0): + resolution: {integrity: sha512-kN0pAM4yPrLjJ1XJBjDxyfDduXOuQHrBB8aLDMueuwUGn+vNpF7Gq7TvyVxx8u4SHlFFj4trmj+a2cbpG4Jn1g==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + dependencies: + '@inquirer/core': 10.3.2(@types/node@20.19.0) + '@inquirer/type': 3.0.10(@types/node@20.19.0) + '@types/node': 20.19.0 + dev: true + + /@inquirer/number@3.0.23(@types/node@20.19.0): + resolution: {integrity: sha512-5Smv0OK7K0KUzUfYUXDXQc9jrf8OHo4ktlEayFlelCjwMXz0299Y8OrI+lj7i4gCBY15UObk76q0QtxjzFcFcg==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + dependencies: + '@inquirer/core': 10.3.2(@types/node@20.19.0) + '@inquirer/type': 3.0.10(@types/node@20.19.0) + '@types/node': 20.19.0 + dev: true + + /@inquirer/password@4.0.23(@types/node@20.19.0): + resolution: {integrity: sha512-zREJHjhT5vJBMZX/IUbyI9zVtVfOLiTO66MrF/3GFZYZ7T4YILW5MSkEYHceSii/KtRk+4i3RE7E1CUXA2jHcA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.2(@types/node@20.19.0) + '@inquirer/type': 3.0.10(@types/node@20.19.0) + '@types/node': 20.19.0 + dev: true + + /@inquirer/prompts@7.10.1(@types/node@20.19.0): + resolution: {integrity: sha512-Dx/y9bCQcXLI5ooQ5KyvA4FTgeo2jYj/7plWfV5Ak5wDPKQZgudKez2ixyfz7tKXzcJciTxqLeK7R9HItwiByg==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + dependencies: + '@inquirer/checkbox': 4.3.2(@types/node@20.19.0) + '@inquirer/confirm': 5.1.21(@types/node@20.19.0) + '@inquirer/editor': 4.2.23(@types/node@20.19.0) + '@inquirer/expand': 4.0.23(@types/node@20.19.0) + '@inquirer/input': 4.3.1(@types/node@20.19.0) + '@inquirer/number': 3.0.23(@types/node@20.19.0) + '@inquirer/password': 4.0.23(@types/node@20.19.0) + '@inquirer/rawlist': 4.1.11(@types/node@20.19.0) + '@inquirer/search': 3.2.2(@types/node@20.19.0) + '@inquirer/select': 4.4.2(@types/node@20.19.0) + '@types/node': 20.19.0 + dev: true + + /@inquirer/rawlist@4.1.11(@types/node@20.19.0): + resolution: {integrity: sha512-+LLQB8XGr3I5LZN/GuAHo+GpDJegQwuPARLChlMICNdwW7OwV2izlCSCxN6cqpL0sMXmbKbFcItJgdQq5EBXTw==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + dependencies: + '@inquirer/core': 10.3.2(@types/node@20.19.0) + '@inquirer/type': 3.0.10(@types/node@20.19.0) + '@types/node': 20.19.0 + yoctocolors-cjs: 2.1.3 + dev: true + + /@inquirer/search@3.2.2(@types/node@20.19.0): + resolution: {integrity: sha512-p2bvRfENXCZdWF/U2BXvnSI9h+tuA8iNqtUKb9UWbmLYCRQxd8WkvwWvYn+3NgYaNwdUkHytJMGG4MMLucI1kA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + dependencies: + '@inquirer/core': 10.3.2(@types/node@20.19.0) + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@20.19.0) + '@types/node': 20.19.0 + yoctocolors-cjs: 2.1.3 + dev: true + + /@inquirer/select@4.4.2(@types/node@20.19.0): + resolution: {integrity: sha512-l4xMuJo55MAe+N7Qr4rX90vypFwCajSakx59qe/tMaC1aEHWLyw68wF4o0A4SLAY4E0nd+Vt+EyskeDIqu1M6w==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.2(@types/node@20.19.0) + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@20.19.0) + '@types/node': 20.19.0 + yoctocolors-cjs: 2.1.3 + dev: true + + /@inquirer/type@3.0.10(@types/node@20.19.0): + resolution: {integrity: sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + dependencies: + '@types/node': 20.19.0 + dev: true + /@isaacs/cliui@8.0.2: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -2390,7 +2684,7 @@ packages: engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: '@jest/types': 30.0.5 - '@types/node': 18.19.99 + '@types/node': 20.19.0 chalk: 4.1.2 jest-message-util: 30.0.5 jest-util: 30.0.5 @@ -2402,7 +2696,7 @@ packages: engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: '@jest/types': 30.2.0 - '@types/node': 18.19.99 + '@types/node': 20.19.0 chalk: 4.1.2 jest-message-util: 30.2.0 jest-util: 30.2.0 @@ -2424,14 +2718,14 @@ packages: '@jest/test-result': 30.0.5 '@jest/transform': 30.0.5 '@jest/types': 30.0.5 - '@types/node': 18.19.99 + '@types/node': 20.19.0 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 4.3.1 exit-x: 0.2.2 graceful-fs: 4.2.11 jest-changed-files: 30.0.5 - jest-config: 30.0.5(@types/node@18.19.99)(ts-node@10.9.2) + jest-config: 30.0.5(@types/node@20.19.0)(ts-node@10.9.2) jest-haste-map: 30.0.5 jest-message-util: 30.0.5 jest-regex-util: 30.0.1 @@ -2472,7 +2766,7 @@ packages: '@jest/fake-timers': 30.0.5 '@jest/types': 30.0.5 '@types/jsdom': 21.1.7 - '@types/node': 18.19.99 + '@types/node': 20.19.0 jest-mock: 30.0.5 jest-util: 30.0.5 jsdom: 26.1.0 @@ -2484,7 +2778,7 @@ packages: dependencies: '@jest/fake-timers': 30.0.5 '@jest/types': 30.0.5 - '@types/node': 18.19.99 + '@types/node': 20.19.0 jest-mock: 30.0.5 dev: true @@ -2494,7 +2788,7 @@ packages: dependencies: '@jest/fake-timers': 30.2.0 '@jest/types': 30.2.0 - '@types/node': 18.19.99 + '@types/node': 20.19.0 jest-mock: 30.2.0 dev: true @@ -2538,7 +2832,7 @@ packages: dependencies: '@jest/types': 30.0.5 '@sinonjs/fake-timers': 13.0.5 - '@types/node': 18.19.99 + '@types/node': 20.19.0 jest-message-util: 30.0.5 jest-mock: 30.0.5 jest-util: 30.0.5 @@ -2550,7 +2844,7 @@ packages: dependencies: '@jest/types': 30.2.0 '@sinonjs/fake-timers': 13.0.5 - '@types/node': 18.19.99 + '@types/node': 20.19.0 jest-message-util: 30.2.0 jest-mock: 30.2.0 jest-util: 30.2.0 @@ -2594,7 +2888,7 @@ packages: resolution: {integrity: sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: - '@types/node': 18.19.99 + '@types/node': 20.19.0 jest-regex-util: 30.0.1 dev: true @@ -2613,7 +2907,7 @@ packages: '@jest/transform': 30.0.5 '@jest/types': 30.0.5 '@jridgewell/trace-mapping': 0.3.31 - '@types/node': 18.19.99 + '@types/node': 20.19.0 chalk: 4.1.2 collect-v8-coverage: 1.0.3 exit-x: 0.2.2 @@ -2649,7 +2943,7 @@ packages: '@jest/transform': 30.2.0 '@jest/types': 30.2.0 '@jridgewell/trace-mapping': 0.3.31 - '@types/node': 18.19.99 + '@types/node': 20.19.0 chalk: 4.1.2 collect-v8-coverage: 1.0.3 exit-x: 0.2.2 @@ -2806,7 +3100,7 @@ packages: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 18.19.99 + '@types/node': 20.19.0 '@types/yargs': 17.0.24 chalk: 4.1.2 dev: true @@ -2819,7 +3113,7 @@ packages: '@jest/schemas': 30.0.5 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 18.19.99 + '@types/node': 20.19.0 '@types/yargs': 17.0.35 chalk: 4.1.2 dev: true @@ -2832,7 +3126,7 @@ packages: '@jest/schemas': 30.0.5 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 18.19.99 + '@types/node': 20.19.0 '@types/yargs': 17.0.35 chalk: 4.1.2 dev: true @@ -2880,6 +3174,7 @@ packages: /@js-sdsl/ordered-map@4.4.2: resolution: {integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==} + requiresBuild: true dev: true /@jsdevtools/ono@7.1.3: @@ -2956,6 +3251,37 @@ packages: resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==} dev: true + /@modelcontextprotocol/sdk@1.25.3(hono@4.11.5)(zod@3.25.76): + resolution: {integrity: sha512-vsAMBMERybvYgKbg/l4L1rhS7VXV1c0CtyJg72vwxONVX0l4ZfKVAnZEWTQixJGTzKnELjQ59e4NbdFDALRiAQ==} + engines: {node: '>=18'} + peerDependencies: + '@cfworker/json-schema': ^4.1.1 + zod: ^3.25 || ^4.0 + peerDependenciesMeta: + '@cfworker/json-schema': + optional: true + dependencies: + '@hono/node-server': 1.19.9(hono@4.11.5) + ajv: 8.17.1 + ajv-formats: 3.0.1(ajv@8.17.1) + content-type: 1.0.5 + cors: 2.8.5 + cross-spawn: 7.0.6 + eventsource: 3.0.7 + eventsource-parser: 3.0.6 + express: 5.2.1 + express-rate-limit: 7.5.1(express@5.2.1) + jose: 6.1.3 + json-schema-typed: 8.0.2 + pkce-challenge: 5.0.1 + raw-body: 3.0.2 + zod: 3.25.76 + zod-to-json-schema: 3.25.1(zod@3.25.76) + transitivePeerDependencies: + - hono + - supports-color + dev: true + /@napi-rs/wasm-runtime@0.2.12: resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} requiresBuild: true @@ -3005,10 +3331,10 @@ packages: engines: {node: ^16.14.0 || >=18.0.0} requiresBuild: true dependencies: - agent-base: 7.1.1 + agent-base: 7.1.4 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.4 - lru-cache: 10.2.0 + https-proxy-agent: 7.0.6 + lru-cache: 10.4.3 socks-proxy-agent: 8.0.3 transitivePeerDependencies: - supports-color @@ -3024,6 +3350,13 @@ packages: dev: true optional: true + /@npmcli/promise-spawn@3.0.0: + resolution: {integrity: sha512-s9SgS+p3a9Eohe68cSI3fi+hpcZUmXq5P7w0kMlAsWVtR7XbK3ptkZqKT2cK1zLDObJ3sR+8P59sJE0w/KTL1g==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + infer-owner: 1.0.4 + dev: true + /@nx/devkit@21.6.10(nx@21.6.10): resolution: {integrity: sha512-h2ZpwhKk9p1kWgokMXP6F4PVakUA3jPbKmjtY+wCsW2VZg72tIVVzs33DGUxTvN6WG6Z4xbLKc0LJkgaOdDTOw==} peerDependencies: @@ -3108,7 +3441,7 @@ packages: - verdaccio dev: true - /@nx/jest@21.6.10(@types/node@18.19.99)(nx@21.6.10)(ts-node@10.9.2)(typescript@5.9.3): + /@nx/jest@21.6.10(@types/node@20.19.0)(nx@21.6.10)(ts-node@10.9.2)(typescript@5.9.3): resolution: {integrity: sha512-JAYMD/RwKP/mgr7R0uC6R7/DGsluajiQsHipbp6JhbwmqxOK+tTdWBHrYzKWXyRZaCSqqmrN55ocVfuynZDP4Q==} dependencies: '@jest/reporters': 30.2.0 @@ -3117,7 +3450,7 @@ packages: '@nx/js': 21.6.10(nx@21.6.10) '@phenomnomnominal/tsquery': 5.0.1(typescript@5.9.3) identity-obj-proxy: 3.0.0 - jest-config: 30.2.0(@types/node@18.19.99)(ts-node@10.9.2) + jest-config: 30.2.0(@types/node@20.19.0)(ts-node@10.9.2) jest-resolve: 30.2.0 jest-util: 30.0.5 minimatch: 9.0.3 @@ -3188,13 +3521,13 @@ packages: - supports-color dev: true - /@nx/node@21.6.10(@types/node@18.19.99)(eslint@9.39.2)(nx@21.6.10)(ts-node@10.9.2)(typescript@5.9.3): + /@nx/node@21.6.10(@types/node@20.19.0)(eslint@9.39.2)(nx@21.6.10)(ts-node@10.9.2)(typescript@5.9.3): resolution: {integrity: sha512-K1+1CwddivQLEGE/gnjq4DKb5iK1FX7TBMvSrB+TMwVodPy9SIWQUpFqko93n1QOPb0M0UH3ctYHXMs3sJLH2A==} dependencies: '@nx/devkit': 21.6.10(nx@21.6.10) '@nx/docker': 21.6.10(nx@21.6.10) '@nx/eslint': 21.6.10(eslint@9.39.2)(nx@21.6.10) - '@nx/jest': 21.6.10(@types/node@18.19.99)(nx@21.6.10)(ts-node@10.9.2)(typescript@5.9.3) + '@nx/jest': 21.6.10(@types/node@20.19.0)(nx@21.6.10)(ts-node@10.9.2)(typescript@5.9.3) '@nx/js': 21.6.10(nx@21.6.10) kill-port: 1.6.1 tcp-port-used: 1.0.2 @@ -3297,12 +3630,12 @@ packages: dev: true optional: true - /@nx/plugin@21.6.10(@types/node@18.19.99)(eslint@9.39.2)(nx@21.6.10)(ts-node@10.9.2)(typescript@5.9.3): + /@nx/plugin@21.6.10(@types/node@20.19.0)(eslint@9.39.2)(nx@21.6.10)(ts-node@10.9.2)(typescript@5.9.3): resolution: {integrity: sha512-sW266cdwV8g6Vd9uUJaDLgLahyNv1R452Ba5QYPKHxx7RX9HbkyjXce1rp2x/eYa1ktOmDBdVHurvrRP7aULEA==} dependencies: '@nx/devkit': 21.6.10(nx@21.6.10) '@nx/eslint': 21.6.10(eslint@9.39.2)(nx@21.6.10) - '@nx/jest': 21.6.10(@types/node@18.19.99)(nx@21.6.10)(ts-node@10.9.2)(typescript@5.9.3) + '@nx/jest': 21.6.10(@types/node@20.19.0)(nx@21.6.10)(ts-node@10.9.2)(typescript@5.9.3) '@nx/js': 21.6.10(nx@21.6.10) tslib: 2.8.1 transitivePeerDependencies: @@ -3417,8 +3750,23 @@ packages: engines: {node: '>=8.0.0'} dev: true - /@opentelemetry/semantic-conventions@1.30.0: - resolution: {integrity: sha512-4VlGgo32k2EQ2wcCY3vEU28A0O13aOtHz3Xt2/2U5FAh9EfhD6t6DqL5Z6yAnRCntbTFDU4YfbpyzSlHNWycPw==} + /@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0): + resolution: {integrity: sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/semantic-conventions': 1.28.0 + dev: true + + /@opentelemetry/semantic-conventions@1.28.0: + resolution: {integrity: sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==} + engines: {node: '>=14'} + dev: true + + /@opentelemetry/semantic-conventions@1.34.0: + resolution: {integrity: sha512-aKcOkyrorBGlajjRdVoJWHTxfxO1vCNHLJVlSDaRHDIdjU+pX8IYQPvPDkYiujKLbRnWU+1TBwEt0QRgSm4SGA==} engines: {node: '>=14'} dev: true @@ -3872,37 +4220,38 @@ packages: resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} dependencies: '@types/connect': 3.4.38 - '@types/node': 18.19.99 + '@types/node': 20.19.0 dev: true /@types/bonjour@3.5.13: resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} dependencies: - '@types/node': 18.19.99 + '@types/node': 20.19.0 dev: true /@types/caseless@0.12.5: resolution: {integrity: sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==} requiresBuild: true dev: true + optional: true /@types/connect-history-api-fallback@1.5.4: resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} dependencies: '@types/express-serve-static-core': 4.17.43 - '@types/node': 18.19.99 + '@types/node': 20.19.0 dev: true /@types/connect@3.4.38: resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: - '@types/node': 18.19.99 + '@types/node': 20.19.0 dev: true /@types/cors@2.8.17: resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} dependencies: - '@types/node': 18.19.99 + '@types/node': 20.19.0 dev: true /@types/eslint-scope@3.7.7: @@ -3926,7 +4275,7 @@ packages: /@types/express-serve-static-core@4.17.43: resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==} dependencies: - '@types/node': 18.19.99 + '@types/node': 20.19.0 '@types/qs': 6.9.14 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -3957,7 +4306,7 @@ packages: /@types/http-proxy@1.17.17: resolution: {integrity: sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw==} dependencies: - '@types/node': 18.19.99 + '@types/node': 20.19.0 dev: true /@types/istanbul-lib-coverage@2.0.4: @@ -3996,7 +4345,7 @@ packages: /@types/jsdom@21.1.7: resolution: {integrity: sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA==} dependencies: - '@types/node': 18.19.99 + '@types/node': 20.19.0 '@types/tough-cookie': 4.0.2 parse5: 7.3.0 dev: true @@ -4008,7 +4357,7 @@ packages: /@types/jsonwebtoken@9.0.6: resolution: {integrity: sha512-/5hndP5dCjloafCXns6SZyESp3Ldq7YjH3zwzwczYnjxIT0Fqzk5ROSYVGfFyczIue7IUEj8hkvLbPoLQ18vQw==} dependencies: - '@types/node': 18.19.99 + '@types/node': 20.19.0 dev: true /@types/lodash@4.17.0: @@ -4019,15 +4368,16 @@ packages: resolution: {integrity: sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==} requiresBuild: true dev: true + optional: true /@types/mime@1.3.5: resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} dev: true - /@types/node@18.19.99: - resolution: {integrity: sha512-tNGqoGjjI4vY5jfm3lnqgR6yS8wyT76SfsWefLWRyh/cEK4UHmPVyqHZdafI/SNu1PQzfo2JLBWfG8eMmD7KrQ==} + /@types/node@20.19.0: + resolution: {integrity: sha512-hfrc+1tud1xcdVTABC2JiomZJEklMcXYNTVtZLAeqTVWD+qL5jkHKT+1lOtqDdGxt+mB53DTtiz673vfjU8D1Q==} dependencies: - undici-types: 5.26.5 + undici-types: 6.21.0 /@types/node@22.19.7: resolution: {integrity: sha512-MciR4AKGHWl7xwxkBa6xUGxQJ4VBOmPTF7sL+iGzuahOFaO0jHCsuEfS80pan1ef4gWId1oWOweIhrDEYLuaOw==} @@ -4056,10 +4406,11 @@ packages: requiresBuild: true dependencies: '@types/caseless': 0.12.5 - '@types/node': 18.19.99 + '@types/node': 20.19.0 '@types/tough-cookie': 4.0.2 form-data: 2.5.5 dev: true + optional: true /@types/retry@0.12.2: resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==} @@ -4073,7 +4424,7 @@ packages: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} dependencies: '@types/mime': 1.3.5 - '@types/node': 18.19.99 + '@types/node': 20.19.0 dev: true /@types/serve-index@1.9.4: @@ -4087,13 +4438,13 @@ packages: dependencies: '@types/http-errors': 2.0.4 '@types/mime': 1.3.5 - '@types/node': 18.19.99 + '@types/node': 20.19.0 dev: true /@types/sockjs@0.3.36: resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} dependencies: - '@types/node': 18.19.99 + '@types/node': 20.19.0 dev: true /@types/stack-utils@2.0.3: @@ -4111,7 +4462,7 @@ packages: /@types/ws@8.5.10: resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} dependencies: - '@types/node': 18.19.99 + '@types/node': 20.19.0 dev: true /@types/yargs-parser@21.0.0: @@ -4584,6 +4935,14 @@ packages: negotiator: 0.6.3 dev: true + /accepts@2.0.0: + resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==} + engines: {node: '>= 0.6'} + dependencies: + mime-types: 3.0.2 + negotiator: 1.0.0 + dev: true + /acorn-import-phases@1.0.4(acorn@8.15.0): resolution: {integrity: sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==} engines: {node: '>=10.13.0'} @@ -4625,15 +4984,6 @@ packages: - supports-color dev: true - /agent-base@7.1.1: - resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} - engines: {node: '>= 14'} - dependencies: - debug: 4.4.3 - transitivePeerDependencies: - - supports-color - dev: true - /agent-base@7.1.4: resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} engines: {node: '>= 14'} @@ -4762,11 +5112,6 @@ packages: engines: {node: '>=8'} dev: true - /ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} - engines: {node: '>=12'} - dev: true - /ansi-regex@6.2.2: resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} engines: {node: '>=12'} @@ -4816,7 +5161,7 @@ packages: graceful-fs: 4.2.11 is-stream: 2.0.1 lazystream: 1.0.1 - lodash: 4.17.21 + lodash: 4.17.23 normalize-path: 3.0.0 readable-stream: 4.7.0 dev: true @@ -4900,7 +5245,7 @@ packages: /async@2.6.4: resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} dependencies: - lodash: 4.17.21 + lodash: 4.17.23 dev: true /async@3.2.4: @@ -5253,6 +5598,23 @@ packages: - supports-color dev: true + /body-parser@2.2.2: + resolution: {integrity: sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==} + engines: {node: '>=18'} + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 4.4.3 + http-errors: 2.0.1 + iconv-lite: 0.7.2 + on-finished: 2.4.1 + qs: 6.14.1 + raw-body: 3.0.2 + type-is: 2.0.1 + transitivePeerDependencies: + - supports-color + dev: true + /bonjour-service@1.2.1: resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==} dependencies: @@ -5291,13 +5653,6 @@ packages: balanced-match: 1.0.2 dev: true - /braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} - dependencies: - fill-range: 7.0.1 - dev: true - /braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} @@ -5386,7 +5741,7 @@ packages: '@npmcli/fs': 3.1.0 fs-minipass: 3.0.3 glob: 10.5.0 - lru-cache: 10.2.0 + lru-cache: 10.4.3 minipass: 7.1.2 minipass-collect: 2.0.1 minipass-flush: 1.0.5 @@ -5484,8 +5839,8 @@ packages: engines: {node: '>=10'} dev: true - /chardet@0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + /chardet@2.1.1: + resolution: {integrity: sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==} dev: true /chokidar@3.6.0: @@ -5493,14 +5848,14 @@ packages: engines: {node: '>= 8.10.0'} dependencies: anymatch: 3.1.3 - braces: 3.0.2 + braces: 3.0.3 glob-parent: 5.1.2 is-binary-path: 2.1.0 is-glob: 4.0.3 normalize-path: 3.0.0 readdirp: 3.6.0 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: true /chokidar@4.0.3: @@ -5513,7 +5868,9 @@ packages: /chownr@2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} + requiresBuild: true dev: true + optional: true /chrome-trace-event@1.0.3: resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} @@ -5591,9 +5948,9 @@ packages: '@colors/colors': 1.5.0 dev: true - /cli-width@3.0.0: - resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} - engines: {node: '>= 10'} + /cli-width@4.1.0: + resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} + engines: {node: '>= 12'} dev: true /cliui@7.0.4: @@ -5713,6 +6070,11 @@ packages: engines: {node: '>=14'} dev: true + /commander@11.1.0: + resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} + engines: {node: '>=16'} + dev: true + /commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} dev: true @@ -5815,6 +6177,11 @@ packages: safe-buffer: 5.2.1 dev: true + /content-disposition@1.0.1: + resolution: {integrity: sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==} + engines: {node: '>=18'} + dev: true + /content-type@1.0.5: resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} engines: {node: '>= 0.6'} @@ -5832,6 +6199,11 @@ packages: resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} dev: true + /cookie-signature@1.2.2: + resolution: {integrity: sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==} + engines: {node: '>=6.6.0'} + dev: true + /cookie@0.6.0: resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} engines: {node: '>= 0.6'} @@ -5917,15 +6289,6 @@ packages: cross-spawn: 7.0.6 dev: true - /cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - dev: true - /cross-spawn@7.0.6: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} @@ -6822,6 +7185,18 @@ packages: engines: {node: '>=0.8.x'} dev: true + /eventsource-parser@3.0.6: + resolution: {integrity: sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg==} + engines: {node: '>=18.0.0'} + dev: true + + /eventsource@3.0.7: + resolution: {integrity: sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==} + engines: {node: '>=18.0.0'} + dependencies: + eventsource-parser: 3.0.6 + dev: true + /execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} @@ -6860,7 +7235,7 @@ packages: glob: 10.5.0 json-ptr: 3.1.1 json-schema-traverse: 1.0.0 - lodash: 4.17.21 + lodash: 4.17.23 openapi3-ts: 3.2.0 promise-breaker: 6.0.0 qs: 6.14.1 @@ -6905,6 +7280,15 @@ packages: dev: true optional: true + /express-rate-limit@7.5.1(express@5.2.1): + resolution: {integrity: sha512-7iN8iPMDzOMHPUYllBEsQdWVB6fPDMPqwjBaFrgr4Jgr/+okjvzAy+UHlYYL/Vs0OsOrMkwS6PJDkFlJwoxUnw==} + engines: {node: '>= 16'} + peerDependencies: + express: '>= 4.11' + dependencies: + express: 5.2.1 + dev: true + /express@4.19.2: resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} engines: {node: '>= 0.10.0'} @@ -6967,17 +7351,53 @@ packages: methods: 1.1.2 on-finished: 2.4.1 parseurl: 1.3.3 - path-to-regexp: 0.1.12 + path-to-regexp: 0.1.12 + proxy-addr: 2.0.7 + qs: 6.14.1 + range-parser: 1.2.1 + safe-buffer: 5.2.1 + send: 0.19.2 + serve-static: 1.16.3 + setprototypeof: 1.2.0 + statuses: 2.0.2 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /express@5.2.1: + resolution: {integrity: sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==} + engines: {node: '>= 18'} + dependencies: + accepts: 2.0.0 + body-parser: 2.2.2 + content-disposition: 1.0.1 + content-type: 1.0.5 + cookie: 0.7.2 + cookie-signature: 1.2.2 + debug: 4.4.3 + depd: 2.0.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 2.1.1 + fresh: 2.0.0 + http-errors: 2.0.1 + merge-descriptors: 2.0.0 + mime-types: 3.0.2 + on-finished: 2.4.1 + once: 1.4.0 + parseurl: 1.3.3 proxy-addr: 2.0.7 qs: 6.14.1 range-parser: 1.2.1 - safe-buffer: 5.2.1 - send: 0.19.2 - serve-static: 1.16.3 - setprototypeof: 1.2.0 + router: 2.2.0 + send: 1.2.1 + serve-static: 2.2.1 statuses: 2.0.2 - type-is: 1.6.18 - utils-merge: 1.0.1 + type-is: 2.0.1 vary: 1.1.2 transitivePeerDependencies: - supports-color @@ -6988,15 +7408,6 @@ packages: requiresBuild: true dev: true - /external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} - dependencies: - chardet: 0.7.0 - iconv-lite: 0.4.24 - tmp: 0.0.33 - dev: true - /farmhash-modern@1.1.0: resolution: {integrity: sha512-6ypT4XfgqJk/F3Yuv4SX26I3doUjt0GTG4a+JgWxXQpxXzTBq8fPUeGHfcYMMDPHJHm3yPOSjaeBwBGAHWXCdA==} engines: {node: '>=18.0.0'} @@ -7114,13 +7525,6 @@ packages: engines: {node: '>= 0.4.0'} dev: true - /fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} - dependencies: - to-regex-range: 5.0.1 - dev: true - /fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -7173,6 +7577,20 @@ packages: - supports-color dev: true + /finalhandler@2.1.1: + resolution: {integrity: sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==} + engines: {node: '>= 18.0.0'} + dependencies: + debug: 4.4.3 + encodeurl: 2.0.0 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.2 + transitivePeerDependencies: + - supports-color + dev: true + /find-cache-dir@4.0.0: resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==} engines: {node: '>=14.16'} @@ -7239,7 +7657,7 @@ packages: '@types/lodash': 4.17.0 firebase-admin: 13.6.0 firebase-functions: 7.0.3(firebase-admin@13.6.0) - jest: 30.0.5(@types/node@18.19.99)(ts-node@10.9.2) + jest: 30.0.5(@types/node@20.19.0)(ts-node@10.9.2) lodash: 4.17.21 ts-deepmerge: 2.0.7 dev: true @@ -7268,14 +7686,19 @@ packages: - supports-color dev: true - /firebase-tools@13.35.1: - resolution: {integrity: sha512-QmMy4hnd0Q+V+7GFhZUV80+kG0WC1+UOtuaaQWx+cstt+XepUcpju/KW4cBknnyql521BghfuAhveckQQ1g+HA==} - engines: {node: '>=18.0.0 || >=20.0.0 || >=22.0.0'} + /firebase-tools@15.3.1(@types/node@20.19.0)(hono@4.11.5)(typescript@5.9.3): + resolution: {integrity: sha512-8tMy4Dk4kVh7PD8zO1cZl23x4eNdlnxTku2nLNEIRn8Tv4byA9PSbEfeWv4A4OGvGusdXN74pjvrU/q/MkjyEg==} + engines: {node: '>=20.0.0 || >=22.0.0 || >=24.0.0'} hasBin: true dependencies: - '@electric-sql/pglite': 0.2.17 + '@apphosting/build': 0.1.7(@types/node@20.19.0)(typescript@5.9.3) + '@apphosting/common': 0.0.8 + '@electric-sql/pglite': 0.3.15 + '@electric-sql/pglite-tools': 0.2.20(@electric-sql/pglite@0.3.15) '@google-cloud/cloud-sql-connector': 1.9.0 - '@google-cloud/pubsub': 4.11.0 + '@google-cloud/pubsub': 5.2.2 + '@inquirer/prompts': 7.10.1(@types/node@20.19.0) + '@modelcontextprotocol/sdk': 1.25.3(hono@4.11.5)(zod@3.25.76) abort-controller: 3.0.0 ajv: 8.17.1 ajv-formats: 3.0.1(ajv@8.17.1) @@ -7303,13 +7726,12 @@ packages: gaxios: 6.7.1 glob: 10.5.0 google-auth-library: 9.15.1 - inquirer: 8.2.6 - inquirer-autocomplete-prompt: 2.0.1(inquirer@8.2.6) - js-yaml: 3.14.1 + ignore: 7.0.5 + js-yaml: 3.14.2 jsonwebtoken: 9.0.2 leven: 3.1.0 libsodium-wrappers: 0.7.13 - lodash: 4.17.21 + lodash: 4.17.23 lsofi: 1.0.0 marked: 13.0.3 marked-terminal: 7.3.0(marked@13.0.3) @@ -7321,6 +7743,8 @@ packages: ora: 5.4.1 p-limit: 3.1.0 pg: 8.17.2 + pg-gateway: 0.3.0-beta.4 + pglite-2: /@electric-sql/pglite@0.2.17 portfinder: 1.0.32 progress: 2.0.3 proxy-agent: 6.4.0 @@ -7329,8 +7753,7 @@ packages: sql-formatter: 15.7.0 stream-chain: 2.2.5 stream-json: 1.8.0 - superstatic: 9.2.0 - tar: 6.2.1 + superstatic: 10.0.0 tcp-port-used: 1.0.2 tmp: 0.2.5 triple-beam: 1.4.1 @@ -7341,13 +7764,21 @@ packages: winston-transport: 4.7.0 ws: 7.5.10 yaml: 2.8.2 + zod: 3.25.76 + zod-to-json-schema: 3.25.1(zod@3.25.76) transitivePeerDependencies: + - '@cfworker/json-schema' + - '@swc/core' + - '@swc/wasm' + - '@types/node' - bare-abort-controller - bufferutil - encoding + - hono - pg-native - react-native-b4a - supports-color + - typescript - utf-8-validate dev: true @@ -7427,7 +7858,7 @@ packages: resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} engines: {node: '>=14'} dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 signal-exit: 4.1.0 dev: true @@ -7470,6 +7901,7 @@ packages: mime-types: 2.1.35 safe-buffer: 5.2.1 dev: true + optional: true /form-data@4.0.5: resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==} @@ -7503,6 +7935,11 @@ packages: engines: {node: '>= 0.6'} dev: true + /fresh@2.0.0: + resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} + engines: {node: '>= 0.8'} + dev: true + /front-matter@4.0.2: resolution: {integrity: sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==} dependencies: @@ -7534,9 +7971,11 @@ packages: /fs-minipass@2.1.0: resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} engines: {node: '>= 8'} + requiresBuild: true dependencies: minipass: 3.3.6 dev: true + optional: true /fs-minipass@3.0.3: resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} @@ -7555,14 +7994,6 @@ packages: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: true - /fsevents@2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true - dev: true - optional: true - /fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -7591,7 +8022,7 @@ packages: engines: {node: '>=14'} dependencies: extend: 3.0.2 - https-proxy-agent: 7.0.4 + https-proxy-agent: 7.0.6 is-stream: 2.0.1 node-fetch: 2.7.0 uuid: 9.0.1 @@ -7605,7 +8036,7 @@ packages: engines: {node: '>=18'} dependencies: extend: 3.0.2 - https-proxy-agent: 7.0.4 + https-proxy-agent: 7.0.6 node-fetch: 3.3.2 rimraf: 5.0.10 transitivePeerDependencies: @@ -7838,6 +8269,7 @@ packages: /google-gax@4.6.1: resolution: {integrity: sha512-V6eky/xz2mcKfAd1Ioxyd6nmA61gao3n01C+YeuIwu3vzM9EDR6wcVzMSIbLMDXWeoi9SHYctXuKYC5uJUT3eQ==} engines: {node: '>=14'} + requiresBuild: true dependencies: '@grpc/grpc-js': 1.14.3 '@grpc/proto-loader': 0.7.15 @@ -7855,6 +8287,26 @@ packages: - encoding - supports-color dev: true + optional: true + + /google-gax@5.0.6: + resolution: {integrity: sha512-1kGbqVQBZPAAu4+/R1XxPQKP0ydbNYoLAr4l0ZO2bMV0kLyLW4I1gAk++qBLWt7DPORTzmWRMsCZe86gDjShJA==} + engines: {node: '>=18'} + dependencies: + '@grpc/grpc-js': 1.14.3 + '@grpc/proto-loader': 0.8.0 + duplexify: 4.1.3 + google-auth-library: 10.5.0 + google-logging-utils: 1.1.3 + node-fetch: 3.3.2 + object-hash: 3.0.0 + proto3-json-serializer: 3.0.4 + protobufjs: 7.5.4 + retry-request: 8.0.2 + rimraf: 5.0.10 + transitivePeerDependencies: + - supports-color + dev: true /google-logging-utils@0.0.2: resolution: {integrity: sha512-NEgUnEcBiP5HrPzufUkBzJOD/Sxsco3rLNo1F1TNf7ieU8ryUzBhqba8r756CjLX7rn3fHl6iLEwPYuqpoKgQQ==} @@ -7990,8 +8442,8 @@ packages: function-bind: 1.1.2 dev: true - /heap-js@2.5.0: - resolution: {integrity: sha512-kUGoI3p7u6B41z/dp33G6OaL7J4DRqRYwVmeIlwLClx7yaaAy7hoDExnuejTKtuDwfcatGmddHDEOjf6EyIxtQ==} + /heap-js@2.7.1: + resolution: {integrity: sha512-EQfezRg0NCZGNlhlDR3Evrw1FVL2G3LhU7EgPoxufQKruNBSYA8MiRPHeWbU+36o+Fhel0wMwM+sLEiBAlNLJA==} engines: {node: '>=10.0.0'} dev: true @@ -7999,6 +8451,11 @@ packages: resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} dev: true + /hono@4.11.5: + resolution: {integrity: sha512-WemPi9/WfyMwZs+ZUXdiwcCh9Y+m7L+8vki9MzDw3jJ+W9Lc+12HGsd368Qc1vZi1xwW8BWMMsnK5efYKPdt4g==} + engines: {node: '>=16.9.0'} + dev: true + /hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} dev: true @@ -8097,7 +8554,7 @@ packages: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} dependencies: - agent-base: 7.1.1 + agent-base: 7.1.4 debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -8143,16 +8600,6 @@ packages: - supports-color dev: true - /https-proxy-agent@7.0.4: - resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==} - engines: {node: '>= 14'} - dependencies: - agent-base: 7.1.1 - debug: 4.4.3 - transitivePeerDependencies: - - supports-color - dev: true - /https-proxy-agent@7.0.6: resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} @@ -8187,6 +8634,13 @@ packages: safer-buffer: 2.1.2 dev: true + /iconv-lite@0.7.2: + resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: true + /icss-utils@5.1.0(postcss@8.4.38): resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} engines: {node: ^10 || ^12 || >= 14} @@ -8267,6 +8721,10 @@ packages: dev: true optional: true + /infer-owner@1.0.4: + resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} + dev: true + /inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. @@ -8292,41 +8750,6 @@ packages: engines: {node: '>=10'} dev: true - /inquirer-autocomplete-prompt@2.0.1(inquirer@8.2.6): - resolution: {integrity: sha512-jUHrH0btO7j5r8DTQgANf2CBkTZChoVySD8zF/wp5fZCOLIuUbleXhf4ZY5jNBOc1owA3gdfWtfZuppfYBhcUg==} - engines: {node: '>=12'} - peerDependencies: - inquirer: ^8.0.0 - dependencies: - ansi-escapes: 4.3.2 - figures: 3.2.0 - inquirer: 8.2.6 - picocolors: 1.1.1 - run-async: 2.4.1 - rxjs: 7.8.1 - dev: true - - /inquirer@8.2.6: - resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} - engines: {node: '>=12.0.0'} - dependencies: - ansi-escapes: 4.3.2 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-width: 3.0.0 - external-editor: 3.1.0 - figures: 3.2.0 - lodash: 4.17.21 - mute-stream: 0.0.8 - ora: 5.4.1 - run-async: 2.4.1 - rxjs: 7.8.1 - string-width: 4.2.3 - strip-ansi: 6.0.1 - through: 2.3.8 - wrap-ansi: 6.2.0 - dev: true - /install-artifact-from-github@1.3.5: resolution: {integrity: sha512-gZHC7f/cJgXz7MXlHFBxPVMsvIbev1OQN1uKQYKVJDydGNm9oYf9JstbU4Atnh/eSvk41WtEovoRm+8IF686xg==} hasBin: true @@ -8692,7 +9115,7 @@ packages: '@jest/expect': 30.0.5 '@jest/test-result': 30.0.5 '@jest/types': 30.0.5 - '@types/node': 18.19.99 + '@types/node': 20.19.0 chalk: 4.1.2 co: 4.6.0 dedent: 1.7.1 @@ -8721,7 +9144,7 @@ packages: '@jest/expect': 30.2.0 '@jest/test-result': 30.2.0 '@jest/types': 30.2.0 - '@types/node': 18.19.99 + '@types/node': 20.19.0 chalk: 4.1.2 co: 4.6.0 dedent: 1.7.1 @@ -8742,7 +9165,7 @@ packages: - supports-color dev: true - /jest-cli@30.0.5(@types/node@18.19.99)(ts-node@10.9.2): + /jest-cli@30.0.5(@types/node@20.19.0)(ts-node@10.9.2): resolution: {integrity: sha512-Sa45PGMkBZzF94HMrlX4kUyPOwUpdZasaliKN3mifvDmkhLYqLLg8HQTzn6gq7vJGahFYMQjXgyJWfYImKZzOw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true @@ -8758,7 +9181,7 @@ packages: chalk: 4.1.2 exit-x: 0.2.2 import-local: 3.2.0 - jest-config: 30.0.5(@types/node@18.19.99)(ts-node@10.9.2) + jest-config: 30.0.5(@types/node@20.19.0)(ts-node@10.9.2) jest-util: 30.0.5 jest-validate: 30.0.5 yargs: 17.7.2 @@ -8770,7 +9193,7 @@ packages: - ts-node dev: true - /jest-config@30.0.5(@types/node@18.19.99)(ts-node@10.9.2): + /jest-config@30.0.5(@types/node@20.19.0)(ts-node@10.9.2): resolution: {integrity: sha512-aIVh+JNOOpzUgzUnPn5FLtyVnqc3TQHVMupYtyeURSb//iLColiMIR8TxCIDKyx9ZgjKnXGucuW68hCxgbrwmA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: @@ -8790,7 +9213,7 @@ packages: '@jest/pattern': 30.0.1 '@jest/test-sequencer': 30.0.5 '@jest/types': 30.0.5 - '@types/node': 18.19.99 + '@types/node': 20.19.0 babel-jest: 30.0.5(@babel/core@7.28.6) chalk: 4.1.2 ci-info: 4.3.1 @@ -8810,13 +9233,13 @@ packages: pretty-format: 30.0.5 slash: 3.0.0 strip-json-comments: 3.1.1 - ts-node: 10.9.2(@types/node@18.19.99)(typescript@5.9.3) + ts-node: 10.9.2(@types/node@20.19.0)(typescript@5.9.3) transitivePeerDependencies: - babel-plugin-macros - supports-color dev: true - /jest-config@30.2.0(@types/node@18.19.99)(ts-node@10.9.2): + /jest-config@30.2.0(@types/node@20.19.0)(ts-node@10.9.2): resolution: {integrity: sha512-g4WkyzFQVWHtu6uqGmQR4CQxz/CH3yDSlhzXMWzNjDx843gYjReZnMRanjRCq5XZFuQrGDxgUaiYWE8BRfVckA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: @@ -8836,7 +9259,7 @@ packages: '@jest/pattern': 30.0.1 '@jest/test-sequencer': 30.2.0 '@jest/types': 30.2.0 - '@types/node': 18.19.99 + '@types/node': 20.19.0 babel-jest: 30.2.0(@babel/core@7.28.6) chalk: 4.1.2 ci-info: 4.3.1 @@ -8856,7 +9279,7 @@ packages: pretty-format: 30.2.0 slash: 3.0.0 strip-json-comments: 3.1.1 - ts-node: 10.9.2(@types/node@18.19.99)(typescript@5.9.3) + ts-node: 10.9.2(@types/node@20.19.0)(typescript@5.9.3) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -8930,7 +9353,7 @@ packages: '@jest/environment': 30.0.5 '@jest/environment-jsdom-abstract': 30.0.5(jsdom@26.1.0) '@types/jsdom': 21.1.7 - '@types/node': 18.19.99 + '@types/node': 20.19.0 jsdom: 26.1.0 transitivePeerDependencies: - bufferutil @@ -8945,7 +9368,7 @@ packages: '@jest/environment': 30.0.5 '@jest/fake-timers': 30.0.5 '@jest/types': 30.0.5 - '@types/node': 18.19.99 + '@types/node': 20.19.0 jest-mock: 30.0.5 jest-util: 30.0.5 jest-validate: 30.0.5 @@ -8958,7 +9381,7 @@ packages: '@jest/environment': 30.2.0 '@jest/fake-timers': 30.2.0 '@jest/types': 30.2.0 - '@types/node': 18.19.99 + '@types/node': 20.19.0 jest-mock: 30.2.0 jest-util: 30.2.0 jest-validate: 30.2.0 @@ -8969,7 +9392,7 @@ packages: engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: '@jest/types': 30.0.5 - '@types/node': 18.19.99 + '@types/node': 20.19.0 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -8987,7 +9410,7 @@ packages: engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: '@jest/types': 30.2.0 - '@types/node': 18.19.99 + '@types/node': 20.19.0 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -9071,7 +9494,7 @@ packages: engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: '@jest/types': 30.0.5 - '@types/node': 18.19.99 + '@types/node': 20.19.0 jest-util: 30.0.5 dev: true @@ -9080,7 +9503,7 @@ packages: engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: '@jest/types': 30.2.0 - '@types/node': 18.19.99 + '@types/node': 20.19.0 jest-util: 30.2.0 dev: true @@ -9160,7 +9583,7 @@ packages: '@jest/test-result': 30.0.5 '@jest/transform': 30.0.5 '@jest/types': 30.0.5 - '@types/node': 18.19.99 + '@types/node': 20.19.0 chalk: 4.1.2 emittery: 0.13.1 exit-x: 0.2.2 @@ -9190,7 +9613,7 @@ packages: '@jest/test-result': 30.2.0 '@jest/transform': 30.2.0 '@jest/types': 30.2.0 - '@types/node': 18.19.99 + '@types/node': 20.19.0 chalk: 4.1.2 emittery: 0.13.1 exit-x: 0.2.2 @@ -9222,7 +9645,7 @@ packages: '@jest/test-result': 30.0.5 '@jest/transform': 30.0.5 '@jest/types': 30.0.5 - '@types/node': 18.19.99 + '@types/node': 20.19.0 chalk: 4.1.2 cjs-module-lexer: 2.2.0 collect-v8-coverage: 1.0.3 @@ -9252,7 +9675,7 @@ packages: '@jest/test-result': 30.2.0 '@jest/transform': 30.2.0 '@jest/types': 30.2.0 - '@types/node': 18.19.99 + '@types/node': 20.19.0 chalk: 4.1.2 cjs-module-lexer: 2.2.0 collect-v8-coverage: 1.0.3 @@ -9334,7 +9757,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 18.19.99 + '@types/node': 20.19.0 chalk: 4.1.2 ci-info: 3.8.0 graceful-fs: 4.2.11 @@ -9346,7 +9769,7 @@ packages: engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: '@jest/types': 30.0.5 - '@types/node': 18.19.99 + '@types/node': 20.19.0 chalk: 4.1.2 ci-info: 4.3.1 graceful-fs: 4.2.11 @@ -9358,7 +9781,7 @@ packages: engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: '@jest/types': 30.2.0 - '@types/node': 18.19.99 + '@types/node': 20.19.0 chalk: 4.1.2 ci-info: 4.3.1 graceful-fs: 4.2.11 @@ -9395,7 +9818,7 @@ packages: dependencies: '@jest/test-result': 30.0.5 '@jest/types': 30.0.5 - '@types/node': 18.19.99 + '@types/node': 20.19.0 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -9409,7 +9832,7 @@ packages: dependencies: '@jest/test-result': 30.2.0 '@jest/types': 30.2.0 - '@types/node': 18.19.99 + '@types/node': 20.19.0 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -9421,7 +9844,7 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 18.19.99 + '@types/node': 20.19.0 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true @@ -9430,7 +9853,7 @@ packages: resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 18.19.99 + '@types/node': 20.19.0 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -9440,7 +9863,7 @@ packages: resolution: {integrity: sha512-ojRXsWzEP16NdUuBw/4H/zkZdHOa7MMYCk4E430l+8fELeLg/mqmMlRhjL7UNZvQrDmnovWZV4DxX03fZF48fQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: - '@types/node': 18.19.99 + '@types/node': 20.19.0 '@ungap/structured-clone': 1.3.0 jest-util: 30.0.5 merge-stream: 2.0.0 @@ -9451,14 +9874,14 @@ packages: resolution: {integrity: sha512-0Q4Uk8WF7BUwqXHuAjc23vmopWJw5WH7w2tqBoUOZpOjW/ZnR44GXXd1r82RvnmI2GZge3ivrYXk/BE2+VtW2g==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: - '@types/node': 18.19.99 + '@types/node': 20.19.0 '@ungap/structured-clone': 1.3.0 jest-util: 30.2.0 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true - /jest@30.0.5(@types/node@18.19.99)(ts-node@10.9.2): + /jest@30.0.5(@types/node@20.19.0)(ts-node@10.9.2): resolution: {integrity: sha512-y2mfcJywuTUkvLm2Lp1/pFX8kTgMO5yyQGq/Sk/n2mN7XWYp4JsCZ/QXW34M8YScgk8bPZlREH04f6blPnoHnQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true @@ -9471,7 +9894,7 @@ packages: '@jest/core': 30.0.5(ts-node@10.9.2) '@jest/types': 30.0.5 import-local: 3.2.0 - jest-cli: 30.0.5(@types/node@18.19.99)(ts-node@10.9.2) + jest-cli: 30.0.5(@types/node@20.19.0)(ts-node@10.9.2) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -9496,6 +9919,10 @@ packages: resolution: {integrity: sha512-jc7BFxgKPKi94uOvEmzlSWFFe2+vASyXaKUpdQKatWAESU2MWjDfFf0fdfc83CDKcA5QecabZeNLyfhe3yKNkg==} dev: true + /jose@6.1.3: + resolution: {integrity: sha512-0TpaTfihd4QMNwrz/ob2Bp7X04yuxJkjRGi4aKmOqwhov54i6u79oCv7T+C7lo70MKH6BesI3vscD1yb/yzKXQ==} + dev: true + /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} dev: true @@ -9508,6 +9935,14 @@ packages: esprima: 4.0.1 dev: true + /js-yaml@3.14.2: + resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==} + hasBin: true + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + dev: true + /js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true @@ -9601,6 +10036,10 @@ packages: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} dev: true + /json-schema-typed@8.0.2: + resolution: {integrity: sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==} + dev: true + /json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: true @@ -9941,6 +10380,10 @@ packages: requiresBuild: true dev: true + /lodash@4.17.23: + resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==} + dev: true + /log-symbols@4.1.0: resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} engines: {node: '>=10'} @@ -10101,6 +10544,11 @@ packages: engines: {node: '>= 0.6'} dev: true + /media-typer@1.1.0: + resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} + engines: {node: '>= 0.8'} + dev: true + /memfs@3.5.3: resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} engines: {node: '>= 4.0.0'} @@ -10127,6 +10575,11 @@ packages: resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} dev: true + /merge-descriptors@2.0.0: + resolution: {integrity: sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==} + engines: {node: '>=18'} + dev: true + /merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} dev: true @@ -10303,14 +10756,18 @@ packages: /minipass@3.3.6: resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} engines: {node: '>=8'} + requiresBuild: true dependencies: yallist: 4.0.0 dev: true + optional: true /minipass@5.0.0: resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} engines: {node: '>=8'} + requiresBuild: true dev: true + optional: true /minipass@7.1.2: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} @@ -10320,10 +10777,12 @@ packages: /minizlib@2.1.2: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} engines: {node: '>= 8'} + requiresBuild: true dependencies: minipass: 3.3.6 yallist: 4.0.0 dev: true + optional: true /mkdirp@0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} @@ -10338,6 +10797,7 @@ packages: hasBin: true requiresBuild: true dev: true + optional: true /moo@0.5.2: resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==} @@ -10376,8 +10836,9 @@ packages: thunky: 1.1.0 dev: true - /mute-stream@0.0.8: - resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + /mute-stream@2.0.0: + resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} + engines: {node: ^18.17.0 || >=20.5.0} dev: true /mz@2.7.0: @@ -10441,6 +10902,11 @@ packages: engines: {node: '>= 0.6'} dev: true + /negotiator@1.0.0: + resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} + engines: {node: '>= 0.6'} + dev: true + /neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} dev: true @@ -10565,6 +11031,18 @@ packages: engines: {node: '>=0.10.0'} dev: true + /npm-install-checks@6.3.0: + resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + semver: 7.7.3 + dev: true + + /npm-normalize-package-bin@3.0.1: + resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dev: true + /npm-package-arg@11.0.1: resolution: {integrity: sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==} engines: {node: ^16.14.0 || >=18.0.0} @@ -10575,6 +11053,16 @@ packages: validate-npm-package-name: 5.0.1 dev: true + /npm-pick-manifest@9.1.0: + resolution: {integrity: sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + npm-install-checks: 6.3.0 + npm-normalize-package-bin: 3.0.1 + npm-package-arg: 11.0.1 + semver: 7.7.3 + dev: true + /npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} @@ -10802,11 +11290,6 @@ packages: wcwidth: 1.0.1 dev: true - /os-tmpdir@1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} - engines: {node: '>=0.10.0'} - dev: true - /p-defer@3.0.0: resolution: {integrity: sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==} engines: {node: '>=8'} @@ -10887,11 +11370,11 @@ packages: engines: {node: '>= 14'} dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 - agent-base: 7.1.1 + agent-base: 7.1.4 debug: 4.4.3 get-uri: 6.0.3 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.4 + https-proxy-agent: 7.0.6 pac-resolver: 7.0.1 socks-proxy-agent: 8.0.3 transitivePeerDependencies: @@ -10989,7 +11472,7 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} dependencies: - lru-cache: 10.2.0 + lru-cache: 10.4.3 minipass: 7.1.2 dev: true @@ -11026,6 +11509,10 @@ packages: resolution: {integrity: sha512-iNzslsoeSH2/gmDDKiyMqF64DATUCWj3YJ0wP14kqcsf2TUklwimd+66yYojKwZCA7h2yRNLGug71hCBA2a4sw==} dev: true + /pg-gateway@0.3.0-beta.4: + resolution: {integrity: sha512-CTjsM7Z+0Nx2/dyZ6r8zRsc3f9FScoD5UAOlfUx1Fdv/JOIWvRbF7gou6l6vP+uypXQVoYPgw8xZDXgMGvBa4Q==} + dev: true + /pg-int8@1.0.1: resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} engines: {node: '>=4.0.0'} @@ -11114,6 +11601,11 @@ packages: engines: {node: '>= 6'} dev: true + /pkce-challenge@5.0.1: + resolution: {integrity: sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==} + engines: {node: '>=16.20.0'} + dev: true + /pkg-dir@4.2.0: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} @@ -11625,6 +12117,15 @@ packages: /proto3-json-serializer@2.0.2: resolution: {integrity: sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==} engines: {node: '>=14.0.0'} + requiresBuild: true + dependencies: + protobufjs: 7.5.4 + dev: true + optional: true + + /proto3-json-serializer@3.0.4: + resolution: {integrity: sha512-E1sbAYg3aEbXrq0n1ojJkRHQJGE1kaE/O6GLA94y8rnJBfgvOPTOd1b9hOceQK1FFZI9qMh1vBERCyO2ifubcw==} + engines: {node: '>=18'} dependencies: protobufjs: 7.5.4 dev: true @@ -11644,7 +12145,7 @@ packages: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 18.19.99 + '@types/node': 20.19.0 long: 5.2.3 dev: true @@ -11663,7 +12164,7 @@ packages: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 18.19.99 + '@types/node': 20.19.0 long: 5.2.3 dev: true @@ -11679,10 +12180,10 @@ packages: resolution: {integrity: sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==} engines: {node: '>= 14'} dependencies: - agent-base: 7.1.1 + agent-base: 7.1.4 debug: 4.4.3 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.4 + https-proxy-agent: 7.0.6 lru-cache: 7.18.3 pac-proxy-agent: 7.0.1 proxy-from-env: 1.1.0 @@ -11798,6 +12299,16 @@ packages: unpipe: 1.0.0 dev: true + /raw-body@3.0.2: + resolution: {integrity: sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==} + engines: {node: '>= 0.10'} + dependencies: + bytes: 3.1.2 + http-errors: 2.0.1 + iconv-lite: 0.7.2 + unpipe: 1.0.0 + dev: true + /rc@1.2.8: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true @@ -12026,6 +12537,7 @@ packages: /retry-request@7.0.2: resolution: {integrity: sha512-dUOvLMJ0/JJYEn8NrpOaGNE7X3vpI5XlZS/u0ANjqtcZVKnIxP7IgCFwrKTxENw29emmwug53awKtaMm4i9g5w==} engines: {node: '>=14'} + requiresBuild: true dependencies: '@types/request': 2.48.13 extend: 3.0.2 @@ -12034,6 +12546,17 @@ packages: - encoding - supports-color dev: true + optional: true + + /retry-request@8.0.2: + resolution: {integrity: sha512-JzFPAfklk1kjR1w76f0QOIhoDkNkSqW8wYKT08n9yysTmZfB+RQ2QoXoTAeOi1HD9ZipTyTAZg3c4pM/jeqgSw==} + engines: {node: '>=18'} + dependencies: + extend: 3.0.2 + teeny-request: 10.1.0 + transitivePeerDependencies: + - supports-color + dev: true /retry@0.12.0: resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} @@ -12081,11 +12604,6 @@ packages: engines: {node: '>=18'} dev: true - /run-async@2.4.1: - resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} - engines: {node: '>=0.12.0'} - dev: true - /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: @@ -12469,6 +12987,25 @@ packages: - supports-color dev: true + /send@1.2.1: + resolution: {integrity: sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==} + engines: {node: '>= 18'} + dependencies: + debug: 4.4.3 + encodeurl: 2.0.0 + 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 + range-parser: 1.2.1 + statuses: 2.0.2 + transitivePeerDependencies: + - supports-color + dev: true + /serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} dependencies: @@ -12514,6 +13051,18 @@ packages: - supports-color dev: true + /serve-static@2.2.1: + resolution: {integrity: sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==} + engines: {node: '>= 18'} + dependencies: + encodeurl: 2.0.0 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 1.2.1 + transitivePeerDependencies: + - supports-color + dev: true + /set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} @@ -12653,7 +13202,7 @@ packages: resolution: {integrity: sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==} engines: {node: '>= 14'} dependencies: - agent-base: 7.1.1 + agent-base: 7.1.4 debug: 4.4.3 socks: 2.8.1 transitivePeerDependencies: @@ -12671,7 +13220,7 @@ packages: /sort-any@2.0.0: resolution: {integrity: sha512-T9JoiDewQEmWcnmPn/s9h/PH9t3d/LSWi0RgVmXSuDYeZXTZOZ1/wrK2PHaptuR1VXe3clLLt0pD6sgVOwjNEA==} dependencies: - lodash: 4.17.21 + lodash: 4.17.23 dev: true /source-map-js@1.2.0: @@ -12908,7 +13457,7 @@ packages: resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} engines: {node: '>=12'} dependencies: - ansi-regex: 6.0.1 + ansi-regex: 6.2.2 dev: true /strip-bom@3.0.0: @@ -12967,9 +13516,9 @@ packages: postcss-selector-parser: 6.0.16 dev: true - /superstatic@9.2.0: - resolution: {integrity: sha512-QrJAJIpAij0jJT1nEwYTB0SzDi4k0wYygu6GxK0ko8twiQgfgaOAZ7Hu99p02MTAsGho753zhzSvsw8We4PBEQ==} - engines: {node: 18 || 20 || 22} + /superstatic@10.0.0: + resolution: {integrity: sha512-4xIenBdrIIYuqXrIVx/lejyCh4EJwEMPCwfk9VGFfRlhZcdvzTd3oVOUILrAGfC4pFUWixzPgaOVzAEZgeYI3w==} + engines: {node: 20 || 22 || 24} hasBin: true dependencies: basic-auth-connect: 1.1.0 @@ -12980,7 +13529,7 @@ packages: glob-slasher: 1.0.1 is-url: 1.2.4 join-path: 1.1.1 - lodash: 4.17.21 + lodash: 4.17.23 mime-types: 2.1.35 minimatch: 6.2.0 morgan: 1.10.0 @@ -13103,6 +13652,7 @@ packages: resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exhorbitant rates) by contacting i@izs.me + requiresBuild: true dependencies: chownr: 2.0.0 fs-minipass: 2.1.0 @@ -13111,6 +13661,7 @@ packages: mkdirp: 1.0.4 yallist: 4.0.0 dev: true + optional: true /tcp-port-used@1.0.2: resolution: {integrity: sha512-l7ar8lLUD3XS1V2lfoJlCBaeoaWo/2xfYt81hM7VlvR4RrMVFqfmzfhLVk40hAb368uitje5gPtBRL1m/DGvLA==} @@ -13121,6 +13672,18 @@ packages: - supports-color dev: true + /teeny-request@10.1.0: + resolution: {integrity: sha512-3ZnLvgWF29jikg1sAQ1g0o+lr5JX6sVgYvfUJazn7ZjJroDBUTWp44/+cFVX0bULjv4vci+rBD+oGVAkWqhUbw==} + engines: {node: '>=18'} + dependencies: + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + node-fetch: 3.3.2 + stream-events: 1.0.5 + transitivePeerDependencies: + - supports-color + dev: true + /teeny-request@9.0.0: resolution: {integrity: sha512-resvxdc6Mgb7YEThw6G6bExlXKkv6+YbuzGg9xuXxSgxJF7Ozs+o8Y9+2R3sArdWdW8nOokoQb1yrpFB0pQK2g==} engines: {node: '>=14'} @@ -13135,6 +13698,7 @@ packages: - encoding - supports-color dev: true + optional: true /terser-webpack-plugin@5.3.16(webpack@5.104.1): resolution: {integrity: sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q==} @@ -13221,10 +13785,6 @@ packages: xtend: 4.0.2 dev: true - /through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - dev: true - /thunky@1.1.0: resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} dev: true @@ -13248,13 +13808,6 @@ packages: tldts-core: 6.1.86 dev: true - /tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} - dependencies: - os-tmpdir: 1.0.2 - dev: true - /tmp@0.2.5: resolution: {integrity: sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==} engines: {node: '>=14.14'} @@ -13286,7 +13839,7 @@ packages: /toxic@1.0.1: resolution: {integrity: sha512-WI3rIGdcaKULYg7KVoB0zcjikqvcYYvcuT6D89bFPz2rVR0Rl0PK6x8/X62rtdLtBKIE985NzVf/auTtGegIIg==} dependencies: - lodash: 4.17.21 + lodash: 4.17.23 dev: true /tr46@0.0.3: @@ -13364,7 +13917,7 @@ packages: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 handlebars: 4.7.8 - jest: 30.0.5(@types/node@18.19.99)(ts-node@10.9.2) + jest: 30.0.5(@types/node@20.19.0)(ts-node@10.9.2) jest-util: 30.0.5 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -13391,7 +13944,7 @@ packages: webpack: 5.104.1 dev: true - /ts-node@10.9.2(@types/node@18.19.99)(typescript@5.9.3): + /ts-node@10.9.2(@types/node@20.19.0)(typescript@5.9.3): resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true peerDependencies: @@ -13410,7 +13963,7 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 18.19.99 + '@types/node': 20.19.0 acorn: 8.15.0 acorn-walk: 8.2.0 arg: 4.1.3 @@ -13509,6 +14062,15 @@ packages: mime-types: 2.1.35 dev: true + /type-is@2.0.1: + resolution: {integrity: sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==} + engines: {node: '>= 0.6'} + dependencies: + content-type: 1.0.5 + media-typer: 1.1.0 + mime-types: 3.0.2 + dev: true + /typed-assert@1.0.9: resolution: {integrity: sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==} dev: true @@ -13549,12 +14111,8 @@ packages: dev: true optional: true - /undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - /undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - dev: true /unicode-canonical-property-names-ecmascript@2.0.0: resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} @@ -14263,6 +14821,11 @@ packages: engines: {node: '>=12.20'} dev: true + /yoctocolors-cjs@2.1.3: + resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==} + engines: {node: '>=18'} + dev: true + /zip-stream@6.0.1: resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} engines: {node: '>= 14'} @@ -14271,3 +14834,15 @@ packages: compress-commons: 6.0.2 readable-stream: 4.7.0 dev: true + + /zod-to-json-schema@3.25.1(zod@3.25.76): + resolution: {integrity: sha512-pM/SU9d3YAggzi6MtR4h7ruuQlqKtad8e9S0fmxcMi+ueAK5Korys/aWcV9LIIHTVbj01NdzxcnXSN+O74ZIVA==} + peerDependencies: + zod: ^3.25 || ^4 + dependencies: + zod: 3.25.76 + dev: true + + /zod@3.25.76: + resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} + dev: true From 608f6f612db95a5506e513143bb56f40507dc41f Mon Sep 17 00:00:00 2001 From: Simon M Date: Thu, 22 Jan 2026 20:36:56 +0000 Subject: [PATCH 3/3] Fix rogue node version in e2e --- e2e/nx-firebase-e2e/test-utils/test-utils-functions.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/e2e/nx-firebase-e2e/test-utils/test-utils-functions.ts b/e2e/nx-firebase-e2e/test-utils/test-utils-functions.ts index b072124e..6a01ea52 100644 --- a/e2e/nx-firebase-e2e/test-utils/test-utils-functions.ts +++ b/e2e/nx-firebase-e2e/test-utils/test-utils-functions.ts @@ -27,7 +27,7 @@ export function expectedFunctionProjectTargets( dependenciesFieldType: 'dependencies', format: ['esm'], thirdParty: false, - target: 'node18', + target: 'node20', esbuildOptions: { logLevel: 'info', },