From 9d4c905878d2a8cb0e5f4f7beed8a9f5b5e2e685 Mon Sep 17 00:00:00 2001 From: Max Metral Date: Sat, 14 Jun 2025 11:53:06 -0400 Subject: [PATCH] feat: add a fake req to the repl to make life a little easier --- .gitignore | 1 + package.json | 25 +- src/bootstrap.ts | 7 +- src/development/port-finder.ts | 2 +- src/development/repl.ts | 22 +- src/express-app/app.ts | 54 +-- src/openapi.ts | 20 +- src/telemetry/hook-modules.ts | 12 +- src/telemetry/index.ts | 2 +- src/telemetry/instrumentations.ts | 5 +- yarn.lock | 544 ++++++++++++++++-------------- 11 files changed, 386 insertions(+), 308 deletions(-) diff --git a/.gitignore b/.gitignore index bfd1ac4..0e990f8 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ coverage .nyc_output *.log .tap_output +.vscode .yarn/* !.yarn/patches diff --git a/package.json b/package.json index ae52c17..7317f7a 100644 --- a/package.json +++ b/package.json @@ -70,7 +70,7 @@ "dependencies": { "@godaddy/terminus": "^4.12.1", "@opentelemetry/api": "^1.9.0", - "@opentelemetry/auto-instrumentations-node": "^0.60.0", + "@opentelemetry/auto-instrumentations-node": "^0.60.1", "@opentelemetry/exporter-prometheus": "^0.202.0", "@opentelemetry/instrumentation-dns": "^0.46.0", "@opentelemetry/instrumentation-express": "^0.51.0", @@ -78,10 +78,10 @@ "@opentelemetry/instrumentation-graphql": "^0.50.0", "@opentelemetry/instrumentation-http": "^0.202.0", "@opentelemetry/instrumentation-ioredis": "^0.50.0", - "@opentelemetry/instrumentation-net": "^0.46.0", + "@opentelemetry/instrumentation-net": "^0.46.1", "@opentelemetry/instrumentation-pg": "^0.54.0", "@opentelemetry/instrumentation-pino": "^0.49.0", - "@opentelemetry/instrumentation-undici": "^0.13.0", + "@opentelemetry/instrumentation-undici": "^0.13.1", "@opentelemetry/resource-detector-container": "^0.7.2", "@opentelemetry/resource-detector-gcp": "^0.36.0", "@opentelemetry/sdk-node": "^0.202.0", @@ -93,9 +93,9 @@ "cookie-parser": "^1.4.7", "dotenv": "^16.5.0", "express": "^5.1.0", - "express-openapi-validator": "^5.5.3", - "glob": "^11.0.2", - "import-in-the-middle": "^1.14.0", + "express-openapi-validator": "^5.5.7", + "glob": "^11.0.3", + "import-in-the-middle": "^1.14.2", "minimist": "^1.2.8", "moderndash": "^4.0.0", "opentelemetry-resource-detector-sync-api": "^0.30.0", @@ -111,10 +111,10 @@ "@semantic-release/exec": "^7.1.0", "@semantic-release/github": "^11.0.3", "@semantic-release/release-notes-generator": "^14.0.3", - "@types/cookie-parser": "^1.4.8", - "@types/express": "^5.0.2", + "@types/cookie-parser": "^1.4.9", + "@types/express": "^5.0.3", "@types/minimist": "^1.2.5", - "@types/node": "^22.15.29", + "@types/node": "^22.15.31", "@types/request-ip": "^0.0.41", "@types/supertest": "^6.0.3", "@typescript-eslint/eslint-plugin": "^7.18.0", @@ -122,15 +122,16 @@ "coconfig": "^1.6.2", "eslint": "^8.57.1", "eslint-config-prettier": "^9.1.0", - "eslint-import-resolver-typescript": "^4.4.2", + "eslint-import-resolver-typescript": "^4.4.3", "eslint-plugin-import": "^2.31.0", "pino-pretty": "^13.0.0", "pinst": "^3.0.0", + "prettier": "^3.5.3", "supertest": "^7.1.1", "tsconfig-paths": "^4.2.0", - "tsx": "^4.19.4", + "tsx": "^4.20.3", "typescript": "^5.8.3", - "vitest": "^3.2.1" + "vitest": "^3.2.3" }, "resolutions": { "qs": "^6.11.0" diff --git a/src/bootstrap.ts b/src/bootstrap.ts index 4dd8aa7..b96db24 100644 --- a/src/bootstrap.ts +++ b/src/bootstrap.ts @@ -5,7 +5,12 @@ import { config } from 'dotenv'; import { readPackageUp } from 'read-package-up'; import type { NormalizedPackageJson } from 'read-package-up'; -import type { AnyServiceLocals, RequestLocals, ServiceLocals, ServiceStartOptions } from './types.js'; +import type { + AnyServiceLocals, + RequestLocals, + ServiceLocals, + ServiceStartOptions, +} from './types.js'; import { isDev } from './env.js'; import { startWithTelemetry } from './telemetry/index.js'; import { ConfigurationSchema } from './config/schema.js'; diff --git a/src/development/port-finder.ts b/src/development/port-finder.ts index 4875eb7..1f59d49 100644 --- a/src/development/port-finder.ts +++ b/src/development/port-finder.ts @@ -64,5 +64,5 @@ async function getEphemeralPort(): Promise { } export async function getAvailablePort(basePort: number): Promise { - return (isTest() || process.env.TEST_RUNNER) ? getEphemeralPort() : findPort(basePort); + return isTest() || process.env.TEST_RUNNER ? getEphemeralPort() : findPort(basePort); } diff --git a/src/development/repl.ts b/src/development/repl.ts index 0f677d7..f1657fe 100644 --- a/src/development/repl.ts +++ b/src/development/repl.ts @@ -19,11 +19,23 @@ export function serviceRepl void, ) { + class FakeReq { + locals: { app: ServiceExpress } = { app }; + headers: Record = {}; + query = new URLSearchParams(); + body: unknown = {}; + + constructor(public path: string) { + this.locals.app = app; + } + } + const rl = repl.start({ prompt: '> ', }); Object.assign(rl.context, app.locals, { app, + req: new FakeReq('/'), dump(o: unknown) { // eslint-disable-next-line no-console console.log(JSON.stringify(o, null, '\t')); @@ -47,11 +59,9 @@ export function serviceRepl>( - app: ServiceExpress, - codepath: string | undefined, - rl: REPLServer, -) { +async function loadReplFunctions< + SLocals extends AnyServiceLocals = ServiceLocals, +>(app: ServiceExpress, codepath: string | undefined, rl: REPLServer) { if (!codepath) { return; } @@ -104,7 +114,7 @@ type ReplAny = any; */ export function repl$< S extends ServiceExpress, - T extends (app: S, ...args: ReplAny[]) => ReplAny + T extends (app: S, ...args: ReplAny[]) => ReplAny, >(fn: T, name?: string) { const functionName = name || fn.name; if (!functionName) { diff --git a/src/express-app/app.ts b/src/express-app/app.ts index 3ef98f2..2879bfb 100644 --- a/src/express-app/app.ts +++ b/src/express-app/app.ts @@ -61,7 +61,7 @@ export async function startApp< Object.assign(mergeObject, { trace_id: ctx.traceId, span_id: ctx.spanId, - trace_flags: ctx.traceFlags + trace_flags: ctx.traceFlags, }); } } @@ -70,28 +70,28 @@ export async function startApp< const logger = shouldPrettyPrint ? pino( - { - transport: { - target: 'pino-pretty', - options: { - colorize: true, + { + transport: { + target: 'pino-pretty', + options: { + colorize: true, + }, }, + mixin: poorMansOtlp, }, - mixin: poorMansOtlp, - }, - destination, - ) + destination, + ) : pino( - { - formatters: { - level(label) { - return { level: label }; + { + formatters: { + level(label) { + return { level: label }; + }, }, + mixin: poorMansOtlp, }, - mixin: poorMansOtlp, - }, - destination, - ); + destination, + ); const serviceImpl = service(); assert(serviceImpl?.start, 'Service function did not return a conforming object'); @@ -192,7 +192,11 @@ export async function startApp< ); } if (routing?.bodyParsers?.form) { - app.use(express.urlencoded(typeof routing.bodyParsers.form === 'object' ? routing.bodyParsers.form : {})); + app.use( + express.urlencoded( + typeof routing.bodyParsers.form === 'object' ? routing.bodyParsers.form : {}, + ), + ); } if (serviceImpl.authorize) { @@ -259,7 +263,13 @@ export async function startApp< ); } if (routing?.openapi) { - const openApiMiddleware = await openApi(app, rootDirectory, codepath, codePattern, options.openApiOptions); + const openApiMiddleware = await openApi( + app, + rootDirectory, + codepath, + codePattern, + options.openApiOptions, + ); app.use(openApiMiddleware); } @@ -352,7 +362,9 @@ export async function listen service.stop?.(app)) - .then(() => { logger.info('Service stop complete'); }) + .then(() => { + logger.info('Service stop complete'); + }) .then(shutdownHandler || (() => Promise.resolve())) .then(() => logger.info('Graceful shutdown complete')) .catch((error) => logger.error(error, 'Error terminating tracing')) diff --git a/src/openapi.ts b/src/openapi.ts index fc52481..7b6cbd4 100644 --- a/src/openapi.ts +++ b/src/openapi.ts @@ -76,7 +76,7 @@ export async function openApi< try { app.locals.openApiSpecification = await new OpenAPIFramework({ apiDoc: apiSpec }) - .initialize({ visitApi() { } }) + .initialize({ visitApi() {} }) .then((docs) => docs.apiDoc) .catch((error) => { app.locals.logger.error(error, 'Failed to parse and load OpenAPI spec'); @@ -130,15 +130,15 @@ export async function openApi< // by setting validateResponses to false in the config. ...(getNodeEnv() === 'test' ? { - validateResponses: { - onError(error: Error, body: unknown, req: Request) { - console.log('Response body fails validation: ', error); - console.log('Emitted from:', req.originalUrl); - console.debug(body); - throw error; + validateResponses: { + onError(error: Error, body: unknown, req: Request) { + console.log('Response body fails validation: ', error); + console.log('Emitted from:', req.originalUrl); + console.debug(body); + throw error; + }, }, - }, - } + } : {}), ...(typeof routing.openapi === 'object' ? routing.openapi : {}), ...openApiOptions, @@ -148,6 +148,6 @@ export async function openApi< } finally { if (_window) { (global as { window: unknown }).window = _window; - }; + } } } diff --git a/src/telemetry/hook-modules.ts b/src/telemetry/hook-modules.ts index f82a440..83265b3 100644 --- a/src/telemetry/hook-modules.ts +++ b/src/telemetry/hook-modules.ts @@ -3,16 +3,6 @@ import module from 'node:module'; module.register('import-in-the-middle/hook.mjs', import.meta.url, { parentURL: import.meta.url, data: { - include: [ - 'express', - 'pino', - 'http', - 'dns', - 'net', - 'pg', - 'ioredis', - 'undici', - 'generic-pool', - ], + include: ['express', 'pino', 'http', 'dns', 'net', 'pg', 'ioredis', 'undici', 'generic-pool'], }, }); diff --git a/src/telemetry/index.ts b/src/telemetry/index.ts index 7410440..0af3f70 100644 --- a/src/telemetry/index.ts +++ b/src/telemetry/index.ts @@ -133,7 +133,7 @@ export async function startWithTelemetry< await startGlobalTelemetry(options.name); // eslint-disable-next-line import/no-unresolved, @typescript-eslint/no-var-requires - const { startApp, listen } = await import('../express-app/app.js') as { + const { startApp, listen } = (await import('../express-app/app.js')) as { startApp: StartAppFn; listen: ListenFn; }; diff --git a/src/telemetry/instrumentations.ts b/src/telemetry/instrumentations.ts index 2b9a338..3c71ad8 100644 --- a/src/telemetry/instrumentations.ts +++ b/src/telemetry/instrumentations.ts @@ -3,7 +3,10 @@ import { DnsInstrumentation } from '@opentelemetry/instrumentation-dns'; import { ExpressInstrumentation, SpanNameHook } from '@opentelemetry/instrumentation-express'; import { UndiciInstrumentation } from '@opentelemetry/instrumentation-undici'; import { GenericPoolInstrumentation } from '@opentelemetry/instrumentation-generic-pool'; -import { HttpInstrumentation, IgnoreIncomingRequestFunction } from '@opentelemetry/instrumentation-http'; +import { + HttpInstrumentation, + IgnoreIncomingRequestFunction, +} from '@opentelemetry/instrumentation-http'; import { IORedisInstrumentation } from '@opentelemetry/instrumentation-ioredis'; import { NetInstrumentation } from '@opentelemetry/instrumentation-net'; import { GraphQLInstrumentation } from '@opentelemetry/instrumentation-graphql'; diff --git a/yarn.lock b/yarn.lock index e04401b..f111589 100644 --- a/yarn.lock +++ b/yarn.lock @@ -545,6 +545,22 @@ __metadata: languageName: node linkType: hard +"@isaacs/balanced-match@npm:^4.0.1": + version: 4.0.1 + resolution: "@isaacs/balanced-match@npm:4.0.1" + checksum: 102fbc6d2c0d5edf8f6dbf2b3feb21695a21bc850f11bc47c4f06aa83bd8884fde3fe9d6d797d619901d96865fdcb4569ac2a54c937992c48885c5e3d9967fe8 + languageName: node + linkType: hard + +"@isaacs/brace-expansion@npm:^5.0.0": + version: 5.0.0 + resolution: "@isaacs/brace-expansion@npm:5.0.0" + dependencies: + "@isaacs/balanced-match": ^4.0.1 + checksum: d7a3b8b0ddbf0ccd8eeb1300e29dd0a0c02147e823d8138f248375a365682360620895c66d113e05ee02389318c654379b0e538b996345b83c914941786705b1 + languageName: node + linkType: hard + "@isaacs/cliui@npm:^8.0.2": version: 8.0.2 resolution: "@isaacs/cliui@npm:8.0.2" @@ -580,14 +596,14 @@ __metadata: languageName: node linkType: hard -"@napi-rs/wasm-runtime@npm:^0.2.10": - version: 0.2.10 - resolution: "@napi-rs/wasm-runtime@npm:0.2.10" +"@napi-rs/wasm-runtime@npm:^0.2.11": + version: 0.2.11 + resolution: "@napi-rs/wasm-runtime@npm:0.2.11" dependencies: "@emnapi/core": ^1.4.3 "@emnapi/runtime": ^1.4.3 "@tybys/wasm-util": ^0.9.0 - checksum: e061701989eebecc004702a18a6913a574a7890899c0d2bc83162088e8cad48ecd596ed9106c7cc42f26fb80b403b7c4c418c8403c288de4c00460378d3963c2 + checksum: 7c614625784ab467cc7b36b4d7384854891469d0ddce8ca831d28b2abdf8cb3f014d8e8a181c98000719effb46950ab9134b245ab9a8044ad7a7da725b40f858 languageName: node linkType: hard @@ -767,7 +783,7 @@ __metadata: "@godaddy/terminus": ^4.12.1 "@openapi-typescript-infra/coconfig": ^4.7.1 "@opentelemetry/api": ^1.9.0 - "@opentelemetry/auto-instrumentations-node": ^0.60.0 + "@opentelemetry/auto-instrumentations-node": ^0.60.1 "@opentelemetry/exporter-prometheus": ^0.202.0 "@opentelemetry/instrumentation-dns": ^0.46.0 "@opentelemetry/instrumentation-express": ^0.51.0 @@ -775,10 +791,10 @@ __metadata: "@opentelemetry/instrumentation-graphql": ^0.50.0 "@opentelemetry/instrumentation-http": ^0.202.0 "@opentelemetry/instrumentation-ioredis": ^0.50.0 - "@opentelemetry/instrumentation-net": ^0.46.0 + "@opentelemetry/instrumentation-net": ^0.46.1 "@opentelemetry/instrumentation-pg": ^0.54.0 "@opentelemetry/instrumentation-pino": ^0.49.0 - "@opentelemetry/instrumentation-undici": ^0.13.0 + "@opentelemetry/instrumentation-undici": ^0.13.1 "@opentelemetry/resource-detector-container": ^0.7.2 "@opentelemetry/resource-detector-gcp": ^0.36.0 "@opentelemetry/sdk-node": ^0.202.0 @@ -789,10 +805,10 @@ __metadata: "@semantic-release/release-notes-generator": ^14.0.3 "@sesamecare-oss/confit": ^2.2.1 "@sesamecare-oss/opentelemetry-node-metrics": ^1.1.0 - "@types/cookie-parser": ^1.4.8 - "@types/express": ^5.0.2 + "@types/cookie-parser": ^1.4.9 + "@types/express": ^5.0.3 "@types/minimist": ^1.2.5 - "@types/node": ^22.15.29 + "@types/node": ^22.15.31 "@types/request-ip": ^0.0.41 "@types/supertest": ^6.0.3 "@typescript-eslint/eslint-plugin": ^7.18.0 @@ -804,25 +820,26 @@ __metadata: dotenv: ^16.5.0 eslint: ^8.57.1 eslint-config-prettier: ^9.1.0 - eslint-import-resolver-typescript: ^4.4.2 + eslint-import-resolver-typescript: ^4.4.3 eslint-plugin-import: ^2.31.0 express: ^5.1.0 - express-openapi-validator: ^5.5.3 - glob: ^11.0.2 - import-in-the-middle: ^1.14.0 + express-openapi-validator: ^5.5.7 + glob: ^11.0.3 + import-in-the-middle: ^1.14.2 minimist: ^1.2.8 moderndash: ^4.0.0 opentelemetry-resource-detector-sync-api: ^0.30.0 pino: ^9.7.0 pino-pretty: ^13.0.0 pinst: ^3.0.0 + prettier: ^3.5.3 read-package-up: ^11.0.0 request-ip: ^3.3.0 supertest: ^7.1.1 tsconfig-paths: ^4.2.0 - tsx: ^4.19.4 + tsx: ^4.20.3 typescript: ^5.8.3 - vitest: ^3.2.1 + vitest: ^3.2.3 bin: start-service: ./build/bin/start-service.js languageName: unknown @@ -844,9 +861,9 @@ __metadata: languageName: node linkType: hard -"@opentelemetry/auto-instrumentations-node@npm:^0.60.0": - version: 0.60.0 - resolution: "@opentelemetry/auto-instrumentations-node@npm:0.60.0" +"@opentelemetry/auto-instrumentations-node@npm:^0.60.1": + version: 0.60.1 + resolution: "@opentelemetry/auto-instrumentations-node@npm:0.60.1" dependencies: "@opentelemetry/instrumentation": ^0.202.0 "@opentelemetry/instrumentation-amqplib": ^0.49.0 @@ -864,31 +881,31 @@ __metadata: "@opentelemetry/instrumentation-generic-pool": ^0.46.0 "@opentelemetry/instrumentation-graphql": ^0.50.0 "@opentelemetry/instrumentation-grpc": ^0.202.0 - "@opentelemetry/instrumentation-hapi": ^0.48.0 + "@opentelemetry/instrumentation-hapi": ^0.49.0 "@opentelemetry/instrumentation-http": ^0.202.0 "@opentelemetry/instrumentation-ioredis": ^0.50.0 "@opentelemetry/instrumentation-kafkajs": ^0.11.0 "@opentelemetry/instrumentation-knex": ^0.47.0 - "@opentelemetry/instrumentation-koa": ^0.50.0 + "@opentelemetry/instrumentation-koa": ^0.50.1 "@opentelemetry/instrumentation-lru-memoizer": ^0.47.0 "@opentelemetry/instrumentation-memcached": ^0.46.0 - "@opentelemetry/instrumentation-mongodb": ^0.55.0 + "@opentelemetry/instrumentation-mongodb": ^0.55.1 "@opentelemetry/instrumentation-mongoose": ^0.49.0 "@opentelemetry/instrumentation-mysql": ^0.48.0 "@opentelemetry/instrumentation-mysql2": ^0.48.0 "@opentelemetry/instrumentation-nestjs-core": ^0.48.0 - "@opentelemetry/instrumentation-net": ^0.46.0 + "@opentelemetry/instrumentation-net": ^0.46.1 "@opentelemetry/instrumentation-oracledb": ^0.28.0 "@opentelemetry/instrumentation-pg": ^0.54.0 "@opentelemetry/instrumentation-pino": ^0.49.0 - "@opentelemetry/instrumentation-redis": ^0.49.0 + "@opentelemetry/instrumentation-redis": ^0.49.1 "@opentelemetry/instrumentation-redis-4": ^0.49.0 - "@opentelemetry/instrumentation-restify": ^0.48.0 + "@opentelemetry/instrumentation-restify": ^0.48.1 "@opentelemetry/instrumentation-router": ^0.47.0 "@opentelemetry/instrumentation-runtime-node": ^0.16.0 "@opentelemetry/instrumentation-socket.io": ^0.49.0 "@opentelemetry/instrumentation-tedious": ^0.21.0 - "@opentelemetry/instrumentation-undici": ^0.13.0 + "@opentelemetry/instrumentation-undici": ^0.13.1 "@opentelemetry/instrumentation-winston": ^0.47.0 "@opentelemetry/resource-detector-alibaba-cloud": ^0.31.2 "@opentelemetry/resource-detector-aws": ^2.2.0 @@ -900,7 +917,7 @@ __metadata: peerDependencies: "@opentelemetry/api": ^1.4.1 "@opentelemetry/core": ^2.0.0 - checksum: 2ff9a1e6f5ae8c8d2c4991e972af430fa43bd5f3cb8f1840dd0f7a0bdcc4c1f622e41644d1a0cb0ea4ad603d6308305ea85adc57974add3e8975deac5800824f + checksum: f52e7de91e2ea89c8e93ea76215eca8836dea28ed36665a99e7886ac24be096dede0a84c55369ea8e73547bc4ec16a764003af9e86f9d48d07ffca0ed98fc9f8 languageName: node linkType: hard @@ -1302,16 +1319,16 @@ __metadata: languageName: node linkType: hard -"@opentelemetry/instrumentation-hapi@npm:^0.48.0": - version: 0.48.0 - resolution: "@opentelemetry/instrumentation-hapi@npm:0.48.0" +"@opentelemetry/instrumentation-hapi@npm:^0.49.0": + version: 0.49.0 + resolution: "@opentelemetry/instrumentation-hapi@npm:0.49.0" dependencies: "@opentelemetry/core": ^2.0.0 "@opentelemetry/instrumentation": ^0.202.0 "@opentelemetry/semantic-conventions": ^1.27.0 peerDependencies: "@opentelemetry/api": ^1.3.0 - checksum: 5b238282e931f9600ed2d4e9aabcd4dd507564dbeb1ab5c691728a4c815bdd6874f3a1a19670693966739469046c7a77ce53d83c10ba684c090a3bd4791abb87 + checksum: 7e5a143392be99e03f15a82bec8b8dbb3cf8702ba5bf84b33253328279df4b8402e02ef71448fe6b0a2afe2dfb244423505d8ba83e62c269752b5b9dc58f3ac9 languageName: node linkType: hard @@ -1366,16 +1383,16 @@ __metadata: languageName: node linkType: hard -"@opentelemetry/instrumentation-koa@npm:^0.50.0": - version: 0.50.0 - resolution: "@opentelemetry/instrumentation-koa@npm:0.50.0" +"@opentelemetry/instrumentation-koa@npm:^0.50.1": + version: 0.50.1 + resolution: "@opentelemetry/instrumentation-koa@npm:0.50.1" dependencies: "@opentelemetry/core": ^2.0.0 "@opentelemetry/instrumentation": ^0.202.0 "@opentelemetry/semantic-conventions": ^1.27.0 peerDependencies: "@opentelemetry/api": ^1.3.0 - checksum: df0819645c16e3764d5422935aab5ac41207e8d88b6eb43250827b1c1515b32c5063c5a8a80f77b6499deb8260c53624ea375e1ba85ff3bbb9a7239801eac49d + checksum: 0172a66d2291ed2f01f6d22b7fb0a22dab49758dab657d8f182998e2166277fd85a46c2d51c77fce2b5d07560777c6f1326cc7978b43b4e1ed3fe381f431f451 languageName: node linkType: hard @@ -1403,15 +1420,15 @@ __metadata: languageName: node linkType: hard -"@opentelemetry/instrumentation-mongodb@npm:^0.55.0": - version: 0.55.0 - resolution: "@opentelemetry/instrumentation-mongodb@npm:0.55.0" +"@opentelemetry/instrumentation-mongodb@npm:^0.55.1": + version: 0.55.1 + resolution: "@opentelemetry/instrumentation-mongodb@npm:0.55.1" dependencies: "@opentelemetry/instrumentation": ^0.202.0 "@opentelemetry/semantic-conventions": ^1.27.0 peerDependencies: "@opentelemetry/api": ^1.3.0 - checksum: ab3a955beb57f2146b7e587603851feac7fff696ffcebb1b660251841287ab81de4ba7cb6a8837ed1963ffafc3d15c61ba8363a3ae3d8ada69eeb40f54664e02 + checksum: c0b559dcd94a696178dc8a409ba505e55fa937bf8d5775f7ec80a57175089766256be9e494ff7855d248d587e8cabaed2469b7f04e02aebc0a15db44992c9b1c languageName: node linkType: hard @@ -1466,15 +1483,15 @@ __metadata: languageName: node linkType: hard -"@opentelemetry/instrumentation-net@npm:^0.46.0": - version: 0.46.0 - resolution: "@opentelemetry/instrumentation-net@npm:0.46.0" +"@opentelemetry/instrumentation-net@npm:^0.46.1": + version: 0.46.1 + resolution: "@opentelemetry/instrumentation-net@npm:0.46.1" dependencies: "@opentelemetry/instrumentation": ^0.202.0 "@opentelemetry/semantic-conventions": ^1.27.0 peerDependencies: "@opentelemetry/api": ^1.3.0 - checksum: 034086ed6a8a80ff2e4ced49bd21ae1eee7924648f05719afa3acff9a66d37fe1156b1c14b8999269c5dfa9eb4737a6485f62014e5d6e5ebc2e146594aa03925 + checksum: 7bc0a1756183451b447c9ed4b4fd762f5375c099fc7625da8049f5a4142ecabe908ecaf2170c31f77b9aa4042090a4dccab9169fee7eef331375c38015cd58c9 languageName: node linkType: hard @@ -1533,29 +1550,29 @@ __metadata: languageName: node linkType: hard -"@opentelemetry/instrumentation-redis@npm:^0.49.0": - version: 0.49.0 - resolution: "@opentelemetry/instrumentation-redis@npm:0.49.0" +"@opentelemetry/instrumentation-redis@npm:^0.49.1": + version: 0.49.1 + resolution: "@opentelemetry/instrumentation-redis@npm:0.49.1" dependencies: "@opentelemetry/instrumentation": ^0.202.0 "@opentelemetry/redis-common": ^0.37.0 "@opentelemetry/semantic-conventions": ^1.27.0 peerDependencies: "@opentelemetry/api": ^1.3.0 - checksum: 0a013d237ee5219c72aafd967c4148a54398f56f13f6579a288c5da3baca514127001489f2a8aaade7329bc179d63be36f31e49fbdcd4a985981ae544dd41fb3 + checksum: 41e330b70c2111bb35beff8152da848d7d86f01cc519f6fe65fc56b055d8027ec75fb8e26909d11d57c9748a5114393233337987706aaa0e5c27a6ec2636ac0d languageName: node linkType: hard -"@opentelemetry/instrumentation-restify@npm:^0.48.0": - version: 0.48.0 - resolution: "@opentelemetry/instrumentation-restify@npm:0.48.0" +"@opentelemetry/instrumentation-restify@npm:^0.48.1": + version: 0.48.1 + resolution: "@opentelemetry/instrumentation-restify@npm:0.48.1" dependencies: "@opentelemetry/core": ^2.0.0 "@opentelemetry/instrumentation": ^0.202.0 "@opentelemetry/semantic-conventions": ^1.27.0 peerDependencies: "@opentelemetry/api": ^1.3.0 - checksum: a8180bcf89a37c366c1933f56f2eba6abf46e4f39c08bc3d839d24ae7a230a0b3c9a1eb9fed29f17244518d0086fd5b02f6f943a66a1c25f5bd98c572086aeee + checksum: 2862ee59b648ef6231393414a9926cdf600881e89cccc8eba7c75d4d10ccd59839128813e8319dc4d74ec8f5e6adac1a47e1f454a5cbf4e1474c276815afd11b languageName: node linkType: hard @@ -1607,15 +1624,15 @@ __metadata: languageName: node linkType: hard -"@opentelemetry/instrumentation-undici@npm:^0.13.0": - version: 0.13.0 - resolution: "@opentelemetry/instrumentation-undici@npm:0.13.0" +"@opentelemetry/instrumentation-undici@npm:^0.13.1": + version: 0.13.1 + resolution: "@opentelemetry/instrumentation-undici@npm:0.13.1" dependencies: "@opentelemetry/core": ^2.0.0 "@opentelemetry/instrumentation": ^0.202.0 peerDependencies: "@opentelemetry/api": ^1.7.0 - checksum: d9ca254f66b45684436460b70c8770d79848d2b0b258487399f6040ff42dc38b14efc99b977390f443f3390bb7f4e88effb56054e6c7ae7bde5ee34e6e1e8989 + checksum: df04800b286e555ecff4d073e9ffe423e769ad32cdb4edc19abbe7368adb9977412d1bc9ca528b724b5039718fbeea10dda1e4842cdbed0af4590ce8a2496913 languageName: node linkType: hard @@ -2390,12 +2407,12 @@ __metadata: languageName: node linkType: hard -"@types/cookie-parser@npm:^1.4.8": - version: 1.4.8 - resolution: "@types/cookie-parser@npm:1.4.8" +"@types/cookie-parser@npm:^1.4.9": + version: 1.4.9 + resolution: "@types/cookie-parser@npm:1.4.9" peerDependencies: "@types/express": "*" - checksum: b26ace5560adce1a746c059a75f18227ee3e3614a49c70dd29b8af204696079ced22eaa9d6cb084e3433ec433bff845cb47ffb890ae9af96a4aab2ff85e40da7 + checksum: 6192a4899b5412a4c3be0f47158321aef73a4cd7e7a4f7b2a37e2e1045f11a21209681cb1bc5335f250ee2a6ce64d8a3fefb851181a98e6415d3716ef9ed1f62 languageName: node linkType: hard @@ -2432,14 +2449,14 @@ __metadata: languageName: node linkType: hard -"@types/express@npm:*, @types/express@npm:^5.0.2": - version: 5.0.2 - resolution: "@types/express@npm:5.0.2" +"@types/express@npm:*, @types/express@npm:^5.0.3": + version: 5.0.3 + resolution: "@types/express@npm:5.0.3" dependencies: "@types/body-parser": "*" "@types/express-serve-static-core": ^5.0.0 "@types/serve-static": "*" - checksum: c6f73c75c2b62e293e5fadcfd7de61716e3d0c0eaecda082b1921c9c8e56ddc37c530c5d4d68404794b38c7e8f5b893719ffc04c6fba2efa2fb13223bfb0346b + checksum: bb6f10c14c8e3cce07f79ee172688aa9592852abd7577b663cd0c2054307f172c2b2b36468c918fed0d4ac359b99695807b384b3da6157dfa79acbac2226b59b languageName: node linkType: hard @@ -2512,12 +2529,12 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*, @types/node@npm:>=13.7.0, @types/node@npm:^22.15.29": - version: 22.15.29 - resolution: "@types/node@npm:22.15.29" +"@types/node@npm:*, @types/node@npm:>=13.7.0, @types/node@npm:^22.15.31": + version: 22.15.31 + resolution: "@types/node@npm:22.15.31" dependencies: undici-types: ~6.21.0 - checksum: 201aabe3614d68fdf84f3255e2380381180de26ecdfd091f8809bf46fd2a41e73b2df4d94780c2054597f3c203d1c9d378359c21c551fb4eef8b12406698d6c9 + checksum: 505892d4b62693523cbd9f21be239f0e496415a52e673255951917ec0330cc85647ab5393b3bb62f3a01e1e452d0a3188c978f6101ac4cd2ae1947572282c960 languageName: node linkType: hard @@ -2762,145 +2779,159 @@ __metadata: languageName: node linkType: hard -"@unrs/resolver-binding-darwin-arm64@npm:1.7.10": - version: 1.7.10 - resolution: "@unrs/resolver-binding-darwin-arm64@npm:1.7.10" +"@unrs/resolver-binding-android-arm-eabi@npm:1.9.0": + version: 1.9.0 + resolution: "@unrs/resolver-binding-android-arm-eabi@npm:1.9.0" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@unrs/resolver-binding-android-arm64@npm:1.9.0": + version: 1.9.0 + resolution: "@unrs/resolver-binding-android-arm64@npm:1.9.0" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@unrs/resolver-binding-darwin-arm64@npm:1.9.0": + version: 1.9.0 + resolution: "@unrs/resolver-binding-darwin-arm64@npm:1.9.0" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@unrs/resolver-binding-darwin-x64@npm:1.7.10": - version: 1.7.10 - resolution: "@unrs/resolver-binding-darwin-x64@npm:1.7.10" +"@unrs/resolver-binding-darwin-x64@npm:1.9.0": + version: 1.9.0 + resolution: "@unrs/resolver-binding-darwin-x64@npm:1.9.0" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@unrs/resolver-binding-freebsd-x64@npm:1.7.10": - version: 1.7.10 - resolution: "@unrs/resolver-binding-freebsd-x64@npm:1.7.10" +"@unrs/resolver-binding-freebsd-x64@npm:1.9.0": + version: 1.9.0 + resolution: "@unrs/resolver-binding-freebsd-x64@npm:1.9.0" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.7.10": - version: 1.7.10 - resolution: "@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.7.10" +"@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.9.0": + version: 1.9.0 + resolution: "@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.9.0" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@unrs/resolver-binding-linux-arm-musleabihf@npm:1.7.10": - version: 1.7.10 - resolution: "@unrs/resolver-binding-linux-arm-musleabihf@npm:1.7.10" +"@unrs/resolver-binding-linux-arm-musleabihf@npm:1.9.0": + version: 1.9.0 + resolution: "@unrs/resolver-binding-linux-arm-musleabihf@npm:1.9.0" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@unrs/resolver-binding-linux-arm64-gnu@npm:1.7.10": - version: 1.7.10 - resolution: "@unrs/resolver-binding-linux-arm64-gnu@npm:1.7.10" +"@unrs/resolver-binding-linux-arm64-gnu@npm:1.9.0": + version: 1.9.0 + resolution: "@unrs/resolver-binding-linux-arm64-gnu@npm:1.9.0" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@unrs/resolver-binding-linux-arm64-musl@npm:1.7.10": - version: 1.7.10 - resolution: "@unrs/resolver-binding-linux-arm64-musl@npm:1.7.10" +"@unrs/resolver-binding-linux-arm64-musl@npm:1.9.0": + version: 1.9.0 + resolution: "@unrs/resolver-binding-linux-arm64-musl@npm:1.9.0" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@unrs/resolver-binding-linux-ppc64-gnu@npm:1.7.10": - version: 1.7.10 - resolution: "@unrs/resolver-binding-linux-ppc64-gnu@npm:1.7.10" +"@unrs/resolver-binding-linux-ppc64-gnu@npm:1.9.0": + version: 1.9.0 + resolution: "@unrs/resolver-binding-linux-ppc64-gnu@npm:1.9.0" conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard -"@unrs/resolver-binding-linux-riscv64-gnu@npm:1.7.10": - version: 1.7.10 - resolution: "@unrs/resolver-binding-linux-riscv64-gnu@npm:1.7.10" +"@unrs/resolver-binding-linux-riscv64-gnu@npm:1.9.0": + version: 1.9.0 + resolution: "@unrs/resolver-binding-linux-riscv64-gnu@npm:1.9.0" conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard -"@unrs/resolver-binding-linux-riscv64-musl@npm:1.7.10": - version: 1.7.10 - resolution: "@unrs/resolver-binding-linux-riscv64-musl@npm:1.7.10" +"@unrs/resolver-binding-linux-riscv64-musl@npm:1.9.0": + version: 1.9.0 + resolution: "@unrs/resolver-binding-linux-riscv64-musl@npm:1.9.0" conditions: os=linux & cpu=riscv64 & libc=musl languageName: node linkType: hard -"@unrs/resolver-binding-linux-s390x-gnu@npm:1.7.10": - version: 1.7.10 - resolution: "@unrs/resolver-binding-linux-s390x-gnu@npm:1.7.10" +"@unrs/resolver-binding-linux-s390x-gnu@npm:1.9.0": + version: 1.9.0 + resolution: "@unrs/resolver-binding-linux-s390x-gnu@npm:1.9.0" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard -"@unrs/resolver-binding-linux-x64-gnu@npm:1.7.10": - version: 1.7.10 - resolution: "@unrs/resolver-binding-linux-x64-gnu@npm:1.7.10" +"@unrs/resolver-binding-linux-x64-gnu@npm:1.9.0": + version: 1.9.0 + resolution: "@unrs/resolver-binding-linux-x64-gnu@npm:1.9.0" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@unrs/resolver-binding-linux-x64-musl@npm:1.7.10": - version: 1.7.10 - resolution: "@unrs/resolver-binding-linux-x64-musl@npm:1.7.10" +"@unrs/resolver-binding-linux-x64-musl@npm:1.9.0": + version: 1.9.0 + resolution: "@unrs/resolver-binding-linux-x64-musl@npm:1.9.0" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@unrs/resolver-binding-wasm32-wasi@npm:1.7.10": - version: 1.7.10 - resolution: "@unrs/resolver-binding-wasm32-wasi@npm:1.7.10" +"@unrs/resolver-binding-wasm32-wasi@npm:1.9.0": + version: 1.9.0 + resolution: "@unrs/resolver-binding-wasm32-wasi@npm:1.9.0" dependencies: - "@napi-rs/wasm-runtime": ^0.2.10 + "@napi-rs/wasm-runtime": ^0.2.11 conditions: cpu=wasm32 languageName: node linkType: hard -"@unrs/resolver-binding-win32-arm64-msvc@npm:1.7.10": - version: 1.7.10 - resolution: "@unrs/resolver-binding-win32-arm64-msvc@npm:1.7.10" +"@unrs/resolver-binding-win32-arm64-msvc@npm:1.9.0": + version: 1.9.0 + resolution: "@unrs/resolver-binding-win32-arm64-msvc@npm:1.9.0" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@unrs/resolver-binding-win32-ia32-msvc@npm:1.7.10": - version: 1.7.10 - resolution: "@unrs/resolver-binding-win32-ia32-msvc@npm:1.7.10" +"@unrs/resolver-binding-win32-ia32-msvc@npm:1.9.0": + version: 1.9.0 + resolution: "@unrs/resolver-binding-win32-ia32-msvc@npm:1.9.0" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@unrs/resolver-binding-win32-x64-msvc@npm:1.7.10": - version: 1.7.10 - resolution: "@unrs/resolver-binding-win32-x64-msvc@npm:1.7.10" +"@unrs/resolver-binding-win32-x64-msvc@npm:1.9.0": + version: 1.9.0 + resolution: "@unrs/resolver-binding-win32-x64-msvc@npm:1.9.0" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@vitest/expect@npm:3.2.1": - version: 3.2.1 - resolution: "@vitest/expect@npm:3.2.1" +"@vitest/expect@npm:3.2.3": + version: 3.2.3 + resolution: "@vitest/expect@npm:3.2.3" dependencies: "@types/chai": ^5.2.2 - "@vitest/spy": 3.2.1 - "@vitest/utils": 3.2.1 + "@vitest/spy": 3.2.3 + "@vitest/utils": 3.2.3 chai: ^5.2.0 tinyrainbow: ^2.0.0 - checksum: 9471e3f0540228927f0145a9d7c747545b506771a65c95bdd49cefab29db4cd53e624c16fd456c19acc3a9ad80534294127bbd34c7bd3c7e32664e8b0218cfee + checksum: 2ece3d0547de2ca91350e01a8495976dc87696a231b25aebdfb6045870470d24c1a586da5ea8ebd4a1f5a5c4ea63950e6843faf7b9b599c576f338ec9bf3c254 languageName: node linkType: hard -"@vitest/mocker@npm:3.2.1": - version: 3.2.1 - resolution: "@vitest/mocker@npm:3.2.1" +"@vitest/mocker@npm:3.2.3": + version: 3.2.3 + resolution: "@vitest/mocker@npm:3.2.3" dependencies: - "@vitest/spy": 3.2.1 + "@vitest/spy": 3.2.3 estree-walker: ^3.0.3 magic-string: ^0.30.17 peerDependencies: @@ -2911,57 +2942,58 @@ __metadata: optional: true vite: optional: true - checksum: 12a91ab97adc43bbe7d4fd3ff7208e1cfbbe4387f47912dbe822470d993f3d98065b6239480c7ae21861e0454a8d83f1b726b4f8b3314b0affa30c99d6dc643f + checksum: 0a99bad970c7f7fcbfed16816bc6056164fe96569e7a1d887566da1fb8a869565504d6b2272cd74700dbcaa49f7e7422115d4ec5e64b7bc7287cdefaa89929eb languageName: node linkType: hard -"@vitest/pretty-format@npm:3.2.1, @vitest/pretty-format@npm:^3.2.1": - version: 3.2.1 - resolution: "@vitest/pretty-format@npm:3.2.1" +"@vitest/pretty-format@npm:3.2.3, @vitest/pretty-format@npm:^3.2.3": + version: 3.2.3 + resolution: "@vitest/pretty-format@npm:3.2.3" dependencies: tinyrainbow: ^2.0.0 - checksum: b745e84431a77cc7865044dca86b10f9e4b4151032d782025f3c086e704f597d25d03c3db744f709d93483c5a86be29a56ab6284127a0a3d496427ce75a1497f + checksum: 98d978e655ccd24ead6d7928421384a10afd640b19ccccfa388e2739a8e7387af54ba22d4787f832897b5b4527954daccf13335a01ecc8633aec76285782d1f1 languageName: node linkType: hard -"@vitest/runner@npm:3.2.1": - version: 3.2.1 - resolution: "@vitest/runner@npm:3.2.1" +"@vitest/runner@npm:3.2.3": + version: 3.2.3 + resolution: "@vitest/runner@npm:3.2.3" dependencies: - "@vitest/utils": 3.2.1 + "@vitest/utils": 3.2.3 pathe: ^2.0.3 - checksum: 027eb1235213f423828c990f8efc6877da2434c38e14abfdf0ab6cc7b34a32c500e33633bac1937c77d4b11379af0a5c1bddeeadbea92b4fa0c891569f860691 + strip-literal: ^3.0.0 + checksum: aa7559a225bb85af50d7458e83325af05a8b5596f89fba00197dbbdc08302639223a67446c1760899eb741070c8b84a884e8a455a0ea29456c9f003c4be29b1f languageName: node linkType: hard -"@vitest/snapshot@npm:3.2.1": - version: 3.2.1 - resolution: "@vitest/snapshot@npm:3.2.1" +"@vitest/snapshot@npm:3.2.3": + version: 3.2.3 + resolution: "@vitest/snapshot@npm:3.2.3" dependencies: - "@vitest/pretty-format": 3.2.1 + "@vitest/pretty-format": 3.2.3 magic-string: ^0.30.17 pathe: ^2.0.3 - checksum: f819c05b82aa36464303ceb2a4b7524efc3a61918591e1ae01fc9dd2e96c94c84d2074974373916c16d38c912c1cc223559b7747a77a505b679aadb8a79a2153 + checksum: 416fd889d69d815f3dba7c38bba6e2056a31477ce86ad618ffd0d3848af0efc90aba5d99dd5e7806716dcd400445ae1be88749af0e19a440ceeef3a7945a7434 languageName: node linkType: hard -"@vitest/spy@npm:3.2.1": - version: 3.2.1 - resolution: "@vitest/spy@npm:3.2.1" +"@vitest/spy@npm:3.2.3": + version: 3.2.3 + resolution: "@vitest/spy@npm:3.2.3" dependencies: tinyspy: ^4.0.3 - checksum: 87c6aba0165aaf58717aabce85089746052a5c308e248bbd5a81cf9b853fb1c59cb413c38723790fe3b77b05d1c1fec9c3c8dafe6fd9f095d3fba7592f6a6328 + checksum: ae1212afffdc4a6dbe78535411a08b72a510e6f9325537461ca0393c32095e6a3345fc5c01c93cce5dda96e1e95abc6d2d82fe664ddce4a6e6045b2d84e48a74 languageName: node linkType: hard -"@vitest/utils@npm:3.2.1": - version: 3.2.1 - resolution: "@vitest/utils@npm:3.2.1" +"@vitest/utils@npm:3.2.3": + version: 3.2.3 + resolution: "@vitest/utils@npm:3.2.3" dependencies: - "@vitest/pretty-format": 3.2.1 + "@vitest/pretty-format": 3.2.3 loupe: ^3.1.3 tinyrainbow: ^2.0.0 - checksum: 4d43150c81b7ffa6ffadbff7cf7d4328487c12d30dcb3e505c36d2e347978e2d5977aa9cf52a56b2a5f0e6f18b23307e78e7c3c7b1db4c62446b65f227ab61de + checksum: 79a15f20b6b055dbe83c44c82eb546c2618139bb9b68816f6e153b0964221644035fdd8f5b8be2dcbf544f273eed445c2edb4468e64ea4df7637b7baa8558f66 languageName: node linkType: hard @@ -3856,7 +3888,7 @@ __metadata: languageName: node linkType: hard -"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": +"cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3, cross-spawn@npm:^7.0.6": version: 7.0.6 resolution: "cross-spawn@npm:7.0.6" dependencies: @@ -4380,7 +4412,7 @@ __metadata: languageName: node linkType: hard -"eslint-import-context@npm:^0.1.5": +"eslint-import-context@npm:^0.1.8": version: 0.1.8 resolution: "eslint-import-context@npm:0.1.8" dependencies: @@ -4406,17 +4438,17 @@ __metadata: languageName: node linkType: hard -"eslint-import-resolver-typescript@npm:^4.4.2": - version: 4.4.2 - resolution: "eslint-import-resolver-typescript@npm:4.4.2" +"eslint-import-resolver-typescript@npm:^4.4.3": + version: 4.4.3 + resolution: "eslint-import-resolver-typescript@npm:4.4.3" dependencies: debug: ^4.4.1 - eslint-import-context: ^0.1.5 + eslint-import-context: ^0.1.8 get-tsconfig: ^4.10.1 is-bun-module: ^2.0.0 - stable-hash: ^0.0.5 + stable-hash-x: ^0.1.1 tinyglobby: ^0.2.14 - unrs-resolver: ^1.7.2 + unrs-resolver: ^1.7.11 peerDependencies: eslint: "*" eslint-plugin-import: "*" @@ -4426,7 +4458,7 @@ __metadata: optional: true eslint-plugin-import-x: optional: true - checksum: ab5fa23dcfe119b62c0580267d04e97889054277649e21c2cff6e9a1811cfcb6da116e51da70f994d882ac9f375d91a2659c8a1403f3115ccdac169ee30cf47f + checksum: 7678cc2af2446663b44cbc0fd1c657be1694276963929446229289576b24ed6e89435a76119303099a8cb66299ee146fde3ad3d431f405085762e7e65b01c33c languageName: node linkType: hard @@ -4639,9 +4671,9 @@ __metadata: languageName: node linkType: hard -"express-openapi-validator@npm:^5.5.3": - version: 5.5.3 - resolution: "express-openapi-validator@npm:5.5.3" +"express-openapi-validator@npm:^5.5.7": + version: 5.5.7 + resolution: "express-openapi-validator@npm:5.5.7" dependencies: "@apidevtools/json-schema-ref-parser": ^12.0.1 "@types/multer": ^1.4.12 @@ -4653,13 +4685,13 @@ __metadata: lodash.clonedeep: ^4.5.0 lodash.get: ^4.4.2 media-typer: ^1.1.0 - multer: ^2.0.0 + multer: ^2.0.1 ono: ^7.1.3 path-to-regexp: ^8.2.0 qs: ^6.14.0 peerDependencies: express: "*" - checksum: 7ce12da259aea91caa221dc62896b4df62c0e720120592270a4e3dfc549db0626e140f80e14914aeae4281f0dfeb27eef855903ba6fc154af97df6d63a3ebe6f + checksum: b69a6b31afee9a97a9efc389c73031a0f43a4ffd25f225cb810b6b458776d15318bff99aa1d22a5dc5c008ef9a536a15bcc1aa9f68a50547f0704c0f49631032 languageName: node linkType: hard @@ -4910,13 +4942,13 @@ __metadata: languageName: node linkType: hard -"foreground-child@npm:^3.1.0": - version: 3.1.1 - resolution: "foreground-child@npm:3.1.1" +"foreground-child@npm:^3.1.0, foreground-child@npm:^3.3.1": + version: 3.3.1 + resolution: "foreground-child@npm:3.3.1" dependencies: - cross-spawn: ^7.0.0 + cross-spawn: ^7.0.6 signal-exit: ^4.0.1 - checksum: 139d270bc82dc9e6f8bc045fe2aae4001dc2472157044fdfad376d0a3457f77857fa883c1c8b21b491c6caade9a926a4bed3d3d2e8d3c9202b151a4cbbd0bcd5 + checksum: b2c1a6fc0bf0233d645d9fefdfa999abf37db1b33e5dab172b3cbfb0662b88bfbd2c9e7ab853533d199050ec6b65c03fcf078fc212d26e4990220e98c6930eef languageName: node linkType: hard @@ -5184,19 +5216,19 @@ __metadata: languageName: node linkType: hard -"glob@npm:^11.0.2": - version: 11.0.2 - resolution: "glob@npm:11.0.2" +"glob@npm:^11.0.3": + version: 11.0.3 + resolution: "glob@npm:11.0.3" dependencies: - foreground-child: ^3.1.0 - jackspeak: ^4.0.1 - minimatch: ^10.0.0 + foreground-child: ^3.3.1 + jackspeak: ^4.1.1 + minimatch: ^10.0.3 minipass: ^7.1.2 package-json-from-dist: ^1.0.0 path-scurry: ^2.0.0 bin: glob: dist/esm/bin.mjs - checksum: e936aa9b26d5c9687ec1cad53ead521122a7297528856f0c909bfff5a5af16be791d7da8289ab0cfe583470328287adff8f455c1fbf4fa2d8a040a55f9c8c50a + checksum: 65ddc1e3c969e87999880580048763cc8b5bdd375930dd43b8100a5ba481d2e2563e4553de42875790800c602522a98aa8d3ed1c5bd4d27621609e6471eb371d languageName: node linkType: hard @@ -5529,15 +5561,15 @@ __metadata: languageName: node linkType: hard -"import-in-the-middle@npm:^1.14.0, import-in-the-middle@npm:^1.8.1": - version: 1.14.0 - resolution: "import-in-the-middle@npm:1.14.0" +"import-in-the-middle@npm:^1.14.2, import-in-the-middle@npm:^1.8.1": + version: 1.14.2 + resolution: "import-in-the-middle@npm:1.14.2" dependencies: acorn: ^8.14.0 acorn-import-attributes: ^1.9.5 cjs-module-lexer: ^1.2.2 module-details-from-path: ^1.0.3 - checksum: f413fdc7c7796365f3d2bc356f37dce4d354bcc5fe5f6410d4b443a0b4a31d8ce9b29192e60b932798e1f48f5d921d50ab6fef46b3005801e18d87413deb1f0c + checksum: afa323d909f252e35ba8caa10db7f9c6cac84aa7a1f885c933a1e93b0c736eff866fb43f9c8ee7516aa8bc507a7d4d4c7fac6ff74088252141a44cb153aeefaa languageName: node linkType: hard @@ -5927,12 +5959,12 @@ __metadata: languageName: node linkType: hard -"jackspeak@npm:^4.0.1": - version: 4.0.2 - resolution: "jackspeak@npm:4.0.2" +"jackspeak@npm:^4.1.1": + version: 4.1.1 + resolution: "jackspeak@npm:4.1.1" dependencies: "@isaacs/cliui": ^8.0.2 - checksum: 210030029edfa1658328799ad88c3d0fc057c4cb8a069fc4137cc8d2cc4b65c9721c6e749e890f9ca77a954bb54f200f715b8896e50d330e5f3e902e72b40974 + checksum: daca714c5adebfb80932c0b0334025307b68602765098d73d52ec546bc4defdb083292893384261c052742255d0a77d8fcf96f4c669bcb4a99b498b94a74955e languageName: node linkType: hard @@ -5959,6 +5991,13 @@ __metadata: languageName: node linkType: hard +"js-tokens@npm:^9.0.1": + version: 9.0.1 + resolution: "js-tokens@npm:9.0.1" + checksum: 8b604020b1a550e575404bfdde4d12c11a7991ffe0c58a2cf3515b9a512992dc7010af788f0d8b7485e403d462d9e3d3b96c4ff03201550fdbb09e17c811e054 + languageName: node + linkType: hard + "js-yaml@npm:^4.1.0": version: 4.1.0 resolution: "js-yaml@npm:4.1.0" @@ -6408,12 +6447,12 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^10.0.0": - version: 10.0.1 - resolution: "minimatch@npm:10.0.1" +"minimatch@npm:^10.0.3": + version: 10.0.3 + resolution: "minimatch@npm:10.0.3" dependencies: - brace-expansion: ^2.0.1 - checksum: f5b63c2f30606091a057c5f679b067f84a2cd0ffbd2dbc9143bda850afd353c7be81949ff11ae0c86988f07390eeca64efd7143ee05a0dab37f6c6b38a2ebb6c + "@isaacs/brace-expansion": ^5.0.0 + checksum: 20bfb708095a321cb43c20b78254e484cb7d23aad992e15ca3234a3331a70fa9cd7a50bc1a7c7b2b9c9890c37ff0685f8380028fcc28ea5e6de75b1d4f9374aa languageName: node linkType: hard @@ -6570,7 +6609,7 @@ __metadata: languageName: node linkType: hard -"multer@npm:^2.0.0": +"multer@npm:^2.0.1": version: 2.0.1 resolution: "multer@npm:2.0.1" dependencies: @@ -7304,6 +7343,15 @@ __metadata: languageName: node linkType: hard +"prettier@npm:^3.5.3": + version: 3.5.3 + resolution: "prettier@npm:3.5.3" + bin: + prettier: bin/prettier.cjs + checksum: 61e97bb8e71a95d8f9c71f1fd5229c9aaa9d1e184dedb12399f76aa802fb6fdc8954ecac9df25a7f82ee7311cf8ddbd06baf5507388fc98e5b44036cc6a88a1b + languageName: node + linkType: hard + "pretty-ms@npm:^9.0.0": version: 9.2.0 resolution: "pretty-ms@npm:9.2.0" @@ -8051,13 +8099,6 @@ __metadata: languageName: node linkType: hard -"stable-hash@npm:^0.0.5": - version: 0.0.5 - resolution: "stable-hash@npm:0.0.5" - checksum: 9222ea2c558e37c4a576cb4e406966b9e6aa05b93f5c4f09ef4aaabe3577439b9b8fbff407b16840b63e2ae83de74290c7b1c2da7360d571e480e46a4aec0a56 - languageName: node - linkType: hard - "stackback@npm:0.0.2": version: 0.0.2 resolution: "stackback@npm:0.0.2" @@ -8206,6 +8247,15 @@ __metadata: languageName: node linkType: hard +"strip-literal@npm:^3.0.0": + version: 3.0.0 + resolution: "strip-literal@npm:3.0.0" + dependencies: + js-tokens: ^9.0.1 + checksum: f697a31c4ad82ad259e0c57e715cde4585084af2260e38b3c916f34f0d462cec2af294a8b8cf062cc6f40d940ece7b79b0ec8316beabb2ed13c6e13e95ca70f0 + languageName: node + linkType: hard + "superagent@npm:^10.2.1": version: 10.2.1 resolution: "superagent@npm:10.2.1" @@ -8416,9 +8466,9 @@ __metadata: languageName: node linkType: hard -"tsx@npm:^4.19.4": - version: 4.19.4 - resolution: "tsx@npm:4.19.4" +"tsx@npm:^4.20.3": + version: 4.20.3 + resolution: "tsx@npm:4.20.3" dependencies: esbuild: ~0.25.0 fsevents: ~2.3.3 @@ -8428,7 +8478,7 @@ __metadata: optional: true bin: tsx: dist/cli.mjs - checksum: a876a480801b17d89c8886018d9d9287230aec07eb1a9f51c5ca38d50bf832e903693d57d49a9e45926ed01ebe09a6b39f2969a6940bbdd2651df1146badc881 + checksum: 1d13d3168d9ea44b0d02a7df16cc39be8bf4c6c309768009f392ce54e8767402d1f2d13e8dd79d0d77ef4e8a61d96ea7bad12ab1d46f1a4dadf74c4b849d798e languageName: node linkType: hard @@ -8643,29 +8693,35 @@ __metadata: languageName: node linkType: hard -"unrs-resolver@npm:^1.7.2": - version: 1.7.10 - resolution: "unrs-resolver@npm:1.7.10" - dependencies: - "@unrs/resolver-binding-darwin-arm64": 1.7.10 - "@unrs/resolver-binding-darwin-x64": 1.7.10 - "@unrs/resolver-binding-freebsd-x64": 1.7.10 - "@unrs/resolver-binding-linux-arm-gnueabihf": 1.7.10 - "@unrs/resolver-binding-linux-arm-musleabihf": 1.7.10 - "@unrs/resolver-binding-linux-arm64-gnu": 1.7.10 - "@unrs/resolver-binding-linux-arm64-musl": 1.7.10 - "@unrs/resolver-binding-linux-ppc64-gnu": 1.7.10 - "@unrs/resolver-binding-linux-riscv64-gnu": 1.7.10 - "@unrs/resolver-binding-linux-riscv64-musl": 1.7.10 - "@unrs/resolver-binding-linux-s390x-gnu": 1.7.10 - "@unrs/resolver-binding-linux-x64-gnu": 1.7.10 - "@unrs/resolver-binding-linux-x64-musl": 1.7.10 - "@unrs/resolver-binding-wasm32-wasi": 1.7.10 - "@unrs/resolver-binding-win32-arm64-msvc": 1.7.10 - "@unrs/resolver-binding-win32-ia32-msvc": 1.7.10 - "@unrs/resolver-binding-win32-x64-msvc": 1.7.10 +"unrs-resolver@npm:^1.7.11": + version: 1.9.0 + resolution: "unrs-resolver@npm:1.9.0" + dependencies: + "@unrs/resolver-binding-android-arm-eabi": 1.9.0 + "@unrs/resolver-binding-android-arm64": 1.9.0 + "@unrs/resolver-binding-darwin-arm64": 1.9.0 + "@unrs/resolver-binding-darwin-x64": 1.9.0 + "@unrs/resolver-binding-freebsd-x64": 1.9.0 + "@unrs/resolver-binding-linux-arm-gnueabihf": 1.9.0 + "@unrs/resolver-binding-linux-arm-musleabihf": 1.9.0 + "@unrs/resolver-binding-linux-arm64-gnu": 1.9.0 + "@unrs/resolver-binding-linux-arm64-musl": 1.9.0 + "@unrs/resolver-binding-linux-ppc64-gnu": 1.9.0 + "@unrs/resolver-binding-linux-riscv64-gnu": 1.9.0 + "@unrs/resolver-binding-linux-riscv64-musl": 1.9.0 + "@unrs/resolver-binding-linux-s390x-gnu": 1.9.0 + "@unrs/resolver-binding-linux-x64-gnu": 1.9.0 + "@unrs/resolver-binding-linux-x64-musl": 1.9.0 + "@unrs/resolver-binding-wasm32-wasi": 1.9.0 + "@unrs/resolver-binding-win32-arm64-msvc": 1.9.0 + "@unrs/resolver-binding-win32-ia32-msvc": 1.9.0 + "@unrs/resolver-binding-win32-x64-msvc": 1.9.0 napi-postinstall: ^0.2.2 dependenciesMeta: + "@unrs/resolver-binding-android-arm-eabi": + optional: true + "@unrs/resolver-binding-android-arm64": + optional: true "@unrs/resolver-binding-darwin-arm64": optional: true "@unrs/resolver-binding-darwin-x64": @@ -8700,7 +8756,7 @@ __metadata: optional: true "@unrs/resolver-binding-win32-x64-msvc": optional: true - checksum: 9f3734db018add7ce00fd6c677ede79dffe14027647b2c953abf83b378dc3985d53d89399a0306aa0ab4d0bca717d64ccbc3412cdefb67a033c16da01bcba3f9 + checksum: f38edd016942d79045a992f061173d4c50eb8220e9e573bf0bc3b78c439959366f19981181fa6bfc3fd4d560aafe47317940089daaa7c035690423750e3164bf languageName: node linkType: hard @@ -8744,9 +8800,9 @@ __metadata: languageName: node linkType: hard -"vite-node@npm:3.2.1": - version: 3.2.1 - resolution: "vite-node@npm:3.2.1" +"vite-node@npm:3.2.3": + version: 3.2.3 + resolution: "vite-node@npm:3.2.3" dependencies: cac: ^6.7.14 debug: ^4.4.1 @@ -8755,7 +8811,7 @@ __metadata: vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0 bin: vite-node: vite-node.mjs - checksum: 5b5636ff0c7e3b7ba7ac8adcb2c8778ae11012f9bef183c7b4a959f10b92d32e210fd7c8b15e63cbfd8a208243dc74884a85edc598db7e7aa4f5248f3641e211 + checksum: a9899342e790474073244a19cace79a98d5eb670a70c0e8750fc534c38484b37126cfab39b2d57289c5d0fdb81b03ee056c83e1e8506aea1e0659d71b6b281dc languageName: node linkType: hard @@ -8814,18 +8870,18 @@ __metadata: languageName: node linkType: hard -"vitest@npm:^3.2.1": - version: 3.2.1 - resolution: "vitest@npm:3.2.1" +"vitest@npm:^3.2.3": + version: 3.2.3 + resolution: "vitest@npm:3.2.3" dependencies: "@types/chai": ^5.2.2 - "@vitest/expect": 3.2.1 - "@vitest/mocker": 3.2.1 - "@vitest/pretty-format": ^3.2.1 - "@vitest/runner": 3.2.1 - "@vitest/snapshot": 3.2.1 - "@vitest/spy": 3.2.1 - "@vitest/utils": 3.2.1 + "@vitest/expect": 3.2.3 + "@vitest/mocker": 3.2.3 + "@vitest/pretty-format": ^3.2.3 + "@vitest/runner": 3.2.3 + "@vitest/snapshot": 3.2.3 + "@vitest/spy": 3.2.3 + "@vitest/utils": 3.2.3 chai: ^5.2.0 debug: ^4.4.1 expect-type: ^1.2.1 @@ -8839,14 +8895,14 @@ __metadata: tinypool: ^1.1.0 tinyrainbow: ^2.0.0 vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0 - vite-node: 3.2.1 + vite-node: 3.2.3 why-is-node-running: ^2.3.0 peerDependencies: "@edge-runtime/vm": "*" "@types/debug": ^4.1.12 "@types/node": ^18.0.0 || ^20.0.0 || >=22.0.0 - "@vitest/browser": 3.2.1 - "@vitest/ui": 3.2.1 + "@vitest/browser": 3.2.3 + "@vitest/ui": 3.2.3 happy-dom: "*" jsdom: "*" peerDependenciesMeta: @@ -8866,7 +8922,7 @@ __metadata: optional: true bin: vitest: vitest.mjs - checksum: 5b4b771bf9728b17b12fbca234cd1055f7e65e40fd7978e4435d296ec6c05cb988dafb9785014e559842dc713654d3a27cd7b3a8b1159f62c3328a2137c71848 + checksum: 8df27f05704e893ca585a8d85d065798e03cf299b71c57e4011dbed2a10624acf7cb5b6b4550cd635499246e0f6470871fcda9e2383ff6bfb6077c492c33ca69 languageName: node linkType: hard