From 60145c5c45a87860bcdef55b5c0850f5f11473a7 Mon Sep 17 00:00:00 2001 From: dothinh115 Date: Sat, 20 Jun 2026 22:33:28 +0700 Subject: [PATCH 1/8] refactor: rename 'isPublished' to 'isPublic' across the codebase for clarity and consistency --- data/snapshot-migration.json | 14 ++++++++++++++ data/snapshot.json | 4 ++-- package.json | 2 +- src/domain/policy/policy.service.ts | 4 ++-- src/http/middlewares/jwt-auth.middleware.ts | 6 +++--- src/http/middlewares/route-detect.middleware.ts | 2 +- src/http/routes/file.routes.ts | 4 ++-- .../services/file-assets.service.ts | 2 +- .../services/file-management.service.ts | 15 ++++++--------- .../utils/file-validation.helper.ts | 2 +- src/shared/helpers/upload-file.helper.ts | 4 ++-- src/shared/types/dynamic-context.types.ts | 2 +- 12 files changed, 36 insertions(+), 25 deletions(-) diff --git a/data/snapshot-migration.json b/data/snapshot-migration.json index 3d7c5e5e..c3c1ccb0 100644 --- a/data/snapshot-migration.json +++ b/data/snapshot-migration.json @@ -128,6 +128,20 @@ "_eq": "enfyra_file" } }, + "columnsToModify": [ + { + "from": { + "name": "isPublished" + }, + "to": { + "name": "isPublic", + "type": "boolean", + "isNullable": false, + "defaultValue": true, + "description": "Allow public access without authentication" + } + } + ], "relationsToModify": [ { "from": { diff --git a/data/snapshot.json b/data/snapshot.json index eb690757..b5860e15 100644 --- a/data/snapshot.json +++ b/data/snapshot.json @@ -555,13 +555,13 @@ "status" ], [ - "isPublished" + "isPublic" ] ], "columns": [ { "name": "id", "type": "uuid", "isPrimary": true, "isGenerated": true, "isNullable": false, "description": "Unique file identifier" }, { "name": "filename", "type": "varchar", "isNullable": false, "description": "Original filename including extension" }, - { "name": "isPublished", "type": "boolean", "isNullable": false, "defaultValue": true, "description": "Allow public access without authentication" }, + { "name": "isPublic", "type": "boolean", "isNullable": false, "defaultValue": true, "description": "Allow public access without authentication" }, { "name": "mimetype", "type": "varchar", "isNullable": false, "isGenerated": true, "description": "MIME type of the file (e.g., image/png, application/pdf)" }, { "name": "filesize", "type": "bigint", "isNullable": false, "isGenerated": true, "description": "File size in bytes" }, { "name": "location", "type": "varchar", "isNullable": false, "isGenerated": true, "description": "Full path or URL to the file" }, diff --git a/package.json b/package.json index e82c3e4f..d09cbf12 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "enfyra-server", - "version": "2.2.2", + "version": "2.2.3", "description": "Dynamic backend platform that auto-generates REST and GraphQL APIs from database schemas", "author": "dothinh115 ", "private": false, diff --git a/src/domain/policy/policy.service.ts b/src/domain/policy/policy.service.ts index 4fcb9c90..9d02a475 100644 --- a/src/domain/policy/policy.service.ts +++ b/src/domain/policy/policy.service.ts @@ -20,11 +20,11 @@ export class PolicyService { } checkRequestAccess(ctx: TPolicyRequestContext): TPolicyDecision { - const isPublished = ctx.routeData?.publicMethods?.some( + const isPublic = ctx.routeData?.publicMethods?.some( (m: any) => m.name === ctx.method, ); - if (isPublished) return { allow: true }; + if (isPublic) return { allow: true }; if (!ctx.user) { return { diff --git a/src/http/middlewares/jwt-auth.middleware.ts b/src/http/middlewares/jwt-auth.middleware.ts index c0ad0500..d8fa07af 100644 --- a/src/http/middlewares/jwt-auth.middleware.ts +++ b/src/http/middlewares/jwt-auth.middleware.ts @@ -13,8 +13,8 @@ import { } from '../../shared/utils/load-user-with-role.util'; import type { ApiTokenService } from '../../domain/auth'; -function isPublishedRequest(req: any): boolean { - if (req.routeData?.isPublished === true) return true; +function isPublicRequest(req: any): boolean { + if (req.routeData?.isPublic === true) return true; return ( req.routeData?.publicMethods?.some( (method: any) => method?.name === req.method || method === req.method, @@ -52,7 +52,7 @@ export function jwtAuthMiddleware( const { payload: decoded } = await jwtVerify(token, key); payload = decoded; } catch (err: any) { - if (isPublishedRequest(req)) { + if (isPublicRequest(req)) { setAnonymousUser(req); return next(); } diff --git a/src/http/middlewares/route-detect.middleware.ts b/src/http/middlewares/route-detect.middleware.ts index 2d41e75f..e04e4880 100644 --- a/src/http/middlewares/route-detect.middleware.ts +++ b/src/http/middlewares/route-detect.middleware.ts @@ -162,7 +162,7 @@ export function routeDetectMiddleware( params, preHooks: filteredPreHooks, postHooks: filteredPostHooks, - isPublished: + isPublic: route.publicMethods?.some( (pubMethod: any) => pubMethod.name === req.method, ) || false, diff --git a/src/http/routes/file.routes.ts b/src/http/routes/file.routes.ts index 22915724..f18bcf1a 100644 --- a/src/http/routes/file.routes.ts +++ b/src/http/routes/file.routes.ts @@ -139,7 +139,7 @@ export function registerFileRoutes( title: file.originalname, description: body.description, status: body.status, - isPublished: body.isPublished, + isPublic: body.isPublic, }, ); return res.json(result); @@ -157,7 +157,7 @@ export function registerFileRoutes( storageConfig: body.storageConfig, description: body.description, status: body.status, - isPublished: body.isPublished, + isPublic: body.isPublic, }, ); return res.json(result); diff --git a/src/modules/file-management/services/file-assets.service.ts b/src/modules/file-management/services/file-assets.service.ts index 87bc5bd7..6d445fdc 100644 --- a/src/modules/file-management/services/file-assets.service.ts +++ b/src/modules/file-management/services/file-assets.service.ts @@ -473,7 +473,7 @@ export class FileAssetsService { const file = await this.getFileFromCache(fileId); if (!file) throw new NotFoundException(`File not found: ${fileId}`); - if (!file.isPublished) { + if (!file.isPublic) { const currentUser = req.user || req.routeData?.context?.$user; const currentUserId = this.normalizeId( currentUser?.id ?? currentUser?._id, diff --git a/src/modules/file-management/services/file-management.service.ts b/src/modules/file-management/services/file-management.service.ts index 7eff0511..1ee67855 100644 --- a/src/modules/file-management/services/file-management.service.ts +++ b/src/modules/file-management/services/file-management.service.ts @@ -392,7 +392,7 @@ export class FileManagementService { title?: string; description?: string; status?: string; - isPublished?: boolean; + isPublic?: boolean; } = {}, ): Promise { const currentStorageConfigId = this.getFileStorageConfigId(currentFile); @@ -411,10 +411,8 @@ export class FileManagementService { : currentFile.description; const nextStatus = options.status !== undefined ? options.status : currentFile.status; - const nextIsPublished = - options.isPublished !== undefined - ? options.isPublished - : currentFile.isPublished; + const nextIsPublic = + options.isPublic !== undefined ? options.isPublic : currentFile.isPublic; const processedFile = await this.processFileUpload( { @@ -441,7 +439,7 @@ export class FileManagementService { folder: nextFolder, uploadedBy: currentFile.uploadedBy, status: nextStatus, - isPublished: nextIsPublished, + isPublic: nextIsPublic, storageConfig: processedFile.storage_config_id ? this.createIdReference(processedFile.storage_config_id) : null, @@ -476,7 +474,7 @@ export class FileManagementService { title?: string; description?: string; status?: string; - isPublished?: boolean; + isPublic?: boolean; }, ): Promise { const updateData: any = {}; @@ -499,8 +497,7 @@ export class FileManagementService { if (options.description !== undefined) updateData.description = options.description; if (options.status !== undefined) updateData.status = options.status; - if (options.isPublished !== undefined) - updateData.isPublished = options.isPublished; + if (options.isPublic !== undefined) updateData.isPublic = options.isPublic; if (Object.keys(updateData).length === 0) return currentFile; diff --git a/src/modules/file-management/utils/file-validation.helper.ts b/src/modules/file-management/utils/file-validation.helper.ts index 2e73990a..61af5909 100644 --- a/src/modules/file-management/utils/file-validation.helper.ts +++ b/src/modules/file-management/utils/file-validation.helper.ts @@ -43,7 +43,7 @@ export class FileValidationHelper { file: any, req: RequestWithRouteData, ): Promise { - if (file.isPublished) return; + if (file.isPublic) return; const user = req.user || req.routeData?.context?.$user; if (user?.isRootAdmin) return; diff --git a/src/shared/helpers/upload-file.helper.ts b/src/shared/helpers/upload-file.helper.ts index d39d4ba6..7a4668b0 100644 --- a/src/shared/helpers/upload-file.helper.ts +++ b/src/shared/helpers/upload-file.helper.ts @@ -252,7 +252,7 @@ export class UploadFileHelper { title: options.title, description: options.description, status: options.status, - isPublished: options.isPublished, + isPublic: options.isPublic, }, ); } @@ -267,7 +267,7 @@ export class UploadFileHelper { title: options.title, description: options.description, status: options.status, - isPublished: options.isPublished, + isPublic: options.isPublic, }, ); } catch (error: any) { diff --git a/src/shared/types/dynamic-context.types.ts b/src/shared/types/dynamic-context.types.ts index 9811855b..2c1dbb83 100644 --- a/src/shared/types/dynamic-context.types.ts +++ b/src/shared/types/dynamic-context.types.ts @@ -184,7 +184,7 @@ export interface RequestWithRouteData extends Request { handlers?: any[]; preHooks: any[]; postHooks: any[]; - isPublished: boolean; + isPublic: boolean; mainTable?: any; route?: any; res?: Response; From e9a32aaa3275b6ec35fd4270220f286c5a707e49 Mon Sep 17 00:00:00 2001 From: dothinh115 Date: Sun, 21 Jun 2026 12:54:55 +0700 Subject: [PATCH 2/8] feat: add static admin routes to data migration and update tests for route validation --- data/data-migration.json | 166 ++++++++++++++++++- test/domain/bootstrap-data-validator.spec.ts | 25 +++ 2 files changed, 183 insertions(+), 8 deletions(-) diff --git a/data/data-migration.json b/data/data-migration.json index b3926fd5..671fa6dc 100644 --- a/data/data-migration.json +++ b/data/data-migration.json @@ -275,6 +275,164 @@ } ], "enfyra_route": [ + { + "_unique": { + "path": { + "_eq": "/admin/reload" + } + }, + "isEnabled": true, + "isSystem": true, + "icon": "lucide:refresh-cw", + "availableMethods": [ + "POST" + ] + }, + { + "_unique": { + "path": { + "_eq": "/admin/reload/metadata" + } + }, + "isEnabled": true, + "isSystem": true, + "icon": "lucide:refresh-cw", + "availableMethods": [ + "POST" + ] + }, + { + "_unique": { + "path": { + "_eq": "/admin/reload/routes" + } + }, + "isEnabled": true, + "isSystem": true, + "icon": "lucide:refresh-cw", + "availableMethods": [ + "POST" + ] + }, + { + "_unique": { + "path": { + "_eq": "/admin/reload/graphql" + } + }, + "isEnabled": true, + "isSystem": true, + "icon": "lucide:refresh-cw", + "availableMethods": [ + "POST" + ] + }, + { + "_unique": { + "path": { + "_eq": "/admin/reload/guards" + } + }, + "isEnabled": true, + "isSystem": true, + "icon": "lucide:refresh-cw", + "availableMethods": [ + "POST" + ] + }, + { + "_unique": { + "path": { + "_eq": "/admin/script/validate" + } + }, + "isEnabled": true, + "isSystem": true, + "icon": "lucide:code-2", + "availableMethods": [ + "POST" + ] + }, + { + "_unique": { + "path": { + "_eq": "/admin/test/run" + } + }, + "isEnabled": true, + "isSystem": true, + "icon": "lucide:flask-conical", + "availableMethods": [ + "POST" + ] + }, + { + "_unique": { + "path": { + "_eq": "/admin/flow/trigger/:id" + } + }, + "isEnabled": true, + "isSystem": true, + "icon": "lucide:play", + "availableMethods": [ + "POST" + ] + }, + { + "_unique": { + "path": { + "_eq": "/admin/redis/overview" + } + }, + "isEnabled": true, + "isSystem": true, + "icon": "lucide:database-zap", + "availableMethods": [ + "GET" + ] + }, + { + "_unique": { + "path": { + "_eq": "/admin/redis/keys" + } + }, + "isEnabled": true, + "isSystem": true, + "icon": "lucide:key-round", + "availableMethods": [ + "GET" + ] + }, + { + "_unique": { + "path": { + "_eq": "/admin/redis/key" + } + }, + "isEnabled": true, + "isSystem": true, + "icon": "lucide:key-round", + "availableMethods": [ + "GET", + "POST", + "DELETE" + ] + }, + { + "_unique": { + "path": { + "_eq": "/admin/redis/key/ttl" + } + }, + "isEnabled": true, + "isSystem": true, + "icon": "lucide:timer", + "availableMethods": [ + "PATCH" + ] + }, { "_unique": { "path": { @@ -393,14 +551,6 @@ "GET" ] }, - { - "_unique": { - "path": { - "_eq": "/admin/test/run" - } - }, - "isEnabled": true - }, { "_unique": { "path": { diff --git a/test/domain/bootstrap-data-validator.spec.ts b/test/domain/bootstrap-data-validator.spec.ts index 37d92116..797abdb7 100644 --- a/test/domain/bootstrap-data-validator.spec.ts +++ b/test/domain/bootstrap-data-validator.spec.ts @@ -19,6 +19,31 @@ describe('validateBootstrapDataFiles', () => { expect(issues).toEqual([]); }); + it('migrates static admin routes into route metadata', () => { + const dataMigration = loadJson('data-migration.json'); + const routes = dataMigration.enfyra_route ?? []; + const paths = new Set( + routes.map((route: any) => route._unique?.path?._eq ?? route.path), + ); + + expect([...paths]).toEqual( + expect.arrayContaining([ + '/admin/script/validate', + '/admin/test/run', + '/admin/flow/trigger/:id', + '/admin/reload', + '/admin/reload/metadata', + '/admin/reload/routes', + '/admin/reload/graphql', + '/admin/reload/guards', + '/admin/redis/overview', + '/admin/redis/keys', + '/admin/redis/key', + '/admin/redis/key/ttl', + ]), + ); + }); + it('reports unknown route mainTable and method names', () => { const issues = validateBootstrapDataFiles({ snapshot: { From a7e3d38df50d494d4c460924177b5223e46c8cb5 Mon Sep 17 00:00:00 2001 From: dothinh115 Date: Sun, 21 Jun 2026 14:52:15 +0700 Subject: [PATCH 3/8] feat: enhance API token service to cap JWT expiry based on token expiry and update tests for accuracy --- src/domain/auth/services/api-token.service.ts | 13 +++++--- test/domain/api-token.service.spec.ts | 32 ++++++++++++++++++- 2 files changed, 40 insertions(+), 5 deletions(-) diff --git a/src/domain/auth/services/api-token.service.ts b/src/domain/auth/services/api-token.service.ts index 4576d4c2..21530bec 100644 --- a/src/domain/auth/services/api-token.service.ts +++ b/src/domain/auth/services/api-token.service.ts @@ -22,6 +22,7 @@ const API_TOKEN_TABLE = 'enfyra_api_token'; const API_TOKEN_CACHE_PREFIX = 'auth:api-token'; const API_TOKEN_REVOKED_CHANNEL = 'api-token:revoked'; const API_TOKEN_STATE_TTL_MS = 60_000; +const API_TOKEN_ACCESS_TTL_MS = API_TOKEN_STATE_TTL_MS; type ApiTokenState = { id: string; @@ -173,19 +174,23 @@ export class ApiTokenService { }); await this.cacheService.set(userCacheKey(userId), user, USER_CACHE_TTL_MS); + const accessExpiresAtMs = Math.min( + Date.now() + API_TOKEN_ACCESS_TTL_MS, + expiresAt ? expiresAt.getTime() : Number.POSITIVE_INFINITY, + ); + const accessExp = Math.floor(accessExpiresAtMs / 1000); + const payload: any = { id: userId, loginProvider: 'api_token', tokenType: 'api_token', tokenId, + exp: accessExp, }; - if (expiresAt) { - payload.exp = Math.floor(expiresAt.getTime() / 1000); - } return { accessToken: jwt.sign(payload, this.envService.get('SECRET_KEY')), - expTime: expiresAt ? expiresAt.getTime() : null, + expTime: accessExp * 1000, loginProvider: 'api_token', }; } diff --git a/test/domain/api-token.service.spec.ts b/test/domain/api-token.service.spec.ts index befc9ad1..727fe5f3 100644 --- a/test/domain/api-token.service.spec.ts +++ b/test/domain/api-token.service.spec.ts @@ -1,4 +1,4 @@ -import { describe, expect, it, vi } from 'vitest'; +import { afterEach, describe, expect, it, vi } from 'vitest'; import * as jwt from 'jsonwebtoken'; import { ApiTokenService } from '../../src/domain/auth'; @@ -81,6 +81,12 @@ function createHarness() { } describe('ApiTokenService', () => { + const now = new Date('2026-01-01T00:00:00.000Z'); + + afterEach(() => { + vi.useRealTimers(); + }); + it('creates a token with the exact never-expiry contract', async () => { const { service, req } = createHarness(); @@ -110,6 +116,8 @@ describe('ApiTokenService', () => { }); it('exchanges a valid API token into a JWT tied to the token record', async () => { + vi.useFakeTimers(); + vi.setSystemTime(now); const { service, req, userId } = createHarness(); const created = await service.create( { @@ -125,9 +133,31 @@ describe('ApiTokenService', () => { expect(decoded.id).toBe(userId); expect(decoded.tokenType).toBe('api_token'); expect(decoded.tokenId).toBe(created.id); + expect(decoded.exp).toBe(Math.floor((now.getTime() + 60_000) / 1000)); + expect(exchanged.expTime).toBe(decoded.exp! * 1000); await expect(service.validateAccessPayload(decoded)).resolves.toBe(true); }); + it('caps exchanged JWT expiry to the API token expiry when sooner than the access TTL', async () => { + vi.useFakeTimers(); + vi.setSystemTime(now); + const { service, req } = createHarness(); + const expiresAt = new Date(now.getTime() + 30_000); + const created = await service.create( + { + name: 'Short MCP token', + expiresAt: expiresAt.toISOString(), + }, + req, + ); + + const exchanged = await service.exchange({ apiToken: created.token }); + const decoded = jwt.decode(exchanged.accessToken) as jwt.JwtPayload; + + expect(decoded.exp).toBe(Math.floor(expiresAt.getTime() / 1000)); + expect(exchanged.expTime).toBe(decoded.exp! * 1000); + }); + it('hard-deletes revoked tokens and invalidates their cached access state', async () => { const { service, req, tokens, cacheService, redisPubSubService } = createHarness(); From ac0b0e702a143659d7cf4fda31344cd607792011 Mon Sep 17 00:00:00 2001 From: dothinh115 Date: Mon, 22 Jun 2026 03:44:41 +0700 Subject: [PATCH 4/8] refactor: replace trusted repo access with secure repo access in MeService and update tests for enforced context --- src/modules/me/services/me.service.ts | 9 +--- test/modules/me-service.spec.ts | 78 ++++++++++++++++++++++++--- 2 files changed, 72 insertions(+), 15 deletions(-) diff --git a/src/modules/me/services/me.service.ts b/src/modules/me/services/me.service.ts index a88ceb95..87a1de16 100644 --- a/src/modules/me/services/me.service.ts +++ b/src/modules/me/services/me.service.ts @@ -37,14 +37,9 @@ export class MeService { return context.$repos?.secure?.[tableName]; } - private getTrustedRepo(req: Request & { routeData?: any }, tableName: string) { - const context = this.getRepoContext(req); - return context.$repos?.[tableName]; - } - async find(req: Request & { user: any; routeData?: any }) { if (!req.user) throw new UnauthorizedException(); - const repo = this.getTrustedRepo(req, 'enfyra_user'); + const repo = this.getSecureRepo(req, 'enfyra_user'); if (!repo) { throw new Error('Repository not found in route context'); } @@ -137,7 +132,7 @@ export class MeService { async findOAuthAccounts(req: Request & { user: any; routeData?: any }) { if (!req.user) throw new UnauthorizedException(); - const repo = this.getTrustedRepo(req, 'enfyra_oauth_account'); + const repo = this.getSecureRepo(req, 'enfyra_oauth_account'); if (!repo) { throw new Error('Repository not found in route context'); } diff --git a/test/modules/me-service.spec.ts b/test/modules/me-service.spec.ts index c4927241..609c2192 100644 --- a/test/modules/me-service.spec.ts +++ b/test/modules/me-service.spec.ts @@ -2,9 +2,22 @@ import { describe, expect, it, vi } from 'vitest'; import { MeService } from '../../src/modules/me/services/me.service'; describe('MeService', () => { - it('creates a trusted repo context for built-in /me routes without dynamic routeData', async () => { + it('creates an enforced repo context for built-in /me reads without dynamic routeData', async () => { const userRepo = { - find: vi.fn(async () => ({ data: [{ id: 'user-1', email: 'a@test.dev' }] })), + find: vi.fn(async () => ({ + data: [{ id: 'user-1', email: 'a@test.dev' }], + })), + }; + const trustedUserRepo = { + find: vi.fn(async () => ({ + data: [ + { + id: 'user-1', + email: 'a@test.dev', + password: 'hashed-password', + }, + ], + })), }; const context: any = {}; const dynamicContextFactory = { @@ -12,13 +25,9 @@ describe('MeService', () => { }; const repoRegistryService = { createReposProxy: vi.fn(() => ({ - enfyra_user: userRepo, + enfyra_user: trustedUserRepo, secure: { - enfyra_user: { - find: vi.fn(async () => { - throw new Error('secure repo should not be used for /me'); - }), - }, + enfyra_user: userRepo, }, })), }; @@ -51,6 +60,8 @@ describe('MeService', () => { email: 'a@test.dev', loginProvider: 'google', }); + expect(result.data[0]).not.toHaveProperty('password'); + expect(trustedUserRepo.find).not.toHaveBeenCalled(); }); @@ -130,4 +141,55 @@ describe('MeService', () => { }); }); + it('uses enforced repository reads for /me/oauth-accounts', async () => { + const oauthRepo = { + find: vi.fn(async () => ({ + data: [{ id: 'oauth-1', provider: 'google' }], + })), + }; + const trustedOauthRepo = { + find: vi.fn(async () => ({ + data: [ + { + id: 'oauth-1', + provider: 'google', + accessToken: 'secret-access-token', + }, + ], + })), + }; + const context: any = {}; + const service = new MeService({ + dynamicContextFactory: { + createHttp: vi.fn(() => context), + } as any, + repoRegistryService: { + createReposProxy: vi.fn(() => ({ + enfyra_oauth_account: trustedOauthRepo, + secure: { enfyra_oauth_account: oauthRepo }, + })), + } as any, + }); + + const result = await service.findOAuthAccounts({ + user: { id: 'user-1' }, + method: 'GET', + url: '/me/oauth-accounts', + originalUrl: '/me/oauth-accounts', + path: '/me/oauth-accounts', + query: {}, + params: {}, + headers: {}, + hostname: 'example.test', + protocol: 'https', + ip: '127.0.0.1', + } as any); + + expect(oauthRepo.find).toHaveBeenCalledWith({ + filter: { user: { id: { _eq: 'user-1' } } }, + }); + expect(trustedOauthRepo.find).not.toHaveBeenCalled(); + expect(result.data[0]).not.toHaveProperty('accessToken'); + }); + }); From b9d6885f0dbd4ae0f85078bb0138bd59274a5d85 Mon Sep 17 00:00:00 2001 From: dothinh115 Date: Mon, 22 Jun 2026 14:09:52 +0700 Subject: [PATCH 5/8] feat: add error response handling in dynamic interceptor and corresponding tests --- .../dynamic-interceptor.middleware.ts | 12 ++++ ...dynamic-interceptor-admin-test-run.spec.ts | 55 +++++++++++++++++++ 2 files changed, 67 insertions(+) diff --git a/src/http/middlewares/dynamic-interceptor.middleware.ts b/src/http/middlewares/dynamic-interceptor.middleware.ts index 37d31a26..7645ddcc 100644 --- a/src/http/middlewares/dynamic-interceptor.middleware.ts +++ b/src/http/middlewares/dynamic-interceptor.middleware.ts @@ -8,6 +8,14 @@ function isAdminTestRunRequest(req: any): boolean { return req.method === 'POST' && path === '/admin/test/run'; } +function isErrorResponse(res: Response, data: any): boolean { + return ( + res.statusCode >= 400 || + data?.success === false || + (data?.error && Number(data?.statusCode || res.statusCode) >= 400) + ); +} + export function dynamicInterceptorBegin( executorEngineService: ExecutorEngineService, ) { @@ -31,6 +39,10 @@ export function dynamicInterceptorBegin( const postHooks = req.routeData?.postHooks; const hasDynamicHandler = Boolean(req.routeData?.handler?.trim?.()); + if (isErrorResponse(res, data)) { + return originalJson(appendLogs(data)); + } + if (!hasDynamicHandler && postHooks?.length) { Promise.resolve() .then(async () => { diff --git a/test/http/dynamic-interceptor-admin-test-run.spec.ts b/test/http/dynamic-interceptor-admin-test-run.spec.ts index eb55eeb9..598d3763 100644 --- a/test/http/dynamic-interceptor-admin-test-run.spec.ts +++ b/test/http/dynamic-interceptor-admin-test-run.spec.ts @@ -97,4 +97,59 @@ describe('dynamicInterceptorBegin admin test run isolation', () => { }); expect(json).toHaveBeenCalledWith({ statusCode: 200, data: [] }); }); + + it('does not run success post hooks for error responses from built-in routes', async () => { + const executorEngineService = { + register: vi.fn(), + runBatch: vi.fn(async (req: any) => { + req.routeData.context.$data = { + statusCode: req.routeData.context.$statusCode, + ...req.routeData.context.$data, + message: 'Success', + }; + }), + }; + const req = { + method: 'POST', + path: '/auth/token/exchange', + originalUrl: '/auth/token/exchange', + routeData: { + context: { + $share: { $logs: [] }, + $data: undefined, + }, + preHooks: [], + postHooks: [ + { + code: "@DATA = { statusCode: @STATUS, ...@DATA, message: 'Success' }", + }, + ], + }, + }; + const json = vi.fn(); + const res = { + statusCode: 401, + json, + }; + const next = vi.fn(); + const errorBody = { + success: false, + message: 'Invalid API token', + statusCode: 401, + error: { code: 'UNAUTHORIZED', message: 'Invalid API token' }, + }; + + await dynamicInterceptorBegin(executorEngineService as any)( + req, + res as any, + next, + ); + res.json(errorBody); + await new Promise((resolve) => setTimeout(resolve, 0)); + + expect(next).toHaveBeenCalledTimes(1); + expect(executorEngineService.register).not.toHaveBeenCalled(); + expect(executorEngineService.runBatch).not.toHaveBeenCalled(); + expect(json).toHaveBeenCalledWith(errorBody); + }); }); From 8217df8a50fc0834629ef4d0eec3f6c36b3f1c67 Mon Sep 17 00:00:00 2001 From: dothinh115 Date: Tue, 23 Jun 2026 01:10:44 +0700 Subject: [PATCH 6/8] feat: add Yarn configuration, Node version check, and extensive metadata migration tests - Introduced a new Yarn configuration file (.yarnrc.yml) to manage package settings. - Implemented a Node version check script (check-node-version.js) to ensure compatibility with Node 24.x. - Created comprehensive tests for the MetadataMigrationService, covering both SQL and MongoDB scenarios, including handling of core table overlaps, renaming logic, and idempotency of migrations. - Added functionality to probe SQL and MongoDB connections for testing purposes. - Developed mock implementations for SQL and MongoDB to facilitate unit testing of the migration service. --- .node-version | 1 + .nvmrc | 1 + .yarn/install-state.gz | Bin 0 -> 715413 bytes .yarnrc.yml | 8 + package.json | 20 +- scripts/check-node-version.js | 15 + src/container.ts | 47 +- .../utils/sql-junction-metadata.util.ts | 235 +- .../services/metadata-migration.service.ts | 451 ++- .../utils/metadata-physical-migration.util.ts | 26 +- test/cache/websocket-cache-partial.spec.ts | 5 +- test/domain/data-migration.service.spec.ts | 60 +- test/domain/first-run-initializer.spec.ts | 15 +- .../domain/metadata-migration.real-db.spec.ts | 329 ++ .../domain/metadata-migration.service.spec.ts | 668 +++ .../domain/route-definition-processor.spec.ts | 49 +- .../schema-healing.mongo.integration.spec.ts | 46 +- test/domain/schema-healing.service.spec.ts | 170 +- .../http/assets-cache-memory-pressure.spec.ts | 2 +- test/http/assets-cache.e2e.spec.ts | 6 +- test/http/jwt-auth-middleware.spec.ts | 2 +- test/http/metadata-access.spec.ts | 2 +- test/shared/public-methods-cleanup.spec.ts | 3 + yarn.lock | 3567 ++++++++--------- 24 files changed, 3580 insertions(+), 2148 deletions(-) create mode 100644 .node-version create mode 100644 .nvmrc create mode 100644 .yarn/install-state.gz create mode 100644 .yarnrc.yml create mode 100644 scripts/check-node-version.js create mode 100644 test/domain/metadata-migration.real-db.spec.ts create mode 100644 test/domain/metadata-migration.service.spec.ts diff --git a/.node-version b/.node-version new file mode 100644 index 00000000..a45fd52c --- /dev/null +++ b/.node-version @@ -0,0 +1 @@ +24 diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 00000000..a45fd52c --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +24 diff --git a/.yarn/install-state.gz b/.yarn/install-state.gz new file mode 100644 index 0000000000000000000000000000000000000000..6f62b37db24d3e29e5fa84e080e1765a7b990842 GIT binary patch literal 715413 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

*K z-}N^?eT2Te`u+UltB-HqJ=aV8(j)jiNC_N6!Z|l3^}>_l z?0+dGpD#UZPuu-Jw$h)XW#I$J&Rtw};`ETqok zy4b`j*-ZjnEYhU)Sg!I*9_=5V6;^raar<7O3cpCqYE2W()f9-(;DnsSBHGVPc!06< zFCjn*L~U2G%De33{sFm0s;96jLt@nY zs9~je_MX%e(&s6AX{gXP>5w(KdHlYPaw$*Mfb>fT@EtB52}q>Q)5G8+@~4MB&H&xR zTK7(t$}R2l+^v{qB+qm#9&u-fgq4+sy{x)TkH-xE)th&N2m66o*nWERY;)pE58zV` z$uF(o-bAq}yis3pvk`xrN`haQ|inpB!u>COCxSF8hGCmm2#%Ze&DBKFb3 z<3|0jzfA1wkL|;6fBKQJd2fkdEI}MR z&y|STm9$hZ@esRUw@;gp3mvM2HZnFe1UiwfN3`^}Hx~Y9>XBY}^q!vJe<^U7i{Hx8 zW=+k;tZekU->)sK3m(*(Sg^>UYqHv2puDYmwnowhxRA*}Fn19Sd;^#lkD6GdBos)q zh4V7PjPI!Q_!9 z05-@TW4 z>CyXc*@{aHI9R9s2qgpwU~bp++MVnUVW_qCTZKQaK)xnj`&7VpSX#4pL+_i$@0XNA zBfCQxF7h8yud>UQE|ffL)^VXiST22|3AlXme5`O7N0Y0kc(&7ez;?UTDVZ3Lrp)J+ zz$LKpL$CWh5|JnwQ_HpN@TzC(om}g2`npbjFl%DGWxaz(vp_c70ke9pA9e;V4Fbc( zOITm>FsuLV$4?N|_F=qgA7AzM=FQdm@1Jcbe%Vp{9(*EMoocwSwY%l6m*NLjd^8&( zt=a)-bYQv?qhTZFlh<=*C?yDB(w@n55H%9Tm=i#LLBuTGx=;8L>=cLXB>DF8BwVyQw0u&jIQ6s$$ zb*_(j>edE_JQhFaz4|R<&J(fI>Rsfrsimx5;8d=AemyVzr&8))stFauefQSp;`!t2 zPtRY)z4TyyGs*w)Pw95{$ok$1Qki^R)9^@!1wAs0!)|m&JZODf$#1jk0jkP((}mtz z5u!!5Mo+9Gsn~;W`GBHs=-TZ%o~YG+xDbH|6dA)ed%HQb~=wg z)to_~KX>g;ehoxJD7z=a*&_C(itDaQiJ%)Fnj7TOt3dsZ$* zExd85O%H+zThUTVU6qXotK%dpdU3bAfv#h_tic6dtL1TK5DG9$bjF(CU!$HPeBEOq z;or@-zkU67{-;$6@R);h{+gFa_z34 z9Xx$&AXbfbwCFm$Z_y<62pcr_u$Msx8m(tq*y8T(fPU1T=Rn>SB!my|dZJCMW=EYW zC__V7G}#dD3erh0RqNazbw)x}m?uo>mCk zRK4{&0>E*bdIHtbj+P(Etc_qt2O5!qz?RLv;7fBROB%X&CHzGuRT6+(=20dYcZ+A( z#n1WJRP76azhWr2aOT@{eP+X#M^UHJCQ8=>K!H6+f(e1U)nL#J=BuvRXA$3@wL5-% z|N71R@M^sK@ws69!Xx<2mi;HXzPz_bA&RbN!pcT2ka>ARvc`aWC5RWn1EzPzPzW>g zV6AEENZ^1k0%Z@<;o37n=FVk|Jppxs4^*t+A&D$|?W*b$Y0|jsOo&jI73z;$_F9*> z8AepVARAC1$tPX)Qsn%ulV#p6+mqY`i|oau_00t@K!F(@$JGed^V%*Ih$5pKz)tq! z^s1?$ttpEKu$8p1D>e=Boc(`(WAQ zIC)3BD-(b>bwT|#9MTK7jjNP0gYsMDbSFGBv%miE)7wwBVm!ZPUwQz)H?bP!wskaC z%zo^k%R&Z{#oH1KtsZBFH0}+q0c0mUjvjVT+l2j~7*~H?WPR z0F@YNEMkXMU-qwbRBz|4ystjoap^`vHe?3g<^lBXHS}tUgS`B zA=oi)wQED9yjY*1fFps@Fs2eVWmoh~gitkdolQprmmb9LO|JTJ7Q<<%yD#mS*0l4pMcvBgB$ny>LHe3O=ivbfjMt6N z$%KdPqciHI*4moEN_yfWOwFoz8+{WyDiKQp<%)X?wQCYzTYyYI~@9Pt)dTa1|&lsyJ9h}}GDuClN# z!^y35T?gk@uH9a}oqRNdH{rFVV1aDDx(Gx}*P$L6{@IfE8G!Z`(#iS*qm~OAc`X8J zP&?s#GN-Dh02=p`4Y)3S(mZ8lVlP0*p;zfCuNdBo!6|Gj+^bj9(PWtv1OU9SR~azx zy{1a6`*Cg71TFoNn_T0*q8p1ipy18v9^V+lCkKlkdAL{ockS)l`CMzpOOM|7F4ixw z#Ccf%)Qcg#*3P;*(^!i^2odVQyW4s1!FJBZEgtOjloUD%+W^4XA;L&1bFl~}r<;rL z1|{i<3>gVe-J<-^ZG15e*y+Kdwx%jD4E=V<(E@U^U_f`t z3c=QIL3G=;O=FQ{q2wB$>Mgk4KD#GhEW@JrPmUXD#e>}|oTEP;Ch`u@%&~j(bukrS z`l6JMlc=RLFLllYKOj2C+?WPpUCl@C7yQ%`nQ{1gS{tU3>fG+Kyaeng@X zcp>Z4vYr&ako4MJyr(5BAKN=YG68}ZtEo3%v_xqG`tYE(E6uj+ia|OI%EImaE*Y`9 z7;5=<7qyPJ7 z)3>ir`o;3?KL)$wzH9mR^`}1@zQM9)w&B2LHL|(9x^3C3vC<>Bpl`PlQ0hQ#9#pYj z-Z6N@PFkB#EXW}kZ&TEOsoS-OuY9J52feua^0pDe2$Pb^W~^u5lurJYrYzXqSVR%6w>Za^j_d*%wmV8VgF3ePSULA0X^ z#Ns*Q1v~L1vbftUKD$WsXF13XkD6NVUo&bB@^kd(g@^93u;Q!yQc(|T)$6o(JL}PU zqy$B@{i}3KhIm~@&Krt6F3&c%pz5QS4A91->jHI2EYARP*@61RmHXf%^^4t7tcu;q z9kJEm-MQuPzBAqp?q<;vkhUGG zl1d)SV~A6imXuz1WxW?q$YCa9+NyRy_fO)_el8VtN4IS3U@wx9^n2g=jl1JTbH2VQ zP_V2JKR1Bu0G`ZsLW^b=;%v;PiXD+>2Y;q?sk8RPlIZo@KmPX3yX$(^IN^oI?g=>l zx=R~)&dcW#PtDIyh*ngJI2Ax#P+q#v!A36{FGHh1IYDhiQrOl7u(1V#+1|<-2pmVw z6WpgF4ouz84oL`q!arEnt0=aUdE;Ya4b~_2jQ^70)C-T?x3_iSXKjJW1F%G=g5s$w z-`I| zuG4^Y)IM`M7~#{Bf&Qdpxd||?zRz_rI$LBnfdwlp0xG(Lc2uWQhHM;sojm0zWm8rx zHKG;!d#VL0x_Xl=%6SX|JKOV05&x#l_A(0-6FUtFdmtg{KlYSM@CRwqUz8K-;ljnP+MJ@M1yt z!~LkI0uB*sf9zFny9lvcq`Iv#RyjkpiB2h&r8k9#@8@F+$G?;+iI*O>r`pc(%b{WS za?i?if`Ni$&?VmW6o(}j+`jJmSkRj%vv7Y4am$MPg!g;3J&0rMldAer=yn`OAj{{v zBc)0d4ZHYT3+tmQZ|t6{*G(bFN2%^}??cl~UZ(M{q(>!jW3`fA|E=?~E8E+y0(Vi* zF~l78#C6z?c%KFX{NV>-+jXEJ@`4Sc>UJKx**~ZG;c3b4RhpgaUDH26B#`(qi9%f7 z{^8Y|=Piz3dhDLcuYWx<+(_$DtzFMsFMArU|DU@zYqIRhvU1I!GO6qetD?9?^HPBE zf|-leH`f4zpR!uXD?{NyxJydC@Z0bBwueV5_Bls+-;N2Iloa89&fcq;bBwj-90Ma+ zo}&c(Qk0!s!`*02JuH=wm}@DXS>!7K=~1yw`Cz`P>gv@vvQ_lqaLXYzZ8`EWg}cXv z(ng4g2Us`Hz({Pn3h@ZHB%w$pA?{X{b+nvuJsbtG1i`|dMigu78Rjr2$HVj#uB6aK z5z(qs0nJ(TU7MI@jDov?W4J=w??QW2h)PgpVDHyBFII3r+k^e}$M(YmrZrd34DUN~ zm(``8Osg}DzR~MGS`-8;K_5J4Iqv*KeX{6Ma`difS*@ZGM2#2Eb|q@0ZALJ00rW5! zNTxd@cEIfv)JrT(WH{kx+XZ+O4Kp2Mq(hB`UuQDf^qq0K?6k5qH32tqypGr zQL(3UAWTV#(5c`?+{!a~h>0eG7a9XF9dXaWv9E1Zk0}W5#o>?QSvCoe1rbB7d^dv- z4eq95wC7#=etrG)^4K(w*DlWQJa)HCY811zXbQm}%FGbtxx;pJ2c{$3(*ovj!gN}b zqRC!~Db_ZQjxk7It|8;R5`^8Ane=HHIzT;{xV|O^zn?0^GL;W^jQZGIxfILsT*V}m zf_}NDld72L60#_Ja6F{=N}&qXT&XIS3Y08_LHf8D+uB}*Q0)*qn*};nZjEnga^`S-i(mOCjbH z@OkcbQy#qo;#NW>V|Ii*k>n69WSFLiMoeDNUwqJ72Dys!~rX&b<^ z%4M;V7?|D=19FXuQq=CKP6bNIFedhhJy$_UyA^#EC_7TBBAQm{kzOW+CUKsUsZG-Z z31?2Na;<~FF^mbLD(rcrSbM8U*)Jm$nG`Qq$`>5;@%=aJc6$om#}2rf{t3=dbm`Kf{0Q$PCXhLr;XxW<5_ZY0(@wQPmes9 zr49r2OLQ^j!48u_KfT6+o%(vbAbf#(G?cbg>ukpxLJu24G5Wu)MIzzAKy5OfLkWkbATE8xEfnT4EU;We z;W6z|%~X&~0@sPVjb%jYMY8BJ#@hpGpk{NwmhRX4pin z(`6M!JMJScMPC(Wo8WFlSj_9~d%}{Y6+B}LUW{&W&T2A8MqQMkY<%9hzu6cFi(iNn z2I_V-!HNdwB9@n@JCELZpT6-IR5obXp)}7SOkx6UfMMY(I9oHZbA{ux zxK(ss=#4^}y_NnW9TEbPdH{@H1@CA>9b?y{rEt?=9};rK*`jSkpPwGg)eOns$fcU| z-HRe;MmIn~R2Zps?C`SK;s_)iUcX=nt!a#IcQMMQZ|DW>JEps7-;js(QcbB@yiYSf z;zSSSDC*OoP5mh*aa-s)0K~AXC?dD1US`y_9`@tM=W9I}_a3>Ekc)k5u8I0OK|+M8 zl2C$m8jUI%tgI!XFAAqMtwHQ1Vcg-8n4p4JL`Ph!PP_|^Wvx=dJ;6-m5k&TiQh2~r zT_4UoY&!ZZDzIhmQpG7F~ECL8`at@zmZgXmtt`R;#DvT7u$$K-Wjr>uRmH z)%RgU$;L;AS9ltUjk?7GlMsS;X*PPmwcZw`Kc)yZ%TPnlF$3juobCHEVr{nHB}@62`pn8TuE8i2m%?=*yi4?#nwg`&E3?=N5)gXz0tw zf(qNx`Vl?aEE>$24x0iZhf+5O=E(9XMA%04?Vf39)ol&r5FDGMDHB=R;HM%Rg*52y z1h5VsX{z7HXU0nM*)6_3td=dvTz@vWqQ>7>YELgsEWc1UD*qr!=C$iE-hwJtFJ9R92vhTmqbgA_hyYE6u4d>v%Sy*)HARFAwELU=^zn!G zabB2+c(Q{1G;Vd=y50Ahp27*W8(5s|`7muWQNDA7BN*%88C z%}nZ5oYz}YuRVq)|2(6QAJFFh>YuIw-Fpw+DS_5c36zV7m{Cy>Q?6dTHgi{lfO5wf zX^8z4F8{Iydve~<5hz#A-nfR)8<038KPYiKswpEDi3%^MXJj0|13eIfG9XkBI-5%v zK8l>IbJQK$O&ysi#VXE2iyc~}`Y;H#5}??ec_I%J6=g=S?2o zvu=$vtqlgJtqGM3d~@`cOSIzLK&eNF*9yyagWg@j#$|{K9kmhKM`a^1FecU-0!J>M zQSRS-XfNM9ygWU8Twkw0U8^*@_xOD|ujS9@fs?wkP23109e#0&6YbE-OIrB}r#x?w zP;6TIF=psioSyOkY$AhFmY7%um@DZEmy7)w!2vD7C~BxJNBKE&8ktL5ET{X@VxurN zpV`YV%NFe3gLg|YmOfX(5|Lj{;@J2d(Z``rp-CYalQxSfXHmbnxM}Vk8=Q^7j>AG$ z6OaVPJgO9a%x>ug7RG~EzxIE5C`A~Pkfewv;Zg@*a`-)s3&lydr8ZIS0*8_jd;t!O~YK?X; zYKUt?nVvEzug{;>v4m0Si%K>Z7vH~}nY zgaNFb_I$DS3$aJI_o&^HKC@=ve4}*W(oh6aenI0pDIIO?5ap$UW1(1YjsZt!t>sm< z;#{@^&yK_UMwnBp$nD;gB;b`m9@Cz#%gqxJx{mMw|_MG~=3 zmYyu9?cP^g2-SD&Hu@B}c2ig`gpQ+8?p4Sxt)rHFb;ezzw0%pq53SXft%(w4ajNu_FgJUX(pq;?l*tlJvul_EtvT0mM& zP7zMzPW(S^6mLvJiJq}fR>7!KVD9Kk5k%8~AqyzR+h6GOOxSMdNZ)pi@Z0u7~Kw8Icj1 zHcf9KvfAm0nuFqa>{i#pv655Z+v-U-HFoYjf?wXn#Lo^=4vjsW%qzGuquCeCP?QsU zuozYjkqO)w(8?4S=$WA;RV!`li@D8rm^EpzoS8IKX?%|o=P-(vtRQ+#SU6PteSJ#D z3EJF4(5BCG`)OGozhH+UK(4h2FCryas`Vo20`lVWio{8u6E`mGQ-LplgPZ4A6uMcK zqPW5t^*gBQ4@$JHFlZNP5%g$cMToVUdh~6Nh%#B$*!z4wOZvM%efthV^Kt#}@7D9n z!}IgCX7PKE;raIT?OJ9k`_kU51d|k0l$aI$6w5i4oTAnq4M4?vF=cu+7TSLzl1ZQ~ zEOQtW6r~qDON9lz7MIu{9*9c;XJm!QHIxW3>qbjbU=>?uL7joMdpp+&D)9*^(*6~j zxTd8e%oa;azqMYVVvMF)uyqSV4yWiF>72l?M_^KrR3NG3j;ylCD+SZyp(rWzgpQh{ zCsE{2iLau>WEBIg<%9a<^74(T{#4fC51(ar#?!~E3f^}f!dvPNv?jBx3hm_(JuToG zCRfS1;)AZ8VzXaGSxuSGM)KOxffJXojIgRggSbQ2`{ib`qNMnwLWuHMjoBjM7F|y{ ziE*LYI)k>1!sWuL-Gp=9JxD@`K9+qb*?DCBG>vT^mZ#d5%A~~EqOd21ipJSU6b_~g-FY_S zN+lZ3y+t0CVU+4O=G88L>Lh&rs+saK4KCjF>bHoUE6;Vi&N5!6^D*_&Ksqi>*rzFf3q+0}n z^=XLW2=gf8YI2Y6h;(Jg{zMq-`Kp%Pok#H2hNZfON^dU&k%Xx^bko@Nz_Dp*^kGpO zBetl29a(f(5vOF4e=Ws1c#1kGe>T`8?Nmw>`Od%}L){p9)@Hig64JLm7i}UTR>hg5 zB-76uR`dgf8k1&4?Lhe!eFO~&wb^=5L*sB>+5~eU_PB+7i~!fz2z2N%tFG zig7t8_MmpsivCy_AW(ONso@gg5Uexw*(joPbS$#wCh^QqhU1844MxAn6S^*Q9mT#*W6sMKgEDPU(=?n_Vylor<2t>E_gv z(+MFMfsdXC&z8)EzD7jwwqI6%?{Xd<18SLiuXKHE7UqUFzNg7x6kyw9Ycp@DO3 zdR0(=)U)D4=)|FFJJ54+)<0E3CBRqL|ABm&KrH0f~siME15iguGCYmEN9T?G;y@{)&Xd>4a1x+Nx@$0kF& z(4a&bC-c#|n4$8iGB7d9;y%IHVJRU-j}yVJURiBVc>dH_M}#f4B19LLLZZl|;Emo( zyo!>q5*zCkZQO%jMCgxDG9hSQOuiqZ-*P93fml zJgC>E+?lm8d+ZnTSZh_p6orOym2ZwlV{JG+n9>)wYjoV|i49)wXar**$4xe}3HmN5 zkYLBihU<`xXk7BSbz>_Ep9%BLr?7wkkzC zK%8F#yKw;XL4(!xgkIdM=&igM_R+>ym0;LF9*}y@tPLSlafRud7I#9#xpq2$R~|IG z%{Uu~gF~XW?wnOWORprc=g@~x+2-84b;|oqSy-xJ#UadYw0NLhy(HHa z-jwJqSJ9{=i|>gTYYXhrkiE`+lhdiNPE~^>DlHHh6xt8E?%1usRwj~jTsw`7uwaX9 zBnrX9&LzPPda$K@ro5gro<161twTC{^oVp?4wT}xg94mkEKx9JgrsjTxdpKY4W2_> z!^DX%aK=Cc`{B@y8@`Bq1j`A&qE-v`EC*0fuJ)zTe;O%%x9CDC;wpF{#zFryLYzbN zkSk^-u{<#v(&+llZ7p4*(bz1;VMZ!^We~RTVJoLjF+EHHv&EB>pA@e+)UUBp>HB;* z{I@^V5Pf*}c(r2x-a~lnMn~BI7u$%c2&#E`jOfGSu9#Y!c3@3yjNt4Nv`E|mb9SlE zq$_lbmidDk=r%PEFI3YtP;7GAbFYIm2=1)?^m4hqhD=|4lt z8dzbK5)q(^TMwT^j71p)H7{Hfemb?HIoCV@?>vH+Gy93Unv8Of!}C*-JE6i!^MZ!M zP%!S&2-a?AJF-HR^R^03H3Rpq?!s8w5c+*&pl}QBqTzEXFd>H`ymkyCWq2tG=43@3 zdg#T-I4v^gW{g;;CYOpN$7mQ|xsg&xwu(>yNw?69QpB>>;x4w05?psvc_##ZI7qngp8Dy`{;=8~ug~tiNAYrY zU-2+CUjgoh%%aA#t?Id!cLJB<^k^stL(i?Y#_$pUL50kv;3B$Q9RQ+kbnBaVU=t7& z+YB~Tnw|}XBUw&K#8Q~vz~quS%29zJ{!Wx2L-?>vNGOzoiroL?m%6!Ng;cG~w_4;gS~69$in z{Tpm175_vk7S49X6ZI5*cH)2?QwlFo8dp;6*FLd0Jm-MFGo^Ky@CnE04Mf4I+?m@O zV>G1bibaidJ0s()EY-4RNJQ3Up{W%lXV?Z943ul`rA*L7yT_=_o>6 zT|fjc@nVX8l^(cI+R>4{5|TUtJ$hvz3h#w#jCOL=Fi_Eu8)D>5g-Q3q zpE2au8=gJpjp_Z}Pp0?U0o0ub@z&(#CNNjD81%p5jj?EJD9ynnGQIa2;9|=jrgbf% zk`Jkat~IG_FG@~VyuytF$ppG6ZGmw#SgzsnF{0og04dUEicf+87} z6LngYQ;L2-fGlO|Fns4ubcCh3=xP0$XyfwS7 zCaqlrXL(tt4A3Su8-Yvw5~v*$mh8$C4Yg^z3rIzwMQ|k`$flR63M|4jLic?L%4zR- zj7rdr!r3B$A2>PCTPaISZ6__bsu$h%jF(Z_*QbPrZjzRCTdiV<=`j>q?dZ|4W~Yg5 zm_TrIQ`~-}hw5(lUfG{XI9Ihkj z#_ay~)9hZ~x%VE!n>)86e>`SUj92u|+5%CLoh~4;=V7g=cx?**$WtjDHVQC-{L1m0 z281j?o0$cKNyIaJT;4S5ABJ9_)~M<5)ZOWYogk2clyNO(VGb({aiPRcNf?Gs;uRb) zcI^gz2fYnkYffa865%h33(z*)xAvS;X4@Fv=$Z2&^r*4%)+TynxLa$7JUg}HB)l+^ z{-Y`7Zddc*;&*d@8gJ#?KkScd_2=7=>fXb6YkCo{66u;sL3&38yc%(U(E6!|A(r^| z;G(}1?Uc`4uqY=ZK0XlKKskt3V_~`(IDbjvHpa|x3Uo;5Q?6{jPb~PqN;Hp z^5W~fb!p0phaIuE`*3t@fRxy>H;bZvk6Q&L2ltTn+bWOfsjfrS9+#*B2dz;?td-vXhcx!TLDvGNQnh~%& zvZ9n?hQlgMElceuMqFu7q@6GijW|$Gw9+vj9oiVe15IqakdmD=hU+}pi?KW!R z2o2@8fJKmr(|KD2U{`YPeE2BbOJMD(DfGIkgrwzc@M#@OZyJ!;LXixQPa#ZApr3s+ zwfMFAy+~X_FC2C#Yn9K;uByVxwf0_FGs>3dp4@IutgEq$!G)X?8JDxHU-e^3%@i{rJp$L=`9DmNUb zB^8w+VVKa}G@UjnRN;!EjW*HYDYFlXM&2P}vWm?-2WBPCG&PH8tJ9NSIkoVu(iG=4 zg|<*qoGClkUeLcsuLZ9-r@!Q~Hk(qlH7Na!&NI0Y_;U8 zB0?C7adCQc>lowny=np$5007-xy!(g11IP?lzfP*Nb2i!Cb8LtH=UM1i% z9ST!Bh^9oERrPlre|h2ke85si@mVB?2ohza7ZUn)G27@58v*~ID{y5 ziwf9@caf$}bEVmwy9;P$?F~=`T1OSp$1J9?wvb1woz@?Z6u#bCKdnr9$cLI0aSqZ- z(XXU36{=ed4bu^>0^35SCz+!X?G~PTo!Un&ud7vz_Z`Dqa~s{@FufzRyc}XGOR3Cs zbZi4{6bg~T<VIJf2{Z?w5V7pJkvIPiWmZTF_KDq4Qdd( zD0w2^h?WxdUG`$zroK5g=j6qUougLNSI1s2Bz+Af*@lwd8G;CdQzX=G)2_k3%SH~M zw70o(XbNL(GvCVIqQEI}MV3LeM)+%plyXuZ>8NrBWMy$zyoIM;=l0#x)BCTlM&)}C zclyb>t?FPMtGmr(>b&Ye79{WXK`xpMH-#Q^h{6S zP-Vcca0|z1XBZc?_$F!(&N_O9HG7dpUfV@E?0Bp zTi={Y;X9z*8I^%rOG^WSt71VWSZGr#U#ngu=a4qoOAJY=Z?=N_F;zEZfLJ396q6)K zXDj|zwFcKT*~*aa_#F{Onl5}+eExYzb?f@z-h+4(QrT9MSXy4q(C@}(Xv24{k3bPb zNCKv2=eZ0OOj>NaEAiP#LCDhR`6ck#re8tyllqb=YF_+|Q<6NvCWyN6EPpYece*=ixAtsz9+;;}vq1 z$l$Stc3Gj8(s5oyy8tWon40Gl+O#A#QBf}Ba@8Vl`}48+8ywt}~R^TG2+v;G~IV36fC}r}&9Q86~FOC^p}^9s0C) zpOwV_bX9QgzJquZS0ye=V2*1iYp{0FvdGE^LM{F1Npg|Zt)UWwRNzrcVC2AU3AcJ> zktA4W8Uj`W?+*=L7gIrY?r6Y3M$i$stuuQkZyc55k$^@ao3F!eZ< zB{Lv%ZHiP(+x3Zq_lA~j^QL>{&BmA4$engTf5m4RbL7tl!X z6C0$m6%DKQJ~9Ui@{U^P$Ym*tconbuTbBp#*UQhHK;C;4Z(iz-%pGFh6Zu}Naf=-t z*hy`Ol3T$l7{Lx<1fwumS3%}iBQe&OC7XqK3zgvD8p z*EDi8#}48|IyfwE1;)fEJMPI!wc)r$6w$)z52;j&U;AN^e2eUUn%(O=_ugZ8^B_ae zR4dnpIggNlv3CPv#-MmO(!^iU>u=zX*`SfkNm`{zxY7$Axv>;^K>{?PsH@;Olwe9@ zD`@;U0=FIK8g04+&dc$r|Ldh(*sR1x#Q~mEn!3fvBg`L#F^zEUpkT0zK8Q0ZkdA_k z8D-|t#_3v4V+nd0@rSN(j3A~h=vU~elj3iung%yJZLfmQqQ%Uk;7>nMU7DX&Z7%?o z{_OqFZQXkhZNpo^{SG3hHr&(Q8~-0jw(Q zG<(;I)yj;beVWIDc9uY7RUF$xWXKlklBnm+5l_BpIhL>os=TCwVN`7bJTH)I1YUNu%69JP!WX!!52}rgxtU`RqRexIiU7t#s!;Ylf=wwhIRvPiv%1Q}$;8|MJ_@W?d-XE0G#oK^?d z15IQkAu$yVf>9iHXcf#_y>&Bl0%9VF8s%Ai80Fq8^g@46HNmV~B{#o${_g$L^Nrnm z?;*TdO(i7O4i}Ir5QaSe5)ogWo+%tw^X6*IuG|*#h^cXPE(StLH+7ezScQnL{UKJ6 z{f->XD}h)&m{_)<#?$K=llF+MnlftmI15LGLwNFhZ69nESY8^R!gFNIwmr^)!60Ix zsoP-|{8|8=HPFu-{R%jZM^RtJ<2qIh3ttv*EeeOCo&vPfA_8NUUq@_2dy4LWvGXTc za97Q(qm1AE@c7=loBQ_OgLw0tDx++VNSaZiSB$FG`_hHWe8&EwM6MYH5~wm2pH!Sv zIvZl_`r@vaGVp9g76F$LdPNaNSYnk_==#BTCeaR~N7L$545>{kZqg~aF>XCy+6%oN z5h!@4Xqqu4!*H-q-_Sa>Npq5E#p`7aQ3_0VwEvt19UI)Kl&grmpqE5cOpeYzOF>f# z)w&oJ`jVJq$&s2`1Qn1YRZ zbL&VvbD14*E6~$uJ^J9gIE3fITtk9Tv}r;ug$u`J@EEp9|Eq8(Xi`ML`3r>D^%haF zMUOt*jDc&s6lf|x3jyLXrlDj-)qqnJ=eU>nxNX@ln3l77cP3SpVJ9Kuh)W)UO~3R5mA(LokZZ6&{c-`+nx zUbVHm^SFK4+~>dYU)k4A68bfuf*KYt?jJ46qlfWmu8Q*kuLPfE?&N0E4i%b8XuY9AsXwcfD=KsrRI}($S6&qkDgs=3 zY=f?;E18mrkkPXdWu-cp0;M8GQ7}vP^eIyoJrwg}&*j`){nziG=6d-0$7}sw_a3<~ zX7pWqSV*}LV05zZXg70d8*pJ@gjKWNDjYYx0@jE^SmUWs z$L&`^uqck}kIw=_&*HuxANqHDUsuV!^XR?J>fbY~|Kq>^BifAaAOG7w`p{tEA zm#Yfp_a3${B{x0O`g$KgP4qR*~wG}LOU0)Uo!k%g;Hr%jQF>WW^p+3AtF4gNxN{ugBqaqq#qbfJ6` z16v$Ttxc43nv#l^r_M58=J-Iw&>NZuZ)Mrz)+(saAM4B z?+$(o%9~sU(8Cx!ddNe>kDfQfJ^nb1jsm5juHZOfIoqJ5T=U*bL$H4AqdhmqeD-tx zt$@<|?;qYhzFd`|x%1e4Ij82U{N~Pso4GQTUKXJbRAx!}nBHtk2Qw&A1b-+AjYBXW zafOQgH2wa^#^Cp@T}b+fMdN)Qi|~Tjn)rmrRpvN3;=(*}x5!D%)^BCEFY;;^i$_XG zFKZG=K_mXuNQ`|HOF~VKsQUElYJtt;4tW1;)yBrc(i9C zKV<5_12nMXm&J=B#l*>TI3uNBfA{{w<5gLqdym_tr|9c^I+QgqT&t9&xaop;zwn|6 z5{F#Dw5DC+7vj%#AdeWeinM$j?dtkBg$1E@p%WaGQBtc;@!rq8-4=A$So(zz5uuOz z70eAR`_3sIh4W>d=t0#K93s9#ykZJNeA|l8ETJH(_97593n53^foSKOB8f3*n!z60 z7sg`1(2nsG&PwQ1i~fsGMve!lM_5rgTBJZ+cR7(?eN_rHYF~JYzJGaqdAyoR?>%x~ za+&-&>eA|@xP-Q-&_u`PM^xWpUh7S6l+%^%U8hE+3NR`Z2E{Vxx}df)2S(SxPwpf_ zL-b#x8QWSA4?F?d5r5Wq#HWFq?0*Nc;($IpvaH13kXtW)hB`DA3chNf*kvzQ= zPB#d8AS~;w-q9hmMQC0gJuP8H@y6N z!JV1It@Z6J>9_y%@o|2=epv6`bdLY!s~RI>j6(!xTw^zP9?LUdjbFuAxTN3Icqup_ z1UM~fN*c%=x59W1ho-LZ1#-<|^ysDy`fXUFGy0sU3f?9F_O!kf5%D+}dY3E^Aj(}J zoB^Q`K~NKyjT%W{1oz{;pH*l8kENs1AuL4sw3hb_$bO(sl1mcoP^{Hf<+1};9Bmn6 zng|@Vf(Z{$MtYVqn2kSaHexk`A`VBKnp@&RRsqkvMd2@HtbcXW zcj?Z9cSXheQ!G9@%Ol2tN=`Y5Eo-SOI@K=PC~SvB6Ib}ti#={diwb-6krS@0)xJK0;5u59eUj1?zD5elWqaqj9N zB`R=XKG-(h#oCQ}yiBuU(u3uOUSUw;Lhp8@cwF)bE3S!6av7Y;>YeMdqIRNxN}xxH zy{O?_O0%7=k}NR27dGzh5P&$YNo&!bKMUf1y%2aq=lJ>YS^&QH@LdYxz6M}%3GrJz zYK0uL^3g$!%z@2fk(Q#hx#VeZ)wc|}W(XlkF zb&aJ0>6+CjDs635MMP^gy?u)MDvS?}teGa-GBp%yDFWlU*2AV3V9!fDMLqG3sq=DO>6k1BPc8?(mxGCi*+oj+|jm+`gNgRVyITL zzG*~}_k3aVGPbM2k!bDd^CO;iK|~~QTgsVv!m?GHueC-?l)#prB34K9&&C<0H!(af z44Uw0b{S?76r)2#%wF+41^O|yZIr0RQG~ApSEf^(Y5chn{>yp(`^$O0-T`vw!Mrue z+iv|nI{EGpM$j_`oT-K}7QuVMnU-RiN`4-d97Q_R>M}b>@GoW#(#6e{U#PEB`cF9Y z)i4&iZ4*(%J%c{mQ#)yCnB&gOhQsRNTsDCu-b&a%q6@S;`EgDZnS>TKfffIzqtU1C zjyhbT%%Fs38+Vin;py;FDMlMYU`GL$^Vll&LdO71SVf~qYU({-IAgM5!kT+M#Rvr|t z2_65PS>h5HwN}A=B-}%<&+*@WImg#8+V4G*w`O>t{~)SSkJ~PX!XV*9sb0^vBc&%* zf9Fv#%T(hz{m|Sli;jtK2=k$JL|SOdJU&jXK=l3V#*!V0u5FMy+Y{MI%JWNG+D$?g z0;}_kv}kHpvYUbxz@#cVLD`>R33?WdItndlI+72GYQ1H~uWTV7p}eI@MepC!zm_41 zV!+&Xjv?-%@Aj0h;Z{6^|7U3FJ=qANHs_g>U zox*Xh=_q+beoGXj#)CEnOuVp9tcrb9D`lFdGx#}CaHD9?@S(dL!n!`me|MVX8~gaq zLwRe8Mb8qobS5pOFhoQLCBMpdbd{wFTQ{jhM3|Hk75Z{9+%-k2o>L7i*o`r$9=uIX zYA8T#%}%8Fw9u?p9S$xSK`W(3PhnzEkcuwH3k#89L(>0Oz#VJnFf`YC0LL}XSVO;| zOeU_>UC~QhTfO$YwrgC2evG7eC@N_MuLd?Gf|^RT6eT%9pKODYb1Nn&)MuptrFrFP z?c&aA(OwDl`V{}WPgDF^=;Gn)_uql7zuDKw@tueC)>I=JQs_G>xoD))5Xwui$RTzr zI_60HEgi!Fs2Ewe&aW|zGRqK(*IJFpc5ezpDAmmR=1sw6YdtiF`!m-*4pFaVDIL^T z1jRP$yU&NuLo~B2K?)_XRP=C%rl!%f4$2b6Dx+SsqkgJ=ujlR#9eAu9g2iQWa5qku z9A=Xmu3@tBb{1dR2m)gZga9jaE=5Vxm;ZfS^} zP;QJEia`Vp5jVk*l1v+28A)(z;up~|OS>{nS`B&|G8}^%09k(5mMsC_RajDu#}H zeXjqX^IWIE#=bVqcOK4L(@Y6nY})j;+N0-FG>qar3Plt?@H#Q#G6@l^xU>G;mJtaY zE^F&)CndT>SKy^0u6Mr7DjY;B&O}dIk2k25;S5VTR5P3nW-9$~z5V%vk)KX8oBGN;-+Mf7a^|wYI(lJr`2`N& zZD{veLuN*sNWVX^Jk%pA^|cla+T^%0;aZ}1)i>Ul=YR9XJb%))xv`<|J)pNH+NK$? zc_Fq7zW6EHMlmgiGkB^XDc)lxXV~bmbXT$virof#d)y;j&XI};0lL1dRX-lf}`n`A%%zpMLkvzRapQ*#+_`&;@<1K3vGznF(U9LtSQTM=SyRt1N3LG3IEoCoq>;2W$m5+-5= zzb487@}E_Vel9~FS~oW~^u34k)-+?UG(ZXZ>ac336$V%Jyoy6Z6rwX?#&cGLKsZ97 zE?|3U;_ljKRGaj5*n$o{?!@tsz`C(I!U9Q?V)UrWJ4tw$t^wrK*3uU#M4wfeJsv(D z6OyJJ<@yw0**K<&D^IMkwEehv)Qh34U#Q>G4meJPS3J%N1yYOI8Pl4fI4xjW@nsrF za4OAfJWyu98K@g>YiSMe3KD{8?Z!0!!T{yV~PWu23t+cKP77M~9 zMp&cL1Y+pdItOlT01Z(V%xIH3=)Mc8)frwowW9T10@tO}wL$Sun+>tSEZ7+}M23pX z=9Sc`$igJiD{s>hzf86Ir?z^b>ko3qg<}s@$*XtnkkTFP{mexv*QX3O{AZ;^xb;t}xkFKyn zNvTjVO+Yr{*o=@xV;bU~d4_C!=vw6mEg25lp~+sRq(rJCTgtLRMgXCR z;AauE>h;{N9tB4TB47z67C2VVzHg^wBQStn{L(i!p~#_a*6YF^O(b|`4w`7j4k*DP z{zMBd_?CX#bJU&+L_v9%lY)tsOvp$;mQ|ZYv9CL)hv9D=#TErGaOA-1AHM!RCizChzV~R}JSK5i z_NE}_#$~BcF2S%;7l)SVz&@u&Q4%L$-{vs-g@IcHp4rLf%b9wNhSgz2e| zNev8>dS&?u_V|0PsJ&(AuOdN#HTnlXq!D>`}JRfWqq{>z+uhK?}%?<5}pbe~S zx{6Ye7C=k}gQTy274#XjV-qN<}dpr)b6X#vM;y7n%=uaDC6bIq(!t2h?NY}W25lAau z7NZhE7T`+svIV4N?Qj^AZSWlK);~|2f1HEa@hbyVVc#XM1;jzcT8>f9>{K8poSEDWL^QOmvM7-MZ5 zq9Aa9EUf0)a@vR-_@j-JE7=Vf84jPB;Sgty@TJ_JSz-NG6sGa_cViD9#JUPm!y z(c==At7iK}s7+Vl52PUlQ*^@+8I{5r*udC&9s7 zxR!n%Wq(#)xq-6pJ(#y9nR*A2(1a_LNI(?n5MMWRwRV9&F*jth^^C1Fp`WU8Sz4>g zp(!U{1$VRuFg?eZs2rLJ;^){8TkRBd=i~MYFkzKBP^hyCELK>0XY4O7&PFC(^IkNh z7kEy^EF0_HezXQ6b?wk;rVUWUO5As8`(n2c*3$gDx|P7R#FfNZ5|ffJrfv4yMt3h~w%x5WO8)*|G`vYS-aXOIc>@R01FrsxLrO zUHsr&z#9~KruOEZqQXe7RO6e~(6P9)P}Q!9N*nZ^>pTQmHF=73MNFe7gLbFT7fSew z#GE=s4zEXC^bcttU|+8t)KF5;L$|J71eNOI*EN4`dHd7>^{F*=J->Wh*IHBWJ$i4m z`Wt4I&YAM*6hyGED^zJ2EWZ@tEAoj`L!vA{avXji`zVP=<~)}ldjF%qCM*=ajOQ@U zb+j3L=1@koP)SYHE(=B|X`u9I4nZN(BWO}t=CC=Hjea2r(p2PG2j!+}P9Qod4=+O(UBS*>g{^{}0UdOr6O98!|BNA+$QNJ(7)GHe!x0&ah6eeRS0e z&sJ_V@iRS278>dcorT|q5rms<9bR3rA&WC<_SlPzIkYc?X7vGuQXA}I^hcheV}4{B zbj*Y&9flgB5fsR$EE*Iq^tALME>ZBqjZ3MUI>@G_+Rw6FB#ax$9t&rl2wC-WRv*w1oc`X#A$%BBQ0Q-vE>j}QWR&Cfm z(UB<@P6v3P4MZ!^4T0Uw_0ZaRX)q~9$08-0xv0xPUpe zSG^h+$p;(i7vAQxqOI5^)Bp z^`yUwUZ1YtjP$+0b+Uml<}*?LrL{2Md-%@N>OZLs2yARDI3tbE_yvf&bxz>iA+h4A z@>i1J8mMS|CQ^}#f(mXL-ddD6^&4E02~27sDI^t8y^mVD9qmv|698sFnZJsd4g#EY zPbDi2DHR<~x#mJaO~5Kq&Vjk7$54Y4Y^bqjSd-GUN-2aCMbUKofm5XRi*d8kz}y6| zvhYFLQrCtmq%aH*4zg|o5aHQsN* zh_sNau>=R`Yos_{us}byw3q4;lx9V|lN2MWhlSoOoY;XRl{TY0$7F%rf!1B(p4D4D z+F`DUlD0lc>(w;tT%HjLbgvW_^H^agO^O&(nhdF>oN~kXhFM|dLr~5mfoNn zn$nVo@wG!*s(2A}*Np(JNiGNhFscz-@l^13a_1D=h*^p}R{6;|)R-*Ipq{$|p<>~r zfmFQ)PZY<`U9~+>Ff@LS>h+gccWMpL9%OO+MJ&x04Ya}^eaQ`I!uc4Q-(z-UzZKAy zkF%zD7K#21DOOSV<>{);#(jtGRtQ#DT2uu#s>zdCT~FplZDRQ%jZUM3JG{}#a%;yK za$K|%>i=kE3sdSprdO!Ia(HIz^(=WetKEfwn4pQpJzR@33lDKyQoElkVIe__M! zH^&NF>r=Z`uRFx(sZ{kJY@rbltQ}(FEKSkW@ptM0-4f`16#ZdG>Ntm{AJo=h8DZPNl zZ2=M~Rf9xHlfG0`zbcX=CY`V{6a0*(WKMhqMU=UnLUL}?Dt1=i+F5S)ci*(!d0lA8NcqyjQGg8_Uh|HcAZ1#wtFcmG)W+;xGwltPlfI$y)GP z*}*Rj=n(T)hTsyN3S{`;gr`^Uu$55G5oQ?3t&fpY(+FpjJI8s83f18)QS4SO4dSEC zDfmoR;ptV0Hh3~&)J6*{;i4;ajHneN8LKPw3Sp(@MSAJX7hFWA$LK3-!oWZ?$ZIw$ zM$}hyHXSkxfevIPU3b>9)TBQB@c!C0(4EKa%lUMli7MehIAer?WQ-d&q9~}$VzgD1 znA#zr5Kt+u=<#-ay;i$YbimfIcRXYqI6l7~0 zwQFSZR4$@PKo6lrv{L8Tg%hqiyAuAP_Y=Knb$6JSAc|ub$F&C2KcS1w6>4${L->q4 zi%F2j03(I1WU*zOrJJnf@%P--vb-X(F9vK{z2`xxptb^ z-_P&f&-L*pLb~_p-9ku1p>35aj8G6HLLSD^r>o^w#UASFn9Pd(A)-oCMNd(*AyjHU zwx!qr3sVnb%X$Mv`ayxXD2NThqC;^++-eKwAXX9ev&-W1C!R&K`Y)cO-g^KqC-!x_ zBEYCsvKx!5X08&P3_12^dZgR&Ym>rjPhegq>=(7c61j_Lmr6#{%0-~>6)G=W= z;|;d>9{t(}WwrLr>)&NS3@)9JqgU!swY zfzr|ZkrW68#}(`jGmu7sld}QG0j^OM`L@j;z1oadoCost*lX#F(7zf!FD?(3^pviBXfFRx?+ zmPW59!7gj1r_$*=H@Pd=4P2m%RpdV$%oN=nYB0SL1-hVtXGpsSxhzq>Dq^jjf@cDq zIRf$EV=)xv~oKX*`jlD1;+?<|UT74)>Q!bo~3pAxSbUd0K zO2|8ybS5|NpI+97Hvah4S2HE4VRfBUs_NUc~}qO60F=s zShQI|JP`QPZY(OOf&J`XcGW~j!mGoXF|!r%4C5TM+=a!Oh&oQ3j54dDM|C1P7)5{;PR6oYy=fl-O54t86N!-(^t;_uemEDWdbG-legihgm{@Jh zR2zCCJ%dCRO>}gBluR``UxPnyOHPq`(PXC$i{T=A&B~yNkPOc6v=O`_z#c{%$Y3pp zo(jbXyyB~r*wtD6x9d+IKCb8I2hHmD>*4vOy*!SG@$~UpCF8vZ^h>-HKX2dawElNS z_;gJZ^c7Xl5^;=ZO}QCqMZAm^?C9&)I>UK{(^gRp=QMUBZQ9qA1*}F5S1_e4qT|u_ z)UnDNngT-+P_knc;fg@jp3q=DU$u7cQ3?`GPh?XZuZ5sO($XHIQJcGr*8CBwy>L=g zbXMZ>`cb0@?T;!ZlR3C^OGBuQd+3vBytQvuSX%VTZNoUR2(lEO2k7AoefRul4V5n@ z`u9Jb;A_|DcOJvHx&8I)q0{Rb|K{Mk?4n4w`viob2sbD4EBH5T{4cEyF&Tr1t3t*w z`bv)O_NsU@HIa{_%aq1&?7^q@p+W5gA@AK=w2H2S<9nkw6AtQeA@Jn)83zm7=R*5MVjaKUuNlv=5VI!f&Y zUo1BvYY7-1?wdlZQy(PAq7lA2um9{Sb-nk!`)m5>I~VRhSjqLZ6nBJv5qw>fF#ST}hAY zcg<`B-1ERZThXwOq>rslOyaWhqX%J}jH#{_OzpTv$GlPF%nC?)QGJ`@<0_$N6cTz6 zqB6FN3+nwbp@{(%Z~Zq?+ClJHdDKp8Q2^AG(i;*nZFLK-6SFonvITqg^I`BmD5<`@ zJg$$lR=?;Uw+|uiJ&-q#5Aix%UF(0b7iif=L|Eu6i1iA6NAE={f>=Lg@WqKz(HN?S zONuUZXy`HZ85nDcbak}FE!~DNIKdecyn>2;N~t6(3hD>&JGQhZxeFiOE+SrqhCR;E zO?lKD7EcBD=)8p`1rTPYAZXZxzNP}87)=!x4c53t=ycjTk0Gb<=kDYN&uF|w| zBWCX%qXyhfqvmmw+B){|R(~yUDQ+2uR)fNv=!7=U&;~IFS6G6fTWlovvuW#Z*8A_p zZ(hE+woC6lbmu#{w~KS9k%6>rV??~xrf8;53dl`rivG21fl3Tq6v{Gf-pWeoeuzLU zvs-Wq4wQAGUzdnIgYhW^6$;@PWjN}Ke9;P~(M@9@@EH{Y9WBCVj$^puP!18ti_IYK z7t!*mGjTK=CyM23XKM5LT}a4?>EMJl_@>j8{wuMYr}tESw|5V{jXyr^tNP7%9>gyv*MF`?YfCU(F3|1@gKI~{B;66&CLvEjmJoUrd)70FeIuKT z;(&M--;u{2!KRUTT5w4h(^G&YM3?n2s*8tG$CD&Ik$SOV z;^qDuGpjZ(v_MXU9h6+O%BNx)F=idU(b=}cCI0k~H7Ozi3$ z%X2y;24H%?u@ghhc&O)T&!%eX+NhDI-IhmHC~f_ZV2~zO?f5v_t7r zOy>B#A2;=4mk9LJiL3lc3pGtk-Ieb ze4SCHlZ3QoIqIhbP`K|4Vu@5#bjxuLTvrfnGro>}aU6@tlGU zY`QhV6kmGI+BxOkeN{sb0#B+8C?KaGSK7H2jqC4SA$~(kfA&yQD-k5QksZ73-CP!Lv(Z@eTt*=EOp=e&VUDJ#n6pVofpR=51kN`#nyG;# zUlb1ze$_bXA++(F@{LG3>cS{H>1%Qh^~jy2yXGkbUYSW#h8=)l&Jw0lm_gGo43r&f z?VPF$eC@6M?C}xl)C`DXu$LxrsK%Lfq6u+OQDovAt<2YV8(*KY`7SiMxP+ zvJ>~6v}k(;M_<#b=gH(oatP@QlHzfxr=qhJyZF_$_It+(9BiQdhlfy6meR0_4_G_6 zW>wDQW_oF2_CQrhu{$f{RK(JSlzjoiU_r&r^j_i`&2KBP+nd7K*~9bY@%@iqzkBNa zS~tzT$L`A^;Jec z_LXf{a1#$K!irsN@BicO&3Y_LvMW76&0>+sVihH}06~ue^ymef2SEQturbrg$cX3| zYIy12-s>}WPj;SroqD_|fmN)`2={x>v0?AE%=TU@Ydev-Hx0ZyaI4>d4WUmZ`b8~# z78XUn>so(Ci9pP!$ApT39FNmqN|^$n*v@1N3R^uaj_)EgMPGx$=vq0%Y-d$gqU(Vw zLQT35EYeR2gLF-}0F$36P@jeeZTDiegXtYcg}z?9F8==e$N4<&xjH_2+5neH zfufR3Hj3I|DP}a3^^F3`<^WT`LwN|_bu@=wYLksog2S*|Fe0x)se8p9lmpmv;wd8B z#H~jtok~DsK?MqYrlNHToKFJbvCv2)(r`_ogsV1BKTsEHKz@q@e3uh7A&4yKL7TUV znPHnzgPX>0+#Hb+5uzHNqwNq@Q>xJ)m{vMAFbdE5+ZDSuLh<6EUhk#=srlZ@tFt3< zd!5kV{Q0Nn@zY(8g2xWqdx)qb`VB%m5_QTa%1{$8@olE>;`$*|Nt33xZ3wq*>i+5C zr{U0}NL&W$W{x`CUQH8i@U#`U)|NBIxEJ*}`Vy2LP?vOqlN#k3X}rCy)r_@G)_UM<>~xDat6r? z!Le#A`U-~BB+y_nI0^x;+F5)mT#*ncCYF1aBLK^3k8q4%I0p;Uqm(adQPJ?+XeU6< zW~Am7yIJJruLrzBbA}ew5YfvK)gD_g!(#g;fZ&d3c}Pav0G<9|ayVjEG!AM*DoQ+9^-S`lQN1?6o*w z2`F^^%&14?LX7mqrH;!_uQ#2wB{YkJV%!uoG?cqw5j~VWADu}?IQtyp~}R*$%F7mBVWeWA%$*ZSXbefso#SE1*@19v$x(mu82)j2{aqbN`a z`$dO(e~)?$sw)sM2`F|iB#dn1WYSb2yo_lDg_&8f(ktF+_3K^8c?xE!qt!}_p~J~T zVMkP3@MCxS+Nn~urFxsk_F`AJh4~H@NZ<7k2sXGa;EFDZ20a+%*+#K-_j)+-J>jB7 z|DV<|-Z^QwF?L!4n^Z;>Jz%8(r4m-QS`6b(HR;9Lwasi?8=e&6gNe&Z`x6d;?7q5#Qwnv zP_9VL-6TK>2u{t-n3zerzA@}_1un1rWhO z*b5~*B12qVxzNyz=KkZ_Li5AV&p)rHmr92_XS)v`yI*b8|L*7-e>rUE(TmKbO>?Wh z)o-nvi~~bGJ%b&6UAHS83=6rS&F1NaV~nijC!A30b_u!Mp$VXBPccJjMe`soPhzJX zzv9K-jfrjxBMh`!#lAEt*Q0v9t{8bmA!_-u(U>X;W4{5q+>J(D{7J&5$+ zf%{c1wSSCnx20`QZUZ`;Eo+H$#L@EzxMe7&*)&PY2DdBy+o_8+y&OR+t*#q0tix5GE0fT(o@ToKW`lY=?@q$ik8XBoc+*l^*TQ zd7$rl(ajqyO40Fm5KBSMaA_=z5HUs^#o;)K_=d6(K50%MIK_;Ibs6~AY~%nIKB*mk zs)rNk>>6vM$Tuhe7kl9GOZ%RWt+0D+-I_rCf$)NM7C?$$f3b&#UU4Yj|p#<5-FhEfb6`RvZogF%-iZPYNj!0=V7;~#qas%d(@ zch2zWk-I8Vz7ZI^mTk>0vE7VAjF}1^sCx?TL(efno>X99udA?Tka0RHPm{JuML@-U z+)Na2w30T;&06$YWDDbzH!)P<;hGs=3w#X-}-+DjvQnbA$V<`km!P!tZ=qGn*> zLk+A|(h;v~(eh#Yxj=Rqd}QS2`Eib`&`*6h*#3Drfo8^5b&a)TXWuu zUX<2QRKf=;AJ+@-@#$_^;G;+FI-75Dgn}8>6TBCfa&?7(MXRsFcLnTF*1=YBVzc7zs1$k3!I0K}TG8ueCmqha-_5Ue3fVlPF!W8%^}m3fd$+M517ktywt>Vn3V zw`dRWa8Kd$?&Y>ytgUr%ZJ<=}|kYh>Or*iKvr zQ1_U!NSz{mON^rt5*LmWhqsCW)O9H@lqL>Q^!!5rZVLj0rW~gaJ1uB?qK7iDdY(8z zTXsOMoOvNP67l>}O3;X34~_y-$*BC|K&eeyF*DTS6gd}=EYU_`yfmxGhTx3YnqnBb z3d^5NIu|{khP&_9l$?fW`mh|a^{P1+d$Gh=L(9HCWloId6et6g+R0yG?*IDr)A;xG zO;h@$>HqxgzEbRihw!>vT?jPb0-^z* z^brV52HF4>L~X{u9>$@l*95);Xar**b7;f$b}fe*v3910VRGm1S+u!_ZBfHP3QTxX zG+c>FY)6?>kZ_}?GxWhJ(_JD=i~~D{b;?m%@U7A)gv3=a&eA@d03MX{i}MIZEkhHU z80vLWKdv7?eS1dn_gCQFlkf*ghJqgqMm0eH)5tox@qN`R!3g6ucB_n7{V!H0(=y`}ke`^7 zER4G%7q~0d+_OT_SdILDqi7}^f#}F_e_%CpL*!42$V^@vlEQ}J?Kp9+TOpPxPA|x=zZ-OKik=B#PwXwT9%m`&cy`*vVQePep53g=+-ce(w^J!xv52bJ!ojzx5@Rr zIDp*se2iXJ>}cWUe3`d_m4fI-DFIpOL=i;tE~ zN1IgRx&)hxDM;vUeO%PG8N!8JCrld8H5zLIx0Sv0RlOQo$gI!8lzR(Yil@z;l(PZ? zwLaI%9g#xLLOb!gKdo}8hQ*3YOszz5l8sfdSe^(0CK1Qmmj=z=I-P7vKC@!v;pocL zX2nQVJC5$$bB<~>>dBzHarAn%4wRdnrNO?RPR?38de3^mo~{)QzopQ#-BkpA^uS$a zH2iWFDB`v;a9-XZU+bwdjY7>@4YV3iTVN=^z^74P@ zcoOn?N)$^msoBEyAYRj2yBz)CizP~}uc^s3o35uvjo3OuYa$(UP+2sCkV|*mOU$X^ z3sJww2|~((NZbVr{5bpy^jOW$f|EcE8d(Y##B1>{>S0nFp>cI)2u}s)5i;vWgq@?G zIa&~&TvtB&_s>6mysy0R=yAI$Z@gWoap=gYAqU_Zoi?=Wa^TpsdWE18TC&k9!qcm+ zP^R2;ZbZoSR<9I=;1I}Yoi>Gz?YHk)L_n)6iAH#o6vZ8@kXjPjoPuhU_-wI>>~1_; zyS@@fm@MEDaFL1JTOc!yma(^VT%HzMhy2wjXv~cBrUu+UjpY_ODM~j_2p!;m!=ZzQ z!f7i9McJ5-gkv#{GT7dxB4XqCzFg0CfA{?J=TBe0J?$^+>%DrJ$I+-xaY%{7i#I_`RYD7WChrO2z1 z($*TzcAFKIwlyXtG};v7LWj&Qq1|N>n{gRQ1QFQiQo*ArwWg;PR!PcX+)FCKUgPe+ zeSP|C`}v+t`lAQ#ij3YGNi`hBM`~OI=F_G&hO6U%+!>u;91@V`iN|lMbBLWuFo6!L_Iwi&2)p70SrY^NKt;j(YLbtBpeM$JV}Yh z)vY%*)L4sOYEMENwG~9=nc8ynnrDxN7FwImNvcr*RbbtUetJ5rF}=7#;t{K-ayNIq zqR0?8BnWN@wGO3dp{#4y#6SN0{PFo`y!7rd(FYIRZEx@k6V0Fq(H!dhgCKrHRY@#M za6zNx6xg#(UG%8CBb3(Z&kLn1WsA@YUydWfW-;eBNrRJ=4HUxG{j>Nqamj&zpHB&~Hk#grV5>G9-P}uaXt;?K z%GH(}R6#&r$duaZL3Bn`Gg|G*rc`E@5*)!R^{qeF?DirmdsR&TSFGJWKmFU+PamJg zr=Nd*$Hec^gZN(Kw<0~*yDR=s^i6ph;KwdR4r#9I`|$E+veiIHDy>$H!`d6IYlt@Um_@XvGRc_*%@7 zrBWIZ@ub)Y?>li%;S;*OCx#`Qh--OcM~tX4e0GN*v@DX6(e~A}+j!Kp#Wy0nN1H`E zA5%23TsxJt61IQW7Q{bv8o!^`Up}{wU!OnSlTd&30NyHX=a+L{rF857eOZFa2wRd8 zly2a@Ttu5qBYcjc49X3es;nUHl^0h)1vU?!aWq-uWNj2VEdtrSk2FW{%L&q!J?Q1O z9G{5d=Zq_I75uzuU(@&w>^ZP4iv`1jhA&~{tS=-aG`ccS#Vr|CNlR@jD%TSm)38r_ zAd4Y$PNb3brfCY@njvM%ekrXl*pASDTSRt>_C!$>#uaK_%T@lc+t+VTq9>o9)_?on z?q%3V58%5yHbkw|P#ShvS|Y;Qn=XZF4Az$-2@L~=B)WyV+RWCiAS&EZN9IbodJSou zxp(YC`2Xx9Jx5ZAiH0lrHhVgvKw+F$=sfw@*c)G^RaWdGEy|$S6%IqU59fL@AeP7> zi$Re@f!Re*1HaIwwq}c5GzSDrJU#<(dF^C0n3dABjk5x?w&xIc*fh8y#~e|Ns;7gv zX#Gzm%X|&T|L2+56OF%qYyHD|wcdQ*_Zuu8JC^TN;%@~2OHGJ|Rk#~H(lx}5wMl|S zFf65p^0>$pt<=Ffkx5i`bLAiwsj)>3JeH`DLuxB7qRsTu-`S8uNFYA!1r&WO(l{od zYm=Kx=6X*qBAV#wO5~Z@9W9o$zz={U4#c$yG#>-4`U1Ff)a^B&Po z1!fUPk$-#2L6o^ffV)vFU+HwRC@pGfG(%NbnQn?e-H@IC`ZB%ar}cAt`u3&$X?^*6 zkIFuJ6n{Ot=8xfZ2QwOiB$;E>S1Z}kG2mStKM?vIcbUm&p-n4{H<64IO$&k_LvYj} ziDv@_Kr|IN%Ev_mxIYs%a)F?Tg|pSSAoI6&4DfS3lKsyEI zV8+Tp4=LCmDNlEpL|cJiZEH_cO4ncrU>j}sbCHD^Jas+v@y)vctsfsibx%c}}W90il;ELQH6NGU$F z8jwiUKGM&vt}hh>shF;i02OkYIWnvsm&9O^U!cOVhN`E~sx?Q2Aqlf;Eql>Dku-YS zv%jgx=S~AtQOtzs9u-ShWTjgk6{9hfMkB?7N<&m;+Tqr6*5v+zL^mBJF{YgLz&I)k zdw`jusS%I2C>}dS1_v*Mx21NmCNrP~f{f^u#Qwgw5AEYv^XWa}^XTz=*Zm-BeZuxN zc3NNPlna&d>1dFnJ?=#Z@fs}=t?Hm)qV&dzUC&h8U~?6)?@46^yeTN zzb};rrsIE_k)suB%o+_d-L)At(y2t9SrttXWEGp&(P!n#Rm|Y z3OG?l>arJuDKv$qCX&7lwH)tAPBG-zC&+{Q^IQ|oGRe(HjI9LLY;Z^(+vI9Gk}pPus)ko8ys*S8&U-Ykl@gtI*)?DbKp7Nk}N% zwrerV=5U{$-M9r`5yY9C>Y3yJqah5Kj*7~Npz6tlFtWAW8!J`?v{}U8OX1GPxz?!h zQBs?(=_w^p`hp*3HzpXD&*LxZr4<5VQsQYr< zBnaJoq0R=#X2juB)zWp&ci{_8*F-W3G>+v6soKzt|?hXj62QE@yyhQd?qPC&sFhc-=G zxtk*zy7s6=&!G*cA4d^4;5gbdmw1M&Ww(`pGu`3_DGkccl)vz_)=TA6muYCV5b-cq zGojz3+xzt6Uq3&+SEuyo@w=j=^4e~(cc%_{C}bq1rKZi{^db60t`+R48jGq8AU=VA z9M^)Pf(kcU`keew#VIV7ylbp@w$bw3Dq{I#y+X#4uUD*G zxz)n$c+-+c3Cgm#Pg6b98Bhx1tVvkMMvDpIT3(pgZhSQN3e?~!{S=%V18q2)?W4?U zqxO(qt|YIWql_d{C~5#v!oM-23o`F_L@B3!T;rZB-J^%^PDfO=TdAE2cR>hi6c-$h zzuY$nh9J`yoaK~bYXM*RB}PDlj^2AyEWm$T8d%_8f|KHf!tnX??^I zOYyGy?YY#q7*61lbX5dh2>)Z#(UC))L+P?p@_?d_7CTyWqj{6`;^Hrn0~f_OiU=0+ z$0DVuJJ6pn(8@uAL$UEZN8?Z;?M12gMs@IX0y`>7X5#QChwG*JfBCmR-y<=P9<=NB zd_zVX>BO#m>=E`7rKj4oU`iQj@ew5C_^WXQr&S?_FF+ZvOz)<6;}t1!K0I3)(C3p!OG0;|9){1-OP#xp2z z391h5hNkSPC_2L6_}^jaN3#QWbs8ZNzhvsMl^6G8Y|Cm@Y1e2s>xHH`sgYhfnFKBN2Q)9uQ;%66p5hxk6@bdRouy> zEsCy%ojR#b{9?UmS}PYQow=Q~jDlEHq+o$g7VH@2(gHo|sko0J*w!XqEOpIEt^D;M z7&uths8d|~#s0S$EGWby>GW$_%Gz|^cVWjgl}l^a9#N{TgI?0p{fB%$7Uaszd)O>W zD+-FBYYWI6VjijaAW6UFJq4E!_vZ-em*R#KMI>xp(d3iKML*IK>gaV2`8Z)GT@h8mFN6l(-dD}YQhT;U*~ zY-R3QTIj<~AsAN{_6-fqDZ29DfW4Jt(9!2E3WZ&JNPxB5YRygY5>4M)v>gsesQ`9g z+5pFO#wMH;dv0AHamqZC?bp zablSIBryYhm4+}4027z>I-DPXK zHB^EU^k9@BT(UH{Ij_p(c|p~A@C!QCw4;j!2ZOhdQg>svwaw78>a-u)&Gf#zZC|eB z?s3-#58!*?SgC3#B3ZsDDfWpqD@iFfEUi9-7&LmlY`uDPwNDPn1WsIyf*;&t)8*Bv z1c)RDCHp;TFEJjnnYkcx)*-OSt^3z(#C}L%ZV`6a+C0 z7SmMw=;P9)Ps$fce;UrXVjYUiVm>WRJ&@pOHd+*##A<|4?WA1_S^eNQe&v?hKoQ18 zTe?=rP*A>3>_5Fu?5B_89ZR8y4&LpgzFo4`Y`ZaZ=xVhX&XQ|D$J`5mn7QZTaHF=S z^yQQT@LnC~4&+p(h_uzXY0a~oa5JcExE?X;6AB;xV|4aB#X1Bq?c)POJm}tstr!^s>wF=0&SZ8I;r>Fz8*bh*9-GsiXy04G*qVuWg~(o$2tm|!{7kGIZt~u-#R7 zm53zD2g{0E?X2Y_7Lf(olp|;!@{XsrUCa$nypfeA+FIO!alB_yM73>{8!1B3i-}1N zK+sd)yG24$IVw|ii;XI|=n?!lHHDpCRe?o~!>Ff+X?V@7r32Y0*&fFr1+;T@YB&|1 zUARNL)Cg)|U#Baa}aBSIVLI})W0Snzo+Q{%$yF3_^#Bf_MLyn@m57dMjs>+e4Q`;TA# zCxw=K8T8RZcP(Ubf2=QUa2+LrKBp69pdcRPuc6V}SISyPu3mqixa3;MzmEzqhJcv^h*>Pe|CU$1Hm0`RDpOx&Xf z^*x%7UWd@V)@f@R_Lv;PoTe0{a}%{$2!B=~B#>)SaE_hpH_m6rP>#(8Rj~jc6b7c=4Tb;O`%wzy0;CN#pg;zkhqa+e`K6;k>PHd2KLP z8qbI(Ai-Lwzf@=+lz8WZIl|-;~$vCH#D)g!7QH5Ky z76X1ODEp5fevMh8XqUF6!feT3 zgdYo)+v2EQnTzILZETn4Tnfp`xIm|c_qZ#2nwKteAmW#0sib zw`~fiV@C`#YQ$5l`bcy+4SJB+FilTC>@UIj?_Z|)ZU4TA2t2hfU)sHD(nk;Cjq8Pd z>pmBeSF*#RRrpOWx^Z0vDF(%ra|)MAbx{4Cj~+H>DRc67p*CTVb_9*|FPe^NW)ZR4 zD9S6Vp@c6EiMqWAdP}L!?Zho}TO=m!s%x1<1<`XgY7sl8ZCk88n3NR8L|yfPsamrG zLP^+Rh^x~RIaaS-`47|RNd*0>ekEAn6sf*&;4B*uR9$bxiR0 zXZQE7v-`e(>Z6D8nuh&bQ4x0QM1y#Y z7HQwT(MrRBu+ZYxL>bGbxM42w0b3@bz0=UeYDd#kHjO5=35k^}`oA2i-OeGQTSW^a zBBaHOsd(*Z1l6>saqaBgak!vAb%w*{ltNYz-J#u|)qi;Tw=eg6<{v$P*E@i>?JC^j zy21FTg-%r$DyRzUdKRk~7t@aT4rC2Nh**Piw#m7e7;_aq5r=TvD^vKkVxGt;t!Ly# zt_2mhwh-5($mUlC6BCj!f=~u$<|2I8?YjDobd2H!Tt)emH63-BZX@!jbgN8z%o#1c z-A(fd!t&Z1f<|5&aQHG~%ai6wrxiVd$PW@J+K?F3H&F}a)P^UfxTH4HJZ{7led$*3 zPwfA4w*vgpL-(sGt$*}yckF0^$JX?**aRyCWyY`P}O51eJ_ zMoEH6R0$)GVsTG6mSF8z%e$mpi3k@$->7Nn8!d+wTHmMvYUA$V9PO4lmgCE*#h}=> zz4&Dkh7lG?oY*M@D3g_Ne@cJ&{NekL&mW)eds#nv2yc_?OF5zlgu=bpJ}O+4koXJ@ zqeUp{dr-PS+g!N3m(g(w^zZI_i z9c794&Wj&BdNQ8kGFAu?x2}#D4w6cUvimLer(d^~=vpVL(T3aFdKz#%YQn} zzxlGheYx8u`QSmk?W21^$aRyj<3_7Z|E!_HxhZxH#Hq(!DPja+K=Mdz;)*qtrx4lk z$bD92#VQn{dbWVVgf}Sl393!CIx`Lx%WI#(Um7FPw3Ncs1@g&*G^<-mn zGzfUj=tK_Q)BJATi$I~jTT!eO{O!IL*P}=8cFVp-=2MG1Q8yLD=tJuu8|1!l1IP%N ziG0(gW;1&DO+)1vHJk9BEui?x5ux(SE=uqMph}k-RVvy=(8U-->AN*URkuh03i<+v znJNggt_fFYI3q9N7D98j4%BWi0^>r`3vOxT_PP+{tBAf1!TfBGr4F8joCFHF zpLPt?S)!(cqqaopCD(IGq%$825oJ!n`qi&R#(x{4mX98^8&OO5R;9R`-MF0_jDb$< z(m)7O;s8-aKo-X{jiOI6Z<16o6W$iNDBWqUh7v@n2tDX=(rQgx26+HX{InfvGsEbw za>!Igh^vX1YB(~Dao0=QRf(cVK~^6{^s-nYr~RT89WNkLHATvby*1y0)^

M0wRL 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%0AkOA|Kv4WLVQA4^#RuDYY- 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 z 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 OZT}DKBP>y2", - "private": false, "license": "SEE LICENSE IN LICENSE", + "packageManager": "yarn@1.22.22", + "engines": { + "node": ">=24 <25", + "yarn": ">=1.22 <2" + }, + "volta": { + "node": "24.9.0", + "yarn": "1.22.22" + }, "scripts": { + "check:node": "node scripts/check-node-version.js", + "preinstall": "node scripts/check-node-version.js", + "prebuild": "node scripts/check-node-version.js", + "prestart": "node scripts/check-node-version.js", + "predev": "node scripts/check-node-version.js", + "predebug": "node scripts/check-node-version.js", + "pretest:all": "node scripts/check-node-version.js", + "pretest:watch": "node scripts/check-node-version.js", + "pretest:ui": "node scripts/check-node-version.js", + "pretest:e2e": "node scripts/check-node-version.js", "generate:mongo-fold": "tsx scripts/generate-mongo-fold-text-search.ts", "build": "tsc && yarn generate:mongo-fold && cp -r data dist/", "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", diff --git a/scripts/check-node-version.js b/scripts/check-node-version.js new file mode 100644 index 00000000..b5748762 --- /dev/null +++ b/scripts/check-node-version.js @@ -0,0 +1,15 @@ +const requiredMajor = 24; +const actual = process.versions.node; +const actualMajor = Number(actual.split('.')[0]); + +if (actualMajor !== requiredMajor) { + console.error( + [ + `Enfyra Server requires Node ${requiredMajor}.x.`, + `Current runtime is Node ${actual} at ${process.execPath}.`, + 'The server uses isolated-vm, which must match the production Node 24 runtime.', + 'Switch to Node 24 before running install, dev, build, start, or tests.', + ].join('\n'), + ); + process.exit(1); +} diff --git a/src/container.ts b/src/container.ts index 83033006..df30339e 100644 --- a/src/container.ts +++ b/src/container.ts @@ -8,25 +8,50 @@ import { } from 'awilix'; import { EventEmitter2 } from 'eventemitter2'; import Redis from 'ioredis'; -import { Queue } from 'bullmq'; +import { Queue, type ConnectionOptions } from 'bullmq'; import { env } from './env'; import { SYSTEM_QUEUES } from './shared/utils/constant'; -type QueueWithConnection = Queue & { __enfyraConnection?: Redis }; +function buildQueueConnectionOptions(redisUri: string): ConnectionOptions { + const parsed = new URL(redisUri); + const port = + parsed.port.length > 0 + ? Number(parsed.port) + : parsed.protocol === 'rediss:' + ? 6380 + : 6379; + const dbPath = parsed.pathname.replace(/^\//, ''); + const db = dbPath.length > 0 ? Number(dbPath) : undefined; + const options: any = { + host: parsed.hostname, + port, + }; + + if (parsed.username) { + options.username = decodeURIComponent(parsed.username); + } + if (parsed.password) { + options.password = decodeURIComponent(parsed.password); + } + if (db !== undefined && Number.isFinite(db)) { + options.db = db; + } + if (parsed.protocol === 'rediss:') { + options.tls = {}; + } + + return options as ConnectionOptions; +} -function createRuntimeQueue(name: string): QueueWithConnection { - const connection = new Redis(env.REDIS_URI); - const queue = new Queue(name, { +function createRuntimeQueue(name: string): Queue { + return new Queue(name, { prefix: env.NODE_NAME, - connection, - }) as QueueWithConnection; - queue.__enfyraConnection = connection; - return queue; + connection: buildQueueConnectionOptions(env.REDIS_URI), + }); } -async function closeRuntimeQueue(queue: QueueWithConnection): Promise { +async function closeRuntimeQueue(queue: Queue): Promise { await queue.close(); - queue.__enfyraConnection?.disconnect(); } import { diff --git a/src/domain/bootstrap/utils/sql-junction-metadata.util.ts b/src/domain/bootstrap/utils/sql-junction-metadata.util.ts index aa856d93..805c693a 100644 --- a/src/domain/bootstrap/utils/sql-junction-metadata.util.ts +++ b/src/domain/bootstrap/utils/sql-junction-metadata.util.ts @@ -1,9 +1,178 @@ -import { - getForeignKeyColumnName, - getJunctionTableName, -} from '@enfyra/kernel'; +import { getForeignKeyColumnName, getJunctionTableName } from '@enfyra/kernel'; +import { buildSqlJunctionTableContract } from '../../../engines/knex/utils/sql-physical-schema-contract'; +import { getSqlJunctionPhysicalNames } from '../../../modules/table-management/utils/sql-junction-naming.util'; import type { IQueryBuilder } from '../../shared/interfaces/query-builder.interface'; +async function tableHasColumns( + knex: any, + tableName: string, + columns: string[], +): Promise { + if (!(await knex.schema.hasTable(tableName))) return false; + const checks = await Promise.all( + columns.map((column) => knex.schema.hasColumn(tableName, column)), + ); + return checks.every(Boolean); +} + +function getSqlDbType(knex: any): 'mysql' | 'postgres' { + const client = String(knex?.client?.config?.client || '').toLowerCase(); + return client.includes('mysql') ? 'mysql' : 'postgres'; +} + +async function getSqlPrimaryKeyType( + knex: any, + tableName: string, +): Promise<'uuid' | 'varchar' | 'integer'> { + const columnInfo = await knex(tableName).columnInfo(); + const idColumn = columnInfo.id || columnInfo._id; + const type = String(idColumn?.type || '').toLowerCase(); + if (type.includes('uuid')) return 'uuid'; + if ( + type.includes('char') || + type.includes('text') || + type.includes('string') + ) { + return 'varchar'; + } + return 'integer'; +} + +function addSqlJunctionColumn( + table: any, + columnName: string, + pkType: 'uuid' | 'varchar' | 'integer', + dbType: string, +) { + if (pkType === 'uuid') { + return dbType === 'postgres' + ? table.uuid(columnName) + : table.string(columnName, 36); + } + if (pkType === 'varchar') { + return table.string(columnName, 255); + } + return dbType === 'mysql' + ? table.integer(columnName).unsigned() + : table.integer(columnName); +} + +async function ensureSqlJunctionTable( + queryBuilderService: IQueryBuilder, + input: { + sourceTable: string; + targetTable: string; + propertyName: string; + junctionTable: string; + sourceColumn: string; + targetColumn: string; + }, +): Promise { + const knex = queryBuilderService.getKnex(); + const tableExists = await knex.schema.hasTable(input.junctionTable); + if ( + tableExists && + (await tableHasColumns(knex, input.junctionTable, [ + input.sourceColumn, + input.targetColumn, + ])) + ) { + return; + } + + if (tableExists) { + throw new Error( + `Junction table ${input.junctionTable} exists but is missing ${input.sourceColumn} or ${input.targetColumn}`, + ); + } + + const [sourcePkType, targetPkType] = await Promise.all([ + getSqlPrimaryKeyType(knex, input.sourceTable), + getSqlPrimaryKeyType(knex, input.targetTable), + ]); + const dbType = getSqlDbType(knex); + const junction = buildSqlJunctionTableContract({ + tableName: input.junctionTable, + sourceTable: input.sourceTable, + targetTable: input.targetTable, + sourceColumn: input.sourceColumn, + targetColumn: input.targetColumn, + sourcePropertyName: input.propertyName, + }); + + await knex.schema.createTable(input.junctionTable, (table: any) => { + addSqlJunctionColumn( + table, + input.sourceColumn, + sourcePkType, + dbType, + ).notNullable(); + addSqlJunctionColumn( + table, + input.targetColumn, + targetPkType, + dbType, + ).notNullable(); + table.primary( + [input.sourceColumn, input.targetColumn], + junction.primaryKeyName, + ); + table + .foreign(input.sourceColumn) + .references('id') + .inTable(input.sourceTable) + .onDelete(junction.onDelete) + .onUpdate(junction.onUpdate) + .withKeyName(junction.sourceForeignKeyName); + table + .foreign(input.targetColumn) + .references('id') + .inTable(input.targetTable) + .onDelete(junction.onDelete) + .onUpdate(junction.onUpdate) + .withKeyName(junction.targetForeignKeyName); + table.index([input.sourceColumn], junction.sourceIndexName); + table.index([input.targetColumn], junction.targetIndexName); + table.index( + [input.targetColumn, input.sourceColumn], + junction.reverseIndexName, + ); + }); +} + +async function normalizeSqlRelationJunctionMetadata( + queryBuilderService: IQueryBuilder, + relation: any, + standard: { + junctionTableName: string; + junctionSourceColumn: string; + junctionTargetColumn: string; + }, +): Promise { + if (!relation?.id) return; + const knex = queryBuilderService.getKnex(); + const updateData: any = {}; + if (relation.junctionTableName !== standard.junctionTableName) { + updateData.junctionTableName = standard.junctionTableName; + } + if (relation.junctionSourceColumn !== standard.junctionSourceColumn) { + updateData.junctionSourceColumn = standard.junctionSourceColumn; + } + if (relation.junctionTargetColumn !== standard.junctionTargetColumn) { + updateData.junctionTargetColumn = standard.junctionTargetColumn; + } + if (Object.keys(updateData).length > 0) { + await knex('enfyra_relation').where({ id: relation.id }).update(updateData); + } + + if (relation.mappedById) return; + await knex('enfyra_relation').where({ mappedById: relation.id }).update({ + junctionTableName: standard.junctionTableName, + junctionSourceColumn: standard.junctionTargetColumn, + junctionTargetColumn: standard.junctionSourceColumn, + }); +} + export async function getSqlJunctionMetadata( queryBuilderService: IQueryBuilder, input: { @@ -38,19 +207,71 @@ export async function getSqlJunctionMetadata( .where('r.propertyName', input.propertyName) .first(); + const standard = getSqlJunctionPhysicalNames({ + sourceTable: input.sourceTable, + propertyName: input.propertyName, + targetTable: input.targetTable, + }); + const metadataCandidate = { + junctionTableName: + relation?.junctionTableName || standard.junctionTableName, + junctionSourceColumn: + relation?.junctionSourceColumn || standard.junctionSourceColumn, + junctionTargetColumn: + relation?.junctionTargetColumn || standard.junctionTargetColumn, + }; + const metadataReady = await tableHasColumns( + knex, + metadataCandidate.junctionTableName, + [ + metadataCandidate.junctionSourceColumn, + metadataCandidate.junctionTargetColumn, + ], + ); + const standardReady = await tableHasColumns( + knex, + standard.junctionTableName, + [standard.junctionSourceColumn, standard.junctionTargetColumn], + ); + + const selected = + standardReady || !metadataReady + ? { + junctionTableName: standard.junctionTableName, + junctionSourceColumn: standard.junctionSourceColumn, + junctionTargetColumn: standard.junctionTargetColumn, + } + : metadataCandidate; + + await ensureSqlJunctionTable(queryBuilderService, { + sourceTable: input.sourceTable, + targetTable: input.targetTable, + propertyName: input.propertyName, + junctionTable: selected.junctionTableName, + sourceColumn: selected.junctionSourceColumn, + targetColumn: selected.junctionTargetColumn, + }); + if (selected.junctionTableName === standard.junctionTableName) { + await normalizeSqlRelationJunctionMetadata( + queryBuilderService, + relation, + selected, + ); + } + return { junctionTable: - relation?.junctionTableName || + selected.junctionTableName || getJunctionTableName( input.sourceTable, input.propertyName, input.targetTable, ), sourceColumn: - relation?.junctionSourceColumn || + selected.junctionSourceColumn || getForeignKeyColumnName(input.sourceTable), targetColumn: - relation?.junctionTargetColumn || + selected.junctionTargetColumn || getForeignKeyColumnName(input.targetTable), }; } diff --git a/src/engines/bootstrap/services/metadata-migration.service.ts b/src/engines/bootstrap/services/metadata-migration.service.ts index fd8b2d05..80a0c177 100644 --- a/src/engines/bootstrap/services/metadata-migration.service.ts +++ b/src/engines/bootstrap/services/metadata-migration.service.ts @@ -21,7 +21,11 @@ import { hasSchemaMigrations, loadSnapshotMigrationFile, } from '../utils/metadata-migration.util'; -import { SYSTEM_TABLES } from '../../../shared/utils/system-tables.constants'; +import { + CORE_SYSTEM_TABLES, + LEGACY_CORE_SYSTEM_TABLES, + SYSTEM_TABLES, +} from '../../../shared/utils/system-tables.constants'; import { MetadataPhysicalMigrationHelper } from '../utils/metadata-physical-migration.util'; export class MetadataMigrationService { @@ -30,6 +34,8 @@ export class MetadataMigrationService { private readonly systemCoreTableResolver: SystemCoreTableResolver; private readonly physicalMigration: MetadataPhysicalMigrationHelper; private migrations: SchemaMigrationDef | null = null; + private readonly sqlCoreTableIdRemap = new Map(); + private readonly mongoCoreTableIdRemap = new Map(); constructor(deps: { queryBuilderService: QueryBuilderService; @@ -188,8 +194,9 @@ export class MetadataMigrationService { const oldExists = await knex.schema.hasTable(rename.from); const newExists = await knex.schema.hasTable(rename.to); if (oldExists && newExists) { - throw new Error( - `Cannot rename core system table ${rename.from} to ${rename.to}: both physical tables exist`, + await this.reconcileSqlCoreTableOverlap(rename); + this.verbose( + ` Core SQL table overlap detected: ${rename.from} and ${rename.to} both exist; continuing with canonical ${rename.to}`, ); } } @@ -223,8 +230,9 @@ export class MetadataMigrationService { rename.to, ); if (oldExists && newExists) { - throw new Error( - `Cannot rename core system collection ${rename.from} to ${rename.to}: both collections exist`, + await this.reconcileMongoCoreTableOverlap(rename); + this.verbose( + ` Core Mongo collection overlap detected: ${rename.from} and ${rename.to} both exist; continuing with canonical ${rename.to}`, ); } } @@ -245,12 +253,7 @@ export class MetadataMigrationService { } for (const rename of validRenames) { - await db - .collection(SYSTEM_TABLES.table) - .updateOne( - { name: rename.from }, - { $set: { name: rename.to, updatedAt: new Date() } }, - ); + await this.renameMongoTableMetadataRow(SYSTEM_TABLES.table, rename); await this.updateMongoCanonicalRoutePath(rename); } } @@ -261,8 +264,9 @@ export class MetadataMigrationService { const newExists = await knex.schema.hasTable(rename.to); if (oldExists && newExists) { - throw new Error( - `Cannot rename system table ${rename.from} to ${rename.to}: both physical tables exist`, + await this.reconcileSqlTableOverlap(rename); + this.verbose( + ` SQL table overlap detected: ${rename.from} and ${rename.to} both exist; continuing with canonical ${rename.to}`, ); } @@ -298,8 +302,9 @@ export class MetadataMigrationService { ); if (oldExists && newExists) { - throw new Error( - `Cannot rename system collection ${rename.from} to ${rename.to}: both collections exist`, + await this.reconcileMongoTableOverlap(rename); + this.verbose( + ` Mongo collection overlap detected: ${rename.from} and ${rename.to} both exist; continuing with canonical ${rename.to}`, ); } @@ -317,12 +322,11 @@ export class MetadataMigrationService { const tableStoreAfter = await this.systemCoreTableResolver.getTableName('table'); - await db - .collection(tableStoreAfter) - .updateOne( - tableRecord?._id ? { _id: tableRecord._id } : { name: rename.from }, - { $set: { name: rename.to, updatedAt: new Date() } }, - ); + await this.renameMongoTableMetadataRow( + tableStoreAfter, + rename, + tableRecord?._id, + ); } private async findSqlTableRecord( @@ -334,6 +338,392 @@ export class MetadataMigrationService { return knex(tableStore).where({ name: tableName }).first(); } + private getCoreMetadataRowKey( + rename: TableRenameDef, + row: any, + ): string | null { + const tableName = rename.to || rename.from; + if (tableName === SYSTEM_TABLES.table || tableName === 'table_definition') { + return row?.name + ? `table:${this.normalizeCoreTableName(row.name)}` + : null; + } + + if ( + tableName === SYSTEM_TABLES.column || + tableName === 'column_definition' + ) { + const owner = this.remapCoreTableId(rename, row?.tableId ?? row?.table); + const name = row?.name; + return owner !== undefined && owner !== null && name + ? `column:${String(owner)}:${name}` + : null; + } + + if ( + tableName === SYSTEM_TABLES.relation || + tableName === 'relation_definition' + ) { + const owner = this.remapCoreTableId( + rename, + row?.sourceTableId ?? row?.sourceTable, + ); + const propertyName = row?.propertyName; + return owner !== undefined && owner !== null && propertyName + ? `relation:${String(owner)}:${propertyName}` + : null; + } + + if (row?.name) return `name:${row.name}`; + if (row?.propertyName) return `property:${row.propertyName}`; + return null; + } + + private normalizeCoreTableName(tableName: string): string { + const entries = Object.entries(LEGACY_CORE_SYSTEM_TABLES) as Array< + [keyof typeof LEGACY_CORE_SYSTEM_TABLES, string] + >; + const matched = entries.find(([, legacyName]) => legacyName === tableName); + return matched ? CORE_SYSTEM_TABLES[matched[0]] : tableName; + } + + private remapCoreTableId(rename: TableRenameDef, value: any): any { + if (value === undefined || value === null) return value; + const tableName = rename.to || rename.from; + if ( + tableName !== SYSTEM_TABLES.column && + tableName !== 'column_definition' && + tableName !== SYSTEM_TABLES.relation && + tableName !== 'relation_definition' + ) { + return value; + } + + const map = this.queryBuilderService.isMongoDb() + ? this.mongoCoreTableIdRemap + : this.sqlCoreTableIdRemap; + return map.get(String(value)) ?? value; + } + + private async getSqlOverlapColumns( + oldTable: string, + newTable: string, + ): Promise { + const knex = this.queryBuilderService.getKnex(); + const [oldInfo, newInfo] = await Promise.all([ + knex(oldTable).columnInfo(), + knex(newTable).columnInfo(), + ]); + return Object.keys(oldInfo).filter((column) => column in newInfo); + } + + private getOverlapRowKey( + rename: TableRenameDef, + row: any, + columns: string[], + ): string | null { + const logicalKey = this.getCoreMetadataRowKey(rename, row); + if (logicalKey) return logicalKey; + + if ('id' in row && columns.includes('id') && row.id != null) + return `id:${row.id}`; + if ('_id' in row && columns.includes('_id') && row._id != null) + return `_id:${row._id}`; + return null; + } + + private projectRowToColumns(row: any, columns: string[]): any { + return Object.fromEntries( + columns + .filter((column) => row[column] !== undefined) + .map((column) => [column, row[column]]), + ); + } + + private projectCoreRowToColumns( + rename: TableRenameDef, + row: any, + columns: string[], + ): any { + const projected = this.projectRowToColumns(row, columns); + const tableName = rename.to || rename.from; + if ( + (tableName === SYSTEM_TABLES.table || tableName === 'table_definition') && + typeof projected.name === 'string' + ) { + projected.name = this.normalizeCoreTableName(projected.name); + } + if ( + tableName === SYSTEM_TABLES.column || + tableName === 'column_definition' + ) { + if ('tableId' in projected) + projected.tableId = this.remapCoreTableId(rename, projected.tableId); + if ('table' in projected) + projected.table = this.remapCoreTableId(rename, projected.table); + } + if ( + tableName === SYSTEM_TABLES.relation || + tableName === 'relation_definition' + ) { + if ('sourceTableId' in projected) { + projected.sourceTableId = this.remapCoreTableId( + rename, + projected.sourceTableId, + ); + } + if ('targetTableId' in projected) { + projected.targetTableId = this.remapCoreTableId( + rename, + projected.targetTableId, + ); + } + if ('sourceTable' in projected) { + projected.sourceTable = this.remapCoreTableId( + rename, + projected.sourceTable, + ); + } + if ('targetTable' in projected) { + projected.targetTable = this.remapCoreTableId( + rename, + projected.targetTable, + ); + } + } + return projected; + } + + private isCoreTableMetadataStore(rename: TableRenameDef): boolean { + const tableName = rename.to || rename.from; + return ( + tableName === SYSTEM_TABLES.table || tableName === 'table_definition' + ); + } + + private trackCanonicalCoreTableId(rename: TableRenameDef, row: any): void { + if (!this.isCoreTableMetadataStore(rename) || !row?.name) return; + const id = row.id ?? row._id; + if (id === undefined || id === null) return; + const map = this.queryBuilderService.isMongoDb() + ? this.mongoCoreTableIdRemap + : this.sqlCoreTableIdRemap; + map.set(String(id), id); + } + + private trackExistingCoreRowRemap( + rename: TableRenameDef, + legacyRow: any, + canonicalRows: any[], + ): void { + if (!this.isCoreTableMetadataStore(rename) || !legacyRow?.name) return; + const legacyId = legacyRow.id ?? legacyRow._id; + if (legacyId === undefined || legacyId === null) return; + const normalizedName = this.normalizeCoreTableName(legacyRow.name); + const canonicalRow = canonicalRows.find( + (row) => row?.name === normalizedName, + ); + const canonicalId = canonicalRow?.id ?? canonicalRow?._id; + if (canonicalId === undefined || canonicalId === null) return; + const map = this.queryBuilderService.isMongoDb() + ? this.mongoCoreTableIdRemap + : this.sqlCoreTableIdRemap; + map.set(String(legacyId), canonicalId); + } + + private sqlProjectedIdConflicts( + projected: any, + canonicalRows: any[], + ): boolean { + if (projected?.id === undefined || projected.id === null) return false; + return canonicalRows.some((row) => row?.id === projected.id); + } + + private mongoProjectedIdConflicts( + projected: any, + canonicalRows: any[], + ): boolean { + if (projected?._id === undefined || projected._id === null) return false; + return canonicalRows.some( + (row) => String(row?._id) === String(projected._id), + ); + } + + private async trackInsertedSqlCoreRowRemap( + rename: TableRenameDef, + legacyRow: any, + projected: any, + ): Promise { + if (!this.isCoreTableMetadataStore(rename)) return; + const legacyId = legacyRow?.id; + if (legacyId === undefined || legacyId === null) return; + let canonicalId = projected?.id; + if ( + (canonicalId === undefined || canonicalId === null) && + projected?.name + ) { + const inserted = await this.queryBuilderService + .getKnex()(rename.to) + .where({ name: projected.name }) + .first(); + canonicalId = inserted?.id; + } + if (canonicalId === undefined || canonicalId === null) return; + this.sqlCoreTableIdRemap.set(String(legacyId), canonicalId); + } + + private async trackInsertedMongoCoreRowRemap( + rename: TableRenameDef, + legacyRow: any, + projected: any, + ): Promise { + if (!this.isCoreTableMetadataStore(rename)) return; + const legacyId = legacyRow?._id; + if (legacyId === undefined || legacyId === null) return; + let canonicalId = projected?._id; + if ( + (canonicalId === undefined || canonicalId === null) && + projected?.name + ) { + const inserted = await this.getMongoDb()! + .collection(rename.to) + .findOne({ name: projected.name }); + canonicalId = inserted?._id; + } + if (canonicalId === undefined || canonicalId === null) return; + this.mongoCoreTableIdRemap.set(String(legacyId), canonicalId); + } + + private async reconcileSqlCoreTableOverlap( + rename: TableRenameDef, + ): Promise { + const knex = this.queryBuilderService.getKnex(); + const columns = await this.getSqlOverlapColumns(rename.from, rename.to); + const [legacyRows, canonicalRows] = await Promise.all([ + knex(rename.from).select(columns), + knex(rename.to).select(columns), + ]); + + const canonicalKeys = new Set(); + for (const row of canonicalRows) { + this.trackCanonicalCoreTableId(rename, row); + const key = this.getOverlapRowKey(rename, row, columns); + if (key !== null && key !== undefined) canonicalKeys.add(key); + } + const occupiedIds = new Set( + canonicalRows + .map((row: any) => row?.id) + .filter((id: any) => id !== undefined && id !== null) + .map((id: any) => String(id)), + ); + const rowsToInsert = legacyRows.filter((row: any) => { + const key = this.getOverlapRowKey(rename, row, columns); + if (key === null || key === undefined) return false; + if (canonicalKeys.has(key)) { + this.trackExistingCoreRowRemap(rename, row, canonicalRows); + return false; + } + return true; + }); + + let insertedCount = 0; + for (const row of rowsToInsert) { + const projected = this.projectCoreRowToColumns(rename, row, columns); + if ( + projected?.id !== undefined && + projected?.id !== null && + occupiedIds.has(String(projected.id)) + ) { + delete projected.id; + } + await knex(rename.to).insert(projected); + insertedCount += 1; + await this.trackInsertedSqlCoreRowRemap(rename, row, projected); + const insertedId = + projected?.id ?? + (projected?.name + ? (await knex(rename.to).where({ name: projected.name }).first())?.id + : undefined); + if (insertedId !== undefined && insertedId !== null) { + occupiedIds.add(String(insertedId)); + } + } + + if (insertedCount > 0) { + this.verbose( + ` Copied ${insertedCount} missing core metadata row(s) from ${rename.from} to ${rename.to}`, + ); + } + } + + private async reconcileSqlTableOverlap( + rename: TableRenameDef, + ): Promise { + this.verbose( + ` SQL table overlap detected for ${rename.from} and ${rename.to}; preserving canonical table ${rename.to} during bootstrap rename`, + ); + } + + private async reconcileMongoCoreTableOverlap( + rename: TableRenameDef, + ): Promise { + const db = this.getMongoDb()!; + const [legacyRows, canonicalRows] = await Promise.all([ + db.collection(rename.from).find({}).toArray(), + db.collection(rename.to).find({}).toArray(), + ]); + + const canonicalKeys = new Set(); + for (const row of canonicalRows) { + this.trackCanonicalCoreTableId(rename, row); + const key = this.getCoreMetadataRowKey(rename, row); + if (key !== null && key !== undefined) canonicalKeys.add(key); + } + const rowsToInsert = legacyRows.filter((row) => { + const key = this.getCoreMetadataRowKey(rename, row); + if (key === null || key === undefined) return false; + if (canonicalKeys.has(key)) { + this.trackExistingCoreRowRemap(rename, row, canonicalRows); + return false; + } + return true; + }); + + const projectedRows = rowsToInsert.map((row) => { + const projected = this.projectCoreRowToColumns( + rename, + row, + Object.keys(row), + ); + if (this.mongoProjectedIdConflicts(projected, canonicalRows)) { + delete projected._id; + } + return projected; + }); + + if (projectedRows.length > 0) { + await db.collection(rename.to).insertMany(projectedRows); + for (let index = 0; index < rowsToInsert.length; index += 1) { + await this.trackInsertedMongoCoreRowRemap( + rename, + rowsToInsert[index], + projectedRows[index], + ); + } + this.verbose( + ` Copied ${projectedRows.length} missing core metadata row(s) from ${rename.from} to ${rename.to}`, + ); + } + } + + private async reconcileMongoTableOverlap( + rename: TableRenameDef, + ): Promise { + this.verbose( + ` Mongo collection overlap detected for ${rename.from} and ${rename.to}; preserving canonical collection ${rename.to} during bootstrap rename`, + ); + } + private async renameSqlTableMetadataRow( tableStore: string, rename: TableRenameDef, @@ -341,12 +731,31 @@ export class MetadataMigrationService { ): Promise { const knex = this.queryBuilderService.getKnex(); if (!(await knex.schema.hasTable(tableStore))) return; + const targetRow = await knex(tableStore).where({ name: rename.to }).first(); + if (targetRow) return; const query = tableId ? knex(tableStore).where({ id: tableId }) : knex(tableStore).where({ name: rename.from }); await query.update({ name: rename.to }); } + private async renameMongoTableMetadataRow( + tableStore: string, + rename: TableRenameDef, + tableId?: any, + ): Promise { + const db = this.getMongoDb()!; + const targetRow = await db + .collection(tableStore) + .findOne({ name: rename.to }); + if (targetRow) return; + + const filter = tableId ? { _id: tableId } : { name: rename.from }; + await db.collection(tableStore).updateOne(filter, { + $set: { name: rename.to, updatedAt: new Date() }, + }); + } + private async updateSqlCanonicalRoutePath( rename: TableRenameDef, tableId?: any, diff --git a/src/engines/bootstrap/utils/metadata-physical-migration.util.ts b/src/engines/bootstrap/utils/metadata-physical-migration.util.ts index 65f3a634..0af5b745 100644 --- a/src/engines/bootstrap/utils/metadata-physical-migration.util.ts +++ b/src/engines/bootstrap/utils/metadata-physical-migration.util.ts @@ -147,12 +147,29 @@ export class MetadataPhysicalMigrationHelper { return matches.length > 0; } + private async reconcileMongoCollectionOverlap( + rename: TableRenameDef, + ): Promise { + this.verbose( + ` Physical Mongo overlap detected for ${rename.from} and ${rename.to}; preserving canonical collection ${rename.to}`, + ); + } + + private async reconcileSqlTableOverlap( + rename: TableRenameDef, + ): Promise { + this.verbose( + ` Physical SQL overlap detected for ${rename.from} and ${rename.to}; preserving canonical table ${rename.to}`, + ); + } + private async renameMongoCollection(rename: TableRenameDef): Promise { const oldExists = await this.mongoCollectionExists(rename.from); const newExists = await this.mongoCollectionExists(rename.to); if (oldExists && newExists) { - throw new Error( - `Cannot rename physical collection ${rename.from} to ${rename.to}: both collections exist`, + await this.reconcileMongoCollectionOverlap(rename); + this.verbose( + ` Physical Mongo overlap detected: ${rename.from} and ${rename.to} both exist; continuing with canonical ${rename.to}`, ); } if (oldExists && !newExists) { @@ -168,8 +185,9 @@ export class MetadataPhysicalMigrationHelper { const oldExists = await knex.schema.hasTable(rename.from); const newExists = await knex.schema.hasTable(rename.to); if (oldExists && newExists) { - throw new Error( - `Cannot rename physical table ${rename.from} to ${rename.to}: both physical tables exist`, + await this.reconcileSqlTableOverlap(rename); + this.verbose( + ` Physical SQL overlap detected: ${rename.from} and ${rename.to} both exist; continuing with canonical ${rename.to}`, ); } if (oldExists && !newExists) { diff --git a/test/cache/websocket-cache-partial.spec.ts b/test/cache/websocket-cache-partial.spec.ts index 79a4c522..ccb33e1b 100644 --- a/test/cache/websocket-cache-partial.spec.ts +++ b/test/cache/websocket-cache-partial.spec.ts @@ -63,8 +63,8 @@ describe('WebsocketCacheService partial reload', () => { }, ]; const events = [ - { id: 10, gateway: { id: 1 } }, - { id: 20, gateway: { id: 2 } }, + { id: 10, eventName: 'chat:message', gateway: { id: 1 } }, + { id: 20, eventName: 'admin:ping', gateway: { id: 2 } }, ]; const { svc, qb } = makeService(gateways, events); await svc.reload(false); @@ -72,6 +72,7 @@ describe('WebsocketCacheService partial reload', () => { gateways[0].events = [ { id: 10, eventName: 'chat:new', gateway: { id: 1 } }, ]; + events[0].eventName = 'chat:new'; qb.find.mockClear(); await svc.partialReload( diff --git a/test/domain/data-migration.service.spec.ts b/test/domain/data-migration.service.spec.ts index e5cd0df3..37fecd6f 100644 --- a/test/domain/data-migration.service.spec.ts +++ b/test/domain/data-migration.service.spec.ts @@ -1,5 +1,14 @@ import { DataMigrationService } from '../../src/engines/bootstrap'; import { DatabaseConfigService } from '../../src/shared/services'; +import { getSqlJunctionPhysicalNames } from '../../src/modules/table-management/utils/sql-junction-naming.util'; + +function routeMethodJunction(propertyName: string) { + return getSqlJunctionPhysicalNames({ + sourceTable: 'enfyra_route', + propertyName, + targetTable: 'enfyra_method', + }).junctionTableName; +} function makeQueryBuilder( overrides: Partial<{ @@ -75,6 +84,10 @@ function makeKnex(methodRows: any[] = []) { rawCalls.push({ sql, bindings }); return { rows: [] }; }); + (knex as any).schema = { + hasTable: jest.fn(async () => true), + hasColumn: jest.fn(async () => true), + }; return { knex, deletes, inserts, rawCalls }; } @@ -171,20 +184,20 @@ describe('DataMigrationService.transformRecord', () => { it('does not capture undefined relation field', () => { const svc = makeService(makeQueryBuilder()); - const { relationUpdates } = (svc as any).transformRecord( - 'enfyra_route', - { _unique: { path: { _eq: '/test' } }, name: 'hello' }, - ); + const { relationUpdates } = (svc as any).transformRecord('enfyra_route', { + _unique: { path: { _eq: '/test' } }, + name: 'hello', + }); expect(relationUpdates.publicMethods).toBeUndefined(); expect(relationUpdates.availableMethods).toBeUndefined(); }); it('does not capture null relation field', () => { const svc = makeService(makeQueryBuilder()); - const { relationUpdates } = (svc as any).transformRecord( - 'enfyra_route', - { _unique: { path: { _eq: '/test' } }, publicMethods: null }, - ); + const { relationUpdates } = (svc as any).transformRecord('enfyra_route', { + _unique: { path: { _eq: '/test' } }, + publicMethods: null, + }); expect(relationUpdates.publicMethods).toBeUndefined(); }); }); @@ -210,7 +223,7 @@ describe('DataMigrationService.updateRelations', () => { expect(qb.__knexMock.rawCalls).toContainEqual({ sql: 'delete from ?? where ?? = ?', - bindings: ['j_publicMethods', 'sourceId', 99], + bindings: [routeMethodJunction('publicMethods'), 'sourceId', 99], }); }); @@ -230,7 +243,15 @@ describe('DataMigrationService.updateRelations', () => { expect(knexMock.rawCalls).toContainEqual({ sql: 'insert into ?? (??, ??) values (?, ?), (?, ?)', - bindings: ['j_publicMethods', 'sourceId', 'targetId', 10, 1, 10, 2], + bindings: [ + routeMethodJunction('publicMethods'), + 'sourceId', + 'targetId', + 10, + 1, + 10, + 2, + ], }); }); @@ -246,7 +267,7 @@ describe('DataMigrationService.updateRelations', () => { expect(qb.__knexMock.rawCalls).toContainEqual({ sql: 'delete from ?? where ?? = ?', - bindings: ['j_availableMethods', 'sourceId', 5], + bindings: [routeMethodJunction('availableMethods'), 'sourceId', 5], }); }); @@ -275,21 +296,24 @@ describe('DataMigrationService.updateRelations', () => { expect(knexMock.rawCalls).toContainEqual({ sql: 'delete from ?? where ?? = ?', - bindings: ['j_publicMethods', 'sourceId', 7], + bindings: [routeMethodJunction('publicMethods'), 'sourceId', 7], }); expect(knexMock.rawCalls).toContainEqual({ sql: 'insert into ?? (??, ??) values (?, ?)', - bindings: ['j_availableMethods', 'sourceId', 'targetId', 7, 3], + bindings: [ + routeMethodJunction('availableMethods'), + 'sourceId', + 'targetId', + 7, + 3, + ], }); }); it('writes Mongo route method relations directly to the metadata junction', async () => { DatabaseConfigService.overrideForTesting('mongodb'); const mongoDb = makeMongoDb(); - const methodIds = [ - '653333333333333333333333', - '654444444444444444444444', - ]; + const methodIds = ['653333333333333333333333', '654444444444444444444444']; const qb = makeQueryBuilder({ getMongoDb: jest.fn(() => mongoDb), find: jest.fn().mockResolvedValue({ @@ -347,7 +371,7 @@ describe('DataMigrationService.migrateTable — end-to-end for publicMethods cle expect(qb.update).not.toHaveBeenCalled(); expect(qb.__knexMock.rawCalls).toContainEqual({ sql: 'delete from ?? where ?? = ?', - bindings: ['j_publicMethods', 'sourceId', 42], + bindings: [routeMethodJunction('publicMethods'), 'sourceId', 42], }); }); diff --git a/test/domain/first-run-initializer.spec.ts b/test/domain/first-run-initializer.spec.ts index ca4a0e11..f67e4ec0 100644 --- a/test/domain/first-run-initializer.spec.ts +++ b/test/domain/first-run-initializer.spec.ts @@ -33,6 +33,10 @@ describe('FirstRunInitializer', () => { createInitMetadata: jest.fn(async () => undefined), }, metadataMigrationService: { + runCoreTableRenamesBeforeMetadataSync: jest.fn(async () => { + calls.push('core-migrate'); + }), + runTableRenamesBeforeMetadataSync: jest.fn(async () => undefined), runPhysicalMigrationsBeforeMetadataSync: jest.fn(async () => { calls.push('migrate'); }), @@ -49,9 +53,11 @@ describe('FirstRunInitializer', () => { runMigrations: jest.fn(), }, schemaHealingService: { - repairSystemPhysicalColumnsBeforeMetadataProvision: jest.fn(async () => { - calls.push('heal-preflight'); - }), + repairSystemPhysicalColumnsBeforeMetadataProvision: jest.fn( + async () => { + calls.push('heal-preflight'); + }, + ), repairSystemMetadataFromSnapshot: jest.fn(async () => { calls.push('metadata-heal'); }), @@ -70,7 +76,8 @@ describe('FirstRunInitializer', () => { await (initializer as any).runWithProgress(); - expect(calls.slice(0, 4)).toEqual([ + expect(calls.slice(0, 5)).toEqual([ + 'core-migrate', 'migrate', 'heal-preflight', 'metadata-migrate', diff --git a/test/domain/metadata-migration.real-db.spec.ts b/test/domain/metadata-migration.real-db.spec.ts new file mode 100644 index 00000000..3cc3556d --- /dev/null +++ b/test/domain/metadata-migration.real-db.spec.ts @@ -0,0 +1,329 @@ +import knex, { type Knex } from 'knex'; +import { MongoClient, type Db } from 'mongodb'; +import { MetadataMigrationService } from '../../src/engines/bootstrap/services/metadata-migration.service'; + +const SQL_DBS = [ + { + name: 'postgres', + client: 'pg', + connection: + process.env.PG_TEST_URI || + 'postgresql://root:1234@localhost:5432/postgres', + }, + { + name: 'mysql', + client: 'mysql2', + connection: + process.env.MYSQL_TEST_URI || 'mysql://root:1234@localhost:3306/enfyra', + }, +]; + +const MONGO_URI = + process.env.MONGO_TEST_URI || + 'mongodb://enfyra_admin:enfyra_password_123@localhost:27017/?authSource=admin'; + +async function probeSql(config: (typeof SQL_DBS)[number]): Promise { + const db = knex({ client: config.client, connection: config.connection }); + try { + await db.raw('select 1'); + return true; + } catch { + return false; + } finally { + await db.destroy(); + } +} + +async function probeMongo(): Promise { + const client = new MongoClient(MONGO_URI, { serverSelectionTimeoutMS: 2000 }); + try { + await client.connect(); + return true; + } catch { + return false; + } finally { + await client.close().catch(() => undefined); + } +} + +function makeService(queryBuilderService: any) { + return new MetadataMigrationService({ + queryBuilderService, + systemCoreTableResolver: { + getTableName: async (key: string) => `enfyra_${key}`, + } as any, + }); +} + +async function dropSqlTables(db: Knex, names: string[]) { + for (const name of names) { + await db.schema.dropTableIfExists(name); + } +} + +async function makeIsolatedSqlDb(config: (typeof SQL_DBS)[number]) { + const suffix = `${Date.now()}_${Math.random().toString(16).slice(2)}`.replace( + /[^a-zA-Z0-9_]/g, + '_', + ); + const admin = knex({ client: config.client, connection: config.connection }); + + if (config.client === 'pg') { + const schema = `metadata_migration_stress_${suffix}`.toLowerCase(); + await admin.raw('create schema ??', [schema]); + const db = knex({ + client: config.client, + connection: config.connection, + searchPath: [schema], + }); + return { + db, + cleanup: async () => { + await db.destroy(); + await admin.raw('drop schema if exists ?? cascade', [schema]); + await admin.destroy(); + }, + }; + } + + const database = `metadata_migration_stress_${suffix}`.toLowerCase(); + await admin.raw('create database ??', [database]); + const url = new URL(config.connection); + url.pathname = `/${database}`; + const db = knex({ client: config.client, connection: url.toString() }); + return { + db, + cleanup: async () => { + await db.destroy(); + await admin.raw('drop database if exists ??', [database]); + await admin.destroy(); + }, + }; +} + +async function createSqlCoreStore(db: Knex, name: string) { + await db.schema.createTable(name, (table) => { + table.increments('id').primary(); + table.string('name'); + }); +} + +async function createSqlColumnStore(db: Knex, name: string) { + await db.schema.createTable(name, (table) => { + table.increments('id').primary(); + table.integer('tableId'); + table.string('name'); + }); +} + +async function createSqlRelationStore(db: Knex, name: string) { + await db.schema.createTable(name, (table) => { + table.increments('id').primary(); + table.integer('sourceTableId'); + table.integer('targetTableId'); + table.string('propertyName'); + }); +} + +describe('MetadataMigrationService real DB self-healing stress', () => { + for (const config of SQL_DBS) { + test(`heals repeated core table overlap on ${config.name}`, async () => { + const available = await probeSql(config); + if (!available) { + console.warn(`${config.name} not available, skipping SQL stress test`); + return; + } + + const names = { + tableOld: 'table_definition', + tableNew: 'enfyra_table', + columnOld: 'column_definition', + columnNew: 'enfyra_column', + relationOld: 'relation_definition', + relationNew: 'enfyra_relation', + }; + const { db, cleanup } = await makeIsolatedSqlDb(config); + + try { + await dropSqlTables(db, Object.values(names)); + await createSqlCoreStore(db, names.tableOld); + await createSqlCoreStore(db, names.tableNew); + await createSqlColumnStore(db, names.columnOld); + await createSqlColumnStore(db, names.columnNew); + await createSqlRelationStore(db, names.relationOld); + await createSqlRelationStore(db, names.relationNew); + + await db(names.tableOld).insert([ + { id: 10, name: 'table_definition' }, + { id: 11, name: 'post' }, + { id: 12, name: 'comment' }, + ]); + await db(names.tableNew).insert([{ id: 10, name: 'enfyra_table' }]); + await db(names.columnOld).insert([ + { id: 20, tableId: 11, name: 'title' }, + { id: 21, tableId: 12, name: 'body' }, + ]); + await db(names.columnNew).insert([{ id: 20, tableId: 10, name: 'id' }]); + await db(names.relationOld).insert([ + { + id: 30, + sourceTableId: 11, + targetTableId: 12, + propertyName: 'comments', + }, + ]); + await db(names.relationNew).insert([ + { + id: 30, + sourceTableId: 10, + targetTableId: 10, + propertyName: 'self', + }, + ]); + + const service = makeService({ + isMongoDb: () => false, + getKnex: () => db, + }); + const renames = [ + { from: names.tableOld, to: names.tableNew }, + { from: names.columnOld, to: names.columnNew }, + { from: names.relationOld, to: names.relationNew }, + ]; + + await (service as any).runSqlCoreTableRenames(renames); + await (service as any).runSqlCoreTableRenames(renames); + + const tables = await db(names.tableNew).select('*').orderBy('name'); + const post = tables.find((row) => row.name === 'post'); + const comment = tables.find((row) => row.name === 'comment'); + expect(tables.filter((row) => row.name === 'post')).toHaveLength(1); + expect(tables.filter((row) => row.name === 'comment')).toHaveLength(1); + expect(tables.some((row) => row.name === 'table_definition')).toBe( + false, + ); + + const columns = await db(names.columnNew).select('*'); + expect( + columns.filter((row) => row.tableId === post.id && row.name === 'title'), + ).toHaveLength(1); + expect( + columns.filter( + (row) => row.tableId === comment.id && row.name === 'body', + ), + ).toHaveLength(1); + + const relations = await db(names.relationNew).select('*'); + expect( + relations.filter( + (row) => + row.sourceTableId === post.id && + row.targetTableId === comment.id && + row.propertyName === 'comments', + ), + ).toHaveLength(1); + } finally { + await cleanup(); + } + }); + } + + test('heals repeated core collection overlap on MongoDB', async () => { + const available = await probeMongo(); + if (!available) { + console.warn('MongoDB not available, skipping Mongo stress test'); + return; + } + + const suffix = `${Date.now()}_${Math.random().toString(16).slice(2)}`; + const dbName = `metadata_migration_stress_${suffix}`; + const names = { + tableOld: 'table_definition', + tableNew: 'enfyra_table', + columnOld: 'column_definition', + columnNew: 'enfyra_column', + relationOld: 'relation_definition', + relationNew: 'enfyra_relation', + }; + const client = new MongoClient(MONGO_URI); + let db: Db | undefined; + + try { + await client.connect(); + db = client.db(dbName); + await db.collection(names.tableOld).insertMany([ + { _id: 'table-id', name: 'table_definition' }, + { _id: 'post-id', name: 'post' }, + { _id: 'comment-id', name: 'comment' }, + ]); + await db + .collection(names.tableNew) + .insertOne({ _id: 'table-id', name: 'enfyra_table' }); + await db.collection(names.columnOld).insertMany([ + { _id: 'title-column', table: 'post-id', name: 'title' }, + { _id: 'body-column', table: 'comment-id', name: 'body' }, + ]); + await db + .collection(names.columnNew) + .insertOne({ _id: 'title-column', table: 'table-id', name: 'id' }); + await db.collection(names.relationOld).insertOne({ + _id: 'comments-relation', + sourceTable: 'post-id', + targetTable: 'comment-id', + propertyName: 'comments', + }); + await db.collection(names.relationNew).insertOne({ + _id: 'comments-relation', + sourceTable: 'table-id', + targetTable: 'table-id', + propertyName: 'self', + }); + + const service = makeService({ + isMongoDb: () => true, + getMongoDb: () => db, + }); + const renames = [ + { from: names.tableOld, to: names.tableNew }, + { from: names.columnOld, to: names.columnNew }, + { from: names.relationOld, to: names.relationNew }, + ]; + + await (service as any).runMongoCoreTableRenames(renames); + await (service as any).runMongoCoreTableRenames(renames); + + const tables = await db.collection(names.tableNew).find({}).toArray(); + const post = tables.find((row) => row.name === 'post'); + const comment = tables.find((row) => row.name === 'comment'); + expect(tables.filter((row) => row.name === 'post')).toHaveLength(1); + expect(tables.filter((row) => row.name === 'comment')).toHaveLength(1); + expect(tables.some((row) => row.name === 'table_definition')).toBe(false); + + const columns = await db.collection(names.columnNew).find({}).toArray(); + expect( + columns.filter((row) => row.table === post?._id && row.name === 'title'), + ).toHaveLength(1); + expect( + columns.filter( + (row) => row.table === comment?._id && row.name === 'body', + ), + ).toHaveLength(1); + + const relations = await db + .collection(names.relationNew) + .find({}) + .toArray(); + expect( + relations.filter( + (row) => + row.sourceTable === post?._id && + row.targetTable === comment?._id && + row.propertyName === 'comments', + ), + ).toHaveLength(1); + } finally { + if (db) await db.dropDatabase(); + await client.close(); + } + }); +}); diff --git a/test/domain/metadata-migration.service.spec.ts b/test/domain/metadata-migration.service.spec.ts new file mode 100644 index 00000000..983508c9 --- /dev/null +++ b/test/domain/metadata-migration.service.spec.ts @@ -0,0 +1,668 @@ +import { MetadataMigrationService } from '../../src/engines/bootstrap/services/metadata-migration.service'; + +function makeSqlKnex({ + tables, + schemas = {}, +}: { + tables: Record; + schemas?: Record; +}) { + const inserts: Array<{ table: string; rows: any[] }> = []; + const updates: Array<{ table: string; where: any; data: any }> = []; + const deletes: Array<{ table: string; where: any }> = []; + + const matchRow = (row: any, condition: any) => + Object.entries(condition).every(([key, value]) => row[key] === value); + + const knex = jest.fn((table: string) => ({ + select: jest.fn(async () => tables[table] ?? []), + columnInfo: jest.fn(async () => { + const rows = tables[table] ?? []; + const columns = new Set(schemas[table] ?? []); + rows.forEach((row) => + Object.keys(row).forEach((column) => columns.add(column)), + ); + return Object.fromEntries( + [...columns].map((column) => [column, { type: 'varchar' }]), + ); + }), + insert: jest.fn(async (input: any[] | any) => { + const rows = Array.isArray(input) ? input : [input]; + const normalizedRows = rows.map((row) => { + if (row.id !== undefined && row.id !== null) return row; + const maxId = Math.max(0, ...(tables[table] ?? []).map((r) => r.id)); + return { ...row, id: maxId + 1 }; + }); + inserts.push({ table, rows: normalizedRows }); + tables[table] = [...(tables[table] ?? []), ...normalizedRows]; + return normalizedRows.length; + }), + where: jest.fn((condition: any) => ({ + update: jest.fn(async (data: any) => { + updates.push({ table, where: condition, data }); + tables[table] = (tables[table] ?? []).map((row) => + matchRow(row, condition) ? { ...row, ...data } : row, + ); + return 1; + }), + andWhere: jest.fn((extraCondition: any) => ({ + update: jest.fn(async (data: any) => { + updates.push({ + table, + where: { ...condition, ...extraCondition }, + data, + }); + return 1; + }), + })), + whereNot: jest.fn((negativeCondition: any) => ({ + delete: jest.fn(async () => { + deletes.push({ + table, + where: { ...condition, not: negativeCondition }, + }); + tables[table] = (tables[table] ?? []).filter( + (row) => + !matchRow(row, condition) || matchRow(row, negativeCondition), + ); + return 1; + }), + })), + first: jest.fn( + async () => + (tables[table] ?? []).find((row) => matchRow(row, condition)) ?? null, + ), + })), + })) as any; + + knex.schema = { + hasTable: jest.fn(async (table: string) => table in tables), + }; + + return { knex, inserts, updates, deletes, tables }; +} + +function makeMongoDb({ collections }: { collections: Record }) { + const inserts: Array<{ collection: string; rows: any[] }> = []; + const updates: Array<{ collection: string; filter: any; data: any }> = []; + + const matchRow = (row: any, condition: any) => + Object.entries(condition).every(([key, value]) => row[key] === value); + + const db = { + collection: jest.fn((name: string) => ({ + find: jest.fn((filter = {}) => ({ + toArray: jest.fn(async () => + (collections[name] ?? []).filter((row) => matchRow(row, filter)), + ), + })), + findOne: jest.fn( + async (filter = {}) => + (collections[name] ?? []).find((row) => matchRow(row, filter)) ?? + null, + ), + insertMany: jest.fn(async (rows: any[]) => { + const normalizedRows = rows.map((row, index) => + row._id !== undefined && row._id !== null + ? row + : { ...row, _id: `${name}-generated-${index + 1}` }, + ); + inserts.push({ collection: name, rows: normalizedRows }); + collections[name] = [...(collections[name] ?? []), ...normalizedRows]; + return { insertedCount: normalizedRows.length }; + }), + updateOne: jest.fn(async (filter: any, data: any) => { + updates.push({ collection: name, filter, data }); + collections[name] = (collections[name] ?? []).map((row) => + matchRow(row, filter) ? { ...row, ...(data.$set ?? data) } : row, + ); + return { modifiedCount: 1 }; + }), + updateMany: jest.fn(async (filter: any, data: any) => { + updates.push({ collection: name, filter, data }); + collections[name] = (collections[name] ?? []).map((row) => + matchRow(row, filter) ? { ...row, ...(data.$set ?? data) } : row, + ); + return { modifiedCount: 1 }; + }), + rename: jest.fn(async (target: string) => { + collections[target] = collections[name] ?? []; + delete collections[name]; + }), + })), + listCollections: jest.fn(({ name }: { name: string }) => ({ + toArray: jest.fn(async () => (name in collections ? [{ name }] : [])), + })), + } as any; + + return { db, collections, inserts, updates }; +} + +describe('MetadataMigrationService core table overlap', () => { + it('does not keep legacy core table names when canonical SQL metadata already exists', async () => { + const sql = makeSqlKnex({ + tables: { + table_definition: [ + { id: 1, name: 'table_definition' }, + { id: 4, name: 'route_definition' }, + ], + enfyra_table: [ + { id: 2, name: 'enfyra_table' }, + { id: 3, name: 'route_definition' }, + ], + route_definition: [ + { id: 10, path: '/table_definition', mainTableId: 1 }, + ], + }, + }); + + const service = new MetadataMigrationService({ + queryBuilderService: { + isMongoDb: jest.fn(() => false), + getKnex: jest.fn(() => sql.knex), + } as any, + systemCoreTableResolver: { + getTableName: jest.fn(async () => 'enfyra_table'), + } as any, + }); + + await (service as any).runSqlCoreTableRenames([ + { from: 'table_definition', to: 'enfyra_table' }, + ]); + + expect(sql.inserts).toEqual([]); + expect(sql.tables.enfyra_table).toEqual( + expect.arrayContaining([ + { id: 2, name: 'enfyra_table' }, + { id: 3, name: 'route_definition' }, + ]), + ); + expect(sql.deletes).toEqual([]); + }); + + it('copies missing non-core legacy rows into canonical SQL metadata without keeping legacy core names', async () => { + const sql = makeSqlKnex({ + tables: { + table_definition: [ + { id: 1, name: 'table_definition' }, + { id: 20, name: 'custom_post' }, + ], + enfyra_table: [{ id: 2, name: 'enfyra_table' }], + }, + }); + + const service = new MetadataMigrationService({ + queryBuilderService: { + isMongoDb: jest.fn(() => false), + getKnex: jest.fn(() => sql.knex), + } as any, + systemCoreTableResolver: { + getTableName: jest.fn(async () => 'enfyra_table'), + } as any, + }); + + await (service as any).runSqlCoreTableRenames([ + { from: 'table_definition', to: 'enfyra_table' }, + ]); + + expect(sql.inserts).toContainEqual({ + table: 'enfyra_table', + rows: [{ id: 20, name: 'custom_post' }], + }); + expect(sql.tables.enfyra_table).not.toEqual( + expect.arrayContaining([{ id: 1, name: 'table_definition' }]), + ); + }); + + it('remaps SQL child metadata when a legacy table id conflicts with an existing canonical row', async () => { + const sql = makeSqlKnex({ + tables: { + table_definition: [ + { id: 1, name: 'table_definition' }, + { id: 20, name: 'custom_post' }, + ], + enfyra_table: [{ id: 20, name: 'enfyra_table' }], + column_definition: [{ id: 100, tableId: 20, name: 'title' }], + enfyra_column: [{ id: 999, tableId: 20, name: 'id' }], + }, + }); + + const service = new MetadataMigrationService({ + queryBuilderService: { + isMongoDb: jest.fn(() => false), + getKnex: jest.fn(() => sql.knex), + } as any, + systemCoreTableResolver: { + getTableName: jest.fn(async () => 'enfyra_table'), + } as any, + }); + + await (service as any).runSqlCoreTableRenames([ + { from: 'table_definition', to: 'enfyra_table' }, + { from: 'column_definition', to: 'enfyra_column' }, + ]); + + const insertedTable = sql.tables.enfyra_table.find( + (row) => row.name === 'custom_post', + ); + expect(insertedTable).toMatchObject({ name: 'custom_post' }); + expect(insertedTable.id).not.toBe(20); + expect(sql.inserts).toContainEqual({ + table: 'enfyra_column', + rows: [{ id: 100, tableId: insertedTable.id, name: 'title' }], + }); + }); + + it('remaps SQL relation metadata through conflicting legacy source and target table ids', async () => { + const sql = makeSqlKnex({ + tables: { + table_definition: [ + { id: 30, name: 'author' }, + { id: 31, name: 'post' }, + ], + enfyra_table: [ + { id: 30, name: 'enfyra_table' }, + { id: 31, name: 'enfyra_column' }, + ], + relation_definition: [ + { + id: 200, + sourceTableId: 31, + targetTableId: 30, + propertyName: 'author', + }, + ], + enfyra_relation: [ + { + id: 999, + sourceTableId: 900, + targetTableId: 901, + propertyName: 'existing', + }, + ], + }, + schemas: { + relation_definition: [ + 'id', + 'sourceTableId', + 'targetTableId', + 'propertyName', + ], + enfyra_relation: [ + 'id', + 'sourceTableId', + 'targetTableId', + 'propertyName', + ], + }, + }); + + const service = new MetadataMigrationService({ + queryBuilderService: { + isMongoDb: jest.fn(() => false), + getKnex: jest.fn(() => sql.knex), + } as any, + systemCoreTableResolver: { + getTableName: jest.fn(async () => 'enfyra_table'), + } as any, + }); + + await (service as any).runSqlCoreTableRenames([ + { from: 'table_definition', to: 'enfyra_table' }, + { from: 'relation_definition', to: 'enfyra_relation' }, + ]); + + const author = sql.tables.enfyra_table.find( + (row) => row.name === 'author', + ); + const post = sql.tables.enfyra_table.find((row) => row.name === 'post'); + expect(author.id).not.toBe(30); + expect(post.id).not.toBe(31); + expect(sql.inserts).toContainEqual({ + table: 'enfyra_relation', + rows: [ + { + id: 200, + sourceTableId: post.id, + targetTableId: author.id, + propertyName: 'author', + }, + ], + }); + }); + + it('keeps SQL core overlap healing idempotent across repeated runs', async () => { + const tables = { + table_definition: [ + { id: 40, name: 'table_definition' }, + { id: 41, name: 'post' }, + { id: 42, name: 'comment' }, + ], + enfyra_table: [{ id: 40, name: 'enfyra_table' }], + column_definition: [ + { id: 300, tableId: 41, name: 'title' }, + { id: 301, tableId: 42, name: 'body' }, + ], + enfyra_column: [{ id: 302, tableId: 40, name: 'id' }], + relation_definition: [ + { + id: 400, + sourceTableId: 41, + targetTableId: 42, + propertyName: 'comments', + }, + ], + enfyra_relation: [ + { + id: 401, + sourceTableId: 40, + targetTableId: 40, + propertyName: 'self', + }, + ], + }; + const sql = makeSqlKnex({ + tables, + schemas: { + table_definition: ['id', 'name'], + enfyra_table: ['id', 'name'], + column_definition: ['id', 'tableId', 'name'], + enfyra_column: ['id', 'tableId', 'name'], + relation_definition: [ + 'id', + 'sourceTableId', + 'targetTableId', + 'propertyName', + ], + enfyra_relation: [ + 'id', + 'sourceTableId', + 'targetTableId', + 'propertyName', + ], + }, + }); + + const service = new MetadataMigrationService({ + queryBuilderService: { + isMongoDb: jest.fn(() => false), + getKnex: jest.fn(() => sql.knex), + } as any, + systemCoreTableResolver: { + getTableName: jest.fn(async () => 'enfyra_table'), + } as any, + }); + + const renames = [ + { from: 'table_definition', to: 'enfyra_table' }, + { from: 'column_definition', to: 'enfyra_column' }, + { from: 'relation_definition', to: 'enfyra_relation' }, + ]; + + await (service as any).runSqlCoreTableRenames(renames); + const afterFirstRun = { + tables: [...sql.tables.enfyra_table], + columns: [...sql.tables.enfyra_column], + relations: [...sql.tables.enfyra_relation], + insertCount: sql.inserts.length, + }; + + await (service as any).runSqlCoreTableRenames(renames); + + expect(sql.tables.enfyra_table).toEqual(afterFirstRun.tables); + expect(sql.tables.enfyra_column).toEqual(afterFirstRun.columns); + expect(sql.tables.enfyra_relation).toEqual(afterFirstRun.relations); + expect(sql.inserts).toHaveLength(afterFirstRun.insertCount); + expect(sql.tables.enfyra_table.filter((row) => row.name === 'post')).toHaveLength(1); + expect( + sql.tables.enfyra_relation.filter( + (row) => row.propertyName === 'comments', + ), + ).toHaveLength(1); + }); + + it('does not duplicate SQL relation metadata when remapped logical relation already exists', async () => { + const sql = makeSqlKnex({ + tables: { + table_definition: [{ id: 10, name: 'post' }], + enfyra_table: [{ id: 99, name: 'post' }], + relation_definition: [ + { id: 100, sourceTableId: 10, propertyName: 'comments' }, + ], + enfyra_relation: [ + { id: 101, sourceTableId: 99, propertyName: 'comments' }, + ], + }, + }); + + const service = new MetadataMigrationService({ + queryBuilderService: { + isMongoDb: jest.fn(() => false), + getKnex: jest.fn(() => sql.knex), + } as any, + systemCoreTableResolver: { + getTableName: jest.fn(async () => 'enfyra_table'), + } as any, + }); + + await (service as any).runSqlCoreTableRenames([ + { from: 'table_definition', to: 'enfyra_table' }, + { from: 'relation_definition', to: 'enfyra_relation' }, + ]); + + expect(sql.inserts).toEqual([]); + expect(sql.tables.enfyra_relation).toEqual([ + { id: 101, sourceTableId: 99, propertyName: 'comments' }, + ]); + }); + + it('does not duplicate canonical SQL core rows when logical names already match', async () => { + const sql = makeSqlKnex({ + tables: { + table_definition: [{ id: 1, name: 'enfyra_table' }], + enfyra_table: [{ id: 2, name: 'enfyra_table' }], + }, + }); + + const service = new MetadataMigrationService({ + queryBuilderService: { + isMongoDb: jest.fn(() => false), + getKnex: jest.fn(() => sql.knex), + } as any, + systemCoreTableResolver: { + getTableName: jest.fn(async () => 'enfyra_table'), + } as any, + }); + + await (service as any).runSqlCoreTableRenames([ + { from: 'table_definition', to: 'enfyra_table' }, + ]); + + expect(sql.inserts).toEqual([]); + expect(sql.tables.enfyra_table).toEqual([{ id: 2, name: 'enfyra_table' }]); + expect(sql.deletes).toEqual([]); + }); + + it('normalizes legacy core table names when reconciling Mongo core overlap', async () => { + const mongo = makeMongoDb({ + collections: { + table_definition: [ + { _id: 'legacy-table', name: 'table_definition' }, + { _id: 'custom-post', name: 'custom_post' }, + ], + enfyra_table: [{ _id: 'canonical-table', name: 'enfyra_table' }], + }, + }); + + const service = new MetadataMigrationService({ + queryBuilderService: { + isMongoDb: jest.fn(() => true), + getMongoDb: jest.fn(() => mongo.db), + } as any, + systemCoreTableResolver: { + getTableName: jest.fn(async () => 'enfyra_table'), + } as any, + }); + + await (service as any).runMongoCoreTableRenames([ + { from: 'table_definition', to: 'enfyra_table' }, + ]); + + expect(mongo.inserts).toContainEqual({ + collection: 'enfyra_table', + rows: [{ _id: 'custom-post', name: 'custom_post' }], + }); + expect(mongo.collections.enfyra_table).not.toEqual( + expect.arrayContaining([ + { _id: 'legacy-table', name: 'table_definition' }, + ]), + ); + }); + + it('remaps Mongo child metadata when a legacy table id conflicts with an existing canonical document', async () => { + const mongo = makeMongoDb({ + collections: { + table_definition: [ + { _id: 'legacy-core', name: 'table_definition' }, + { _id: 'conflicting-id', name: 'custom_post' }, + ], + enfyra_table: [{ _id: 'conflicting-id', name: 'enfyra_table' }], + column_definition: [ + { _id: 'legacy-column', table: 'conflicting-id', name: 'title' }, + ], + enfyra_column: [], + }, + }); + + const service = new MetadataMigrationService({ + queryBuilderService: { + isMongoDb: jest.fn(() => true), + getMongoDb: jest.fn(() => mongo.db), + } as any, + systemCoreTableResolver: { + getTableName: jest.fn(async () => 'enfyra_table'), + } as any, + }); + + await (service as any).runMongoCoreTableRenames([ + { from: 'table_definition', to: 'enfyra_table' }, + { from: 'column_definition', to: 'enfyra_column' }, + ]); + + const insertedTable = mongo.collections.enfyra_table.find( + (row) => row.name === 'custom_post', + ); + expect(insertedTable).toMatchObject({ name: 'custom_post' }); + expect(insertedTable._id).not.toBe('conflicting-id'); + expect(mongo.inserts).toContainEqual({ + collection: 'enfyra_column', + rows: [{ _id: 'legacy-column', table: insertedTable._id, name: 'title' }], + }); + }); + + it('remaps Mongo relation metadata through conflicting legacy source and target table ids', async () => { + const mongo = makeMongoDb({ + collections: { + table_definition: [ + { _id: 'author-id', name: 'author' }, + { _id: 'post-id', name: 'post' }, + ], + enfyra_table: [ + { _id: 'author-id', name: 'enfyra_table' }, + { _id: 'post-id', name: 'enfyra_column' }, + ], + relation_definition: [ + { + _id: 'legacy-relation', + sourceTable: 'post-id', + targetTable: 'author-id', + propertyName: 'author', + }, + ], + enfyra_relation: [], + }, + }); + + const service = new MetadataMigrationService({ + queryBuilderService: { + isMongoDb: jest.fn(() => true), + getMongoDb: jest.fn(() => mongo.db), + } as any, + systemCoreTableResolver: { + getTableName: jest.fn(async () => 'enfyra_table'), + } as any, + }); + + await (service as any).runMongoCoreTableRenames([ + { from: 'table_definition', to: 'enfyra_table' }, + { from: 'relation_definition', to: 'enfyra_relation' }, + ]); + + const author = mongo.collections.enfyra_table.find( + (row) => row.name === 'author', + ); + const post = mongo.collections.enfyra_table.find( + (row) => row.name === 'post', + ); + expect(author._id).not.toBe('author-id'); + expect(post._id).not.toBe('post-id'); + expect(mongo.inserts).toContainEqual({ + collection: 'enfyra_relation', + rows: [ + { + _id: 'legacy-relation', + sourceTable: post._id, + targetTable: author._id, + propertyName: 'author', + }, + ], + }); + }); + + it('does not duplicate Mongo relation metadata when remapped logical relation already exists', async () => { + const mongo = makeMongoDb({ + collections: { + table_definition: [{ _id: 'legacy-post', name: 'post' }], + enfyra_table: [{ _id: 'canonical-post', name: 'post' }], + relation_definition: [ + { + _id: 'legacy-relation', + sourceTable: 'legacy-post', + propertyName: 'comments', + }, + ], + enfyra_relation: [ + { + _id: 'canonical-relation', + sourceTable: 'canonical-post', + propertyName: 'comments', + }, + ], + }, + }); + + const service = new MetadataMigrationService({ + queryBuilderService: { + isMongoDb: jest.fn(() => true), + getMongoDb: jest.fn(() => mongo.db), + } as any, + systemCoreTableResolver: { + getTableName: jest.fn(async () => 'enfyra_table'), + } as any, + }); + + await (service as any).runMongoCoreTableRenames([ + { from: 'table_definition', to: 'enfyra_table' }, + { from: 'relation_definition', to: 'enfyra_relation' }, + ]); + + expect(mongo.inserts).toEqual([]); + expect(mongo.collections.enfyra_relation).toEqual([ + { + _id: 'canonical-relation', + sourceTable: 'canonical-post', + propertyName: 'comments', + }, + ]); + }); +}); diff --git a/test/domain/route-definition-processor.spec.ts b/test/domain/route-definition-processor.spec.ts index 1bd47bc9..d0c22b5e 100644 --- a/test/domain/route-definition-processor.spec.ts +++ b/test/domain/route-definition-processor.spec.ts @@ -1,6 +1,15 @@ import { RouteDefinitionProcessor } from '../../src/domain/bootstrap'; +import { getSqlJunctionPhysicalNames } from '../../src/modules/table-management/utils/sql-junction-naming.util'; import { DatabaseConfigService } from '../../src/shared/services'; +function routeMethodJunction(propertyName: string) { + return getSqlJunctionPhysicalNames({ + sourceTable: 'enfyra_route', + propertyName, + targetTable: 'enfyra_method', + }).junctionTableName; +} + function makeKnex(methodRows: any[] = []) { const deletes: any[] = []; const inserts: any[] = []; @@ -52,6 +61,10 @@ function makeKnex(methodRows: any[] = []) { rawCalls.push({ sql, bindings }); return { rows: [] }; }); + (knex as any).schema = { + hasTable: jest.fn(async () => true), + hasColumn: jest.fn(async () => true), + }; return { knex, deletes, inserts, rawCalls }; } @@ -77,7 +90,9 @@ describe('RouteDefinitionProcessor SQL relation writes', () => { getKnex: jest.fn(() => knex.knex), } as any; - const processor = new RouteDefinitionProcessor({ queryBuilderService: queryBuilder }); + const processor = new RouteDefinitionProcessor({ + queryBuilderService: queryBuilder, + }); await processor.processWithQueryBuilder( [ @@ -101,15 +116,29 @@ describe('RouteDefinitionProcessor SQL relation writes', () => { ); expect(knex.rawCalls).toContainEqual({ sql: 'delete from ?? where ?? = ?', - bindings: ['j_availableMethods', 'sourceId', 42], + bindings: [routeMethodJunction('availableMethods'), 'sourceId', 42], }); expect(knex.rawCalls).toContainEqual({ sql: 'insert into ?? (??, ??) values (?, ?), (?, ?)', - bindings: ['j_availableMethods', 'sourceId', 'targetId', 42, 1, 42, 2], + bindings: [ + routeMethodJunction('availableMethods'), + 'sourceId', + 'targetId', + 42, + 1, + 42, + 2, + ], }); expect(knex.rawCalls).toContainEqual({ sql: 'insert into ?? (??, ??) values (?, ?)', - bindings: ['j_skipRoleGuardMethods', 'sourceId', 'targetId', 42, 1], + bindings: [ + routeMethodJunction('skipRoleGuardMethods'), + 'sourceId', + 'targetId', + 42, + 1, + ], }); }); @@ -123,7 +152,9 @@ describe('RouteDefinitionProcessor SQL relation writes', () => { getKnex: jest.fn(() => knex.knex), } as any; - const processor = new RouteDefinitionProcessor({ queryBuilderService: queryBuilder }); + const processor = new RouteDefinitionProcessor({ + queryBuilderService: queryBuilder, + }); await processor.processWithQueryBuilder( [{ path: '/assets/:id', availableMethods: ['GET'] }], @@ -133,7 +164,13 @@ describe('RouteDefinitionProcessor SQL relation writes', () => { expect(knex.rawCalls).toContainEqual({ sql: 'insert into ?? (??, ??) values (?, ?)', - bindings: ['j_availableMethods', 'sourceId', 'targetId', 99, 1], + bindings: [ + routeMethodJunction('availableMethods'), + 'sourceId', + 'targetId', + 99, + 1, + ], }); }); }); diff --git a/test/domain/schema-healing.mongo.integration.spec.ts b/test/domain/schema-healing.mongo.integration.spec.ts index ae0446e4..578df4f5 100644 --- a/test/domain/schema-healing.mongo.integration.spec.ts +++ b/test/domain/schema-healing.mongo.integration.spec.ts @@ -11,7 +11,9 @@ const DB_NAME = `test_schema_healing_mongo_${Date.now()}`; async function probeMongo(): Promise { try { - const client = new MongoClient(MONGO_URI, { serverSelectionTimeoutMS: 2000 }); + const client = new MongoClient(MONGO_URI, { + serverSelectionTimeoutMS: 2000, + }); await client.connect(); await client.close(); return true; @@ -38,6 +40,17 @@ function makeTableMetadata(name: string) { }; } +function makeCoreTableResolver() { + return { + getNames: async () => ({ + table: 'enfyra_table', + column: 'enfyra_column', + relation: 'enfyra_relation', + }), + getTableName: async (key: string) => `enfyra_${key}`, + }; +} + describe('SchemaHealingService Mongo integration', () => { let available = false; let client: MongoClient | undefined; @@ -62,7 +75,9 @@ describe('SchemaHealingService Mongo integration', () => { test('repairs persisted Mongo primary key metadata through real Mongo query builder', async () => { if (!available || !db) { - console.warn('MongoDB not available, skipping real DB schema healing test'); + console.warn( + 'MongoDB not available, skipping real DB schema healing test', + ); return; } @@ -94,10 +109,12 @@ describe('SchemaHealingService Mongo integration', () => { getDb: () => db, collection: (name: string) => db.collection(name), updateOne: async (collectionName: string, id: string, data: any) => - db.collection(collectionName).updateOne( - { _id: typeof id === 'string' ? new ObjectId(id) : id }, - { $set: data }, - ), + db + .collection(collectionName) + .updateOne( + { _id: typeof id === 'string' ? new ObjectId(id) : id }, + { $set: data }, + ), processNestedRelations: async (_tableName: string, data: any) => data, applyUpdateTimestamp: (data: any) => data, }, @@ -119,6 +136,7 @@ describe('SchemaHealingService Mongo integration', () => { const service = new SchemaHealingService({ queryBuilderService, metadataCacheService: metadataCacheService as any, + systemCoreTableResolver: makeCoreTableResolver() as any, }); await service.runIfNeeded(); @@ -137,7 +155,9 @@ describe('SchemaHealingService Mongo integration', () => { test('heals legacy Mongo junction metadata and merges existing legacy collection data', async () => { if (!available || !db) { - console.warn('MongoDB not available, skipping real DB schema healing test'); + console.warn( + 'MongoDB not available, skipping real DB schema healing test', + ); return; } @@ -145,8 +165,7 @@ describe('SchemaHealingService Mongo integration', () => { await db.collection('enfyra_table').deleteMany({}); await db.collection('enfyra_relation').deleteMany({}); - const oldCollectionName = - 'enfyra_route_availableMethods_enfyra_method'; + const oldCollectionName = 'enfyra_route_availableMethods_enfyra_method'; try { await db.collection(oldCollectionName).drop(); } catch {} @@ -233,6 +252,7 @@ describe('SchemaHealingService Mongo integration', () => { const service = new SchemaHealingService({ queryBuilderService, metadataCacheService: { getAllTablesMetadata: async () => [] } as any, + systemCoreTableResolver: makeCoreTableResolver() as any, }); await service.runIfNeeded(); @@ -278,7 +298,9 @@ describe('SchemaHealingService Mongo integration', () => { test('drops orphan legacy Mongo junction collection when metadata already uses standard contract', async () => { if (!available || !db) { - console.warn('MongoDB not available, skipping real DB schema healing test'); + console.warn( + 'MongoDB not available, skipping real DB schema healing test', + ); return; } @@ -286,8 +308,7 @@ describe('SchemaHealingService Mongo integration', () => { await db.collection('enfyra_table').deleteMany({}); await db.collection('enfyra_relation').deleteMany({}); - const oldCollectionName = - 'enfyra_route_availableMethods_enfyra_method'; + const oldCollectionName = 'enfyra_route_availableMethods_enfyra_method'; try { await db.collection(oldCollectionName).drop(); } catch {} @@ -372,6 +393,7 @@ describe('SchemaHealingService Mongo integration', () => { const service = new SchemaHealingService({ queryBuilderService, metadataCacheService: { getAllTablesMetadata: async () => [] } as any, + systemCoreTableResolver: makeCoreTableResolver() as any, }); await service.runIfNeeded(); diff --git a/test/domain/schema-healing.service.spec.ts b/test/domain/schema-healing.service.spec.ts index 643d7853..c6c18d4e 100644 --- a/test/domain/schema-healing.service.spec.ts +++ b/test/domain/schema-healing.service.spec.ts @@ -46,7 +46,9 @@ function makeQb(findImpl: (args: any) => any, updateMock: any) { getKnex: vi.fn().mockReturnValue(knex), getMongoDb: vi.fn().mockReturnValue({ collection: vi.fn().mockReturnValue({ - find: vi.fn().mockReturnValue({ toArray: vi.fn().mockResolvedValue([]) }), + find: vi + .fn() + .mockReturnValue({ toArray: vi.fn().mockResolvedValue([]) }), updateMany: vi.fn().mockResolvedValue({ modifiedCount: 0 }), createIndex: vi.fn().mockResolvedValue(undefined), }), @@ -68,6 +70,25 @@ function makeCache(tables: any[]) { } as any; } +function makeCoreTableResolver() { + return { + getNames: vi.fn().mockResolvedValue({ + table: 'enfyra_table', + column: 'enfyra_column', + relation: 'enfyra_relation', + }), + getTableName: vi.fn(async (key: string) => `enfyra_${key}`), + } as any; +} + +function makeService(qb: any, cache: any) { + return new SchemaHealingService({ + queryBuilderService: qb, + metadataCacheService: cache, + systemCoreTableResolver: makeCoreTableResolver(), + }); +} + describe('SchemaHealingService.runIfNeeded', () => { beforeEach(() => { DatabaseConfigService.overrideForTesting?.('postgres'); @@ -77,10 +98,7 @@ describe('SchemaHealingService.runIfNeeded', () => { const update = vi.fn(); const qb = makeQb(() => ({ data: [makeSetting(true)] }), update); const cache = makeCache([]); - const svc = new SchemaHealingService({ - queryBuilderService: qb, - metadataCacheService: cache, - }); + const svc = makeService(qb, cache); await svc.runIfNeeded(); @@ -92,10 +110,7 @@ describe('SchemaHealingService.runIfNeeded', () => { const update = vi.fn(); const qb = makeQb(() => ({ data: [] }), update); const cache = makeCache([]); - const svc = new SchemaHealingService({ - queryBuilderService: qb, - metadataCacheService: cache, - }); + const svc = makeService(qb, cache); await svc.runIfNeeded(); @@ -113,10 +128,7 @@ describe('SchemaHealingService.runIfNeeded', () => { relations: [{ propertyName: 'author', foreignKeyColumn: 'authorId' }], }), ]); - const svc = new SchemaHealingService({ - queryBuilderService: qb, - metadataCacheService: cache, - }); + const svc = makeService(qb, cache); await svc.runIfNeeded(); @@ -141,10 +153,7 @@ describe('SchemaHealingService.runIfNeeded', () => { ], }), ]); - const svc = new SchemaHealingService({ - queryBuilderService: qb, - metadataCacheService: cache, - }); + const svc = makeService(qb, cache); await svc.runIfNeeded(); @@ -167,7 +176,57 @@ describe('SchemaHealingService.runIfNeeded', () => { it('repairs Mongo primary key column metadata even when uniques/indexes flag is already true', async () => { DatabaseConfigService.overrideForTesting?.('mongodb'); const update = vi.fn().mockResolvedValue(undefined); + const updateOne = vi.fn().mockResolvedValue({ modifiedCount: 1 }); const columnId = '65f000000000000000000001'; + const collections: Record = { + enfyra_setting: { + find: vi + .fn() + .mockReturnValue({ toArray: vi.fn().mockResolvedValue([]) }), + findOne: vi.fn().mockResolvedValue({ + _id: 'setting-id', + isInit: true, + uniquesIndexesRepaired: true, + }), + updateOne: vi.fn().mockResolvedValue({ modifiedCount: 0 }), + updateMany: vi.fn().mockResolvedValue({ modifiedCount: 0 }), + createIndex: vi.fn().mockResolvedValue(undefined), + }, + enfyra_column: { + find: vi.fn().mockReturnValue({ + toArray: vi.fn().mockResolvedValue([ + { + _id: columnId, + name: '_id', + type: 'uuid', + isPrimary: true, + }, + ]), + }), + findOne: vi.fn().mockResolvedValue(null), + updateOne, + updateMany: vi.fn().mockResolvedValue({ modifiedCount: 0 }), + createIndex: vi.fn().mockResolvedValue(undefined), + }, + }; + const db = { + collection: vi.fn((name: string) => { + collections[name] ||= { + find: vi + .fn() + .mockReturnValue({ toArray: vi.fn().mockResolvedValue([]) }), + findOne: vi.fn().mockResolvedValue(null), + updateOne: vi.fn().mockResolvedValue({ modifiedCount: 0 }), + updateMany: vi.fn().mockResolvedValue({ modifiedCount: 0 }), + createIndex: vi.fn().mockResolvedValue(undefined), + }; + return collections[name]; + }), + createCollection: vi.fn().mockResolvedValue(undefined), + listCollections: vi.fn().mockReturnValue({ + toArray: vi.fn().mockResolvedValue([]), + }), + }; const qb = makeQb( (args: any) => args.table === 'enfyra_column' @@ -192,19 +251,15 @@ describe('SchemaHealingService.runIfNeeded', () => { }, update, ); + qb.getMongoDb.mockReturnValue(db); const cache = makeCache([]); - const svc = new SchemaHealingService({ - queryBuilderService: qb, - metadataCacheService: cache, - }); + const svc = makeService(qb, cache); await svc.runIfNeeded(); - expect(update).toHaveBeenCalledTimes(1); - expect(update).toHaveBeenCalledWith( - 'enfyra_column', - { where: [{ field: '_id', operator: '=', value: columnId }] }, - { name: '_id', type: 'ObjectId' }, + expect(updateOne).toHaveBeenCalledWith( + { _id: columnId }, + { $set: { name: '_id', type: 'ObjectId' } }, ); }); @@ -220,10 +275,7 @@ describe('SchemaHealingService.runIfNeeded', () => { relations: [{ propertyName: 'user', foreignKeyColumn: 'userId' }], }), ]); - const svc = new SchemaHealingService({ - queryBuilderService: qb, - metadataCacheService: cache, - }); + const svc = makeService(qb, cache); await svc.runIfNeeded(); @@ -243,10 +295,7 @@ describe('SchemaHealingService.runIfNeeded', () => { relations: [{ propertyName: 'user', foreignKeyColumn: 'userId' }], }), ]); - const svc = new SchemaHealingService({ - queryBuilderService: qb, - metadataCacheService: cache, - }); + const svc = makeService(qb, cache); await svc.runIfNeeded(); @@ -267,10 +316,7 @@ describe('SchemaHealingService.runIfNeeded', () => { relations: [{ propertyName: 'author', foreignKeyColumn: 'authorId' }], }), ]); - const svc = new SchemaHealingService({ - queryBuilderService: qb, - metadataCacheService: cache, - }); + const svc = makeService(qb, cache); await svc.runIfNeeded(); @@ -321,16 +367,20 @@ describe('SchemaHealingService.runIfNeeded', () => { throw new Error(`Unexpected table ${tableName}`); }); knex.schema = { - hasTable: vi.fn(async (tableName: string) => tableName === 'test_students_students'), + hasTable: vi.fn( + async (tableName: string) => tableName === 'test_students_students', + ), hasColumn: vi.fn(async (_tableName: string, columnName: string) => ['testId', 'studentsId'].includes(columnName), ), renameTable: vi.fn().mockResolvedValue(undefined), - alterTable: vi.fn().mockImplementation( - async (_tableName: string, callback: (table: any) => void) => { - callback({ renameColumn: vi.fn() }); - }, - ), + alterTable: vi + .fn() + .mockImplementation( + async (_tableName: string, callback: (table: any) => void) => { + callback({ renameColumn: vi.fn() }); + }, + ), createTable: vi.fn().mockResolvedValue(undefined), }; const qb = { @@ -339,10 +389,7 @@ describe('SchemaHealingService.runIfNeeded', () => { getDatabaseType: vi.fn().mockReturnValue('postgres'), getKnex: vi.fn().mockReturnValue(knex), } as any; - const svc = new SchemaHealingService({ - queryBuilderService: qb, - metadataCacheService: makeCache([]), - }); + const svc = makeService(qb, makeCache([])); await svc.runIfNeeded(); @@ -411,11 +458,15 @@ describe('SchemaHealingService.runIfNeeded', () => { ]; const collections: Record = { enfyra_relation: { - find: vi.fn().mockReturnValue({ toArray: vi.fn().mockResolvedValue(relations) }), + find: vi + .fn() + .mockReturnValue({ toArray: vi.fn().mockResolvedValue(relations) }), updateOne, }, enfyra_table: { - find: vi.fn().mockReturnValue({ toArray: vi.fn().mockResolvedValue(tables) }), + find: vi + .fn() + .mockReturnValue({ toArray: vi.fn().mockResolvedValue(tables) }), }, bad_junction: { rename, @@ -424,7 +475,9 @@ describe('SchemaHealingService.runIfNeeded', () => { const db = { collection: vi.fn((name: string) => { collections[name] ||= { - find: vi.fn().mockReturnValue({ toArray: vi.fn().mockResolvedValue([]) }), + find: vi + .fn() + .mockReturnValue({ toArray: vi.fn().mockResolvedValue([]) }), updateMany, createIndex, }; @@ -441,15 +494,20 @@ describe('SchemaHealingService.runIfNeeded', () => { find: vi.fn((args: any) => args.table === 'enfyra_column' ? { data: [] } - : { data: [{ _id: 'setting-id', isInit: true, uniquesIndexesRepaired: true }] }, + : { + data: [ + { + _id: 'setting-id', + isInit: true, + uniquesIndexesRepaired: true, + }, + ], + }, ), update, getMongoDb: vi.fn().mockReturnValue(db), } as any; - const svc = new SchemaHealingService({ - queryBuilderService: qb, - metadataCacheService: makeCache([]), - }); + const svc = makeService(qb, makeCache([])); await svc.runIfNeeded(); diff --git a/test/http/assets-cache-memory-pressure.spec.ts b/test/http/assets-cache-memory-pressure.spec.ts index e242bcae..7131d138 100644 --- a/test/http/assets-cache-memory-pressure.spec.ts +++ b/test/http/assets-cache-memory-pressure.spec.ts @@ -12,7 +12,7 @@ function makeQueryBuilder() { mimetype: 'text/plain', type: 'document', location: '/uploads/asset.txt', - isPublished: true, + isPublic: true, storageConfig: null, }, ], diff --git a/test/http/assets-cache.e2e.spec.ts b/test/http/assets-cache.e2e.spec.ts index 874c59cb..4c292447 100644 --- a/test/http/assets-cache.e2e.spec.ts +++ b/test/http/assets-cache.e2e.spec.ts @@ -16,7 +16,7 @@ function makeFile(overrides: Record = {}) { type: 'document', location: '/uploads/avatar.txt', filesize: Buffer.byteLength('asset-body'), - isPublished: true, + isPublic: true, storageConfig: null, ...overrides, }; @@ -267,7 +267,7 @@ describe('assets route cache e2e', () => { it('caches private file permissions by file and invalidates by changed permission id', async () => { const state = { - files: [makeFile({ isPublished: false })], + files: [makeFile({ isPublic: false })], permissions: [makePermission()], }; const { service, eventEmitter, queryBuilderService } = makeService(state); @@ -301,7 +301,7 @@ describe('assets route cache e2e', () => { it('allows root admin to stream private files without file permissions', async () => { const state = { - files: [makeFile({ isPublished: false })], + files: [makeFile({ isPublic: false })], permissions: [], }; const { service, queryBuilderService } = makeService(state); diff --git a/test/http/jwt-auth-middleware.spec.ts b/test/http/jwt-auth-middleware.spec.ts index 07064ecf..330f417c 100644 --- a/test/http/jwt-auth-middleware.spec.ts +++ b/test/http/jwt-auth-middleware.spec.ts @@ -12,7 +12,7 @@ describe('jwtAuthMiddleware', () => { method: 'GET', headers: { authorization: 'Bearer malformed.jwt.token' }, routeData: { - isPublished: true, + publicMethods: [{ name: 'GET' }], context: { $user: 'existing' }, }, }; diff --git a/test/http/metadata-access.spec.ts b/test/http/metadata-access.spec.ts index ea47781d..3e8e4db1 100644 --- a/test/http/metadata-access.spec.ts +++ b/test/http/metadata-access.spec.ts @@ -179,8 +179,8 @@ describe('metadata access projection', () => { } as any); expect([...names].sort()).toEqual([ - 'post_definition', 'enfyra_user', + 'post_definition', ]); }); diff --git a/test/shared/public-methods-cleanup.spec.ts b/test/shared/public-methods-cleanup.spec.ts index f9588f49..81c244fb 100644 --- a/test/shared/public-methods-cleanup.spec.ts +++ b/test/shared/public-methods-cleanup.spec.ts @@ -14,6 +14,9 @@ const AUTH_PATHS = new Set([ '/auth/providers', '/auth/:provider', '/auth/:provider/callback', + '/auth/token/exchange', + '/auth/oauth/exchange', + '/auth/set-cookies', ]); const PUBLIC_NON_AUTH_PATHS = new Set([ diff --git a/yarn.lock b/yarn.lock index e9a5b05d..7d395120 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4,7 +4,7 @@ "@ampproject/remapping@^2.3.0": version "2.3.0" - resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== dependencies: "@jridgewell/gen-mapping" "^0.3.5" @@ -12,7 +12,7 @@ "@aws-crypto/crc32@5.2.0": version "5.2.0" - resolved "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-5.2.0.tgz" + resolved "https://registry.yarnpkg.com/@aws-crypto/crc32/-/crc32-5.2.0.tgz#cfcc22570949c98c6689cfcbd2d693d36cdae2e1" integrity sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg== dependencies: "@aws-crypto/util" "^5.2.0" @@ -21,7 +21,7 @@ "@aws-crypto/crc32c@5.2.0": version "5.2.0" - resolved "https://registry.npmjs.org/@aws-crypto/crc32c/-/crc32c-5.2.0.tgz" + resolved "https://registry.yarnpkg.com/@aws-crypto/crc32c/-/crc32c-5.2.0.tgz#4e34aab7f419307821509a98b9b08e84e0c1917e" integrity sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag== dependencies: "@aws-crypto/util" "^5.2.0" @@ -30,7 +30,7 @@ "@aws-crypto/sha1-browser@5.2.0": version "5.2.0" - resolved "https://registry.npmjs.org/@aws-crypto/sha1-browser/-/sha1-browser-5.2.0.tgz" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha1-browser/-/sha1-browser-5.2.0.tgz#b0ee2d2821d3861f017e965ef3b4cb38e3b6a0f4" integrity sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg== dependencies: "@aws-crypto/supports-web-crypto" "^5.2.0" @@ -42,7 +42,7 @@ "@aws-crypto/sha256-browser@5.2.0": version "5.2.0" - resolved "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz#153895ef1dba6f9fce38af550e0ef58988eb649e" integrity sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw== dependencies: "@aws-crypto/sha256-js" "^5.2.0" @@ -55,7 +55,7 @@ "@aws-crypto/sha256-js@5.2.0", "@aws-crypto/sha256-js@^5.2.0": version "5.2.0" - resolved "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz#c4fdb773fdbed9a664fc1a95724e206cf3860042" integrity sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA== dependencies: "@aws-crypto/util" "^5.2.0" @@ -64,224 +64,174 @@ "@aws-crypto/supports-web-crypto@^5.2.0": version "5.2.0" - resolved "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-5.2.0.tgz" + resolved "https://registry.yarnpkg.com/@aws-crypto/supports-web-crypto/-/supports-web-crypto-5.2.0.tgz#a1e399af29269be08e695109aa15da0a07b5b5fb" integrity sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg== dependencies: tslib "^2.6.2" "@aws-crypto/util@5.2.0", "@aws-crypto/util@^5.2.0": version "5.2.0" - resolved "https://registry.npmjs.org/@aws-crypto/util/-/util-5.2.0.tgz" + resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-5.2.0.tgz#71284c9cffe7927ddadac793c14f14886d3876da" integrity sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ== dependencies: "@aws-sdk/types" "^3.222.0" "@smithy/util-utf8" "^2.0.0" tslib "^2.6.2" +"@aws-sdk/checksums@^3.1000.7": + version "3.1000.7" + resolved "https://registry.yarnpkg.com/@aws-sdk/checksums/-/checksums-3.1000.7.tgz#2b023fc4ef1c770c145c107a974f414c18b0c1e6" + integrity sha512-qh0fG/RtrFztst4+vn1HZehAvAhr5Jlq/WMP7e5KvvfF16oNVBc9CDNVdxdm19vzOY2x0qiDMFCRjhxQAusGWQ== + dependencies: + "@aws-crypto/crc32" "5.2.0" + "@aws-crypto/crc32c" "5.2.0" + "@aws-crypto/util" "5.2.0" + "@aws-sdk/core" "^3.974.22" + "@aws-sdk/types" "^3.973.13" + "@smithy/core" "^3.24.6" + "@smithy/types" "^4.14.3" + tslib "^2.6.2" + "@aws-sdk/client-s3@^3.1024.0": - version "3.1024.0" - resolved "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.1024.0.tgz" - integrity sha512-8qdO5aLCzaf9l0RdrSBW1iIroRKP2QBqtZ6lkrtHKiaaH0B18xEn+lrEgiN/eCf3uRAYk4cqbnI2XcWzm+7dDQ== + version "3.1073.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.1073.0.tgz#6327e40d0040f2dd3ab5aa0d1ad2ef7db4d1deaa" + integrity sha512-/Dvhrff0I4D2YUWSdm8uLKa1bfXdw9BMRDUME6ZeoTrrdQKQDeo2scLDjdpC5X2YdvTc/ZnUCR2HAvD7qXvS1w== dependencies: "@aws-crypto/sha1-browser" "5.2.0" "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "^3.973.26" - "@aws-sdk/credential-provider-node" "^3.972.29" - "@aws-sdk/middleware-bucket-endpoint" "^3.972.8" - "@aws-sdk/middleware-expect-continue" "^3.972.8" - "@aws-sdk/middleware-flexible-checksums" "^3.974.6" - "@aws-sdk/middleware-host-header" "^3.972.8" - "@aws-sdk/middleware-location-constraint" "^3.972.8" - "@aws-sdk/middleware-logger" "^3.972.8" - "@aws-sdk/middleware-recursion-detection" "^3.972.9" - "@aws-sdk/middleware-sdk-s3" "^3.972.27" - "@aws-sdk/middleware-ssec" "^3.972.8" - "@aws-sdk/middleware-user-agent" "^3.972.28" - "@aws-sdk/region-config-resolver" "^3.972.10" - "@aws-sdk/signature-v4-multi-region" "^3.996.15" - "@aws-sdk/types" "^3.973.6" - "@aws-sdk/util-endpoints" "^3.996.5" - "@aws-sdk/util-user-agent-browser" "^3.972.8" - "@aws-sdk/util-user-agent-node" "^3.973.14" - "@smithy/config-resolver" "^4.4.13" - "@smithy/core" "^3.23.13" - "@smithy/eventstream-serde-browser" "^4.2.12" - "@smithy/eventstream-serde-config-resolver" "^4.3.12" - "@smithy/eventstream-serde-node" "^4.2.12" - "@smithy/fetch-http-handler" "^5.3.15" - "@smithy/hash-blob-browser" "^4.2.13" - "@smithy/hash-node" "^4.2.12" - "@smithy/hash-stream-node" "^4.2.12" - "@smithy/invalid-dependency" "^4.2.12" - "@smithy/md5-js" "^4.2.12" - "@smithy/middleware-content-length" "^4.2.12" - "@smithy/middleware-endpoint" "^4.4.28" - "@smithy/middleware-retry" "^4.4.46" - "@smithy/middleware-serde" "^4.2.16" - "@smithy/middleware-stack" "^4.2.12" - "@smithy/node-config-provider" "^4.3.12" - "@smithy/node-http-handler" "^4.5.1" - "@smithy/protocol-http" "^5.3.12" - "@smithy/smithy-client" "^4.12.8" - "@smithy/types" "^4.13.1" - "@smithy/url-parser" "^4.2.12" - "@smithy/util-base64" "^4.3.2" - "@smithy/util-body-length-browser" "^4.2.2" - "@smithy/util-body-length-node" "^4.2.3" - "@smithy/util-defaults-mode-browser" "^4.3.44" - "@smithy/util-defaults-mode-node" "^4.2.48" - "@smithy/util-endpoints" "^3.3.3" - "@smithy/util-middleware" "^4.2.12" - "@smithy/util-retry" "^4.2.13" - "@smithy/util-stream" "^4.5.21" - "@smithy/util-utf8" "^4.2.2" - "@smithy/util-waiter" "^4.2.14" + "@aws-sdk/core" "^3.974.22" + "@aws-sdk/credential-provider-node" "^3.972.57" + "@aws-sdk/middleware-flexible-checksums" "^3.974.32" + "@aws-sdk/middleware-sdk-s3" "^3.972.53" + "@aws-sdk/signature-v4-multi-region" "^3.996.35" + "@aws-sdk/types" "^3.973.13" + "@smithy/core" "^3.24.6" + "@smithy/fetch-http-handler" "^5.4.6" + "@smithy/node-http-handler" "^4.7.6" + "@smithy/types" "^4.14.3" tslib "^2.6.2" -"@aws-sdk/core@^3.973.26": - version "3.973.26" - resolved "https://registry.npmjs.org/@aws-sdk/core/-/core-3.973.26.tgz" - integrity sha512-A/E6n2W42ruU+sfWk+mMUOyVXbsSgGrY3MJ9/0Az5qUdG67y8I6HYzzoAa+e/lzxxl1uCYmEL6BTMi9ZiZnplQ== +"@aws-sdk/core@^3.974.22": + version "3.974.22" + resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.974.22.tgz#924157ab67067bf874cb883ed7d306230d5a5921" + integrity sha512-YofH63shc6YRdXjz80BJkpJW+Bkn0Cuu2dn4Rv7s9G2Idt58tgtzQEWxrR2xVljlVfIBeUjPuULnSVYLke3sUQ== dependencies: - "@aws-sdk/types" "^3.973.6" - "@aws-sdk/xml-builder" "^3.972.16" - "@smithy/core" "^3.23.13" - "@smithy/node-config-provider" "^4.3.12" - "@smithy/property-provider" "^4.2.12" - "@smithy/protocol-http" "^5.3.12" - "@smithy/signature-v4" "^5.3.12" - "@smithy/smithy-client" "^4.12.8" - "@smithy/types" "^4.13.1" - "@smithy/util-base64" "^4.3.2" - "@smithy/util-middleware" "^4.2.12" - "@smithy/util-utf8" "^4.2.2" + "@aws-sdk/types" "^3.973.13" + "@aws-sdk/xml-builder" "^3.972.30" + "@aws/lambda-invoke-store" "^0.2.2" + "@smithy/core" "^3.24.6" + "@smithy/signature-v4" "^5.4.6" + "@smithy/types" "^4.14.3" + bowser "^2.11.0" tslib "^2.6.2" -"@aws-sdk/crc64-nvme@^3.972.5": - version "3.972.5" - resolved "https://registry.npmjs.org/@aws-sdk/crc64-nvme/-/crc64-nvme-3.972.5.tgz" - integrity sha512-2VbTstbjKdT+yKi8m7b3a9CiVac+pL/IY2PHJwsaGkkHmuuqkJZIErPck1h6P3T9ghQMLSdMPyW6Qp7Di5swFg== +"@aws-sdk/credential-provider-env@^3.972.48": + version "3.972.48" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.48.tgz#dbbb28a6bd125674c249394574b718668172b861" + integrity sha512-h6FEC95fbexUd6zxm4PdgS82bTcI2PRtUb2ZwMipb/Xr8bPwtf0G8rBo2jp7NA24Mbx2JA8/WingiYpA9RCCyw== dependencies: - "@smithy/types" "^4.13.1" + "@aws-sdk/core" "^3.974.22" + "@aws-sdk/types" "^3.973.13" + "@smithy/core" "^3.24.6" + "@smithy/types" "^4.14.3" tslib "^2.6.2" -"@aws-sdk/credential-provider-env@^3.972.24": - version "3.972.24" - resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.24.tgz" - integrity sha512-FWg8uFmT6vQM7VuzELzwVo5bzExGaKHdubn0StjgrcU5FvuLExUe+k06kn/40uKv59rYzhez8eFNM4yYE/Yb/w== - dependencies: - "@aws-sdk/core" "^3.973.26" - "@aws-sdk/types" "^3.973.6" - "@smithy/property-provider" "^4.2.12" - "@smithy/types" "^4.13.1" +"@aws-sdk/credential-provider-http@^3.972.50": + version "3.972.50" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.50.tgz#2e3360819a9c59ffc2f0ec53607eac50da0b2340" + integrity sha512-lJO3OLpjvz5m/RSBQmsG/CEUGsvCy5ruxKwPQaOCqxqCMuyYT2BZwQUTDZVVwqQ9LrZKuK24JSa6r31hL/tvkg== + dependencies: + "@aws-sdk/core" "^3.974.22" + "@aws-sdk/types" "^3.973.13" + "@smithy/core" "^3.24.6" + "@smithy/fetch-http-handler" "^5.4.6" + "@smithy/node-http-handler" "^4.7.6" + "@smithy/types" "^4.14.3" tslib "^2.6.2" -"@aws-sdk/credential-provider-http@^3.972.26": - version "3.972.26" - resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.26.tgz" - integrity sha512-CY4ppZ+qHYqcXqBVi//sdHST1QK3KzOEiLtpLsc9W2k2vfZPKExGaQIsOwcyvjpjUEolotitmd3mUNY56IwDEA== - dependencies: - "@aws-sdk/core" "^3.973.26" - "@aws-sdk/types" "^3.973.6" - "@smithy/fetch-http-handler" "^5.3.15" - "@smithy/node-http-handler" "^4.5.1" - "@smithy/property-provider" "^4.2.12" - "@smithy/protocol-http" "^5.3.12" - "@smithy/smithy-client" "^4.12.8" - "@smithy/types" "^4.13.1" - "@smithy/util-stream" "^4.5.21" - tslib "^2.6.2" - -"@aws-sdk/credential-provider-ini@^3.972.28": - version "3.972.28" - resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.972.28.tgz" - integrity sha512-wXYvq3+uQcZV7k+bE4yDXCTBdzWTU9x/nMiKBfzInmv6yYK1veMK0AKvRfRBd72nGWYKcL6AxwiPg9z/pYlgpw== - dependencies: - "@aws-sdk/core" "^3.973.26" - "@aws-sdk/credential-provider-env" "^3.972.24" - "@aws-sdk/credential-provider-http" "^3.972.26" - "@aws-sdk/credential-provider-login" "^3.972.28" - "@aws-sdk/credential-provider-process" "^3.972.24" - "@aws-sdk/credential-provider-sso" "^3.972.28" - "@aws-sdk/credential-provider-web-identity" "^3.972.28" - "@aws-sdk/nested-clients" "^3.996.18" - "@aws-sdk/types" "^3.973.6" - "@smithy/credential-provider-imds" "^4.2.12" - "@smithy/property-provider" "^4.2.12" - "@smithy/shared-ini-file-loader" "^4.4.7" - "@smithy/types" "^4.13.1" +"@aws-sdk/credential-provider-ini@^3.972.55": + version "3.972.55" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.972.55.tgz#ddb0c927a6f903cb02ea0f3a943a01c0fc4f3899" + integrity sha512-TBoF4buBGYhXjdZAryayY2TrkQj2B2KfE/msG4V53XCt+w0EhEwM2JRjx8p2grJ2C6gtH5++SAwEvGMRdi0yyw== + dependencies: + "@aws-sdk/core" "^3.974.22" + "@aws-sdk/credential-provider-env" "^3.972.48" + "@aws-sdk/credential-provider-http" "^3.972.50" + "@aws-sdk/credential-provider-login" "^3.972.54" + "@aws-sdk/credential-provider-process" "^3.972.48" + "@aws-sdk/credential-provider-sso" "^3.972.54" + "@aws-sdk/credential-provider-web-identity" "^3.972.54" + "@aws-sdk/nested-clients" "^3.997.22" + "@aws-sdk/types" "^3.973.13" + "@smithy/core" "^3.24.6" + "@smithy/credential-provider-imds" "^4.3.7" + "@smithy/types" "^4.14.3" tslib "^2.6.2" -"@aws-sdk/credential-provider-login@^3.972.28": - version "3.972.28" - resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.28.tgz" - integrity sha512-ZSTfO6jqUTCysbdBPtEX5OUR//3rbD0lN7jO3sQeS2Gjr/Y+DT6SbIJ0oT2cemNw3UzKu97sNONd1CwNMthuZQ== +"@aws-sdk/credential-provider-login@^3.972.54": + version "3.972.54" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.54.tgz#d02f2c8549f48d7f43c757e4566214f05b207675" + integrity sha512-hBWI3wZTdTGiuMfmPts6AWbAjFfRniOQnqx68tc2cQvRKWawFbN9wkLOVPWM1FAOyowZU73mC6Fi+rHSHNyLFw== dependencies: - "@aws-sdk/core" "^3.973.26" - "@aws-sdk/nested-clients" "^3.996.18" - "@aws-sdk/types" "^3.973.6" - "@smithy/property-provider" "^4.2.12" - "@smithy/protocol-http" "^5.3.12" - "@smithy/shared-ini-file-loader" "^4.4.7" - "@smithy/types" "^4.13.1" + "@aws-sdk/core" "^3.974.22" + "@aws-sdk/nested-clients" "^3.997.22" + "@aws-sdk/types" "^3.973.13" + "@smithy/core" "^3.24.6" + "@smithy/types" "^4.14.3" tslib "^2.6.2" -"@aws-sdk/credential-provider-node@^3.972.29": - version "3.972.29" - resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.29.tgz" - integrity sha512-clSzDcvndpFJAggLDnDb36sPdlZYyEs5Zm6zgZjjUhwsJgSWiWKwFIXUVBcbruidNyBdbpOv2tNDL9sX8y3/0g== - dependencies: - "@aws-sdk/credential-provider-env" "^3.972.24" - "@aws-sdk/credential-provider-http" "^3.972.26" - "@aws-sdk/credential-provider-ini" "^3.972.28" - "@aws-sdk/credential-provider-process" "^3.972.24" - "@aws-sdk/credential-provider-sso" "^3.972.28" - "@aws-sdk/credential-provider-web-identity" "^3.972.28" - "@aws-sdk/types" "^3.973.6" - "@smithy/credential-provider-imds" "^4.2.12" - "@smithy/property-provider" "^4.2.12" - "@smithy/shared-ini-file-loader" "^4.4.7" - "@smithy/types" "^4.13.1" +"@aws-sdk/credential-provider-node@^3.972.57": + version "3.972.57" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.57.tgz#0b9f16cb8814d56b86bd23a7610115fd5a2457ea" + integrity sha512-u6dClpzNdWf1HGWz4wwhdXi1wiOofCLniM9S4BQQGlLAN9TW7VB+ld5V533GdKrYMaFeBGFqKnj0JCYvynLqwQ== + dependencies: + "@aws-sdk/credential-provider-env" "^3.972.48" + "@aws-sdk/credential-provider-http" "^3.972.50" + "@aws-sdk/credential-provider-ini" "^3.972.55" + "@aws-sdk/credential-provider-process" "^3.972.48" + "@aws-sdk/credential-provider-sso" "^3.972.54" + "@aws-sdk/credential-provider-web-identity" "^3.972.54" + "@aws-sdk/types" "^3.973.13" + "@smithy/core" "^3.24.6" + "@smithy/credential-provider-imds" "^4.3.7" + "@smithy/types" "^4.14.3" tslib "^2.6.2" -"@aws-sdk/credential-provider-process@^3.972.24": - version "3.972.24" - resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.24.tgz" - integrity sha512-Q2k/XLrFXhEztPHqj4SLCNID3hEPdlhh1CDLBpNnM+1L8fq7P+yON9/9M1IGN/dA5W45v44ylERfXtDAlmMNmw== +"@aws-sdk/credential-provider-process@^3.972.48": + version "3.972.48" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.48.tgz#7689a62a63317165263555a0fce9379fd560a0c5" + integrity sha512-w6VZwojPt12WnEkAUy6Nu4K6sWCbBmR7QX390b0nE6vRvkXbrYr9Lq9VySGkfjiMjpUA87op+J4EgvRmtWIDoQ== dependencies: - "@aws-sdk/core" "^3.973.26" - "@aws-sdk/types" "^3.973.6" - "@smithy/property-provider" "^4.2.12" - "@smithy/shared-ini-file-loader" "^4.4.7" - "@smithy/types" "^4.13.1" + "@aws-sdk/core" "^3.974.22" + "@aws-sdk/types" "^3.973.13" + "@smithy/core" "^3.24.6" + "@smithy/types" "^4.14.3" tslib "^2.6.2" -"@aws-sdk/credential-provider-sso@^3.972.28": - version "3.972.28" - resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.972.28.tgz" - integrity sha512-IoUlmKMLEITFn1SiCTjPfR6KrE799FBo5baWyk/5Ppar2yXZoUdaRqZzJzK6TcJxx450M8m8DbpddRVYlp5R/A== - dependencies: - "@aws-sdk/core" "^3.973.26" - "@aws-sdk/nested-clients" "^3.996.18" - "@aws-sdk/token-providers" "3.1021.0" - "@aws-sdk/types" "^3.973.6" - "@smithy/property-provider" "^4.2.12" - "@smithy/shared-ini-file-loader" "^4.4.7" - "@smithy/types" "^4.13.1" +"@aws-sdk/credential-provider-sso@^3.972.54": + version "3.972.54" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.972.54.tgz#4798823741c76292dd035cf5263c09a4d88b82e9" + integrity sha512-23uZpIpF2SIFDCa1fcWa202tK4gGeyvX6GIIAjiB8WBsvsVRBMnJ/7dCxHzxf7eZT7GToJg837LDIBnZsl/VUg== + dependencies: + "@aws-sdk/core" "^3.974.22" + "@aws-sdk/nested-clients" "^3.997.22" + "@aws-sdk/token-providers" "3.1071.0" + "@aws-sdk/types" "^3.973.13" + "@smithy/core" "^3.24.6" + "@smithy/types" "^4.14.3" tslib "^2.6.2" -"@aws-sdk/credential-provider-web-identity@^3.972.28": - version "3.972.28" - resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.28.tgz" - integrity sha512-d+6h0SD8GGERzKe27v5rOzNGKOl0D+l0bWJdqrxH8WSQzHzjsQFIAPgIeOTUwBHVsKKwtSxc91K/SWax6XgswQ== +"@aws-sdk/credential-provider-web-identity@^3.972.54": + version "3.972.54" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.54.tgz#226d686715396b711c13a62285b229f84b1a3fa7" + integrity sha512-0Iv5QttS6wcATlodYKgvQj6B9Db51rx7NU9fqu0PoLeS4BIgdYMc/QK4smwLwpm5RFrs02V/eLyEFp3FklvlNQ== dependencies: - "@aws-sdk/core" "^3.973.26" - "@aws-sdk/nested-clients" "^3.996.18" - "@aws-sdk/types" "^3.973.6" - "@smithy/property-provider" "^4.2.12" - "@smithy/shared-ini-file-loader" "^4.4.7" - "@smithy/types" "^4.13.1" + "@aws-sdk/core" "^3.974.22" + "@aws-sdk/nested-clients" "^3.997.22" + "@aws-sdk/types" "^3.973.13" + "@smithy/core" "^3.24.6" + "@smithy/types" "^4.14.3" tslib "^2.6.2" "@aws-sdk/lib-storage@3.1024.0": @@ -298,308 +248,121 @@ stream-browserify "3.0.0" tslib "^2.6.2" -"@aws-sdk/middleware-bucket-endpoint@^3.972.8": - version "3.972.8" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.972.8.tgz" - integrity sha512-WR525Rr2QJSETa9a050isktyWi/4yIGcmY3BQ1kpHqb0LqUglQHCS8R27dTJxxWNZvQ0RVGtEZjTCbZJpyF3Aw== +"@aws-sdk/middleware-flexible-checksums@^3.974.32": + version "3.974.32" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.974.32.tgz#fb4591d82c7b73c1dae350c49015a0c34dba6ccf" + integrity sha512-KhuzFMzUbb3oEj43CdPDbEJ/RG/RkErkmXk3J/LE8OPFNvkCn8PYPMpjOLgzAzvxBacsSyytdWf+R50q0alJ4w== dependencies: - "@aws-sdk/types" "^3.973.6" - "@aws-sdk/util-arn-parser" "^3.972.3" - "@smithy/node-config-provider" "^4.3.12" - "@smithy/protocol-http" "^5.3.12" - "@smithy/types" "^4.13.1" - "@smithy/util-config-provider" "^4.2.2" + "@aws-sdk/checksums" "^3.1000.7" tslib "^2.6.2" -"@aws-sdk/middleware-expect-continue@^3.972.8": - version "3.972.8" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.972.8.tgz" - integrity sha512-5DTBTiotEES1e2jOHAq//zyzCjeMB78lEHd35u15qnrid4Nxm7diqIf9fQQ3Ov0ChH1V3Vvt13thOnrACmfGVQ== +"@aws-sdk/middleware-sdk-s3@^3.972.53": + version "3.972.53" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.972.53.tgz#eb2d9803db363e0431fcfb968d20c4f30989f15a" + integrity sha512-keWp6Z5cEIJzPwoCf/WRm0ceAeephPDDivhRsK/xXs2ZYXyypJ2/DL9G1IR0bz/s+iZC0EgzmFV4r7rlvLlxQQ== dependencies: - "@aws-sdk/types" "^3.973.6" - "@smithy/protocol-http" "^5.3.12" - "@smithy/types" "^4.13.1" + "@aws-sdk/core" "^3.974.22" + "@aws-sdk/signature-v4-multi-region" "^3.996.35" + "@aws-sdk/types" "^3.973.13" + "@smithy/core" "^3.24.6" + "@smithy/types" "^4.14.3" tslib "^2.6.2" -"@aws-sdk/middleware-flexible-checksums@^3.974.6": - version "3.974.6" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.974.6.tgz" - integrity sha512-YckB8k1ejbyCg/g36gUMFLNzE4W5cERIa4MtsdO+wpTmJEP0+TB7okWIt7d8TDOvnb7SwvxJ21E4TGOBxFpSWQ== - dependencies: - "@aws-crypto/crc32" "5.2.0" - "@aws-crypto/crc32c" "5.2.0" - "@aws-crypto/util" "5.2.0" - "@aws-sdk/core" "^3.973.26" - "@aws-sdk/crc64-nvme" "^3.972.5" - "@aws-sdk/types" "^3.973.6" - "@smithy/is-array-buffer" "^4.2.2" - "@smithy/node-config-provider" "^4.3.12" - "@smithy/protocol-http" "^5.3.12" - "@smithy/types" "^4.13.1" - "@smithy/util-middleware" "^4.2.12" - "@smithy/util-stream" "^4.5.21" - "@smithy/util-utf8" "^4.2.2" - tslib "^2.6.2" - -"@aws-sdk/middleware-host-header@^3.972.8": - version "3.972.8" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.972.8.tgz" - integrity sha512-wAr2REfKsqoKQ+OkNqvOShnBoh+nkPurDKW7uAeVSu6kUECnWlSJiPvnoqxGlfousEY/v9LfS9sNc46hjSYDIQ== - dependencies: - "@aws-sdk/types" "^3.973.6" - "@smithy/protocol-http" "^5.3.12" - "@smithy/types" "^4.13.1" - tslib "^2.6.2" - -"@aws-sdk/middleware-location-constraint@^3.972.8": - version "3.972.8" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.972.8.tgz" - integrity sha512-KaUoFuoFPziIa98DSQsTPeke1gvGXlc5ZGMhy+b+nLxZ4A7jmJgLzjEF95l8aOQN2T/qlPP3MrAyELm8ExXucw== - dependencies: - "@aws-sdk/types" "^3.973.6" - "@smithy/types" "^4.13.1" - tslib "^2.6.2" - -"@aws-sdk/middleware-logger@^3.972.8": - version "3.972.8" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.972.8.tgz" - integrity sha512-CWl5UCM57WUFaFi5kB7IBY1UmOeLvNZAZ2/OZ5l20ldiJ3TiIz1pC65gYj8X0BCPWkeR1E32mpsCk1L1I4n+lA== - dependencies: - "@aws-sdk/types" "^3.973.6" - "@smithy/types" "^4.13.1" - tslib "^2.6.2" - -"@aws-sdk/middleware-recursion-detection@^3.972.9": - version "3.972.9" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.972.9.tgz" - integrity sha512-/Wt5+CT8dpTFQxEJ9iGy/UGrXr7p2wlIOEHvIr/YcHYByzoLjrqkYqXdJjd9UIgWjv7eqV2HnFJen93UTuwfTQ== - dependencies: - "@aws-sdk/types" "^3.973.6" - "@aws/lambda-invoke-store" "^0.2.2" - "@smithy/protocol-http" "^5.3.12" - "@smithy/types" "^4.13.1" - tslib "^2.6.2" - -"@aws-sdk/middleware-sdk-s3@^3.972.27": - version "3.972.27" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.972.27.tgz" - integrity sha512-gomO6DZwx+1D/9mbCpcqO5tPBqYBK7DtdgjTIjZ4yvfh/S7ETwAPS0XbJgP2JD8Ycr5CwVrEkV1sFtu3ShXeOw== - dependencies: - "@aws-sdk/core" "^3.973.26" - "@aws-sdk/types" "^3.973.6" - "@aws-sdk/util-arn-parser" "^3.972.3" - "@smithy/core" "^3.23.13" - "@smithy/node-config-provider" "^4.3.12" - "@smithy/protocol-http" "^5.3.12" - "@smithy/signature-v4" "^5.3.12" - "@smithy/smithy-client" "^4.12.8" - "@smithy/types" "^4.13.1" - "@smithy/util-config-provider" "^4.2.2" - "@smithy/util-middleware" "^4.2.12" - "@smithy/util-stream" "^4.5.21" - "@smithy/util-utf8" "^4.2.2" - tslib "^2.6.2" - -"@aws-sdk/middleware-ssec@^3.972.8": - version "3.972.8" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.972.8.tgz" - integrity sha512-wqlK0yO/TxEC2UsY9wIlqeeutF6jjLe0f96Pbm40XscTo57nImUk9lBcw0dPgsm0sppFtAkSlDrfpK+pC30Wqw== - dependencies: - "@aws-sdk/types" "^3.973.6" - "@smithy/types" "^4.13.1" - tslib "^2.6.2" - -"@aws-sdk/middleware-user-agent@^3.972.28": - version "3.972.28" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.972.28.tgz" - integrity sha512-cfWZFlVh7Va9lRay4PN2A9ARFzaBYcA097InT5M2CdRS05ECF5yaz86jET8Wsl2WcyKYEvVr/QNmKtYtafUHtQ== - dependencies: - "@aws-sdk/core" "^3.973.26" - "@aws-sdk/types" "^3.973.6" - "@aws-sdk/util-endpoints" "^3.996.5" - "@smithy/core" "^3.23.13" - "@smithy/protocol-http" "^5.3.12" - "@smithy/types" "^4.13.1" - "@smithy/util-retry" "^4.2.13" - tslib "^2.6.2" - -"@aws-sdk/nested-clients@^3.996.18": - version "3.996.18" - resolved "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.996.18.tgz" - integrity sha512-c7ZSIXrESxHKx2Mcopgd8AlzZgoXMr20fkx5ViPWPOLBvmyhw9VwJx/Govg8Ef/IhEon5R9l53Z8fdYSEmp6VA== +"@aws-sdk/nested-clients@^3.997.22": + version "3.997.22" + resolved "https://registry.yarnpkg.com/@aws-sdk/nested-clients/-/nested-clients-3.997.22.tgz#b3ac0053daf05a399e4a1cb4a9f8d9a0484b1b85" + integrity sha512-4IwtcYSxEIVw5hcp8ogq0CMbFNZFw7jJUetpfFUhFFeqsa1K8j2Ihg2hnxLyOp3stMZnXda6VzOmPi1AFZQXcg== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "^3.973.26" - "@aws-sdk/middleware-host-header" "^3.972.8" - "@aws-sdk/middleware-logger" "^3.972.8" - "@aws-sdk/middleware-recursion-detection" "^3.972.9" - "@aws-sdk/middleware-user-agent" "^3.972.28" - "@aws-sdk/region-config-resolver" "^3.972.10" - "@aws-sdk/types" "^3.973.6" - "@aws-sdk/util-endpoints" "^3.996.5" - "@aws-sdk/util-user-agent-browser" "^3.972.8" - "@aws-sdk/util-user-agent-node" "^3.973.14" - "@smithy/config-resolver" "^4.4.13" - "@smithy/core" "^3.23.13" - "@smithy/fetch-http-handler" "^5.3.15" - "@smithy/hash-node" "^4.2.12" - "@smithy/invalid-dependency" "^4.2.12" - "@smithy/middleware-content-length" "^4.2.12" - "@smithy/middleware-endpoint" "^4.4.28" - "@smithy/middleware-retry" "^4.4.46" - "@smithy/middleware-serde" "^4.2.16" - "@smithy/middleware-stack" "^4.2.12" - "@smithy/node-config-provider" "^4.3.12" - "@smithy/node-http-handler" "^4.5.1" - "@smithy/protocol-http" "^5.3.12" - "@smithy/smithy-client" "^4.12.8" - "@smithy/types" "^4.13.1" - "@smithy/url-parser" "^4.2.12" - "@smithy/util-base64" "^4.3.2" - "@smithy/util-body-length-browser" "^4.2.2" - "@smithy/util-body-length-node" "^4.2.3" - "@smithy/util-defaults-mode-browser" "^4.3.44" - "@smithy/util-defaults-mode-node" "^4.2.48" - "@smithy/util-endpoints" "^3.3.3" - "@smithy/util-middleware" "^4.2.12" - "@smithy/util-retry" "^4.2.13" - "@smithy/util-utf8" "^4.2.2" - tslib "^2.6.2" - -"@aws-sdk/region-config-resolver@^3.972.10": - version "3.972.10" - resolved "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.972.10.tgz" - integrity sha512-1dq9ToC6e070QvnVhhbAs3bb5r6cQ10gTVc6cyRV5uvQe7P138TV2uG2i6+Yok4bAkVAcx5AqkTEBUvWEtBlsQ== - dependencies: - "@aws-sdk/types" "^3.973.6" - "@smithy/config-resolver" "^4.4.13" - "@smithy/node-config-provider" "^4.3.12" - "@smithy/types" "^4.13.1" - tslib "^2.6.2" - -"@aws-sdk/signature-v4-multi-region@^3.996.15": - version "3.996.15" - resolved "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.996.15.tgz" - integrity sha512-Ukw2RpqvaL96CjfH/FgfBmy/ZosHBqoHBCFsN61qGg99F33vpntIVii8aNeh65XuOja73arSduskoa4OJea9RQ== - dependencies: - "@aws-sdk/middleware-sdk-s3" "^3.972.27" - "@aws-sdk/types" "^3.973.6" - "@smithy/protocol-http" "^5.3.12" - "@smithy/signature-v4" "^5.3.12" - "@smithy/types" "^4.13.1" - tslib "^2.6.2" - -"@aws-sdk/token-providers@3.1021.0": - version "3.1021.0" - resolved "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.1021.0.tgz" - integrity sha512-TKY6h9spUk3OLs5v1oAgW9mAeBE3LAGNBwJokLy96wwmd4W2v/tYlXseProyed9ValDj2u1jK/4Rg1T+1NXyJA== - dependencies: - "@aws-sdk/core" "^3.973.26" - "@aws-sdk/nested-clients" "^3.996.18" - "@aws-sdk/types" "^3.973.6" - "@smithy/property-provider" "^4.2.12" - "@smithy/shared-ini-file-loader" "^4.4.7" - "@smithy/types" "^4.13.1" + "@aws-sdk/core" "^3.974.22" + "@aws-sdk/signature-v4-multi-region" "^3.996.35" + "@aws-sdk/types" "^3.973.13" + "@smithy/core" "^3.24.6" + "@smithy/fetch-http-handler" "^5.4.6" + "@smithy/node-http-handler" "^4.7.6" + "@smithy/types" "^4.14.3" tslib "^2.6.2" -"@aws-sdk/types@^3.222.0", "@aws-sdk/types@^3.973.6": - version "3.973.6" - resolved "https://registry.npmjs.org/@aws-sdk/types/-/types-3.973.6.tgz" - integrity sha512-Atfcy4E++beKtwJHiDln2Nby8W/mam64opFPTiHEqgsthqeydFS1pY+OUlN1ouNOmf8ArPU/6cDS65anOP3KQw== +"@aws-sdk/signature-v4-multi-region@^3.996.35": + version "3.996.35" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.996.35.tgz#2994b9f33e84b9c74392b7495f89e5c958bda503" + integrity sha512-6L/VWs+Wch2stHemCGTmUNqKLMzURxQDK5boNG3Jn3kAOp71meDUuS5sbObpEvFxHDq0uWeSLFDNSYsjNt+Dlg== dependencies: - "@smithy/types" "^4.13.1" + "@aws-sdk/types" "^3.973.13" + "@smithy/signature-v4" "^5.4.6" + "@smithy/types" "^4.14.3" tslib "^2.6.2" -"@aws-sdk/util-arn-parser@^3.972.3": - version "3.972.3" - resolved "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.972.3.tgz" - integrity sha512-HzSD8PMFrvgi2Kserxuff5VitNq2sgf3w9qxmskKDiDTThWfVteJxuCS9JXiPIPtmCrp+7N9asfIaVhBFORllA== +"@aws-sdk/token-providers@3.1071.0": + version "3.1071.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.1071.0.tgz#3302dafa1acdb097002496700160881b161a0148" + integrity sha512-4LDW2Qob6LoLFuqYSYZq2AyTE9koSE9+i+n5UZcm10GpmQOK0zRD9L4uYlzItiTKksIWgC/qMFChAi3RvKYtMg== dependencies: + "@aws-sdk/core" "^3.974.22" + "@aws-sdk/nested-clients" "^3.997.22" + "@aws-sdk/types" "^3.973.13" + "@smithy/core" "^3.24.6" + "@smithy/types" "^4.14.3" tslib "^2.6.2" -"@aws-sdk/util-endpoints@^3.996.5": - version "3.996.5" - resolved "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.996.5.tgz" - integrity sha512-Uh93L5sXFNbyR5sEPMzUU8tJ++Ku97EY4udmC01nB8Zu+xfBPwpIwJ6F7snqQeq8h2pf+8SGN5/NoytfKgYPIw== +"@aws-sdk/types@^3.222.0", "@aws-sdk/types@^3.973.13": + version "3.973.13" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.973.13.tgz#c076f611e94394a49c1bc1aeb64371ef6db4b3da" + integrity sha512-pEHZqRkAlHfnfAU9tK+WpKv/gBNjGJrHMgA3A0iYRGyswBS2t0pfez+lWlwktb3Bqa0ovh7w/QJTFwp3fDxLNg== dependencies: - "@aws-sdk/types" "^3.973.6" - "@smithy/types" "^4.13.1" - "@smithy/url-parser" "^4.2.12" - "@smithy/util-endpoints" "^3.3.3" + "@smithy/types" "^4.14.3" tslib "^2.6.2" "@aws-sdk/util-locate-window@^3.0.0": - version "3.893.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.893.0.tgz" - integrity sha512-T89pFfgat6c8nMmpI8eKjBcDcgJq36+m9oiXbcUzeU55MP9ZuGgBomGjGnHaEyF36jenW9gmg3NfZDm0AO2XPg== + version "3.965.8" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.965.8.tgz#d9a6bede3c136f433441391615da68c924692487" + integrity sha512-uUbMs1cBZPafD0ohUj6EwNf0fPZ534NvBxHox4hjX+0Rxq5paSYUem7+hi833pYrzrcnBATKIYpR02MDXT5M9g== dependencies: tslib "^2.6.2" -"@aws-sdk/util-user-agent-browser@^3.972.8": - version "3.972.8" - resolved "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.972.8.tgz" - integrity sha512-B3KGXJviV2u6Cdw2SDY2aDhoJkVfY/Q/Trwk2CMSkikE1Oi6gRzxhvhIfiRpHfmIsAhV4EA54TVEX8K6CbHbkA== +"@aws-sdk/xml-builder@^3.972.30": + version "3.972.30" + resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.972.30.tgz#a52f9d8a69b1ceedb21012dd7830f098aa11102c" + integrity sha512-StElZPEoBquWwNqw1AcfpzEyZqJvFxouG+mpDNYlcH6ZOrqd2CuIryv+8LV8gNHZUOyKyJF3Dq9vxaXEmDR9TQ== dependencies: - "@aws-sdk/types" "^3.973.6" - "@smithy/types" "^4.13.1" - bowser "^2.11.0" - tslib "^2.6.2" - -"@aws-sdk/util-user-agent-node@^3.973.14": - version "3.973.14" - resolved "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.973.14.tgz" - integrity sha512-vNSB/DYaPOyujVZBg/zUznH9QC142MaTHVmaFlF7uzzfg3CgT9f/l4C0Yi+vU/tbBhxVcXVB90Oohk5+o+ZbWw== - dependencies: - "@aws-sdk/middleware-user-agent" "^3.972.28" - "@aws-sdk/types" "^3.973.6" - "@smithy/node-config-provider" "^4.3.12" - "@smithy/types" "^4.13.1" - "@smithy/util-config-provider" "^4.2.2" - tslib "^2.6.2" - -"@aws-sdk/xml-builder@^3.972.16": - version "3.972.16" - resolved "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.972.16.tgz" - integrity sha512-iu2pyvaqmeatIJLURLqx9D+4jKAdTH20ntzB6BFwjyN7V960r4jK32mx0Zf7YbtOYAbmbtQfDNuL60ONinyw7A== - dependencies: - "@smithy/types" "^4.13.1" - fast-xml-parser "5.5.8" + "@smithy/types" "^4.14.3" + fast-xml-parser "5.7.3" tslib "^2.6.2" "@aws/lambda-invoke-store@^0.2.2": version "0.2.4" - resolved "https://registry.npmjs.org/@aws/lambda-invoke-store/-/lambda-invoke-store-0.2.4.tgz" + resolved "https://registry.yarnpkg.com/@aws/lambda-invoke-store/-/lambda-invoke-store-0.2.4.tgz#802f6a50f6b6589063ef63ba8acdee86fcb9f395" integrity sha512-iY8yvjE0y651BixKNPgmv1WrQc+GZ142sb0z4gYnChDDY2YqI4P/jsSopBWrKfAt7LOJAkOXt7rC/hms+WclQQ== -"@babel/helper-string-parser@^7.27.1": - version "7.27.1" - resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz" - integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== +"@babel/helper-string-parser@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz#7f0871d99824d23137d60f86fcf6130fd5a1b51f" + integrity sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw== -"@babel/helper-validator-identifier@^7.28.5": - version "7.28.5" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz" - integrity sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q== +"@babel/helper-validator-identifier@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz#bd87084ced0c796ec46bda492de6e83d29e89fc2" + integrity sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg== -"@babel/parser@^7.25.4", "@babel/parser@^7.29.2": - version "7.29.2" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz" - integrity sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA== +"@babel/parser@^7.25.4", "@babel/parser@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.29.7.tgz#837b87387cbf5ec5530cb634b3c622f68edb9334" + integrity sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg== dependencies: - "@babel/types" "^7.29.0" + "@babel/types" "^7.29.7" -"@babel/types@^7.25.4", "@babel/types@^7.29.0": - version "7.29.0" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz" - integrity sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A== +"@babel/types@^7.25.4", "@babel/types@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.29.7.tgz#8005e31d82712ee7adaef6e23c63b71a62770a92" + integrity sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA== dependencies: - "@babel/helper-string-parser" "^7.27.1" - "@babel/helper-validator-identifier" "^7.28.5" + "@babel/helper-string-parser" "^7.29.7" + "@babel/helper-validator-identifier" "^7.29.7" "@bcoe/v8-coverage@^1.0.2": version "1.0.2" - resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-1.0.2.tgz#bbe12dca5b4ef983a0d0af4b07b9bc90ea0ababa" integrity sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA== "@colors/colors@1.5.0": @@ -608,9 +371,9 @@ integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== "@emnapi/runtime@^1.7.0": - version "1.10.0" - resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.10.0.tgz#4b260c0d3534204e98c6110b8db1a987d26ec87c" - integrity sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA== + version "1.11.1" + resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.11.1.tgz#58f1f3d5d81a9b12f793ab688c96371901027c24" + integrity sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw== dependencies: tslib "^2.4.0" @@ -627,7 +390,7 @@ "@envelop/core@^5.5.1": version "5.5.1" - resolved "https://registry.npmjs.org/@envelop/core/-/core-5.5.1.tgz" + resolved "https://registry.yarnpkg.com/@envelop/core/-/core-5.5.1.tgz#ca30c927b3a7d7f118d36111e17b355eedae9ff4" integrity sha512-3DQg8sFskDo386TkL5j12jyRAdip/8yzK3x7YGbZBgobZ4aKXrvDU0GppU0SnmrpQnNaiTUsxBs9LKkwQ/eyvw== dependencies: "@envelop/instrumentation" "^1.0.0" @@ -637,7 +400,7 @@ "@envelop/depth-limit@^7.1.1": version "7.1.1" - resolved "https://registry.npmjs.org/@envelop/depth-limit/-/depth-limit-7.1.1.tgz" + resolved "https://registry.yarnpkg.com/@envelop/depth-limit/-/depth-limit-7.1.1.tgz#8dadcbfdaf7b7b234195bf072cbac29ec022565c" integrity sha512-FH+uEgcgvlUEtDkKHUcUwHTCvcAm/wtDZaEqng/fCzM2MCsQm0QBSaCX+OiBzZxIh7J5f3yxWmAij0veIiy/0Q== dependencies: graphql-depth-limit "^1.1.0" @@ -645,7 +408,7 @@ "@envelop/instrumentation@^1.0.0": version "1.0.0" - resolved "https://registry.npmjs.org/@envelop/instrumentation/-/instrumentation-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/@envelop/instrumentation/-/instrumentation-1.0.0.tgz#43268392e065d8ba975cacbdf4fc297dfe3e11e5" integrity sha512-cxgkB66RQB95H3X27jlnxCRNTmPuSTgmBAq6/4n2Dtv4hsk4yz8FadA1ggmd0uZzvKqWD6CR+WFgTjhDqg7eyw== dependencies: "@whatwg-node/promise-helpers" "^1.2.1" @@ -653,7 +416,7 @@ "@envelop/types@^5.2.1": version "5.2.1" - resolved "https://registry.npmjs.org/@envelop/types/-/types-5.2.1.tgz" + resolved "https://registry.yarnpkg.com/@envelop/types/-/types-5.2.1.tgz#6bc9713f2aea56d7de3ea39e8bb70035c0475b36" integrity sha512-CsFmA3u3c2QoLDTfEpGr4t25fjMU31nyvse7IzWTvb0ZycuPjMjb0fjlheh+PbhBYb9YLugnT2uY6Mwcg1o+Zg== dependencies: "@whatwg-node/promise-helpers" "^1.0.0" @@ -664,167 +427,299 @@ resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.27.7.tgz#82b74f92aa78d720b714162939fb248c90addf53" integrity sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg== +"@esbuild/aix-ppc64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.28.1.tgz#7a01a8d2ec2fbb2dac78adad09b0fa781e4082be" + integrity sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ== + "@esbuild/android-arm64@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.27.7.tgz#f78cb8a3121fc205a53285adb24972db385d185d" integrity sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ== +"@esbuild/android-arm64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.28.1.tgz#b540a27d14e4afd058496a4dbec4d3f414db110a" + integrity sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg== + "@esbuild/android-arm@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.27.7.tgz#593e10a1450bbfcac6cb321f61f468453bac209d" integrity sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ== +"@esbuild/android-arm@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.28.1.tgz#704bd297de6d762de54eabbeafbf55f6756abe2f" + integrity sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ== + "@esbuild/android-x64@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.27.7.tgz#453143d073326033d2d22caf9e48de4bae274b07" integrity sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg== +"@esbuild/android-x64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.28.1.tgz#d1cb166d34b0fbf0fe8ab460a5594f24a378701e" + integrity sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng== + "@esbuild/darwin-arm64@0.27.7": version "0.27.7" - resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.7.tgz" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.27.7.tgz#6f23000fb9b40b7e04b7d0606c0693bd0632f322" integrity sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw== +"@esbuild/darwin-arm64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.28.1.tgz#1034b26457fc886368fe61bbd09f653f6afa8e54" + integrity sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q== + "@esbuild/darwin-x64@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.27.7.tgz#27393dd18bb1263c663979c5f1576e00c2d024be" integrity sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ== +"@esbuild/darwin-x64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.28.1.tgz#65556a432a1e4d72032d8218c1932fcca1a49772" + integrity sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ== + "@esbuild/freebsd-arm64@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.7.tgz#22e4638fa502d1c0027077324c97640e3adf3a62" integrity sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w== +"@esbuild/freebsd-arm64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.1.tgz#2e61e0592f9030d7e3dae18ee25ebc535918aef6" + integrity sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw== + "@esbuild/freebsd-x64@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.27.7.tgz#9224b8e4fea924ce2194e3efc3e9aebf822192d6" integrity sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ== +"@esbuild/freebsd-x64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.28.1.tgz#c95ec289959ef8079c4dca817a1e2c4be66b9bd3" + integrity sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ== + "@esbuild/linux-arm64@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.27.7.tgz#4f5d1c27527d817b35684ae21419e57c2bda0966" integrity sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A== +"@esbuild/linux-arm64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.28.1.tgz#40b22175dda06182f3ee8141186c5ff304c4a717" + integrity sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g== + "@esbuild/linux-arm@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.27.7.tgz#b9e9d070c8c1c0449cf12b20eac37d70a4595921" integrity sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA== +"@esbuild/linux-arm@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.28.1.tgz#c09a0f67917592ac0de892a9be4d3814debd2a6c" + integrity sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ== + "@esbuild/linux-ia32@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.27.7.tgz#3f80fb696aa96051a94047f35c85b08b21c36f9e" integrity sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg== +"@esbuild/linux-ia32@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.28.1.tgz#a580f9c676797833891e519fc7a1337c8afd8db3" + integrity sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w== + "@esbuild/linux-loong64@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.27.7.tgz#9be1f2c28210b13ebb4156221bba356fe1675205" integrity sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q== +"@esbuild/linux-loong64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.28.1.tgz#46452cf321dc7f9e91c2fa780a56bb56e79cd68b" + integrity sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg== + "@esbuild/linux-mips64el@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.27.7.tgz#4ab5ee67a3dfcbcb5e8fd7883dae6e735b1163b8" integrity sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw== +"@esbuild/linux-mips64el@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.28.1.tgz#4211b3184dd6608f53dcb22e39f5d34ee08852c8" + integrity sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ== + "@esbuild/linux-ppc64@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.27.7.tgz#dac78c689f6499459c4321e5c15032c12307e7ea" integrity sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ== +"@esbuild/linux-ppc64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.28.1.tgz#697857c2a61cb9b0b6bb6652e40c1dc5e1ca8e5d" + integrity sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ== + "@esbuild/linux-riscv64@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.27.7.tgz#050f7d3b355c3a98308e935bc4d6325da91b0027" integrity sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ== +"@esbuild/linux-riscv64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.28.1.tgz#d192943eb146a40ac4c6497d0cf7be35b986bf08" + integrity sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ== + "@esbuild/linux-s390x@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.27.7.tgz#d61f715ce61d43fe5844ad0d8f463f88cbe4fef6" integrity sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw== +"@esbuild/linux-s390x@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.28.1.tgz#acea0356da0e0ebc08f97cf7b9c2e401e1e648dc" + integrity sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag== + "@esbuild/linux-x64@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.27.7.tgz#ca8e1aa478fc8209257bf3ac8f79c4dc2982f32a" integrity sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA== +"@esbuild/linux-x64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.28.1.tgz#6f0c3ce0cb64c534b70c4c45ecb2c16d34e35dfd" + integrity sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA== + "@esbuild/netbsd-arm64@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.7.tgz#1650f2c1b948deeb3ef948f2fc30614723c09690" integrity sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w== +"@esbuild/netbsd-arm64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.1.tgz#8bcd77077a0dce3378b574fedb26d2a253b73d36" + integrity sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw== + "@esbuild/netbsd-x64@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.27.7.tgz#65772ab342c4b3319bf0705a211050aac1b6e320" integrity sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw== +"@esbuild/netbsd-x64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.28.1.tgz#e7fb2a01e99c830c94e6623cd9fefb4c8fb58347" + integrity sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg== + "@esbuild/openbsd-arm64@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.7.tgz#37ed7cfa66549d7955852fce37d0c3de4e715ea1" integrity sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A== +"@esbuild/openbsd-arm64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.1.tgz#c52909372db8b86e2c55e05a8940033b5660a3b2" + integrity sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q== + "@esbuild/openbsd-x64@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.27.7.tgz#01bf3d385855ef50cb33db7c4b52f957c34cd179" integrity sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg== +"@esbuild/openbsd-x64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.28.1.tgz#c427b9be5a64c262ff9a7eb70b5fbbaadf446c6c" + integrity sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw== + "@esbuild/openharmony-arm64@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.7.tgz#6c1f94b34086599aabda4eac8f638294b9877410" integrity sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw== +"@esbuild/openharmony-arm64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.1.tgz#dc9b147baca2e6c4b3c85571741ef4860a489097" + integrity sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg== + "@esbuild/sunos-x64@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.27.7.tgz#4b0dd17ae0a6941d2d0fd35a906392517071a90d" integrity sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA== +"@esbuild/sunos-x64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.28.1.tgz#ce866d12df13c15e4c99f073a3d466f6e0649b3a" + integrity sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ== + "@esbuild/win32-arm64@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.27.7.tgz#34193ab5565d6ff68ca928ac04be75102ccb2e77" integrity sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA== +"@esbuild/win32-arm64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.28.1.tgz#7468e3692d01d629d5941e5d83817bb80f9e39b4" + integrity sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA== + "@esbuild/win32-ia32@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.27.7.tgz#eb67f0e4482515d8c1894ede631c327a4da9fc4d" integrity sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw== +"@esbuild/win32-ia32@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.28.1.tgz#a5bc0063fb2bcab6d0ed63f2a1537958bc269ec6" + integrity sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg== + "@esbuild/win32-x64@0.27.7": version "0.27.7" resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.27.7.tgz#8fe30b3088b89b4873c3a6cc87597ae3920c0a8b" integrity sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg== -"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.9.1": +"@esbuild/win32-x64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.28.1.tgz#10064ee44f4347b90c9a02b446bbf80a91632b12" + integrity sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A== + +"@eslint-community/eslint-utils@^4.8.0", "@eslint-community/eslint-utils@^4.9.1": version "4.9.1" - resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz#4e90af67bc51ddee6cdef5284edf572ec376b595" integrity sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ== dependencies: eslint-visitor-keys "^3.4.3" "@eslint-community/regexpp@^4.12.1", "@eslint-community/regexpp@^4.12.2": version "4.12.2" - resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.2.tgz#bccdf615bcf7b6e8db830ec0b8d21c9a25de597b" integrity sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew== -"@eslint/config-array@^0.21.0": - version "0.21.0" - resolved "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.0.tgz" - integrity sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ== +"@eslint/config-array@^0.21.2": + version "0.21.2" + resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.21.2.tgz#f29e22057ad5316cf23836cee9a34c81fffcb7e6" + integrity sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw== dependencies: - "@eslint/object-schema" "^2.1.6" + "@eslint/object-schema" "^2.1.7" debug "^4.3.1" - minimatch "^3.1.2" + minimatch "^3.1.5" -"@eslint/config-helpers@^0.3.1": - version "0.3.1" - resolved "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.1.tgz" - integrity sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA== +"@eslint/config-helpers@^0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@eslint/config-helpers/-/config-helpers-0.4.2.tgz#1bd006ceeb7e2e55b2b773ab318d300e1a66aeda" + integrity sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw== + dependencies: + "@eslint/core" "^0.17.0" -"@eslint/core@^0.15.2": - version "0.15.2" - resolved "https://registry.npmjs.org/@eslint/core/-/core-0.15.2.tgz" - integrity sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg== +"@eslint/core@^0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.17.0.tgz#77225820413d9617509da9342190a2019e78761c" + integrity sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ== dependencies: "@types/json-schema" "^7.0.15" -"@eslint/eslintrc@^3.3.1", "@eslint/eslintrc@^3.3.5": +"@eslint/eslintrc@^3.3.5": version "3.3.5" - resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.5.tgz" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.3.5.tgz#c131793cfc1a7b96f24a83e0a8bbd4b881558c60" integrity sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg== dependencies: ajv "^6.14.0" @@ -837,32 +732,32 @@ minimatch "^3.1.5" strip-json-comments "^3.1.1" -"@eslint/js@9.33.0": - version "9.33.0" - resolved "https://registry.npmjs.org/@eslint/js/-/js-9.33.0.tgz" - integrity sha512-5K1/mKhWaMfreBGJTwval43JJmkip0RmM+3+IuqupeSKNC/Th2Kc7ucaq5ovTSra/OOKB9c58CGSz3QMVbWt0A== +"@eslint/js@9.39.4": + version "9.39.4" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.39.4.tgz#a3f83bfc6fd9bf33a853dfacd0b49b398eb596c1" + integrity sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw== -"@eslint/object-schema@^2.1.6": - version "2.1.6" - resolved "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz" - integrity sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA== +"@eslint/object-schema@^2.1.7": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.7.tgz#6e2126a1347e86a4dedf8706ec67ff8e107ebbad" + integrity sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA== -"@eslint/plugin-kit@^0.3.5": - version "0.3.5" - resolved "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.5.tgz" - integrity sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w== +"@eslint/plugin-kit@^0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz#9779e3fd9b7ee33571a57435cf4335a1794a6cb2" + integrity sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA== dependencies: - "@eslint/core" "^0.15.2" + "@eslint/core" "^0.17.0" levn "^0.4.1" "@fastify/busboy@^3.1.1": version "3.2.0" - resolved "https://registry.npmjs.org/@fastify/busboy/-/busboy-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-3.2.0.tgz#13ed8212f3b9ba697611529d15347f8528058cea" integrity sha512-m9FVDXU3GT2ITSe0UaMA5rU3QkfC/UXtCU8y0gSN/GugTqtVldOBWIB5V6V3sbmenVZUIpU6f+mPEO2+m5iTaA== "@google-cloud/paginator@^5.0.0": version "5.0.2" - resolved "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-5.0.2.tgz" + resolved "https://registry.yarnpkg.com/@google-cloud/paginator/-/paginator-5.0.2.tgz#86ad773266ce9f3b82955a8f75e22cd012ccc889" integrity sha512-DJS3s0OVH4zFDB1PzjxAsHqJT6sKVbRwwML0ZBP9PbU7Yebtu/7SWMRzvO2J3nUi9pRNITCfu4LJeooM2w4pjg== dependencies: arrify "^2.0.0" @@ -870,18 +765,18 @@ "@google-cloud/projectify@^4.0.0": version "4.0.0" - resolved "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/@google-cloud/projectify/-/projectify-4.0.0.tgz#d600e0433daf51b88c1fa95ac7f02e38e80a07be" integrity sha512-MmaX6HeSvyPbWGwFq7mXdo0uQZLGBYCwziiLIGq5JVX+/bdI3SAq6bP98trV5eTWfLuvsMcIC1YJOF2vfteLFA== "@google-cloud/promisify@<4.1.0": version "4.0.0" - resolved "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/@google-cloud/promisify/-/promisify-4.0.0.tgz#a906e533ebdd0f754dca2509933334ce58b8c8b1" integrity sha512-Orxzlfb9c67A15cq2JQEyVc7wEsmFBmHjZWZYQMUyJ1qivXyMwdyNOs9odi79hze+2zqdTtu1E19IM/FtqZ10g== "@google-cloud/storage@^7.19.0": - version "7.19.0" - resolved "https://registry.npmjs.org/@google-cloud/storage/-/storage-7.19.0.tgz" - integrity sha512-n2FjE7NAOYyshogdc7KQOl/VZb4sneqPjWouSyia9CMDdMhRX5+RIbqalNmC7LOLzuLAN89VlF2HvG8na9G+zQ== + version "7.21.0" + resolved "https://registry.yarnpkg.com/@google-cloud/storage/-/storage-7.21.0.tgz#46b89afbdc3014e18b60afdfba5d9212a23e7b58" + integrity sha512-l+IFTkd+6Y5LoAuXyYCKNAKtw/Ci+rAMqgdTB1jv4iZiLhw0rtq+0qjIRbBizXkNzEFmXiXUW0H7sZQQvk1ffA== dependencies: "@google-cloud/paginator" "^5.0.0" "@google-cloud/projectify" "^4.0.0" @@ -897,40 +792,39 @@ p-limit "^3.0.1" retry-request "^7.0.0" teeny-request "^9.0.0" - uuid "^8.0.0" "@graphql-tools/executor@^1.5.0": - version "1.5.1" - resolved "https://registry.npmjs.org/@graphql-tools/executor/-/executor-1.5.1.tgz" - integrity sha512-n94Qcu875Mji9GQ52n5UbgOTxlgvFJicBPYD+FRks9HKIQpdNPjkkrKZUYNG51XKa+bf03rxNflm4+wXhoHHrA== + version "1.5.3" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor/-/executor-1.5.3.tgz#3c567ec4854fe8ed69eb6a890e41db7bdae2b0bc" + integrity sha512-mgBFC0bsrZPZLu9EnydpMnAuQ8Iiq0CEbUcsmvXsm2/iYektGHDN/+bmb7hicA6dWZtdPfklYJmr21WD0GnOfA== dependencies: - "@graphql-tools/utils" "^11.0.0" + "@graphql-tools/utils" "^11.1.0" "@graphql-typed-document-node/core" "^3.2.0" "@repeaterjs/repeater" "^3.0.4" "@whatwg-node/disposablestack" "^0.0.6" "@whatwg-node/promise-helpers" "^1.0.0" tslib "^2.4.0" -"@graphql-tools/merge@^9.1.7": - version "9.1.7" - resolved "https://registry.npmjs.org/@graphql-tools/merge/-/merge-9.1.7.tgz" - integrity sha512-Y5E1vTbTabvcXbkakdFUt4zUIzB1fyaEnVmIWN0l0GMed2gdD01TpZWLUm4RNAxpturvolrb24oGLQrBbPLSoQ== +"@graphql-tools/merge@^9.1.9": + version "9.1.9" + resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-9.1.9.tgz#d5b042ef11695ca130a36477e25786100353609b" + integrity sha512-iHUWNjRHeQRYdgIMIuChThOwoKzA9vrzYeslgfBo5eUYEyHGZCoDPjAavssoYXLwstYt1dZj2J22jSzc2DrN0Q== dependencies: - "@graphql-tools/utils" "^11.0.0" + "@graphql-tools/utils" "^11.1.0" tslib "^2.4.0" "@graphql-tools/schema@^10.0.11", "@graphql-tools/schema@^10.0.31": - version "10.0.31" - resolved "https://registry.npmjs.org/@graphql-tools/schema/-/schema-10.0.31.tgz" - integrity sha512-ZewRgWhXef6weZ0WiP7/MV47HXiuFbFpiDUVLQl6mgXsWSsGELKFxQsyUCBos60Qqy1JEFAIu3Ns6GGYjGkqkQ== + version "10.0.33" + resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-10.0.33.tgz#147d70aa9bb12123ffca2c091be1f3f3ec592911" + integrity sha512-O6P3RIftO0jafnSsFAqpjurUuUxJ43s/AdPVLQsBkI6y4Ic/tKm4C1Qm1KKQsCDTOxXPJClh/v3g7k7yLKCFBQ== dependencies: - "@graphql-tools/merge" "^9.1.7" - "@graphql-tools/utils" "^11.0.0" + "@graphql-tools/merge" "^9.1.9" + "@graphql-tools/utils" "^11.1.0" tslib "^2.4.0" "@graphql-tools/utils@^10.11.0": version "10.11.0" - resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.11.0.tgz" + resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-10.11.0.tgz#2513dca9ca25bab5a2651da2d66c37b1e2616bdf" integrity sha512-iBFR9GXIs0gCD+yc3hoNswViL1O5josI33dUqiNStFI/MHLCEPduasceAcazRH77YONKNiviHBV8f7OgcT4o2Q== dependencies: "@graphql-typed-document-node/core" "^3.1.1" @@ -938,10 +832,10 @@ cross-inspect "1.0.1" tslib "^2.4.0" -"@graphql-tools/utils@^11.0.0": - version "11.0.0" - resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-11.0.0.tgz" - integrity sha512-bM1HeZdXA2C3LSIeLOnH/bcqSgbQgKEDrjxODjqi3y58xai2TkNrtYcQSoWzGbt9VMN1dORGjR7Vem8SPnUFQA== +"@graphql-tools/utils@^11.1.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-11.1.0.tgz#03593c3ae1177e04a3620c688fd29df912aa094f" + integrity sha512-PtFVG4r8Z2LEBSaPYQMusBiB3o6kjLVJyjCLbnWem/SpSuM21v6LTmgpkXfYU1qpBV2UGsFyuEnSJInl8fR1Ag== dependencies: "@graphql-typed-document-node/core" "^3.1.1" "@whatwg-node/promise-helpers" "^1.0.0" @@ -950,19 +844,19 @@ "@graphql-typed-document-node/core@^3.1.1", "@graphql-typed-document-node/core@^3.2.0": version "3.2.0" - resolved "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz#5f3d96ec6b2354ad6d8a28bf216a1d97b5426861" integrity sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ== "@graphql-yoga/logger@^2.0.1": version "2.0.1" - resolved "https://registry.npmjs.org/@graphql-yoga/logger/-/logger-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/@graphql-yoga/logger/-/logger-2.0.1.tgz#b3d18371c07bb2fe03417e3920ddcaebb2ee0262" integrity sha512-Nv0BoDGLMg9QBKy9cIswQ3/6aKaKjlTh87x3GiBg2Z4RrjyrM48DvOOK0pJh1C1At+b0mUIM67cwZcFTDLN4sA== dependencies: tslib "^2.8.1" "@graphql-yoga/subscription@^5.0.5": version "5.0.5" - resolved "https://registry.npmjs.org/@graphql-yoga/subscription/-/subscription-5.0.5.tgz" + resolved "https://registry.yarnpkg.com/@graphql-yoga/subscription/-/subscription-5.0.5.tgz#55e1dc472de866185d7c122e2c534023a331f65c" integrity sha512-oCMWOqFs6QV96/NZRt/ZhTQvzjkGB4YohBOpKM4jH/lDT4qb7Lex/aGCxpi/JD9njw3zBBtMqxbaC22+tFHVvw== dependencies: "@graphql-yoga/typed-event-target" "^3.0.2" @@ -972,48 +866,51 @@ "@graphql-yoga/typed-event-target@^3.0.2": version "3.0.2" - resolved "https://registry.npmjs.org/@graphql-yoga/typed-event-target/-/typed-event-target-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/@graphql-yoga/typed-event-target/-/typed-event-target-3.0.2.tgz#af29ed2a5a84062ffab8e404b335ec4d4c37ceb4" integrity sha512-ZpJxMqB+Qfe3rp6uszCQoag4nSw42icURnBRfFYSOmTgEeOe4rD0vYlbA8spvCu2TlCesNTlEN9BLWtQqLxabA== dependencies: "@repeaterjs/repeater" "^3.0.4" tslib "^2.8.1" -"@humanfs/core@^0.19.1": - version "0.19.1" - resolved "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz" - integrity sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA== +"@humanfs/core@^0.19.2": + version "0.19.2" + resolved "https://registry.yarnpkg.com/@humanfs/core/-/core-0.19.2.tgz#a8272ca03b2acf492670222b2320b6c421bfde60" + integrity sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA== + dependencies: + "@humanfs/types" "^0.15.0" "@humanfs/node@^0.16.6": - version "0.16.6" - resolved "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz" - integrity sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw== + version "0.16.8" + resolved "https://registry.yarnpkg.com/@humanfs/node/-/node-0.16.8.tgz#8f800cccc13f4f8cd3116e2d9c0a94939da3e3ed" + integrity sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ== dependencies: - "@humanfs/core" "^0.19.1" - "@humanwhocodes/retry" "^0.3.0" + "@humanfs/core" "^0.19.2" + "@humanfs/types" "^0.15.0" + "@humanwhocodes/retry" "^0.4.0" + +"@humanfs/types@^0.15.0": + version "0.15.0" + resolved "https://registry.yarnpkg.com/@humanfs/types/-/types-0.15.0.tgz#f2a09f62012390b2bff3fc6fb248ddec8c09a090" + integrity sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q== "@humanwhocodes/module-importer@^1.0.1": version "1.0.1" - resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@humanwhocodes/retry@^0.3.0": - version "0.3.1" - resolved "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz" - integrity sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA== - -"@humanwhocodes/retry@^0.4.2": +"@humanwhocodes/retry@^0.4.0", "@humanwhocodes/retry@^0.4.2": version "0.4.3" - resolved "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz" + resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.4.3.tgz#c2b9d2e374ee62c586d3adbea87199b1d7a7a6ba" integrity sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ== "@img/colour@^1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/@img/colour/-/colour-1.0.0.tgz" - integrity sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw== + version "1.1.0" + resolved "https://registry.yarnpkg.com/@img/colour/-/colour-1.1.0.tgz#b0c2c2fa661adf75effd6b4964497cd80010bb9d" + integrity sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ== "@img/sharp-darwin-arm64@0.34.5": version "0.34.5" - resolved "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz" + resolved "https://registry.yarnpkg.com/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz#6e0732dcade126b6670af7aa17060b926835ea86" integrity sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w== optionalDependencies: "@img/sharp-libvips-darwin-arm64" "1.2.4" @@ -1027,7 +924,7 @@ "@img/sharp-libvips-darwin-arm64@1.2.4": version "1.2.4" - resolved "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz#2894c0cb87d42276c3889942e8e2db517a492c43" integrity sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g== "@img/sharp-libvips-darwin-x64@1.2.4": @@ -1153,14 +1050,19 @@ resolved "https://registry.yarnpkg.com/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz#a81ffb00e69267cd0a1d626eaedb8a8430b2b2f8" integrity sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw== +"@ioredis/commands@1.10.0": + version "1.10.0" + resolved "https://registry.yarnpkg.com/@ioredis/commands/-/commands-1.10.0.tgz#cc387f8ec5ebe5b3b5104d393b5ac1f9cf794b9a" + integrity sha512-UmeW7z4LfctwoQ5wkhVzgq8tXkreED2xZGpX+Bg+zA+WJFZCT6c062AfCK/Dfk81xZnnwdhJCUMkitihRaoC2Q== + "@ioredis/commands@1.5.1": version "1.5.1" - resolved "https://registry.npmjs.org/@ioredis/commands/-/commands-1.5.1.tgz" + resolved "https://registry.yarnpkg.com/@ioredis/commands/-/commands-1.5.1.tgz#a0a3449993b10c7aeb91ecb0d5f1a23692297e51" integrity sha512-JH8ZL/ywcJyR9MmJ5BNqZllXNZQqQbnVZOqpPQqE1vHiFgAw4NHbvE0FOduNU8IX9babitBT46571OnPTT0Zcw== "@isaacs/cliui@^8.0.2": version "8.0.2" - resolved "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== dependencies: string-width "^5.1.2" @@ -1172,12 +1074,12 @@ "@istanbuljs/schema@^0.1.2": version "0.1.6" - resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.6.tgz" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.6.tgz#8dc9afa2ac1506cb1a58f89940f1c124446c8df3" integrity sha512-+Sg6GCR/wy1oSmQDFq4LQDAhm3ETKnorxN+y5nbLULOR3P0c14f2Wurzj3/xqPXtasLFfHd5iRFQ7AJt4KH2cw== "@jridgewell/gen-mapping@^0.3.5": version "0.3.13" - resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz#6342a19f44347518c93e43b1ac69deb3c4656a1f" integrity sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA== dependencies: "@jridgewell/sourcemap-codec" "^1.5.0" @@ -1185,67 +1087,67 @@ "@jridgewell/resolve-uri@^3.1.0": version "3.1.2" - resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0", "@jridgewell/sourcemap-codec@^1.5.5": version "1.5.5" - resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== "@jridgewell/trace-mapping@^0.3.23", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.31": version "0.3.31" - resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz#db15d6781c931f3a251a3dac39501c98a6082fd0" integrity sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw== dependencies: "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" "@mongodb-js/saslprep@^1.3.0": - version "1.3.1" - resolved "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.3.1.tgz" - integrity sha512-6nZrq5kfAz0POWyhljnbWQQJQ5uT8oE2ddX303q1uY0tWsivWKgBDXBBvuFPwOqRRalXJuVO9EjOdVtuhLX0zg== + version "1.4.11" + resolved "https://registry.yarnpkg.com/@mongodb-js/saslprep/-/saslprep-1.4.11.tgz#3fae1bf22a6e485ea42d26e46d06e49c8eadb86b" + integrity sha512-o9rAHc0IpIjuPSxRutWpE1F62x7n+4mVS4rCNHkzhIUMQcc18bb6xEq5wd2NdN0WjepIyXIppRshYI2kQDOZVA== dependencies: sparse-bitfield "^3.0.3" -"@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.3": - version "3.0.3" - resolved "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz" - integrity sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw== +"@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.4.tgz#22619f76a6b10ba78c8b74025b0d9754cad69cc7" + integrity sha512-LCkGo6JDfaBhgST7UpPWgNgLINpcpabaHfyz5OBx75nUYxBsaEPxjnyNjWpeb/xBup/682QnBfRBy2/LvPutZQ== -"@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.3.tgz#33677a275204898ad8acbf62734fc4dc0b6a4855" - integrity sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw== +"@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.4.tgz#c2fc0573afe08b0cf213e66eef76842b121d1577" + integrity sha512-zExlW9zUJKZH/tOtVMttwjKa4Xm/3KcNjnE3dPN92uCktwavMxpgCA3MoJK/DOnTWsQgo224OaST27/mPNAf+w== -"@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.3.tgz#19edf7cdc2e7063ee328403c1d895a86dd28f4bb" - integrity sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg== +"@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.4.tgz#4e3822f5522e18ed92611b894dc5db1bc882f39d" + integrity sha512-dgX0P/9wGPJeHFBG+ZmhgE6bmtMt7NP5CRBGyyktpopdk/mW4POnrpQsSLtKI1dwpc+pPLuXHDh6vvskyQE/sw== -"@msgpackr-extract/msgpackr-extract-linux-arm@3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.3.tgz#94fb0543ba2e28766c3fc439cabbe0440ae70159" - integrity sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw== +"@msgpackr-extract/msgpackr-extract-linux-arm@3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.4.tgz#27ec4bc7eb6c311c982a50f1a6e1e1414638a6f8" + integrity sha512-Tg3yX65f5GbtXLkrYEHE5oibZG9epyYWas7FogTTEJeDEF9JlXJzKgXaNhT3UXlTOeA+AfZpYZYZ0uPj7Cfquw== -"@msgpackr-extract/msgpackr-extract-linux-x64@3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.3.tgz#4a0609ab5fe44d07c9c60a11e4484d3c38bbd6e3" - integrity sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg== +"@msgpackr-extract/msgpackr-extract-linux-x64@3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.4.tgz#37317d833c7d01d086f6155fa59c478adb6839f6" + integrity sha512-8TNXMEjJc3QEy7R/x1INhgiU+XakDAFUzBhaz7+Rbrs8NH5UQeHQxxmzsSBJGyV6I1jW79undiQm8tOI+D+8FQ== -"@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.3.tgz#0aa5502d547b57abfc4ac492de68e2006e417242" - integrity sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ== +"@msgpackr-extract/msgpackr-extract-win32-x64@3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.4.tgz#a1c79dcc9ae5f8c02aea8c2f144e5af6a822e5e8" + integrity sha512-CmCXPQrkbwExx3j946/PtHWHbYJiCRBRDl4BlkRQcJB/YOwQxJRTpoo7aTsortjgoJ1x7opzTSxn7C+ASSLVjQ== "@nodable/entities@^2.1.0": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@nodable/entities/-/entities-2.1.1.tgz#ce41931e9b72606d7f0598d665e46e889285d78a" - integrity sha512-Pig3HxDIoMgjdEH8OCf/dkcTmLFjJRjWuq8jSnklu284/TKOPibSRERmOykiwmyXTtv61mP+44f3GMx0tLAyjg== + version "2.2.0" + resolved "https://registry.yarnpkg.com/@nodable/entities/-/entities-2.2.0.tgz#a1d45a992b022591b1c2b03a77935c939375b642" + integrity sha512-9uGyhaQavEUMC8AIddIjau4NsnsXhou+j5sBAGojCM1oxmQpVKTWR/9JxABD6UAv12vpIms55fPZKFQEhG6uBg== "@nodelib/fs.scandir@2.1.5": version "2.1.5" - resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== dependencies: "@nodelib/fs.stat" "2.0.5" @@ -1253,12 +1155,12 @@ "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": version "2.0.5" - resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== "@nodelib/fs.walk@^1.2.3": version "1.2.8" - resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== dependencies: "@nodelib/fs.scandir" "2.1.5" @@ -1266,653 +1168,262 @@ "@pinojs/redact@^0.4.0": version "0.4.0" - resolved "https://registry.npmjs.org/@pinojs/redact/-/redact-0.4.0.tgz" + resolved "https://registry.yarnpkg.com/@pinojs/redact/-/redact-0.4.0.tgz#c3de060dd12640dcc838516aa2a6803cc7b2e9d6" integrity sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg== "@pkgjs/parseargs@^0.11.0": version "0.11.0" - resolved "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== -"@pkgr/core@^0.2.9": - version "0.2.9" - resolved "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz" - integrity sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA== +"@pkgr/core@^0.3.6": + version "0.3.6" + resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.3.6.tgz#3569708bd4be4d8870ba32bf1c456dac81600d97" + integrity sha512-SEeaJLb3qBNF/OaXnaR1NmmBbFYk1zC0ZH/52fATcRPLFg/p791YrcyFFy44Bo9sLaGuSuLp5Q6axbb/O+v/RA== "@repeaterjs/repeater@^3.0.4": - version "3.0.6" - resolved "https://registry.npmjs.org/@repeaterjs/repeater/-/repeater-3.0.6.tgz" - integrity sha512-Javneu5lsuhwNCryN+pXH93VPQ8g0dBX7wItHFgYiwQmzE1sVdg5tWHiOgHywzL2W21XQopa7IwIEnNbmeUJYA== - -"@rolldown/pluginutils@1.0.0-rc.2": - version "1.0.0-rc.2" - resolved "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.2.tgz" - integrity sha512-izyXV/v+cHiRfozX62W9htOAvwMo4/bXKDrQ+vom1L1qRuexPock/7VZDAhnpHCLNejd3NJ6hiab+tO0D44Rgw== - -"@rollup/rollup-android-arm-eabi@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.2.tgz#a19c645c375158cd5c50a344106f0fa18eb821c4" - integrity sha512-dnlp69efPPg6Uaw2dVqzWRfAWRnYVb1XJ8CyyhIbZeaq4CA5/mLeZ1IEt9QqQxmbdvagjLIm2ZL8BxXv5lH4Yw== - -"@rollup/rollup-android-arm64@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.2.tgz#1af19aa9d3ad6d00df2681f59cfcb8bf7499576b" - integrity sha512-OqZTwDRDchGRHHm/hwLOL7uVPB9aUvI0am/eQuWMNyFHf5PSEQmyEeYYheA0EPPKUO/l0uigCp+iaTjoLjVoHg== - -"@rollup/rollup-darwin-arm64@4.60.2": - version "4.60.2" - resolved "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.2.tgz" - integrity sha512-UwRE7CGpvSVEQS8gUMBe1uADWjNnVgP3Iusyda1nSRwNDCsRjnGc7w6El6WLQsXmZTbLZx9cecegumcitNfpmA== - -"@rollup/rollup-darwin-x64@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.2.tgz#28da23d69fe117f5f0ff330a8549e51bd09f1b6a" - integrity sha512-gjEtURKLCC5VXm1I+2i1u9OhxFsKAQJKTVB8WvDAHF+oZlq0GTVFOlTlO1q3AlCTE/DF32c16ESvfgqR7343/g== - -"@rollup/rollup-freebsd-arm64@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.2.tgz#94bacac3190f621de1355922b599f3817786044c" - integrity sha512-Bcl6CYDeAgE70cqZaMojOi/eK63h5Me97ZqAQoh77VPjMysA/4ORQBRGo3rRy45x4MzVlU9uZxs8Uwy7ZaKnBw== - -"@rollup/rollup-freebsd-x64@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.2.tgz#8a0094f533b9fda160b5c90ad9e0c78fca341788" - integrity sha512-LU+TPda3mAE2QB0/Hp5VyeKJivpC6+tlOXd1VMoXV/YFMvk/MNk5iXeBfB4MQGRWyOYVJ01625vjkr0Az98OJQ== - -"@rollup/rollup-linux-arm-gnueabihf@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.2.tgz#3b7e901a555c7245c87f7440979bee0a1ec882bb" - integrity sha512-2QxQrM+KQ7DAW4o22j+XZ6RKdxjLD7BOWTP0Bv0tmjdyhXSsr2Ul1oJDQqh9Zf5qOwTuTc7Ek83mOFaKnodPjg== - -"@rollup/rollup-linux-arm-musleabihf@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.2.tgz#ee9a09b72e8ad764cfd6188b32ff1de528ff7ebe" - integrity sha512-TbziEu2DVsTEOPif2mKWkMeDMLoYjx95oESa9fkQQK7r/Orta0gnkcDpzwufEcAO2BLBsD7mZkXGFqEdMRRwfw== - -"@rollup/rollup-linux-arm64-gnu@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.2.tgz#ba483f4aca9be141171d086dbd01ada6ab03b58d" - integrity sha512-bO/rVDiDUuM2YfuCUwZ1t1cP+/yqjqz+Xf2VtkdppefuOFS2OSeAfgafaHNkFn0t02hEyXngZkxtGqXcXwO8Rg== - -"@rollup/rollup-linux-arm64-musl@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.2.tgz#17b595b790e6df68e91c5d02526fc832a985ce4f" - integrity sha512-hr26p7e93Rl0Za+JwW7EAnwAvKkehh12BU1Llm9Ykiibg4uIr2rbpxG9WCf56GuvidlTG9KiiQT/TXT1yAWxTA== - -"@rollup/rollup-linux-loong64-gnu@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.2.tgz#551718714075a2bfb36a2813c466e3a0e9d56abf" - integrity sha512-pOjB/uSIyDt+ow3k/RcLvUAOGpysT2phDn7TTUB3n75SlIgZzM6NKAqlErPhoFU+npgY3/n+2HYIQVbF70P9/A== - -"@rollup/rollup-linux-loong64-musl@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.2.tgz#ba156ed1243447a3d710972001d5dcfe3827ff3d" - integrity sha512-2/w+q8jszv9Ww1c+6uJT3OwqhdmGP2/4T17cu8WuwyUuuaCDDJ2ojdyYwZzCxx0GcsZBhzi3HmH+J5pZNXnd+Q== - -"@rollup/rollup-linux-ppc64-gnu@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.2.tgz#6a957a709b86ac62ef68e597ac03dbd4336782b1" - integrity sha512-11+aL5vKheYgczxtPVVRhdptAM2H7fcDR5Gw4/bTcteuZBlH4oP9f5s9zYO9aGZvoGeBpqXI/9TZZihZ609wKw== - -"@rollup/rollup-linux-ppc64-musl@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.2.tgz#ca4176b4ad53f3edee3b4bfa6f9ef48ff38f167b" - integrity sha512-i16fokAGK46IVZuV8LIIwMdtqhin9hfYkCh8pf8iC3QU3LpwL+1FSFGej+O7l3E/AoknL6Dclh2oTdnRMpTzFQ== - -"@rollup/rollup-linux-riscv64-gnu@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.2.tgz#4e6b08f72ebeafdb41f3ec433bd228ba8573473b" - integrity sha512-49FkKS6RGQoriDSK/6E2GkAsAuU5kETFCh7pG4yD/ylj9rKhTmO3elsnmBvRD4PgJPds5W2PkhC82aVwmUcJ7A== - -"@rollup/rollup-linux-riscv64-musl@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.2.tgz#a0b8b8580c7680c8086cb3226527e5472253b895" - integrity sha512-mjYNkHPfGpUR00DuM1ZZIgs64Hpf4bWcz9Z41+4Q+pgDx73UwWdAYyf6EG/lRFldmdHHzgrYyge5akFUW0D3mQ== - -"@rollup/rollup-linux-s390x-gnu@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.2.tgz#79fe15b92ce0bae2b609cf26dd158cd3e2b73634" - integrity sha512-ALyvJz965BQk8E9Al/JDKKDLH2kfKFLTGMlgkAbbYtZuJt9LU8DW3ZoDMCtQpXAltZxwBHevXz5u+gf0yA0YoA== - -"@rollup/rollup-linux-x64-gnu@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.2.tgz#6aa8302fa45fd3cbbc510ccd223c9c37bf67e53f" - integrity sha512-UQjrkIdWrKI626Du8lCQ6MJp/6V1LAo2bOK9OTu4mSn8GGXIkPXk/Vsp4bLHCd9Z9Iz2OTEaokUE90VweJgIYQ== - -"@rollup/rollup-linux-x64-musl@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.2.tgz#0c1a5e9799f80c47a66f2c3a5f1a280f38356047" - integrity sha512-bTsRGj6VlSdn/XD4CGyzMnzaBs9bsRxy79eTqTCBsA8TMIEky7qg48aPkvJvFe1HyzQ5oMZdg7AnVlWQSKLTnw== - -"@rollup/rollup-openbsd-x64@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.2.tgz#5f07c863e74fd428794f1dc5749f321b661d1f17" - integrity sha512-6d4Z3534xitaA1FcMWP7mQPq5zGwBmGbhphh2DwaA1aNIXUu3KTOfwrWpbwI4/Gr0uANo7NTtaykFyO2hPuFLg== - -"@rollup/rollup-openharmony-arm64@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.2.tgz#8e0d71324be0f423428b12b25a2eb8ea8e0a7833" - integrity sha512-NetAg5iO2uN7eB8zE5qrZ3CSil+7IJt4WDFLcC75Ymywq1VZVD6qJ6EvNLjZ3rEm6gB7XW5JdT60c6MN35Z85Q== - -"@rollup/rollup-win32-arm64-msvc@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.2.tgz#a553fdf90a785ace6d7501eed6241c468b088999" - integrity sha512-NCYhOotpgWZ5kdxCZsv6Iudx0wX8980Q/oW4pNFNihpBKsDbEA1zpkfxJGC0yugsUuyDZ7gL37dbzwhR0VI7pQ== - -"@rollup/rollup-win32-ia32-msvc@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.2.tgz#0fb04f0a88027fbfd323e25a446debce4773868c" - integrity sha512-RXsaOqXxfoUBQoOgvmmijVxJnW2IGB0eoMO7F8FAjaj0UTywUO/luSqimWBJn04WNgUkeNhh7fs7pESXajWmkg== - -"@rollup/rollup-win32-x64-gnu@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.2.tgz#aaa9e36dbdc0f0e397e5966dcce1b4285354ede2" - integrity sha512-qdAzEULD+/hzObedtmV6iBpdL5TIbKVztGiK7O3/KYSf+HIzU257+MX1EXJcyIiDbMAqmbwaufcYPvyRryeZtA== - -"@rollup/rollup-win32-x64-msvc@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.2.tgz#3418dcf1388f2abd6b0ccc08fe1ef205ae76d696" - integrity sha512-Nd/SgG27WoA9e+/TdK74KnHz852TLa94ovOYySo/yMPuTmpckK/jIF2jSwS3g7ELSKXK13/cVdmg1Z/DaCWKxA== - -"@smithy/chunked-blob-reader-native@^4.2.3": - version "4.2.3" - resolved "https://registry.npmjs.org/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-4.2.3.tgz" - integrity sha512-jA5k5Udn7Y5717L86h4EIv06wIr3xn8GM1qHRi/Nf31annXcXHJjBKvgztnbn2TxH3xWrPBfgwHsOwZf0UmQWw== - dependencies: - "@smithy/util-base64" "^4.3.2" - tslib "^2.6.2" - -"@smithy/chunked-blob-reader@^5.2.2": - version "5.2.2" - resolved "https://registry.npmjs.org/@smithy/chunked-blob-reader/-/chunked-blob-reader-5.2.2.tgz" - integrity sha512-St+kVicSyayWQca+I1rGitaOEH6uKgE8IUWoYnnEX26SWdWQcL6LvMSD19Lg+vYHKdT9B2Zuu7rd3i6Wnyb/iw== - dependencies: - tslib "^2.6.2" - -"@smithy/config-resolver@^4.4.13": - version "4.4.13" - resolved "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-4.4.13.tgz" - integrity sha512-iIzMC5NmOUP6WL6o8iPBjFhUhBZ9pPjpUpQYWMUFQqKyXXzOftbfK8zcQCz/jFV1Psmf05BK5ypx4K2r4Tnwdg== - dependencies: - "@smithy/node-config-provider" "^4.3.12" - "@smithy/types" "^4.13.1" - "@smithy/util-config-provider" "^4.2.2" - "@smithy/util-endpoints" "^3.3.3" - "@smithy/util-middleware" "^4.2.12" - tslib "^2.6.2" - -"@smithy/core@^3.23.13": - version "3.23.13" - resolved "https://registry.npmjs.org/@smithy/core/-/core-3.23.13.tgz" - integrity sha512-J+2TT9D6oGsUVXVEMvz8h2EmdVnkBiy2auCie4aSJMvKlzUtO5hqjEzXhoCUkIMo7gAYjbQcN0g/MMSXEhDs1Q== - dependencies: - "@smithy/protocol-http" "^5.3.12" - "@smithy/types" "^4.13.1" - "@smithy/url-parser" "^4.2.12" - "@smithy/util-base64" "^4.3.2" - "@smithy/util-body-length-browser" "^4.2.2" - "@smithy/util-middleware" "^4.2.12" - "@smithy/util-stream" "^4.5.21" - "@smithy/util-utf8" "^4.2.2" - "@smithy/uuid" "^1.1.2" - tslib "^2.6.2" - -"@smithy/credential-provider-imds@^4.2.12": - version "4.2.12" - resolved "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.2.12.tgz" - integrity sha512-cr2lR792vNZcYMriSIj+Um3x9KWrjcu98kn234xA6reOAFMmbRpQMOv8KPgEmLLtx3eldU6c5wALKFqNOhugmg== - dependencies: - "@smithy/node-config-provider" "^4.3.12" - "@smithy/property-provider" "^4.2.12" - "@smithy/types" "^4.13.1" - "@smithy/url-parser" "^4.2.12" - tslib "^2.6.2" + version "3.1.0" + resolved "https://registry.yarnpkg.com/@repeaterjs/repeater/-/repeater-3.1.0.tgz#312b20a655e5b3ebfe8b1e04ec7df567bcb48d87" + integrity sha512-TaoVksZRSx2KWYYpyLQtMQXXeS98VsgZImzW65xmiVgbYhXLk+aEsmzPLirqVuE4/XuUapH2iMtxUzaBNDzdSQ== -"@smithy/eventstream-codec@^4.2.12": - version "4.2.12" - resolved "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-4.2.12.tgz" - integrity sha512-FE3bZdEl62ojmy8x4FHqxq2+BuOHlcxiH5vaZ6aqHJr3AIZzwF5jfx8dEiU/X0a8RboyNDjmXjlbr8AdEyLgiA== +"@rolldown/pluginutils@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz#e3fcee093fbb5ce765e1ad088ff4de2889f6f9be" + integrity sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw== + +"@rollup/rollup-android-arm-eabi@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.62.2.tgz#5e9849b661c2229cf967a08dbe2dbbe9e8c991e5" + integrity sha512-6o7ZLZK+BeenkZCFNDXqpbjw9bD6nuWonvS/lwQJp7NoVVxm6p3qE7qQ5jGuBjiFsgvqjD8mZAU5oWxTmbOeOg== + +"@rollup/rollup-android-arm64@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.62.2.tgz#5b0699ee5dd484b222c9ed74aff43c91ea8b17f8" + integrity sha512-BaH7BllCACHoH1LguOU56UItGfUWjujlO65kS9LAodViaN4bwIKd7oeW/ZHJ/4ljr/7MIiENnNy3HJ0zXv8Zkw== + +"@rollup/rollup-darwin-arm64@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.62.2.tgz#8bc52c9d7a3ce8d0533c351a9c935de781daa06f" + integrity sha512-v39RCCvj4He82I9sFmk+M1VZ0PLM9sfsLVikjfx2hYBNALhrrOR2D3JjQA6AhlaSOgcR+RzrKY7e1+bT6SUO/A== + +"@rollup/rollup-darwin-x64@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.62.2.tgz#ba2ef3e8fb310f0af35588f270cfa5aa96e48764" + integrity sha512-yl0y2vq3S3lHeuXhEdss6TWfKW8vkujImO12tn4ZkG/4oghr09LvdYm2RElVjokTQiUvDUGXLGsYeLqUMCKpGA== + +"@rollup/rollup-freebsd-arm64@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.62.2.tgz#93b10bdbfe8ada226b8bc0c02ef6b7f544474d96" + integrity sha512-tT4pvt4qXD+vEoezupCWi+a1F0vvDiksiHc+PxRlYTOH1I6/X4id9jPxTP+Fg+545euaFT1jJVs4CEdHZAU1vw== + +"@rollup/rollup-freebsd-x64@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.62.2.tgz#3e8aa38ef3c9c300946871e3fdbb0c30e0a20f86" + integrity sha512-6nU5F2wCW+qvCBhTn1pdIU3bzsIoF7EUwsCDRxilWGprQR6yd508YnH9+OKFCwpfS8pjZqDUmnCAr7exax0XCg== + +"@rollup/rollup-linux-arm-gnueabihf@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.62.2.tgz#1d7994384bb0ad1bc41921b506e1642d4f9d7fc3" + integrity sha512-n1GJHPOvpIfhi3TmrCeh6S6URt9BFCt0KQE3qvexyGCTAKpR4Lg+eWvNZEqu7epxwus/8ElT3hacYEucm49SZg== + +"@rollup/rollup-linux-arm-musleabihf@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.62.2.tgz#a6540f47cf844a56b80ca9ff95d2acdfb2cef97b" + integrity sha512-JqgflS8wEB+UXV/vS1RpRbifGBeN4D5lz8D8oOFbFZw4vedvdOgCFAjfBmIMdW3yL10XpQQ0Ambepw6MXrhOnA== + +"@rollup/rollup-linux-arm64-gnu@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.62.2.tgz#404f2045651840cbf48da91ba6d0f490f0bc2cbf" + integrity sha512-wnFJkogWvN4jm/hQRF2UBaeUmk20j5+DmHvoyWii2b8HJDyvz1MF2OU/6ynXt2KR63rbZLWkFpoytpdc/yBuSA== + +"@rollup/rollup-linux-arm64-musl@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.62.2.tgz#a3404ffddf7b474b48c99b9c893b6247bb765ba5" + integrity sha512-HVu2bp0zhvJ8xHEV9+UUs7S90VadmBSY3LcIMvozbPo4AuMGDWlz3ymHLHZPX4hR67TKTt8Qp5PJ5RBg/i+RMQ== + +"@rollup/rollup-linux-loong64-gnu@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.62.2.tgz#e8aac6d549b377945e349882f199b7c8eb75ca38" + integrity sha512-mQqqAV8QaoSgr9I2fKDLY2BAVvmKjWoGiu/cSYQonsLvtqwEn1E4QYfnCOcp5zoEqNhsDYin1s6jx/VJmrxlZg== + +"@rollup/rollup-linux-loong64-musl@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.62.2.tgz#6e2e44ea50310b3a582078a915e5feb879c820d4" + integrity sha512-IxKLoxCQ2IWi6bT2akyDUBGsOImDKB+sPp4EsTmwFQ/fMwpCKm8uLSSgP/Kx/QYUgKis6SEZ5/Nlhup0DIA0PQ== + +"@rollup/rollup-linux-ppc64-gnu@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.62.2.tgz#6898302da6d77a0537cde64b2b4c6b60659bd110" + integrity sha512-Mk5ha2RQSgyFfmYYLkBpPnUk8D8FriBxesO1u9O75X0mHgXL1UQcH5Itl2lurWL2tj0RxV9b9tJgipac0hRY9A== + +"@rollup/rollup-linux-ppc64-musl@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.62.2.tgz#333717c95dd5a66bef8f63e7ef8a9fd845fd18d0" + integrity sha512-CjvEnqJL/0/TQ3TXX3OPIJ/kmBellrWd4heXUmHeJlTnmwjKpSJzoehLaL6Xk0ZnMHBu9dZuFADNOrtjF4v+2w== + +"@rollup/rollup-linux-riscv64-gnu@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.62.2.tgz#81bc06ba380352004d01f4826eb7cdccefa05bad" + integrity sha512-1SiZbzwdkaDURsew/tSOrooKiYy7EQGT6m8ufavAi9NEyQb/6VuIxFXAL1fqa4iZe3g4NbNk4P7J32z2tw5Mgg== + +"@rollup/rollup-linux-riscv64-musl@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.62.2.tgz#95a7cd39de21389ad6788a5284eaaa738e29ca4c" + integrity sha512-nQts12zJ3NQRoE6uYljOH89v7szzLDvG2JD/vsX+vGXU8w/At1GowTZ5/7qeFQ8m7L55rpR8Okugnuo5bgjy2Q== + +"@rollup/rollup-linux-s390x-gnu@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.62.2.tgz#06e6db2ec1bc48b5374c7923ef83c2eb024b2452" + integrity sha512-E9/ll019jhPIJgpzfZoIkBGhcz+kKNgVWYRY0zr9srBdPPFVpvOKW8VaJKUbeK+eZXyQF9ltME+Kk6affeaPgg== + +"@rollup/rollup-linux-x64-gnu@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.62.2.tgz#5dc818988285e09e88790c6462def72413df2da3" + integrity sha512-5BqxR/pshjey51iliyzTD5Xi3EN0aLmQ2lZ3lvefVV9c82BvrLo2/6OT55iifpWBufs6kdwWbuOKS841DrmK9A== + +"@rollup/rollup-linux-x64-musl@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.62.2.tgz#2080f4a93349e9afd34be6fc1a37e01fc8bfc80f" + integrity sha512-uNN83XxQrRAh/w0/pmAfibcwyb6YWt4gP+dpnQKPVJshAloQ785ii8CT8ZCIxkGg9opVsvAlGhFitSm6D1Jjpg== + +"@rollup/rollup-openbsd-x64@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.62.2.tgz#21d64a8acb66221724b923e51af5333df1af044b" + integrity sha512-srjEIxSH3LRnJN6THczDHWQplqEMFiAJrTab0msUryh9kwNpkICf3Ea6q6MN/2cZwRFUNx5w+h6Hpi4QuHS6Zg== + +"@rollup/rollup-openharmony-arm64@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.62.2.tgz#8e0fcd9d02141e337b4c5b5cff576cb9a76b1ba0" + integrity sha512-8hOJnxgbyObnCm5AlRA3A931xX19xq80RjVTKgJOvEKWqJruP/Uf12IbAOaDjjEXYRewwHLfmF0YRIdK3OwKWA== + +"@rollup/rollup-win32-arm64-msvc@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.62.2.tgz#bdb4cc4efd58efe808203347f0f5463f0ea16e52" + integrity sha512-mmF4AY1i0hG/bLWUctUq59gtmgaSIRa3cu/A3JFRp/sCNEme2bgDEiDS22P9FbnJB8NJNF4jPJiSP5RHQpUTDg== + +"@rollup/rollup-win32-ia32-msvc@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.62.2.tgz#dbaebde5afd24eae0eefe915d901632e7cb59860" + integrity sha512-DZgkknc6jhHrk46V25vbAM0zZkyP0nSDkJB8/dRkLTxv470dOmWDqGoEJl/9A0dFfS7yE3REOwNDxpHwSLSt0Q== + +"@rollup/rollup-win32-x64-gnu@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.62.2.tgz#84109e85fea5f8f1353499f96578fdc2a0e8b138" + integrity sha512-T6xr6ucWSFto+VGajA8YH26LdpHRuP4YLHEKAtCWvJDOlnmWcDZVCI2Jmjr+IFHDlt2zRaTAKE4tfjTaWLgJBg== + +"@rollup/rollup-win32-x64-msvc@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.62.2.tgz#3671ce3f9b928d5c01f879792d5c0b60ae14d4ad" + integrity sha512-BfzEnDJOt9T8M989/lA37EcJgat01wLRnoi5dQf3QzOH7jzpqTAzdDbVfRljVr5r+jzKqpbHeyOfAaXxAd0PAA== + +"@smithy/core@^3.24.6", "@smithy/core@^3.25.1": + version "3.25.1" + resolved "https://registry.yarnpkg.com/@smithy/core/-/core-3.25.1.tgz#93d342dd50a82973fcbb7b562f17a6f0e2a20009" + integrity sha512-zpDbpXBCBsxfLtG2GEUyfgvHvSFrw5CwDZSNzL0v52gx/c3oPlPbm+7W7num8xs6vyiUBn+bvYPHcQDOXZynCQ== dependencies: "@aws-crypto/crc32" "5.2.0" - "@smithy/types" "^4.13.1" - "@smithy/util-hex-encoding" "^4.2.2" + "@smithy/types" "^4.15.0" tslib "^2.6.2" -"@smithy/eventstream-serde-browser@^4.2.12": - version "4.2.12" - resolved "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-4.2.12.tgz" - integrity sha512-XUSuMxlTxV5pp4VpqZf6Sa3vT/Q75FVkLSpSSE3KkWBvAQWeuWt1msTv8fJfgA4/jcJhrbrbMzN1AC/hvPmm5A== - dependencies: - "@smithy/eventstream-serde-universal" "^4.2.12" - "@smithy/types" "^4.13.1" - tslib "^2.6.2" - -"@smithy/eventstream-serde-config-resolver@^4.3.12": - version "4.3.12" - resolved "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-4.3.12.tgz" - integrity sha512-7epsAZ3QvfHkngz6RXQYseyZYHlmWXSTPOfPmXkiS+zA6TBNo1awUaMFL9vxyXlGdoELmCZyZe1nQE+imbmV+Q== - dependencies: - "@smithy/types" "^4.13.1" - tslib "^2.6.2" - -"@smithy/eventstream-serde-node@^4.2.12": - version "4.2.12" - resolved "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-4.2.12.tgz" - integrity sha512-D1pFuExo31854eAvg89KMn9Oab/wEeJR6Buy32B49A9Ogdtx5fwZPqBHUlDzaCDpycTFk2+fSQgX689Qsk7UGA== - dependencies: - "@smithy/eventstream-serde-universal" "^4.2.12" - "@smithy/types" "^4.13.1" - tslib "^2.6.2" - -"@smithy/eventstream-serde-universal@^4.2.12": - version "4.2.12" - resolved "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-4.2.12.tgz" - integrity sha512-+yNuTiyBACxOJUTvbsNsSOfH9G9oKbaJE1lNL3YHpGcuucl6rPZMi3nrpehpVOVR2E07YqFFmtwpImtpzlouHQ== - dependencies: - "@smithy/eventstream-codec" "^4.2.12" - "@smithy/types" "^4.13.1" - tslib "^2.6.2" - -"@smithy/fetch-http-handler@^5.3.15": - version "5.3.15" - resolved "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.3.15.tgz" - integrity sha512-T4jFU5N/yiIfrtrsb9uOQn7RdELdM/7HbyLNr6uO/mpkj1ctiVs7CihVr51w4LyQlXWDpXFn4BElf1WmQvZu/A== - dependencies: - "@smithy/protocol-http" "^5.3.12" - "@smithy/querystring-builder" "^4.2.12" - "@smithy/types" "^4.13.1" - "@smithy/util-base64" "^4.3.2" - tslib "^2.6.2" - -"@smithy/hash-blob-browser@^4.2.13": - version "4.2.13" - resolved "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-4.2.13.tgz" - integrity sha512-YrF4zWKh+ghLuquldj6e/RzE3xZYL8wIPfkt0MqCRphVICjyyjH8OwKD7LLlKpVEbk4FLizFfC1+gwK6XQdR3g== - dependencies: - "@smithy/chunked-blob-reader" "^5.2.2" - "@smithy/chunked-blob-reader-native" "^4.2.3" - "@smithy/types" "^4.13.1" - tslib "^2.6.2" - -"@smithy/hash-node@^4.2.12": - version "4.2.12" - resolved "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-4.2.12.tgz" - integrity sha512-QhBYbGrbxTkZ43QoTPrK72DoYviDeg6YKDrHTMJbbC+A0sml3kSjzFtXP7BtbyJnXojLfTQldGdUR0RGD8dA3w== - dependencies: - "@smithy/types" "^4.13.1" - "@smithy/util-buffer-from" "^4.2.2" - "@smithy/util-utf8" "^4.2.2" - tslib "^2.6.2" - -"@smithy/hash-stream-node@^4.2.12": - version "4.2.12" - resolved "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-4.2.12.tgz" - integrity sha512-O3YbmGExeafuM/kP7Y8r6+1y0hIh3/zn6GROx0uNlB54K9oihAL75Qtc+jFfLNliTi6pxOAYZrRKD9A7iA6UFw== +"@smithy/credential-provider-imds@^4.3.7": + version "4.4.1" + resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-4.4.1.tgz#159ac9a8af797c7951c73ad4840510acb2b678e7" + integrity sha512-TSAF5NHgxEsllbErYWbK8aLnl5L601NGc5VYJlSPsKnf3YlkhdoBN+geGcaU00oiw2OK3QO5LA3QNXiiWhCidQ== dependencies: - "@smithy/types" "^4.13.1" - "@smithy/util-utf8" "^4.2.2" + "@smithy/core" "^3.25.1" + "@smithy/types" "^4.15.0" tslib "^2.6.2" -"@smithy/invalid-dependency@^4.2.12": - version "4.2.12" - resolved "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-4.2.12.tgz" - integrity sha512-/4F1zb7Z8LOu1PalTdESFHR0RbPwHd3FcaG1sI3UEIriQTWakysgJr65lc1jj6QY5ye7aFsisajotH6UhWfm/g== +"@smithy/fetch-http-handler@^5.4.6": + version "5.5.1" + resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-5.5.1.tgz#ac333e1a210f08fd50dd1a74807420981ba7f531" + integrity sha512-96JrD1q71anokymx9Iblb+zKmNQYNstlV/25A9ZYIJ2A0rp1r7/GZAIm0bDWSmVvz3DpNOCZuabzsiL+w0UHhw== dependencies: - "@smithy/types" "^4.13.1" + "@smithy/core" "^3.25.1" + "@smithy/types" "^4.15.0" tslib "^2.6.2" "@smithy/is-array-buffer@^2.2.0": version "2.2.0" - resolved "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz#f84f0d9f9a36601a9ca9381688bd1b726fd39111" integrity sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA== dependencies: tslib "^2.6.2" -"@smithy/is-array-buffer@^4.2.2": - version "4.2.2" - resolved "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-4.2.2.tgz" - integrity sha512-n6rQ4N8Jj4YTQO3YFrlgZuwKodf4zUFs7EJIWH86pSCWBaAtAGBFfCM7Wx6D2bBJ2xqFNxGBSrUWswT3M0VJow== - dependencies: - tslib "^2.6.2" - -"@smithy/md5-js@^4.2.12": - version "4.2.12" - resolved "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-4.2.12.tgz" - integrity sha512-W/oIpHCpWU2+iAkfZYyGWE+qkpuf3vEXHLxQQDx9FPNZTTdnul0dZ2d/gUFrtQ5je1G2kp4cjG0/24YueG2LbQ== - dependencies: - "@smithy/types" "^4.13.1" - "@smithy/util-utf8" "^4.2.2" - tslib "^2.6.2" - -"@smithy/middleware-content-length@^4.2.12": - version "4.2.12" - resolved "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-4.2.12.tgz" - integrity sha512-YE58Yz+cvFInWI/wOTrB+DbvUVz/pLn5mC5MvOV4fdRUc6qGwygyngcucRQjAhiCEbmfLOXX0gntSIcgMvAjmA== - dependencies: - "@smithy/protocol-http" "^5.3.12" - "@smithy/types" "^4.13.1" - tslib "^2.6.2" - "@smithy/middleware-endpoint@^4.4.28": - version "4.4.28" - resolved "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.4.28.tgz" - integrity sha512-p1gfYpi91CHcs5cBq982UlGlDrxoYUX6XdHSo91cQ2KFuz6QloHosO7Jc60pJiVmkWrKOV8kFYlGFFbQ2WUKKQ== - dependencies: - "@smithy/core" "^3.23.13" - "@smithy/middleware-serde" "^4.2.16" - "@smithy/node-config-provider" "^4.3.12" - "@smithy/shared-ini-file-loader" "^4.4.7" - "@smithy/types" "^4.13.1" - "@smithy/url-parser" "^4.2.12" - "@smithy/util-middleware" "^4.2.12" - tslib "^2.6.2" - -"@smithy/middleware-retry@^4.4.46": - version "4.4.46" - resolved "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.4.46.tgz" - integrity sha512-SpvWNNOPOrKQGUqZbEPO+es+FRXMWvIyzUKUOYdDgdlA6BdZj/R58p4umoQ76c2oJC44PiM7mKizyyex1IJzow== + version "4.6.1" + resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-4.6.1.tgz#3b6777e4971101794eb58949041ef2603f06a5a8" + integrity sha512-TgyNn9dd8oC87+9M5Iarpf0Nr8UTtlJW0FwEMtZHc6CbhD2NZDv9kYapnnLPmhdIOvX/XDatn26Cl9UhdZJsNQ== dependencies: - "@smithy/node-config-provider" "^4.3.12" - "@smithy/protocol-http" "^5.3.12" - "@smithy/service-error-classification" "^4.2.12" - "@smithy/smithy-client" "^4.12.8" - "@smithy/types" "^4.13.1" - "@smithy/util-middleware" "^4.2.12" - "@smithy/util-retry" "^4.2.13" - "@smithy/uuid" "^1.1.2" + "@smithy/core" "^3.25.1" tslib "^2.6.2" -"@smithy/middleware-serde@^4.2.16": - version "4.2.16" - resolved "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-4.2.16.tgz" - integrity sha512-beqfV+RZ9RSv+sQqor3xroUUYgRFCGRw6niGstPG8zO9LgTl0B0MCucxjmrH/2WwksQN7UUgI7KNANoZv+KALA== +"@smithy/node-http-handler@^4.7.6": + version "4.8.1" + resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-4.8.1.tgz#7202ab67a2d48994e9b49a3a8cd5e1d710dbe359" + integrity sha512-emtXvoky671puri18ETf64AFIQUGIEA093F2drXpBgB0OGnBLjcwNR3CA2mYu62IAqNsS56xa5lnTxAgPq7cjw== dependencies: - "@smithy/core" "^3.23.13" - "@smithy/protocol-http" "^5.3.12" - "@smithy/types" "^4.13.1" - tslib "^2.6.2" - -"@smithy/middleware-stack@^4.2.12": - version "4.2.12" - resolved "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-4.2.12.tgz" - integrity sha512-kruC5gRHwsCOuyCd4ouQxYjgRAym2uDlCvQ5acuMtRrcdfg7mFBg6blaxcJ09STpt3ziEkis6bhg1uwrWU7txw== - dependencies: - "@smithy/types" "^4.13.1" - tslib "^2.6.2" - -"@smithy/node-config-provider@^4.3.12": - version "4.3.12" - resolved "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-4.3.12.tgz" - integrity sha512-tr2oKX2xMcO+rBOjobSwVAkV05SIfUKz8iI53rzxEmgW3GOOPOv0UioSDk+J8OpRQnpnhsO3Af6IEBabQBVmiw== - dependencies: - "@smithy/property-provider" "^4.2.12" - "@smithy/shared-ini-file-loader" "^4.4.7" - "@smithy/types" "^4.13.1" - tslib "^2.6.2" - -"@smithy/node-http-handler@^4.5.1": - version "4.5.1" - resolved "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.5.1.tgz" - integrity sha512-ejjxdAXjkPIs9lyYyVutOGNOraqUE9v/NjGMKwwFrfOM354wfSD8lmlj8hVwUzQmlLLF4+udhfCX9Exnbmvfzw== - dependencies: - "@smithy/protocol-http" "^5.3.12" - "@smithy/querystring-builder" "^4.2.12" - "@smithy/types" "^4.13.1" - tslib "^2.6.2" - -"@smithy/property-provider@^4.2.12": - version "4.2.12" - resolved "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-4.2.12.tgz" - integrity sha512-jqve46eYU1v7pZ5BM+fmkbq3DerkSluPr5EhvOcHxygxzD05ByDRppRwRPPpFrsFo5yDtCYLKu+kreHKVrvc7A== - dependencies: - "@smithy/types" "^4.13.1" + "@smithy/core" "^3.25.1" + "@smithy/types" "^4.15.0" tslib "^2.6.2" "@smithy/protocol-http@^5.3.12": - version "5.3.12" - resolved "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-5.3.12.tgz" - integrity sha512-fit0GZK9I1xoRlR4jXmbLhoN0OdEpa96ul8M65XdmXnxXkuMxM0Y8HDT0Fh0Xb4I85MBvBClOzgSrV1X2s1Hxw== - dependencies: - "@smithy/types" "^4.13.1" - tslib "^2.6.2" - -"@smithy/querystring-builder@^4.2.12": - version "4.2.12" - resolved "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-4.2.12.tgz" - integrity sha512-6wTZjGABQufekycfDGMEB84BgtdOE/rCVTov+EDXQ8NHKTUNIp/j27IliwP7tjIU9LR+sSzyGBOXjeEtVgzCHg== - dependencies: - "@smithy/types" "^4.13.1" - "@smithy/util-uri-escape" "^4.2.2" - tslib "^2.6.2" - -"@smithy/querystring-parser@^4.2.12": - version "4.2.12" - resolved "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-4.2.12.tgz" - integrity sha512-P2OdvrgiAKpkPNKlKUtWbNZKB1XjPxM086NeVhK+W+wI46pIKdWBe5QyXvhUm3MEcyS/rkLvY8rZzyUdmyDZBw== - dependencies: - "@smithy/types" "^4.13.1" - tslib "^2.6.2" - -"@smithy/service-error-classification@^4.2.12": - version "4.2.12" - resolved "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-4.2.12.tgz" - integrity sha512-LlP29oSQN0Tw0b6D0Xo6BIikBswuIiGYbRACy5ujw/JgWSzTdYj46U83ssf6Ux0GyNJVivs2uReU8pt7Eu9okQ== - dependencies: - "@smithy/types" "^4.13.1" - -"@smithy/shared-ini-file-loader@^4.4.7": - version "4.4.7" - resolved "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.4.7.tgz" - integrity sha512-HrOKWsUb+otTeo1HxVWeEb99t5ER1XrBi/xka2Wv6NVmTbuCUC1dvlrksdvxFtODLBjsC+PHK+fuy2x/7Ynyiw== + version "5.5.1" + resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-5.5.1.tgz#7234afacc8246ab7cd1900b4b91fc297bc7f0cce" + integrity sha512-GRQofBqr/pPNjR04mU0JjdjsbV8F33KCxSHMFXBb2mWJXxyEalNe814Y4cFd4Efd5tNucaOc31L3/8wXlymjfg== dependencies: - "@smithy/types" "^4.13.1" + "@smithy/core" "^3.25.1" tslib "^2.6.2" -"@smithy/signature-v4@^5.3.12": - version "5.3.12" - resolved "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.3.12.tgz" - integrity sha512-B/FBwO3MVOL00DaRSXfXfa/TRXRheagt/q5A2NM13u7q+sHS59EOVGQNfG7DkmVtdQm5m3vOosoKAXSqn/OEgw== +"@smithy/signature-v4@^5.4.6": + version "5.5.1" + resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-5.5.1.tgz#e669088e22ded3cebc296b40e6b28cbfb37254dc" + integrity sha512-X9rVls3En0z3NtrmguTmpRM0/NqtWUxBjal6fcAkwtsub+gOdLZ6kD+V7xhUgFMGdG14bHbZ7M5QjaRI1+DatQ== dependencies: - "@smithy/is-array-buffer" "^4.2.2" - "@smithy/protocol-http" "^5.3.12" - "@smithy/types" "^4.13.1" - "@smithy/util-hex-encoding" "^4.2.2" - "@smithy/util-middleware" "^4.2.12" - "@smithy/util-uri-escape" "^4.2.2" - "@smithy/util-utf8" "^4.2.2" + "@smithy/core" "^3.25.1" + "@smithy/types" "^4.15.0" tslib "^2.6.2" "@smithy/smithy-client@^4.12.8": - version "4.12.8" - resolved "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.12.8.tgz" - integrity sha512-aJaAX7vHe5i66smoSSID7t4rKY08PbD8EBU7DOloixvhOozfYWdcSYE4l6/tjkZ0vBZhGjheWzB2mh31sLgCMA== - dependencies: - "@smithy/core" "^3.23.13" - "@smithy/middleware-endpoint" "^4.4.28" - "@smithy/middleware-stack" "^4.2.12" - "@smithy/protocol-http" "^5.3.12" - "@smithy/types" "^4.13.1" - "@smithy/util-stream" "^4.5.21" - tslib "^2.6.2" - -"@smithy/types@^4.13.1": - version "4.13.1" - resolved "https://registry.npmjs.org/@smithy/types/-/types-4.13.1.tgz" - integrity sha512-787F3yzE2UiJIQ+wYW1CVg2odHjmaWLGksnKQHUrK/lYZSEcy1msuLVvxaR/sI2/aDe9U+TBuLsXnr3vod1g0g== + version "4.14.1" + resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-4.14.1.tgz#2da1ee27add4ba67551e3b9f846c00b6a5a626dd" + integrity sha512-/GsNFh1enYQB4w3x1+ZHR3IFtEya3UlcyF/8+0GUX6qObxPsm8uA4EHzopmcO5Z6DjxLwjAOco+1wwCr9mis0A== dependencies: + "@smithy/core" "^3.25.1" + "@smithy/types" "^4.15.0" tslib "^2.6.2" -"@smithy/url-parser@^4.2.12": - version "4.2.12" - resolved "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-4.2.12.tgz" - integrity sha512-wOPKPEpso+doCZGIlr+e1lVI6+9VAKfL4kZWFgzVgGWY2hZxshNKod4l2LXS3PRC9otH/JRSjtEHqQ/7eLciRA== - dependencies: - "@smithy/querystring-parser" "^4.2.12" - "@smithy/types" "^4.13.1" - tslib "^2.6.2" - -"@smithy/util-base64@^4.3.2": - version "4.3.2" - resolved "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-4.3.2.tgz" - integrity sha512-XRH6b0H/5A3SgblmMa5ErXQ2XKhfbQB+Fm/oyLZ2O2kCUrwgg55bU0RekmzAhuwOjA9qdN5VU2BprOvGGUkOOQ== - dependencies: - "@smithy/util-buffer-from" "^4.2.2" - "@smithy/util-utf8" "^4.2.2" - tslib "^2.6.2" - -"@smithy/util-body-length-browser@^4.2.2": - version "4.2.2" - resolved "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-4.2.2.tgz" - integrity sha512-JKCrLNOup3OOgmzeaKQwi4ZCTWlYR5H4Gm1r2uTMVBXoemo1UEghk5vtMi1xSu2ymgKVGW631e2fp9/R610ZjQ== - dependencies: - tslib "^2.6.2" - -"@smithy/util-body-length-node@^4.2.3": - version "4.2.3" - resolved "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-4.2.3.tgz" - integrity sha512-ZkJGvqBzMHVHE7r/hcuCxlTY8pQr1kMtdsVPs7ex4mMU+EAbcXppfo5NmyxMYi2XU49eqaz56j2gsk4dHHPG/g== +"@smithy/types@^4.13.1", "@smithy/types@^4.14.3", "@smithy/types@^4.15.0": + version "4.15.0" + resolved "https://registry.yarnpkg.com/@smithy/types/-/types-4.15.0.tgz#0346065c3e810755428df89c9a84427969931357" + integrity sha512-Z5TAOxygoFvybJV3igo5SloFflSokHx2hu1eFA+DxDTcn+FtKxUSui+rbTRG1pAafMA888Z3MVvCWUuvCrTXjg== dependencies: tslib "^2.6.2" "@smithy/util-buffer-from@^2.2.0": version "2.2.0" - resolved "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz#6fc88585165ec73f8681d426d96de5d402021e4b" integrity sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA== dependencies: "@smithy/is-array-buffer" "^2.2.0" tslib "^2.6.2" -"@smithy/util-buffer-from@^4.2.2": - version "4.2.2" - resolved "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-4.2.2.tgz" - integrity sha512-FDXD7cvUoFWwN6vtQfEta540Y/YBe5JneK3SoZg9bThSoOAC/eGeYEua6RkBgKjGa/sz6Y+DuBZj3+YEY21y4Q== - dependencies: - "@smithy/is-array-buffer" "^4.2.2" - tslib "^2.6.2" - -"@smithy/util-config-provider@^4.2.2": - version "4.2.2" - resolved "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-4.2.2.tgz" - integrity sha512-dWU03V3XUprJwaUIFVv4iOnS1FC9HnMHDfUrlNDSh4315v0cWyaIErP8KiqGVbf5z+JupoVpNM7ZB3jFiTejvQ== - dependencies: - tslib "^2.6.2" - -"@smithy/util-defaults-mode-browser@^4.3.44": - version "4.3.44" - resolved "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.44.tgz" - integrity sha512-eZg6XzaCbVr2S5cAErU5eGBDaOVTuTo1I65i4tQcHENRcZ8rMWhQy1DaIYUSLyZjsfXvmCqZrstSMYyGFocvHA== - dependencies: - "@smithy/property-provider" "^4.2.12" - "@smithy/smithy-client" "^4.12.8" - "@smithy/types" "^4.13.1" - tslib "^2.6.2" - -"@smithy/util-defaults-mode-node@^4.2.48": - version "4.2.48" - resolved "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.48.tgz" - integrity sha512-FqOKTlqSaoV3nzO55pMs5NBnZX8EhoI0DGmn9kbYeXWppgHD6dchyuj2HLqp4INJDJbSrj6OFYJkAh/WhSzZPg== - dependencies: - "@smithy/config-resolver" "^4.4.13" - "@smithy/credential-provider-imds" "^4.2.12" - "@smithy/node-config-provider" "^4.3.12" - "@smithy/property-provider" "^4.2.12" - "@smithy/smithy-client" "^4.12.8" - "@smithy/types" "^4.13.1" - tslib "^2.6.2" - -"@smithy/util-endpoints@^3.3.3": - version "3.3.3" - resolved "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-3.3.3.tgz" - integrity sha512-VACQVe50j0HZPjpwWcjyT51KUQ4AnsvEaQ2lKHOSL4mNLD0G9BjEniQ+yCt1qqfKfiAHRAts26ud7hBjamrwig== - dependencies: - "@smithy/node-config-provider" "^4.3.12" - "@smithy/types" "^4.13.1" - tslib "^2.6.2" - -"@smithy/util-hex-encoding@^4.2.2": - version "4.2.2" - resolved "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-4.2.2.tgz" - integrity sha512-Qcz3W5vuHK4sLQdyT93k/rfrUwdJ8/HZ+nMUOyGdpeGA1Wxt65zYwi3oEl9kOM+RswvYq90fzkNDahPS8K0OIg== - dependencies: - tslib "^2.6.2" - -"@smithy/util-middleware@^4.2.12": - version "4.2.12" - resolved "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-4.2.12.tgz" - integrity sha512-Er805uFUOvgc0l8nv0e0su0VFISoxhJ/AwOn3gL2NWNY2LUEldP5WtVcRYSQBcjg0y9NfG8JYrCJaYDpupBHJQ== - dependencies: - "@smithy/types" "^4.13.1" - tslib "^2.6.2" - -"@smithy/util-retry@^4.2.13": - version "4.2.13" - resolved "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-4.2.13.tgz" - integrity sha512-qQQsIvL0MGIbUjeSrg0/VlQ3jGNKyM3/2iU3FPNgy01z+Sp4OvcaxbgIoFOTvB61ZoohtutuOvOcgmhbD0katQ== - dependencies: - "@smithy/service-error-classification" "^4.2.12" - "@smithy/types" "^4.13.1" - tslib "^2.6.2" - -"@smithy/util-stream@^4.5.21": - version "4.5.21" - resolved "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-4.5.21.tgz" - integrity sha512-KzSg+7KKywLnkoKejRtIBXDmwBfjGvg1U1i/etkC7XSWUyFCoLno1IohV2c74IzQqdhX5y3uE44r/8/wuK+A7Q== - dependencies: - "@smithy/fetch-http-handler" "^5.3.15" - "@smithy/node-http-handler" "^4.5.1" - "@smithy/types" "^4.13.1" - "@smithy/util-base64" "^4.3.2" - "@smithy/util-buffer-from" "^4.2.2" - "@smithy/util-hex-encoding" "^4.2.2" - "@smithy/util-utf8" "^4.2.2" - tslib "^2.6.2" - -"@smithy/util-uri-escape@^4.2.2": - version "4.2.2" - resolved "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-4.2.2.tgz" - integrity sha512-2kAStBlvq+lTXHyAZYfJRb/DfS3rsinLiwb+69SstC9Vb0s9vNWkRwpnj918Pfi85mzi42sOqdV72OLxWAISnw== - dependencies: - tslib "^2.6.2" - "@smithy/util-utf8@^2.0.0": version "2.3.0" - resolved "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-2.3.0.tgz#dd96d7640363259924a214313c3cf16e7dd329c5" integrity sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A== dependencies: "@smithy/util-buffer-from" "^2.2.0" tslib "^2.6.2" -"@smithy/util-utf8@^4.2.2": - version "4.2.2" - resolved "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-4.2.2.tgz" - integrity sha512-75MeYpjdWRe8M5E3AW0O4Cx3UadweS+cwdXjwYGBW5h/gxxnbeZ877sLPX/ZJA9GVTlL/qG0dXP29JWFCD1Ayw== - dependencies: - "@smithy/util-buffer-from" "^4.2.2" - tslib "^2.6.2" - -"@smithy/util-waiter@^4.2.14": - version "4.2.14" - resolved "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-4.2.14.tgz" - integrity sha512-2zqq5o/oizvMaFUlNiTyZ7dbgYv1a893aGut2uaxtbzTx/VYYnRxWzDHuD/ftgcw94ffenua+ZNLrbqwUYE+Bg== - dependencies: - "@smithy/types" "^4.13.1" - tslib "^2.6.2" - -"@smithy/uuid@^1.1.2": - version "1.1.2" - resolved "https://registry.npmjs.org/@smithy/uuid/-/uuid-1.1.2.tgz" - integrity sha512-O/IEdcCUKkubz60tFbGA7ceITTAJsty+lBjNoorP4Z6XRqaFb/OjQjZODophEcuq68nKm6/0r+6/lLQ+XVpk8g== - dependencies: - tslib "^2.6.2" - "@socket.io/component-emitter@~3.1.0": version "3.1.2" - resolved "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz" + resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz#821f8442f4175d8f0467b9daf26e3a18e2d02af2" integrity sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA== "@socket.io/redis-adapter@^8.3.0": version "8.3.0" - resolved "https://registry.npmjs.org/@socket.io/redis-adapter/-/redis-adapter-8.3.0.tgz" + resolved "https://registry.yarnpkg.com/@socket.io/redis-adapter/-/redis-adapter-8.3.0.tgz#bdce1e8f34c07df4a8baf98170bf24dc84eaed4a" integrity sha512-ly0cra+48hDmChxmIpnESKrc94LjRL80TEmZVscuQ/WWkRP81nNj8W8cCGMqbI4L6NCuAaPRSzZF1a9GlAxxnA== dependencies: debug "~4.3.1" @@ -1920,13 +1431,13 @@ uid2 "1.0.0" "@tootallnate/once@2": - version "2.0.0" - resolved "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz" - integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== + version "2.0.1" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.1.tgz#35adc6222e3662fa2222ce123b961476a746b9ea" + integrity sha512-HqmEUIGRJ5fSXchkVgR5F7qn48bDBzv0kWj/Kfu5e6uci4UlEeng4331LnBkWffb++Ei3FOVLxo8JJWMFBDMeQ== "@types/body-parser@*": version "1.19.6" - resolved "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.6.tgz#1859bebb8fd7dac9918a45d54c1971ab8b5af474" integrity sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g== dependencies: "@types/connect" "*" @@ -1934,12 +1445,12 @@ "@types/caseless@*": version "0.12.5" - resolved "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.5.tgz" + resolved "https://registry.yarnpkg.com/@types/caseless/-/caseless-0.12.5.tgz#db9468cb1b1b5a925b8f34822f1669df0c5472f5" integrity sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg== "@types/chai@^5.2.2": version "5.2.3" - resolved "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-5.2.3.tgz#8e9cd9e1c3581fa6b341a5aed5588eb285be0b4a" integrity sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA== dependencies: "@types/deep-eql" "*" @@ -1947,31 +1458,31 @@ "@types/connect@*": version "3.4.38" - resolved "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== dependencies: "@types/node" "*" "@types/cors@^2.8.12": version "2.8.19" - resolved "https://registry.npmjs.org/@types/cors/-/cors-2.8.19.tgz" + resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.19.tgz#d93ea2673fd8c9f697367f5eeefc2bbfa94f0342" integrity sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg== dependencies: "@types/node" "*" "@types/deep-eql@*": version "4.0.2" - resolved "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/@types/deep-eql/-/deep-eql-4.0.2.tgz#334311971d3a07121e7eb91b684a605e7eea9cbd" integrity sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw== -"@types/estree@1.0.8", "@types/estree@^1.0.0", "@types/estree@^1.0.6": - version "1.0.8" - resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz" - integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== +"@types/estree@1.0.9", "@types/estree@^1.0.0", "@types/estree@^1.0.6": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.9.tgz#cf3f0e876d7bee15a93ab925b82bf570a3904a24" + integrity sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg== "@types/express-serve-static-core@^5.0.0": version "5.1.1" - resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-5.1.1.tgz#1a77faffee9572d39124933259be2523837d7eaa" integrity sha512-v4zIMr/cX7/d2BpAEX3KNKL/JrT1s43s96lLvvdTmza1oEvDudCqK9aF/djc/SWgy8Yh0h30TZx5VpzqFCxk5A== dependencies: "@types/node" "*" @@ -1981,7 +1492,7 @@ "@types/express@*", "@types/express@^5.0.6": version "5.0.6" - resolved "https://registry.npmjs.org/@types/express/-/express-5.0.6.tgz" + resolved "https://registry.yarnpkg.com/@types/express/-/express-5.0.6.tgz#2d724b2c990dcb8c8444063f3580a903f6d500cc" integrity sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA== dependencies: "@types/body-parser" "*" @@ -1990,12 +1501,12 @@ "@types/http-errors@*": version "2.0.5" - resolved "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz" + resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.5.tgz#5b749ab2b16ba113423feb1a64a95dcd30398472" integrity sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg== "@types/json-schema@^7.0.15": version "7.0.15" - resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== "@types/jsonwebtoken@^9.0.10": @@ -2018,26 +1529,33 @@ dependencies: "@types/express" "*" -"@types/node@*", "@types/node@>=10.0.0", "@types/node@^24.12.2": - version "24.12.2" - resolved "https://registry.npmjs.org/@types/node/-/node-24.12.2.tgz" - integrity sha512-A1sre26ke7HDIuY/M23nd9gfB+nrmhtYyMINbjI1zHJxYteKR6qSMX56FsmjMcDb3SMcjJg5BiRRgOCC/yBD0g== +"@types/node@*", "@types/node@>=10.0.0": + version "26.0.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-26.0.0.tgz#d4aece9e9412e9f2008d59bc2d74f5279316b665" + integrity sha512-vf2YFi1iY9lHGwNJMs01biZFbKJkrZR1T6/MlzjhJLPdntOHLhTrDSnSVcdtvjihi4VQNlrFRIxLsDBlQpAipA== + dependencies: + undici-types "~8.3.0" + +"@types/node@^24.12.2": + version "24.13.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-24.13.2.tgz#3b9b280a7055128359f125eb1067d9a190f39854" + integrity sha512-fRa09kZTgu8o71KFcDjUFuc7F+dEbZYZmkI0mg5YBTRs0yMKjYHsq/c0urDKeDb+D5qVgXOdFcuu+DZPKOITwA== dependencies: - undici-types "~7.16.0" + undici-types "~7.18.0" "@types/qs@*": - version "6.15.0" - resolved "https://registry.npmjs.org/@types/qs/-/qs-6.15.0.tgz" - integrity sha512-JawvT8iBVWpzTrz3EGw9BTQFg3BQNmwERdKE22vlTxawwtbyUSlMppvZYKLZzB5zgACXdXxbD3m1bXaMqP/9ow== + version "6.15.1" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.15.1.tgz#8606884272c63f0db96986bd3548650d8a9388bf" + integrity sha512-GZHUBZR9hckSUhrxmp1nG6NwdpM9fCunJwyThLW1X3AyHgd9IlHb6VANpQQqDr2o/qQp6McZ3y/IA2rVzKzSbw== "@types/range-parser@*": version "1.2.7" - resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb" integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== "@types/request@^2.48.8": version "2.48.13" - resolved "https://registry.npmjs.org/@types/request/-/request-2.48.13.tgz" + resolved "https://registry.yarnpkg.com/@types/request/-/request-2.48.13.tgz#abdf4256524e801ea8fdda54320f083edb5a6b80" integrity sha512-FGJ6udDNUCjd19pp0Q3iTiDkwhYup7J8hpMW9c4k53NrccQFFWKRho6hvtPPEhnXWKvukfwAlB6DbDz4yhH5Gg== dependencies: "@types/caseless" "*" @@ -2047,14 +1565,14 @@ "@types/send@*": version "1.2.1" - resolved "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/@types/send/-/send-1.2.1.tgz#6a784e45543c18c774c049bff6d3dbaf045c9c74" integrity sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ== dependencies: "@types/node" "*" "@types/serve-static@^2": version "2.2.0" - resolved "https://registry.npmjs.org/@types/serve-static/-/serve-static-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-2.2.0.tgz#d4a447503ead0d1671132d1ab6bd58b805d8de6a" integrity sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ== dependencies: "@types/http-errors" "*" @@ -2062,135 +1580,135 @@ "@types/tough-cookie@*": version "4.0.5" - resolved "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz" + resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.5.tgz#cb6e2a691b70cb177c6e3ae9c1d2e8b2ea8cd304" integrity sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA== "@types/webidl-conversions@*": version "7.0.3" - resolved "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz" + resolved "https://registry.yarnpkg.com/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz#1306dbfa53768bcbcfc95a1c8cde367975581859" integrity sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA== "@types/whatwg-url@^13.0.0": version "13.0.0" - resolved "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-13.0.0.tgz" + resolved "https://registry.yarnpkg.com/@types/whatwg-url/-/whatwg-url-13.0.0.tgz#2b11e32772fd321c0dedf4d655953ea8ce587b2a" integrity sha512-N8WXpbE6Wgri7KUSvrmQcqrMllKZ9uxkYWMt+mCSGwNc0Hsw9VQTW7ApqI4XNrx6/SaM2QQJCzMPDEXE058s+Q== dependencies: "@types/webidl-conversions" "*" -"@types/ws@^8.18.1": +"@types/ws@^8.18.1", "@types/ws@^8.5.12": version "8.18.1" - resolved "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.18.1.tgz#48464e4bf2ddfd17db13d845467f6070ffea4aa9" integrity sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg== dependencies: "@types/node" "*" "@typescript-eslint/eslint-plugin@^8.58.0": - version "8.58.0" - resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.58.0.tgz" - integrity sha512-RLkVSiNuUP1C2ROIWfqX+YcUfLaSnxGE/8M+Y57lopVwg9VTYYfhuz15Yf1IzCKgZj6/rIbYTmJCUSqr76r0Wg== + version "8.61.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.61.1.tgz#6e4b7fee21f1983308e9e9b634ecbaf702c86006" + integrity sha512-ZPlVl3PB3et/59Ne0fv/sci6ZXz4T4Hp4nTJ56i/Y0gR89ARb+KphojTq6j+56E5PIezmOIOOWyY+aWQFd+IkQ== dependencies: "@eslint-community/regexpp" "^4.12.2" - "@typescript-eslint/scope-manager" "8.58.0" - "@typescript-eslint/type-utils" "8.58.0" - "@typescript-eslint/utils" "8.58.0" - "@typescript-eslint/visitor-keys" "8.58.0" + "@typescript-eslint/scope-manager" "8.61.1" + "@typescript-eslint/type-utils" "8.61.1" + "@typescript-eslint/utils" "8.61.1" + "@typescript-eslint/visitor-keys" "8.61.1" ignore "^7.0.5" natural-compare "^1.4.0" ts-api-utils "^2.5.0" "@typescript-eslint/parser@^8.58.0": - version "8.58.0" - resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.58.0.tgz" - integrity sha512-rLoGZIf9afaRBYsPUMtvkDWykwXwUPL60HebR4JgTI8mxfFe2cQTu3AGitANp4b9B2QlVru6WzjgB2IzJKiCSA== - dependencies: - "@typescript-eslint/scope-manager" "8.58.0" - "@typescript-eslint/types" "8.58.0" - "@typescript-eslint/typescript-estree" "8.58.0" - "@typescript-eslint/visitor-keys" "8.58.0" + version "8.61.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.61.1.tgz#881fba60b50636249cdeea2e547bf75715254c72" + integrity sha512-PJ5vePq5/ognBbrIcoC5+SHO5dfpeLPzP9FpLkzWrguoYQEeeSjlJpVwOpo1JRSTEi7dRcwNy4h4dzV70PqHcg== + dependencies: + "@typescript-eslint/scope-manager" "8.61.1" + "@typescript-eslint/types" "8.61.1" + "@typescript-eslint/typescript-estree" "8.61.1" + "@typescript-eslint/visitor-keys" "8.61.1" debug "^4.4.3" -"@typescript-eslint/project-service@8.58.0": - version "8.58.0" - resolved "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.58.0.tgz" - integrity sha512-8Q/wBPWLQP1j16NxoPNIKpDZFMaxl7yWIoqXWYeWO+Bbd2mjgvoF0dxP2jKZg5+x49rgKdf7Ck473M8PC3V9lg== +"@typescript-eslint/project-service@8.61.1": + version "8.61.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.61.1.tgz#fcd9739964a40867eed55f1ac318d3909f24b4af" + integrity sha512-PrC4JYGmR241lYnfhmKGTXkFqv8+ymbTFgSAY0fVXpY82/QkMw5TZPl+vGzuDDU2QYJk9fIDOBTntF+yDv9LEA== dependencies: - "@typescript-eslint/tsconfig-utils" "^8.58.0" - "@typescript-eslint/types" "^8.58.0" + "@typescript-eslint/tsconfig-utils" "^8.61.1" + "@typescript-eslint/types" "^8.61.1" debug "^4.4.3" -"@typescript-eslint/scope-manager@8.58.0": - version "8.58.0" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.58.0.tgz" - integrity sha512-W1Lur1oF50FxSnNdGp3Vs6P+yBRSmZiw4IIjEeYxd8UQJwhUF0gDgDD/W/Tgmh73mxgEU3qX0Bzdl/NGuSPEpQ== +"@typescript-eslint/scope-manager@8.61.1": + version "8.61.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.61.1.tgz#2479921a40fdb0afa18f5838fae6167264b417b2" + integrity sha512-L2bdIeoQS8FlKAvONAr20w6OcLXeB+qiDKbAooS9A0Ben+iSIkBef0FxqwKWYqt5sa0i4KJtxVyVmhMylKzF5w== dependencies: - "@typescript-eslint/types" "8.58.0" - "@typescript-eslint/visitor-keys" "8.58.0" + "@typescript-eslint/types" "8.61.1" + "@typescript-eslint/visitor-keys" "8.61.1" -"@typescript-eslint/tsconfig-utils@8.58.0", "@typescript-eslint/tsconfig-utils@^8.58.0": - version "8.58.0" - resolved "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.58.0.tgz" - integrity sha512-doNSZEVJsWEu4htiVC+PR6NpM+pa+a4ClH9INRWOWCUzMst/VA9c4gXq92F8GUD1rwhNvRLkgjfYtFXegXQF7A== +"@typescript-eslint/tsconfig-utils@8.61.1", "@typescript-eslint/tsconfig-utils@^8.61.1": + version "8.61.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.61.1.tgz#ca88080e0cf191d49516d7f300b67aa090d2254f" + integrity sha512-UN/H4di+OO7EWx2ovME+8t31YO+KVnK0RRKEHR3kOt21/Ay8BOq3M1OMvWs5vNiqcFCYGYoxK3MXPZzmMUE+yg== -"@typescript-eslint/type-utils@8.58.0": - version "8.58.0" - resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.58.0.tgz" - integrity sha512-aGsCQImkDIqMyx1u4PrVlbi/krmDsQUs4zAcCV6M7yPcPev+RqVlndsJy9kJ8TLihW9TZ0kbDAzctpLn5o+lOg== +"@typescript-eslint/type-utils@8.61.1": + version "8.61.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.61.1.tgz#8fa18f453ee140893b47d339d1a6b64cac9b08a1" + integrity sha512-GYRicKmVK0C4fsKgaACaknOUAq9Oa2kwsjnpFhFcS/5p4Ht5IP9OVLbgIgcK4SRk92nVHFluurg1lumD9dBcLw== dependencies: - "@typescript-eslint/types" "8.58.0" - "@typescript-eslint/typescript-estree" "8.58.0" - "@typescript-eslint/utils" "8.58.0" + "@typescript-eslint/types" "8.61.1" + "@typescript-eslint/typescript-estree" "8.61.1" + "@typescript-eslint/utils" "8.61.1" debug "^4.4.3" ts-api-utils "^2.5.0" -"@typescript-eslint/types@8.58.0", "@typescript-eslint/types@^8.58.0": - version "8.58.0" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.58.0.tgz" - integrity sha512-O9CjxypDT89fbHxRfETNoAnHj/i6IpRK0CvbVN3qibxlLdo5p5hcLmUuCCrHMpxiWSwKyI8mCP7qRNYuOJ0Uww== +"@typescript-eslint/types@8.61.1", "@typescript-eslint/types@^8.61.1": + version "8.61.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.61.1.tgz#0c51f518e4e6848371a1c988e859d59eb7522d5a" + integrity sha512-G+CRlPqLv7Bz1IZVs03x5K59F1veqL0EJUROAdGhKsEq8qOiRiZbI+HUojPq5l0fEGOKModD9br6lObhB8zkoA== -"@typescript-eslint/typescript-estree@8.58.0": - version "8.58.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.58.0.tgz" - integrity sha512-7vv5UWbHqew/dvs+D3e1RvLv1v2eeZ9txRHPnEEBUgSNLx5ghdzjHa0sgLWYVKssH+lYmV0JaWdoubo0ncGYLA== +"@typescript-eslint/typescript-estree@8.61.1": + version "8.61.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.61.1.tgz#febbe70365ac0bf7611262b61b338fc8797965c7" + integrity sha512-u+oQD3BqYWPc8YV9Zab4vaJElJuwOLPRc10Jm1o/qS+6Qwen14HCWwx0Seo4LnSn2wxea2Ik8DxPt2/FHmuhrg== dependencies: - "@typescript-eslint/project-service" "8.58.0" - "@typescript-eslint/tsconfig-utils" "8.58.0" - "@typescript-eslint/types" "8.58.0" - "@typescript-eslint/visitor-keys" "8.58.0" + "@typescript-eslint/project-service" "8.61.1" + "@typescript-eslint/tsconfig-utils" "8.61.1" + "@typescript-eslint/types" "8.61.1" + "@typescript-eslint/visitor-keys" "8.61.1" debug "^4.4.3" minimatch "^10.2.2" semver "^7.7.3" tinyglobby "^0.2.15" ts-api-utils "^2.5.0" -"@typescript-eslint/utils@8.58.0": - version "8.58.0" - resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.58.0.tgz" - integrity sha512-RfeSqcFeHMHlAWzt4TBjWOAtoW9lnsAGiP3GbaX9uVgTYYrMbVnGONEfUCiSss+xMHFl+eHZiipmA8WkQ7FuNA== +"@typescript-eslint/utils@8.61.1": + version "8.61.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.61.1.tgz#ffd1054de7dd33b7873cd6c6713ec6b0366316d3" + integrity sha512-1+P/3Dj6jvtybE1q0HQ6yBt/gq+oKJyLdEv4HdnqasaEXRSYCAsD59mXEVQnM/ULNdQxbX77tdG4jPRjIS6knA== dependencies: "@eslint-community/eslint-utils" "^4.9.1" - "@typescript-eslint/scope-manager" "8.58.0" - "@typescript-eslint/types" "8.58.0" - "@typescript-eslint/typescript-estree" "8.58.0" + "@typescript-eslint/scope-manager" "8.61.1" + "@typescript-eslint/types" "8.61.1" + "@typescript-eslint/typescript-estree" "8.61.1" -"@typescript-eslint/visitor-keys@8.58.0": - version "8.58.0" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.58.0.tgz" - integrity sha512-XJ9UD9+bbDo4a4epraTwG3TsNPeiB9aShrUneAVXy8q4LuwowN+qu89/6ByLMINqvIMeI9H9hOHQtg/ijrYXzQ== +"@typescript-eslint/visitor-keys@8.61.1": + version "8.61.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.61.1.tgz#546cf102b4efdb72a9a08e63a1b0d7d745eb66eb" + integrity sha512-6fJ9MHWtK14C1DSkiMlHUSOmrVebL7150xZJBlJiL62jjhIA4JmOq6flwBgDxIdBKKdoiZRel+dfPD5MLfny3w== dependencies: - "@typescript-eslint/types" "8.58.0" + "@typescript-eslint/types" "8.61.1" eslint-visitor-keys "^5.0.0" "@vitejs/plugin-vue@^6.0.5": - version "6.0.5" - resolved "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.5.tgz" - integrity sha512-bL3AxKuQySfk1iGcBsQnoRVexTPJq0Z/ixFVM8OhVJAP6ZXXXLtM7NFKWhLl30Kg7uTBqIaPXbh+nuQCuBDedg== + version "6.0.7" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-6.0.7.tgz#194235d364a2c601c521b0410e524e521119059f" + integrity sha512-km+p+XdSz9Sxm5rqUbqcSfZYaAniKxWBj1KURl+Jr7UaPvvX7BmaWMdP69I5rrFDeQGyxAG7NXdc57vz+snhWg== dependencies: - "@rolldown/pluginutils" "1.0.0-rc.2" + "@rolldown/pluginutils" "^1.0.1" "@vitest/coverage-v8@^3": - version "3.2.4" - resolved "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-3.2.4.tgz" - integrity sha512-EyF9SXU6kS5Ku/U82E259WSnvg6c8KTjppUncuNdm5QHpe17mwREHnjDzozC8x9MZ0xfBUFSaLkRv4TMA75ALQ== + version "3.2.6" + resolved "https://registry.yarnpkg.com/@vitest/coverage-v8/-/coverage-v8-3.2.6.tgz#ca3bbfb264389d5e17134ccf84f988c2f7a121fb" + integrity sha512-LsAdmUapA0qSN306d8+zOyawM0hFm2m2Hg9IwVNIKBm+qJV8cijiq2c+gxKZcB1HCfIWAy+0qEZDCUQA58A1cw== dependencies: "@ampproject/remapping" "^2.3.0" "@bcoe/v8-coverage" "^1.0.2" @@ -2267,89 +1785,89 @@ loupe "^3.1.4" tinyrainbow "^2.0.0" -"@vue/compiler-core@3.5.32": - version "3.5.32" - resolved "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.32.tgz" - integrity sha512-4x74Tbtqnda8s/NSD6e1Dr5p1c8HdMU5RWSjMSUzb8RTcUQqevDCxVAitcLBKT+ie3o0Dl9crc/S/opJM7qBGQ== +"@vue/compiler-core@3.5.38": + version "3.5.38" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.5.38.tgz#fb6679d50a5de198398a1df2ce9d3a49ef8e8072" + integrity sha512-s99aGxWYig9ErHbct27KXEGhrBYlRI6c4MwAgXErOAbX9xiW37/uMa+XUDO69zLz83dng8UUZ70CTOJrLrYrEQ== dependencies: - "@babel/parser" "^7.29.2" - "@vue/shared" "3.5.32" + "@babel/parser" "^7.29.7" + "@vue/shared" "3.5.38" entities "^7.0.1" estree-walker "^2.0.2" source-map-js "^1.2.1" -"@vue/compiler-dom@3.5.32": - version "3.5.32" - resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.32.tgz" - integrity sha512-ybHAu70NtiEI1fvAUz3oXZqkUYEe5J98GjMDpTGl5iHb0T15wQYLR4wE3h9xfuTNA+Cm2f4czfe8B4s+CCH57Q== +"@vue/compiler-dom@3.5.38": + version "3.5.38" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.5.38.tgz#10ad73a70399a4c09dedf45ff6a93d42eadc861f" + integrity sha512-JTqp25l8aFfJYF7/KmsXZjAxJz7T+SjmTJLoXVjHtc2BrSgSiW2n9Aem/cWq1OPe68A8JL06B3eVdhlP0H4TVw== dependencies: - "@vue/compiler-core" "3.5.32" - "@vue/shared" "3.5.32" + "@vue/compiler-core" "3.5.38" + "@vue/shared" "3.5.38" -"@vue/compiler-sfc@3.5.32": - version "3.5.32" - resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.32.tgz" - integrity sha512-8UYUYo71cP/0YHMO814TRZlPuUUw3oifHuMR7Wp9SNoRSrxRQnhMLNlCeaODNn6kNTJsjFoQ/kqIj4qGvya4Xg== +"@vue/compiler-sfc@3.5.38": + version "3.5.38" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.5.38.tgz#2b02036f89c7db0a688534a2eb0d42728c7f09c1" + integrity sha512-DuA2GiZawSEW442iw/9+Fkol8hTgb4Ke5KkhmSry65QA7YuyMbIdy8p0XZRMvNwJdgRz307W8g1CSzdvS4nuNg== dependencies: - "@babel/parser" "^7.29.2" - "@vue/compiler-core" "3.5.32" - "@vue/compiler-dom" "3.5.32" - "@vue/compiler-ssr" "3.5.32" - "@vue/shared" "3.5.32" + "@babel/parser" "^7.29.7" + "@vue/compiler-core" "3.5.38" + "@vue/compiler-dom" "3.5.38" + "@vue/compiler-ssr" "3.5.38" + "@vue/shared" "3.5.38" estree-walker "^2.0.2" magic-string "^0.30.21" - postcss "^8.5.8" + postcss "^8.5.15" source-map-js "^1.2.1" -"@vue/compiler-ssr@3.5.32": - version "3.5.32" - resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.32.tgz" - integrity sha512-Gp4gTs22T3DgRotZ8aA/6m2jMR+GMztvBXUBEUOYOcST+giyGWJ4WvFd7QLHBkzTxkfOt8IELKNdpzITLbA2rw== +"@vue/compiler-ssr@3.5.38": + version "3.5.38" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.5.38.tgz#23975aa9643752c78c0625277ffa86f58600300d" + integrity sha512-7s+W5Gc42FGxZMcuwl8H5B29T8BJPMdBT7KHFE+BbAuZ/iTEdTtv7z2XiMjiaUUw4w3ZcCEdHs36RuYJ2VA7bA== dependencies: - "@vue/compiler-dom" "3.5.32" - "@vue/shared" "3.5.32" + "@vue/compiler-dom" "3.5.38" + "@vue/shared" "3.5.38" -"@vue/reactivity@3.5.32": - version "3.5.32" - resolved "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.32.tgz" - integrity sha512-/ORasxSGvZ6MN5gc+uE364SxFdJ0+WqVG0CENXaGW58TOCdrAW76WWaplDtECeS1qphvtBZtR+3/o1g1zL4xPQ== +"@vue/reactivity@3.5.38": + version "3.5.38" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.5.38.tgz#71cf88b764a6d5334dd27d5ac9f029c81cd4fc34" + integrity sha512-pG6LV/NDNRbKizcUjFFLAfjaL8mcv4DmR9avNcUw2gDHBzZneuS2TWCmp633ynzxz9YYKNeEPK2I8Wraqy2HUQ== dependencies: - "@vue/shared" "3.5.32" + "@vue/shared" "3.5.38" -"@vue/runtime-core@3.5.32": - version "3.5.32" - resolved "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.32.tgz" - integrity sha512-pDrXCejn4UpFDFmMd27AcJEbHaLemaE5o4pbb7sLk79SRIhc6/t34BQA7SGNgYtbMnvbF/HHOftYBgFJtUoJUQ== +"@vue/runtime-core@3.5.38": + version "3.5.38" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.5.38.tgz#26560a876b9c0251e57f7a05f9263e623f244f9c" + integrity sha512-iyW8WVfF1CpCXxncZY5Ei6rSd6oZr5DgEom//fUjRBRl56AXPD+s9ATvukRt77ZFTuYlnVA1bxY+dJB94tWVYw== dependencies: - "@vue/reactivity" "3.5.32" - "@vue/shared" "3.5.32" + "@vue/reactivity" "3.5.38" + "@vue/shared" "3.5.38" -"@vue/runtime-dom@3.5.32": - version "3.5.32" - resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.32.tgz" - integrity sha512-1CDVv7tv/IV13V8Nip1k/aaObVbWqRlVCVezTwx3K07p7Vxossp5JU1dcPNhJk3w347gonIUT9jQOGutyJrSVQ== +"@vue/runtime-dom@3.5.38": + version "3.5.38" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.5.38.tgz#7aec70bd013e43166e9ccecd4a1f096fd8ca11fb" + integrity sha512-apX2wt9sdfDshS+a2xueFZLVpt0GkRJZSoPmrW/SA4yzXTznhfcMVW59gr7h4YQeY0vJhdJkk2rsIDwgfFgC5A== dependencies: - "@vue/reactivity" "3.5.32" - "@vue/runtime-core" "3.5.32" - "@vue/shared" "3.5.32" + "@vue/reactivity" "3.5.38" + "@vue/runtime-core" "3.5.38" + "@vue/shared" "3.5.38" csstype "^3.2.3" -"@vue/server-renderer@3.5.32": - version "3.5.32" - resolved "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.32.tgz" - integrity sha512-IOjm2+JQwRFS7W28HNuJeXQle9KdZbODFY7hFGVtnnghF51ta20EWAZJHX+zLGtsHhaU6uC9BGPV52KVpYryMQ== +"@vue/server-renderer@3.5.38": + version "3.5.38" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.5.38.tgz#5d24a5305e776a53038fc772fbd9d1205c236588" + integrity sha512-vue8vbf2QlV4quHqzwmJy6dWfmRhP1J8l4wtZg60CL6VoKqcPY2oe7may3+1d9qfpedjK5PRLFqd5k3Isj9mUw== dependencies: - "@vue/compiler-ssr" "3.5.32" - "@vue/shared" "3.5.32" + "@vue/compiler-ssr" "3.5.38" + "@vue/shared" "3.5.38" -"@vue/shared@3.5.32": - version "3.5.32" - resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.5.32.tgz" - integrity sha512-ksNyrmRQzWJJ8n3cRDuSF7zNNontuJg1YHnmWRJd2AMu8Ij2bqwiiri2lH5rHtYPZjj4STkNcgcmiQqlOjiYGg== +"@vue/shared@3.5.38": + version "3.5.38" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.38.tgz#6c4be4defd86cdc35bfa2b7dd45d7b11a5d51101" + integrity sha512-FTW0AFZNaK5/mOqvGBwVfUlNLU38TiQn4+DQgIFUnrBBJQ1crMJ82yeGQLV5jyKFsO8yRukpbuP7x+nRbH6aug== "@whatwg-node/disposablestack@^0.0.6": version "0.0.6" - resolved "https://registry.npmjs.org/@whatwg-node/disposablestack/-/disposablestack-0.0.6.tgz" + resolved "https://registry.yarnpkg.com/@whatwg-node/disposablestack/-/disposablestack-0.0.6.tgz#2064a1425ea66194def6df0c7a1851b6939c82bb" integrity sha512-LOtTn+JgJvX8WfBVJtF08TGrdjuFzGJc4mkP8EdDI8ADbvO7kiexYep1o8dwnt0okb0jYclCDXF13xU7Ge4zSw== dependencies: "@whatwg-node/promise-helpers" "^1.0.0" @@ -2357,23 +1875,23 @@ "@whatwg-node/events@^0.1.0": version "0.1.2" - resolved "https://registry.npmjs.org/@whatwg-node/events/-/events-0.1.2.tgz" + resolved "https://registry.yarnpkg.com/@whatwg-node/events/-/events-0.1.2.tgz#23f7c7ad887d7fd448e9ce3261eac9ef319ddd7c" integrity sha512-ApcWxkrs1WmEMS2CaLLFUEem/49erT3sxIVjpzU5f6zmVcnijtDSrhoK2zVobOIikZJdH63jdAXOrvjf6eOUNQ== dependencies: tslib "^2.6.3" "@whatwg-node/fetch@^0.10.13", "@whatwg-node/fetch@^0.10.6": version "0.10.13" - resolved "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.10.13.tgz" + resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.10.13.tgz#2d47190c620f134dda31c7f827976a909b2cca7a" integrity sha512-b4PhJ+zYj4357zwk4TTuF2nEe0vVtOrwdsrNo5hL+u1ojXNhh1FgJ6pg1jzDlwlT4oBdzfSwaBwMCtFCsIWg8Q== dependencies: "@whatwg-node/node-fetch" "^0.8.3" urlpattern-polyfill "^10.0.0" "@whatwg-node/node-fetch@^0.8.3": - version "0.8.5" - resolved "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.8.5.tgz" - integrity sha512-4xzCl/zphPqlp9tASLVeUhB5+WJHbuWGYpfoC2q1qh5dw0AqZBW7L27V5roxYWijPxj4sspRAAoOH3d2ztaHUQ== + version "0.8.6" + resolved "https://registry.yarnpkg.com/@whatwg-node/node-fetch/-/node-fetch-0.8.6.tgz#22c5235f49c69c6b2cfc63d4a759de407a8fc664" + integrity sha512-BDMdYFcerLQkwA2RTldxOqRCs6ZQD1S7UgP3pUdGUkcbgTrP/V5ko77ZkCww9DHmC4lpoYuwigGfQYj285gMvA== dependencies: "@fastify/busboy" "^3.1.1" "@whatwg-node/disposablestack" "^0.0.6" @@ -2382,15 +1900,15 @@ "@whatwg-node/promise-helpers@^1.0.0", "@whatwg-node/promise-helpers@^1.2.1", "@whatwg-node/promise-helpers@^1.2.4", "@whatwg-node/promise-helpers@^1.3.2": version "1.3.2" - resolved "https://registry.npmjs.org/@whatwg-node/promise-helpers/-/promise-helpers-1.3.2.tgz" + resolved "https://registry.yarnpkg.com/@whatwg-node/promise-helpers/-/promise-helpers-1.3.2.tgz#3b54987ad6517ef6db5920c66a6f0dada606587d" integrity sha512-Nst5JdK47VIl9UcGwtv2Rcgyn5lWtZ0/mhRQ4G8NN2isxpq2TO30iqHzmwoJycjWuyUfg3GFXqP/gFHXeV57IA== dependencies: tslib "^2.6.3" -"@whatwg-node/server@^0.10.14": - version "0.10.18" - resolved "https://registry.npmjs.org/@whatwg-node/server/-/server-0.10.18.tgz" - integrity sha512-kMwLlxUbduttIgaPdSkmEarFpP+mSY8FEm+QWMBRJwxOHWkri+cxd8KZHO9EMrB9vgUuz+5WEaCawaL5wGVoXg== +"@whatwg-node/server@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@whatwg-node/server/-/server-0.11.0.tgz#307e0d84f94da2f0cbd1798bab430404b468a239" + integrity sha512-VSdkwnJRr8Yv9UgB2aXB3VUPWwd6Oqnn0hycFwhg9pZgWxJXb7JmhsiXe9tmpMwjHFxli12PGcz9aI63YYloGQ== dependencies: "@envelop/instrumentation" "^1.0.0" "@whatwg-node/disposablestack" "^0.0.6" @@ -2400,14 +1918,14 @@ abort-controller@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== dependencies: event-target-shim "^5.0.0" accepts@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-2.0.0.tgz#bbcf4ba5075467f3f2131eab3cffc73c2f5d7895" integrity sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng== dependencies: mime-types "^3.0.0" @@ -2415,7 +1933,7 @@ accepts@^2.0.0: accepts@~1.3.4: version "1.3.8" - resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== dependencies: mime-types "~2.1.34" @@ -2423,30 +1941,30 @@ accepts@~1.3.4: acorn-jsx@^5.3.2: version "5.3.2" - resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn@^8.15.0: - version "8.16.0" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz" - integrity sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw== + version "8.17.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.17.0.tgz#1785adb84faf8d8add10369b93826fc2bd08f1fe" + integrity sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg== agent-base@6: version "6.0.2" - resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== dependencies: debug "4" agent-base@^7.1.2: version "7.1.4" - resolved "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.4.tgz#e3cd76d4c548ee895d3c3fd8dc1f6c5b9032e7a8" integrity sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ== -ajv@^6.12.4, ajv@^6.14.0: - version "6.14.0" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz" - integrity sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw== +ajv@^6.14.0: + version "6.15.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.15.0.tgz#07e982c74626167aa7a2495c53817892d7139492" + integrity sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw== dependencies: fast-deep-equal "^3.1.1" fast-json-stable-stringify "^2.0.0" @@ -2455,54 +1973,54 @@ ajv@^6.12.4, ajv@^6.14.0: ansi-regex@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" ansi-styles@^6.1.0: version "6.2.3" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041" integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== -anynum@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/anynum/-/anynum-1.0.0.tgz#afe3f3a78c6621fbdf1e107154fac01eef711cc5" - integrity sha512-xjR9/zBVnUOP6ztMIIgShjsxui80nQUQH+5xJnvrYLs+90bF25/KJqaAi8mk+B4RDtX1Nspi6fmp4YTEts8SfA== +anynum@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/anynum/-/anynum-1.0.1.tgz#2aac00e08dfad3726c1d462e60dbc2f831659a44" + integrity sha512-N6//FLET/tXYNM/F6ABca1oH6fWB+KlTt909Le28WMDBk8oaT4vY17DCrwg2MvmuqUKt3Ni4N5dGJ/EoBgcO6A== append-field@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/append-field/-/append-field-1.0.0.tgz#1e3440e915f0b1203d23748e78edd7b9b5b43e56" integrity sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw== argparse@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== arrify@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== arrify@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== assertion-error@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-2.0.1.tgz#f641a196b335690b1070bf00b6e7593fec190bf7" integrity sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA== ast-v8-to-istanbul@^0.3.3: version "0.3.12" - resolved "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-0.3.12.tgz" + resolved "https://registry.yarnpkg.com/ast-v8-to-istanbul/-/ast-v8-to-istanbul-0.3.12.tgz#8eb1b7c86ef8499859be761b17ffd91406c0c36f" integrity sha512-BRRC8VRZY2R4Z4lFIL35MwNXmwVqBityvOIwETtsCSwvjl0IdgFsy9NhdaA6j74nUdtJJlIypeRhpDam19Wq3g== dependencies: "@jridgewell/trace-mapping" "^0.3.31" @@ -2511,31 +2029,31 @@ ast-v8-to-istanbul@^0.3.3: async-retry@^1.3.3: version "1.3.3" - resolved "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz" + resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.3.3.tgz#0e7f36c04d8478e7a58bdbed80cedf977785f280" integrity sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw== dependencies: retry "0.13.1" asynckit@^0.4.0: version "0.4.0" - resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== atomic-sleep@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b" integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ== awilix@^13.0.3: - version "13.0.3" - resolved "https://registry.npmjs.org/awilix/-/awilix-13.0.3.tgz" - integrity sha512-WpgYKwf8XEPAxabPxBYGvxz1QZhyxoopQLLqpwwVqSQAvTO46yhld3M9nfMuV8t2FjsTO7DQblALD9w+C8iVKQ== + version "13.0.5" + resolved "https://registry.yarnpkg.com/awilix/-/awilix-13.0.5.tgz#998c3878a59ee4431f0b194b180fc1cba9354ecd" + integrity sha512-ORtca6suBdYA1FyTzqHEZDvEuUwo3lPDDBRm7GrzHgi6STESzJKdBtpqfTzObdMj1NGQUWX6k26E3EbQaGJX5Q== dependencies: fast-glob "^3.3.3" aws-ssl-profiles@^1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/aws-ssl-profiles/-/aws-ssl-profiles-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/aws-ssl-profiles/-/aws-ssl-profiles-1.1.2.tgz#157dd77e9f19b1d123678e93f120e6f193022641" integrity sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g== balanced-match@^1.0.0: @@ -2545,61 +2063,61 @@ balanced-match@^1.0.0: balanced-match@^4.0.2: version "4.0.4" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-4.0.4.tgz#bfb10662feed8196a2c62e7c68e17720c274179a" integrity sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA== base64-js@^1.0.2, base64-js@^1.3.0: version "1.5.1" - resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== base64id@2.0.0, base64id@~2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== bcryptjs@^3.0.3: version "3.0.3" - resolved "https://registry.npmjs.org/bcryptjs/-/bcryptjs-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/bcryptjs/-/bcryptjs-3.0.3.tgz#4b93d6a398c48bfc9f32ee65d301174a8a8ea56f" integrity sha512-GlF5wPWnSa/X5LKM1o0wz0suXIINz1iHRLvTS+sLyi7XPbe5ycmYI3DlZqVGZZtDgl4DmasFg7gOB3JYbphV5g== bignumber.js@^9.0.0: version "9.3.1" - resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.1.tgz" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.3.1.tgz#759c5aaddf2ffdc4f154f7b493e1c8770f88c4d7" integrity sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ== body-parser@^2.2.1: - version "2.2.2" - resolved "https://registry.npmjs.org/body-parser/-/body-parser-2.2.2.tgz" - integrity sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA== + version "2.3.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-2.3.0.tgz#6d8662f4d8c336028b8ac9aa24251b0ca64ba437" + integrity sha512-2cGmJupaNgg+QUwVLAucDuWuoMZ6EX9iHDRswZ5lsNYEmwPaRknMPCLZz07yTzVq/83p4o/wzbDZbBrTvGGTIw== dependencies: bytes "^3.1.2" - content-type "^1.0.5" + content-type "^2.0.0" debug "^4.4.3" - http-errors "^2.0.0" - iconv-lite "^0.7.0" + http-errors "^2.0.1" + iconv-lite "^0.7.2" on-finished "^2.4.1" - qs "^6.14.1" - raw-body "^3.0.1" - type-is "^2.0.1" + qs "^6.15.2" + raw-body "^3.0.2" + type-is "^2.1.0" bowser@^2.11.0: version "2.14.1" - resolved "https://registry.npmjs.org/bowser/-/bowser-2.14.1.tgz" + resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.14.1.tgz#4ea39bf31e305184522d7ad7bfd91389e4f0cb79" integrity sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg== brace-expansion@^1.1.7: - version "1.1.13" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz#d37875c01dc9eff988dd49d112a57cb67b54efe6" - integrity sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w== + version "1.1.15" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.15.tgz#a6d90d54067236e5f42570a3b7378d594d9b7738" + integrity sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" brace-expansion@^2.0.2: - version "2.1.0" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz#4f41a41190216ee36067ec381526fe9539c4f0ae" - integrity sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w== + version "2.1.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.1.1.tgz#c68b1c4111c76aae3a6fba55d496cee10c39dad8" + integrity sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA== dependencies: balanced-match "^1.0.0" @@ -2612,24 +2130,24 @@ brace-expansion@^5.0.5: braces@^3.0.3: version "3.0.3" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== dependencies: fill-range "^7.1.1" -bson@^7.1.1: - version "7.2.0" - resolved "https://registry.npmjs.org/bson/-/bson-7.2.0.tgz" - integrity sha512-YCEo7KjMlbNlyHhz7zAZNDpIpQbd+wOEHJYezv0nMYTn4x31eIUM2yomNNubclAt63dObUzKHWsBLJ9QcZNSnQ== +bson@^7.2.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/bson/-/bson-7.3.0.tgz#ec8711e962fa9a9fb02c07c088e152cdc624646d" + integrity sha512-WmjjMEwFwZHmGnAb7wn90MhkiT+mTm4x/rLj7dvAPWfwnVWDXhLun2e+UM88MJoDGW624yzZglVX/zTBy9ZZMw== buffer-equal-constant-time@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== buffer-from@^1.0.0: version "1.1.2" - resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== buffer@5.6.0: @@ -2641,38 +2159,37 @@ buffer@5.6.0: ieee754 "^1.1.4" bullmq@^5.73.0: - version "5.73.0" - resolved "https://registry.npmjs.org/bullmq/-/bullmq-5.73.0.tgz" - integrity sha512-uX8RbQaBbzk0H9JYXKGrNxpDqFcDBQFFKCyKarMjtfYHuct5X48M2LUq3Q9FXt/P2kWzPrqYlNnNqsico7ty5A== + version "5.79.1" + resolved "https://registry.yarnpkg.com/bullmq/-/bullmq-5.79.1.tgz#12d33ad99a9addfb4bb96a9ca74363ef5b11b689" + integrity sha512-cteoHRr1FGOTUgzFrnMyBNGtQhNeVR8Ej6nImNSHQDJi4tj6GMD0p9ZG65ZsTnvR9RVf18dhRxWu4kFl634QGA== dependencies: cron-parser "4.9.0" ioredis "5.10.1" - msgpackr "1.11.5" + msgpackr "2.0.2" node-abort-controller "3.1.1" - semver "7.7.4" + semver "7.8.1" tslib "2.8.1" - uuid "11.1.0" busboy@^1.6.0: version "1.6.0" - resolved "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== dependencies: streamsearch "^1.1.0" bytes@^3.1.2, bytes@~3.1.2: version "3.1.2" - resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== cac@^6.7.14: version "6.7.14" - resolved "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz" + resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6" integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== dependencies: es-errors "^1.3.0" @@ -2680,7 +2197,7 @@ call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: call-bound@^1.0.2: version "1.0.4" - resolved "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.4.tgz#238de935d2a2a692928c538c7ccfa91067fd062a" integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg== dependencies: call-bind-apply-helpers "^1.0.2" @@ -2688,12 +2205,12 @@ call-bound@^1.0.2: callsites@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== chai@^5.2.0: version "5.3.3" - resolved "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz" + resolved "https://registry.yarnpkg.com/chai/-/chai-5.3.3.tgz#dd3da955e270916a4bd3f625f4b919996ada7e06" integrity sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw== dependencies: assertion-error "^2.0.1" @@ -2704,7 +2221,7 @@ chai@^5.2.0: chalk@^4.0.0: version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" @@ -2712,7 +2229,7 @@ chalk@^4.0.0: check-error@^2.1.1: version "2.1.3" - resolved "https://registry.npmjs.org/check-error/-/check-error-2.1.3.tgz" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-2.1.3.tgz#2427361117b70cca8dc89680ead32b157019caf5" integrity sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA== cli-table3@0.6.3: @@ -2724,43 +2241,48 @@ cli-table3@0.6.3: optionalDependencies: "@colors/colors" "1.5.0" +cluster-key-slot@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.1.tgz#10ccb9ded0729464b6d2e7d714b100a2d1259d43" + integrity sha512-rwHwUfXL40Chm1r08yrhU3qpUvdVlgkKNeyeGPOxnW8/SyVDvgRaed/Uz54AqWNaTCAThlj6QAs3TZcKI0xDEw== + cluster-key-slot@^1.1.0: version "1.1.2" - resolved "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz#88ddaa46906e303b5de30d3153b7d9fe0a0c19ac" integrity sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA== color-convert@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: color-name "~1.1.4" color-name@~1.1.4: version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== colorette@2.0.19: version "2.0.19" - resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== colorette@^2.0.7: version "2.0.20" - resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== combined-stream@^1.0.8: version "1.0.8" - resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== dependencies: delayed-stream "~1.0.0" commander@^10.0.0: version "10.0.1" - resolved "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz" + resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== concat-map@0.0.1: @@ -2770,7 +2292,7 @@ concat-map@0.0.1: concat-stream@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== dependencies: buffer-from "^1.0.0" @@ -2779,28 +2301,33 @@ concat-stream@^2.0.0: typedarray "^0.0.6" content-disposition@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.1.tgz" - integrity sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q== + version "1.1.0" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-1.1.0.tgz#f3db789c752d45564cc7e9e1e0b31790d4a38e17" + integrity sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g== content-type@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== +content-type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-2.0.0.tgz#2fb3ede69dffa0af78ca7c4ce7589680638b56df" + integrity sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ== + cookie-signature@^1.2.1: version "1.2.2" - resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.2.2.tgz#57c7fc3cc293acab9fec54d73e15690ebe4a1793" integrity sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg== cookie@^0.7.1, cookie@~0.7.2: version "0.7.2" - resolved "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.2.tgz#556369c472a2ba910f2979891b526b3436237ed7" integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w== cors@^2.8.6, cors@~2.8.5: version "2.8.6" - resolved "https://registry.npmjs.org/cors/-/cors-2.8.6.tgz" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.6.tgz#ff5dd69bd95e547503820d29aba4f8faf8dfec96" integrity sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw== dependencies: object-assign "^4" @@ -2808,21 +2335,21 @@ cors@^2.8.6, cors@~2.8.5: cron-parser@4.9.0: version "4.9.0" - resolved "https://registry.npmjs.org/cron-parser/-/cron-parser-4.9.0.tgz" + resolved "https://registry.yarnpkg.com/cron-parser/-/cron-parser-4.9.0.tgz#0340694af3e46a0894978c6f52a6dbb5c0f11ad5" integrity sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q== dependencies: luxon "^3.2.1" cross-inspect@1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/cross-inspect/-/cross-inspect-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/cross-inspect/-/cross-inspect-1.0.1.tgz#15f6f65e4ca963cf4cc1a2b5fef18f6ca328712b" integrity sha512-Pcw1JTvZLSJH83iiGWt6fRcT+BjZlCDRVwYLbUcHzv/CRpB7r0MlSrGbIyQvVSNyGnbt7G4AXuyCiDR3POvZ1A== dependencies: tslib "^2.4.0" cross-spawn@^7.0.6: version "7.0.6" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== dependencies: path-key "^3.1.0" @@ -2831,78 +2358,78 @@ cross-spawn@^7.0.6: csstype@^3.2.3: version "3.2.3" - resolved "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.2.3.tgz#ec48c0f3e993e50648c86da559e2610995cf989a" integrity sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ== date-fns@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz" - integrity sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg== + version "4.4.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-4.4.0.tgz#806539edf45c616b2b76b5f78b88c56ed3c7e036" + integrity sha512-+1UMbeh68lH1SegH83CGWwpb6OHHbpSgr3+s5Eww5M4CAgswBpoWS0AjTOfEJ33HiYKz1hdj/KTFprzXHmq/6w== dateformat@^4.6.3: version "4.6.3" - resolved "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-4.6.3.tgz#556fa6497e5217fedb78821424f8a1c22fa3f4b5" integrity sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA== -debug@4, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.4.0, debug@^4.4.1, debug@^4.4.3, debug@~4.4.1: +debug@4, debug@4.4.3, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.4.0, debug@^4.4.1, debug@^4.4.3, debug@~4.4.1: version "4.4.3" - resolved "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== dependencies: ms "^2.1.3" debug@4.3.4: version "4.3.4" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" debug@~4.3.1: version "4.3.7" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52" integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== dependencies: ms "^2.1.3" deep-eql@^5.0.1: version "5.0.2" - resolved "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-5.0.2.tgz#4b756d8d770a9257300825d52a2c2cff99c3a341" integrity sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q== deep-is@^0.1.3: version "0.1.4" - resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== delayed-stream@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== -denque@^2.1.0: +denque@2.1.0, denque@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/denque/-/denque-2.1.0.tgz#e93e1a6569fb5e66f16a3c2a2964617d349d6ab1" integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw== depd@^2.0.0, depd@~2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== detect-libc@^2.0.1, detect-libc@^2.1.2: version "2.1.2" - resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.1.2.tgz#689c5dcdc1900ef5583a4cb9f6d7b473742074ad" integrity sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ== dotenv@^17.2.3: - version "17.4.1" - resolved "https://registry.npmjs.org/dotenv/-/dotenv-17.4.1.tgz" - integrity sha512-k8DaKGP6r1G30Lx8V4+pCsLzKr8vLmV2paqEj1Y55GdAgJuIqpRp5FfajGF8KtwMxCz9qJc6wUIJnm053d/WCw== + version "17.4.2" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-17.4.2.tgz#c07e54a746e11eba021dd9e1047ced5afdc1c034" + integrity sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw== dunder-proto@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a" integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== dependencies: call-bind-apply-helpers "^1.0.1" @@ -2911,7 +2438,7 @@ dunder-proto@^1.0.1: duplexify@^4.1.3: version "4.1.3" - resolved "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-4.1.3.tgz#a07e1c0d0a2c001158563d32592ba58bddb0236f" integrity sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA== dependencies: end-of-stream "^1.4.1" @@ -2921,94 +2448,95 @@ duplexify@^4.1.3: ecdsa-sig-formatter@1.0.11, ecdsa-sig-formatter@^1.0.11: version "1.0.11" - resolved "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz" + resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== dependencies: safe-buffer "^5.0.1" ee-first@1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== emoji-regex@^8.0.0: version "8.0.0" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== encodeurl@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58" integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg== end-of-stream@^1.1.0, end-of-stream@^1.4.1: version "1.4.5" - resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.5.tgz#7344d711dea40e0b74abc2ed49778743ccedb08c" integrity sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg== dependencies: once "^1.4.0" engine.io-client@~6.6.1: - version "6.6.4" - resolved "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.6.4.tgz" - integrity sha512-+kjUJnZGwzewFDw951CDWcwj35vMNf2fcj7xQWOctq1F2i1jkDdVvdFG9kM/BEChymCH36KgjnW0NsL58JYRxw== + version "6.6.6" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-6.6.6.tgz#8a8f1e451b1f6d4acf413305445e42133d1cbe9a" + integrity sha512-iY6QdftLQ9pyiPoX082bpf/u1UewnOaJrtJIF9T0++QB34lZrj0uP+Q/bj8AlUsAxqhnkTV2BS8SBZSxOmoV5Q== dependencies: "@socket.io/component-emitter" "~3.1.0" debug "~4.4.1" engine.io-parser "~5.2.1" - ws "~8.18.3" + ws "~8.21.0" xmlhttprequest-ssl "~2.1.1" engine.io-parser@~5.2.1: version "5.2.3" - resolved "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.3.tgz#00dc5b97b1f233a23c9398d0209504cf5f94d92f" integrity sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q== engine.io@~6.6.0: - version "6.6.5" - resolved "https://registry.npmjs.org/engine.io/-/engine.io-6.6.5.tgz" - integrity sha512-2RZdgEbXmp5+dVbRm0P7HQUImZpICccJy7rN7Tv+SFa55pH+lxnuw6/K1ZxxBfHoYpSkHLAO92oa8O4SwFXA2A== + version "6.6.9" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.6.9.tgz#fd17e9f4e3a256423592574b60ac262e91af4b82" + integrity sha512-clKkw4C7nJ22mGgoVcCg6V/W/TxdNyIOTr89k2ONZu81qqkddPFDF0LXcbAwhzPD8DjkiRCjzuiO6Y+fkpD4vg== dependencies: "@types/cors" "^2.8.12" "@types/node" ">=10.0.0" + "@types/ws" "^8.5.12" accepts "~1.3.4" base64id "2.0.0" cookie "~0.7.2" cors "~2.8.5" debug "~4.4.1" engine.io-parser "~5.2.1" - ws "~8.18.3" + ws "~8.21.0" entities@^7.0.1: version "7.0.1" - resolved "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz" + resolved "https://registry.yarnpkg.com/entities/-/entities-7.0.1.tgz#26e8a88889db63417dcb9a1e79a3f1bc92b5976b" integrity sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA== es-define-property@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa" integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== es-errors@^1.3.0: version "1.3.0" - resolved "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== es-module-lexer@^1.7.0: version "1.7.0" - resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.7.0.tgz#9159601561880a85f2734560a9099b2c31e5372a" integrity sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA== es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz" - integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== + version "1.1.2" + resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.2.tgz#a2d0b373205724dfa525d23b0c3e1b1ca582c99b" + integrity sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw== dependencies: es-errors "^1.3.0" es-set-tostringtag@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz#f31dbbe0c183b00a6d26eb6325c810c0fd18bd4d" integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA== dependencies: es-errors "^1.3.0" @@ -3016,9 +2544,9 @@ es-set-tostringtag@^2.1.0: has-tostringtag "^1.0.2" hasown "^2.0.2" -esbuild@^0.27.0, esbuild@~0.27.0: +esbuild@^0.27.0: version "0.27.7" - resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.27.7.tgz" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.27.7.tgz#bcadce22b2f3fd76f257e3a64f83a64986fea11f" integrity sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w== optionalDependencies: "@esbuild/aix-ppc64" "0.27.7" @@ -3048,37 +2576,69 @@ esbuild@^0.27.0, esbuild@~0.27.0: "@esbuild/win32-ia32" "0.27.7" "@esbuild/win32-x64" "0.27.7" +esbuild@~0.28.0: + version "0.28.1" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.28.1.tgz#ef45b4634c9c9d97a296aea4114a5f9840f95578" + integrity sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw== + optionalDependencies: + "@esbuild/aix-ppc64" "0.28.1" + "@esbuild/android-arm" "0.28.1" + "@esbuild/android-arm64" "0.28.1" + "@esbuild/android-x64" "0.28.1" + "@esbuild/darwin-arm64" "0.28.1" + "@esbuild/darwin-x64" "0.28.1" + "@esbuild/freebsd-arm64" "0.28.1" + "@esbuild/freebsd-x64" "0.28.1" + "@esbuild/linux-arm" "0.28.1" + "@esbuild/linux-arm64" "0.28.1" + "@esbuild/linux-ia32" "0.28.1" + "@esbuild/linux-loong64" "0.28.1" + "@esbuild/linux-mips64el" "0.28.1" + "@esbuild/linux-ppc64" "0.28.1" + "@esbuild/linux-riscv64" "0.28.1" + "@esbuild/linux-s390x" "0.28.1" + "@esbuild/linux-x64" "0.28.1" + "@esbuild/netbsd-arm64" "0.28.1" + "@esbuild/netbsd-x64" "0.28.1" + "@esbuild/openbsd-arm64" "0.28.1" + "@esbuild/openbsd-x64" "0.28.1" + "@esbuild/openharmony-arm64" "0.28.1" + "@esbuild/sunos-x64" "0.28.1" + "@esbuild/win32-arm64" "0.28.1" + "@esbuild/win32-ia32" "0.28.1" + "@esbuild/win32-x64" "0.28.1" + escalade@^3.1.1: version "3.2.0" - resolved "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== escape-html@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== escape-string-regexp@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== eslint-config-prettier@^9.0.0: version "9.1.2" - resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.2.tgz" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.2.tgz#90deb4fa0259592df774b600dbd1d2249a78ce91" integrity sha512-iI1f+D2ViGn+uvv5HuHVUamg8ll4tN+JRHGc6IJi4TP9Kl976C57fzPXgseXNs8v0iA8aSJpHsTWjDb9QJamGQ== eslint-plugin-prettier@^5.5.5: - version "5.5.5" - resolved "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.5.tgz" - integrity sha512-hscXkbqUZ2sPithAuLm5MXL+Wph+U7wHngPBv9OMWwlP8iaflyxpjTYZkmdgB4/vPIhemRlBEoLrH7UC1n7aUw== + version "5.5.6" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.6.tgz#363ebe4d769bce157ccdd8129ce3efd91dc62564" + integrity sha512-ifetmTcxWfz+4qRW3pH/ujdTq2jQIj59AxJMIN26K5avYgU8dxycUETQonWiW+wPrYXA0j3Try0l1CnwVQtDqQ== dependencies: prettier-linter-helpers "^1.0.1" - synckit "^0.11.12" + synckit "^0.11.13" eslint-scope@^8.4.0: version "8.4.0" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.4.0.tgz#88e646a207fad61436ffa39eb505147200655c82" integrity sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg== dependencies: esrecurse "^4.3.0" @@ -3086,38 +2646,37 @@ eslint-scope@^8.4.0: eslint-visitor-keys@^3.4.3: version "3.4.3" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== eslint-visitor-keys@^4.2.1: version "4.2.1" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz#4cfea60fe7dd0ad8e816e1ed026c1d5251b512c1" integrity sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ== eslint-visitor-keys@^5.0.0: version "5.0.1" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz#9e3c9489697824d2d4ce3a8ad12628f91e9f59be" integrity sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA== eslint@^9.33.0: - version "9.33.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-9.33.0.tgz" - integrity sha512-TS9bTNIryDzStCpJN93aC5VRSW3uTx9sClUn4B87pwiCaJh220otoI0X8mJKr+VcPtniMdN8GKjlwgWGUv5ZKA== + version "9.39.4" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.39.4.tgz#855da1b2e2ad66dc5991195f35e262bcec8117b5" + integrity sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ== dependencies: - "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/eslint-utils" "^4.8.0" "@eslint-community/regexpp" "^4.12.1" - "@eslint/config-array" "^0.21.0" - "@eslint/config-helpers" "^0.3.1" - "@eslint/core" "^0.15.2" - "@eslint/eslintrc" "^3.3.1" - "@eslint/js" "9.33.0" - "@eslint/plugin-kit" "^0.3.5" + "@eslint/config-array" "^0.21.2" + "@eslint/config-helpers" "^0.4.2" + "@eslint/core" "^0.17.0" + "@eslint/eslintrc" "^3.3.5" + "@eslint/js" "9.39.4" + "@eslint/plugin-kit" "^0.4.1" "@humanfs/node" "^0.16.6" "@humanwhocodes/module-importer" "^1.0.1" "@humanwhocodes/retry" "^0.4.2" "@types/estree" "^1.0.6" - "@types/json-schema" "^7.0.15" - ajv "^6.12.4" + ajv "^6.14.0" chalk "^4.0.0" cross-spawn "^7.0.6" debug "^4.3.2" @@ -3136,18 +2695,18 @@ eslint@^9.33.0: is-glob "^4.0.0" json-stable-stringify-without-jsonify "^1.0.1" lodash.merge "^4.6.2" - minimatch "^3.1.2" + minimatch "^3.1.5" natural-compare "^1.4.0" optionator "^0.9.3" esm@^3.2.25: version "3.2.25" - resolved "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz" + resolved "https://registry.yarnpkg.com/esm/-/esm-3.2.25.tgz#342c18c29d56157688ba5ce31f8431fbb795cc10" integrity sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA== espree@^10.0.1, espree@^10.4.0: version "10.4.0" - resolved "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz" + resolved "https://registry.yarnpkg.com/espree/-/espree-10.4.0.tgz#d54f4949d4629005a1fa168d937c3ff1f7e2a837" integrity sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ== dependencies: acorn "^8.15.0" @@ -3155,54 +2714,54 @@ espree@^10.0.1, espree@^10.4.0: eslint-visitor-keys "^4.2.1" esquery@^1.5.0: - version "1.6.0" - resolved "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz" - integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== + version "1.7.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.7.0.tgz#08d048f261f0ddedb5bae95f46809463d9c9496d" + integrity sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g== dependencies: estraverse "^5.1.0" esrecurse@^4.3.0: version "4.3.0" - resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: estraverse "^5.2.0" estraverse@^5.1.0, estraverse@^5.2.0: version "5.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== estree-walker@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== estree-walker@^3.0.3: version "3.0.3" - resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d" integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== dependencies: "@types/estree" "^1.0.0" esutils@^2.0.2: version "2.0.3" - resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== etag@^1.8.1: version "1.8.1" - resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== event-target-shim@^5.0.0: version "5.0.1" - resolved "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== eventemitter2@^6.4.9: version "6.4.9" - resolved "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.9.tgz" + resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.9.tgz#41f2750781b4230ed58827bc119d293471ecb125" integrity sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg== events@3.3.0: @@ -3212,12 +2771,12 @@ events@3.3.0: expect-type@^1.2.1: version "1.3.0" - resolved "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/expect-type/-/expect-type-1.3.0.tgz#0d58ed361877a31bbc4dd6cf71bbfef7faf6bd68" integrity sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA== express@^5.0.0: version "5.2.1" - resolved "https://registry.npmjs.org/express/-/express-5.2.1.tgz" + resolved "https://registry.yarnpkg.com/express/-/express-5.2.1.tgz#8f21d15b6d327f92b4794ecf8cb08a72f956ac04" integrity sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw== dependencies: accepts "^2.0.0" @@ -3251,27 +2810,27 @@ express@^5.0.0: extend@^3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== fast-copy@^4.0.0: version "4.0.3" - resolved "https://registry.npmjs.org/fast-copy/-/fast-copy-4.0.3.tgz" + resolved "https://registry.yarnpkg.com/fast-copy/-/fast-copy-4.0.3.tgz#935adef81c26276dcbe8892347af307b5090206a" integrity sha512-58apWr0GUiDFM8+3afrO6eYwJBn9ZAhDOzG3L+/9llab/haCARS2UIfffmOurYLwbgDRs8n0rfr6qAAPEAuAQw== fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-diff@^1.1.2: version "1.3.0" - resolved "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== fast-glob@^3.3.3: version "3.3.3" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.3.tgz#d06d585ce8dba90a16b0505c543c3ccfb3aeb818" integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg== dependencies: "@nodelib/fs.stat" "^2.0.2" @@ -3282,17 +2841,17 @@ fast-glob@^3.3.3: fast-json-stable-stringify@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== fast-levenshtein@^2.0.6: version "2.0.6" - resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== fast-safe-stringify@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== fast-xml-builder@1.2.0, fast-xml-builder@^1.2.0: @@ -3303,7 +2862,7 @@ fast-xml-builder@1.2.0, fast-xml-builder@^1.2.0: path-expression-matcher "^1.5.0" xml-naming "^0.1.0" -fast-xml-parser@5.5.8, fast-xml-parser@5.8.0, fast-xml-parser@^5.3.4: +fast-xml-parser@5.7.3, fast-xml-parser@5.8.0, fast-xml-parser@^5.3.4: version "5.8.0" resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-5.8.0.tgz#64d71f0f8d4bf23621dffd762aef7e98c1884fc1" integrity sha512-6bIM7fsJxeo3uXv7OncQYsBAMPJ7V16Slahl/6M98C/i2q+vB1+4a0MtrvYwDFEUrwDSbAmeLDRXsOBwrL7yAg== @@ -3316,33 +2875,33 @@ fast-xml-parser@5.5.8, fast-xml-parser@5.8.0, fast-xml-parser@^5.3.4: fastq@^1.6.0: version "1.20.1" - resolved "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.20.1.tgz#ca750a10dc925bc8b18839fd203e3ef4b3ced675" integrity sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw== dependencies: reusify "^1.0.4" fdir@^6.5.0: version "6.5.0" - resolved "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz" + resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.5.0.tgz#ed2ab967a331ade62f18d077dae192684d50d350" integrity sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg== file-entry-cache@^8.0.0: version "8.0.0" - resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz#7787bddcf1131bffb92636c69457bbc0edd6d81f" integrity sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ== dependencies: flat-cache "^4.0.0" fill-range@^7.1.1: version "7.1.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== dependencies: to-regex-range "^5.0.1" finalhandler@^2.1.0: version "2.1.1" - resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-2.1.1.tgz#a2c517a6559852bcdb06d1f8bd7f51b68fad8099" integrity sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA== dependencies: debug "^4.4.0" @@ -3354,7 +2913,7 @@ finalhandler@^2.1.0: find-up@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== dependencies: locate-path "^6.0.0" @@ -3362,7 +2921,7 @@ find-up@^5.0.0: flat-cache@^4.0.0: version "4.0.1" - resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-4.0.1.tgz#0ece39fcb14ee012f4b0410bd33dd9c1f011127c" integrity sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw== dependencies: flatted "^3.2.9" @@ -3375,47 +2934,47 @@ flatted@3.4.2, flatted@^3.2.9: foreground-child@^3.1.0: version "3.3.1" - resolved "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== dependencies: cross-spawn "^7.0.6" signal-exit "^4.0.1" form-data@^2.5.5: - version "2.5.5" - resolved "https://registry.npmjs.org/form-data/-/form-data-2.5.5.tgz" - integrity sha512-jqdObeR2rxZZbPSGL+3VckHMYtu+f9//KXBsVny6JSX/pa38Fy+bGjuG8eW/H6USNQWhLi8Num++cU2yOCNz4A== + version "2.5.6" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.6.tgz#ef39b3d99e2fc9f25420c0db7962fe36cafcd244" + integrity sha512-Ogz/E85h9tlfJzpI6TuFpGcHZFhLrb9Gw8wq9v40CxSCPnv7ahKr6Xgtkn0KYCDQJ8DNn5VoMO8EXr9V5PadyA== dependencies: asynckit "^0.4.0" combined-stream "^1.0.8" es-set-tostringtag "^2.1.0" - hasown "^2.0.2" + hasown "^2.0.4" mime-types "^2.1.35" safe-buffer "^5.2.1" forwarded@0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== fresh@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-2.0.0.tgz#8dd7df6a1b3a1b3a5cf186c05a5dd267622635a4" integrity sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A== fsevents@~2.3.2, fsevents@~2.3.3: version "2.3.3" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== function-bind@^1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== gaxios@^6.0.0, gaxios@^6.0.2, gaxios@^6.1.1: version "6.7.1" - resolved "https://registry.npmjs.org/gaxios/-/gaxios-6.7.1.tgz" + resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-6.7.1.tgz#ebd9f7093ede3ba502685e73390248bb5b7f71fb" integrity sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ== dependencies: extend "^3.0.2" @@ -3426,7 +2985,7 @@ gaxios@^6.0.0, gaxios@^6.0.2, gaxios@^6.1.1: gcp-metadata@^6.1.0: version "6.1.1" - resolved "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-6.1.1.tgz" + resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-6.1.1.tgz#f65aa69f546bc56e116061d137d3f5f90bdec494" integrity sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A== dependencies: gaxios "^6.1.1" @@ -3435,14 +2994,14 @@ gcp-metadata@^6.1.0: generate-function@^2.3.1: version "2.3.1" - resolved "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz" + resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.3.1.tgz#f069617690c10c868e73b8465746764f97c3479f" integrity sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ== dependencies: is-property "^1.0.2" get-intrinsic@^1.2.5, get-intrinsic@^1.2.6, get-intrinsic@^1.3.0: version "1.3.0" - resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== dependencies: call-bind-apply-helpers "^1.0.2" @@ -3458,46 +3017,39 @@ get-intrinsic@^1.2.5, get-intrinsic@^1.2.6, get-intrinsic@^1.3.0: get-package-type@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== get-proto@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1" integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== dependencies: dunder-proto "^1.0.1" es-object-atoms "^1.0.0" -get-tsconfig@^4.7.5: - version "4.14.0" - resolved "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.14.0.tgz" - integrity sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA== - dependencies: - resolve-pkg-maps "^1.0.0" - getopts@2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/getopts/-/getopts-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/getopts/-/getopts-2.3.0.tgz#71e5593284807e03e2427449d4f6712a268666f4" integrity sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA== glob-parent@^5.1.2: version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" glob-parent@^6.0.2: version "6.0.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== dependencies: is-glob "^4.0.3" glob@^10.4.1: version "10.5.0" - resolved "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.5.0.tgz#8ec0355919cd3338c28428a23d4f24ecc5fe738c" integrity sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg== dependencies: foreground-child "^3.1.0" @@ -3509,12 +3061,12 @@ glob@^10.4.1: globals@^14.0.0: version "14.0.0" - resolved "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz" + resolved "https://registry.yarnpkg.com/globals/-/globals-14.0.0.tgz#898d7413c29babcf6bafe56fcadded858ada724e" integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ== google-auth-library@^9.6.3: version "9.15.1" - resolved "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.15.1.tgz" + resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-9.15.1.tgz#0c5d84ed1890b2375f1cd74f03ac7b806b392928" integrity sha512-Jb6Z0+nvECVz+2lzSMt9u98UsoakXxA2HGHMCxh+so3n90XgYWkq5dur19JAJV7ONiJY22yBTyJB1TSkvPq9Ng== dependencies: base64-js "^1.3.0" @@ -3526,25 +3078,25 @@ google-auth-library@^9.6.3: google-logging-utils@^0.0.2: version "0.0.2" - resolved "https://registry.npmjs.org/google-logging-utils/-/google-logging-utils-0.0.2.tgz" + resolved "https://registry.yarnpkg.com/google-logging-utils/-/google-logging-utils-0.0.2.tgz#5fd837e06fa334da450433b9e3e1870c1594466a" integrity sha512-NEgUnEcBiP5HrPzufUkBzJOD/Sxsco3rLNo1F1TNf7ieU8ryUzBhqba8r756CjLX7rn3fHl6iLEwPYuqpoKgQQ== gopd@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== graphql-depth-limit@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/graphql-depth-limit/-/graphql-depth-limit-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/graphql-depth-limit/-/graphql-depth-limit-1.1.0.tgz#59fe6b2acea0ab30ee7344f4c75df39cc18244e8" integrity sha512-+3B2BaG8qQ8E18kzk9yiSdAa75i/hnnOwgSeAxVJctGQPvmeiLtqKOYF6HETCyRjiF7Xfsyal0HbLlxCQkgkrw== dependencies: arrify "^1.0.1" graphql-yoga@^5.21.0: - version "5.21.0" - resolved "https://registry.npmjs.org/graphql-yoga/-/graphql-yoga-5.21.0.tgz" - integrity sha512-PS37UoDihx8209RRl1ogttzWevNYDnGvP7beHkwHzUpUdfZTHsVRTVe1ysGXre1EjwUAePbpez302YSrq70Ngw== + version "5.21.2" + resolved "https://registry.yarnpkg.com/graphql-yoga/-/graphql-yoga-5.21.2.tgz#93c8c15c67b7b515d3c6d70b70b9261984fe97fe" + integrity sha512-IIRF/3xtjj2D6caAWL9177hQ8tV3mWB3hve1GRnz7njPhQ3iY1jFtSp98fNGv0yV9kaPh9kKQ8JWdJZnedVmDw== dependencies: "@envelop/core" "^5.5.1" "@envelop/instrumentation" "^1.0.0" @@ -3555,18 +3107,18 @@ graphql-yoga@^5.21.0: "@graphql-yoga/subscription" "^5.0.5" "@whatwg-node/fetch" "^0.10.6" "@whatwg-node/promise-helpers" "^1.3.2" - "@whatwg-node/server" "^0.10.14" + "@whatwg-node/server" "^0.11.0" lru-cache "^10.0.0" tslib "^2.8.1" graphql@^16.13.2: - version "16.13.2" - resolved "https://registry.npmjs.org/graphql/-/graphql-16.13.2.tgz" - integrity sha512-5bJ+nf/UCpAjHM8i06fl7eLyVC9iuNAjm9qzkiu2ZGhM0VscSvS6WDPfAwkdkBuoXGM9FJSbKl6wylMwP9Ktig== + version "16.14.2" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.14.2.tgz#83faf25869e3df727cc855161db5da85b0e5b2c0" + integrity sha512-Chq1s4CY7jmh8gO2qvLIJyfCDIN+EHLFW/9iShnp1z8FjBQMoodWP1kDC36VAMXXIvAjj4ARa7ntfAV2BrjsbA== gtoken@^7.0.0: version "7.1.0" - resolved "https://registry.npmjs.org/gtoken/-/gtoken-7.1.0.tgz" + resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-7.1.0.tgz#d61b4ebd10132222817f7222b1e6064bd463fc26" integrity sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw== dependencies: gaxios "^6.0.0" @@ -3574,25 +3126,25 @@ gtoken@^7.0.0: has-flag@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== has-symbols@^1.0.3, has-symbols@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== has-tostringtag@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== dependencies: has-symbols "^1.0.3" -hasown@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz" - integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== +hasown@^2.0.2, hasown@^2.0.3, hasown@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.4.tgz#8c62d8cb90beb2aad5d0a5b67581ad9854c3f003" + integrity sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A== dependencies: function-bind "^1.1.2" @@ -3614,22 +3166,22 @@ heic-decode@^2.0.0: help-me@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/help-me/-/help-me-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/help-me/-/help-me-5.0.0.tgz#b1ebe63b967b74060027c2ac61f9be12d354a6f6" integrity sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg== html-entities@^2.5.2: version "2.6.0" - resolved "https://registry.npmjs.org/html-entities/-/html-entities-2.6.0.tgz" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.6.0.tgz#7c64f1ea3b36818ccae3d3fb48b6974208e984f8" integrity sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ== html-escaper@^2.0.0: version "2.0.2" - resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== http-errors@^2.0.0, http-errors@^2.0.1, http-errors@~2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.1.tgz#36d2f65bc909c8790018dd36fb4d93da6caae06b" integrity sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ== dependencies: depd "~2.0.0" @@ -3640,7 +3192,7 @@ http-errors@^2.0.0, http-errors@^2.0.1, http-errors@~2.0.1: http-proxy-agent@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== dependencies: "@tootallnate/once" "2" @@ -3649,7 +3201,7 @@ http-proxy-agent@^5.0.0: https-proxy-agent@^5.0.0: version "5.0.1" - resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== dependencies: agent-base "6" @@ -3657,15 +3209,15 @@ https-proxy-agent@^5.0.0: https-proxy-agent@^7.0.1: version "7.0.6" - resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz#da8dfeac7da130b05c2ba4b59c9b6cd66611a6b9" integrity sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw== dependencies: agent-base "^7.1.2" debug "4" -iconv-lite@^0.7.0, iconv-lite@^0.7.2, iconv-lite@~0.7.0: +iconv-lite@^0.7.2, iconv-lite@~0.7.0: version "0.7.2" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.7.2.tgz#d0bdeac3f12b4835b7359c2ad89c422a4d1cc72e" integrity sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw== dependencies: safer-buffer ">= 2.1.2 < 3.0.0" @@ -3677,17 +3229,17 @@ ieee754@^1.1.4: ignore@^5.2.0: version "5.3.2" - resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== ignore@^7.0.5: version "7.0.5" - resolved "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-7.0.5.tgz#4cb5f6cd7d4c7ab0365738c7aea888baa6d7efd9" integrity sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg== import-fresh@^3.2.1: version "3.3.1" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.1.tgz#9cecb56503c0ada1f2741dbbd6546e4b13b57ccf" integrity sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ== dependencies: parent-module "^1.0.0" @@ -3695,22 +3247,22 @@ import-fresh@^3.2.1: imurmurhash@^0.1.4: version "0.1.4" - resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== inherits@^2.0.3, inherits@~2.0.4: version "2.0.4" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== interpret@^2.2.0: version "2.2.0" - resolved "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== -ioredis@5.10.1, ioredis@^5.10.1: +ioredis@5.10.1: version "5.10.1" - resolved "https://registry.npmjs.org/ioredis/-/ioredis-5.10.1.tgz" + resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-5.10.1.tgz#6082781d8aec8d51ee4936bf81d0610404db1e3d" integrity sha512-HuEDBTI70aYdx1v6U97SbNx9F1+svQKBDo30o0b9fw055LMepzpOOd0Ccg9Q6tbqmBSJaMuY0fB7yw9/vjBYCA== dependencies: "@ioredis/commands" "1.5.1" @@ -3723,75 +3275,88 @@ ioredis@5.10.1, ioredis@^5.10.1: redis-parser "^3.0.0" standard-as-callback "^2.1.0" +ioredis@^5.10.1: + version "5.11.1" + resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-5.11.1.tgz#2d1e52e350a79ee3b00883f3681a410427b49f28" + integrity sha512-ehuGcf94bQXhfagULNXrJdfnWO38v070jxSx/qE87Kjzmu2fU7ro5EFAb+OPituLqgfyuQaym5DlrNydW2sJ9A== + dependencies: + "@ioredis/commands" "1.10.0" + cluster-key-slot "1.1.1" + debug "4.4.3" + denque "2.1.0" + redis-errors "1.2.0" + redis-parser "3.0.0" + standard-as-callback "2.1.0" + ipaddr.js@1.9.1: version "1.9.1" - resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== -is-core-module@^2.16.0: - version "2.16.1" - resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz" - integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== +is-core-module@^2.16.1: + version "2.16.2" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.2.tgz#3e07450a8080ebce3fbf0cac494f4d2ab324e082" + integrity sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA== dependencies: - hasown "^2.0.2" + hasown "^2.0.3" is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-fullwidth-code-point@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: version "4.0.3" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" is-number@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-promise@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-4.0.0.tgz#42ff9f84206c1991d26debf520dd5c01042dd2f3" integrity sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ== is-property@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" integrity sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g== is-stream@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== isexe@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== isolated-vm@^6.1.2: version "6.1.2" - resolved "https://registry.npmjs.org/isolated-vm/-/isolated-vm-6.1.2.tgz" + resolved "https://registry.yarnpkg.com/isolated-vm/-/isolated-vm-6.1.2.tgz#812c655f9dc4e1328a766d520cff6c3a88ee911b" integrity sha512-GGfsHqtlZiiurZaxB/3kY7LLAXR3sgzDul0fom4cSyBjx6ZbjpTrFWiH3z/nUfLJGJ8PIq9LQmQFiAxu24+I7A== dependencies: node-gyp-build "^4.8.4" istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.2: version "3.2.2" - resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756" integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== istanbul-lib-report@^3.0.0, istanbul-lib-report@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d" integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== dependencies: istanbul-lib-coverage "^3.0.0" @@ -3800,7 +3365,7 @@ istanbul-lib-report@^3.0.0, istanbul-lib-report@^3.0.1: istanbul-lib-source-maps@^5.0.6: version "5.0.6" - resolved "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz#acaef948df7747c8eb5fbf1265cb980f6353a441" integrity sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A== dependencies: "@jridgewell/trace-mapping" "^0.3.23" @@ -3809,7 +3374,7 @@ istanbul-lib-source-maps@^5.0.6: istanbul-reports@^3.1.7: version "3.2.0" - resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.2.0.tgz#cb4535162b5784aa623cee21a7252cf2c807ac93" integrity sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA== dependencies: html-escaper "^2.0.0" @@ -3817,7 +3382,7 @@ istanbul-reports@^3.1.7: jackspeak@^3.1.2: version "3.4.3" - resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== dependencies: "@isaacs/cliui" "^8.0.2" @@ -3825,13 +3390,13 @@ jackspeak@^3.1.2: "@pkgjs/parseargs" "^0.11.0" jose@^6.2.2: - version "6.2.2" - resolved "https://registry.npmjs.org/jose/-/jose-6.2.2.tgz" - integrity sha512-d7kPDd34KO/YnzaDOlikGpOurfF0ByC2sEV4cANCtdqLlTfBlw2p14O/5d/zv40gJPbIQxfES3nSx1/oYNyuZQ== + version "6.2.3" + resolved "https://registry.yarnpkg.com/jose/-/jose-6.2.3.tgz#0975197ad973251221c658a3cddc4b951a250c2d" + integrity sha512-YYVDInQKFJfR/xa3ojUTl8c2KoTwiL1R5Wg9YCydwH0x0B9grbzlg5HC7mMjCtUJjbQ/YnGEZIhI5tCgfTb4Hw== joycon@^3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/joycon/-/joycon-3.1.1.tgz#bce8596d6ae808f8b68168f5fc69280996894f03" integrity sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw== jpeg-js@^0.4.4: @@ -3841,46 +3406,46 @@ jpeg-js@^0.4.4: js-tokens@^10.0.0: version "10.0.0" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-10.0.0.tgz" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-10.0.0.tgz#dffe7599b4a8bb7fe30aff8d0235234dffb79831" integrity sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q== js-tokens@^9.0.1: version "9.0.1" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-9.0.1.tgz#2ec43964658435296f6761b34e10671c2d9527f4" integrity sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ== js-yaml@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz" - integrity sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA== + version "4.2.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.2.0.tgz#2bd9e85682dd91bd469afb809d816043b3d49524" + integrity sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw== dependencies: argparse "^2.0.1" json-bigint@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/json-bigint/-/json-bigint-1.0.0.tgz#ae547823ac0cad8398667f8cd9ef4730f5b01ff1" integrity sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ== dependencies: bignumber.js "^9.0.0" json-buffer@3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== json-schema-traverse@^0.4.1: version "0.4.1" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== jsonwebtoken@^9.0.3: version "9.0.3" - resolved "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.3.tgz" + resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.3.tgz#6cd57ab01e9b0ac07cb847d53d3c9b6ee31f7ae2" integrity sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g== dependencies: jws "^4.0.1" @@ -3896,7 +3461,7 @@ jsonwebtoken@^9.0.3: jwa@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-2.0.1.tgz#bf8176d1ad0cd72e0f3f58338595a13e110bc804" integrity sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg== dependencies: buffer-equal-constant-time "^1.0.1" @@ -3905,7 +3470,7 @@ jwa@^2.0.1: jws@^4.0.0, jws@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/jws/-/jws-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/jws/-/jws-4.0.1.tgz#07edc1be8fac20e677b283ece261498bd38f0690" integrity sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA== dependencies: jwa "^2.0.1" @@ -3913,20 +3478,20 @@ jws@^4.0.0, jws@^4.0.1: keyv@^4.5.4: version "4.5.4" - resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== dependencies: json-buffer "3.0.1" kleur@^3.0.3: version "3.0.3" - resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== knex@^3.2.9: - version "3.2.9" - resolved "https://registry.npmjs.org/knex/-/knex-3.2.9.tgz" - integrity sha512-dtAILTjBMaG8YloP5oBxohDIKyIsdQ/TkcVvSjhsksvsjeH63Y0PADyuMDfNZKbVT3Rlx3vEYVBlecbPT/KerA== + version "3.2.10" + resolved "https://registry.yarnpkg.com/knex/-/knex-3.2.10.tgz#ca8f77a10851b1e18b26463a6dc995e563c3b165" + integrity sha512-oypTHfrc9i72iyxaUQBKHOxhcr0xM65MPf6FpN02nimsftXwzXprIkLjfXdubvhbu4PMWLp023q8o8CYvHSuZw== dependencies: colorette "2.0.19" commander "^10.0.0" @@ -3936,7 +3501,7 @@ knex@^3.2.9: get-package-type "^0.1.0" getopts "2.3.0" interpret "^2.2.0" - lodash "^4.17.21" + lodash "^4.18.1" pg-connection-string "2.6.2" rechoir "^0.8.0" resolve-from "^5.0.0" @@ -3945,7 +3510,7 @@ knex@^3.2.9: levn@^0.4.1: version "0.4.1" - resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== dependencies: prelude-ls "^1.2.1" @@ -3958,101 +3523,101 @@ libheif-js@^1.19.8: locate-path@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== dependencies: p-locate "^5.0.0" lodash.defaults@^4.2.0: version "4.2.0" - resolved "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" integrity sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ== lodash.includes@^4.3.0: version "4.3.0" - resolved "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" integrity sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w== lodash.isarguments@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" integrity sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg== lodash.isboolean@^3.0.3: version "3.0.3" - resolved "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" integrity sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg== lodash.isinteger@^4.0.4: version "4.0.4" - resolved "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz" + resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" integrity sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA== lodash.isnumber@^3.0.3: version "3.0.3" - resolved "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" integrity sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw== lodash.isplainobject@^4.0.6: version "4.0.6" - resolved "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== lodash.isstring@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw== lodash.merge@^4.6.2: version "4.6.2" - resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== lodash.once@^4.0.0: version "4.1.1" - resolved "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg== -lodash@^4.17.21: +lodash@^4.18.1: version "4.18.1" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.18.1.tgz#ff2b66c1f6326d59513de2407bf881439812771c" integrity sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q== long@^5.3.2: version "5.3.2" - resolved "https://registry.npmjs.org/long/-/long-5.3.2.tgz" + resolved "https://registry.yarnpkg.com/long/-/long-5.3.2.tgz#1d84463095999262d7d7b7f8bfd4a8cc55167f83" integrity sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA== loupe@^3.1.0, loupe@^3.1.4: version "3.2.1" - resolved "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz" + resolved "https://registry.yarnpkg.com/loupe/-/loupe-3.2.1.tgz#0095cf56dc5b7a9a7c08ff5b1a8796ec8ad17e76" integrity sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ== lru-cache@^10.0.0, lru-cache@^10.2.0: version "10.4.3" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== lru.min@^1.1.0, lru.min@^1.1.4: version "1.1.4" - resolved "https://registry.npmjs.org/lru.min/-/lru.min-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/lru.min/-/lru.min-1.1.4.tgz#6ea1737a8c1ba2300cc87ad46910a4bdffa0117b" integrity sha512-DqC6n3QQ77zdFpCMASA1a3Jlb64Hv2N2DciFGkO/4L9+q/IpIAuRlKOvCXabtRW6cQf8usbmM6BE/TOPysCdIA== luxon@^3.2.1: version "3.7.2" - resolved "https://registry.npmjs.org/luxon/-/luxon-3.7.2.tgz" + resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.7.2.tgz#d697e48f478553cca187a0f8436aff468e3ba0ba" integrity sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew== magic-string@^0.30.17, magic-string@^0.30.21: version "0.30.21" - resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.21.tgz#56763ec09a0fa8091df27879fd94d19078c00d91" integrity sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ== dependencies: "@jridgewell/sourcemap-codec" "^1.5.5" magicast@^0.3.5: version "0.3.5" - resolved "https://registry.npmjs.org/magicast/-/magicast-0.3.5.tgz" + resolved "https://registry.yarnpkg.com/magicast/-/magicast-0.3.5.tgz#8301c3c7d66704a0771eb1bad74274f0ec036739" integrity sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ== dependencies: "@babel/parser" "^7.25.4" @@ -4061,44 +3626,44 @@ magicast@^0.3.5: make-dir@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== dependencies: semver "^7.5.3" math-intrinsics@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9" integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== media-typer@0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== media-typer@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-1.1.0.tgz#6ab74b8f2d3320f2064b2a87a38e7931ff3a5561" integrity sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw== memory-pager@^1.0.2: version "1.5.0" - resolved "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz" + resolved "https://registry.yarnpkg.com/memory-pager/-/memory-pager-1.5.0.tgz#d8751655d22d384682741c972f2c3d6dfa3e66b5" integrity sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg== merge-descriptors@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-2.0.0.tgz#ea922f660635a2249ee565e0449f951e6b603808" integrity sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g== merge2@^1.3.0: version "1.4.1" - resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== micromatch@^4.0.8: version "4.0.8" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== dependencies: braces "^3.0.3" @@ -4106,121 +3671,121 @@ micromatch@^4.0.8: mime-db@1.52.0: version "1.52.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== mime-db@^1.54.0: version "1.54.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.54.0.tgz#cddb3ee4f9c64530dff640236661d42cb6a314f5" integrity sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ== mime-types@^2.1.35, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: mime-db "1.52.0" mime-types@^3.0.0, mime-types@^3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-3.0.2.tgz#39002d4182575d5af036ffa118100f2524b2e2ab" integrity sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A== dependencies: mime-db "^1.54.0" mime@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7" integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== minimatch@^10.2.2: version "10.2.5" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.2.5.tgz#bd48687a0be38ed2961399105600f832095861d1" integrity sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg== dependencies: brace-expansion "^5.0.5" -minimatch@^3.1.2, minimatch@^3.1.5: +minimatch@^3.1.5: version "3.1.5" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.5.tgz#580c88f8d5445f2bd6aa8f3cadefa0de79fbd69e" integrity sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w== dependencies: brace-expansion "^1.1.7" minimatch@^9.0.4: version "9.0.9" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.9.tgz#9b0cb9fcb78087f6fd7eababe2511c4d3d60574e" integrity sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg== dependencies: brace-expansion "^2.0.2" minimist@^1.2.6: version "1.2.8" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== "minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: version "7.1.3" - resolved "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.3.tgz#79389b4eb1bb2d003a9bba87d492f2bd37bdc65b" integrity sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A== mongodb-connection-string-url@^7.0.0: version "7.0.1" - resolved "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-7.0.1.tgz" + resolved "https://registry.yarnpkg.com/mongodb-connection-string-url/-/mongodb-connection-string-url-7.0.1.tgz#347b664cd9e6ddff10d5c1c6010d6d8dbfe9272d" integrity sha512-h0AZ9A7IDVwwHyMxmdMXKy+9oNlF0zFoahHiX3vQ8e3KFcSP3VmsmfvtRSuLPxmyv2vjIDxqty8smTgie/SNRQ== dependencies: "@types/whatwg-url" "^13.0.0" whatwg-url "^14.1.0" mongodb@^7.1.1: - version "7.1.1" - resolved "https://registry.npmjs.org/mongodb/-/mongodb-7.1.1.tgz" - integrity sha512-067DXiMjcpYQl6bGjWQoTUEE9UoRViTtKFcoqX7z08I+iDZv/emH1g8XEFiO3qiDfXAheT5ozl1VffDTKhIW/w== + version "7.3.0" + resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-7.3.0.tgz#bd7d47c34590861fd37741914f259cea199d6c07" + integrity sha512-WpCqSx7JAU9vcyjm/SU7ydnHls2YrfU3Y3sx4Ml9D7sPe4mXPlaapndiurDXrQ7/VvJkB4/i7b7WovHb8bd8sg== dependencies: "@mongodb-js/saslprep" "^1.3.0" - bson "^7.1.1" + bson "^7.2.0" mongodb-connection-string-url "^7.0.0" ms@2.1.2: version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== ms@3.0.0-canary.202508261828: version "3.0.0-canary.202508261828" - resolved "https://registry.npmjs.org/ms/-/ms-3.0.0-canary.202508261828.tgz" + resolved "https://registry.yarnpkg.com/ms/-/ms-3.0.0-canary.202508261828.tgz#be2e8829740af5bd1db8605ca4fcb0d1ff44c11f" integrity sha512-NotsCoUCIUkojWCzQff4ttdCfIPoA1UGZsyQbi7KmqkNRfKCrvga8JJi2PknHymHOuor0cJSn/ylj52Cbt2IrQ== ms@^2.1.1, ms@^2.1.3: version "2.1.3" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -msgpackr-extract@^3.0.2: - version "3.0.3" - resolved "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-3.0.3.tgz" - integrity sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA== +msgpackr-extract@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/msgpackr-extract/-/msgpackr-extract-3.0.4.tgz#d252698947f7a1a62478d22bfb789ba48dd4c1ac" + integrity sha512-4kmO/MdyUIkLIvTPr8VHLil4AtoKIoniWPIEk5+CDy0xnWC84azhSFmuJ7PxZdsYtiP5kEeQsORAVIeMgxT+Hw== dependencies: node-gyp-build-optional-packages "5.2.2" optionalDependencies: - "@msgpackr-extract/msgpackr-extract-darwin-arm64" "3.0.3" - "@msgpackr-extract/msgpackr-extract-darwin-x64" "3.0.3" - "@msgpackr-extract/msgpackr-extract-linux-arm" "3.0.3" - "@msgpackr-extract/msgpackr-extract-linux-arm64" "3.0.3" - "@msgpackr-extract/msgpackr-extract-linux-x64" "3.0.3" - "@msgpackr-extract/msgpackr-extract-win32-x64" "3.0.3" - -msgpackr@1.11.5: - version "1.11.5" - resolved "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.5.tgz" - integrity sha512-UjkUHN0yqp9RWKy0Lplhh+wlpdt9oQBYgULZOiFhV3VclSF1JnSQWZ5r9gORQlNYaUKQoR8itv7g7z1xDDuACA== + "@msgpackr-extract/msgpackr-extract-darwin-arm64" "3.0.4" + "@msgpackr-extract/msgpackr-extract-darwin-x64" "3.0.4" + "@msgpackr-extract/msgpackr-extract-linux-arm" "3.0.4" + "@msgpackr-extract/msgpackr-extract-linux-arm64" "3.0.4" + "@msgpackr-extract/msgpackr-extract-linux-x64" "3.0.4" + "@msgpackr-extract/msgpackr-extract-win32-x64" "3.0.4" + +msgpackr@2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/msgpackr/-/msgpackr-2.0.2.tgz#2b9838ba796d4c9760878a04d4fa69391178b5ac" + integrity sha512-c5hYOXFbP79Slh6Dzd2wzk+jnV7mX1UxfMYtilnY1NmalXPqG8DGb5cYCMBrW4AsH3zekBBZd4QrKz9NhtvYLQ== optionalDependencies: - msgpackr-extract "^3.0.2" + msgpackr-extract "^3.0.4" multer@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/multer/-/multer-2.1.1.tgz" - integrity sha512-mo+QTzKlx8R7E5ylSXxWzGoXoZbOsRMpyitcht8By2KHvMbf3tjwosZ/Mu/XYU6UuJ3VZnODIrak5ZrPiPyB6A== + version "2.2.0" + resolved "https://registry.yarnpkg.com/multer/-/multer-2.2.0.tgz#f005268ca816324ba7335e3b48166896a3fa5d79" + integrity sha512-6rdyFg2kLrMh9Jee7/BMPuV9lEAd7lLW2YUpF9/YxR7njyoUwwQ0ZPh3TaIY50Sw6vlyD2HW3wGOkTS4P79xrQ== dependencies: append-field "^1.0.0" busboy "^1.6.0" @@ -4228,9 +3793,9 @@ multer@^2.1.1: type-is "^1.6.18" mysql2@^3.20.0: - version "3.20.0" - resolved "https://registry.npmjs.org/mysql2/-/mysql2-3.20.0.tgz" - integrity sha512-eCLUs7BNbgA6nf/MZXsaBO1SfGs0LtLVrJD3WeWq+jPLDWkSufTD+aGMwykfUVPdZnblaUK1a8G/P63cl9FkKg== + version "3.22.5" + resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-3.22.5.tgz#26c51c035ac577579ad239168015ad1eec321679" + integrity sha512-95uZ2TrPWAZdwpB3vvvDbmEMcNG8yIeNCyu6GUcr/QnWEE/wXm7+mhOCsdQfWQDTV7qYT/PDUZ4U4UPP4AsXqQ== dependencies: aws-ssl-profiles "^1.1.2" denque "^2.1.0" @@ -4243,92 +3808,92 @@ mysql2@^3.20.0: named-placeholders@^1.1.6: version "1.1.6" - resolved "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.6.tgz" + resolved "https://registry.yarnpkg.com/named-placeholders/-/named-placeholders-1.1.6.tgz#c50c6920b43f258f59c16add1e56654f5cc02bb5" integrity sha512-Tz09sEL2EEuv5fFowm419c1+a/jSMiBjI9gHxVLrVdbUkkNUUfjsVYs9pVZu5oCon/kmRh9TfLEObFtkVxmY0w== dependencies: lru.min "^1.1.0" nanoid@^3.3.12: - version "3.3.12" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.12.tgz#ab3d912e217a6d0a514f00a72a16543a28982c05" - integrity sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ== + version "3.3.15" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.15.tgz#36c490fad8c6e86c824c940dfdde999b69ed4316" + integrity sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA== natural-compare@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== negotiator@0.6.3: version "0.6.3" - resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== negotiator@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-1.0.0.tgz#b6c91bb47172d69f93cfd7c357bbb529019b5f6a" integrity sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg== node-abort-controller@3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/node-abort-controller/-/node-abort-controller-3.1.1.tgz#a94377e964a9a37ac3976d848cb5c765833b8548" integrity sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ== node-fetch@^2.6.9: version "2.7.0" - resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== dependencies: whatwg-url "^5.0.0" node-gyp-build-optional-packages@5.2.2: version "5.2.2" - resolved "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.2.2.tgz" + resolved "https://registry.yarnpkg.com/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.2.2.tgz#522f50c2d53134d7f3a76cd7255de4ab6c96a3a4" integrity sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw== dependencies: detect-libc "^2.0.1" node-gyp-build@^4.8.4: version "4.8.4" - resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.4.tgz#8a70ee85464ae52327772a90d66c6077a900cfc8" integrity sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ== notepack.io@~3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/notepack.io/-/notepack.io-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/notepack.io/-/notepack.io-3.0.1.tgz#2c2c9de1bd4e64a79d34e33c413081302a0d4019" integrity sha512-TKC/8zH5pXIAMVQio2TvVDTtPRX+DJPHDqjRbxogtFiByHyzKmy96RA0JtCQJ+WouyyL4A10xomQzgbUT+1jCg== object-assign@^4: version "4.1.1" - resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-inspect@^1.13.3: +object-inspect@^1.13.3, object-inspect@^1.13.4: version "1.13.4" - resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.4.tgz#8375265e21bc20d0fa582c22e1b13485d6e00213" integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew== on-exit-leak-free@^2.1.0: version "2.1.2" - resolved "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz#fed195c9ebddb7d9e4c3842f93f281ac8dadd3b8" integrity sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA== on-finished@^2.4.1: version "2.4.1" - resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== dependencies: ee-first "1.1.1" once@^1.3.1, once@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" optionator@^0.9.3: version "0.9.4" - resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== dependencies: deep-is "^0.1.3" @@ -4340,58 +3905,58 @@ optionator@^0.9.3: p-limit@^3.0.1, p-limit@^3.0.2: version "3.1.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: yocto-queue "^0.1.0" p-locate@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== dependencies: p-limit "^3.0.2" package-json-from-dist@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== parent-module@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== dependencies: callsites "^3.0.0" parseurl@^1.3.3: version "1.3.3" - resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== path-exists@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== path-expression-matcher@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/path-expression-matcher/-/path-expression-matcher-1.5.0.tgz#3b98545dc88ffebb593e2d8458d0929da9275f4a" - integrity sha512-cbrerZV+6rvdQrrD+iGMcZFEiiSrbv9Tfdkvnusy6y0x0GKBXREFg/Y65GhIfm0tnLntThhzCnfKwp1WRjeCyQ== + version "1.6.0" + resolved "https://registry.yarnpkg.com/path-expression-matcher/-/path-expression-matcher-1.6.0.tgz#a94b623c5a24b1087eb348b02fa5dae8cb363212" + integrity sha512-e5y7RCLHKjemsgQ4eqGJtPyr10ILz25HO7flzxhTV8bgvd5yHx98DGtCAtbVW9f2TqnYI/gEVZd+vz7snrdPTw== path-key@^3.1.0: version "3.1.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-parse@^1.0.7: version "1.0.7" - resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== path-scurry@^1.11.1: version "1.11.1" - resolved "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== dependencies: lru-cache "^10.2.0" @@ -4399,52 +3964,52 @@ path-scurry@^1.11.1: path-to-regexp@^8.0.0: version "8.4.2" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.4.2.tgz" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-8.4.2.tgz#795c420c4f7ca45c5b887366f622ee0c9852cccd" integrity sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA== pathe@^2.0.3: version "2.0.3" - resolved "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/pathe/-/pathe-2.0.3.tgz#3ecbec55421685b70a9da872b2cff3e1cbed1716" integrity sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w== pathval@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-2.0.1.tgz#8855c5a2899af072d6ac05d11e46045ad0dc605d" integrity sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ== -pg-cloudflare@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.3.0.tgz" - integrity sha512-6lswVVSztmHiRtD6I8hw4qP/nDm1EJbKMRhf3HCYaqud7frGysPv7FYJ5noZQdhQtN2xJnimfMtvQq21pdbzyQ== +pg-cloudflare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/pg-cloudflare/-/pg-cloudflare-1.4.0.tgz#4b4c20e6d8ae531d400730f4804571a8d62f1497" + integrity sha512-Vo7z/6rrQYxpNRylp4Tlob2elzbh+N/MOQbxFVWCxS7oEx6jF53GTJFxK2WWpKuBRkmiin4Mt+xofFDjx09R0A== pg-connection-string@2.6.2: version "2.6.2" - resolved "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.2.tgz" + resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.6.2.tgz#713d82053de4e2bd166fab70cd4f26ad36aab475" integrity sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA== -pg-connection-string@^2.12.0: - version "2.12.0" - resolved "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.12.0.tgz" - integrity sha512-U7qg+bpswf3Cs5xLzRqbXbQl85ng0mfSV/J0nnA31MCLgvEaAo7CIhmeyrmJpOr7o+zm0rXK+hNnT5l9RHkCkQ== +pg-connection-string@^2.14.0: + version "2.14.0" + resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.14.0.tgz#abc26ee4f37c56c0f3ae0fcf0b0653cc4e1c0fd9" + integrity sha512-XwWDGcLRGCXAR8F/AM5bG7Q+A3Wm2s6QeEjlOKZLlH3UYcguiqCWKyWXVag5TLTIjR7oOJUY8kcADaZgWPyLeg== pg-int8@1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c" integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== -pg-pool@^3.13.0: - version "3.13.0" - resolved "https://registry.npmjs.org/pg-pool/-/pg-pool-3.13.0.tgz" - integrity sha512-gB+R+Xud1gLFuRD/QgOIgGOBE2KCQPaPwkzBBGC9oG69pHTkhQeIuejVIk3/cnDyX39av2AxomQiyPT13WKHQA== +pg-pool@^3.14.0: + version "3.14.0" + resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.14.0.tgz#f35ae4eb846780cad71af24099b3edfa9781ad90" + integrity sha512-gKtPkFdQPU3DksooVLi9LsjZxrsBUZIpa+7aVx+LV5pNh0KzP4Zleud2po+ConrxbuXGBJ6Hfer6hdgpIBpBaw== -pg-protocol@^1.13.0: - version "1.13.0" - resolved "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.13.0.tgz" - integrity sha512-zzdvXfS6v89r6v7OcFCHfHlyG/wvry1ALxZo4LqgUoy7W9xhBDMaqOuMiF3qEV45VqsN6rdlcehHrfDtlCPc8w== +pg-protocol@^1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.15.0.tgz#758f6c0679cc0bbf4938603b7597703f333180c0" + integrity sha512-cq9sECI5s0+uPUXjbz8ioyPJni6RzsRib0US67i5IoTZKw8fNeYlVE7u8F4dG7vEJJtc5wdD1K189lCCUwqWTQ== pg-types@2.2.0: version "2.2.0" - resolved "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-2.2.0.tgz#2d0250d636454f7cfa3b6ae0382fdfa8063254a3" integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA== dependencies: pg-int8 "1.0.1" @@ -4454,28 +4019,28 @@ pg-types@2.2.0: postgres-interval "^1.1.0" pg@^8.20.0: - version "8.20.0" - resolved "https://registry.npmjs.org/pg/-/pg-8.20.0.tgz" - integrity sha512-ldhMxz2r8fl/6QkXnBD3CR9/xg694oT6DZQ2s6c/RI28OjtSOpxnPrUCGOBJ46RCUxcWdx3p6kw/xnDHjKvaRA== + version "8.22.0" + resolved "https://registry.yarnpkg.com/pg/-/pg-8.22.0.tgz#55ca3975026180c6dced6eec3a20a844c2dc9237" + integrity sha512-8wih1vVIBMxoUM2oB4soJsD9tDnDpLv4OXBJ+EJzFsvycD+lfyIreC2gGHq78f8jbLLt+bvlPTFdFZfJkOuzAA== dependencies: - pg-connection-string "^2.12.0" - pg-pool "^3.13.0" - pg-protocol "^1.13.0" + pg-connection-string "^2.14.0" + pg-pool "^3.14.0" + pg-protocol "^1.15.0" pg-types "2.2.0" pgpass "1.0.5" optionalDependencies: - pg-cloudflare "^1.3.0" + pg-cloudflare "^1.4.0" pgpass@1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.5.tgz#9b873e4a564bb10fa7a7dbd55312728d422a223d" integrity sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug== dependencies: split2 "^4.1.0" picocolors@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== picomatch@^2.3.1: @@ -4485,19 +4050,19 @@ picomatch@^2.3.1: picomatch@^4.0.2, picomatch@^4.0.3, picomatch@^4.0.4: version "4.0.4" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.4.tgz#fd6f5e00a143086e074dffe4c924b8fb293b0589" integrity sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A== pino-abstract-transport@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-3.0.0.tgz#b21e5f33a297e8c4c915c62b3ce5dd4a87a52c23" integrity sha512-wlfUczU+n7Hy/Ha5j9a/gZNy7We5+cXp8YL+X+PG8S0KXxw7n/JXA3c46Y0zQznIJ83URJiwy7Lh56WLokNuxg== dependencies: split2 "^4.0.0" pino-pretty@^13.1.3: version "13.1.3" - resolved "https://registry.npmjs.org/pino-pretty/-/pino-pretty-13.1.3.tgz" + resolved "https://registry.yarnpkg.com/pino-pretty/-/pino-pretty-13.1.3.tgz#2274cccda925dd355c104079a5029f6598d0381b" integrity sha512-ttXRkkOz6WWC95KeY9+xxWL6AtImwbyMHrL1mSwqwW9u+vLp/WIElvHvCSDg0xO/Dzrggz1zv3rN5ovTRVowKg== dependencies: colorette "^2.0.7" @@ -4516,7 +4081,7 @@ pino-pretty@^13.1.3: pino-roll@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/pino-roll/-/pino-roll-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/pino-roll/-/pino-roll-4.0.0.tgz#cae376045fee327753f924215cc67a1515afc04c" integrity sha512-axI1aQaIxXdw1F4OFFli1EDxIrdYNGLowkw/ZoZogX8oCSLHUghzwVVXUS8U+xD/Savwa5IXpiXmsSGKFX/7Sg== dependencies: date-fns "^4.1.0" @@ -4524,12 +4089,12 @@ pino-roll@^4.0.0: pino-std-serializers@^7.0.0: version "7.1.0" - resolved "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.1.0.tgz" + resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-7.1.0.tgz#a7b0cd65225f29e92540e7853bd73b07479893fc" integrity sha512-BndPH67/JxGExRgiX1dX0w1FvZck5Wa4aal9198SrRhZjH3GxKQUKIBnYJTdj2HDN3UQAS06HlfcSbQj2OHmaw== pino@^10.3.1: version "10.3.1" - resolved "https://registry.npmjs.org/pino/-/pino-10.3.1.tgz" + resolved "https://registry.yarnpkg.com/pino/-/pino-10.3.1.tgz#6552c8f8d8481844c9e452e7bf0be90bff1939ce" integrity sha512-r34yH/GlQpKZbU1BvFFqOjhISRo1MNx1tWYsYvmj6KIRHSPMT2+yHOEb1SG6NMvRoHRF0a07kCOox/9yakl1vg== dependencies: "@pinojs/redact" "^0.4.0" @@ -4549,7 +4114,7 @@ pngjs@^6.0.0: resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-6.0.0.tgz#ca9e5d2aa48db0228a52c419c3308e87720da821" integrity sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg== -postcss@8.5.15, postcss@^8.5.6, postcss@^8.5.8: +postcss@8.5.15, postcss@^8.5.15, postcss@^8.5.6: version "8.5.15" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.15.tgz#d1eaf677a324e9ec02196da2d3fecf4a0b9a735c" integrity sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A== @@ -4560,51 +4125,51 @@ postcss@8.5.15, postcss@^8.5.6, postcss@^8.5.8: postgres-array@~2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e" integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA== postgres-bytea@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz" - integrity sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w== + version "1.0.1" + resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.1.tgz#c40b3da0222c500ff1e51c5d7014b60b79697c7a" + integrity sha512-5+5HqXnsZPE65IJZSMkZtURARZelel2oXUEO8rH83VS/hxH5vv1uHquPg5wZs8yMAfdv971IU+kcPUczi7NVBQ== postgres-date@~1.0.4: version "1.0.7" - resolved "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz" + resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.7.tgz#51bc086006005e5061c591cee727f2531bf641a8" integrity sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q== postgres-interval@^1.1.0: version "1.2.0" - resolved "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695" integrity sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ== dependencies: xtend "^4.0.0" prelude-ls@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== prettier-linter-helpers@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.1.tgz#6a31f88a4bad6c7adda253de12ba4edaea80ebcd" integrity sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg== dependencies: fast-diff "^1.1.2" prettier@^3.8.1: - version "3.8.1" - resolved "https://registry.npmjs.org/prettier/-/prettier-3.8.1.tgz" - integrity sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg== + version "3.8.4" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.8.4.tgz#f334f013ac04a96676f24dabc23c1c4ae1bae411" + integrity sha512-N2MylSdi48+5N/6S5j+maeHbUSIzzZ5uOcX5Hm4QpV8Dkb1HFjfAKTKX6yNPJQD9AhcT3ifHNB66tWTTJDi11Q== process-warning@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/process-warning/-/process-warning-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-5.0.0.tgz#566e0bf79d1dff30a72d8bbbe9e8ecefe8d378d7" integrity sha512-a39t9ApHNx2L4+HBnQKqxxHNs1r7KF+Intd8Q/g1bUh6q0WIp9voPXJ/x0j+ZL45KF1pJd9+q2jLIRMfvEshkA== prompts@^2.4.2: version "2.4.2" - resolved "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== dependencies: kleur "^3.0.3" @@ -4612,26 +4177,26 @@ prompts@^2.4.2: proxy-addr@^2.0.7: version "2.0.7" - resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== dependencies: forwarded "0.2.0" ipaddr.js "1.9.1" pump@^3.0.0: - version "3.0.3" - resolved "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz" - integrity sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA== + version "3.0.4" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.4.tgz#1f313430527fa8b905622ebd22fe1444e757ab3c" + integrity sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA== dependencies: end-of-stream "^1.1.0" once "^1.3.1" punycode@^2.1.0, punycode@^2.3.1: version "2.3.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== -qs@6.15.2, qs@^6.14.0, qs@^6.14.1, qs@^6.15.2: +qs@6.15.2, qs@^6.14.0, qs@^6.15.2: version "6.15.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.15.2.tgz#fd55426d710403ddccc45e0f9eab16db7727ece9" integrity sha512-Rzq0KEyX/w/tEybncDgdkZrJgVUsUMk3xjh3t5bv3S1HTAtg+uOYt72+ZfwiQwKdysThkTBdL/rTi6HDmX9Ddw== @@ -4640,22 +4205,22 @@ qs@6.15.2, qs@^6.14.0, qs@^6.14.1, qs@^6.15.2: queue-microtask@^1.2.2: version "1.2.3" - resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== quick-format-unescaped@^4.0.3: version "4.0.4" - resolved "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz" + resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz#93ef6dd8d3453cbc7970dd614fad4c5954d6b5a7" integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg== range-parser@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@^3.0.1: +raw-body@^3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-3.0.2.tgz#3e3ada5ae5568f9095d84376fd3a49b8fb000a51" integrity sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA== dependencies: bytes "~3.1.2" @@ -4665,7 +4230,7 @@ raw-body@^3.0.1: readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.5.0: version "3.6.2" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== dependencies: inherits "^2.0.3" @@ -4674,55 +4239,56 @@ readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.5.0: real-require@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/real-require/-/real-require-0.2.0.tgz#209632dea1810be2ae063a6ac084fee7e33fba78" integrity sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg== +real-require@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/real-require/-/real-require-1.0.0.tgz#e4f0a3737e8060c513b60c2652c58b8ef56bc8a9" + integrity sha512-P4nbQYQfePJxRSmY+v/KINxVucm4NF3p3s7pJveMTtom52FR4YGltUQLB8idDXwDDWW+eYrWDFbuzUnjoWHF7g== + rechoir@^0.8.0: version "0.8.0" - resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.8.0.tgz#49f866e0d32146142da3ad8f0eff352b3215ff22" integrity sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ== dependencies: resolve "^1.20.0" -redis-errors@^1.0.0, redis-errors@^1.2.0: +redis-errors@1.2.0, redis-errors@^1.0.0, redis-errors@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/redis-errors/-/redis-errors-1.2.0.tgz#eb62d2adb15e4eaf4610c04afe1529384250abad" integrity sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w== -redis-parser@^3.0.0: +redis-parser@3.0.0, redis-parser@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-3.0.0.tgz#b66d828cdcafe6b4b8a428a7def4c6bcac31c8b4" integrity sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A== dependencies: redis-errors "^1.0.0" resolve-from@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== resolve-from@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve-pkg-maps@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz" - integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== - resolve@^1.20.0: - version "1.22.10" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz" - integrity sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w== + version "1.22.12" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.12.tgz#f5b2a680897c69c238a13cd16b15671f8b73549f" + integrity sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA== dependencies: - is-core-module "^2.16.0" + es-errors "^1.3.0" + is-core-module "^2.16.1" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" retry-request@^7.0.0: version "7.0.2" - resolved "https://registry.npmjs.org/retry-request/-/retry-request-7.0.2.tgz" + resolved "https://registry.yarnpkg.com/retry-request/-/retry-request-7.0.2.tgz#60bf48cfb424ec01b03fca6665dee91d06dd95f3" integrity sha512-dUOvLMJ0/JJYEn8NrpOaGNE7X3vpI5XlZS/u0ANjqtcZVKnIxP7IgCFwrKTxENw29emmwug53awKtaMm4i9g5w== dependencies: "@types/request" "^2.48.8" @@ -4731,51 +4297,51 @@ retry-request@^7.0.0: retry@0.13.1: version "0.13.1" - resolved "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== reusify@^1.0.4: version "1.1.0" - resolved "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.1.0.tgz#0fe13b9522e1473f51b558ee796e08f11f9b489f" integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw== rollup@^4.43.0: - version "4.60.2" - resolved "https://registry.npmjs.org/rollup/-/rollup-4.60.2.tgz" - integrity sha512-J9qZyW++QK/09NyN/zeO0dG/1GdGfyp9lV8ajHnRVLfo/uFsbji5mHnDgn/qYdUHyCkM2N+8VyspgZclfAh0eQ== + version "4.62.2" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.62.2.tgz#d90fc4cb811f071303c890b779595634f35f9541" + integrity sha512-RFnrW4lhXA3s3eqHDZvN654g8OTjzRfqpIRJYczCGB6HzphckVAi/Qh4tbPUbRuDi7s1Llv8g/NspLkttY3gTA== dependencies: - "@types/estree" "1.0.8" + "@types/estree" "1.0.9" optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.60.2" - "@rollup/rollup-android-arm64" "4.60.2" - "@rollup/rollup-darwin-arm64" "4.60.2" - "@rollup/rollup-darwin-x64" "4.60.2" - "@rollup/rollup-freebsd-arm64" "4.60.2" - "@rollup/rollup-freebsd-x64" "4.60.2" - "@rollup/rollup-linux-arm-gnueabihf" "4.60.2" - "@rollup/rollup-linux-arm-musleabihf" "4.60.2" - "@rollup/rollup-linux-arm64-gnu" "4.60.2" - "@rollup/rollup-linux-arm64-musl" "4.60.2" - "@rollup/rollup-linux-loong64-gnu" "4.60.2" - "@rollup/rollup-linux-loong64-musl" "4.60.2" - "@rollup/rollup-linux-ppc64-gnu" "4.60.2" - "@rollup/rollup-linux-ppc64-musl" "4.60.2" - "@rollup/rollup-linux-riscv64-gnu" "4.60.2" - "@rollup/rollup-linux-riscv64-musl" "4.60.2" - "@rollup/rollup-linux-s390x-gnu" "4.60.2" - "@rollup/rollup-linux-x64-gnu" "4.60.2" - "@rollup/rollup-linux-x64-musl" "4.60.2" - "@rollup/rollup-openbsd-x64" "4.60.2" - "@rollup/rollup-openharmony-arm64" "4.60.2" - "@rollup/rollup-win32-arm64-msvc" "4.60.2" - "@rollup/rollup-win32-ia32-msvc" "4.60.2" - "@rollup/rollup-win32-x64-gnu" "4.60.2" - "@rollup/rollup-win32-x64-msvc" "4.60.2" + "@rollup/rollup-android-arm-eabi" "4.62.2" + "@rollup/rollup-android-arm64" "4.62.2" + "@rollup/rollup-darwin-arm64" "4.62.2" + "@rollup/rollup-darwin-x64" "4.62.2" + "@rollup/rollup-freebsd-arm64" "4.62.2" + "@rollup/rollup-freebsd-x64" "4.62.2" + "@rollup/rollup-linux-arm-gnueabihf" "4.62.2" + "@rollup/rollup-linux-arm-musleabihf" "4.62.2" + "@rollup/rollup-linux-arm64-gnu" "4.62.2" + "@rollup/rollup-linux-arm64-musl" "4.62.2" + "@rollup/rollup-linux-loong64-gnu" "4.62.2" + "@rollup/rollup-linux-loong64-musl" "4.62.2" + "@rollup/rollup-linux-ppc64-gnu" "4.62.2" + "@rollup/rollup-linux-ppc64-musl" "4.62.2" + "@rollup/rollup-linux-riscv64-gnu" "4.62.2" + "@rollup/rollup-linux-riscv64-musl" "4.62.2" + "@rollup/rollup-linux-s390x-gnu" "4.62.2" + "@rollup/rollup-linux-x64-gnu" "4.62.2" + "@rollup/rollup-linux-x64-musl" "4.62.2" + "@rollup/rollup-openbsd-x64" "4.62.2" + "@rollup/rollup-openharmony-arm64" "4.62.2" + "@rollup/rollup-win32-arm64-msvc" "4.62.2" + "@rollup/rollup-win32-ia32-msvc" "4.62.2" + "@rollup/rollup-win32-x64-gnu" "4.62.2" + "@rollup/rollup-win32-x64-msvc" "4.62.2" fsevents "~2.3.2" router@^2.2.0: version "2.2.0" - resolved "https://registry.npmjs.org/router/-/router-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/router/-/router-2.2.0.tgz#019be620b711c87641167cc79b99090f00b146ef" integrity sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ== dependencies: debug "^4.4.0" @@ -4786,39 +4352,44 @@ router@^2.2.0: run-parallel@^1.1.9: version "1.2.0" - resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== dependencies: queue-microtask "^1.2.2" safe-buffer@^5.0.1, safe-buffer@^5.2.1, safe-buffer@~5.2.0: version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-stable-stringify@^2.3.1: version "2.5.0" - resolved "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz" + resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz#4ca2f8e385f2831c432a719b108a3bf7af42a1dd" integrity sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA== "safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" - resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== secure-json-parse@^4.0.0: version "4.1.0" - resolved "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/secure-json-parse/-/secure-json-parse-4.1.0.tgz#4f1ab41c67a13497ea1b9131bb4183a22865477c" integrity sha512-l4KnYfEyqYJxDwlNVyRfO2E4NTHfMKAWdUuA8J0yve2Dz/E/PdBepY03RvyJpssIpRFwJoCD55wA+mEDs6ByWA== -semver@7.7.4, semver@^7.5.3, semver@^7.5.4, semver@^7.7.3: - version "7.7.4" - resolved "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz" - integrity sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA== +semver@7.8.1: + version "7.8.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.8.1.tgz#bf4970b5e70fda0686363cc18bfe8805d5ed957e" + integrity sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg== + +semver@^7.5.3, semver@^7.5.4, semver@^7.7.3: + version "7.8.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.8.5.tgz#39b646037dd50c14fb451e7e4cac58ed8b863f69" + integrity sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA== send@^1.1.0, send@^1.2.0: version "1.2.1" - resolved "https://registry.npmjs.org/send/-/send-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/send/-/send-1.2.1.tgz#9eab743b874f3550f40a26867bf286ad60d3f3ed" integrity sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ== dependencies: debug "^4.4.3" @@ -4835,7 +4406,7 @@ send@^1.1.0, send@^1.2.0: serve-static@^2.2.0: version "2.2.1" - resolved "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-2.2.1.tgz#7f186a4a4e5f5b663ad7a4294ff1bf37cf0e98a9" integrity sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw== dependencies: encodeurl "^2.0.0" @@ -4845,12 +4416,12 @@ serve-static@^2.2.0: setprototypeof@~1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== sharp@^0.34.5: version "0.34.5" - resolved "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz" + resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.34.5.tgz#b6f148e4b8c61f1797bde11a9d1cfebbae2c57b0" integrity sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg== dependencies: "@img/colour" "^1.0.0" @@ -4884,27 +4455,27 @@ sharp@^0.34.5: shebang-command@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: shebang-regex "^3.0.0" shebang-regex@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -side-channel-list@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz" - integrity sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA== +side-channel-list@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/side-channel-list/-/side-channel-list-1.0.1.tgz#c2e0b5a14a540aebee3bbc6c3f8666cc9b509127" + integrity sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w== dependencies: es-errors "^1.3.0" - object-inspect "^1.13.3" + object-inspect "^1.13.4" side-channel-map@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/side-channel-map/-/side-channel-map-1.0.1.tgz#d6bb6b37902c6fef5174e5f533fab4c732a26f42" integrity sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA== dependencies: call-bound "^1.0.2" @@ -4914,7 +4485,7 @@ side-channel-map@^1.0.1: side-channel-weakmap@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz#11dda19d5368e40ce9ec2bdc1fb0ecbc0790ecea" integrity sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A== dependencies: call-bound "^1.0.2" @@ -4924,42 +4495,42 @@ side-channel-weakmap@^1.0.2: side-channel-map "^1.0.1" side-channel@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz" - integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw== + version "1.1.1" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.1.tgz#ea02c62e05dc4bea67d4442f0fb71ee192f8e0ab" + integrity sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ== dependencies: es-errors "^1.3.0" - object-inspect "^1.13.3" - side-channel-list "^1.0.0" + object-inspect "^1.13.4" + side-channel-list "^1.0.1" side-channel-map "^1.0.1" side-channel-weakmap "^1.0.2" siginfo@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/siginfo/-/siginfo-2.0.0.tgz#32e76c70b79724e3bb567cb9d543eb858ccfaf30" integrity sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g== signal-exit@^4.0.1: version "4.1.0" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== sisteransi@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== socket.io-adapter@~2.5.2: - version "2.5.6" - resolved "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.6.tgz" - integrity sha512-DkkO/dz7MGln0dHn5bmN3pPy+JmywNICWrJqVWiVOyvXjWQFIv9c2h24JrQLLFJ2aQVQf/Cvl1vblnd4r2apLQ== + version "2.5.8" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.5.8.tgz#c9fcabf602dbd5b09258ca98e5ec6a7ae4360698" + integrity sha512-6Oy52pbg+kvdCVvjcN+FnY7BvxZ7cIHNScbvztT/It5d0vbwoJoVZmF2gjJmnV0/4WlXRfG15zc45ySk9Ah8bw== dependencies: debug "~4.4.1" - ws "~8.18.3" + ws "~8.21.0" socket.io-client@^4.8.3: version "4.8.3" - resolved "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.3.tgz" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.8.3.tgz#62717edd46a318c918125b57e92dc7f8bb71c34c" integrity sha512-uP0bpjWrjQmUt5DTHq9RuoCBdFJF10cdX9X+a368j/Ft0wmaVgxlrjvK3kjvgCODOMMOz9lcaRzxmso0bTWZ/g== dependencies: "@socket.io/component-emitter" "~3.1.0" @@ -4977,7 +4548,7 @@ socket.io-parser@4.2.6, socket.io-parser@~4.2.4: socket.io@^4.8.3: version "4.8.3" - resolved "https://registry.npmjs.org/socket.io/-/socket.io-4.8.3.tgz" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.8.3.tgz#ca6ba1431c69532e1e0a6f496deebeb601dbc4df" integrity sha512-2Dd78bqzzjE6KPkD5fHZmDAKRNe3J15q+YHDrIsy9WEkqttc7GY+kT9OBLSMaPbQaEd0x1BjcmtMtXkfpc+T5A== dependencies: accepts "~1.3.4" @@ -4990,51 +4561,51 @@ socket.io@^4.8.3: sonic-boom@^4.0.1: version "4.2.1" - resolved "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.2.1.tgz" + resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-4.2.1.tgz#28598250df4899c0ac572d7e2f0460690ba6a030" integrity sha512-w6AxtubXa2wTXAUsZMMWERrsIRAdrK0Sc+FUytWvYAhBJLyuI4llrMIC1DtlNSdI99EI86KZum2MMq3EAZlF9Q== dependencies: atomic-sleep "^1.0.0" source-map-js@^1.2.0, source-map-js@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== sparse-bitfield@^3.0.3: version "3.0.3" - resolved "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz#ff4ae6e68656056ba4b3e792ab3334d38273ca11" integrity sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ== dependencies: memory-pager "^1.0.2" split2@^4.0.0, split2@^4.1.0: version "4.2.0" - resolved "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz" + resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== sql-escaper@^1.3.3: version "1.3.3" - resolved "https://registry.npmjs.org/sql-escaper/-/sql-escaper-1.3.3.tgz" + resolved "https://registry.yarnpkg.com/sql-escaper/-/sql-escaper-1.3.3.tgz#65faf89f048d26bb9a75566b82b5990ddf8a5b7f" integrity sha512-BsTCV265VpTp8tm1wyIm1xqQCS+Q9NHx2Sr+WcnUrgLrQ6yiDIvHYJV5gHxsj1lMBy2zm5twLaZao8Jd+S8JJw== stackback@0.0.2: version "0.0.2" - resolved "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz" + resolved "https://registry.yarnpkg.com/stackback/-/stackback-0.0.2.tgz#1ac8a0d9483848d1695e418b6d031a3c3ce68e3b" integrity sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw== -standard-as-callback@^2.1.0: +standard-as-callback@2.1.0, standard-as-callback@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/standard-as-callback/-/standard-as-callback-2.1.0.tgz#8953fc05359868a77b5b9739a665c5977bb7df45" integrity sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A== statuses@^2.0.1, statuses@^2.0.2, statuses@~2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.2.tgz#8f75eecef765b5e1cfcdc080da59409ed424e382" integrity sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw== std-env@^3.9.0: version "3.10.0" - resolved "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz" + resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.10.0.tgz#d810b27e3a073047b2b5e40034881f5ea6f9c83b" integrity sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg== stream-browserify@3.0.0: @@ -5047,24 +4618,24 @@ stream-browserify@3.0.0: stream-events@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/stream-events/-/stream-events-1.0.5.tgz#bbc898ec4df33a4902d892333d47da9bf1c406d5" integrity sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg== dependencies: stubs "^3.0.0" stream-shift@^1.0.2: version "1.0.3" - resolved "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.3.tgz#85b8fab4d71010fc3ba8772e8046cc49b8a3864b" integrity sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ== streamsearch@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== "string-width-cjs@npm:string-width@^4.2.0": version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" @@ -5082,14 +4653,14 @@ string-width@4.2.3, string-width@^4.1.0, string-width@^4.2.0, string-width@^5.0. string_decoder@^1.1.1: version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== dependencies: safe-buffer "~5.2.0" "strip-ansi-cjs@npm:strip-ansi@^6.0.1": version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" @@ -5103,65 +4674,65 @@ strip-ansi@6.0.1, strip-ansi@^6.0.0, strip-ansi@^6.0.1, strip-ansi@^7.0.1: strip-json-comments@^3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== strip-json-comments@^5.0.2: version "5.0.3" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.3.tgz" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-5.0.3.tgz#b7304249dd402ee67fd518ada993ab3593458bcf" integrity sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw== strip-literal@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/strip-literal/-/strip-literal-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-3.1.0.tgz#222b243dd2d49c0bcd0de8906adbd84177196032" integrity sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg== dependencies: js-tokens "^9.0.1" strnum@^2.3.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/strnum/-/strnum-2.4.0.tgz#304881c3299b017855f1934a4ce85bfb60b1ca2a" - integrity sha512-sHrVyWWdq28RbhjuJdZsA1SnGRJV6NiXbk6AXBxDOsgAcA+lmpUZCYjOdLBxkXMwis6RRe7dlZt4VlIWFVzkmg== + version "2.4.1" + resolved "https://registry.yarnpkg.com/strnum/-/strnum-2.4.1.tgz#85417f683113badea0fe7e17227676f889ff7e58" + integrity sha512-M9eUSMT2dCB2cTNPG7UYj6KuK7RJR2SN2+yCV/fTW3xzTCS6EaGZ5pSMgDIjB7r8zSfTGk+dvvn9rTjpVS9Mwg== dependencies: - anynum "^1.0.0" + anynum "^1.0.1" stubs@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/stubs/-/stubs-3.0.0.tgz#e8d2ba1fa9c90570303c030b6900f7d5f89abe5b" integrity sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw== supports-color@^7.1.0: version "7.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -synckit@^0.11.12: - version "0.11.12" - resolved "https://registry.npmjs.org/synckit/-/synckit-0.11.12.tgz" - integrity sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ== +synckit@^0.11.13: + version "0.11.13" + resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.11.13.tgz#062a5ea57d81befc35892f8254de5c567e97c80a" + integrity sha512-eNRKgb3z66Yp3D2CixVujOUvXLFUTij/zVnV8KRyvFdQwpz7I5DS8UfRkTeLzb64u+dkzDSdelE24izu+zSSUg== dependencies: - "@pkgr/core" "^0.2.9" + "@pkgr/core" "^0.3.6" tailwindcss@^4.2.2: - version "4.2.2" - resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.2.2.tgz" - integrity sha512-KWBIxs1Xb6NoLdMVqhbhgwZf2PGBpPEiwOqgI4pFIYbNTfBXiKYyWoTsXgBQ9WFg/OlhnvHaY+AEpW7wSmFo2Q== + version "4.3.1" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-4.3.1.tgz#78ee06f6186bc8fb9603f8083eb703dc7dd96a10" + integrity sha512-hk+TB1m+K8CYNrP6rjQaq/Y+4Zylwpa87mLYBKCunwnnQ9p+fHb7kmSfGqyEJoxF/O6CDyABWVFEafNSYKll+Q== tarn@^3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/tarn/-/tarn-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/tarn/-/tarn-3.0.2.tgz#73b6140fbb881b71559c4f8bfde3d9a4b3d27693" integrity sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ== teeny-request@^9.0.0: version "9.0.0" - resolved "https://registry.npmjs.org/teeny-request/-/teeny-request-9.0.0.tgz" + resolved "https://registry.yarnpkg.com/teeny-request/-/teeny-request-9.0.0.tgz#18140de2eb6595771b1b02203312dfad79a4716d" integrity sha512-resvxdc6Mgb7YEThw6G6bExlXKkv6+YbuzGg9xuXxSgxJF7Ozs+o8Y9+2R3sArdWdW8nOokoQb1yrpFB0pQK2g== dependencies: http-proxy-agent "^5.0.0" @@ -5172,7 +4743,7 @@ teeny-request@^9.0.0: test-exclude@^7.0.1: version "7.0.2" - resolved "https://registry.npmjs.org/test-exclude/-/test-exclude-7.0.2.tgz" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-7.0.2.tgz#482392077630bc57d5630c13abe908bb910dfc65" integrity sha512-u9E6A+ZDYdp7a4WnarkXPZOx8Ilz46+kby6p1yZ8zsGTz9gYa6FIS7lj2oezzNKmtdyyJNNmmXDppga5GB7kSw== dependencies: "@istanbuljs/schema" "^0.1.2" @@ -5180,181 +4751,177 @@ test-exclude@^7.0.1: minimatch "^10.2.2" thread-stream@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/thread-stream/-/thread-stream-4.0.0.tgz" - integrity sha512-4iMVL6HAINXWf1ZKZjIPcz5wYaOdPhtO8ATvZ+Xqp3BTdaqtAwQkNmKORqcIo5YkQqGXq5cwfswDwMqqQNrpJA== + version "4.2.0" + resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-4.2.0.tgz#054063e93baab22363d05b784d6c7e439230cac7" + integrity sha512-e2zZ96wSChazBsbENf/Pcm/4swHt2cEKQ92rhUjkL9GCKiTDJIaTBenjE/m9DXi0QBmTMDkFDdOomUy20A1tDQ== dependencies: - real-require "^0.2.0" + real-require "^1.0.0" tildify@2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/tildify/-/tildify-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/tildify/-/tildify-2.0.0.tgz#f205f3674d677ce698b7067a99e949ce03b4754a" integrity sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw== tinybench@^2.9.0: version "2.9.0" - resolved "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz" + resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.9.0.tgz#103c9f8ba6d7237a47ab6dd1dcff77251863426b" integrity sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg== tinyexec@^0.3.2: version "0.3.2" - resolved "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz" + resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-0.3.2.tgz#941794e657a85e496577995c6eef66f53f42b3d2" integrity sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA== -tinyglobby@^0.2.14: - version "0.2.16" - resolved "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz" - integrity sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg== +tinyglobby@^0.2.14, tinyglobby@^0.2.15: + version "0.2.17" + resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.17.tgz#562a9a6c9eb2b3b123d39719f9af5bb44fcd7631" + integrity sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g== dependencies: fdir "^6.5.0" picomatch "^4.0.4" -tinyglobby@^0.2.15: - version "0.2.15" - resolved "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz" - integrity sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ== - dependencies: - fdir "^6.5.0" - picomatch "^4.0.3" - tinypool@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-1.1.1.tgz#059f2d042bd37567fbc017d3d426bdd2a2612591" integrity sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg== tinyrainbow@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/tinyrainbow/-/tinyrainbow-2.0.0.tgz#9509b2162436315e80e3eee0fcce4474d2444294" integrity sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw== tinyspy@^4.0.3: version "4.0.4" - resolved "https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.4.tgz" + resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-4.0.4.tgz#d77a002fb53a88aa1429b419c1c92492e0c81f78" integrity sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q== to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" toidentifier@~1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== tr46@^5.1.0: version "5.1.1" - resolved "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-5.1.1.tgz#96ae867cddb8fdb64a49cc3059a8d428bcf238ca" integrity sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw== dependencies: punycode "^2.3.1" tr46@~0.0.3: version "0.0.3" - resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== ts-api-utils@^2.5.0: version "2.5.0" - resolved "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-2.5.0.tgz#4acd4a155e22734990a5ed1fe9e97f113bcb37c1" integrity sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA== tslib@2.8.1, tslib@^2.4.0, tslib@^2.5.0, tslib@^2.6.2, tslib@^2.6.3, tslib@^2.8.1: version "2.8.1" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== tsx@^4.21.0: - version "4.21.0" - resolved "https://registry.npmjs.org/tsx/-/tsx-4.21.0.tgz" - integrity sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw== + version "4.22.4" + resolved "https://registry.yarnpkg.com/tsx/-/tsx-4.22.4.tgz#0ab3b7fb4ec7feeee74e5b1f26337caa71e44700" + integrity sha512-X8EX+XV4QR5xCsrgxaED954zTDfY8KqlDtskKEL0cHhyS/P8b4IFOvGDQpsC9Q1XnLq915wEfwwY/zzskCtmhg== dependencies: - esbuild "~0.27.0" - get-tsconfig "^4.7.5" + esbuild "~0.28.0" optionalDependencies: fsevents "~2.3.3" type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" - resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== dependencies: prelude-ls "^1.2.1" type-is@^1.6.18: version "1.6.18" - resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== dependencies: media-typer "0.3.0" mime-types "~2.1.24" -type-is@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz" - integrity sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw== +type-is@^2.0.1, type-is@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-2.1.0.tgz#71d1a7053293582e16ac9f3ebaf1ab9aa49e5570" + integrity sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA== dependencies: - content-type "^1.0.5" + content-type "^2.0.0" media-typer "^1.1.0" mime-types "^3.0.0" typedarray@^0.0.6: version "0.0.6" - resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== typescript@^5.1.3: version "5.9.3" - resolved "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== uid2@1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/uid2/-/uid2-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/uid2/-/uid2-1.0.0.tgz#ef8d95a128d7c5c44defa1a3d052eecc17a06bfb" integrity sha512-+I6aJUv63YAcY9n4mQreLUt0d4lvwkkopDNmpomkAUz0fAkEMV9pRWxN0EjhW1YfRhcuyHg2v3mwddCDW1+LFQ== -undici-types@~7.16.0: - version "7.16.0" - resolved "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz" - integrity sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw== +undici-types@~7.18.0: + version "7.18.2" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.18.2.tgz#29357a89e7b7ca4aef3bf0fd3fd0cd73884229e9" + integrity sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w== + +undici-types@~8.3.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.3.0.tgz#44e9fc9f3244648cdea35e4f9bb2d681e9410809" + integrity sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ== unpipe@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== uri-js@^4.2.2: version "4.4.1" - resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" urlpattern-polyfill@^10.0.0: version "10.1.0" - resolved "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.1.0.tgz" + resolved "https://registry.yarnpkg.com/urlpattern-polyfill/-/urlpattern-polyfill-10.1.0.tgz#1b2517e614136c73ba32948d5e7a3a063cba8e74" integrity sha512-IGjKp/o0NL3Bso1PymYURCJxMPNAf/ILOpendP9f5B6e1rTJgdgiOvgfoT8VxCAdY+Wisb9uhGaJJf3yZ2V9nw== util-deprecate@^1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -uuid@11.1.0, uuid@11.1.1, uuid@^11.1.1, uuid@^8.0.0, uuid@^9.0.0, uuid@^9.0.1: +uuid@11.1.1, uuid@^11.1.1, uuid@^9.0.0, uuid@^9.0.1: version "11.1.1" resolved "https://registry.yarnpkg.com/uuid/-/uuid-11.1.1.tgz#f6d81d2e1c65d00762e5e29b16c5d2d995e208ad" integrity sha512-vIYxrBCC/N/K+Js3qSN88go7kIfNPssr/hHCesKCQNAjmgvYS2oqr69kIufEG+O4+PfezOH4EbIeHCfFov8ZgQ== vary@^1, vary@^1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== vite-node@3.2.4: version "3.2.4" - resolved "https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz" + resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-3.2.4.tgz#f3676d94c4af1e76898c162c92728bca65f7bb07" integrity sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg== dependencies: cac "^6.7.14" @@ -5364,9 +4931,9 @@ vite-node@3.2.4: vite "^5.0.0 || ^6.0.0 || ^7.0.0-0" "vite@^5.0.0 || ^6.0.0 || ^7.0.0-0", vite@^7.3.1: - version "7.3.2" - resolved "https://registry.npmjs.org/vite/-/vite-7.3.2.tgz" - integrity sha512-Bby3NOsna2jsjfLVOHKes8sGwgl4TT0E6vvpYgnAYDIF/tie7MRaFthmKuHx1NSXjiTueXH3do80FMQgvEktRg== + version "7.3.5" + resolved "https://registry.yarnpkg.com/vite/-/vite-7.3.5.tgz#90c2d0b7b94a224e7e7dcf22d2912ff0b5291165" + integrity sha512-KuOaNhcnGFN2zIPGA7wRmzF+lJA1sea7rHq17aiJ++9lzY1WWG6Jpwqwe1KNbRVPIqHmr8GLYx7jbrQcN/7/ww== dependencies: esbuild "^0.27.0" fdir "^6.5.0" @@ -5407,29 +4974,29 @@ vitest@^3.2.6: why-is-node-running "^2.3.0" vue@^3.5.32: - version "3.5.32" - resolved "https://registry.npmjs.org/vue/-/vue-3.5.32.tgz" - integrity sha512-vM4z4Q9tTafVfMAK7IVzmxg34rSzTFMyIe0UUEijUCkn9+23lj0WRfA83dg7eQZIUlgOSGrkViIaCfqSAUXsMw== + version "3.5.38" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.5.38.tgz#8a6d52f1768e197545e937920d6c197fe76fc2db" + integrity sha512-vAMKHfImQlYSy0C+PBue4s3ERZ2xGKfgZg5GXAsLInq1dyh2H78ILVP5sK0KPFPVW4kv+OGCIvBEondcjpZp7A== dependencies: - "@vue/compiler-dom" "3.5.32" - "@vue/compiler-sfc" "3.5.32" - "@vue/runtime-dom" "3.5.32" - "@vue/server-renderer" "3.5.32" - "@vue/shared" "3.5.32" + "@vue/compiler-dom" "3.5.38" + "@vue/compiler-sfc" "3.5.38" + "@vue/runtime-dom" "3.5.38" + "@vue/server-renderer" "3.5.38" + "@vue/shared" "3.5.38" webidl-conversions@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== webidl-conversions@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== whatwg-url@^14.1.0: version "14.2.0" - resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-14.2.0.tgz#4ee02d5d725155dae004f6ae95c73e7ef5d95663" integrity sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw== dependencies: tr46 "^5.1.0" @@ -5437,7 +5004,7 @@ whatwg-url@^14.1.0: whatwg-url@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== dependencies: tr46 "~0.0.3" @@ -5445,14 +5012,14 @@ whatwg-url@^5.0.0: which@^2.0.1: version "2.0.2" - resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" why-is-node-running@^2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/why-is-node-running/-/why-is-node-running-2.3.0.tgz#a3f69a97107f494b3cdc3bdddd883a7d65cebf04" integrity sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w== dependencies: siginfo "^2.0.0" @@ -5460,12 +5027,12 @@ why-is-node-running@^2.3.0: word-wrap@^1.2.5: version "1.2.5" - resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": version "7.0.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" @@ -5474,7 +5041,7 @@ word-wrap@^1.2.5: wrap-ansi@^8.1.0: version "8.1.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== dependencies: ansi-styles "^6.1.0" @@ -5483,10 +5050,10 @@ wrap-ansi@^8.1.0: wrappy@1: version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -ws@8.21.0, ws@^8.20.1, ws@~8.18.3: +ws@8.21.0, ws@^8.20.1, ws@~8.21.0: version "8.21.0" resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.0.tgz#012e413fc07429945121b0c153158c4343086951" integrity sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g== @@ -5498,20 +5065,20 @@ xml-naming@^0.1.0: xmlhttprequest-ssl@~2.1.1: version "2.1.2" - resolved "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.2.tgz#e9e8023b3f29ef34b97a859f584c5e6c61418e23" integrity sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ== xtend@^4.0.0: version "4.0.2" - resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== yocto-queue@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== zod@^4.3.6: - version "4.3.6" - resolved "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz" - integrity sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg== + version "4.4.3" + resolved "https://registry.yarnpkg.com/zod/-/zod-4.4.3.tgz#b680f172885d18bbebf21a834ea25e55a1bbf356" + integrity sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ== From a327f14c82641a49365c5c68c16c597197d40543 Mon Sep 17 00:00:00 2001 From: dothinh115 Date: Tue, 23 Jun 2026 02:31:00 +0700 Subject: [PATCH 7/8] feat: enhance metadata migration service to handle overlapping rows with custom fields - Added support for merging rows based on specified keys during SQL and MongoDB table renames. - Implemented logic to preserve legacy fields when conflicts arise during renaming operations. - Introduced methods to backfill missing values from legacy rows into canonical rows. - Updated tests to validate the new behavior for both SQL and MongoDB migrations. - Enhanced utility functions for physical migrations to ensure safe renaming of fields. --- data/snapshot-migration.json | 3 +- .../services/metadata-migration.service.ts | 288 ++++++++++++++- .../utils/metadata-physical-migration.util.ts | 33 ++ src/shared/types/schema-migration.types.ts | 1 + .../domain/metadata-migration.real-db.spec.ts | 338 +++++++++++++++++- .../domain/metadata-migration.service.spec.ts | 220 +++++++++++- .../metadata-physical-migration.util.spec.ts | 187 ++++++++++ 7 files changed, 1046 insertions(+), 24 deletions(-) create mode 100644 test/domain/metadata-physical-migration.util.spec.ts diff --git a/data/snapshot-migration.json b/data/snapshot-migration.json index c3c1ccb0..fec589f7 100644 --- a/data/snapshot-migration.json +++ b/data/snapshot-migration.json @@ -317,7 +317,8 @@ }, { "from": "user_definition", - "to": "enfyra_user" + "to": "enfyra_user", + "mergeKeys": ["email"] }, { "from": "oauth_config_definition", diff --git a/src/engines/bootstrap/services/metadata-migration.service.ts b/src/engines/bootstrap/services/metadata-migration.service.ts index 80a0c177..28e2b766 100644 --- a/src/engines/bootstrap/services/metadata-migration.service.ts +++ b/src/engines/bootstrap/services/metadata-migration.service.ts @@ -417,6 +417,69 @@ export class MetadataMigrationService { return Object.keys(oldInfo).filter((column) => column in newInfo); } + private async getSqlMergedColumns( + oldTable: string, + newTable: string, + ): Promise { + const knex = this.queryBuilderService.getKnex(); + const [oldInfo, newInfo] = await Promise.all([ + knex(oldTable).columnInfo(), + knex(newTable).columnInfo(), + ]); + const missingColumns = Object.keys(oldInfo).filter( + (column) => !(column in newInfo), + ); + if (missingColumns.length > 0) { + await this.addMissingSqlColumns(newTable, oldInfo, missingColumns); + } + const refreshedNewInfo = await knex(newTable).columnInfo(); + return Object.keys(oldInfo).filter((column) => column in refreshedNewInfo); + } + + private async addMissingSqlColumns( + tableName: string, + sourceInfo: Record, + columns: string[], + ): Promise { + const knex = this.queryBuilderService.getKnex(); + await knex.schema.alterTable(tableName, (table: any) => { + for (const column of columns) { + table.specificType( + column, + this.getPortableSqlColumnType(sourceInfo[column]), + ); + } + }); + this.verbose( + ` Added ${columns.length} legacy column(s) to ${tableName} before overlap merge`, + ); + } + + private getPortableSqlColumnType(columnInfo: any): string { + const type = String(columnInfo?.type || '').toLowerCase(); + const maxLength = Number( + columnInfo?.maxLength || columnInfo?.characterMaximumLength || 0, + ); + + if (!type) return 'text'; + if (type.includes('bigint')) return 'bigint'; + if (type.includes('int')) return 'integer'; + if (type.includes('bool') || type === 'tinyint(1)') return 'boolean'; + if (type.includes('double')) return 'double precision'; + if (type.includes('float')) return 'float'; + if (type.includes('decimal') || type.includes('numeric')) return 'decimal'; + if (type.includes('jsonb')) return 'jsonb'; + if (type.includes('json')) return 'json'; + if (type.includes('timestamp')) return 'timestamp'; + if (type === 'date') return 'date'; + if (type.includes('time')) return 'time'; + if (type.includes('uuid')) return 'uuid'; + if (type.includes('text')) return 'text'; + if (type.includes('char')) + return `varchar(${maxLength > 0 ? maxLength : 255})`; + return 'text'; + } + private getOverlapRowKey( rename: TableRenameDef, row: any, @@ -429,6 +492,19 @@ export class MetadataMigrationService { return `id:${row.id}`; if ('_id' in row && columns.includes('_id') && row._id != null) return `_id:${row._id}`; + + if (rename.mergeKeys?.length) { + const values = rename.mergeKeys.map((column) => row?.[column]); + if ( + rename.mergeKeys.every((column) => columns.includes(column)) && + values.every((value) => value !== undefined && value !== null) + ) { + return `merge:${rename.mergeKeys + .map((column, index) => `${column}:${String(values[index])}`) + .join('|')}`; + } + } + return null; } @@ -440,6 +516,71 @@ export class MetadataMigrationService { ); } + private rowsConflict(left: any, right: any, columns: string[]): boolean { + return columns.some((column) => { + if ( + left?.[column] === undefined || + right?.[column] === undefined || + right?.[column] === null || + column === 'createdAt' || + column === 'updatedAt' + ) { + return false; + } + return JSON.stringify(left[column]) !== JSON.stringify(right[column]); + }); + } + + private findRowByOverlapKey( + rename: TableRenameDef, + rows: any[], + key: string, + columns: string[], + ): any | null { + return ( + rows.find((row) => this.getOverlapRowKey(rename, row, columns) === key) ?? + null + ); + } + + private getMissingRowValues( + legacyRow: any, + canonicalRow: any, + columns: string[], + ): Record { + return Object.fromEntries( + columns + .filter( + (column) => + column !== 'id' && + column !== '_id' && + column !== 'createdAt' && + column !== 'updatedAt' && + legacyRow?.[column] !== undefined && + (canonicalRow?.[column] === undefined || + canonicalRow?.[column] === null), + ) + .map((column) => [column, legacyRow[column]]), + ); + } + + private getRowIdentityFilter( + rename: TableRenameDef, + row: any, + ): Record | null { + if (row?.id !== undefined && row.id !== null) return { id: row.id }; + if (row?._id !== undefined && row._id !== null) return { _id: row._id }; + if (rename.mergeKeys?.length) { + const entries = rename.mergeKeys + .map((column) => [column, row?.[column]]) + .filter(([, value]) => value !== undefined && value !== null); + if (entries.length === rename.mergeKeys.length) { + return Object.fromEntries(entries); + } + } + return null; + } + private projectCoreRowToColumns( rename: TableRenameDef, row: any, @@ -598,7 +739,7 @@ export class MetadataMigrationService { rename: TableRenameDef, ): Promise { const knex = this.queryBuilderService.getKnex(); - const columns = await this.getSqlOverlapColumns(rename.from, rename.to); + const columns = await this.getSqlMergedColumns(rename.from, rename.to); const [legacyRows, canonicalRows] = await Promise.all([ knex(rename.from).select(columns), knex(rename.to).select(columns), @@ -659,8 +800,74 @@ export class MetadataMigrationService { private async reconcileSqlTableOverlap( rename: TableRenameDef, ): Promise { + const knex = this.queryBuilderService.getKnex(); + const columns = await this.getSqlMergedColumns(rename.from, rename.to); + const [legacyRows, canonicalRows] = await Promise.all([ + knex(rename.from).select(columns), + knex(rename.to).select(columns), + ]); + const canonicalKeys = new Set(); + const occupiedIds = new Set(); + for (const row of canonicalRows) { + const key = this.getOverlapRowKey(rename, row, columns); + if (key) canonicalKeys.add(key); + if (row?.id !== undefined && row.id !== null) { + occupiedIds.add(String(row.id)); + } + } + + let insertedCount = 0; + let conflictCount = 0; + let skippedCount = 0; + let updatedCount = 0; + for (const row of legacyRows) { + const key = this.getOverlapRowKey(rename, row, columns); + if (!key) { + skippedCount += 1; + continue; + } + if (canonicalKeys.has(key)) { + const canonicalRow = this.findRowByOverlapKey( + rename, + canonicalRows, + key, + columns, + ); + if (canonicalRow && this.rowsConflict(row, canonicalRow, columns)) { + conflictCount += 1; + } + if (canonicalRow) { + const missingValues = this.getMissingRowValues( + row, + canonicalRow, + columns, + ); + const filter = this.getRowIdentityFilter(rename, canonicalRow); + if (filter && Object.keys(missingValues).length > 0) { + await knex(rename.to).where(filter).update(missingValues); + Object.assign(canonicalRow, missingValues); + updatedCount += 1; + } + } + continue; + } + const projected = this.projectRowToColumns(row, columns); + if ( + projected?.id !== undefined && + projected?.id !== null && + occupiedIds.has(String(projected.id)) + ) { + delete projected.id; + } + await knex(rename.to).insert(projected); + insertedCount += 1; + canonicalKeys.add(key); + if (projected?.id !== undefined && projected.id !== null) { + occupiedIds.add(String(projected.id)); + } + } this.verbose( - ` SQL table overlap detected for ${rename.from} and ${rename.to}; preserving canonical table ${rename.to} during bootstrap rename`, + ` SQL table overlap reconciled for ${rename.from} → ${rename.to}: copied ${insertedCount}, updated ${updatedCount}, conflicts ${conflictCount}, skipped ${skippedCount}`, ); } @@ -719,8 +926,83 @@ export class MetadataMigrationService { private async reconcileMongoTableOverlap( rename: TableRenameDef, ): Promise { + const db = this.getMongoDb()!; + const [legacyRows, canonicalRows] = await Promise.all([ + db.collection(rename.from).find({}).toArray(), + db.collection(rename.to).find({}).toArray(), + ]); + const columns = [ + ...new Set([ + ...legacyRows.flatMap((row) => Object.keys(row)), + ...canonicalRows.flatMap((row) => Object.keys(row)), + ]), + ]; + const canonicalKeys = new Set(); + const occupiedIds = new Set(); + for (const row of canonicalRows) { + const key = this.getOverlapRowKey(rename, row, columns); + if (key) canonicalKeys.add(key); + if (row?._id !== undefined && row._id !== null) { + occupiedIds.add(String(row._id)); + } + } + + let conflictCount = 0; + let skippedCount = 0; + let updatedCount = 0; + const rowsToInsert: any[] = []; + for (const row of legacyRows) { + const key = this.getOverlapRowKey(rename, row, columns); + if (!key) { + skippedCount += 1; + continue; + } + if (canonicalKeys.has(key)) { + const canonicalRow = this.findRowByOverlapKey( + rename, + canonicalRows, + key, + columns, + ); + if (canonicalRow && this.rowsConflict(row, canonicalRow, columns)) { + conflictCount += 1; + } + if (canonicalRow) { + const missingValues = this.getMissingRowValues( + row, + canonicalRow, + columns, + ); + const filter = this.getRowIdentityFilter(rename, canonicalRow); + if (filter && Object.keys(missingValues).length > 0) { + await db + .collection(rename.to) + .updateOne(filter, { $set: missingValues }); + Object.assign(canonicalRow, missingValues); + updatedCount += 1; + } + } + continue; + } + const projected = this.projectRowToColumns(row, columns); + if ( + projected?._id !== undefined && + projected?._id !== null && + occupiedIds.has(String(projected._id)) + ) { + delete projected._id; + } + rowsToInsert.push(projected); + canonicalKeys.add(key); + if (projected?._id !== undefined && projected._id !== null) { + occupiedIds.add(String(projected._id)); + } + } + if (rowsToInsert.length > 0) { + await db.collection(rename.to).insertMany(rowsToInsert); + } this.verbose( - ` Mongo collection overlap detected for ${rename.from} and ${rename.to}; preserving canonical collection ${rename.to} during bootstrap rename`, + ` Mongo collection overlap reconciled for ${rename.from} → ${rename.to}: copied ${rowsToInsert.length}, updated ${updatedCount}, conflicts ${conflictCount}, skipped ${skippedCount}`, ); } diff --git a/src/engines/bootstrap/utils/metadata-physical-migration.util.ts b/src/engines/bootstrap/utils/metadata-physical-migration.util.ts index 0af5b745..8cca0ddf 100644 --- a/src/engines/bootstrap/utils/metadata-physical-migration.util.ts +++ b/src/engines/bootstrap/utils/metadata-physical-migration.util.ts @@ -67,6 +67,17 @@ export class MetadataPhysicalMigrationHelper { { [oldName]: { $exists: true }, [newName]: { $exists: false } }, [{ $set: { [newName]: `$${oldName}` } }], ); + const conflictCount = await db.collection(tableName).countDocuments({ + [oldName]: { $exists: true }, + [newName]: { $exists: true }, + $expr: { $ne: [`$${oldName}`, `$${newName}`] }, + }); + if (conflictCount > 0) { + this.verbose( + ` Preserved legacy document field ${tableName}.${oldName}; ${conflictCount} document(s) conflict with ${newName}`, + ); + return; + } await db .collection(tableName) .updateMany( @@ -98,6 +109,17 @@ export class MetadataPhysicalMigrationHelper { oldName, newName, ]); + const conflictResult = await knex.raw( + 'SELECT COUNT(*) AS count FROM ?? WHERE ?? IS NOT NULL AND ?? IS NOT NULL AND ?? <> ??', + [tableName, oldName, newName, oldName, newName], + ); + const conflictCount = this.readSqlCount(conflictResult); + if (conflictCount > 0) { + this.verbose( + ` Preserved legacy physical column ${tableName}.${oldName}; ${conflictCount} row(s) conflict with ${newName}`, + ); + return; + } await knex.schema.alterTable(tableName, (table: any) => { table.dropColumn(oldName); }); @@ -199,4 +221,15 @@ export class MetadataPhysicalMigrationHelper { private getMongoDb(): Db { return this.queryBuilderService.getMongoDb(); } + + private readSqlCount(result: any): number { + const rows = Array.isArray(result) + ? Array.isArray(result[0]) + ? result[0] + : result + : result?.rows; + const row = Array.isArray(rows) ? rows[0] : rows; + const value = row?.count ?? row?.COUNT ?? row?.['COUNT(*)'] ?? 0; + return Number(value) || 0; + } } diff --git a/src/shared/types/schema-migration.types.ts b/src/shared/types/schema-migration.types.ts index 0d38abb1..d67c6f35 100644 --- a/src/shared/types/schema-migration.types.ts +++ b/src/shared/types/schema-migration.types.ts @@ -40,6 +40,7 @@ export interface RelationModifyDef { export interface TableRenameDef { from: string; to: string; + mergeKeys?: string[]; } /** diff --git a/test/domain/metadata-migration.real-db.spec.ts b/test/domain/metadata-migration.real-db.spec.ts index 3cc3556d..b1085491 100644 --- a/test/domain/metadata-migration.real-db.spec.ts +++ b/test/domain/metadata-migration.real-db.spec.ts @@ -1,6 +1,7 @@ import knex, { type Knex } from 'knex'; import { MongoClient, type Db } from 'mongodb'; import { MetadataMigrationService } from '../../src/engines/bootstrap/services/metadata-migration.service'; +import { MetadataPhysicalMigrationHelper } from '../../src/engines/bootstrap/utils/metadata-physical-migration.util'; const SQL_DBS = [ { @@ -55,6 +56,18 @@ function makeService(queryBuilderService: any) { }); } +function normalizeSqlBooleans>(rows: T[]): T[] { + return rows.map((row) => ({ + ...row, + ...(Object.prototype.hasOwnProperty.call(row, 'isPublished') + ? { isPublished: Boolean(row.isPublished) } + : {}), + ...(Object.prototype.hasOwnProperty.call(row, 'isPublic') + ? { isPublic: Boolean(row.isPublic) } + : {}), + })); +} + async function dropSqlTables(db: Knex, names: string[]) { for (const name of names) { await db.schema.dropTableIfExists(name); @@ -152,16 +165,25 @@ describe('MetadataMigrationService real DB self-healing stress', () => { await createSqlColumnStore(db, names.columnNew); await createSqlRelationStore(db, names.relationOld); await createSqlRelationStore(db, names.relationNew); + await db.schema.alterTable(names.tableOld, (table) => { + table.string('operatorTag'); + }); + await db.schema.alterTable(names.columnOld, (table) => { + table.string('operatorTag'); + }); + await db.schema.alterTable(names.relationOld, (table) => { + table.string('operatorTag'); + }); await db(names.tableOld).insert([ - { id: 10, name: 'table_definition' }, - { id: 11, name: 'post' }, - { id: 12, name: 'comment' }, + { id: 10, name: 'table_definition', operatorTag: 'legacy-core' }, + { id: 11, name: 'post', operatorTag: 'custom-post' }, + { id: 12, name: 'comment', operatorTag: 'custom-comment' }, ]); await db(names.tableNew).insert([{ id: 10, name: 'enfyra_table' }]); await db(names.columnOld).insert([ - { id: 20, tableId: 11, name: 'title' }, - { id: 21, tableId: 12, name: 'body' }, + { id: 20, tableId: 11, name: 'title', operatorTag: 'title-field' }, + { id: 21, tableId: 12, name: 'body', operatorTag: 'body-field' }, ]); await db(names.columnNew).insert([{ id: 20, tableId: 10, name: 'id' }]); await db(names.relationOld).insert([ @@ -170,6 +192,7 @@ describe('MetadataMigrationService real DB self-healing stress', () => { sourceTableId: 11, targetTableId: 12, propertyName: 'comments', + operatorTag: 'comments-relation', }, ]); await db(names.relationNew).insert([ @@ -199,17 +222,27 @@ describe('MetadataMigrationService real DB self-healing stress', () => { const comment = tables.find((row) => row.name === 'comment'); expect(tables.filter((row) => row.name === 'post')).toHaveLength(1); expect(tables.filter((row) => row.name === 'comment')).toHaveLength(1); + expect(post.operatorTag).toBe('custom-post'); + expect(comment.operatorTag).toBe('custom-comment'); expect(tables.some((row) => row.name === 'table_definition')).toBe( false, ); const columns = await db(names.columnNew).select('*'); expect( - columns.filter((row) => row.tableId === post.id && row.name === 'title'), + columns.filter( + (row) => + row.tableId === post.id && + row.name === 'title' && + row.operatorTag === 'title-field', + ), ).toHaveLength(1); expect( columns.filter( - (row) => row.tableId === comment.id && row.name === 'body', + (row) => + row.tableId === comment.id && + row.name === 'body' && + row.operatorTag === 'body-field', ), ).toHaveLength(1); @@ -219,13 +252,140 @@ describe('MetadataMigrationService real DB self-healing stress', () => { (row) => row.sourceTableId === post.id && row.targetTableId === comment.id && - row.propertyName === 'comments', + row.propertyName === 'comments' && + row.operatorTag === 'comments-relation', ), ).toHaveLength(1); } finally { await cleanup(); } }); + + test(`heals non-core table overlap with custom fields on ${config.name}`, async () => { + const available = await probeSql(config); + if (!available) { + console.warn(`${config.name} not available, skipping SQL stress test`); + return; + } + + const { db, cleanup } = await makeIsolatedSqlDb(config); + try { + await dropSqlTables(db, [ + 'user_definition', + 'enfyra_user', + 'enfyra_table', + ]); + await db.schema.createTable('user_definition', (table) => { + table.integer('id').primary(); + table.string('email'); + table.string('displayName'); + table.string('favoriteColor'); + }); + await db.schema.createTable('enfyra_user', (table) => { + table.integer('id').primary(); + table.string('email'); + table.string('displayName'); + }); + await createSqlCoreStore(db, 'enfyra_table'); + + await db('user_definition').insert([ + { + id: 1, + email: 'same@example.com', + displayName: 'Canonical', + favoriteColor: 'green', + }, + { + id: 2, + email: 'new@example.com', + displayName: 'New User', + favoriteColor: 'blue', + }, + ]); + await db('enfyra_user').insert({ + id: 1, + email: 'same@example.com', + displayName: 'Canonical', + }); + + const service = makeService({ + isMongoDb: () => false, + getKnex: () => db, + }); + const rename = { + from: 'user_definition', + to: 'enfyra_user', + mergeKeys: ['email'], + }; + await (service as any).renameSqlTable(rename); + await (service as any).renameSqlTable(rename); + + const users = await db('enfyra_user').select('*').orderBy('id'); + expect(users).toEqual([ + { + id: 1, + email: 'same@example.com', + displayName: 'Canonical', + favoriteColor: 'green', + }, + { + id: 2, + email: 'new@example.com', + displayName: 'New User', + favoriteColor: 'blue', + }, + ]); + } finally { + await cleanup(); + } + }); + + test(`preserves conflicting physical rename data on ${config.name}`, async () => { + const available = await probeSql(config); + if (!available) { + console.warn(`${config.name} not available, skipping SQL stress test`); + return; + } + + const { db, cleanup } = await makeIsolatedSqlDb(config); + try { + await dropSqlTables(db, ['enfyra_file']); + await db.schema.createTable('enfyra_file', (table) => { + table.integer('id').primary(); + table.boolean('isPublished'); + table.boolean('isPublic'); + }); + await db('enfyra_file').insert([ + { id: 1, isPublished: true, isPublic: false }, + { id: 2, isPublished: true, isPublic: null }, + ]); + + const helper = new MetadataPhysicalMigrationHelper({ + queryBuilderService: { + getKnex: () => db, + } as any, + verbose: () => undefined, + }); + await helper.renameSqlPhysicalColumnIfNeeded( + 'enfyra_file', + 'isPublished', + 'isPublic', + ); + + const rows = normalizeSqlBooleans( + await db('enfyra_file').select('*').orderBy('id'), + ); + expect(rows).toEqual([ + { id: 1, isPublished: true, isPublic: false }, + { id: 2, isPublished: true, isPublic: true }, + ]); + expect(await db.schema.hasColumn('enfyra_file', 'isPublished')).toBe( + true, + ); + } finally { + await cleanup(); + } + }); } test('heals repeated core collection overlap on MongoDB', async () => { @@ -252,16 +412,30 @@ describe('MetadataMigrationService real DB self-healing stress', () => { await client.connect(); db = client.db(dbName); await db.collection(names.tableOld).insertMany([ - { _id: 'table-id', name: 'table_definition' }, - { _id: 'post-id', name: 'post' }, - { _id: 'comment-id', name: 'comment' }, + { + _id: 'table-id', + name: 'table_definition', + operatorTag: 'legacy-core', + }, + { _id: 'post-id', name: 'post', operatorTag: 'custom-post' }, + { _id: 'comment-id', name: 'comment', operatorTag: 'custom-comment' }, ]); await db .collection(names.tableNew) .insertOne({ _id: 'table-id', name: 'enfyra_table' }); await db.collection(names.columnOld).insertMany([ - { _id: 'title-column', table: 'post-id', name: 'title' }, - { _id: 'body-column', table: 'comment-id', name: 'body' }, + { + _id: 'title-column', + table: 'post-id', + name: 'title', + operatorTag: 'title-field', + }, + { + _id: 'body-column', + table: 'comment-id', + name: 'body', + operatorTag: 'body-field', + }, ]); await db .collection(names.columnNew) @@ -271,6 +445,7 @@ describe('MetadataMigrationService real DB self-healing stress', () => { sourceTable: 'post-id', targetTable: 'comment-id', propertyName: 'comments', + operatorTag: 'comments-relation', }); await db.collection(names.relationNew).insertOne({ _id: 'comments-relation', @@ -297,15 +472,25 @@ describe('MetadataMigrationService real DB self-healing stress', () => { const comment = tables.find((row) => row.name === 'comment'); expect(tables.filter((row) => row.name === 'post')).toHaveLength(1); expect(tables.filter((row) => row.name === 'comment')).toHaveLength(1); + expect(post?.operatorTag).toBe('custom-post'); + expect(comment?.operatorTag).toBe('custom-comment'); expect(tables.some((row) => row.name === 'table_definition')).toBe(false); const columns = await db.collection(names.columnNew).find({}).toArray(); expect( - columns.filter((row) => row.table === post?._id && row.name === 'title'), + columns.filter( + (row) => + row.table === post?._id && + row.name === 'title' && + row.operatorTag === 'title-field', + ), ).toHaveLength(1); expect( columns.filter( - (row) => row.table === comment?._id && row.name === 'body', + (row) => + row.table === comment?._id && + row.name === 'body' && + row.operatorTag === 'body-field', ), ).toHaveLength(1); @@ -318,7 +503,8 @@ describe('MetadataMigrationService real DB self-healing stress', () => { (row) => row.sourceTable === post?._id && row.targetTable === comment?._id && - row.propertyName === 'comments', + row.propertyName === 'comments' && + row.operatorTag === 'comments-relation', ), ).toHaveLength(1); } finally { @@ -326,4 +512,124 @@ describe('MetadataMigrationService real DB self-healing stress', () => { await client.close(); } }); + + test('heals non-core collection overlap with custom fields on MongoDB', async () => { + const available = await probeMongo(); + if (!available) { + console.warn('MongoDB not available, skipping Mongo stress test'); + return; + } + + const suffix = `${Date.now()}_${Math.random().toString(16).slice(2)}`; + const dbName = `metadata_migration_stress_${suffix}`; + const client = new MongoClient(MONGO_URI); + let db: Db | undefined; + + try { + await client.connect(); + db = client.db(dbName); + await db.collection('user_definition').insertMany([ + { + _id: 'user-1', + email: 'same@example.com', + displayName: 'Canonical', + favoriteColor: 'green', + }, + { + _id: 'user-2', + email: 'new@example.com', + displayName: 'New User', + favoriteColor: 'blue', + }, + ]); + await db.collection('enfyra_user').insertOne({ + _id: 'user-1', + email: 'same@example.com', + displayName: 'Canonical', + }); + + const service = makeService({ + isMongoDb: () => true, + getMongoDb: () => db, + }); + const rename = { + from: 'user_definition', + to: 'enfyra_user', + mergeKeys: ['email'], + }; + await (service as any).renameMongoTable(rename); + await (service as any).renameMongoTable(rename); + + const users = await db + .collection('enfyra_user') + .find({}) + .sort({ _id: 1 }) + .toArray(); + expect(users).toEqual([ + { + _id: 'user-1', + email: 'same@example.com', + displayName: 'Canonical', + favoriteColor: 'green', + }, + { + _id: 'user-2', + email: 'new@example.com', + displayName: 'New User', + favoriteColor: 'blue', + }, + ]); + } finally { + if (db) await db.dropDatabase(); + await client.close(); + } + }); + + test('preserves conflicting physical rename data on MongoDB', async () => { + const available = await probeMongo(); + if (!available) { + console.warn('MongoDB not available, skipping Mongo stress test'); + return; + } + + const suffix = `${Date.now()}_${Math.random().toString(16).slice(2)}`; + const dbName = `metadata_migration_stress_${suffix}`; + const client = new MongoClient(MONGO_URI); + let db: Db | undefined; + + try { + await client.connect(); + db = client.db(dbName); + await db.collection('enfyra_file').insertMany([ + { _id: 'file-1', isPublished: true, isPublic: false }, + { _id: 'file-2', isPublished: true }, + ]); + + const helper = new MetadataPhysicalMigrationHelper({ + queryBuilderService: { + isMongoDb: () => true, + getMongoDb: () => db, + } as any, + verbose: () => undefined, + }); + await helper.renameMongoDocumentFieldIfNeeded( + 'enfyra_file', + 'isPublished', + 'isPublic', + ); + + const rows = await db + .collection('enfyra_file') + .find({}) + .sort({ _id: 1 }) + .toArray(); + expect(rows).toEqual([ + { _id: 'file-1', isPublished: true, isPublic: false }, + { _id: 'file-2', isPublished: true, isPublic: true }, + ]); + } finally { + if (db) await db.dropDatabase(); + await client.close(); + } + }); }); diff --git a/test/domain/metadata-migration.service.spec.ts b/test/domain/metadata-migration.service.spec.ts index 983508c9..2d563d94 100644 --- a/test/domain/metadata-migration.service.spec.ts +++ b/test/domain/metadata-migration.service.spec.ts @@ -77,6 +77,32 @@ function makeSqlKnex({ knex.schema = { hasTable: jest.fn(async (table: string) => table in tables), + hasColumn: jest.fn(async (table: string, column: string) => + (schemas[table] ?? Object.keys(tables[table]?.[0] ?? {})).includes( + column, + ), + ), + alterTable: jest.fn(async (tableName: string, callback: any) => { + const builder = { + specificType: jest.fn((column: string) => { + schemas[tableName] = [...(schemas[tableName] ?? []), column]; + }), + text: jest.fn((column: string) => { + schemas[tableName] = [...(schemas[tableName] ?? []), column]; + }), + dropColumn: jest.fn((column: string) => { + schemas[tableName] = (schemas[tableName] ?? []).filter( + (name) => name !== column, + ); + tables[tableName] = (tables[tableName] ?? []).map((row) => { + const next = { ...row }; + delete next[column]; + return next; + }); + }), + }; + callback(builder); + }), }; return { knex, inserts, updates, deletes, tables }; @@ -312,9 +338,7 @@ describe('MetadataMigrationService core table overlap', () => { { from: 'relation_definition', to: 'enfyra_relation' }, ]); - const author = sql.tables.enfyra_table.find( - (row) => row.name === 'author', - ); + const author = sql.tables.enfyra_table.find((row) => row.name === 'author'); const post = sql.tables.enfyra_table.find((row) => row.name === 'post'); expect(author.id).not.toBe(30); expect(post.id).not.toBe(31); @@ -413,7 +437,9 @@ describe('MetadataMigrationService core table overlap', () => { expect(sql.tables.enfyra_column).toEqual(afterFirstRun.columns); expect(sql.tables.enfyra_relation).toEqual(afterFirstRun.relations); expect(sql.inserts).toHaveLength(afterFirstRun.insertCount); - expect(sql.tables.enfyra_table.filter((row) => row.name === 'post')).toHaveLength(1); + expect( + sql.tables.enfyra_table.filter((row) => row.name === 'post'), + ).toHaveLength(1); expect( sql.tables.enfyra_relation.filter( (row) => row.propertyName === 'comments', @@ -483,6 +509,143 @@ describe('MetadataMigrationService core table overlap', () => { expect(sql.deletes).toEqual([]); }); + it('copies SQL non-core overlap rows and preserves custom columns added by users', async () => { + const sql = makeSqlKnex({ + tables: { + user_definition: [ + { + id: 1, + email: 'old@example.com', + displayName: 'Old User', + favoriteColor: 'green', + }, + ], + enfyra_user: [], + enfyra_table: [], + }, + schemas: { + user_definition: ['id', 'email', 'displayName', 'favoriteColor'], + enfyra_user: ['id', 'email', 'displayName'], + enfyra_table: ['id', 'name'], + }, + }); + + const service = new MetadataMigrationService({ + queryBuilderService: { + isMongoDb: jest.fn(() => false), + getKnex: jest.fn(() => sql.knex), + } as any, + systemCoreTableResolver: { + getTableName: jest.fn(async () => 'enfyra_table'), + } as any, + }); + + await (service as any).renameSqlTable({ + from: 'user_definition', + to: 'enfyra_user', + mergeKeys: ['email'], + }); + + expect(sql.tables.enfyra_user).toEqual([ + { + id: 1, + email: 'old@example.com', + displayName: 'Old User', + favoriteColor: 'green', + }, + ]); + }); + + it('keeps canonical SQL non-core overlap rows when legacy data conflicts', async () => { + const sql = makeSqlKnex({ + tables: { + user_definition: [ + { id: 1, email: 'same@example.com', displayName: 'Legacy' }, + ], + enfyra_user: [ + { id: 1, email: 'same@example.com', displayName: 'Canonical' }, + ], + enfyra_table: [], + }, + schemas: { + user_definition: ['id', 'email', 'displayName'], + enfyra_user: ['id', 'email', 'displayName'], + enfyra_table: ['id', 'name'], + }, + }); + + const service = new MetadataMigrationService({ + queryBuilderService: { + isMongoDb: jest.fn(() => false), + getKnex: jest.fn(() => sql.knex), + } as any, + systemCoreTableResolver: { + getTableName: jest.fn(async () => 'enfyra_table'), + } as any, + }); + + await (service as any).renameSqlTable({ + from: 'user_definition', + to: 'enfyra_user', + mergeKeys: ['email'], + }); + + expect(sql.tables.enfyra_user).toEqual([ + { id: 1, email: 'same@example.com', displayName: 'Canonical' }, + ]); + expect(sql.inserts).toEqual([]); + }); + + it('backfills missing custom values into existing SQL non-core canonical rows', async () => { + const sql = makeSqlKnex({ + tables: { + user_definition: [ + { + id: 1, + email: 'same@example.com', + displayName: 'Canonical', + favoriteColor: 'green', + }, + ], + enfyra_user: [ + { id: 1, email: 'same@example.com', displayName: 'Canonical' }, + ], + enfyra_table: [], + }, + schemas: { + user_definition: ['id', 'email', 'displayName', 'favoriteColor'], + enfyra_user: ['id', 'email', 'displayName'], + enfyra_table: ['id', 'name'], + }, + }); + + const service = new MetadataMigrationService({ + queryBuilderService: { + isMongoDb: jest.fn(() => false), + getKnex: jest.fn(() => sql.knex), + } as any, + systemCoreTableResolver: { + getTableName: jest.fn(async () => 'enfyra_table'), + } as any, + }); + + await (service as any).renameSqlTable({ + from: 'user_definition', + to: 'enfyra_user', + mergeKeys: ['email'], + }); + + expect(sql.tables.enfyra_user).toEqual([ + { + id: 1, + email: 'same@example.com', + displayName: 'Canonical', + favoriteColor: 'green', + }, + ]); + expect(sql.inserts).toEqual([]); + }); + it('normalizes legacy core table names when reconciling Mongo core overlap', async () => { const mongo = makeMongoDb({ collections: { @@ -560,6 +723,55 @@ describe('MetadataMigrationService core table overlap', () => { }); }); + it('backfills missing custom values into existing Mongo non-core canonical documents', async () => { + const mongo = makeMongoDb({ + collections: { + user_definition: [ + { + _id: 'user-1', + email: 'same@example.com', + displayName: 'Canonical', + favoriteColor: 'green', + }, + ], + enfyra_user: [ + { + _id: 'user-1', + email: 'same@example.com', + displayName: 'Canonical', + }, + ], + enfyra_table: [], + }, + }); + + const service = new MetadataMigrationService({ + queryBuilderService: { + isMongoDb: jest.fn(() => true), + getMongoDb: jest.fn(() => mongo.db), + } as any, + systemCoreTableResolver: { + getTableName: jest.fn(async () => 'enfyra_table'), + } as any, + }); + + await (service as any).renameMongoTable({ + from: 'user_definition', + to: 'enfyra_user', + mergeKeys: ['email'], + }); + + expect(mongo.collections.enfyra_user).toEqual([ + { + _id: 'user-1', + email: 'same@example.com', + displayName: 'Canonical', + favoriteColor: 'green', + }, + ]); + expect(mongo.inserts).toEqual([]); + }); + it('remaps Mongo relation metadata through conflicting legacy source and target table ids', async () => { const mongo = makeMongoDb({ collections: { diff --git a/test/domain/metadata-physical-migration.util.spec.ts b/test/domain/metadata-physical-migration.util.spec.ts new file mode 100644 index 00000000..3f19937a --- /dev/null +++ b/test/domain/metadata-physical-migration.util.spec.ts @@ -0,0 +1,187 @@ +import { MetadataPhysicalMigrationHelper } from '../../src/engines/bootstrap/utils/metadata-physical-migration.util'; + +function makePhysicalSql(rows: any[]) { + const tables = { enfyra_file: rows }; + const schemas = { enfyra_file: ['id', 'isPublished', 'isPublic'] }; + const knex = { + schema: { + hasTable: jest.fn(async (table: string) => table in tables), + hasColumn: jest.fn( + async (table: string, column: string) => + (schemas as any)[table]?.includes(column) ?? false, + ), + alterTable: jest.fn(async (table: string, callback: any) => { + const builder = { + dropColumn: jest.fn((column: string) => { + (schemas as any)[table] = (schemas as any)[table].filter( + (name: string) => name !== column, + ); + (tables as any)[table] = (tables as any)[table].map((row: any) => { + const next = { ...row }; + delete next[column]; + return next; + }); + }), + renameColumn: jest.fn((oldName: string, newName: string) => { + (schemas as any)[table] = (schemas as any)[table].map( + (name: string) => (name === oldName ? newName : name), + ); + (tables as any)[table] = (tables as any)[table].map((row: any) => { + const next = { ...row, [newName]: row[oldName] }; + delete next[oldName]; + return next; + }); + }), + }; + callback(builder); + }), + }, + raw: jest.fn(async (sql: string, params: string[]) => { + if (sql.startsWith('UPDATE')) { + const [table, newName, oldName] = params; + (tables as any)[table] = (tables as any)[table].map((row: any) => + row[newName] === null || row[newName] === undefined + ? { ...row, [newName]: row[oldName] } + : row, + ); + return; + } + const [table, oldName, newName] = params; + const count = (tables as any)[table].filter( + (row: any) => + row[oldName] !== null && + row[oldName] !== undefined && + row[newName] !== null && + row[newName] !== undefined && + row[oldName] !== row[newName], + ).length; + return [{ count }]; + }), + }; + return { knex, tables, schemas }; +} + +function makePhysicalMongo(documents: any[]) { + const collections = { enfyra_file: documents }; + const db = { + collection: jest.fn((name: string) => ({ + updateMany: jest.fn(async (filter: any, update: any) => { + (collections as any)[name] = (collections as any)[name].map( + (doc: any) => { + const hasOld = doc.isPublished !== undefined; + const hasNew = doc.isPublic !== undefined; + if (filter.isPublished?.$exists && !hasOld) return doc; + if (filter.isPublic?.$exists === false && hasNew) return doc; + if (Array.isArray(update)) { + return { ...doc, isPublic: doc.isPublished }; + } + if (update.$unset?.isPublished !== undefined) { + const next = { ...doc }; + delete next.isPublished; + return next; + } + return doc; + }, + ); + }), + countDocuments: jest.fn( + async () => + (collections as any)[name].filter( + (doc: any) => + doc.isPublished !== undefined && + doc.isPublic !== undefined && + doc.isPublished !== doc.isPublic, + ).length, + ), + })), + }; + return { db, collections }; +} + +describe('MetadataPhysicalMigrationHelper conflict-safe field rename', () => { + it('preserves SQL legacy column when old and new values conflict', async () => { + const sql = makePhysicalSql([ + { id: 1, isPublished: true, isPublic: false }, + ]); + const helper = new MetadataPhysicalMigrationHelper({ + queryBuilderService: { + getKnex: jest.fn(() => sql.knex), + } as any, + verbose: jest.fn(), + }); + + await helper.renameSqlPhysicalColumnIfNeeded( + 'enfyra_file', + 'isPublished', + 'isPublic', + ); + + expect(sql.tables.enfyra_file).toEqual([ + { id: 1, isPublished: true, isPublic: false }, + ]); + expect(sql.schemas.enfyra_file).toContain('isPublished'); + }); + + it('drops SQL legacy column when target values are safely backfilled', async () => { + const sql = makePhysicalSql([{ id: 1, isPublished: true, isPublic: null }]); + const helper = new MetadataPhysicalMigrationHelper({ + queryBuilderService: { + getKnex: jest.fn(() => sql.knex), + } as any, + verbose: jest.fn(), + }); + + await helper.renameSqlPhysicalColumnIfNeeded( + 'enfyra_file', + 'isPublished', + 'isPublic', + ); + + expect(sql.tables.enfyra_file).toEqual([{ id: 1, isPublic: true }]); + expect(sql.schemas.enfyra_file).not.toContain('isPublished'); + }); + + it('preserves Mongo legacy field when old and new values conflict', async () => { + const mongo = makePhysicalMongo([ + { _id: '1', isPublished: true, isPublic: false }, + ]); + const helper = new MetadataPhysicalMigrationHelper({ + queryBuilderService: { + isMongoDb: jest.fn(() => true), + getMongoDb: jest.fn(() => mongo.db), + } as any, + verbose: jest.fn(), + }); + + await helper.renameMongoDocumentFieldIfNeeded( + 'enfyra_file', + 'isPublished', + 'isPublic', + ); + + expect(mongo.collections.enfyra_file).toEqual([ + { _id: '1', isPublished: true, isPublic: false }, + ]); + }); + + it('unsets Mongo legacy field when target values are safely backfilled', async () => { + const mongo = makePhysicalMongo([{ _id: '1', isPublished: true }]); + const helper = new MetadataPhysicalMigrationHelper({ + queryBuilderService: { + isMongoDb: jest.fn(() => true), + getMongoDb: jest.fn(() => mongo.db), + } as any, + verbose: jest.fn(), + }); + + await helper.renameMongoDocumentFieldIfNeeded( + 'enfyra_file', + 'isPublished', + 'isPublic', + ); + + expect(mongo.collections.enfyra_file).toEqual([ + { _id: '1', isPublic: true }, + ]); + }); +}); From b552b4fc88c0ff5859471f82c57bf7967b067669 Mon Sep 17 00:00:00 2001 From: dothinh115 Date: Wed, 24 Jun 2026 12:04:28 +0700 Subject: [PATCH 8/8] feat: refactor user caching mechanism to utilize local cache and improve performance --- src/domain/auth/services/api-token.service.ts | 11 +- src/domain/auth/services/auth.service.ts | 17 +-- src/domain/auth/services/oauth.service.ts | 18 +-- .../auth/services/user-revocation.service.ts | 6 +- src/http/middlewares/jwt-auth.middleware.ts | 31 ++--- .../services/file-assets.service.ts | 4 +- .../graphql/resolvers/dynamic.resolver.ts | 7 +- .../gateway/dynamic-websocket.gateway.ts | 26 ++-- src/shared/utils/load-user-with-role.util.ts | 96 ++++++++++++++- test/domain/load-user-with-role.util.spec.ts | 46 ++++++- test/http/jwt-auth-middleware.spec.ts | 113 +++++++++++++++++- .../security/graphql-route-permission.spec.ts | 7 +- 12 files changed, 292 insertions(+), 90 deletions(-) diff --git a/src/domain/auth/services/api-token.service.ts b/src/domain/auth/services/api-token.service.ts index 21530bec..b5c9a3de 100644 --- a/src/domain/auth/services/api-token.service.ts +++ b/src/domain/auth/services/api-token.service.ts @@ -9,8 +9,8 @@ import { BadRequestException, UnauthorizedException } from '../../exceptions'; import { Logger } from '../../../shared/logger'; import { loadUserWithRole, - userCacheKey, - USER_CACHE_TTL_MS, + primeCachedUserWithRole, + primeCachedUserSnapshot, } from '../../../shared/utils/load-user-with-role.util'; import { parseOrBadRequest } from '../../../shared/utils/zod-parse.util'; import { @@ -172,7 +172,7 @@ export class ApiTokenService { userId, expiresAt: expiresAt ? expiresAt.toISOString() : null, }); - await this.cacheService.set(userCacheKey(userId), user, USER_CACHE_TTL_MS); + primeCachedUserSnapshot(userId, user); const accessExpiresAtMs = Math.min( Date.now() + API_TOKEN_ACCESS_TTL_MS, @@ -246,10 +246,7 @@ export class ApiTokenService { } private async seedUserCache(userId: unknown): Promise { - const user = await loadUserWithRole(this.queryBuilder, userId); - if (user) { - await this.cacheService.set(userCacheKey(userId), user, USER_CACHE_TTL_MS); - } + await primeCachedUserWithRole(this.queryBuilder, userId); } private hashToken(token: string): string { diff --git a/src/domain/auth/services/auth.service.ts b/src/domain/auth/services/auth.service.ts index ec48dc5a..8ceccc08 100644 --- a/src/domain/auth/services/auth.service.ts +++ b/src/domain/auth/services/auth.service.ts @@ -7,11 +7,7 @@ import * as jwt from 'jsonwebtoken'; import { IQueryBuilder } from '../../shared/interfaces/query-builder.interface'; import { ICache } from '../../shared/interfaces/cache.interface'; import { BcryptService } from './bcrypt.service'; -import { - loadUserWithRole, - userCacheKey, - USER_CACHE_TTL_MS, -} from '../../../shared/utils/load-user-with-role.util'; +import { primeCachedUserWithRole } from '../../../shared/utils/load-user-with-role.util'; import { parseOrBadRequest } from '../../../shared/utils/zod-parse.util'; import { loginSchema, @@ -23,7 +19,6 @@ export class AuthService { private bcryptService: BcryptService; private queryBuilder: IQueryBuilder; private envService: EnvService; - private cacheService: ICache; constructor(deps: { bcryptService: BcryptService; @@ -34,18 +29,10 @@ export class AuthService { this.bcryptService = deps.bcryptService; this.queryBuilder = deps.queryBuilderService; this.envService = deps.envService; - this.cacheService = deps.cacheService; } private async seedUserCache(userIdForJwt: unknown): Promise { - const user = await loadUserWithRole(this.queryBuilder, userIdForJwt); - if (user) { - await this.cacheService.set( - userCacheKey(userIdForJwt), - user, - USER_CACHE_TTL_MS, - ); - } + await primeCachedUserWithRole(this.queryBuilder, userIdForJwt); } private hashToken(token: string): string { diff --git a/src/domain/auth/services/oauth.service.ts b/src/domain/auth/services/oauth.service.ts index ce7b6aca..ac579ce8 100644 --- a/src/domain/auth/services/oauth.service.ts +++ b/src/domain/auth/services/oauth.service.ts @@ -13,11 +13,7 @@ import { ICache } from '../../shared/interfaces/cache.interface'; import { ExecutorEngineService } from '@enfyra/kernel'; import { resolveExecutableScript } from '../../../shared/utils/script-code.util'; import { RepoRegistryService } from '../../../engines/cache'; -import { - loadUserWithRole, - userCacheKey, - USER_CACHE_TTL_MS, -} from '../../../shared/utils/load-user-with-role.util'; +import { primeCachedUserWithRole } from '../../../shared/utils/load-user-with-role.util'; import type { OAuthExchangeTokenPayload } from '../types/oauth-exchange-code.types'; type OAuthProvider = 'google' | 'facebook' | 'github'; @@ -430,17 +426,7 @@ export class OAuthService { { refreshTokenHash }, ); - const userForCache = await loadUserWithRole( - this.queryBuilderService, - userId, - ); - if (userForCache) { - await this.cacheService.set( - userCacheKey(userId), - userForCache, - USER_CACHE_TTL_MS, - ); - } + await primeCachedUserWithRole(this.queryBuilderService, userId); const decoded: any = jwt.decode(accessToken); diff --git a/src/domain/auth/services/user-revocation.service.ts b/src/domain/auth/services/user-revocation.service.ts index 1972c693..c888c1b4 100644 --- a/src/domain/auth/services/user-revocation.service.ts +++ b/src/domain/auth/services/user-revocation.service.ts @@ -3,14 +3,13 @@ import { IRedisPubSub } from '../../shared/interfaces/redis-pubsub.interface'; import { ICache } from '../../shared/interfaces/cache.interface'; import { IQueryBuilder } from '../../shared/interfaces/query-builder.interface'; import { Logger } from '../../../shared/logger'; -import { userCacheKey } from '../../../shared/utils/load-user-with-role.util'; +import { invalidateCachedUserWithRole } from '../../../shared/utils/load-user-with-role.util'; const USER_REVOKED_CHANNEL = 'user:revoked'; export class UserRevocationService { private readonly logger = new Logger(UserRevocationService.name); private readonly redisPubSubService: IRedisPubSub; - private readonly cacheService: ICache; private readonly queryBuilderService: IQueryBuilder; constructor(deps: { @@ -19,7 +18,6 @@ export class UserRevocationService { queryBuilderService: IQueryBuilder; }) { this.redisPubSubService = deps.redisPubSubService; - this.cacheService = deps.cacheService; this.queryBuilderService = deps.queryBuilderService; } @@ -49,7 +47,7 @@ export class UserRevocationService { } private async handleRevocation(userId: unknown): Promise { - await this.cacheService.deleteKey(userCacheKey(userId)); + invalidateCachedUserWithRole(userId); const isMongoDB = this.queryBuilderService.isMongoDb(); if (isMongoDB) { diff --git a/src/http/middlewares/jwt-auth.middleware.ts b/src/http/middlewares/jwt-auth.middleware.ts index d8fa07af..01e3c163 100644 --- a/src/http/middlewares/jwt-auth.middleware.ts +++ b/src/http/middlewares/jwt-auth.middleware.ts @@ -7,9 +7,8 @@ import { import { QueryBuilderService } from '@enfyra/kernel'; import { CacheService } from '../../engines/cache'; import { - loadUserWithRole, - userCacheKey, - USER_CACHE_TTL_MS, + loadCachedUserWithRole, + withUserRequestContext, } from '../../shared/utils/load-user-with-role.util'; import type { ApiTokenService } from '../../domain/auth'; @@ -31,7 +30,7 @@ function setAnonymousUser(req: any): void { export function jwtAuthMiddleware( queryBuilderService: QueryBuilderService, - cacheService: CacheService, + _cacheService: CacheService, secretKey: string, apiTokenService?: ApiTokenService, ) { @@ -75,26 +74,20 @@ export function jwtAuthMiddleware( } const { id, loginProvider, tokenType, tokenId } = payload; - const cacheKey = userCacheKey(id); + const cachedUser = await loadCachedUserWithRole( + queryBuilderService, + id, + ); - let user = await cacheService.get(cacheKey); - - if (!user) { - user = await loadUserWithRole(queryBuilderService, id); - if (user) { - await cacheService.set(cacheKey, user, USER_CACHE_TTL_MS); - } - } - - if (!user) { + if (!cachedUser) { setAnonymousUser(req); return next(); } - Object.assign(user, { - loginProvider: loginProvider ?? null, - tokenType: tokenType ?? null, - apiTokenId: tokenId ?? null, + const user = withUserRequestContext(cachedUser, { + loginProvider, + tokenType, + tokenId, }); req.user = user; diff --git a/src/modules/file-management/services/file-assets.service.ts b/src/modules/file-management/services/file-assets.service.ts index 6d445fdc..e75be883 100644 --- a/src/modules/file-management/services/file-assets.service.ts +++ b/src/modules/file-management/services/file-assets.service.ts @@ -11,7 +11,7 @@ import { StreamHelper } from '../utils/stream.helper'; import { FileValidationHelper } from '../utils/file-validation.helper'; import { ImageFormatHelper } from '../utils/image-format.helper'; import { FileSignatureHelper } from '../utils/file-signature.helper'; -import { loadUserWithRole } from '../../../shared/utils/load-user-with-role.util'; +import { loadCachedUserWithRole } from '../../../shared/utils/load-user-with-role.util'; import { EventEmitter2 } from 'eventemitter2'; import { CACHE_EVENTS } from '../../../shared/utils/cache-events.constants'; import type { TCacheInvalidationPayload } from '../../../shared/types/cache.types'; @@ -484,7 +484,7 @@ export class FileAssetsService { !isRootAdmin && (!req.user || (!req.user.role && !req.user.roleId)) ) { - req.user = await loadUserWithRole( + req.user = await loadCachedUserWithRole( this.queryBuilderService, currentUserId, ); diff --git a/src/modules/graphql/resolvers/dynamic.resolver.ts b/src/modules/graphql/resolvers/dynamic.resolver.ts index a66c1679..d45fc3e3 100644 --- a/src/modules/graphql/resolvers/dynamic.resolver.ts +++ b/src/modules/graphql/resolvers/dynamic.resolver.ts @@ -16,7 +16,7 @@ import { import { PolicyService, isPolicyDeny } from '../../../domain/policy'; import { resolveClientIpFromRequest } from '../../../shared/utils/client-ip.util'; import { isMetadataTable } from '../../../shared/utils/cache-events.constants'; -import { loadUserWithRole } from '../../../shared/utils/load-user-with-role.util'; +import { loadCachedUserWithRole } from '../../../shared/utils/load-user-with-role.util'; export class DynamicResolver { private readonly queryBuilderService: QueryBuilderService; @@ -265,7 +265,10 @@ export class DynamicResolver { } catch { throwGqlError('401', 'Unauthorized'); } - const user = await loadUserWithRole(this.queryBuilderService, decoded.id); + const user = await loadCachedUserWithRole( + this.queryBuilderService, + decoded.id, + ); if (!user) { throwGqlError('401', 'Invalid user'); } diff --git a/src/modules/websocket/gateway/dynamic-websocket.gateway.ts b/src/modules/websocket/gateway/dynamic-websocket.gateway.ts index 49de0d58..ff9a5fbf 100644 --- a/src/modules/websocket/gateway/dynamic-websocket.gateway.ts +++ b/src/modules/websocket/gateway/dynamic-websocket.gateway.ts @@ -17,9 +17,8 @@ import { import { QueryBuilderService } from '@enfyra/kernel'; import { RedisAdminService } from '../../admin/services/redis-admin.service'; import { - loadUserWithRole, - userCacheKey, - USER_CACHE_TTL_MS, + loadCachedUserWithRole, + withUserRequestContext, } from '../../../shared/utils/load-user-with-role.util'; import type { Cradle } from '../../../container'; @@ -627,22 +626,19 @@ export class DynamicWebSocketGateway { if (currentUser?.isRootAdmin !== undefined) return currentUser; const id = currentUser?.id ?? currentUser?.userId; if (id === undefined || id === null) return null; - const cacheKey = userCacheKey(id); - let user = await this.cacheService.get(cacheKey); - if (!user) { - user = await loadUserWithRole(this.queryBuilderService, id); - if (user) { - await this.cacheService.set(cacheKey, user, USER_CACHE_TTL_MS); - } - } - if (user) { - Object.assign(user, { - loginProvider: currentUser?.loginProvider ?? null, + const cachedUser = await loadCachedUserWithRole( + this.queryBuilderService, + id, + ); + if (cachedUser) { + const user = withUserRequestContext(cachedUser, { + loginProvider: currentUser?.loginProvider, }); socket.data.user = user; socket.data.userId = user.id || user._id || id; + return user; } - return user; + return null; } async handleConnection(_client: Socket) {} diff --git a/src/shared/utils/load-user-with-role.util.ts b/src/shared/utils/load-user-with-role.util.ts index f6957402..a3afb9fa 100644 --- a/src/shared/utils/load-user-with-role.util.ts +++ b/src/shared/utils/load-user-with-role.util.ts @@ -4,10 +4,25 @@ import { DatabaseConfigService } from '../services'; export const USER_CACHE_TTL_MS = 60_000; +type CachedUserEntry = { + expiresAt: number; + user: any; +}; + +const localUserCache = new Map(); + export function userCacheKey(id: unknown): string { return `user:${String(id)}`; } +function normalizeUserLookupId( + queryBuilder: IQueryBuilder, + rawId: unknown, +): unknown | null { + if (rawId === undefined || rawId === null) return null; + return queryBuilder.isMongoDb() ? toMongoObjectId(rawId) : toSqlId(rawId); +} + function toMongoObjectId(value: unknown): ObjectId | null { if (value instanceof ObjectId) return value; if (typeof value === 'string' && /^[0-9a-fA-F]{24}$/.test(value)) { @@ -36,11 +51,9 @@ export async function loadUserWithRole( queryBuilder: IQueryBuilder, rawId: unknown, ): Promise { - if (rawId === undefined || rawId === null) return null; - const isMongoDB = queryBuilder.isMongoDb(); const idField = DatabaseConfigService.getPkField(); - const idValue = isMongoDB ? toMongoObjectId(rawId) : toSqlId(rawId); + const idValue = normalizeUserLookupId(queryBuilder, rawId); if (!idValue) return null; const user = await queryBuilder.findOne({ @@ -63,3 +76,80 @@ export async function loadUserWithRole( return user; } + +export async function loadCachedUserWithRole( + queryBuilder: IQueryBuilder, + rawId: unknown, +): Promise { + const idValue = normalizeUserLookupId(queryBuilder, rawId); + if (!idValue) return null; + + const cacheKey = userCacheKey(idValue); + const cachedUser = localUserCache.get(cacheKey); + if (cachedUser) { + if (cachedUser.expiresAt > Date.now()) return cachedUser.user; + localUserCache.delete(cacheKey); + } + + const user = await loadUserWithRole(queryBuilder, idValue); + if (user) { + localUserCache.set(cacheKey, { + user, + expiresAt: Date.now() + USER_CACHE_TTL_MS, + }); + } + return user; +} + +export async function primeCachedUserWithRole( + queryBuilder: IQueryBuilder, + rawId: unknown, +): Promise { + const user = await loadUserWithRole(queryBuilder, rawId); + if (!user) return; + + const idValue = normalizeUserLookupId(queryBuilder, rawId); + if (!idValue) return; + localUserCache.set(userCacheKey(idValue), { + user, + expiresAt: Date.now() + USER_CACHE_TTL_MS, + }); +} + +export function primeCachedUserSnapshot(rawId: unknown, user: any): void { + if (!user || rawId === undefined || rawId === null) return; + localUserCache.set(userCacheKey(rawId), { + user, + expiresAt: Date.now() + USER_CACHE_TTL_MS, + }); +} + +export function invalidateCachedUserWithRole(rawId: unknown): void { + if (rawId === undefined || rawId === null) return; + localUserCache.delete(userCacheKey(rawId)); +} + +export function clearLocalUserCacheForTesting(): void { + localUserCache.clear(); +} + +export function withUserRequestContext( + user: any, + context: { + loginProvider?: unknown; + tokenType?: unknown; + tokenId?: unknown; + }, +): any { + if (!user) return user; + return { + ...user, + role: + user.role && typeof user.role === 'object' && !Array.isArray(user.role) + ? { ...user.role } + : user.role, + loginProvider: context.loginProvider ?? null, + tokenType: context.tokenType ?? null, + apiTokenId: context.tokenId ?? null, + }; +} diff --git a/test/domain/load-user-with-role.util.spec.ts b/test/domain/load-user-with-role.util.spec.ts index 6b096dd7..f3b4315b 100644 --- a/test/domain/load-user-with-role.util.spec.ts +++ b/test/domain/load-user-with-role.util.spec.ts @@ -1,11 +1,17 @@ import { ObjectId } from 'mongodb'; import { afterEach, describe, expect, it, vi } from 'vitest'; import { DatabaseConfigService } from '../../src/shared/services'; -import { loadUserWithRole } from '../../src/shared/utils/load-user-with-role.util'; +import { + clearLocalUserCacheForTesting, + loadCachedUserWithRole, + loadUserWithRole, + primeCachedUserSnapshot, +} from '../../src/shared/utils/load-user-with-role.util'; describe('loadUserWithRole', () => { afterEach(() => { DatabaseConfigService.resetForTesting(); + clearLocalUserCacheForTesting(); }); it('returns null for invalid Mongo user ids without querying', async () => { @@ -104,4 +110,42 @@ describe('loadUserWithRole', () => { }); expect(result?.role).toEqual(role); }); + + it('returns local cached users without querying the database', async () => { + DatabaseConfigService.overrideForTesting('postgres'); + const cachedUser = { id: '1', email: 'cached@example.com' }; + primeCachedUserSnapshot('1', cachedUser); + const queryBuilder = { + isMongoDb: () => false, + findOne: vi.fn(), + } as any; + + await expect( + loadCachedUserWithRole(queryBuilder, '1'), + ).resolves.toBe(cachedUser); + + expect(queryBuilder.findOne).not.toHaveBeenCalled(); + }); + + it('caches loaded users in the local process for one minute', async () => { + DatabaseConfigService.overrideForTesting('postgres'); + const user = { id: '1', email: 'root@example.com', roleId: 2 }; + const role = { id: 2, name: 'Admin' }; + const findOne = vi.fn(async ({ table }) => { + if (table === 'enfyra_user') return user; + if (table === 'enfyra_role') return role; + return null; + }); + const queryBuilder = { + isMongoDb: () => false, + findOne, + } as any; + + const result = await loadCachedUserWithRole(queryBuilder, '1'); + const cachedResult = await loadCachedUserWithRole(queryBuilder, '1'); + + expect(result?.role).toEqual(role); + expect(cachedResult).toBe(result); + expect(findOne).toHaveBeenCalledTimes(2); + }); }); diff --git a/test/http/jwt-auth-middleware.spec.ts b/test/http/jwt-auth-middleware.spec.ts index 330f417c..b9163cbf 100644 --- a/test/http/jwt-auth-middleware.spec.ts +++ b/test/http/jwt-auth-middleware.spec.ts @@ -1,12 +1,33 @@ -import { describe, expect, it, vi } from 'vitest'; +import { afterEach, describe, expect, it, vi } from 'vitest'; +import { SignJWT } from 'jose'; import { jwtAuthMiddleware } from '../../src/http/middlewares/jwt-auth.middleware'; import { InvalidTokenException } from '../../src/domain/exceptions'; +import { + clearLocalUserCacheForTesting, + primeCachedUserSnapshot, +} from '../../src/shared/utils/load-user-with-role.util'; -function makeMiddleware() { - return jwtAuthMiddleware({} as any, {} as any, 'test-secret'); +const secret = 'test-secret'; + +function makeMiddleware( + queryBuilder: any = {}, + cacheService: any = {}, + apiTokenService?: any, +) { + return jwtAuthMiddleware(queryBuilder, cacheService, secret, apiTokenService); +} + +async function signToken(payload: Record) { + return new SignJWT(payload) + .setProtectedHeader({ alg: 'HS256' }) + .sign(new TextEncoder().encode(secret)); } describe('jwtAuthMiddleware', () => { + afterEach(() => { + clearLocalUserCacheForTesting(); + }); + it('treats invalid Bearer tokens as anonymous on public methods', async () => { const req: any = { method: 'GET', @@ -40,4 +61,90 @@ describe('jwtAuthMiddleware', () => { expect(next).toHaveBeenCalledWith(expect.any(InvalidTokenException)); }); + + it('caches hydrated users after a verified JWT', async () => { + const user = { id: '1', email: 'root@example.com', roleId: '2' }; + const role = { id: '2', name: 'Admin' }; + const findOne = vi.fn(async ({ table }) => { + if (table === 'enfyra_user') return user; + if (table === 'enfyra_role') return role; + return null; + }); + const queryBuilder = { + isMongoDb: () => false, + findOne, + }; + const token = await signToken({ id: '1' }); + const req: any = { + method: 'GET', + headers: { authorization: `Bearer ${token}` }, + routeData: { context: { $user: null } }, + }; + const next = vi.fn(); + + await makeMiddleware(queryBuilder)(req, {} as any, next); + const secondReq: any = { + method: 'GET', + headers: { authorization: `Bearer ${token}` }, + routeData: { context: { $user: null } }, + }; + await makeMiddleware(queryBuilder)(secondReq, {} as any, vi.fn()); + + expect(findOne).toHaveBeenCalledTimes(2); + expect(req.user).toEqual( + expect.objectContaining({ + id: '1', + role, + loginProvider: null, + tokenType: null, + apiTokenId: null, + }), + ); + expect(secondReq.user).toEqual(expect.objectContaining({ id: '1', role })); + expect(req.routeData.context.$user).toBe(req.user); + expect(next).toHaveBeenCalledWith(); + }); + + it('does not write request token context into cached user snapshots', async () => { + const cachedUser: any = { + id: '1', + email: 'root@example.com', + role: { id: '2', name: 'Admin' }, + }; + primeCachedUserSnapshot('1', cachedUser); + const token = await signToken({ + id: '1', + loginProvider: 'api_token', + tokenType: 'api_token', + tokenId: 'token-1', + }); + const req: any = { + method: 'GET', + headers: { authorization: `Bearer ${token}` }, + routeData: { context: { $user: null } }, + }; + const next = vi.fn(); + + await makeMiddleware( + { isMongoDb: () => false }, + {}, + { + validateAccessPayload: vi.fn().mockResolvedValue(true), + }, + )(req, {} as any, next); + + expect(req.user).toEqual( + expect.objectContaining({ + id: '1', + loginProvider: 'api_token', + tokenType: 'api_token', + apiTokenId: 'token-1', + }), + ); + expect(cachedUser).toEqual({ + id: '1', + email: 'root@example.com', + role: { id: '2', name: 'Admin' }, + }); + }); }); diff --git a/test/security/graphql-route-permission.spec.ts b/test/security/graphql-route-permission.spec.ts index b568a88f..02267808 100644 --- a/test/security/graphql-route-permission.spec.ts +++ b/test/security/graphql-route-permission.spec.ts @@ -3,11 +3,11 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'; import { DynamicResolver } from '../../src/modules/graphql/resolvers/dynamic.resolver'; const mocks = vi.hoisted(() => ({ - loadUserWithRole: vi.fn(), + loadCachedUserWithRole: vi.fn(), })); vi.mock('../../src/shared/utils/load-user-with-role.util', () => ({ - loadUserWithRole: mocks.loadUserWithRole, + loadCachedUserWithRole: mocks.loadCachedUserWithRole, })); function makeResolver(overrides: Record = {}) { @@ -49,6 +49,7 @@ function makeResolver(overrides: Record = {}) { $params: input.params, })), }, + cacheService: {}, ...overrides, } as any); @@ -67,7 +68,7 @@ function authContext() { describe('DynamicResolver route permissions', () => { beforeEach(() => { vi.clearAllMocks(); - mocks.loadUserWithRole.mockResolvedValue({ + mocks.loadCachedUserWithRole.mockResolvedValue({ id: 'user-1', role: { id: 'role-user' }, isRootAdmin: false,