From e461877ee6ec2b6fe824c5e2f8938d3051302549 Mon Sep 17 00:00:00 2001 From: Kara Brightwell Date: Tue, 8 Jul 2025 12:04:16 +0100 Subject: [PATCH 1/2] test: add tests for plugin schema inputs/outputs --- jest.config.base.js | 3 +- jest/serializers/zod-error.js | 9 + plugins/babel/test/schema/babel.test.ts | 83 ++++ plugins/circleci/test/schemas/hook.test.ts | 439 ++++++++++++++++++ plugins/circleci/test/schemas/plugin.test.ts | 58 +++ plugins/cloudsmith/jest.config.js | 5 + plugins/cloudsmith/test/schema.test.ts | 27 ++ plugins/cypress/jest.config.js | 5 + plugins/cypress/tests/schemas/cypress.test.ts | 28 ++ plugins/docker/jest.config.js | 5 + plugins/docker/tests/schema/build.test.ts | 30 ++ plugins/docker/tests/schema/push.test.ts | 59 +++ plugins/eslint/test/schema/eslint.test.ts | 50 ++ plugins/hako/jest.config.js | 5 + plugins/hako/test/schema/delete.test.ts | 88 ++++ plugins/hako/test/schema/deploy.test.ts | 90 ++++ plugins/jest/tests/schema/jest.test.ts | 30 ++ plugins/mocha/test/schema/mocha.test.ts | 32 ++ .../test/schema/workspace-command.test.ts | 30 ++ plugins/n-test/test/schema/n-test.test.ts | 42 ++ plugins/next-router/jest.config.js | 5 + .../test/schema/next-router.test.ts | 38 ++ plugins/node-test/jest.config.js | 5 + .../node-test/test/schema/node-test.test.ts | 107 +++++ plugins/node/jest.config.js | 5 + plugins/node/test/schema/node.test.ts | 48 ++ .../test/schema/package-json-hook.test.ts | 50 ++ plugins/prettier/test/schema/prettier.test.ts | 37 ++ plugins/serverless/jest.config.js | 5 + plugins/serverless/test/schema/plugin.test.ts | 116 +++++ plugins/serverless/test/schema/run.test.ts | 39 ++ .../typescript/test/schema/typescript.test.ts | 34 ++ .../test/schema/upload-assets-to-s3.test.ts | 61 +++ plugins/webpack/test/schema/webpack.test.ts | 63 +++ 34 files changed, 1730 insertions(+), 1 deletion(-) create mode 100644 jest/serializers/zod-error.js create mode 100644 plugins/babel/test/schema/babel.test.ts create mode 100644 plugins/circleci/test/schemas/hook.test.ts create mode 100644 plugins/circleci/test/schemas/plugin.test.ts create mode 100644 plugins/cloudsmith/jest.config.js create mode 100644 plugins/cloudsmith/test/schema.test.ts create mode 100644 plugins/cypress/jest.config.js create mode 100644 plugins/cypress/tests/schemas/cypress.test.ts create mode 100644 plugins/docker/jest.config.js create mode 100644 plugins/docker/tests/schema/build.test.ts create mode 100644 plugins/docker/tests/schema/push.test.ts create mode 100644 plugins/eslint/test/schema/eslint.test.ts create mode 100644 plugins/hako/jest.config.js create mode 100644 plugins/hako/test/schema/delete.test.ts create mode 100644 plugins/hako/test/schema/deploy.test.ts create mode 100644 plugins/jest/tests/schema/jest.test.ts create mode 100644 plugins/mocha/test/schema/mocha.test.ts create mode 100644 plugins/monorepo/test/schema/workspace-command.test.ts create mode 100644 plugins/n-test/test/schema/n-test.test.ts create mode 100644 plugins/next-router/jest.config.js create mode 100644 plugins/next-router/test/schema/next-router.test.ts create mode 100644 plugins/node-test/jest.config.js create mode 100644 plugins/node-test/test/schema/node-test.test.ts create mode 100644 plugins/node/jest.config.js create mode 100644 plugins/node/test/schema/node.test.ts create mode 100644 plugins/package-json-hook/test/schema/package-json-hook.test.ts create mode 100644 plugins/prettier/test/schema/prettier.test.ts create mode 100644 plugins/serverless/jest.config.js create mode 100644 plugins/serverless/test/schema/plugin.test.ts create mode 100644 plugins/serverless/test/schema/run.test.ts create mode 100644 plugins/typescript/test/schema/typescript.test.ts create mode 100644 plugins/upload-assets-to-s3/test/schema/upload-assets-to-s3.test.ts create mode 100644 plugins/webpack/test/schema/webpack.test.ts diff --git a/jest.config.base.js b/jest.config.base.js index f18c7fffa..9fa2f5723 100644 --- a/jest.config.base.js +++ b/jest.config.base.js @@ -15,7 +15,8 @@ module.exports.config = { snapshotSerializers: [ '@relmify/jest-serializer-strip-ansi/always', path.resolve(__dirname, './jest/serializers/aggregate-error.js'), - path.resolve(__dirname, './jest/serializers/tool-kit-error.js') + path.resolve(__dirname, './jest/serializers/tool-kit-error.js'), + path.resolve(__dirname, './jest/serializers/zod-error.js') ], transform: { '^.+\\.tsx?$': ['ts-jest', tsJestConfig] diff --git a/jest/serializers/zod-error.js b/jest/serializers/zod-error.js new file mode 100644 index 000000000..b8ba66a73 --- /dev/null +++ b/jest/serializers/zod-error.js @@ -0,0 +1,9 @@ +module.exports = { + test(value) { + return value instanceof Error && value.name === 'ZodError' + }, + + serialize(val, config, indentation, depth, refs, printer) { + return `ZodError ${printer(val.issues, config, indentation, depth, refs)}` + } +} diff --git a/plugins/babel/test/schema/babel.test.ts b/plugins/babel/test/schema/babel.test.ts new file mode 100644 index 000000000..7a48ba052 --- /dev/null +++ b/plugins/babel/test/schema/babel.test.ts @@ -0,0 +1,83 @@ +import { schema } from '../../src/tasks/babel' + +describe('babel schema', () => { + it('should require envname', () => { + expect(schema.safeParse({})).toMatchInlineSnapshot(` + { + "error": ZodError [ + { + "code": "invalid_union", + "message": "Invalid input", + "path": [ + "envName", + ], + "unionErrors": [ + ZodError [ + { + "code": "invalid_literal", + "expected": "production", + "message": "Invalid literal value, expected "production"", + "path": [ + "envName", + ], + "received": undefined, + }, + ], + ZodError [ + { + "code": "invalid_literal", + "expected": "development", + "message": "Invalid literal value, expected "development"", + "path": [ + "envName", + ], + "received": undefined, + }, + ], + ], + }, + ], + "success": false, + } + `) + }) + + it('should apply defaults', () => { + expect( + schema.safeParse({ + envName: 'production' + }) + ).toMatchInlineSnapshot(` + { + "data": { + "envName": "production", + "files": "src/**/*.js", + "outputPath": "lib", + }, + "success": true, + } + `) + }) + + it('should pass through all options without extras', () => { + expect( + schema.safeParse({ + files: 'lib/**/*.js', + outputPath: 'dist', + configFile: 'babel.config.js', + envName: 'production', + another: 'key' + }) + ).toMatchInlineSnapshot(` + { + "data": { + "configFile": "babel.config.js", + "envName": "production", + "files": "lib/**/*.js", + "outputPath": "dist", + }, + "success": true, + } + `) + }) +}) diff --git a/plugins/circleci/test/schemas/hook.test.ts b/plugins/circleci/test/schemas/hook.test.ts new file mode 100644 index 000000000..95cbf7b30 --- /dev/null +++ b/plugins/circleci/test/schemas/hook.test.ts @@ -0,0 +1,439 @@ +import { CircleCiSchema as schema } from '../../src/schemas/hook' + +describe('circleci hook schema', () => { + it('should be completely optional', () => { + expect(schema.safeParse({})).toMatchInlineSnapshot(` + { + "data": {}, + "success": true, + } + `) + }) + + describe('executors', () => { + it('should require the name option', () => { + expect( + schema.safeParse({ + executors: [{}] + }) + ).toMatchInlineSnapshot(` + { + "error": ZodError [ + { + "code": "invalid_type", + "expected": "string", + "message": "Required", + "path": [ + "executors", + 0, + "name", + ], + "received": "undefined", + }, + ], + "success": false, + } + `) + }) + + it('should pass through name and image', () => { + expect( + schema.safeParse({ + executors: [ + { + name: 'executor', + image: 'image' + } + ] + }) + ).toMatchInlineSnapshot(` + { + "data": { + "executors": [ + { + "image": "image", + "name": "executor", + }, + ], + }, + "success": true, + } + `) + }) + }) + + describe('jobs', () => { + it('should require the name field', () => { + expect( + schema.safeParse({ + jobs: [{}] + }) + ).toMatchInlineSnapshot(` + { + "error": ZodError [ + { + "code": "invalid_type", + "expected": "string", + "message": "Required", + "path": [ + "jobs", + 0, + "name", + ], + "received": "undefined", + }, + ], + "success": false, + } + `) + }) + + it('should pass with name and command', () => { + expect( + schema.safeParse({ + jobs: [ + { + name: 'job', + command: 'build:ci' + } + ] + }) + ).toMatchInlineSnapshot(` + { + "data": { + "jobs": [ + { + "command": "build:ci", + "name": "job", + }, + ], + }, + "success": true, + } + `) + }) + + it('should support steps with pre/post arrays of strings and records', () => { + expect( + schema.safeParse({ + jobs: [ + { + name: 'job', + command: 'run:build', + steps: { + pre: ['checkout', { run: { command: 'echo pre' } }], + post: ['notify', { run: { command: 'echo post' } }] + } + } + ] + }) + ).toMatchInlineSnapshot(` + { + "data": { + "jobs": [ + { + "command": "run:build", + "name": "job", + "steps": { + "post": [ + "notify", + { + "run": { + "command": "echo post", + }, + }, + ], + "pre": [ + "checkout", + { + "run": { + "command": "echo pre", + }, + }, + ], + }, + }, + ], + }, + "success": true, + } + `) + }) + + it('should support workspace options', () => { + expect( + schema.safeParse({ + jobs: [ + { + name: 'job', + command: 'build', + workspace: { + persist: true, + attach: false + } + } + ] + }) + ).toMatchInlineSnapshot(` + { + "data": { + "jobs": [ + { + "command": "build", + "name": "job", + "workspace": { + "attach": false, + "persist": true, + }, + }, + ], + }, + "success": true, + } + `) + }) + + it('should support custom field', () => { + expect( + schema.safeParse({ + jobs: [ + { + name: 'job', + command: 'cmd', + custom: { + foo: 'bar' + } + } + ] + }) + ).toMatchInlineSnapshot(` + { + "data": { + "jobs": [ + { + "command": "cmd", + "custom": { + "foo": "bar", + }, + "name": "job", + }, + ], + }, + "success": true, + } + `) + }) + }) + + describe('workflows', () => { + it('should require the name and jobs fields', () => { + expect( + schema.safeParse({ + workflows: [{}] + }) + ).toMatchInlineSnapshot(` + { + "error": ZodError [ + { + "code": "invalid_type", + "expected": "string", + "message": "Required", + "path": [ + "workflows", + 0, + "name", + ], + "received": "undefined", + }, + ], + "success": false, + } + `) + }) + + it('should require job names and their "requires" field', () => { + expect( + schema.safeParse({ + workflows: [ + { + name: 'workflow', + jobs: [{}] + } + ] + }) + ).toMatchInlineSnapshot(` + { + "error": ZodError [ + { + "code": "invalid_type", + "expected": "string", + "message": "Required", + "path": [ + "workflows", + 0, + "jobs", + 0, + "name", + ], + "received": "undefined", + }, + ], + "success": false, + } + `) + }) + + it('should support valid workflow jobs', () => { + expect( + schema.safeParse({ + workflows: [ + { + name: 'workflow', + jobs: [ + { + name: 'build', + requires: ['checkout'] + }, + { + name: 'deploy', + requires: ['build'], + splitIntoMatrix: true, + runOnRelease: true, + custom: { + someKey: 'someVal' + } + } + ] + } + ] + }) + ).toMatchInlineSnapshot(` + { + "data": { + "workflows": [ + { + "jobs": [ + { + "name": "build", + "requires": [ + "checkout", + ], + }, + { + "custom": { + "someKey": "someVal", + }, + "name": "deploy", + "requires": [ + "build", + ], + "runOnRelease": true, + "splitIntoMatrix": true, + }, + ], + "name": "workflow", + }, + ], + }, + "success": true, + } + `) + }) + + it('should support custom field and runOnRelease on workflow level', () => { + expect( + schema.safeParse({ + workflows: [ + { + name: 'wf', + jobs: [ + { + name: 'job1', + requires: [] + } + ], + + runOnRelease: true, + custom: { + foo: 'bar' + } + } + ] + }) + ).toMatchInlineSnapshot(` + { + "data": { + "workflows": [ + { + "custom": { + "foo": "bar", + }, + "jobs": [ + { + "name": "job1", + "requires": [], + }, + ], + "name": "wf", + "runOnRelease": true, + }, + ], + }, + "success": true, + } + `) + }) + }) + + describe('custom', () => { + it('should allow arbitrary keys and values', () => { + expect( + schema.safeParse({ + custom: { + anything: { + deeply: { + nested: { + structure: ['valid', true, 123] + } + } + } + } + }) + ).toMatchInlineSnapshot(` + { + "data": { + "custom": { + "anything": { + "deeply": { + "nested": { + "structure": [ + "valid", + true, + 123, + ], + }, + }, + }, + }, + }, + "success": true, + } + `) + }) + }) + + it('should pass through disableBaseConfig', () => { + expect( + schema.safeParse({ + disableBaseConfig: true + }) + ).toMatchInlineSnapshot(` + { + "data": { + "disableBaseConfig": true, + }, + "success": true, + } + `) + }) +}) diff --git a/plugins/circleci/test/schemas/plugin.test.ts b/plugins/circleci/test/schemas/plugin.test.ts new file mode 100644 index 000000000..3b634c7ad --- /dev/null +++ b/plugins/circleci/test/schemas/plugin.test.ts @@ -0,0 +1,58 @@ +import schema from '../../src/schemas/plugin' + +describe('circleci plugin schema', () => { + it('should apply defaults', () => { + expect(schema.safeParse({})).toMatchInlineSnapshot(` + { + "data": { + "cimgNodeVersions": [ + "18.19-browsers", + ], + "runOnTag": true, + "tagFilterRegex": "/^v\\d+\\.\\d+\\.\\d+(-.+)?/", + }, + "success": true, + } + `) + }) + + it('should allow unexpected keys', () => { + // well, it probably shouldn't. but it does, so it can error for the legacy nodeVersion option. + expect( + schema.safeParse({ + foo: 'bar' + }) + ).toMatchInlineSnapshot(` + { + "data": { + "cimgNodeVersions": [ + "18.19-browsers", + ], + "foo": "bar", + "runOnTag": true, + "tagFilterRegex": "/^v\\d+\\.\\d+\\.\\d+(-.+)?/", + }, + "success": true, + } + `) + }) + + it('should error on deprecated nodeVersion option', () => { + expect( + schema.safeParse({ + nodeVersion: '18.19-browsers' + }) + ).toMatchInlineSnapshot(` + { + "error": ZodError [ + { + "code": "custom", + "message": "the option nodeVersion has been replaced by cimgNodeVersions", + "path": [], + }, + ], + "success": false, + } + `) + }) +}) diff --git a/plugins/cloudsmith/jest.config.js b/plugins/cloudsmith/jest.config.js new file mode 100644 index 000000000..2ea38bb31 --- /dev/null +++ b/plugins/cloudsmith/jest.config.js @@ -0,0 +1,5 @@ +const base = require('../../jest.config.base') + +module.exports = { + ...base.config +} diff --git a/plugins/cloudsmith/test/schema.test.ts b/plugins/cloudsmith/test/schema.test.ts new file mode 100644 index 000000000..fca9fe720 --- /dev/null +++ b/plugins/cloudsmith/test/schema.test.ts @@ -0,0 +1,27 @@ +import schema from '../src/schema' + +describe('cloudsmith plugin schema', () => { + it('should be completely optional', () => { + expect(schema.safeParse({})).toMatchInlineSnapshot(` + { + "data": {}, + "success": true, + } + `) + }) + it('should only pass through serviceAccount', () => { + expect( + schema.safeParse({ + serviceAccount: 'cp-platforms-read-only', + another: 'key' + }) + ).toMatchInlineSnapshot(` + { + "data": { + "serviceAccount": "cp-platforms-read-only", + }, + "success": true, + } + `) + }) +}) diff --git a/plugins/cypress/jest.config.js b/plugins/cypress/jest.config.js new file mode 100644 index 000000000..2ea38bb31 --- /dev/null +++ b/plugins/cypress/jest.config.js @@ -0,0 +1,5 @@ +const base = require('../../jest.config.base') + +module.exports = { + ...base.config +} diff --git a/plugins/cypress/tests/schemas/cypress.test.ts b/plugins/cypress/tests/schemas/cypress.test.ts new file mode 100644 index 000000000..d191facb4 --- /dev/null +++ b/plugins/cypress/tests/schemas/cypress.test.ts @@ -0,0 +1,28 @@ +import { schema } from '../../src/tasks/cypress' + +describe('cypress schema', () => { + it('should be completely optional', () => { + expect(schema.safeParse({})).toMatchInlineSnapshot(` + { + "data": {}, + "success": true, + } + `) + }) + + it('should pass through only url', () => { + expect( + schema.safeParse({ + url: 'https://ft.com', + another: 'key' + }) + ).toMatchInlineSnapshot(` + { + "data": { + "url": "https://ft.com", + }, + "success": true, + } + `) + }) +}) diff --git a/plugins/docker/jest.config.js b/plugins/docker/jest.config.js new file mode 100644 index 000000000..2ea38bb31 --- /dev/null +++ b/plugins/docker/jest.config.js @@ -0,0 +1,5 @@ +const base = require('../../jest.config.base') + +module.exports = { + ...base.config +} diff --git a/plugins/docker/tests/schema/build.test.ts b/plugins/docker/tests/schema/build.test.ts new file mode 100644 index 000000000..577220c64 --- /dev/null +++ b/plugins/docker/tests/schema/build.test.ts @@ -0,0 +1,30 @@ +import { schema } from '../../src/tasks/build' + +describe('docker build schema', () => { + it('should apply defaults', () => { + expect(schema.safeParse({})).toMatchInlineSnapshot(` + { + "data": { + "ssh": false, + }, + "success": true, + } + `) + }) + + it('should pass through only ssh', () => { + expect( + schema.safeParse({ + ssh: true, + another: 'key' + }) + ).toMatchInlineSnapshot(` + { + "data": { + "ssh": true, + }, + "success": true, + } + `) + }) +}) diff --git a/plugins/docker/tests/schema/push.test.ts b/plugins/docker/tests/schema/push.test.ts new file mode 100644 index 000000000..4716ec0c2 --- /dev/null +++ b/plugins/docker/tests/schema/push.test.ts @@ -0,0 +1,59 @@ +import schema from '../../src/schema' + +describe('docker push schema', () => { + it('should apply defaults to an image', () => { + expect( + schema.safeParse({ + images: { + image: { + name: 'test-image' + } + } + }) + ).toMatchInlineSnapshot(` + { + "data": { + "images": { + "image": { + "definition": "Dockerfile", + "name": "test-image", + "platform": "linux/arm64", + "registry": "docker.packages.ft.com/cp-container-registry", + }, + }, + }, + "success": true, + } + `) + }) + + it('should allow only expected image keys through', () => { + expect( + schema.safeParse({ + images: { + image: { + definition: 'Dockerfile.test', + platform: 'macos/arm64', + registry: 'https://hub.docker.com', + name: 'test-image', + another: 'key' + } + } + }) + ).toMatchInlineSnapshot(` + { + "data": { + "images": { + "image": { + "definition": "Dockerfile.test", + "name": "test-image", + "platform": "macos/arm64", + "registry": "https://hub.docker.com", + }, + }, + }, + "success": true, + } + `) + }) +}) diff --git a/plugins/eslint/test/schema/eslint.test.ts b/plugins/eslint/test/schema/eslint.test.ts new file mode 100644 index 000000000..4d1adef43 --- /dev/null +++ b/plugins/eslint/test/schema/eslint.test.ts @@ -0,0 +1,50 @@ +import { schema } from '../../src/tasks/eslint' + +describe('eslint schema', () => { + it('should apply defaults', () => { + expect(schema.safeParse({})).toMatchInlineSnapshot(` + { + "data": { + "files": [ + "**/*.js", + ], + }, + "success": true, + } + `) + }) + + it('should allow string for files', () => { + expect( + schema.safeParse({ + files: 'src/**/*.ts' + }) + ).toMatchInlineSnapshot(` + { + "data": { + "files": "src/**/*.ts", + }, + "success": true, + } + `) + }) + + it('should ignore extraneous keys', () => { + expect( + schema.safeParse({ + configPath: 'eslint.config.js', + another: 'key' + }) + ).toMatchInlineSnapshot(` + { + "data": { + "configPath": "eslint.config.js", + "files": [ + "**/*.js", + ], + }, + "success": true, + } + `) + }) +}) diff --git a/plugins/hako/jest.config.js b/plugins/hako/jest.config.js new file mode 100644 index 000000000..2ea38bb31 --- /dev/null +++ b/plugins/hako/jest.config.js @@ -0,0 +1,5 @@ +const base = require('../../jest.config.base') + +module.exports = { + ...base.config +} diff --git a/plugins/hako/test/schema/delete.test.ts b/plugins/hako/test/schema/delete.test.ts new file mode 100644 index 000000000..199aa2a5e --- /dev/null +++ b/plugins/hako/test/schema/delete.test.ts @@ -0,0 +1,88 @@ +import { schema } from '../../src/tasks/delete' + +describe('hako delete schema', () => { + it('should require all keys', () => { + expect(schema.safeParse({})).toMatchInlineSnapshot(` + { + "error": ZodError [ + { + "code": "invalid_type", + "expected": "string", + "message": "Required", + "path": [ + "appName", + ], + "received": "undefined", + }, + { + "code": "invalid_type", + "expected": "string", + "message": "Required", + "path": [ + "ephemeralId", + ], + "received": "undefined", + }, + { + "code": "invalid_type", + "expected": "string", + "message": "Required", + "path": [ + "environment", + ], + "received": "undefined", + }, + ], + "success": false, + } + `) + }) + + it('should only pass through expected keys', () => { + expect( + schema.safeParse({ + appName: 'app', + ephemeralId: 'review', + environment: 'ft-com-prod-eu', + another: 'key' + }) + ).toMatchInlineSnapshot(` + { + "data": { + "appName": "app", + "environment": { + "name": "ft-com-prod-eu", + "region": "eu", + "stage": "prod", + }, + "ephemeralId": "review", + }, + "success": true, + } + `) + }) + + it('should validate environment', () => { + expect( + schema.safeParse({ + appName: 'app', + ephemeralId: 'review', + environment: 'invalid environment' + }) + ).toMatchInlineSnapshot(` + { + "error": ZodError [ + { + "code": "invalid_string", + "message": "Hako environment name must end with a stage and region, e.g., -prod-eu", + "path": [ + "environment", + ], + "validation": "regex", + }, + ], + "success": false, + } + `) + }) +}) diff --git a/plugins/hako/test/schema/deploy.test.ts b/plugins/hako/test/schema/deploy.test.ts new file mode 100644 index 000000000..6677daae1 --- /dev/null +++ b/plugins/hako/test/schema/deploy.test.ts @@ -0,0 +1,90 @@ +import { schema } from '../../src/tasks/deploy' + +describe('hako deploy schema', () => { + it('should apply defaults', () => { + expect( + schema.safeParse({ + environments: [] + }) + ).toMatchInlineSnapshot(` + { + "data": { + "asReviewApp": false, + "environments": [], + }, + "success": true, + } + `) + }) + + it('should parse and transform environments', () => { + expect( + schema.safeParse({ + environments: ['ft-com-prod-eu'] + }) + ).toMatchInlineSnapshot(` + { + "data": { + "asReviewApp": false, + "environments": [ + { + "name": "ft-com-prod-eu", + "region": "eu", + "stage": "prod", + }, + ], + }, + "success": true, + } + `) + }) + + it('should only pass through expected keys', () => { + expect( + schema.safeParse({ + asReviewApp: true, + customEphemeralId: 'review', + environments: ['ft-com-prod-eu'], + another: 'key' + }) + ).toMatchInlineSnapshot(` + { + "data": { + "asReviewApp": true, + "customEphemeralId": "review", + "environments": [ + { + "name": "ft-com-prod-eu", + "region": "eu", + "stage": "prod", + }, + ], + }, + "success": true, + } + `) + }) + + it('should validate environments', () => { + expect( + schema.safeParse({ + environments: ['invalid environment'] + }) + ).toMatchInlineSnapshot(` + { + "error": ZodError [ + { + "code": "invalid_string", + "message": "Hako environment name must end with a stage and region, e.g., -prod-eu", + "path": [ + "environments", + 0, + ], + "validation": "regex", + }, + ], + "success": false, + } + `) + }) +}) diff --git a/plugins/jest/tests/schema/jest.test.ts b/plugins/jest/tests/schema/jest.test.ts new file mode 100644 index 000000000..66ea7c21e --- /dev/null +++ b/plugins/jest/tests/schema/jest.test.ts @@ -0,0 +1,30 @@ +import { schema } from '../../src/tasks/jest' + +describe('jest schema', () => { + it('should be completely optional', () => { + expect(schema.safeParse({})).toMatchInlineSnapshot(` + { + "data": {}, + "success": true, + } + `) + }) + + it('should pass through only expected keys', () => { + expect( + schema.safeParse({ + configPath: 'jest.config.js', + ci: true, + another: 'key' + }) + ).toMatchInlineSnapshot(` + { + "data": { + "ci": true, + "configPath": "jest.config.js", + }, + "success": true, + } + `) + }) +}) diff --git a/plugins/mocha/test/schema/mocha.test.ts b/plugins/mocha/test/schema/mocha.test.ts new file mode 100644 index 000000000..a77883256 --- /dev/null +++ b/plugins/mocha/test/schema/mocha.test.ts @@ -0,0 +1,32 @@ +import { schema } from '../../src/tasks/mocha' + +describe('mocha schema', () => { + it('should apply defaults', () => { + expect(schema.safeParse({})).toMatchInlineSnapshot(` + { + "data": { + "files": "test/**/*.js", + }, + "success": true, + } + `) + }) + + it('should pass through only expected keys', () => { + expect( + schema.safeParse({ + files: '**/*.test.js', + configPath: 'mocha.config.js', + another: 'key' + }) + ).toMatchInlineSnapshot(` + { + "data": { + "configPath": "mocha.config.js", + "files": "**/*.test.js", + }, + "success": true, + } + `) + }) +}) diff --git a/plugins/monorepo/test/schema/workspace-command.test.ts b/plugins/monorepo/test/schema/workspace-command.test.ts new file mode 100644 index 000000000..c0d07723b --- /dev/null +++ b/plugins/monorepo/test/schema/workspace-command.test.ts @@ -0,0 +1,30 @@ +import { schema } from '../../src/tasks/workspace-command' + +describe('monorepo workspace command schema', () => { + it('should be completely optional', () => { + expect(schema.safeParse({})).toMatchInlineSnapshot(` + { + "data": {}, + "success": true, + } + `) + }) + + it('should allow through only expected keys', () => { + expect( + schema.safeParse({ + command: 'some:command', + packageFilter: 'packages/*', + another: 'key' + }) + ).toMatchInlineSnapshot(` + { + "data": { + "command": "some:command", + "packageFilter": "packages/*", + }, + "success": true, + } + `) + }) +}) diff --git a/plugins/n-test/test/schema/n-test.test.ts b/plugins/n-test/test/schema/n-test.test.ts new file mode 100644 index 000000000..384c9166d --- /dev/null +++ b/plugins/n-test/test/schema/n-test.test.ts @@ -0,0 +1,42 @@ +import { schema } from '../../src/tasks/n-test' + +describe('n-test schema', () => { + it('should be completely optional', () => { + expect(schema.safeParse({})).toMatchInlineSnapshot(` + { + "data": {}, + "success": true, + } + `) + }) + + it('should allow through only expected keys', () => { + expect( + schema.safeParse({ + browsers: ['chrome'], + host: 'https://ft.com', + config: 'n-test.config.js', + interactive: true, + header: { + 'ft-flags': 'disablePaywall:on' + }, + another: 'key' + }) + ).toMatchInlineSnapshot(` + { + "data": { + "browsers": [ + "chrome", + ], + "config": "n-test.config.js", + "header": { + "ft-flags": "disablePaywall:on", + }, + "host": "https://ft.com", + "interactive": true, + }, + "success": true, + } + `) + }) +}) diff --git a/plugins/next-router/jest.config.js b/plugins/next-router/jest.config.js new file mode 100644 index 000000000..2ea38bb31 --- /dev/null +++ b/plugins/next-router/jest.config.js @@ -0,0 +1,5 @@ +const base = require('../../jest.config.base') + +module.exports = { + ...base.config +} diff --git a/plugins/next-router/test/schema/next-router.test.ts b/plugins/next-router/test/schema/next-router.test.ts new file mode 100644 index 000000000..74a4790ae --- /dev/null +++ b/plugins/next-router/test/schema/next-router.test.ts @@ -0,0 +1,38 @@ +import schema from '../../src/schema' + +describe('next-router schema', () => { + it('should require appName', () => { + expect(schema.safeParse({})).toMatchInlineSnapshot(` + { + "error": ZodError [ + { + "code": "invalid_type", + "expected": "string", + "message": "Required", + "path": [ + "appName", + ], + "received": "undefined", + }, + ], + "success": false, + } + `) + }) + + it('should only allow through appName', () => { + expect( + schema.safeParse({ + appName: 'next-article', + another: 'key' + }) + ).toMatchInlineSnapshot(` + { + "data": { + "appName": "next-article", + }, + "success": true, + } + `) + }) +}) diff --git a/plugins/node-test/jest.config.js b/plugins/node-test/jest.config.js new file mode 100644 index 000000000..2ea38bb31 --- /dev/null +++ b/plugins/node-test/jest.config.js @@ -0,0 +1,5 @@ +const base = require('../../jest.config.base') + +module.exports = { + ...base.config +} diff --git a/plugins/node-test/test/schema/node-test.test.ts b/plugins/node-test/test/schema/node-test.test.ts new file mode 100644 index 000000000..2e4b60a7d --- /dev/null +++ b/plugins/node-test/test/schema/node-test.test.ts @@ -0,0 +1,107 @@ +import { schema } from '../../src/tasks/node-test' + +describe('node-test schema', () => { + it('should apply defaults', () => { + expect(schema.safeParse({})).toMatchInlineSnapshot(` + { + "data": { + "concurrency": false, + "files": [ + "**/*.test.?(c|m)js", + "**/*-test.?(c|m)js", + "**/*_test.?(c|m)js", + "**/test-*.?(c|m)js", + "**/test.?(c|m)js", + "**/test/**/*.?(c|m)js", + ], + "forceExit": false, + "ignore": [ + "**/node_modules/**", + ], + "watch": false, + }, + "success": true, + } + `) + }) + + it('should only allow positive integers for concurrency', () => { + expect( + schema.safeParse({ + concurrency: 13.7 + }) + ).toMatchInlineSnapshot(` + { + "error": ZodError [ + { + "code": "invalid_type", + "expected": "integer", + "message": "Expected integer, received float", + "path": [ + "concurrency", + ], + "received": "float", + }, + ], + "success": false, + } + `) + + expect( + schema.safeParse({ + concurrency: -137 + }) + ).toMatchInlineSnapshot(` + { + "error": ZodError [ + { + "code": "too_small", + "exact": false, + "inclusive": false, + "message": "Number must be greater than 0", + "minimum": 0, + "path": [ + "concurrency", + ], + "type": "number", + }, + ], + "success": false, + } + `) + }) + + it('should only allow through expected keys', () => { + expect( + schema.safeParse({ + concurrency: 137, + files: ['**/*.test.js'], + forceExit: true, + ignore: ['plugins/node-test/fixtures/*'], + watch: true, + customOptions: { + timeout: 1370 + }, + another: 'key' + }) + ).toMatchInlineSnapshot(` + { + "data": { + "concurrency": 137, + "customOptions": { + "timeout": 1370, + }, + "files": [ + "**/*.test.js", + ], + "forceExit": true, + "ignore": [ + "plugins/node-test/fixtures/*", + ], + "watch": true, + }, + "success": true, + } + `) + }) +}) diff --git a/plugins/node/jest.config.js b/plugins/node/jest.config.js new file mode 100644 index 000000000..2ea38bb31 --- /dev/null +++ b/plugins/node/jest.config.js @@ -0,0 +1,5 @@ +const base = require('../../jest.config.base') + +module.exports = { + ...base.config +} diff --git a/plugins/node/test/schema/node.test.ts b/plugins/node/test/schema/node.test.ts new file mode 100644 index 000000000..4339d2625 --- /dev/null +++ b/plugins/node/test/schema/node.test.ts @@ -0,0 +1,48 @@ +import { schema } from '../../src/tasks/node' + +describe('node schema', () => { + it('should apply defaults', () => { + expect(schema.safeParse({})).toMatchInlineSnapshot(` + { + "data": { + "entry": "./server/app.js", + "ports": [ + 3001, + 3002, + 3003, + ], + "useDoppler": true, + }, + "success": true, + } + `) + }) + + it('should only allow through expected keys', () => { + expect( + schema.safeParse({ + entry: 'start.js', + args: ['--no-experimental-fetch'], + useDoppler: false, + ports: [3137], + watch: true, + another: 'key' + }) + ).toMatchInlineSnapshot(` + { + "data": { + "args": [ + "--no-experimental-fetch", + ], + "entry": "start.js", + "ports": [ + 3137, + ], + "useDoppler": false, + "watch": true, + }, + "success": true, + } + `) + }) +}) diff --git a/plugins/package-json-hook/test/schema/package-json-hook.test.ts b/plugins/package-json-hook/test/schema/package-json-hook.test.ts new file mode 100644 index 000000000..8f7302875 --- /dev/null +++ b/plugins/package-json-hook/test/schema/package-json-hook.test.ts @@ -0,0 +1,50 @@ +import { PackageJsonSchema as schema } from '../../src/schema' + +describe('package-json-hook schema', () => { + it('parses a PackageJson hook spec', () => { + expect( + schema.safeParse({ + scripts: { + run: 'run:local', + customScript: ['custom:one', 'custom:two'] + }, + customField: { + something: { + commands: 'something', + trailingString: '--' + }, + somethingElse: { + commands: ['something:else', 'another:thing'], + trailingString: '&& echo hello' + } + } + }) + ).toMatchInlineSnapshot(` + { + "data": { + "customField": { + "something": { + "commands": "something", + "trailingString": "--", + }, + "somethingElse": { + "commands": [ + "something:else", + "another:thing", + ], + "trailingString": "&& echo hello", + }, + }, + "scripts": { + "customScript": [ + "custom:one", + "custom:two", + ], + "run": "run:local", + }, + }, + "success": true, + } + `) + }) +}) diff --git a/plugins/prettier/test/schema/prettier.test.ts b/plugins/prettier/test/schema/prettier.test.ts new file mode 100644 index 000000000..1f6b8a6c1 --- /dev/null +++ b/plugins/prettier/test/schema/prettier.test.ts @@ -0,0 +1,37 @@ +import { schema } from '../../src/tasks/prettier' + +describe('prettier schema', () => { + it('should apply defaults', () => { + expect(schema.safeParse({})).toMatchInlineSnapshot(` + { + "data": { + "files": [ + "**/*.{js,jsx,ts,tsx}", + ], + "ignoreFile": ".prettierignore", + }, + "success": true, + } + `) + }) + + it('should allow through only expected keys', () => { + expect( + schema.safeParse({ + files: 'src/**.js', + configFile: 'pretter.config.js', + ignoreFile: '.eslintignore', + another: 'key' + }) + ).toMatchInlineSnapshot(` + { + "data": { + "configFile": "pretter.config.js", + "files": "src/**.js", + "ignoreFile": ".eslintignore", + }, + "success": true, + } + `) + }) +}) diff --git a/plugins/serverless/jest.config.js b/plugins/serverless/jest.config.js new file mode 100644 index 000000000..2ea38bb31 --- /dev/null +++ b/plugins/serverless/jest.config.js @@ -0,0 +1,5 @@ +const base = require('../../jest.config.base') + +module.exports = { + ...base.config +} diff --git a/plugins/serverless/test/schema/plugin.test.ts b/plugins/serverless/test/schema/plugin.test.ts new file mode 100644 index 000000000..74772ee66 --- /dev/null +++ b/plugins/serverless/test/schema/plugin.test.ts @@ -0,0 +1,116 @@ +import schema from '../../src/schema' + +describe('serverless plugin schema', () => { + it('should require awsAccountId and systemCode', () => { + expect(schema.safeParse({})).toMatchInlineSnapshot(` + { + "error": ZodError [ + { + "code": "invalid_type", + "expected": "string", + "message": "Required", + "path": [ + "awsAccountId", + ], + "received": "undefined", + }, + { + "code": "invalid_type", + "expected": "string", + "message": "Required", + "path": [ + "systemCode", + ], + "received": "undefined", + }, + ], + "success": false, + } + `) + }) + + it('should apply defaults', () => { + expect( + schema.safeParse({ + awsAccountId: '013700000000', + systemCode: 'next-article' + }) + ).toMatchInlineSnapshot(` + { + "data": { + "awsAccountId": "013700000000", + "regions": [ + "eu-west-1", + ], + "systemCode": "next-article", + }, + "success": true, + } + `) + }) + + it('should allow unexpected keys', () => { + // well, it probably shouldn't. but it does, so it can error for the legacy options. + expect( + schema.safeParse({ + awsAccountId: '013700000000', + systemCode: 'next-article', + foo: 'bar' + }) + ).toMatchInlineSnapshot(` + { + "data": { + "awsAccountId": "013700000000", + "foo": "bar", + "regions": [ + "eu-west-1", + ], + "systemCode": "next-article", + }, + "success": true, + } + `) + }) + + it('should error on deprecated useVault option', () => { + expect( + schema.safeParse({ + awsAccountId: '013700000000', + systemCode: 'next-article', + useVault: true + }) + ).toMatchInlineSnapshot(` + { + "error": ZodError [ + { + "code": "custom", + "message": "the option useVault has moved to options.tasks.ServerlessRun.useDoppler", + "path": [], + }, + ], + "success": false, + } + `) + }) + + it('should error on deprecated ports option', () => { + expect( + schema.safeParse({ + awsAccountId: '013700000000', + systemCode: 'next-article', + ports: [3137] + }) + ).toMatchInlineSnapshot(` + { + "error": ZodError [ + { + "code": "custom", + "message": "the option ports has moved to options.tasks.ServerlessRun.ports", + "path": [], + }, + ], + "success": false, + } + `) + }) +}) diff --git a/plugins/serverless/test/schema/run.test.ts b/plugins/serverless/test/schema/run.test.ts new file mode 100644 index 000000000..bb2af82a1 --- /dev/null +++ b/plugins/serverless/test/schema/run.test.ts @@ -0,0 +1,39 @@ +import { schema } from '../../src/tasks/run' + +describe('serverless run schema', () => { + it('should apply defaults', () => { + expect(schema.safeParse({})).toMatchInlineSnapshot(` + { + "data": { + "ports": [ + 3001, + 3002, + 3003, + ], + "useDoppler": true, + }, + "success": true, + } + `) + }) + + it('should allow through only expected keys', () => { + expect( + schema.safeParse({ + ports: [3137], + useDoppler: false, + another: 'key' + }) + ).toMatchInlineSnapshot(` + { + "data": { + "ports": [ + 3137, + ], + "useDoppler": false, + }, + "success": true, + } + `) + }) +}) diff --git a/plugins/typescript/test/schema/typescript.test.ts b/plugins/typescript/test/schema/typescript.test.ts new file mode 100644 index 000000000..44b1765f0 --- /dev/null +++ b/plugins/typescript/test/schema/typescript.test.ts @@ -0,0 +1,34 @@ +import { schema } from '../../src/tasks/typescript' + +describe('typescript schema', () => { + it('should be completely optional', () => { + expect(schema.safeParse({})).toMatchInlineSnapshot(` + { + "data": {}, + "success": true, + } + `) + }) + + it('should allow through only expected keys', () => { + expect( + schema.safeParse({ + configPath: 'tsconfig.settings.json', + build: true, + watch: true, + noEmit: true, + another: 'key' + }) + ).toMatchInlineSnapshot(` + { + "data": { + "build": true, + "configPath": "tsconfig.settings.json", + "noEmit": true, + "watch": true, + }, + "success": true, + } + `) + }) +}) diff --git a/plugins/upload-assets-to-s3/test/schema/upload-assets-to-s3.test.ts b/plugins/upload-assets-to-s3/test/schema/upload-assets-to-s3.test.ts new file mode 100644 index 000000000..f7d983988 --- /dev/null +++ b/plugins/upload-assets-to-s3/test/schema/upload-assets-to-s3.test.ts @@ -0,0 +1,61 @@ +import { schema } from '../../src/tasks/upload-assets-to-s3' + +describe('upload assets to s3 schema', () => { + it('should apply defaults', () => { + expect(schema.safeParse({})).toMatchInlineSnapshot(` + { + "data": { + "accessKeyIdEnvVar": "AWS_ACCESS_HASHED_ASSETS", + "cacheControl": "public, max-age=31536000, stale-while-revalidate=60, stale-if-error=3600", + "destination": "hashed-assets/page-kit", + "directory": "public", + "extensions": "js,css,map,gz,br,png,jpg,jpeg,gif,webp,svg,ico,json", + "prodBucket": [ + "ft-next-hashed-assets-prod", + ], + "region": "eu-west-1", + "reviewBucket": [ + "ft-next-hashed-assets-preview", + ], + "secretAccessKeyEnvVar": "AWS_SECRET_HASHED_ASSETS", + }, + "success": true, + } + `) + }) + + it('should allow through only expected keys', () => { + expect( + schema.safeParse({ + accessKeyIdEnvVar: 'AWS_ACCESS_KEY', + secretAccessKeyEnvVar: 'AWS_SECRET_KEY', + directory: 'dist', + reviewBucket: ['assets-preview'], + prodBucket: ['assets-prod'], + region: 'us-east-1', + destination: 'path/to/assets', + extensions: 'avif', + cacheControl: 'private, no-store' + }) + ).toMatchInlineSnapshot(` + { + "data": { + "accessKeyIdEnvVar": "AWS_ACCESS_KEY", + "cacheControl": "private, no-store", + "destination": "path/to/assets", + "directory": "dist", + "extensions": "avif", + "prodBucket": [ + "assets-prod", + ], + "region": "us-east-1", + "reviewBucket": [ + "assets-preview", + ], + "secretAccessKeyEnvVar": "AWS_SECRET_KEY", + }, + "success": true, + } + `) + }) +}) diff --git a/plugins/webpack/test/schema/webpack.test.ts b/plugins/webpack/test/schema/webpack.test.ts new file mode 100644 index 000000000..e7a84e3b1 --- /dev/null +++ b/plugins/webpack/test/schema/webpack.test.ts @@ -0,0 +1,63 @@ +import { schema } from '../../src/tasks/webpack' + +describe('webpack schema', () => { + it('should require envName', () => { + expect(schema.safeParse({})).toMatchInlineSnapshot(` + { + "error": ZodError [ + { + "code": "invalid_union", + "message": "Invalid input", + "path": [ + "envName", + ], + "unionErrors": [ + ZodError [ + { + "code": "invalid_literal", + "expected": "production", + "message": "Invalid literal value, expected "production"", + "path": [ + "envName", + ], + "received": undefined, + }, + ], + ZodError [ + { + "code": "invalid_literal", + "expected": "development", + "message": "Invalid literal value, expected "development"", + "path": [ + "envName", + ], + "received": undefined, + }, + ], + ], + }, + ], + "success": false, + } + `) + }) + + it('should allow through only expected keys', () => { + expect( + schema.safeParse({ + configPath: 'webpack.config.js', + envName: 'production', + watch: true + }) + ).toMatchInlineSnapshot(` + { + "data": { + "configPath": "webpack.config.js", + "envName": "production", + "watch": true, + }, + "success": true, + } + `) + }) +}) From e07b90552f9f3281c537acd9ac19d635c720a4fa Mon Sep 17 00:00:00 2001 From: Kara Brightwell Date: Thu, 3 Jul 2025 11:56:28 +0100 Subject: [PATCH 2/2] feat: update zod to 3.25 and explicitly import zod/v3 --- core/cli/package.json | 6 +- core/cli/src/messages.ts | 4 +- core/cli/src/plugin/entry-point.ts | 2 +- core/cli/src/plugin/options.ts | 2 +- core/cli/src/plugin/reduce-installations.ts | 2 +- core/create/package.json | 2 +- core/create/src/prompts/oidc.ts | 8 +- core/create/src/prompts/options.ts | 2 +- docs/developing-tool-kit.md | 2 +- docs/extending-tool-kit.md | 2 +- lib/base/package.json | 4 +- lib/base/src/hook.ts | 2 +- lib/base/src/task.ts | 2 +- lib/doppler/package.json | 2 +- lib/doppler/src/index.ts | 2 +- lib/doppler/src/schema.ts | 2 +- lib/plugin/src/root-schema.ts | 2 +- package-lock.json | 477 ++---------------- plugins/aws/package.json | 2 +- plugins/aws/src/tasks/assume-role.ts | 2 +- plugins/babel/package.json | 2 +- plugins/babel/src/tasks/babel.ts | 2 +- plugins/circleci/package.json | 5 +- plugins/circleci/src/schemas/hook.ts | 2 +- plugins/circleci/src/schemas/plugin.ts | 2 +- plugins/cloudsmith/package.json | 2 +- plugins/cloudsmith/src/schema.ts | 2 +- .../package.json | 2 +- plugins/containerised-app/package.json | 2 +- plugins/containerised-app/schema.js | 2 +- plugins/cypress/package.json | 2 +- plugins/cypress/src/tasks/cypress.ts | 2 +- plugins/docker/package.json | 2 +- plugins/docker/src/schema.ts | 2 +- plugins/docker/src/tasks/build.ts | 2 +- plugins/eslint/package.json | 2 +- plugins/eslint/src/tasks/eslint.ts | 2 +- plugins/hako/package.json | 2 +- plugins/hako/src/hako.ts | 2 +- plugins/hako/src/tasks/delete.ts | 2 +- plugins/hako/src/tasks/deploy.ts | 2 +- plugins/heroku/package.json | 2 +- plugins/heroku/src/schema.ts | 2 +- plugins/heroku/src/tasks/production.ts | 2 +- plugins/jest/package.json | 2 +- plugins/jest/src/tasks/jest.ts | 2 +- plugins/lint-staged-npm/package.json | 2 +- plugins/lint-staged-npm/src/schema.ts | 2 +- plugins/mocha/package.json | 2 +- plugins/mocha/src/tasks/mocha.ts | 2 +- plugins/monorepo/package.json | 2 +- .../monorepo/src/tasks/workspace-command.ts | 2 +- plugins/n-test/package.json | 2 +- plugins/n-test/src/tasks/n-test.ts | 2 +- plugins/next-router/package.json | 2 +- plugins/next-router/src/schema.ts | 2 +- plugins/node-test/package.json | 2 +- plugins/node-test/src/tasks/node-test.ts | 2 +- plugins/node/package.json | 2 +- plugins/node/src/tasks/node.ts | 2 +- plugins/nodemon/package.json | 2 +- plugins/nodemon/src/tasks/nodemon.ts | 2 +- plugins/package-json-hook/package.json | 5 +- .../src/package-json-helper.ts | 2 +- plugins/package-json-hook/src/schema.ts | 2 +- plugins/parallel/src/tasks/parallel.ts | 2 +- plugins/parallel/test/tasks/parallel.test.ts | 2 +- plugins/prettier/package.json | 2 +- plugins/prettier/src/tasks/prettier.ts | 2 +- plugins/serverless/package.json | 2 +- plugins/serverless/src/schema.ts | 2 +- plugins/serverless/src/tasks/run.ts | 2 +- plugins/typescript/package.json | 2 +- plugins/typescript/src/tasks/typescript.ts | 2 +- plugins/upload-assets-to-s3/package.json | 2 +- .../src/tasks/upload-assets-to-s3.ts | 2 +- .../test/tasks/upload-assets-to-s3.test.ts | 2 +- plugins/webpack/package.json | 2 +- plugins/webpack/src/tasks/webpack.ts | 2 +- scripts/generate-docs.js | 2 +- 80 files changed, 127 insertions(+), 528 deletions(-) diff --git a/core/cli/package.json b/core/cli/package.json index b09a69e1e..bbffc4d4b 100644 --- a/core/cli/package.json +++ b/core/cli/package.json @@ -26,8 +26,7 @@ "@types/pluralize": "^0.0.33", "globby": "^10.0.2", "type-fest": "^4.41.0", - "winston": "^3.17.0", - "zod": "^3.24.4" + "winston": "^3.17.0" }, "dependencies": { "@dotcom-tool-kit/base": "^1.3.0", @@ -47,7 +46,8 @@ "pretty-format": "^29.7.0", "tslib": "^2.8.1", "yaml": "^2.8.0", - "zod-validation-error": "^3.4.1" + "zod": "^3.25.76", + "zod-validation-error": "^3.5.2" }, "engines": { "node": "18.x || 20.x || 22.x" diff --git a/core/cli/src/messages.ts b/core/cli/src/messages.ts index b711e1817..c860e8408 100644 --- a/core/cli/src/messages.ts +++ b/core/cli/src/messages.ts @@ -7,8 +7,8 @@ import type { OptionsForPlugin, OptionsForTask } from '@dotcom-tool-kit/plugin' -import type { z } from 'zod' -import { fromZodError } from 'zod-validation-error' +import type { z } from 'zod/v3' +import { fromZodError } from 'zod-validation-error/v3' import type { Conflict } from '@dotcom-tool-kit/conflict' import pluralize from 'pluralize' import { ToolKitError } from '@dotcom-tool-kit/error' diff --git a/core/cli/src/plugin/entry-point.ts b/core/cli/src/plugin/entry-point.ts index 564cbad01..2f60b39d2 100644 --- a/core/cli/src/plugin/entry-point.ts +++ b/core/cli/src/plugin/entry-point.ts @@ -4,7 +4,7 @@ import type { Base } from '@dotcom-tool-kit/base' import type { EntryPoint } from '@dotcom-tool-kit/plugin' import { Validated, invalid, valid } from '@dotcom-tool-kit/validated' import { __importDefault } from 'tslib' -import type * as z from 'zod' +import type * as z from 'zod/v3' import { indentReasons } from '../messages' import type { ReadonlyDeep } from 'type-fest' diff --git a/core/cli/src/plugin/options.ts b/core/cli/src/plugin/options.ts index 7fb521189..6743c82dc 100644 --- a/core/cli/src/plugin/options.ts +++ b/core/cli/src/plugin/options.ts @@ -9,7 +9,7 @@ import { type PluginOptions, PluginSchemas, legacyPluginOptions } from '@dotcom- import { invalid, reduceValidated, valid, Validated } from '@dotcom-tool-kit/validated' import type { Logger } from 'winston' -import * as z from 'zod' +import * as z from 'zod/v3' import { styles } from '@dotcom-tool-kit/logger' import { toolKitIfDefinedIdent, toolKitOptionIdent } from '../rc-file' diff --git a/core/cli/src/plugin/reduce-installations.ts b/core/cli/src/plugin/reduce-installations.ts index aed78ff50..c5129abd5 100644 --- a/core/cli/src/plugin/reduce-installations.ts +++ b/core/cli/src/plugin/reduce-installations.ts @@ -1,6 +1,6 @@ import { groupBy } from 'lodash' import type { Logger } from 'winston' -import * as z from 'zod' +import * as z from 'zod/v3' import type { HookClass, HookInstallation } from '@dotcom-tool-kit/base' import type { ValidConfig } from '@dotcom-tool-kit/config' diff --git a/core/create/package.json b/core/create/package.json index 1d31bf8e3..ef3651f3b 100644 --- a/core/create/package.json +++ b/core/create/package.json @@ -32,7 +32,7 @@ "simple-git": "^3.27.0", "tslib": "^2.8.1", "yaml": "^2.8.0", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "repository": { "type": "git", diff --git a/core/create/src/prompts/oidc.ts b/core/create/src/prompts/oidc.ts index d82c93f5d..d9da8aa8e 100644 --- a/core/create/src/prompts/oidc.ts +++ b/core/create/src/prompts/oidc.ts @@ -13,7 +13,7 @@ import path from 'path' import prompt from 'prompts' import { simpleGit } from 'simple-git' import YAML from 'yaml' -import { z } from 'zod' +import { z } from 'zod/v3' // git mode indicating an object blob is a file const FILE_MODE = '100644' as const @@ -254,7 +254,11 @@ export default async function oidcPrompt({ toolKitConfig }: OidcParams): Promise // store path using the same logic we used to use to infer the name // from Tool Kit vault plugin options. Pass in the options that were // selected during the options prompt. - const dopplerProjectName = new DopplerEnvVars(winstonLogger, 'prod', toolKitConfig.options.plugins['@dotcom-tool-kit/doppler']).options.project + const dopplerProjectName = new DopplerEnvVars( + winstonLogger, + 'prod', + toolKitConfig.options.plugins['@dotcom-tool-kit/doppler'] + ).options.project const ssmAction = 'ssm:GetParameter' const ssmResource = `arn:aws:ssm:eu-west-1:\${AWS::AccountId}:parameter/${dopplerProjectName}/*` winstonLogger.info( diff --git a/core/create/src/prompts/options.ts b/core/create/src/prompts/options.ts index 8b2e46864..72340e8d5 100644 --- a/core/create/src/prompts/options.ts +++ b/core/create/src/prompts/options.ts @@ -7,7 +7,7 @@ import YAML from 'yaml' import type Logger from 'komatsu' import partition from 'lodash/partition' import prompt from 'prompts' -import { z } from 'zod' +import { z } from 'zod/v3' import type { BizOpsSystem } from '../bizOps' interface OptionSettings { diff --git a/docs/developing-tool-kit.md b/docs/developing-tool-kit.md index 65633ff6e..63fbee073 100644 --- a/docs/developing-tool-kit.md +++ b/docs/developing-tool-kit.md @@ -148,7 +148,7 @@ This lets different plugins define the same abstractly labelled hooks with diffe Plugins can define options that a user can configure in their repo's `.toolkitrc.yml`. We use the [`zod` library](https://zod.dev) to specify the schema, which allows us to define what we expect the options to look like and use this specification to validate the options we receive as well as generate TypeScript types for them. Options are defined within plugins. For tasks and hooks you should export the `zod` schema in the same file as you export your `Task` or `Hook` class as a `schema` object. For plugin options you should define the `zod` schema in a separate file, export it as the default object, and add the path to your `.toolkitrc.yml` with the top-level `optionsSchema` option. ```typescript -import { z } from 'zod' +import { z } from 'zod/v3' const ESLintSchema = z.object({ files: z.string().array().default(['**/*.js']), diff --git a/docs/extending-tool-kit.md b/docs/extending-tool-kit.md index 762a8bc16..ff959b54f 100644 --- a/docs/extending-tool-kit.md +++ b/docs/extending-tool-kit.md @@ -178,7 +178,7 @@ options: Additionally, we can define an options schema to ensure that the options passed to task are as we expect them to be, with the correct names and correct types. We use [`zod`](https://zod.dev/) to define our schemas. For plugin options, you should export your schema as the default object in a separate file and specify its path as a top-level `optionsSchema` option in your `.toolkitrc.yml`. For tasks and hooks, you should export your schema as a `schema` object in the same file as you export your task/hook. We could define a `zod` schema for the Rollup task like so: ```js -const z = require('zod') +const z = require('zod/v3') const RollupSchema = z.object({ configPath: z.string() }) module.exports.schema = RollupSchema diff --git a/lib/base/package.json b/lib/base/package.json index 7af371bc3..47f56e95c 100644 --- a/lib/base/package.json +++ b/lib/base/package.json @@ -21,9 +21,9 @@ "@dotcom-tool-kit/plugin": "^1.1.0", "type-fest": "^4.41.0", "winston": "^3.17.0", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "peerDependencies": { - "zod": "^3.24.4" + "zod": "^3.25.76" } } diff --git a/lib/base/src/hook.ts b/lib/base/src/hook.ts index 2f568e70e..4928666a4 100644 --- a/lib/base/src/hook.ts +++ b/lib/base/src/hook.ts @@ -1,7 +1,7 @@ import type { Logger } from 'winston' import { Base } from './base' import { hookSymbol, typeSymbol } from './symbols' -import type { z } from 'zod' +import type { z } from 'zod/v3' import type { Plugin } from '@dotcom-tool-kit/plugin' import { Conflict, isConflict } from '@dotcom-tool-kit/conflict' import type { Default } from './type-utils' diff --git a/lib/base/src/task.ts b/lib/base/src/task.ts index 23f5884cd..9fd931218 100644 --- a/lib/base/src/task.ts +++ b/lib/base/src/task.ts @@ -1,4 +1,4 @@ -import type { z } from 'zod' +import type { z } from 'zod/v3' import { Base } from './base' import { taskSymbol, typeSymbol } from './symbols' import type { Logger } from 'winston' diff --git a/lib/doppler/package.json b/lib/doppler/package.json index aa2d630ae..1a2fe8347 100644 --- a/lib/doppler/package.json +++ b/lib/doppler/package.json @@ -10,7 +10,7 @@ "@dotcom-tool-kit/error": "^4.1.1", "@dotcom-tool-kit/logger": "^4.2.2", "tslib": "^2.8.1", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "keywords": [], "author": "FT.com Platforms Team ", diff --git a/lib/doppler/src/index.ts b/lib/doppler/src/index.ts index e9355fe5f..d5acd3e10 100644 --- a/lib/doppler/src/index.ts +++ b/lib/doppler/src/index.ts @@ -1,7 +1,7 @@ import { spawn } from 'node:child_process' import type { Logger } from 'winston' -import type * as z from 'zod' +import type * as z from 'zod/v3' import { ToolKitError } from '@dotcom-tool-kit/error' import { styles, waitOnExit } from '@dotcom-tool-kit/logger' diff --git a/lib/doppler/src/schema.ts b/lib/doppler/src/schema.ts index 51b1ed29b..ba77b7104 100644 --- a/lib/doppler/src/schema.ts +++ b/lib/doppler/src/schema.ts @@ -1,4 +1,4 @@ -import * as z from 'zod' +import * as z from 'zod/v3' // In theory, these fields should be required as Doppler won't work without them, // but not every app that pulls in the Doppler plugin actually needs to use diff --git a/lib/plugin/src/root-schema.ts b/lib/plugin/src/root-schema.ts index cba8868de..a8b58f097 100644 --- a/lib/plugin/src/root-schema.ts +++ b/lib/plugin/src/root-schema.ts @@ -1,4 +1,4 @@ -import * as z from 'zod' +import * as z from 'zod/v3' export const RootSchema = z.object({ allowNativeFetch: z.boolean().default(false) diff --git a/package-lock.json b/package-lock.json index 27b0bf8f3..3cd94f07d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -65,7 +65,8 @@ "pretty-format": "^29.7.0", "tslib": "^2.8.1", "yaml": "^2.8.0", - "zod-validation-error": "^3.4.1" + "zod": "^3.25.76", + "zod-validation-error": "^3.5.2" }, "bin": { "dotcom-tool-kit": "bin/run" @@ -77,8 +78,7 @@ "@types/pluralize": "^0.0.33", "globby": "^10.0.2", "type-fest": "^4.41.0", - "winston": "^3.17.0", - "zod": "^3.24.4" + "winston": "^3.17.0" }, "engines": { "node": "18.x || 20.x || 22.x" @@ -184,7 +184,7 @@ "simple-git": "^3.27.0", "tslib": "^2.8.1", "yaml": "^2.8.0", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "bin": { "create": "bin/create-tool-kit" @@ -210,7 +210,6 @@ }, "core/sandbox": { "version": "1.0.0", - "extraneous": true, "license": "ISC", "dependencies": { "@dotcom-tool-kit/circleci": "^7.6.6", @@ -234,10 +233,10 @@ "@dotcom-tool-kit/plugin": "^1.1.0", "type-fest": "^4.41.0", "winston": "^3.17.0", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "peerDependencies": { - "zod": "^3.24.4" + "zod": "^3.25.76" } }, "lib/config": { @@ -266,7 +265,7 @@ "@dotcom-tool-kit/error": "^4.1.1", "@dotcom-tool-kit/logger": "^4.2.2", "tslib": "^2.8.1", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "devDependencies": { "spawk": "^1.8.2", @@ -5403,8 +5402,6 @@ }, "node_modules/@dotcom-reliability-kit/crash-handler": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@dotcom-reliability-kit/crash-handler/-/crash-handler-5.1.0.tgz", - "integrity": "sha512-j96ia1jEIkMCwuyBjdIYw9xuUYMrc4FKYX/F/NTpdzQpeGUzxzgnBTXJcF3eXvitzv9sScfH2aFfamouDk1ULA==", "license": "MIT", "dependencies": { "@dotcom-reliability-kit/log-error": "^5.1.0" @@ -5415,8 +5412,6 @@ }, "node_modules/@dotcom-reliability-kit/errors": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@dotcom-reliability-kit/errors/-/errors-4.1.0.tgz", - "integrity": "sha512-h9Qs9WqaIr7vwPpUc9Zpr+3YqhnatDIdYWA36YHzVEm0QfkgkDlE30lKqOIPwmL2odfHDKqDdyMd2Hx8wsySNg==", "license": "MIT", "engines": { "node": "20.x || 22.x || 24.x" @@ -5435,8 +5430,6 @@ }, "node_modules/@dotcom-reliability-kit/log-error": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@dotcom-reliability-kit/log-error/-/log-error-5.1.0.tgz", - "integrity": "sha512-O8LAZIZbuM+YaYlsB8rN9j9qDqMAPIruiaqyJxg7mid90dF3Uhpry8fL3nDENCqckisQQGifMsmJquAbU/+UGQ==", "license": "MIT", "dependencies": { "@dotcom-reliability-kit/app-info": "^4.2.0", @@ -5450,8 +5443,6 @@ }, "node_modules/@dotcom-reliability-kit/log-error/node_modules/@dotcom-reliability-kit/app-info": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@dotcom-reliability-kit/app-info/-/app-info-4.2.0.tgz", - "integrity": "sha512-rmD7UdcnNUa7s3rLRsQpupiqPOPkfR+SdnzhA8uCRTF+v/Ng3HFId7C6SiMhchA03c3Ndd1BGdOJEaZL0CjQZw==", "license": "MIT", "engines": { "node": "20.x || 22.x || 24.x" @@ -5459,8 +5450,6 @@ }, "node_modules/@dotcom-reliability-kit/log-error/node_modules/@dotcom-reliability-kit/logger": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@dotcom-reliability-kit/logger/-/logger-4.2.0.tgz", - "integrity": "sha512-d9b5Te8Jj2TqIZtwTnZFsxwM1CXFpA/KEUU4qbIlQwrQ6PT0bywQwMRrM/O2ivz2G7PmhZjwg3qg7b5l/mCcpA==", "license": "MIT", "dependencies": { "@dotcom-reliability-kit/app-info": "^4.2.0", @@ -5477,8 +5466,6 @@ }, "node_modules/@dotcom-reliability-kit/log-error/node_modules/@dotcom-reliability-kit/serialize-error": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@dotcom-reliability-kit/serialize-error/-/serialize-error-4.1.0.tgz", - "integrity": "sha512-K2V6gt7Q5PtlpfDk74Sr6R2Q9YmhXaw7fdDoTF316apwnU53ybzzQvLVvwufRvnzevQM8VPxouxYt8QhyBE0lA==", "license": "MIT", "engines": { "node": "20.x || 22.x || 24.x" @@ -5486,8 +5473,6 @@ }, "node_modules/@dotcom-reliability-kit/log-error/node_modules/pino": { "version": "9.8.0", - "resolved": "https://registry.npmjs.org/pino/-/pino-9.8.0.tgz", - "integrity": "sha512-L5+rV1wL7vGAcxXP7sPpN5lrJ07Piruka6ArXr7EWBXxdVWjJshGVX8suFsiusJVcGKDGUFfbgbnKdg+VAC+0g==", "license": "MIT", "dependencies": { "atomic-sleep": "^1.0.0", @@ -5508,8 +5493,6 @@ }, "node_modules/@dotcom-reliability-kit/log-error/node_modules/pino-abstract-transport": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz", - "integrity": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==", "license": "MIT", "dependencies": { "split2": "^4.0.0" @@ -5517,14 +5500,10 @@ }, "node_modules/@dotcom-reliability-kit/log-error/node_modules/pino-std-serializers": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz", - "integrity": "sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==", "license": "MIT" }, "node_modules/@dotcom-reliability-kit/log-error/node_modules/process-warning": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-5.0.0.tgz", - "integrity": "sha512-a39t9ApHNx2L4+HBnQKqxxHNs1r7KF+Intd8Q/g1bUh6q0WIp9voPXJ/x0j+ZL45KF1pJd9+q2jLIRMfvEshkA==", "funding": [ { "type": "github", @@ -5539,8 +5518,6 @@ }, "node_modules/@dotcom-reliability-kit/log-error/node_modules/sonic-boom": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.2.0.tgz", - "integrity": "sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==", "license": "MIT", "dependencies": { "atomic-sleep": "^1.0.0" @@ -5548,8 +5525,6 @@ }, "node_modules/@dotcom-reliability-kit/log-error/node_modules/split2": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", - "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", "license": "ISC", "engines": { "node": ">= 10.x" @@ -5557,8 +5532,6 @@ }, "node_modules/@dotcom-reliability-kit/log-error/node_modules/thread-stream": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz", - "integrity": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==", "license": "MIT", "dependencies": { "real-require": "^0.2.0" @@ -5583,8 +5556,6 @@ }, "node_modules/@dotcom-reliability-kit/opentelemetry": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@dotcom-reliability-kit/opentelemetry/-/opentelemetry-3.1.0.tgz", - "integrity": "sha512-hbz19QPLdNlCPbGWpgWDD+TlgkJIq7kAT+SXduQDIsmRJGkq6vHrpJlVc0uz7oxbfsdi0ik9crELrR3s4eBwMw==", "license": "MIT", "dependencies": { "@dotcom-reliability-kit/app-info": "^4.2.0", @@ -5604,8 +5575,6 @@ }, "node_modules/@dotcom-reliability-kit/opentelemetry/node_modules/@dotcom-reliability-kit/app-info": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@dotcom-reliability-kit/app-info/-/app-info-4.2.0.tgz", - "integrity": "sha512-rmD7UdcnNUa7s3rLRsQpupiqPOPkfR+SdnzhA8uCRTF+v/Ng3HFId7C6SiMhchA03c3Ndd1BGdOJEaZL0CjQZw==", "license": "MIT", "engines": { "node": "20.x || 22.x || 24.x" @@ -5613,8 +5582,6 @@ }, "node_modules/@dotcom-reliability-kit/opentelemetry/node_modules/@dotcom-reliability-kit/logger": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@dotcom-reliability-kit/logger/-/logger-4.2.0.tgz", - "integrity": "sha512-d9b5Te8Jj2TqIZtwTnZFsxwM1CXFpA/KEUU4qbIlQwrQ6PT0bywQwMRrM/O2ivz2G7PmhZjwg3qg7b5l/mCcpA==", "license": "MIT", "dependencies": { "@dotcom-reliability-kit/app-info": "^4.2.0", @@ -5631,8 +5598,6 @@ }, "node_modules/@dotcom-reliability-kit/opentelemetry/node_modules/@dotcom-reliability-kit/serialize-error": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@dotcom-reliability-kit/serialize-error/-/serialize-error-4.1.0.tgz", - "integrity": "sha512-K2V6gt7Q5PtlpfDk74Sr6R2Q9YmhXaw7fdDoTF316apwnU53ybzzQvLVvwufRvnzevQM8VPxouxYt8QhyBE0lA==", "license": "MIT", "engines": { "node": "20.x || 22.x || 24.x" @@ -5640,8 +5605,6 @@ }, "node_modules/@dotcom-reliability-kit/opentelemetry/node_modules/pino": { "version": "9.8.0", - "resolved": "https://registry.npmjs.org/pino/-/pino-9.8.0.tgz", - "integrity": "sha512-L5+rV1wL7vGAcxXP7sPpN5lrJ07Piruka6ArXr7EWBXxdVWjJshGVX8suFsiusJVcGKDGUFfbgbnKdg+VAC+0g==", "license": "MIT", "dependencies": { "atomic-sleep": "^1.0.0", @@ -5662,8 +5625,6 @@ }, "node_modules/@dotcom-reliability-kit/opentelemetry/node_modules/pino-abstract-transport": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz", - "integrity": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==", "license": "MIT", "dependencies": { "split2": "^4.0.0" @@ -5671,14 +5632,10 @@ }, "node_modules/@dotcom-reliability-kit/opentelemetry/node_modules/pino-std-serializers": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz", - "integrity": "sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==", "license": "MIT" }, "node_modules/@dotcom-reliability-kit/opentelemetry/node_modules/process-warning": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-5.0.0.tgz", - "integrity": "sha512-a39t9ApHNx2L4+HBnQKqxxHNs1r7KF+Intd8Q/g1bUh6q0WIp9voPXJ/x0j+ZL45KF1pJd9+q2jLIRMfvEshkA==", "funding": [ { "type": "github", @@ -5693,8 +5650,6 @@ }, "node_modules/@dotcom-reliability-kit/opentelemetry/node_modules/sonic-boom": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.2.0.tgz", - "integrity": "sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==", "license": "MIT", "dependencies": { "atomic-sleep": "^1.0.0" @@ -5702,8 +5657,6 @@ }, "node_modules/@dotcom-reliability-kit/opentelemetry/node_modules/split2": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", - "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", "license": "ISC", "engines": { "node": ">= 10.x" @@ -5711,8 +5664,6 @@ }, "node_modules/@dotcom-reliability-kit/opentelemetry/node_modules/thread-stream": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz", - "integrity": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==", "license": "MIT", "dependencies": { "real-require": "^0.2.0" @@ -5728,8 +5679,6 @@ }, "node_modules/@dotcom-reliability-kit/serialize-request": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@dotcom-reliability-kit/serialize-request/-/serialize-request-4.1.0.tgz", - "integrity": "sha512-ACEBYikGZ527CHPiBgOrVRlOWQm9yIQ84WihBTR31SLyicJZ6MOifKT7KA3cDvgG8s3nJj2EzQ+D9SaPfqr/dw==", "license": "MIT", "engines": { "node": "20.x || 22.x || 24.x" @@ -6053,8 +6002,6 @@ }, "node_modules/@financial-times/n-test": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@financial-times/n-test/-/n-test-8.1.0.tgz", - "integrity": "sha512-H/om/inYOKBMKLe7RRBOyFZY4qvkZNt9G4V/pU6Z+fUghmI0cZNOjhIynz0tQd7tjM7CaKYrlS6Qge/34jZRDw==", "license": "ISC", "dependencies": { "chalk": "^2.3.0", @@ -6180,8 +6127,6 @@ }, "node_modules/@grpc/grpc-js": { "version": "1.13.4", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.13.4.tgz", - "integrity": "sha512-GsFaMXCkMqkKIvwCQjCrwH+GHbPKBjhwo/8ZuUkWHqbI73Kky9I+pQltrlT0+MWpedCoosda53lgjYfyEPgxBg==", "license": "Apache-2.0", "dependencies": { "@grpc/proto-loader": "^0.7.13", @@ -6193,8 +6138,6 @@ }, "node_modules/@grpc/proto-loader": { "version": "0.7.15", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.15.tgz", - "integrity": "sha512-tMXdRCfYVixjuFK+Hk0Q1s38gV9zDiDJfWL3h1rv4Qc39oILCu1TRTDt7+fGUI8K4G1Fj125Hx/ru3azECWTyQ==", "license": "Apache-2.0", "dependencies": { "lodash.camelcase": "^4.3.0", @@ -7740,8 +7683,6 @@ }, "node_modules/@js-sdsl/ordered-map": { "version": "4.4.2", - "resolved": "https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz", - "integrity": "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==", "license": "MIT", "funding": { "type": "opencollective", @@ -9420,8 +9361,6 @@ }, "node_modules/@opentelemetry/api": { "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", - "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==", "license": "Apache-2.0", "engines": { "node": ">=8.0.0" @@ -9429,8 +9368,6 @@ }, "node_modules/@opentelemetry/api-logs": { "version": "0.200.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.200.0.tgz", - "integrity": "sha512-IKJBQxh91qJ+3ssRly5hYEJ8NDHu9oY/B1PXVSCWf7zytmYO9RNLB0Ox9XQ/fJ8m6gY6Q6NtBWlmXfaXt5Uc4Q==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/api": "^1.3.0" @@ -9441,8 +9378,6 @@ }, "node_modules/@opentelemetry/auto-instrumentations-node": { "version": "0.58.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/auto-instrumentations-node/-/auto-instrumentations-node-0.58.1.tgz", - "integrity": "sha512-hAsNw5XtFTytQ6GrCspIwKKSamXQGfAvRfqOL93VTqaI1WFBhndyXsNrjAzqULvK0JwMJOuZb77ckdrvJrW3vA==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.200.0", @@ -9504,8 +9439,6 @@ }, "node_modules/@opentelemetry/context-async-hooks": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-2.0.0.tgz", - "integrity": "sha512-IEkJGzK1A9v3/EHjXh3s2IiFc6L4jfK+lNgKVgUjeUJQRRhnVFMIO3TAvKwonm9O1HebCuoOt98v8bZW7oVQHA==", "license": "Apache-2.0", "engines": { "node": "^18.19.0 || >=20.6.0" @@ -9516,8 +9449,6 @@ }, "node_modules/@opentelemetry/core": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.0.1.tgz", - "integrity": "sha512-MaZk9SJIDgo1peKevlbhP6+IwIiNPNmswNL4AF0WaQJLbHXjr9SrZMgS12+iqr9ToV4ZVosCcc0f8Rg67LXjxw==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/semantic-conventions": "^1.29.0" @@ -9531,8 +9462,6 @@ }, "node_modules/@opentelemetry/exporter-logs-otlp-grpc": { "version": "0.200.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-logs-otlp-grpc/-/exporter-logs-otlp-grpc-0.200.0.tgz", - "integrity": "sha512-+3MDfa5YQPGM3WXxW9kqGD85Q7s9wlEMVNhXXG7tYFLnIeaseUt9YtCeFhEDFzfEktacdFpOtXmJuNW8cHbU5A==", "license": "Apache-2.0", "dependencies": { "@grpc/grpc-js": "^1.7.1", @@ -9551,8 +9480,6 @@ }, "node_modules/@opentelemetry/exporter-logs-otlp-grpc/node_modules/@opentelemetry/core": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.0.0.tgz", - "integrity": "sha512-SLX36allrcnVaPYG3R78F/UZZsBsvbc7lMCLx37LyH5MJ1KAAZ2E3mW9OAD3zGz0G8q/BtoS5VUrjzDydhD6LQ==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/semantic-conventions": "^1.29.0" @@ -9566,8 +9493,6 @@ }, "node_modules/@opentelemetry/exporter-logs-otlp-http": { "version": "0.200.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-logs-otlp-http/-/exporter-logs-otlp-http-0.200.0.tgz", - "integrity": "sha512-KfWw49htbGGp9s8N4KI8EQ9XuqKJ0VG+yVYVYFiCYSjEV32qpQ5qZ9UZBzOZ6xRb+E16SXOSCT3RkqBVSABZ+g==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/api-logs": "0.200.0", @@ -9585,8 +9510,6 @@ }, "node_modules/@opentelemetry/exporter-logs-otlp-http/node_modules/@opentelemetry/core": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.0.0.tgz", - "integrity": "sha512-SLX36allrcnVaPYG3R78F/UZZsBsvbc7lMCLx37LyH5MJ1KAAZ2E3mW9OAD3zGz0G8q/BtoS5VUrjzDydhD6LQ==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/semantic-conventions": "^1.29.0" @@ -9600,8 +9523,6 @@ }, "node_modules/@opentelemetry/exporter-logs-otlp-proto": { "version": "0.200.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-logs-otlp-proto/-/exporter-logs-otlp-proto-0.200.0.tgz", - "integrity": "sha512-GmahpUU/55hxfH4TP77ChOfftADsCq/nuri73I/AVLe2s4NIglvTsaACkFVZAVmnXXyPS00Fk3x27WS3yO07zA==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/api-logs": "0.200.0", @@ -9621,8 +9542,6 @@ }, "node_modules/@opentelemetry/exporter-logs-otlp-proto/node_modules/@opentelemetry/core": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.0.0.tgz", - "integrity": "sha512-SLX36allrcnVaPYG3R78F/UZZsBsvbc7lMCLx37LyH5MJ1KAAZ2E3mW9OAD3zGz0G8q/BtoS5VUrjzDydhD6LQ==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/semantic-conventions": "^1.29.0" @@ -9636,8 +9555,6 @@ }, "node_modules/@opentelemetry/exporter-logs-otlp-proto/node_modules/@opentelemetry/resources": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.0.0.tgz", - "integrity": "sha512-rnZr6dML2z4IARI4zPGQV4arDikF/9OXZQzrC01dLmn0CZxU5U5OLd/m1T7YkGRj5UitjeoCtg/zorlgMQcdTg==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "2.0.0", @@ -9652,8 +9569,6 @@ }, "node_modules/@opentelemetry/exporter-metrics-otlp-grpc": { "version": "0.200.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-grpc/-/exporter-metrics-otlp-grpc-0.200.0.tgz", - "integrity": "sha512-uHawPRvKIrhqH09GloTuYeq2BjyieYHIpiklOvxm9zhrCL2eRsnI/6g9v2BZTVtGp8tEgIa7rCQ6Ltxw6NBgew==", "license": "Apache-2.0", "dependencies": { "@grpc/grpc-js": "^1.7.1", @@ -9674,8 +9589,6 @@ }, "node_modules/@opentelemetry/exporter-metrics-otlp-grpc/node_modules/@opentelemetry/core": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.0.0.tgz", - "integrity": "sha512-SLX36allrcnVaPYG3R78F/UZZsBsvbc7lMCLx37LyH5MJ1KAAZ2E3mW9OAD3zGz0G8q/BtoS5VUrjzDydhD6LQ==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/semantic-conventions": "^1.29.0" @@ -9689,8 +9602,6 @@ }, "node_modules/@opentelemetry/exporter-metrics-otlp-grpc/node_modules/@opentelemetry/resources": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.0.0.tgz", - "integrity": "sha512-rnZr6dML2z4IARI4zPGQV4arDikF/9OXZQzrC01dLmn0CZxU5U5OLd/m1T7YkGRj5UitjeoCtg/zorlgMQcdTg==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "2.0.0", @@ -9705,8 +9616,6 @@ }, "node_modules/@opentelemetry/exporter-metrics-otlp-http": { "version": "0.200.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-http/-/exporter-metrics-otlp-http-0.200.0.tgz", - "integrity": "sha512-5BiR6i8yHc9+qW7F6LqkuUnIzVNA7lt0qRxIKcKT+gq3eGUPHZ3DY29sfxI3tkvnwMgtnHDMNze5DdxW39HsAw==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "2.0.0", @@ -9724,8 +9633,6 @@ }, "node_modules/@opentelemetry/exporter-metrics-otlp-http/node_modules/@opentelemetry/core": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.0.0.tgz", - "integrity": "sha512-SLX36allrcnVaPYG3R78F/UZZsBsvbc7lMCLx37LyH5MJ1KAAZ2E3mW9OAD3zGz0G8q/BtoS5VUrjzDydhD6LQ==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/semantic-conventions": "^1.29.0" @@ -9739,8 +9646,6 @@ }, "node_modules/@opentelemetry/exporter-metrics-otlp-http/node_modules/@opentelemetry/resources": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.0.0.tgz", - "integrity": "sha512-rnZr6dML2z4IARI4zPGQV4arDikF/9OXZQzrC01dLmn0CZxU5U5OLd/m1T7YkGRj5UitjeoCtg/zorlgMQcdTg==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "2.0.0", @@ -9755,8 +9660,6 @@ }, "node_modules/@opentelemetry/exporter-metrics-otlp-proto": { "version": "0.200.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-proto/-/exporter-metrics-otlp-proto-0.200.0.tgz", - "integrity": "sha512-E+uPj0yyvz81U9pvLZp3oHtFrEzNSqKGVkIViTQY1rH3TOobeJPSpLnTVXACnCwkPR5XeTvPnK3pZ2Kni8AFMg==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "2.0.0", @@ -9775,8 +9678,6 @@ }, "node_modules/@opentelemetry/exporter-metrics-otlp-proto/node_modules/@opentelemetry/core": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.0.0.tgz", - "integrity": "sha512-SLX36allrcnVaPYG3R78F/UZZsBsvbc7lMCLx37LyH5MJ1KAAZ2E3mW9OAD3zGz0G8q/BtoS5VUrjzDydhD6LQ==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/semantic-conventions": "^1.29.0" @@ -9790,8 +9691,6 @@ }, "node_modules/@opentelemetry/exporter-metrics-otlp-proto/node_modules/@opentelemetry/resources": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.0.0.tgz", - "integrity": "sha512-rnZr6dML2z4IARI4zPGQV4arDikF/9OXZQzrC01dLmn0CZxU5U5OLd/m1T7YkGRj5UitjeoCtg/zorlgMQcdTg==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "2.0.0", @@ -9806,8 +9705,6 @@ }, "node_modules/@opentelemetry/exporter-prometheus": { "version": "0.200.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-prometheus/-/exporter-prometheus-0.200.0.tgz", - "integrity": "sha512-ZYdlU9r0USuuYppiDyU2VFRA0kFl855ylnb3N/2aOlXrbA4PMCznen7gmPbetGQu7pz8Jbaf4fwvrDnVdQQXSw==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "2.0.0", @@ -9823,8 +9720,6 @@ }, "node_modules/@opentelemetry/exporter-prometheus/node_modules/@opentelemetry/core": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.0.0.tgz", - "integrity": "sha512-SLX36allrcnVaPYG3R78F/UZZsBsvbc7lMCLx37LyH5MJ1KAAZ2E3mW9OAD3zGz0G8q/BtoS5VUrjzDydhD6LQ==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/semantic-conventions": "^1.29.0" @@ -9838,8 +9733,6 @@ }, "node_modules/@opentelemetry/exporter-prometheus/node_modules/@opentelemetry/resources": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.0.0.tgz", - "integrity": "sha512-rnZr6dML2z4IARI4zPGQV4arDikF/9OXZQzrC01dLmn0CZxU5U5OLd/m1T7YkGRj5UitjeoCtg/zorlgMQcdTg==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "2.0.0", @@ -9854,8 +9747,6 @@ }, "node_modules/@opentelemetry/exporter-trace-otlp-grpc": { "version": "0.200.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-grpc/-/exporter-trace-otlp-grpc-0.200.0.tgz", - "integrity": "sha512-hmeZrUkFl1YMsgukSuHCFPYeF9df0hHoKeHUthRKFCxiURs+GwF1VuabuHmBMZnjTbsuvNjOB+JSs37Csem/5Q==", "license": "Apache-2.0", "dependencies": { "@grpc/grpc-js": "^1.7.1", @@ -9875,8 +9766,6 @@ }, "node_modules/@opentelemetry/exporter-trace-otlp-grpc/node_modules/@opentelemetry/core": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.0.0.tgz", - "integrity": "sha512-SLX36allrcnVaPYG3R78F/UZZsBsvbc7lMCLx37LyH5MJ1KAAZ2E3mW9OAD3zGz0G8q/BtoS5VUrjzDydhD6LQ==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/semantic-conventions": "^1.29.0" @@ -9890,8 +9779,6 @@ }, "node_modules/@opentelemetry/exporter-trace-otlp-grpc/node_modules/@opentelemetry/resources": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.0.0.tgz", - "integrity": "sha512-rnZr6dML2z4IARI4zPGQV4arDikF/9OXZQzrC01dLmn0CZxU5U5OLd/m1T7YkGRj5UitjeoCtg/zorlgMQcdTg==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "2.0.0", @@ -9906,8 +9793,6 @@ }, "node_modules/@opentelemetry/exporter-trace-otlp-http": { "version": "0.200.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.200.0.tgz", - "integrity": "sha512-Goi//m/7ZHeUedxTGVmEzH19NgqJY+Bzr6zXo1Rni1+hwqaksEyJ44gdlEMREu6dzX1DlAaH/qSykSVzdrdafA==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "2.0.0", @@ -9925,8 +9810,6 @@ }, "node_modules/@opentelemetry/exporter-trace-otlp-http/node_modules/@opentelemetry/core": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.0.0.tgz", - "integrity": "sha512-SLX36allrcnVaPYG3R78F/UZZsBsvbc7lMCLx37LyH5MJ1KAAZ2E3mW9OAD3zGz0G8q/BtoS5VUrjzDydhD6LQ==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/semantic-conventions": "^1.29.0" @@ -9940,8 +9823,6 @@ }, "node_modules/@opentelemetry/exporter-trace-otlp-http/node_modules/@opentelemetry/resources": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.0.0.tgz", - "integrity": "sha512-rnZr6dML2z4IARI4zPGQV4arDikF/9OXZQzrC01dLmn0CZxU5U5OLd/m1T7YkGRj5UitjeoCtg/zorlgMQcdTg==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "2.0.0", @@ -9956,8 +9837,6 @@ }, "node_modules/@opentelemetry/exporter-trace-otlp-proto": { "version": "0.200.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-proto/-/exporter-trace-otlp-proto-0.200.0.tgz", - "integrity": "sha512-V9TDSD3PjK1OREw2iT9TUTzNYEVWJk4Nhodzhp9eiz4onDMYmPy3LaGbPv81yIR6dUb/hNp/SIhpiCHwFUq2Vg==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "2.0.0", @@ -9975,8 +9854,6 @@ }, "node_modules/@opentelemetry/exporter-trace-otlp-proto/node_modules/@opentelemetry/core": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.0.0.tgz", - "integrity": "sha512-SLX36allrcnVaPYG3R78F/UZZsBsvbc7lMCLx37LyH5MJ1KAAZ2E3mW9OAD3zGz0G8q/BtoS5VUrjzDydhD6LQ==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/semantic-conventions": "^1.29.0" @@ -9990,8 +9867,6 @@ }, "node_modules/@opentelemetry/exporter-trace-otlp-proto/node_modules/@opentelemetry/resources": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.0.0.tgz", - "integrity": "sha512-rnZr6dML2z4IARI4zPGQV4arDikF/9OXZQzrC01dLmn0CZxU5U5OLd/m1T7YkGRj5UitjeoCtg/zorlgMQcdTg==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "2.0.0", @@ -10006,8 +9881,6 @@ }, "node_modules/@opentelemetry/exporter-zipkin": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-zipkin/-/exporter-zipkin-2.0.0.tgz", - "integrity": "sha512-icxaKZ+jZL/NHXX8Aru4HGsrdhK0MLcuRXkX5G5IRmCgoRLw+Br6I/nMVozX2xjGGwV7hw2g+4Slj8K7s4HbVg==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "2.0.0", @@ -10024,8 +9897,6 @@ }, "node_modules/@opentelemetry/exporter-zipkin/node_modules/@opentelemetry/core": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.0.0.tgz", - "integrity": "sha512-SLX36allrcnVaPYG3R78F/UZZsBsvbc7lMCLx37LyH5MJ1KAAZ2E3mW9OAD3zGz0G8q/BtoS5VUrjzDydhD6LQ==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/semantic-conventions": "^1.29.0" @@ -10039,8 +9910,6 @@ }, "node_modules/@opentelemetry/exporter-zipkin/node_modules/@opentelemetry/resources": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.0.0.tgz", - "integrity": "sha512-rnZr6dML2z4IARI4zPGQV4arDikF/9OXZQzrC01dLmn0CZxU5U5OLd/m1T7YkGRj5UitjeoCtg/zorlgMQcdTg==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "2.0.0", @@ -10055,8 +9924,6 @@ }, "node_modules/@opentelemetry/host-metrics": { "version": "0.36.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/host-metrics/-/host-metrics-0.36.0.tgz", - "integrity": "sha512-14lNY57qa21V3ZOl6xrqLMHR0HGlnPIApR6hr3oCw/Dqs5IzxhTwt2X8Stn82vWJJis7j/ezn11oODsizHj2dQ==", "license": "Apache-2.0", "dependencies": { "systeminformation": "5.23.8" @@ -10070,8 +9937,6 @@ }, "node_modules/@opentelemetry/instrumentation": { "version": "0.200.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.200.0.tgz", - "integrity": "sha512-pmPlzfJd+vvgaZd/reMsC8RWgTXn2WY1OWT5RT42m3aOn5532TozwXNDhg1vzqJ+jnvmkREcdLr27ebJEQt0Jg==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/api-logs": "0.200.0", @@ -10089,8 +9954,6 @@ }, "node_modules/@opentelemetry/instrumentation-amqplib": { "version": "0.47.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-amqplib/-/instrumentation-amqplib-0.47.0.tgz", - "integrity": "sha512-bQboBxolOVDcD4l5QAwqKYpJVKQ8BW82+8tiD5uheu0hDuYgdmDziSAByc8yKS7xpkJw4AYocVP7JwSpQ1hgjg==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^2.0.0", @@ -10106,8 +9969,6 @@ }, "node_modules/@opentelemetry/instrumentation-aws-lambda": { "version": "0.51.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-aws-lambda/-/instrumentation-aws-lambda-0.51.1.tgz", - "integrity": "sha512-DxUihz1ZcJtkCKFMnsr5IpQtU1TFnz/QhTEkcb95yfVvmdWx97ezbcxE4lGFjvQYMT8q2NsZjor8s8W/jrMU2w==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.200.0", @@ -10123,8 +9984,6 @@ }, "node_modules/@opentelemetry/instrumentation-aws-sdk": { "version": "0.52.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-aws-sdk/-/instrumentation-aws-sdk-0.52.0.tgz", - "integrity": "sha512-xMnghwQP/vO9hNNufaHW3SgNprifLPqmssAQ/zjRopbxa6wpBqunWfKYRRoyu89Xlw0X8/hGNoPEh+CIocCryg==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^2.0.0", @@ -10141,8 +10000,6 @@ }, "node_modules/@opentelemetry/instrumentation-bunyan": { "version": "0.46.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-bunyan/-/instrumentation-bunyan-0.46.0.tgz", - "integrity": "sha512-7ERXBAMIVi1rtFG5odsLTLVy6IJZnLLB74fFlPstV7/ZZG04UZ8YFOYVS14jXArcPohY8HFYLbm56dIFCXYI9w==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/api-logs": "^0.200.0", @@ -10158,8 +10015,6 @@ }, "node_modules/@opentelemetry/instrumentation-cassandra-driver": { "version": "0.46.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-cassandra-driver/-/instrumentation-cassandra-driver-0.46.0.tgz", - "integrity": "sha512-ItT2C32afignjHQosleI/iBjzlHhF+F7tJIK9ty47/CceVNlA9oK39ss9f7o9jmnKvQfhNWffvkXdjc0afwnSQ==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.200.0", @@ -10174,8 +10029,6 @@ }, "node_modules/@opentelemetry/instrumentation-connect": { "version": "0.44.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-connect/-/instrumentation-connect-0.44.0.tgz", - "integrity": "sha512-eChFPViU/nkHsCYSp2PCnHnxt/ZmI/N5reHcwmjXbKhEj6TRNJcjLpI+OQksP8lLu0CS9DlDosHEhknCsxLdjQ==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^2.0.0", @@ -10192,8 +10045,6 @@ }, "node_modules/@opentelemetry/instrumentation-cucumber": { "version": "0.15.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-cucumber/-/instrumentation-cucumber-0.15.0.tgz", - "integrity": "sha512-MOHDzttn5TSBqt4j3/XjBhYNH0iLQP7oX2pumIzXP7dJFTcUtaq6PVakKPtIaqBTTabOKqCJhrF240XGwWefPQ==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.200.0", @@ -10208,8 +10059,6 @@ }, "node_modules/@opentelemetry/instrumentation-dataloader": { "version": "0.17.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-dataloader/-/instrumentation-dataloader-0.17.0.tgz", - "integrity": "sha512-JqovxOo7a65+3A/W+eiqUv7DrDsSvsY0NemHJ4uyVrzD4bpDYofVRdnz/ehYcNerlxVIKU+HcybDmiaoj41DPw==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.200.0" @@ -10223,8 +10072,6 @@ }, "node_modules/@opentelemetry/instrumentation-dns": { "version": "0.44.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-dns/-/instrumentation-dns-0.44.0.tgz", - "integrity": "sha512-+tAFXkFPldOpIba2akqKQ1ukqHET1pZ4pqhrr5x0p+RJ+1a1pPmTt1vCyvSSr634WOY8qMSmzZps++16yxnMbA==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.200.0" @@ -10238,8 +10085,6 @@ }, "node_modules/@opentelemetry/instrumentation-express": { "version": "0.49.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-express/-/instrumentation-express-0.49.0.tgz", - "integrity": "sha512-j1hbIZzbu7jLQfI/Hz0wHDaniiSWdC3B8/UdH0CEd4lcO8y0pQlz4UTReBaL1BzbkwUhbg6oHuK+m8DXklQPtA==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^2.0.0", @@ -10255,8 +10100,6 @@ }, "node_modules/@opentelemetry/instrumentation-fastify": { "version": "0.45.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fastify/-/instrumentation-fastify-0.45.0.tgz", - "integrity": "sha512-m94anTFZ6jpvK0G5fXIiq1sB0gCgY2rAL7Cg7svuOh9Roya2RIQz2E5KfCsO1kWCmnHNeTo7wIofoGN7WLPvsA==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^2.0.0", @@ -10272,8 +10115,6 @@ }, "node_modules/@opentelemetry/instrumentation-fs": { "version": "0.20.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fs/-/instrumentation-fs-0.20.0.tgz", - "integrity": "sha512-30l45ovjwHb16ImCGVjKCvw5U7X1zKuYY26ii5S+goV8BZ4a/TCpBf2kQxteQjWD05Gl3fzPMZI5aScfPI6Rjw==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^2.0.0", @@ -10288,8 +10129,6 @@ }, "node_modules/@opentelemetry/instrumentation-generic-pool": { "version": "0.44.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-generic-pool/-/instrumentation-generic-pool-0.44.0.tgz", - "integrity": "sha512-bY7locZDqmQLEtY2fIJbSnAbHilxfhflaEQHjevFGkaiXc9UMtOvITOy5JKHhYQISpgrvY2WGXKG7YlVyI7uMg==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.200.0" @@ -10303,8 +10142,6 @@ }, "node_modules/@opentelemetry/instrumentation-graphql": { "version": "0.48.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-graphql/-/instrumentation-graphql-0.48.0.tgz", - "integrity": "sha512-w1sbf9F9bQTpIWGnKWhH1A+9N9rKxS4eM+AzczgMWp272ZM9lQv4zLTrH5NRST2ltY3nmZ72wkfFrSR0rECi0g==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.200.0" @@ -10318,8 +10155,6 @@ }, "node_modules/@opentelemetry/instrumentation-grpc": { "version": "0.200.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-grpc/-/instrumentation-grpc-0.200.0.tgz", - "integrity": "sha512-iaPHlO1qb1WlGUq0oTx0rJND/BtBeTAtyEfflu2VwKDe8XZeia7UEOfiSQxnGqVSTwW5F0P1S5UzqeDJotreWQ==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "0.200.0", @@ -10334,8 +10169,6 @@ }, "node_modules/@opentelemetry/instrumentation-hapi": { "version": "0.46.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-hapi/-/instrumentation-hapi-0.46.0.tgz", - "integrity": "sha512-573y+ZxywEcq+3+Z3KqcbV45lrVwUKvQiP9OhABVFNX8wHbtM6DPRBmYfqiUkSbIBcOEihm5qH6Gs73Xq0RBEA==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^2.0.0", @@ -10351,8 +10184,6 @@ }, "node_modules/@opentelemetry/instrumentation-http": { "version": "0.200.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-http/-/instrumentation-http-0.200.0.tgz", - "integrity": "sha512-9tqGbCJikhYU68y3k9mi6yWsMyMeCcwoQuHvIXan5VvvPPQ5WIZaV6Mxu/MCVe4swRNoFs8Th+qyj0TZV5ELvw==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "2.0.0", @@ -10369,8 +10200,6 @@ }, "node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.0.0.tgz", - "integrity": "sha512-SLX36allrcnVaPYG3R78F/UZZsBsvbc7lMCLx37LyH5MJ1KAAZ2E3mW9OAD3zGz0G8q/BtoS5VUrjzDydhD6LQ==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/semantic-conventions": "^1.29.0" @@ -10384,8 +10213,6 @@ }, "node_modules/@opentelemetry/instrumentation-ioredis": { "version": "0.48.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-ioredis/-/instrumentation-ioredis-0.48.0.tgz", - "integrity": "sha512-kQhdrn/CAfJIObqbyyGtagWNxPvglJ9FwnWmsfXKodaGskJv/nyvdC9yIcgwzjbkG1pokVUROrvJ0mizqm29Tg==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.200.0", @@ -10401,8 +10228,6 @@ }, "node_modules/@opentelemetry/instrumentation-kafkajs": { "version": "0.9.2", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-kafkajs/-/instrumentation-kafkajs-0.9.2.tgz", - "integrity": "sha512-aRnrLK3gQv6LP64oiXEDdRVwxNe7AvS98SCtNWEGhHy4nv3CdxpN7b7NU53g3PCF7uPQZ1fVW2C6Xc2tt1SIkg==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.200.0", @@ -10417,8 +10242,6 @@ }, "node_modules/@opentelemetry/instrumentation-knex": { "version": "0.45.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-knex/-/instrumentation-knex-0.45.0.tgz", - "integrity": "sha512-2kkyTDUzK/3G3jxTc+NqHSdgi1Mjw2irZ98T/cSyNdlbsnDOMSTHjbm0AxJCV4QYQ4cKW7a8W/BBgxDGlu+mXQ==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.200.0", @@ -10433,8 +10256,6 @@ }, "node_modules/@opentelemetry/instrumentation-koa": { "version": "0.48.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-koa/-/instrumentation-koa-0.48.0.tgz", - "integrity": "sha512-LV63v3pxFpjKC0IJO+y5nsGdcH+9Y8Wnn0fhu673XZ5auxqJk2t4nIHuSmls08oRKaX+5q1e+h70XmP/45NJsw==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^2.0.0", @@ -10450,8 +10271,6 @@ }, "node_modules/@opentelemetry/instrumentation-lru-memoizer": { "version": "0.45.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-lru-memoizer/-/instrumentation-lru-memoizer-0.45.0.tgz", - "integrity": "sha512-W2MNx7hPtvSIgEFxFrqdBykdfN0UrShCbJxvMU9fwgqbOdxIrcubPt0i1vmy3Ap6QwSi+HmsRNQD2w3ucbLG3A==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.200.0" @@ -10465,8 +10284,6 @@ }, "node_modules/@opentelemetry/instrumentation-memcached": { "version": "0.44.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-memcached/-/instrumentation-memcached-0.44.0.tgz", - "integrity": "sha512-1zABdJlF9Tk0yUv2ELpF6Mk2kw81k+bnB3Sw+D/ssRDcGGCnCNbz+fKJE8dwAPkDP+OcTmiKm6ySREbcyRFzCg==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.200.0", @@ -10482,8 +10299,6 @@ }, "node_modules/@opentelemetry/instrumentation-mongodb": { "version": "0.53.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongodb/-/instrumentation-mongodb-0.53.0.tgz", - "integrity": "sha512-zS2gQJQuG7RZw5yaNG/TnxsOtv1fFkn3ypuDrVLJtJLZtcOr4GYn31jbIA8od+QW/ChZLVcH364iDs+z/xS9wA==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.200.0", @@ -10498,8 +10313,6 @@ }, "node_modules/@opentelemetry/instrumentation-mongoose": { "version": "0.47.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongoose/-/instrumentation-mongoose-0.47.1.tgz", - "integrity": "sha512-0OcL5YpZX9PtF55Oi1RtWUdjElJscR9u6NzAdww81EQc3wFfQWmdREUEBeWaDH5jpiomdFp6zDXms622ofEOjg==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^2.0.0", @@ -10515,8 +10328,6 @@ }, "node_modules/@opentelemetry/instrumentation-mysql": { "version": "0.46.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql/-/instrumentation-mysql-0.46.0.tgz", - "integrity": "sha512-Z1NDAv07suIukgL7kxk9cAQX1t/smRMLNOU+q5Aqnhnf/0FIF/N4cX2wg+25IWy0m2PoaPbAVYCKB0aOt5vzAw==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.200.0", @@ -10532,8 +10343,6 @@ }, "node_modules/@opentelemetry/instrumentation-mysql2": { "version": "0.46.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql2/-/instrumentation-mysql2-0.46.0.tgz", - "integrity": "sha512-JsmIA+aTfHqy2tahjnVWChRipYpYrTy+XFAuUPia9CTaspCx8ZrirPUqYnbnaPEtnzYff2a4LX0B2LT1hKlOiA==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.200.0", @@ -10549,8 +10358,6 @@ }, "node_modules/@opentelemetry/instrumentation-nestjs-core": { "version": "0.46.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-nestjs-core/-/instrumentation-nestjs-core-0.46.0.tgz", - "integrity": "sha512-5cYnBIMZuTSLFUt0pMH+NQNdI5/2YeCVuz29Mo2lkudbBUOvzGmzl/Y6LG1JEw2j6zuJx5IgO5CKNrJqAIzTWA==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.200.0", @@ -10565,8 +10372,6 @@ }, "node_modules/@opentelemetry/instrumentation-net": { "version": "0.44.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-net/-/instrumentation-net-0.44.0.tgz", - "integrity": "sha512-SmAbOKTi0lgdTN9XMXOaf+4jw670MpiK3pw9/to/kRlTvNWwWA4RD34trCcoL7Gf2IYoXuj56Oo4Z5C7N98ukw==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.200.0", @@ -10581,8 +10386,6 @@ }, "node_modules/@opentelemetry/instrumentation-pg": { "version": "0.52.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pg/-/instrumentation-pg-0.52.0.tgz", - "integrity": "sha512-OBpqlxTqmFkZGHaHV4Pzd95HkyKVS+vf0N5wVX3BSb8uqsvOrW62I1qt+2jNsZ13dtG5eOzvcsQTMGND76wizA==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^2.0.0", @@ -10601,8 +10404,6 @@ }, "node_modules/@opentelemetry/instrumentation-pino": { "version": "0.47.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pino/-/instrumentation-pino-0.47.0.tgz", - "integrity": "sha512-OFOy/TGtGXMYWrF4xPKhLN1evdqUpbuoKODzeh3GSjFkcooZZf4m/Hpzu12FV+s0wDBf43oAjXbNJWeCJQMrug==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/api-logs": "^0.200.0", @@ -10618,8 +10419,6 @@ }, "node_modules/@opentelemetry/instrumentation-redis": { "version": "0.47.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-redis/-/instrumentation-redis-0.47.0.tgz", - "integrity": "sha512-T2YvuX/LaJEQKgKvIQJlbSMSzxp6oBm+9PMgfn7QcBXzSY9tyeyDF6QjLAKNvxs+BJeQzFmDlahjoEyatzxRWA==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.200.0", @@ -10635,8 +10434,6 @@ }, "node_modules/@opentelemetry/instrumentation-redis-4": { "version": "0.47.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-redis-4/-/instrumentation-redis-4-0.47.0.tgz", - "integrity": "sha512-9LywJGp1fmmLj6g1+Rv91pVE3ATle1C/qIya9ZLwPywXTOdFIARI/gvvvlI7uFABoLojj2dSaI/5JQrq4C1HSg==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.200.0", @@ -10652,8 +10449,6 @@ }, "node_modules/@opentelemetry/instrumentation-restify": { "version": "0.46.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-restify/-/instrumentation-restify-0.46.0.tgz", - "integrity": "sha512-du1FjKsTGQH6q8QjG0Bxlg0L79Co/Ey0btKKb2sg7fvg0YX6LKdR2N1fzfne/A9k+WjQ5v28JuUXOk2cEPYU/Q==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^2.0.0", @@ -10669,8 +10464,6 @@ }, "node_modules/@opentelemetry/instrumentation-router": { "version": "0.45.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-router/-/instrumentation-router-0.45.0.tgz", - "integrity": "sha512-CGEeT73Wy/nLQw+obG/mBCIgMbZQKrGG6hzbEdtQ4G2jqI97w7pLWdM4DvkpWVBNcxMpO13dX1nn2OiyZXND3Q==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.200.0", @@ -10685,8 +10478,6 @@ }, "node_modules/@opentelemetry/instrumentation-runtime-node": { "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-runtime-node/-/instrumentation-runtime-node-0.14.0.tgz", - "integrity": "sha512-y78dGoFMKwHSz0SD113Gt1dFTcfunpPZXIJh2SzJN27Lyb9FIzuMfjc3Iu3+s/N6qNOLuS9mKnPe3/qVGG4Waw==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.200.0" @@ -10700,8 +10491,6 @@ }, "node_modules/@opentelemetry/instrumentation-socket.io": { "version": "0.47.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-socket.io/-/instrumentation-socket.io-0.47.0.tgz", - "integrity": "sha512-qAc+XCcRmZYjs8KJIPv+MMR2wPPPOppwoarzKRR4G+yvOBs1xMwbbkqNHifKga0XcfFX4KVr7Z5QQ6ZZzWyLtg==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.200.0", @@ -10716,8 +10505,6 @@ }, "node_modules/@opentelemetry/instrumentation-tedious": { "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-tedious/-/instrumentation-tedious-0.19.0.tgz", - "integrity": "sha512-hNC/Bz+g4RvwaKsbA1VD+9x8X2Ml+fN2uba4dniIdQIrAItLdet4xx/7TEoWYtyVJQozphvpnIsUp52Rw4djCA==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.200.0", @@ -10733,8 +10520,6 @@ }, "node_modules/@opentelemetry/instrumentation-undici": { "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-undici/-/instrumentation-undici-0.11.0.tgz", - "integrity": "sha512-H6ijJnKVZBB0Lhm6NsaBt0rUz+i52LriLhrpGAE8SazB0jCIVY4MrL2dNib/4w8zA+Fw9zFwERJvKXUIbSD1ew==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^2.0.0", @@ -10749,8 +10534,6 @@ }, "node_modules/@opentelemetry/instrumentation-winston": { "version": "0.45.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-winston/-/instrumentation-winston-0.45.0.tgz", - "integrity": "sha512-LZz3/6QvzoneSqD/xnB8wq/g1fy8oe2PwfZ15zS2YA5mnjuSqlqgl+k3sib7wfIYHMP1D3ajfbDB6UOJBALj/w==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/api-logs": "^0.200.0", @@ -10765,8 +10548,6 @@ }, "node_modules/@opentelemetry/otlp-exporter-base": { "version": "0.200.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.200.0.tgz", - "integrity": "sha512-IxJgA3FD7q4V6gGq4bnmQM5nTIyMDkoGFGrBrrDjB6onEiq1pafma55V+bHvGYLWvcqbBbRfezr1GED88lacEQ==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "2.0.0", @@ -10781,8 +10562,6 @@ }, "node_modules/@opentelemetry/otlp-exporter-base/node_modules/@opentelemetry/core": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.0.0.tgz", - "integrity": "sha512-SLX36allrcnVaPYG3R78F/UZZsBsvbc7lMCLx37LyH5MJ1KAAZ2E3mW9OAD3zGz0G8q/BtoS5VUrjzDydhD6LQ==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/semantic-conventions": "^1.29.0" @@ -10796,8 +10575,6 @@ }, "node_modules/@opentelemetry/otlp-grpc-exporter-base": { "version": "0.200.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-grpc-exporter-base/-/otlp-grpc-exporter-base-0.200.0.tgz", - "integrity": "sha512-CK2S+bFgOZ66Bsu5hlDeOX6cvW5FVtVjFFbWuaJP0ELxJKBB6HlbLZQ2phqz/uLj1cWap5xJr/PsR3iGoB7Vqw==", "license": "Apache-2.0", "dependencies": { "@grpc/grpc-js": "^1.7.1", @@ -10814,8 +10591,6 @@ }, "node_modules/@opentelemetry/otlp-grpc-exporter-base/node_modules/@opentelemetry/core": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.0.0.tgz", - "integrity": "sha512-SLX36allrcnVaPYG3R78F/UZZsBsvbc7lMCLx37LyH5MJ1KAAZ2E3mW9OAD3zGz0G8q/BtoS5VUrjzDydhD6LQ==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/semantic-conventions": "^1.29.0" @@ -10829,8 +10604,6 @@ }, "node_modules/@opentelemetry/otlp-transformer": { "version": "0.200.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.200.0.tgz", - "integrity": "sha512-+9YDZbYybOnv7sWzebWOeK6gKyt2XE7iarSyBFkwwnP559pEevKOUD8NyDHhRjCSp13ybh9iVXlMfcj/DwF/yw==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/api-logs": "0.200.0", @@ -10850,8 +10623,6 @@ }, "node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/core": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.0.0.tgz", - "integrity": "sha512-SLX36allrcnVaPYG3R78F/UZZsBsvbc7lMCLx37LyH5MJ1KAAZ2E3mW9OAD3zGz0G8q/BtoS5VUrjzDydhD6LQ==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/semantic-conventions": "^1.29.0" @@ -10865,8 +10636,6 @@ }, "node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/resources": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.0.0.tgz", - "integrity": "sha512-rnZr6dML2z4IARI4zPGQV4arDikF/9OXZQzrC01dLmn0CZxU5U5OLd/m1T7YkGRj5UitjeoCtg/zorlgMQcdTg==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "2.0.0", @@ -10881,8 +10650,6 @@ }, "node_modules/@opentelemetry/propagation-utils": { "version": "0.31.3", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagation-utils/-/propagation-utils-0.31.3.tgz", - "integrity": "sha512-ZI6LKjyo+QYYZY5SO8vfoCQ9A69r1/g+pyjvtu5RSK38npINN1evEmwqbqhbg2CdcIK3a4PN6pDAJz/yC5/gAA==", "license": "Apache-2.0", "engines": { "node": "^18.19.0 || >=20.6.0" @@ -10893,8 +10660,6 @@ }, "node_modules/@opentelemetry/propagator-b3": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-b3/-/propagator-b3-2.0.0.tgz", - "integrity": "sha512-blx9S2EI49Ycuw6VZq+bkpaIoiJFhsDuvFGhBIoH3vJ5oYjJ2U0s3fAM5jYft99xVIAv6HqoPtlP9gpVA2IZtA==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "2.0.0" @@ -10908,8 +10673,6 @@ }, "node_modules/@opentelemetry/propagator-b3/node_modules/@opentelemetry/core": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.0.0.tgz", - "integrity": "sha512-SLX36allrcnVaPYG3R78F/UZZsBsvbc7lMCLx37LyH5MJ1KAAZ2E3mW9OAD3zGz0G8q/BtoS5VUrjzDydhD6LQ==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/semantic-conventions": "^1.29.0" @@ -10923,8 +10686,6 @@ }, "node_modules/@opentelemetry/propagator-jaeger": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-jaeger/-/propagator-jaeger-2.0.0.tgz", - "integrity": "sha512-Mbm/LSFyAtQKP0AQah4AfGgsD+vsZcyreZoQ5okFBk33hU7AquU4TltgyL9dvaO8/Zkoud8/0gEvwfOZ5d7EPA==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "2.0.0" @@ -10938,8 +10699,6 @@ }, "node_modules/@opentelemetry/propagator-jaeger/node_modules/@opentelemetry/core": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.0.0.tgz", - "integrity": "sha512-SLX36allrcnVaPYG3R78F/UZZsBsvbc7lMCLx37LyH5MJ1KAAZ2E3mW9OAD3zGz0G8q/BtoS5VUrjzDydhD6LQ==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/semantic-conventions": "^1.29.0" @@ -10953,8 +10712,6 @@ }, "node_modules/@opentelemetry/redis-common": { "version": "0.37.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/redis-common/-/redis-common-0.37.0.tgz", - "integrity": "sha512-tJwgE6jt32bLs/9J6jhQRKU2EZnsD8qaO13aoFyXwF6s4LhpT7YFHf3Z03MqdILk6BA2BFUhoyh7k9fj9i032A==", "license": "Apache-2.0", "engines": { "node": "^18.19.0 || >=20.6.0" @@ -10962,8 +10719,6 @@ }, "node_modules/@opentelemetry/resource-detector-alibaba-cloud": { "version": "0.31.3", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-alibaba-cloud/-/resource-detector-alibaba-cloud-0.31.3.tgz", - "integrity": "sha512-I556LHcLVsBXEgnbPgQISP/JezDt5OfpgOaJNR1iVJl202r+K145OSSOxnH5YOc/KvrydBD0FOE03F7x0xnVTw==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^2.0.0", @@ -10979,8 +10734,6 @@ }, "node_modules/@opentelemetry/resource-detector-aws": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-aws/-/resource-detector-aws-2.3.0.tgz", - "integrity": "sha512-PkD/lyXG3B3REq1Y6imBLckljkJYXavtqGYSryAeJYvGOf5Ds3doR+BCGjmKeF6ObAtI5MtpBeUStTDtGtBsWA==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^2.0.0", @@ -10996,8 +10749,6 @@ }, "node_modules/@opentelemetry/resource-detector-azure": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-azure/-/resource-detector-azure-0.7.0.tgz", - "integrity": "sha512-aR2ALsK+b/+5lLDhK9KTK8rcuKg7+sqa/Cg+QCeasqoy7qby70FRtAbQcZGljJ5BLBcVPYjl1hcTYIUyL3Laww==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^2.0.0", @@ -11013,8 +10764,6 @@ }, "node_modules/@opentelemetry/resource-detector-container": { "version": "0.7.3", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-container/-/resource-detector-container-0.7.3.tgz", - "integrity": "sha512-SK+xUFw6DKYbQniaGmIFsFxAZsr8RpRSRWxKi5/ZJAoqqPnjcyGI/SeUx8zzPk4XLO084zyM4pRHgir0hRTaSQ==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^2.0.0", @@ -11030,8 +10779,6 @@ }, "node_modules/@opentelemetry/resource-detector-gcp": { "version": "0.34.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-gcp/-/resource-detector-gcp-0.34.0.tgz", - "integrity": "sha512-Mug9Oing1nVQE8pYT33UKuPSEa/wjQTMk3feS9F84h4U7oZIx5Mz3yddj3OHOPgrW/7d1Ve/mG7jmYqBI9tpTg==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^2.0.0", @@ -11048,8 +10795,6 @@ }, "node_modules/@opentelemetry/resources": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.0.1.tgz", - "integrity": "sha512-dZOB3R6zvBwDKnHDTB4X1xtMArB/d324VsbiPkX/Yu0Q8T2xceRthoIVFhJdvgVM2QhGVUyX9tzwiNxGtoBJUw==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "2.0.1", @@ -11064,8 +10809,6 @@ }, "node_modules/@opentelemetry/sdk-logs": { "version": "0.200.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.200.0.tgz", - "integrity": "sha512-VZG870063NLfObmQQNtCVcdXXLzI3vOjjrRENmU37HYiPFa0ZXpXVDsTD02Nh3AT3xYJzQaWKl2X2lQ2l7TWJA==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/api-logs": "0.200.0", @@ -11081,8 +10824,6 @@ }, "node_modules/@opentelemetry/sdk-logs/node_modules/@opentelemetry/core": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.0.0.tgz", - "integrity": "sha512-SLX36allrcnVaPYG3R78F/UZZsBsvbc7lMCLx37LyH5MJ1KAAZ2E3mW9OAD3zGz0G8q/BtoS5VUrjzDydhD6LQ==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/semantic-conventions": "^1.29.0" @@ -11096,8 +10837,6 @@ }, "node_modules/@opentelemetry/sdk-logs/node_modules/@opentelemetry/resources": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.0.0.tgz", - "integrity": "sha512-rnZr6dML2z4IARI4zPGQV4arDikF/9OXZQzrC01dLmn0CZxU5U5OLd/m1T7YkGRj5UitjeoCtg/zorlgMQcdTg==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "2.0.0", @@ -11112,8 +10851,6 @@ }, "node_modules/@opentelemetry/sdk-metrics": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-2.0.0.tgz", - "integrity": "sha512-Bvy8QDjO05umd0+j+gDeWcTaVa1/R2lDj/eOvjzpm8VQj1K1vVZJuyjThpV5/lSHyYW2JaHF2IQ7Z8twJFAhjA==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "2.0.0", @@ -11128,8 +10865,6 @@ }, "node_modules/@opentelemetry/sdk-metrics/node_modules/@opentelemetry/core": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.0.0.tgz", - "integrity": "sha512-SLX36allrcnVaPYG3R78F/UZZsBsvbc7lMCLx37LyH5MJ1KAAZ2E3mW9OAD3zGz0G8q/BtoS5VUrjzDydhD6LQ==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/semantic-conventions": "^1.29.0" @@ -11143,8 +10878,6 @@ }, "node_modules/@opentelemetry/sdk-metrics/node_modules/@opentelemetry/resources": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.0.0.tgz", - "integrity": "sha512-rnZr6dML2z4IARI4zPGQV4arDikF/9OXZQzrC01dLmn0CZxU5U5OLd/m1T7YkGRj5UitjeoCtg/zorlgMQcdTg==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "2.0.0", @@ -11159,8 +10892,6 @@ }, "node_modules/@opentelemetry/sdk-node": { "version": "0.200.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-node/-/sdk-node-0.200.0.tgz", - "integrity": "sha512-S/YSy9GIswnhYoDor1RusNkmRughipvTCOQrlF1dzI70yQaf68qgf5WMnzUxdlCl3/et/pvaO75xfPfuEmCK5A==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/api-logs": "0.200.0", @@ -11195,8 +10926,6 @@ }, "node_modules/@opentelemetry/sdk-node/node_modules/@opentelemetry/core": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.0.0.tgz", - "integrity": "sha512-SLX36allrcnVaPYG3R78F/UZZsBsvbc7lMCLx37LyH5MJ1KAAZ2E3mW9OAD3zGz0G8q/BtoS5VUrjzDydhD6LQ==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/semantic-conventions": "^1.29.0" @@ -11210,8 +10939,6 @@ }, "node_modules/@opentelemetry/sdk-node/node_modules/@opentelemetry/resources": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.0.0.tgz", - "integrity": "sha512-rnZr6dML2z4IARI4zPGQV4arDikF/9OXZQzrC01dLmn0CZxU5U5OLd/m1T7YkGRj5UitjeoCtg/zorlgMQcdTg==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "2.0.0", @@ -11226,8 +10953,6 @@ }, "node_modules/@opentelemetry/sdk-trace-base": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-2.0.0.tgz", - "integrity": "sha512-qQnYdX+ZCkonM7tA5iU4fSRsVxbFGml8jbxOgipRGMFHKaXKHQ30js03rTobYjKjIfnOsZSbHKWF0/0v0OQGfw==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "2.0.0", @@ -11243,8 +10968,6 @@ }, "node_modules/@opentelemetry/sdk-trace-base/node_modules/@opentelemetry/core": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.0.0.tgz", - "integrity": "sha512-SLX36allrcnVaPYG3R78F/UZZsBsvbc7lMCLx37LyH5MJ1KAAZ2E3mW9OAD3zGz0G8q/BtoS5VUrjzDydhD6LQ==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/semantic-conventions": "^1.29.0" @@ -11258,8 +10981,6 @@ }, "node_modules/@opentelemetry/sdk-trace-base/node_modules/@opentelemetry/resources": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.0.0.tgz", - "integrity": "sha512-rnZr6dML2z4IARI4zPGQV4arDikF/9OXZQzrC01dLmn0CZxU5U5OLd/m1T7YkGRj5UitjeoCtg/zorlgMQcdTg==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "2.0.0", @@ -11274,8 +10995,6 @@ }, "node_modules/@opentelemetry/sdk-trace-node": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-node/-/sdk-trace-node-2.0.0.tgz", - "integrity": "sha512-omdilCZozUjQwY3uZRBwbaRMJ3p09l4t187Lsdf0dGMye9WKD4NGcpgZRvqhI1dwcH6og+YXQEtoO9Wx3ykilg==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/context-async-hooks": "2.0.0", @@ -11291,8 +11010,6 @@ }, "node_modules/@opentelemetry/sdk-trace-node/node_modules/@opentelemetry/core": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.0.0.tgz", - "integrity": "sha512-SLX36allrcnVaPYG3R78F/UZZsBsvbc7lMCLx37LyH5MJ1KAAZ2E3mW9OAD3zGz0G8q/BtoS5VUrjzDydhD6LQ==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/semantic-conventions": "^1.29.0" @@ -11306,8 +11023,6 @@ }, "node_modules/@opentelemetry/semantic-conventions": { "version": "1.36.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.36.0.tgz", - "integrity": "sha512-TtxJSRD8Ohxp6bKkhrm27JRHAxPczQA7idtcTOMYI+wQRRrfgqxHv1cFbCApcSnNjtXkmzFozn6jQtFrOmbjPQ==", "license": "Apache-2.0", "engines": { "node": ">=14" @@ -11315,8 +11030,6 @@ }, "node_modules/@opentelemetry/sql-common": { "version": "0.41.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sql-common/-/sql-common-0.41.0.tgz", - "integrity": "sha512-pmzXctVbEERbqSfiAgdes9Y63xjoOyXcD7B6IXBkVb+vbM7M9U98mn33nGXxPf4dfYR0M+vhcKRZmbSJ7HfqFA==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^2.0.0" @@ -11355,32 +11068,22 @@ }, "node_modules/@protobufjs/aspromise": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", "license": "BSD-3-Clause" }, "node_modules/@protobufjs/base64": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", "license": "BSD-3-Clause" }, "node_modules/@protobufjs/codegen": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", "license": "BSD-3-Clause" }, "node_modules/@protobufjs/eventemitter": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", "license": "BSD-3-Clause" }, "node_modules/@protobufjs/fetch": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.1", @@ -11389,32 +11092,22 @@ }, "node_modules/@protobufjs/float": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", "license": "BSD-3-Clause" }, "node_modules/@protobufjs/inquire": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", "license": "BSD-3-Clause" }, "node_modules/@protobufjs/path": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", "license": "BSD-3-Clause" }, "node_modules/@protobufjs/pool": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", "license": "BSD-3-Clause" }, "node_modules/@protobufjs/utf8": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", "license": "BSD-3-Clause" }, "node_modules/@puppeteer/browsers": { @@ -12934,8 +12627,6 @@ }, "node_modules/@types/aws-lambda": { "version": "8.10.147", - "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.147.tgz", - "integrity": "sha512-nD0Z9fNIZcxYX5Mai2CTmFD7wX7UldCkW2ezCF8D1T5hdiLsnTWDGRpfRYntU6VjTdLQjOvyszru7I1c1oCQew==", "license": "MIT" }, "node_modules/@types/babel__core": { @@ -12973,8 +12664,6 @@ }, "node_modules/@types/bunyan": { "version": "1.8.11", - "resolved": "https://registry.npmjs.org/@types/bunyan/-/bunyan-1.8.11.tgz", - "integrity": "sha512-758fRH7umIMk5qt5ELmRMff4mLDlN+xyYzC+dkPTdKwbSkJFvz6xwyScrytPU0QIBbRRwbiE8/BIg8bpajerNQ==", "license": "MIT", "dependencies": { "@types/node": "*" @@ -13001,8 +12690,6 @@ }, "node_modules/@types/connect": { "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", - "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", "license": "MIT", "dependencies": { "@types/node": "*" @@ -13225,8 +12912,6 @@ }, "node_modules/@types/memcached": { "version": "2.2.10", - "resolved": "https://registry.npmjs.org/@types/memcached/-/memcached-2.2.10.tgz", - "integrity": "sha512-AM9smvZN55Gzs2wRrqeMHVP7KE8KWgCJO/XL5yCly2xF6EKa4YlbpK+cLSAH4NG/Ah64HrlegmGqW8kYws7Vxg==", "license": "MIT", "dependencies": { "@types/node": "*" @@ -13254,8 +12939,6 @@ }, "node_modules/@types/mysql": { "version": "2.15.26", - "resolved": "https://registry.npmjs.org/@types/mysql/-/mysql-2.15.26.tgz", - "integrity": "sha512-DSLCOXhkvfS5WNNPbfn2KdICAmk8lLc+/PNvnPnF7gOdMZCxopXduqv0OQ13y/yA/zXTSikZZqVgybUxOEg6YQ==", "license": "MIT", "dependencies": { "@types/node": "*" @@ -13373,8 +13056,6 @@ }, "node_modules/@types/pg": { "version": "8.6.1", - "resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.6.1.tgz", - "integrity": "sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==", "license": "MIT", "dependencies": { "@types/node": "*", @@ -13384,8 +13065,6 @@ }, "node_modules/@types/pg-pool": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/pg-pool/-/pg-pool-2.0.6.tgz", - "integrity": "sha512-TaAUE5rq2VQYxab5Ts7WZhKNmuN78Q6PiFonTDdpbx8a1H0M1vhy3rhiMjl+e2iHmogyMw7jZF4FrE6eJUy5HQ==", "license": "MIT", "dependencies": { "@types/pg": "*" @@ -13424,8 +13103,6 @@ }, "node_modules/@types/shimmer": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@types/shimmer/-/shimmer-1.2.0.tgz", - "integrity": "sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==", "license": "MIT" }, "node_modules/@types/sinonjs__fake-timers": { @@ -13446,8 +13123,6 @@ }, "node_modules/@types/tedious": { "version": "4.0.14", - "resolved": "https://registry.npmjs.org/@types/tedious/-/tedious-4.0.14.tgz", - "integrity": "sha512-KHPsfX/FoVbUGbyYvk1q9MMQHLPeRZhRJZdO45Q4YjvFkv4hMNghCWTvy7rdKessBsmtz4euWCWAB6/tVpI1Iw==", "license": "MIT", "dependencies": { "@types/node": "*" @@ -14058,8 +13733,6 @@ }, "node_modules/acorn-import-attributes": { "version": "1.9.5", - "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", - "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", "license": "MIT", "peerDependencies": { "acorn": "^8" @@ -14963,8 +14636,6 @@ }, "node_modules/bignumber.js": { "version": "9.3.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.1.tgz", - "integrity": "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==", "license": "MIT", "engines": { "node": "*" @@ -18502,8 +18173,6 @@ }, "node_modules/extend": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "license": "MIT" }, "node_modules/external-editor": { @@ -19026,8 +18695,6 @@ }, "node_modules/forwarded-parse": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/forwarded-parse/-/forwarded-parse-2.1.2.tgz", - "integrity": "sha512-alTFZZQDKMporBH77856pXgzhEzaUVmLCDk+egLgIgHst3Tpndzz8MnKe+GzRJRfvVdn69HhpW7cmXzvtLvJAw==", "license": "MIT" }, "node_modules/fs-constants": { @@ -19091,8 +18758,6 @@ }, "node_modules/ft-next-router": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/ft-next-router/-/ft-next-router-4.0.3.tgz", - "integrity": "sha512-fxrDPh348qbjFS58sFuIHokDBxursvExSGmFiILlP3L5SN/rH3gkZLf2HJzOEbO7zTTp5dXamta2pycxhZZqXg==", "dependencies": { "@dotcom-reliability-kit/crash-handler": "^5.1.0", "@dotcom-reliability-kit/errors": "^4.1.0", @@ -19124,8 +18789,6 @@ }, "node_modules/ft-next-router/node_modules/@dotcom-reliability-kit/app-info": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@dotcom-reliability-kit/app-info/-/app-info-4.2.0.tgz", - "integrity": "sha512-rmD7UdcnNUa7s3rLRsQpupiqPOPkfR+SdnzhA8uCRTF+v/Ng3HFId7C6SiMhchA03c3Ndd1BGdOJEaZL0CjQZw==", "license": "MIT", "engines": { "node": "20.x || 22.x || 24.x" @@ -19133,8 +18796,6 @@ }, "node_modules/ft-next-router/node_modules/@dotcom-reliability-kit/logger": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@dotcom-reliability-kit/logger/-/logger-4.2.0.tgz", - "integrity": "sha512-d9b5Te8Jj2TqIZtwTnZFsxwM1CXFpA/KEUU4qbIlQwrQ6PT0bywQwMRrM/O2ivz2G7PmhZjwg3qg7b5l/mCcpA==", "license": "MIT", "dependencies": { "@dotcom-reliability-kit/app-info": "^4.2.0", @@ -19151,8 +18812,6 @@ }, "node_modules/ft-next-router/node_modules/@dotcom-reliability-kit/serialize-error": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@dotcom-reliability-kit/serialize-error/-/serialize-error-4.1.0.tgz", - "integrity": "sha512-K2V6gt7Q5PtlpfDk74Sr6R2Q9YmhXaw7fdDoTF316apwnU53ybzzQvLVvwufRvnzevQM8VPxouxYt8QhyBE0lA==", "license": "MIT", "engines": { "node": "20.x || 22.x || 24.x" @@ -19160,8 +18819,6 @@ }, "node_modules/ft-next-router/node_modules/pino": { "version": "9.8.0", - "resolved": "https://registry.npmjs.org/pino/-/pino-9.8.0.tgz", - "integrity": "sha512-L5+rV1wL7vGAcxXP7sPpN5lrJ07Piruka6ArXr7EWBXxdVWjJshGVX8suFsiusJVcGKDGUFfbgbnKdg+VAC+0g==", "license": "MIT", "dependencies": { "atomic-sleep": "^1.0.0", @@ -19182,8 +18839,6 @@ }, "node_modules/ft-next-router/node_modules/pino-abstract-transport": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz", - "integrity": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==", "license": "MIT", "dependencies": { "split2": "^4.0.0" @@ -19191,14 +18846,10 @@ }, "node_modules/ft-next-router/node_modules/pino-std-serializers": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz", - "integrity": "sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==", "license": "MIT" }, "node_modules/ft-next-router/node_modules/process-warning": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-5.0.0.tgz", - "integrity": "sha512-a39t9ApHNx2L4+HBnQKqxxHNs1r7KF+Intd8Q/g1bUh6q0WIp9voPXJ/x0j+ZL45KF1pJd9+q2jLIRMfvEshkA==", "funding": [ { "type": "github", @@ -19213,8 +18864,6 @@ }, "node_modules/ft-next-router/node_modules/sonic-boom": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.2.0.tgz", - "integrity": "sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==", "license": "MIT", "dependencies": { "atomic-sleep": "^1.0.0" @@ -19222,8 +18871,6 @@ }, "node_modules/ft-next-router/node_modules/split2": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", - "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", "license": "ISC", "engines": { "node": ">= 10.x" @@ -19231,8 +18878,6 @@ }, "node_modules/ft-next-router/node_modules/thread-stream": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz", - "integrity": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==", "license": "MIT", "dependencies": { "real-require": "^0.2.0" @@ -19310,8 +18955,6 @@ }, "node_modules/gaxios": { "version": "6.7.1", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.7.1.tgz", - "integrity": "sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==", "license": "Apache-2.0", "dependencies": { "extend": "^3.0.2", @@ -19326,8 +18969,6 @@ }, "node_modules/gaxios/node_modules/agent-base": { "version": "7.1.4", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", - "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", "license": "MIT", "engines": { "node": ">= 14" @@ -19335,8 +18976,6 @@ }, "node_modules/gaxios/node_modules/https-proxy-agent": { "version": "7.0.6", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", - "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", "license": "MIT", "dependencies": { "agent-base": "^7.1.2", @@ -19348,8 +18987,6 @@ }, "node_modules/gcp-metadata": { "version": "6.1.1", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-6.1.1.tgz", - "integrity": "sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A==", "license": "Apache-2.0", "dependencies": { "gaxios": "^6.1.1", @@ -19770,8 +19407,6 @@ }, "node_modules/google-logging-utils": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/google-logging-utils/-/google-logging-utils-0.0.2.tgz", - "integrity": "sha512-NEgUnEcBiP5HrPzufUkBzJOD/Sxsco3rLNo1F1TNf7ieU8ryUzBhqba8r756CjLX7rn3fHl6iLEwPYuqpoKgQQ==", "license": "Apache-2.0", "engines": { "node": ">=14" @@ -20308,8 +19943,6 @@ }, "node_modules/import-in-the-middle": { "version": "1.14.2", - "resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.14.2.tgz", - "integrity": "sha512-5tCuY9BV8ujfOpwtAGgsTx9CGUapcFMEEyByLv1B+v2+6DhAcw+Zr0nhQT7uwaZ7DiourxFEscghOR8e1aPLQw==", "license": "Apache-2.0", "dependencies": { "acorn": "^8.14.0", @@ -22883,8 +22516,6 @@ }, "node_modules/json-bigint": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", - "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", "license": "MIT", "dependencies": { "bignumber.js": "^9.0.0" @@ -24158,8 +23789,6 @@ }, "node_modules/long": { "version": "5.3.2", - "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", - "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==", "license": "Apache-2.0" }, "node_modules/long-timeout": { @@ -24846,8 +24475,6 @@ }, "node_modules/module-details-from-path": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.4.tgz", - "integrity": "sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==", "license": "MIT" }, "node_modules/ms": { @@ -26822,8 +26449,6 @@ }, "node_modules/pg-int8": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", - "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", "license": "ISC", "engines": { "node": ">=4.0.0" @@ -26831,14 +26456,10 @@ }, "node_modules/pg-protocol": { "version": "1.10.3", - "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.10.3.tgz", - "integrity": "sha512-6DIBgBQaTKDJyxnXaLiLR8wBpQQcGWuAESkRBX/t6OwA8YsqP+iVSiond2EDy6Y/dsGk8rh/jtax3js5NeV7JQ==", "license": "MIT" }, "node_modules/pg-types": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", - "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", "license": "MIT", "dependencies": { "pg-int8": "1.0.1", @@ -27080,8 +26701,6 @@ }, "node_modules/postgres-array": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", - "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", "license": "MIT", "engines": { "node": ">=4" @@ -27089,8 +26708,6 @@ }, "node_modules/postgres-bytea": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", - "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", "license": "MIT", "engines": { "node": ">=0.10.0" @@ -27098,8 +26715,6 @@ }, "node_modules/postgres-date": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", - "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", "license": "MIT", "engines": { "node": ">=0.10.0" @@ -27107,8 +26722,6 @@ }, "node_modules/postgres-interval": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", - "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", "license": "MIT", "dependencies": { "xtend": "^4.0.0" @@ -27246,8 +26859,6 @@ }, "node_modules/protobufjs": { "version": "7.5.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.3.tgz", - "integrity": "sha512-sildjKwVqOI2kmFDiXQ6aEB0fjYTafpEvIBs8tOR8qI4spuL9OPROLVu2qZqi/xgCfsHIwVqlaF8JBjWFHnKbw==", "hasInstallScript": true, "license": "BSD-3-Clause", "dependencies": { @@ -28079,8 +27690,6 @@ }, "node_modules/require-in-the-middle": { "version": "7.5.2", - "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-7.5.2.tgz", - "integrity": "sha512-gAZ+kLqBdHarXB64XpAe2VCjB7rIRv+mU8tfRWziHRJ5umKsIHN2tLLv6EtMw7WCdP19S0ERVMldNvxYCHnhSQ==", "license": "MIT", "dependencies": { "debug": "^4.3.5", @@ -28093,8 +27702,6 @@ }, "node_modules/require-in-the-middle/node_modules/debug": { "version": "4.4.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", - "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -28110,8 +27717,6 @@ }, "node_modules/require-in-the-middle/node_modules/ms": { "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "license": "MIT" }, "node_modules/requires-port": { @@ -28392,6 +27997,10 @@ "version": "2.1.2", "license": "MIT" }, + "node_modules/sandbox": { + "resolved": "core/sandbox", + "link": true + }, "node_modules/sax": { "version": "1.2.1", "license": "ISC", @@ -29419,8 +29028,6 @@ }, "node_modules/shimmer": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", - "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==", "license": "BSD-2-Clause" }, "node_modules/side-channel": { @@ -30090,8 +29697,6 @@ }, "node_modules/systeminformation": { "version": "5.23.8", - "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.23.8.tgz", - "integrity": "sha512-Osd24mNKe6jr/YoXLLK3k8TMdzaxDffhpCxgkfgBHcapykIkd50HXThM3TCEuHO2pPuCsSx2ms/SunqhU5MmsQ==", "license": "MIT", "os": [ "darwin", @@ -31005,8 +30610,6 @@ }, "node_modules/type-fest": { "version": "4.41.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", - "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { @@ -32372,7 +31975,7 @@ "@dotcom-tool-kit/base": "^1.3.0", "@dotcom-tool-kit/error": "^4.1.1", "@dotcom-tool-kit/state": "^4.3.2", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "engines": { "node": "18.x || 20.x || 22.x" @@ -32391,7 +31994,7 @@ "@dotcom-tool-kit/logger": "^4.2.2", "fast-glob": "^3.3.3", "tslib": "^2.8.1", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "devDependencies": { "@babel/preset-env": "^7.27.2", @@ -32454,7 +32057,7 @@ "lodash": "^4.17.21", "tslib": "^2.8.1", "yaml": "^2.8.0", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "devDependencies": { "@dotcom-tool-kit/plugin": "^1.1.0", @@ -32468,8 +32071,7 @@ "node": "18.x || 20.x || 22.x" }, "peerDependencies": { - "dotcom-tool-kit": "4.x", - "zod": "^3.24.4" + "dotcom-tool-kit": "4.x" } }, "plugins/circleci-deploy": { @@ -32512,7 +32114,7 @@ "license": "ISC", "dependencies": { "tslib": "^2.8.1", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "engines": { "node": "18.x || 20.x", @@ -32566,7 +32168,7 @@ "@dotcom-tool-kit/hako": "^0.1.21", "@dotcom-tool-kit/logger": "^4.2.2", "@dotcom-tool-kit/node": "^4.4.0", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "engines": { "node": "18.x || 20.x || 22.x" @@ -32583,7 +32185,7 @@ "@dotcom-tool-kit/containerised-app": "^0.3.2", "@dotcom-tool-kit/upload-assets-to-s3": "^4.3.7", "@dotcom-tool-kit/webpack": "^4.4.0", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "engines": { "node": "18.x || 20.x || 22.x" @@ -32602,7 +32204,7 @@ "@dotcom-tool-kit/logger": "^4.2.2", "@dotcom-tool-kit/package-json-hook": "^5.2.5", "@dotcom-tool-kit/state": "^4.3.2", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "engines": { "node": "18.x || 20.x || 22.x" @@ -32621,7 +32223,7 @@ "@dotcom-tool-kit/logger": "^4.2.2", "@dotcom-tool-kit/state": "^4.3.2", "tslib": "^2.8.1", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "engines": { "node": "18.x || 20.x || 22.x" @@ -32639,7 +32241,7 @@ "@dotcom-tool-kit/error": "^4.1.1", "@dotcom-tool-kit/logger": "^4.2.2", "tslib": "^2.8.1", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "devDependencies": { "@jest/globals": "^29.7.0", @@ -32683,7 +32285,7 @@ "@dotcom-tool-kit/logger": "^4.2.2", "@dotcom-tool-kit/state": "^4.3.2", "tslib": "^2.8.1", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "engines": { "node": "18.x || 20.x || 22.x" @@ -32710,7 +32312,7 @@ "heroku-client": "^3.1.0", "p-retry": "^4.5.0", "tslib": "^2.8.1", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "devDependencies": { "@types/financial-times__package-json": "^1.9.0", @@ -32748,7 +32350,7 @@ "@dotcom-tool-kit/base": "^1.3.0", "@dotcom-tool-kit/logger": "^4.2.2", "tslib": "^2.8.1", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "devDependencies": { "winston": "^3.17.0" @@ -32788,7 +32390,7 @@ "@dotcom-tool-kit/lint-staged": "^5.2.13", "@dotcom-tool-kit/package-json-hook": "^5.2.5", "tslib": "^2.8.1", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "engines": { "node": "18.x || 20.x || 22.x" @@ -32857,7 +32459,7 @@ "@dotcom-tool-kit/logger": "^4.2.2", "glob": "^10.4.5", "tslib": "^2.8.1", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "devDependencies": { "@jest/globals": "^29.7.0", @@ -32883,7 +32485,7 @@ "@npmcli/map-workspaces": "^4.0.2", "minimatch": "^10.0.3", "pluralize": "^8.0.0", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "devDependencies": { "@dotcom-tool-kit/config": "^1.1.1", @@ -32910,7 +32512,7 @@ "@dotcom-tool-kit/state": "^4.3.2", "@financial-times/n-test": "^8.1.0", "tslib": "^2.8.1", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "devDependencies": { "@jest/globals": "^29.7.0", @@ -32936,7 +32538,7 @@ "@dotcom-tool-kit/state": "^4.3.2", "ft-next-router": "^4.0.3", "tslib": "^2.8.1", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "engines": { "node": "18.x || 20.x || 22.x" @@ -32957,7 +32559,7 @@ "get-port": "^5.1.1", "tslib": "^2.8.1", "wait-port": "^1.1.0", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "engines": { "node": "18.x || 20.x || 22.x" @@ -32976,7 +32578,7 @@ "@dotcom-tool-kit/logger": "^4.2.2", "glob": "^10.4.5", "tslib": "^2.8.1", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "devDependencies": { "@types/node": "^20.17.28" @@ -33074,7 +32676,7 @@ "@dotcom-tool-kit/state": "^4.3.2", "get-port": "^5.1.1", "tslib": "^2.8.1", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "devDependencies": { "@types/nodemon": "^1.19.6" @@ -33304,7 +32906,7 @@ "@financial-times/package-json": "^4.0.0", "lodash": "^4.17.21", "tslib": "^2.8.1", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "devDependencies": { "@jest/globals": "^29.7.0", @@ -33313,9 +32915,6 @@ }, "engines": { "node": "18.x || 20.x || 22.x" - }, - "peerDependencies": { - "zod": "^3.24.4" } }, "plugins/parallel": { @@ -33345,7 +32944,7 @@ "fast-glob": "^3.3.3", "prettier": "^2.2.1", "tslib": "^2.8.1", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "devDependencies": { "@types/prettier": "^2.7.3", @@ -33376,7 +32975,7 @@ "get-port": "^5.1.1", "tslib": "^2.8.1", "wait-port": "^1.1.0", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "engines": { "node": "18.x || 20.x || 22.x" @@ -33393,7 +32992,7 @@ "dependencies": { "@dotcom-tool-kit/base": "^1.3.0", "@dotcom-tool-kit/logger": "^4.2.2", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "devDependencies": { "@jest/globals": "^29.7.0", @@ -33420,7 +33019,7 @@ "glob": "^10.4.5", "mime": "^3.0.0", "tslib": "^2.8.1", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "devDependencies": { "@jest/globals": "^29.7.0", @@ -33446,7 +33045,7 @@ "@dotcom-tool-kit/logger": "^4.2.2", "tslib": "^2.8.1", "webpack-cli": "^4.6.0", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "devDependencies": { "@jest/globals": "^29.7.0", diff --git a/plugins/aws/package.json b/plugins/aws/package.json index 1699088c3..8434aae0c 100644 --- a/plugins/aws/package.json +++ b/plugins/aws/package.json @@ -31,6 +31,6 @@ "@dotcom-tool-kit/base": "^1.3.0", "@dotcom-tool-kit/error": "^4.1.1", "@dotcom-tool-kit/state": "^4.3.2", - "zod": "^3.24.4" + "zod": "^3.25.76" } } diff --git a/plugins/aws/src/tasks/assume-role.ts b/plugins/aws/src/tasks/assume-role.ts index a402457ac..e44348b0d 100644 --- a/plugins/aws/src/tasks/assume-role.ts +++ b/plugins/aws/src/tasks/assume-role.ts @@ -1,6 +1,6 @@ import { AssumeRoleWithWebIdentityCommand, STSClient } from '@aws-sdk/client-sts' import { randomUUID } from 'node:crypto' -import * as z from 'zod' +import * as z from 'zod/v3' import { Task } from '@dotcom-tool-kit/base' import { ToolKitError } from '@dotcom-tool-kit/error' import { readState, writeState } from '@dotcom-tool-kit/state' diff --git a/plugins/babel/package.json b/plugins/babel/package.json index f95f14736..a658b6402 100644 --- a/plugins/babel/package.json +++ b/plugins/babel/package.json @@ -21,7 +21,7 @@ "@dotcom-tool-kit/logger": "^4.2.2", "fast-glob": "^3.3.3", "tslib": "^2.8.1", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "files": [ "/lib", diff --git a/plugins/babel/src/tasks/babel.ts b/plugins/babel/src/tasks/babel.ts index e813f960c..a20ebfa5c 100644 --- a/plugins/babel/src/tasks/babel.ts +++ b/plugins/babel/src/tasks/babel.ts @@ -3,7 +3,7 @@ import path from 'path' import * as babel from '@babel/core' import fg from 'fast-glob' -import { z } from 'zod' +import { z } from 'zod/v3' import { Task, TaskRunContext } from '@dotcom-tool-kit/base' import { ToolKitError } from '@dotcom-tool-kit/error' diff --git a/plugins/circleci/package.json b/plugins/circleci/package.json index 73ddd61d3..4146291de 100644 --- a/plugins/circleci/package.json +++ b/plugins/circleci/package.json @@ -16,7 +16,7 @@ "lodash": "^4.17.21", "tslib": "^2.8.1", "yaml": "^2.8.0", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "keywords": [], "author": "FT.com Platforms Team ", @@ -44,8 +44,7 @@ "extends": "../../package.json" }, "peerDependencies": { - "dotcom-tool-kit": "4.x", - "zod": "^3.24.4" + "dotcom-tool-kit": "4.x" }, "engines": { "node": "18.x || 20.x || 22.x" diff --git a/plugins/circleci/src/schemas/hook.ts b/plugins/circleci/src/schemas/hook.ts index 4baaeca1c..417388c6b 100644 --- a/plugins/circleci/src/schemas/hook.ts +++ b/plugins/circleci/src/schemas/hook.ts @@ -1,4 +1,4 @@ -import * as z from 'zod' +import * as z from 'zod/v3' export const CircleCiCustom = z.record(z.unknown()) export type CircleCiCustom = z.infer diff --git a/plugins/circleci/src/schemas/plugin.ts b/plugins/circleci/src/schemas/plugin.ts index 4e53faa5f..bc626a60b 100644 --- a/plugins/circleci/src/schemas/plugin.ts +++ b/plugins/circleci/src/schemas/plugin.ts @@ -1,5 +1,5 @@ import { styles as s } from '@dotcom-tool-kit/logger' -import * as z from 'zod' +import * as z from 'zod/v3' export default z .object({ diff --git a/plugins/cloudsmith/package.json b/plugins/cloudsmith/package.json index aef7a9ff8..f59d7edcc 100644 --- a/plugins/cloudsmith/package.json +++ b/plugins/cloudsmith/package.json @@ -29,6 +29,6 @@ }, "dependencies": { "tslib": "^2.8.1", - "zod": "^3.24.4" + "zod": "^3.25.76" } } diff --git a/plugins/cloudsmith/src/schema.ts b/plugins/cloudsmith/src/schema.ts index f1417c59e..72eaa6a9b 100644 --- a/plugins/cloudsmith/src/schema.ts +++ b/plugins/cloudsmith/src/schema.ts @@ -1,4 +1,4 @@ -import * as z from 'zod' +import * as z from 'zod/v3' export default z.object({ serviceAccount: z diff --git a/plugins/containerised-app-with-assets/package.json b/plugins/containerised-app-with-assets/package.json index 09a12b4e0..3b865db9c 100644 --- a/plugins/containerised-app-with-assets/package.json +++ b/plugins/containerised-app-with-assets/package.json @@ -28,6 +28,6 @@ "@dotcom-tool-kit/containerised-app": "^0.3.2", "@dotcom-tool-kit/upload-assets-to-s3": "^4.3.7", "@dotcom-tool-kit/webpack": "^4.4.0", - "zod": "^3.24.4" + "zod": "^3.25.76" } } diff --git a/plugins/containerised-app/package.json b/plugins/containerised-app/package.json index 71d3eaa18..a4e598f2d 100644 --- a/plugins/containerised-app/package.json +++ b/plugins/containerised-app/package.json @@ -34,6 +34,6 @@ "@dotcom-tool-kit/hako": "^0.1.21", "@dotcom-tool-kit/logger": "^4.2.2", "@dotcom-tool-kit/node": "^4.4.0", - "zod": "^3.24.4" + "zod": "^3.25.76" } } diff --git a/plugins/containerised-app/schema.js b/plugins/containerised-app/schema.js index d6d68753e..c8f927b14 100644 --- a/plugins/containerised-app/schema.js +++ b/plugins/containerised-app/schema.js @@ -1,4 +1,4 @@ -const z = require('zod') +const z = require('zod/v3') const { HakoEnvironmentName } = require('@dotcom-tool-kit/hako/lib/tasks/deploy') const { styles } = require('@dotcom-tool-kit/logger') diff --git a/plugins/cypress/package.json b/plugins/cypress/package.json index 430b84c5a..3ff742302 100644 --- a/plugins/cypress/package.json +++ b/plugins/cypress/package.json @@ -32,6 +32,6 @@ "@dotcom-tool-kit/logger": "^4.2.2", "@dotcom-tool-kit/package-json-hook": "^5.2.5", "@dotcom-tool-kit/state": "^4.3.2", - "zod": "^3.24.4" + "zod": "^3.25.76" } } diff --git a/plugins/cypress/src/tasks/cypress.ts b/plugins/cypress/src/tasks/cypress.ts index 68c963d72..56824c1da 100644 --- a/plugins/cypress/src/tasks/cypress.ts +++ b/plugins/cypress/src/tasks/cypress.ts @@ -3,7 +3,7 @@ import { DopplerEnvVars } from '@dotcom-tool-kit/doppler' import { hookFork, waitOnExit } from '@dotcom-tool-kit/logger' import { readState } from '@dotcom-tool-kit/state' import { Task, TaskRunContext } from '@dotcom-tool-kit/base' -import * as z from 'zod' +import * as z from 'zod/v3' const CypressSchema = z .object({ diff --git a/plugins/docker/package.json b/plugins/docker/package.json index 76e840ad4..975a080c2 100644 --- a/plugins/docker/package.json +++ b/plugins/docker/package.json @@ -15,7 +15,7 @@ "@dotcom-tool-kit/logger": "^4.2.2", "@dotcom-tool-kit/state": "^4.3.2", "tslib": "^2.8.1", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "repository": { "type": "git", diff --git a/plugins/docker/src/schema.ts b/plugins/docker/src/schema.ts index a2a38a5a0..a97534d0d 100644 --- a/plugins/docker/src/schema.ts +++ b/plugins/docker/src/schema.ts @@ -1,4 +1,4 @@ -import * as z from 'zod' +import * as z from 'zod/v3' const DockerImageSchema = z.object({ definition: z diff --git a/plugins/docker/src/tasks/build.ts b/plugins/docker/src/tasks/build.ts index b90971695..9f9740a9d 100644 --- a/plugins/docker/src/tasks/build.ts +++ b/plugins/docker/src/tasks/build.ts @@ -1,7 +1,7 @@ import { buildImageName, generateImageLabels, getDeployTag } from '../image-info' import DockerSchema from '../schema' -import * as z from 'zod' +import * as z from 'zod/v3' import { hookFork, waitOnExit } from '@dotcom-tool-kit/logger' import { readState } from '@dotcom-tool-kit/state' diff --git a/plugins/eslint/package.json b/plugins/eslint/package.json index bfa6a7a04..244dc7e2b 100644 --- a/plugins/eslint/package.json +++ b/plugins/eslint/package.json @@ -14,7 +14,7 @@ "@dotcom-tool-kit/error": "^4.1.1", "@dotcom-tool-kit/logger": "^4.2.2", "tslib": "^2.8.1", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "repository": { "type": "git", diff --git a/plugins/eslint/src/tasks/eslint.ts b/plugins/eslint/src/tasks/eslint.ts index cc73e9f14..06ddb0acc 100644 --- a/plugins/eslint/src/tasks/eslint.ts +++ b/plugins/eslint/src/tasks/eslint.ts @@ -2,7 +2,7 @@ import { ToolKitError } from '@dotcom-tool-kit/error' import { styles } from '@dotcom-tool-kit/logger' import { Task, TaskRunContext } from '@dotcom-tool-kit/base' import { ESLint } from 'eslint' -import * as z from 'zod' +import * as z from 'zod/v3' const ESLintSchema = z .object({ diff --git a/plugins/hako/package.json b/plugins/hako/package.json index 44df56b5a..02b91afd8 100644 --- a/plugins/hako/package.json +++ b/plugins/hako/package.json @@ -14,7 +14,7 @@ "@dotcom-tool-kit/logger": "^4.2.2", "@dotcom-tool-kit/state": "^4.3.2", "tslib": "^2.8.1", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "description": "", "repository": { diff --git a/plugins/hako/src/hako.ts b/plugins/hako/src/hako.ts index f6ae80ce4..16826ddf1 100644 --- a/plugins/hako/src/hako.ts +++ b/plugins/hako/src/hako.ts @@ -1,4 +1,4 @@ -import * as z from 'zod' +import * as z from 'zod/v3' export const hakoImageName = 'docker.packages.ft.com/financial-times-internal-releases/hako-cli:0.2.14-beta' diff --git a/plugins/hako/src/tasks/delete.ts b/plugins/hako/src/tasks/delete.ts index 300c1afb7..7c45205c6 100644 --- a/plugins/hako/src/tasks/delete.ts +++ b/plugins/hako/src/tasks/delete.ts @@ -1,6 +1,6 @@ import { spawn } from 'node:child_process' -import * as z from 'zod' +import * as z from 'zod/v3' import { Task } from '@dotcom-tool-kit/base' import { hookFork, waitOnExit, styles } from '@dotcom-tool-kit/logger' diff --git a/plugins/hako/src/tasks/deploy.ts b/plugins/hako/src/tasks/deploy.ts index 579effe54..75d2f14db 100644 --- a/plugins/hako/src/tasks/deploy.ts +++ b/plugins/hako/src/tasks/deploy.ts @@ -1,5 +1,5 @@ import { spawn } from 'child_process' -import { z } from 'zod' +import { z } from 'zod/v3' import { hookFork, waitOnExit, styles } from '@dotcom-tool-kit/logger' import { CIState, readState, writeState } from '@dotcom-tool-kit/state' import { Task } from '@dotcom-tool-kit/base' diff --git a/plugins/heroku/package.json b/plugins/heroku/package.json index ef58411c5..0bd5b4bb5 100644 --- a/plugins/heroku/package.json +++ b/plugins/heroku/package.json @@ -23,7 +23,7 @@ "heroku-client": "^3.1.0", "p-retry": "^4.5.0", "tslib": "^2.8.1", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "repository": { "type": "git", diff --git a/plugins/heroku/src/schema.ts b/plugins/heroku/src/schema.ts index 255960e95..d994fd72e 100644 --- a/plugins/heroku/src/schema.ts +++ b/plugins/heroku/src/schema.ts @@ -1,5 +1,5 @@ import { styles } from '@dotcom-tool-kit/logger' -import * as z from 'zod' +import * as z from 'zod/v3' export default z .object({ diff --git a/plugins/heroku/src/tasks/production.ts b/plugins/heroku/src/tasks/production.ts index f56e7926d..26f6e3630 100644 --- a/plugins/heroku/src/tasks/production.ts +++ b/plugins/heroku/src/tasks/production.ts @@ -7,7 +7,7 @@ import heroku, { extractHerokuError } from '../herokuClient' import { scaleDyno } from '../scaleDyno' import HerokuSchema from '../schema' import { promoteStagingToProduction } from '../promoteStagingToProduction' -import * as z from 'zod' +import * as z from 'zod/v3' const HerokuScalingSchema = z.record( z.record( diff --git a/plugins/jest/package.json b/plugins/jest/package.json index 8c84d7948..c7925215e 100644 --- a/plugins/jest/package.json +++ b/plugins/jest/package.json @@ -13,7 +13,7 @@ "@dotcom-tool-kit/base": "^1.3.0", "@dotcom-tool-kit/logger": "^4.2.2", "tslib": "^2.8.1", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "peerDependencies": { "dotcom-tool-kit": "4.x", diff --git a/plugins/jest/src/tasks/jest.ts b/plugins/jest/src/tasks/jest.ts index 8369d7387..932262c5d 100644 --- a/plugins/jest/src/tasks/jest.ts +++ b/plugins/jest/src/tasks/jest.ts @@ -2,7 +2,7 @@ import { Task, TaskRunContext } from '@dotcom-tool-kit/base' import { fork } from 'node:child_process' import { readFile } from 'node:fs/promises' import { hookFork, waitOnExit } from '@dotcom-tool-kit/logger' -import * as z from 'zod' +import * as z from 'zod/v3' const jestCLIPath = require.resolve('jest-cli/bin/jest') diff --git a/plugins/lint-staged-npm/package.json b/plugins/lint-staged-npm/package.json index 846099c96..637130dee 100644 --- a/plugins/lint-staged-npm/package.json +++ b/plugins/lint-staged-npm/package.json @@ -14,7 +14,7 @@ "@dotcom-tool-kit/lint-staged": "^5.2.13", "@dotcom-tool-kit/package-json-hook": "^5.2.5", "tslib": "^2.8.1", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "repository": { "type": "git", diff --git a/plugins/lint-staged-npm/src/schema.ts b/plugins/lint-staged-npm/src/schema.ts index ca8170544..c75064249 100644 --- a/plugins/lint-staged-npm/src/schema.ts +++ b/plugins/lint-staged-npm/src/schema.ts @@ -1,4 +1,4 @@ -import * as z from 'zod' +import * as z from 'zod/v3' export default z.object({ testGlob: z.string().default('**/*.js'), diff --git a/plugins/mocha/package.json b/plugins/mocha/package.json index 86e6f5cc2..aacc289cf 100644 --- a/plugins/mocha/package.json +++ b/plugins/mocha/package.json @@ -15,7 +15,7 @@ "@dotcom-tool-kit/logger": "^4.2.2", "glob": "^10.4.5", "tslib": "^2.8.1", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "repository": { "type": "git", diff --git a/plugins/mocha/src/tasks/mocha.ts b/plugins/mocha/src/tasks/mocha.ts index f15f607e3..82501fe8f 100644 --- a/plugins/mocha/src/tasks/mocha.ts +++ b/plugins/mocha/src/tasks/mocha.ts @@ -2,7 +2,7 @@ import { hookFork, waitOnExit } from '@dotcom-tool-kit/logger' import { Task, TaskRunContext } from '@dotcom-tool-kit/base' import { glob } from 'glob' import { fork } from 'child_process' -import * as z from 'zod' +import * as z from 'zod/v3' const mochaCLIPath = require.resolve('mocha/bin/mocha') const MochaSchema = z diff --git a/plugins/monorepo/package.json b/plugins/monorepo/package.json index a63886171..a0777c3ae 100644 --- a/plugins/monorepo/package.json +++ b/plugins/monorepo/package.json @@ -36,7 +36,7 @@ "@npmcli/map-workspaces": "^4.0.2", "minimatch": "^10.0.3", "pluralize": "^8.0.0", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "devDependencies": { "@dotcom-tool-kit/config": "^1.1.1", diff --git a/plugins/monorepo/src/tasks/workspace-command.ts b/plugins/monorepo/src/tasks/workspace-command.ts index ea156698d..2edf9a0de 100644 --- a/plugins/monorepo/src/tasks/workspace-command.ts +++ b/plugins/monorepo/src/tasks/workspace-command.ts @@ -2,7 +2,7 @@ import { Task, TaskRunContext } from '@dotcom-tool-kit/base' import { styles } from '@dotcom-tool-kit/logger' import { minimatch } from 'minimatch' import pluralize from 'pluralize' -import { z } from 'zod' +import { z } from 'zod/v3' import { runCommandsFromConfig } from 'dotcom-tool-kit/lib/tasks' import LoadWorkspaceConfigs from '../load-workspace-configs' diff --git a/plugins/n-test/package.json b/plugins/n-test/package.json index b75d8915d..e726eaf2d 100644 --- a/plugins/n-test/package.json +++ b/plugins/n-test/package.json @@ -16,7 +16,7 @@ "@dotcom-tool-kit/state": "^4.3.2", "@financial-times/n-test": "^8.1.0", "tslib": "^2.8.1", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "repository": { "type": "git", diff --git a/plugins/n-test/src/tasks/n-test.ts b/plugins/n-test/src/tasks/n-test.ts index 2a0af8403..4af8ef067 100644 --- a/plugins/n-test/src/tasks/n-test.ts +++ b/plugins/n-test/src/tasks/n-test.ts @@ -3,7 +3,7 @@ import { Task, TaskRunContext } from '@dotcom-tool-kit/base' import { SmokeTest } from '@financial-times/n-test' import { readState } from '@dotcom-tool-kit/state' import { ToolKitError } from '@dotcom-tool-kit/error' -import * as z from 'zod' +import * as z from 'zod/v3' const SmokeTestSchema = z .object({ diff --git a/plugins/next-router/package.json b/plugins/next-router/package.json index 38a805fe2..9883f06e7 100644 --- a/plugins/next-router/package.json +++ b/plugins/next-router/package.json @@ -17,7 +17,7 @@ "@dotcom-tool-kit/state": "^4.3.2", "ft-next-router": "^4.0.3", "tslib": "^2.8.1", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "repository": { "type": "git", diff --git a/plugins/next-router/src/schema.ts b/plugins/next-router/src/schema.ts index dede5ee3d..c2bd35658 100644 --- a/plugins/next-router/src/schema.ts +++ b/plugins/next-router/src/schema.ts @@ -1,4 +1,4 @@ -import * as z from 'zod' +import * as z from 'zod/v3' export default z.object({ appName: z diff --git a/plugins/node-test/package.json b/plugins/node-test/package.json index cab7d82cf..01b4e8a53 100644 --- a/plugins/node-test/package.json +++ b/plugins/node-test/package.json @@ -35,7 +35,7 @@ "@dotcom-tool-kit/logger": "^4.2.2", "glob": "^10.4.5", "tslib": "^2.8.1", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "devDependencies": { "@types/node": "^20.17.28" diff --git a/plugins/node-test/src/tasks/node-test.ts b/plugins/node-test/src/tasks/node-test.ts index d91cd7225..7384fcc1a 100644 --- a/plugins/node-test/src/tasks/node-test.ts +++ b/plugins/node-test/src/tasks/node-test.ts @@ -9,7 +9,7 @@ import { spec } from 'node:test/reporters' import { Task, TaskRunContext } from '@dotcom-tool-kit/base' import { ToolKitError } from '@dotcom-tool-kit/error' import { createWritableLogger } from '@dotcom-tool-kit/logger' -import { z } from 'zod' +import { z } from 'zod/v3' // We need to maintain this list of file patterns if we want to make this plugin work consistently // between Node.js 20 and 22. In future (when we drop Node.js 20 support) we will be able to remove diff --git a/plugins/node/package.json b/plugins/node/package.json index d77736461..572704d73 100644 --- a/plugins/node/package.json +++ b/plugins/node/package.json @@ -17,7 +17,7 @@ "get-port": "^5.1.1", "tslib": "^2.8.1", "wait-port": "^1.1.0", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "repository": { "type": "git", diff --git a/plugins/node/src/tasks/node.ts b/plugins/node/src/tasks/node.ts index 6008040c2..75d5112c0 100644 --- a/plugins/node/src/tasks/node.ts +++ b/plugins/node/src/tasks/node.ts @@ -6,7 +6,7 @@ import { ChildProcess, fork } from 'child_process' import getPort from 'get-port' import waitPort from 'wait-port' import path from 'path' -import * as z from 'zod' +import * as z from 'zod/v3' const NodeSchema = z .object({ diff --git a/plugins/nodemon/package.json b/plugins/nodemon/package.json index 1e78c3a4e..70be085d2 100644 --- a/plugins/nodemon/package.json +++ b/plugins/nodemon/package.json @@ -16,7 +16,7 @@ "@dotcom-tool-kit/state": "^4.3.2", "get-port": "^5.1.1", "tslib": "^2.8.1", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "peerDependencies": { "dotcom-tool-kit": "4.x", diff --git a/plugins/nodemon/src/tasks/nodemon.ts b/plugins/nodemon/src/tasks/nodemon.ts index 8446d0291..82fab917a 100644 --- a/plugins/nodemon/src/tasks/nodemon.ts +++ b/plugins/nodemon/src/tasks/nodemon.ts @@ -8,7 +8,7 @@ import getPort from 'get-port' import nodemon from 'nodemon' import { Readable } from 'stream' import { shouldDisableNativeFetch } from 'dotcom-tool-kit' -import * as z from 'zod' +import * as z from 'zod/v3' const NodemonSchema = z .object({ diff --git a/plugins/package-json-hook/package.json b/plugins/package-json-hook/package.json index 610ad41ee..cfb5cd7b4 100644 --- a/plugins/package-json-hook/package.json +++ b/plugins/package-json-hook/package.json @@ -16,7 +16,7 @@ "@financial-times/package-json": "^4.0.0", "lodash": "^4.17.21", "tslib": "^2.8.1", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "repository": { "type": "git", @@ -25,9 +25,6 @@ }, "bugs": "https://github.com/financial-times/dotcom-tool-kit/issues", "homepage": "https://github.com/financial-times/dotcom-tool-kit/tree/main/plugins/package-json-hook", - "peerDependencies": { - "zod": "^3.24.4" - }, "devDependencies": { "@jest/globals": "^29.7.0", "@types/lodash": "^4.17.20", diff --git a/plugins/package-json-hook/src/package-json-helper.ts b/plugins/package-json-hook/src/package-json-helper.ts index d37e6bc33..c40162fc9 100644 --- a/plugins/package-json-hook/src/package-json-helper.ts +++ b/plugins/package-json-hook/src/package-json-helper.ts @@ -1,4 +1,4 @@ -import type { z } from 'zod' +import type { z } from 'zod/v3' import { Hook, HookInstallation } from '@dotcom-tool-kit/base' import type { Plugin } from '@dotcom-tool-kit/plugin' import fs from 'fs' diff --git a/plugins/package-json-hook/src/schema.ts b/plugins/package-json-hook/src/schema.ts index 5da735976..6c65ea140 100644 --- a/plugins/package-json-hook/src/schema.ts +++ b/plugins/package-json-hook/src/schema.ts @@ -1,4 +1,4 @@ -import * as z from 'zod' +import * as z from 'zod/v3' const CommandListSchema = z.union([z.array(z.string()), z.string()]) export const PackageJsonSchema = z.record( diff --git a/plugins/parallel/src/tasks/parallel.ts b/plugins/parallel/src/tasks/parallel.ts index e9d7a5dfb..4fdeffc10 100644 --- a/plugins/parallel/src/tasks/parallel.ts +++ b/plugins/parallel/src/tasks/parallel.ts @@ -1,6 +1,6 @@ import { Task, TaskRunContext } from '@dotcom-tool-kit/base' import { styles } from '@dotcom-tool-kit/logger' -import { z } from 'zod' +import { z } from 'zod/v3' import { type ErrorSummary, handleTaskErrors, loadTasks } from 'dotcom-tool-kit/lib/tasks' import { ToolKitError } from '@dotcom-tool-kit/error' diff --git a/plugins/parallel/test/tasks/parallel.test.ts b/plugins/parallel/test/tasks/parallel.test.ts index 830a9e991..5eabb2dc6 100644 --- a/plugins/parallel/test/tasks/parallel.test.ts +++ b/plugins/parallel/test/tasks/parallel.test.ts @@ -1,6 +1,6 @@ import { beforeAll, describe, expect, it } from '@jest/globals' -import { z } from 'zod' +import { z } from 'zod/v3' import path from 'node:path' import { Task } from '@dotcom-tool-kit/base' import { ValidConfig } from '@dotcom-tool-kit/config' diff --git a/plugins/prettier/package.json b/plugins/prettier/package.json index d15740a1b..809f643bf 100644 --- a/plugins/prettier/package.json +++ b/plugins/prettier/package.json @@ -17,7 +17,7 @@ "fast-glob": "^3.3.3", "prettier": "^2.2.1", "tslib": "^2.8.1", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "repository": { "type": "git", diff --git a/plugins/prettier/src/tasks/prettier.ts b/plugins/prettier/src/tasks/prettier.ts index 368dc4a02..908a186d6 100644 --- a/plugins/prettier/src/tasks/prettier.ts +++ b/plugins/prettier/src/tasks/prettier.ts @@ -4,7 +4,7 @@ import fg from 'fast-glob' import { hookConsole } from '@dotcom-tool-kit/logger' import { Task, TaskRunContext } from '@dotcom-tool-kit/base' import { ToolKitError } from '@dotcom-tool-kit/error' -import * as z from 'zod' +import * as z from 'zod/v3' const PrettierSchema = z .object({ diff --git a/plugins/serverless/package.json b/plugins/serverless/package.json index 4c914bded..a1e057ee9 100644 --- a/plugins/serverless/package.json +++ b/plugins/serverless/package.json @@ -33,7 +33,7 @@ "get-port": "^5.1.1", "tslib": "^2.8.1", "wait-port": "^1.1.0", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "engines": { "node": "18.x || 20.x || 22.x" diff --git a/plugins/serverless/src/schema.ts b/plugins/serverless/src/schema.ts index 4bfed00f7..f4b3f52fe 100644 --- a/plugins/serverless/src/schema.ts +++ b/plugins/serverless/src/schema.ts @@ -1,4 +1,4 @@ -import * as z from 'zod' +import * as z from 'zod/v3' import { styles } from '@dotcom-tool-kit/logger' diff --git a/plugins/serverless/src/tasks/run.ts b/plugins/serverless/src/tasks/run.ts index b9cebb96d..d07756a32 100644 --- a/plugins/serverless/src/tasks/run.ts +++ b/plugins/serverless/src/tasks/run.ts @@ -5,7 +5,7 @@ import { DopplerEnvVars } from '@dotcom-tool-kit/doppler' import { hookConsole, hookFork } from '@dotcom-tool-kit/logger' import getPort from 'get-port' import waitPort from 'wait-port' -import * as z from 'zod' +import * as z from 'zod/v3' const ServerlessRunSchema = z .object({ diff --git a/plugins/typescript/package.json b/plugins/typescript/package.json index 3266e1297..95c004e73 100644 --- a/plugins/typescript/package.json +++ b/plugins/typescript/package.json @@ -27,7 +27,7 @@ "dependencies": { "@dotcom-tool-kit/base": "^1.3.0", "@dotcom-tool-kit/logger": "^4.2.2", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "devDependencies": { "@jest/globals": "^29.7.0", diff --git a/plugins/typescript/src/tasks/typescript.ts b/plugins/typescript/src/tasks/typescript.ts index 88cbb3979..a82d9e486 100644 --- a/plugins/typescript/src/tasks/typescript.ts +++ b/plugins/typescript/src/tasks/typescript.ts @@ -1,7 +1,7 @@ import { hookFork, waitOnExit } from '@dotcom-tool-kit/logger' import { Task, TaskRunContext } from '@dotcom-tool-kit/base' import { fork } from 'child_process' -import * as z from 'zod' +import * as z from 'zod/v3' const TypeScriptSchema = z .object({ diff --git a/plugins/upload-assets-to-s3/package.json b/plugins/upload-assets-to-s3/package.json index 096b4d670..34f524d62 100644 --- a/plugins/upload-assets-to-s3/package.json +++ b/plugins/upload-assets-to-s3/package.json @@ -17,7 +17,7 @@ "glob": "^10.4.5", "mime": "^3.0.0", "tslib": "^2.8.1", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "repository": { "type": "git", diff --git a/plugins/upload-assets-to-s3/src/tasks/upload-assets-to-s3.ts b/plugins/upload-assets-to-s3/src/tasks/upload-assets-to-s3.ts index 6d1985e24..3c5d84a0e 100644 --- a/plugins/upload-assets-to-s3/src/tasks/upload-assets-to-s3.ts +++ b/plugins/upload-assets-to-s3/src/tasks/upload-assets-to-s3.ts @@ -6,7 +6,7 @@ import mime from 'mime' import { glob } from 'glob' import { ToolKitError } from '@dotcom-tool-kit/error' import { styles } from '@dotcom-tool-kit/logger' -import * as z from 'zod' +import * as z from 'zod/v3' export const UploadAssetsToS3Schema = z .object({ diff --git a/plugins/upload-assets-to-s3/test/tasks/upload-assets-to-s3.test.ts b/plugins/upload-assets-to-s3/test/tasks/upload-assets-to-s3.test.ts index 5dcc4b68a..88fece0a9 100644 --- a/plugins/upload-assets-to-s3/test/tasks/upload-assets-to-s3.test.ts +++ b/plugins/upload-assets-to-s3/test/tasks/upload-assets-to-s3.test.ts @@ -2,7 +2,7 @@ import { describe, it, expect, beforeEach } from '@jest/globals' import { S3Client, PutObjectCommand } from '@aws-sdk/client-s3' import * as path from 'path' import winston, { Logger } from 'winston' -import type * as z from 'zod' +import type * as z from 'zod/v3' import UploadAssetsToS3, { type UploadAssetsToS3Schema } from '../../src/tasks/upload-assets-to-s3' jest.mock('@aws-sdk/client-s3') diff --git a/plugins/webpack/package.json b/plugins/webpack/package.json index e48cae7ae..80e59c940 100644 --- a/plugins/webpack/package.json +++ b/plugins/webpack/package.json @@ -22,7 +22,7 @@ "@dotcom-tool-kit/logger": "^4.2.2", "tslib": "^2.8.1", "webpack-cli": "^4.6.0", - "zod": "^3.24.4" + "zod": "^3.25.76" }, "peerDependencies": { "dotcom-tool-kit": "4.x", diff --git a/plugins/webpack/src/tasks/webpack.ts b/plugins/webpack/src/tasks/webpack.ts index 6d7bb3fa9..abd57f854 100644 --- a/plugins/webpack/src/tasks/webpack.ts +++ b/plugins/webpack/src/tasks/webpack.ts @@ -1,7 +1,7 @@ import { Task, TaskRunContext } from '@dotcom-tool-kit/base' import { hookFork, waitOnExit } from '@dotcom-tool-kit/logger' import { ChildProcess, fork } from 'child_process' -import * as z from 'zod' +import * as z from 'zod/v3' const webpackCLIPath = require.resolve('webpack-cli/bin/cli') diff --git a/scripts/generate-docs.js b/scripts/generate-docs.js index 7ace9ca2a..38c315d03 100644 --- a/scripts/generate-docs.js +++ b/scripts/generate-docs.js @@ -6,7 +6,7 @@ const { default: $t } = require('endent') const logger = require('winston') const path = require('path') const fs = require('fs/promises') -const z = require('zod') +const z = require('zod/v3') const { convertSchemas, formatModelsAsMarkdown } = require('zod2md') function formatSchemas(title, schemas) {