diff --git a/.agents/commands/adt/adk.md b/.agents/commands/adt/adk.md index 9affc444..95cf15f6 100644 --- a/.agents/commands/adt/adk.md +++ b/.agents/commands/adt/adk.md @@ -23,6 +23,7 @@ Comprehensive workflow for implementing a new ADK object type with full stack su **Goal:** Fully understand the ABAP object type before implementation. **Actions:** + 1. Research the object type in SAP documentation 2. Identify ADT endpoint(s) for the object type: - Discovery: `GET /sap/bc/adt/discovery` - find available endpoints @@ -34,6 +35,7 @@ Comprehensive workflow for implementing a new ADK object type with full stack su 4. Identify if it's a repository object (transportable) or runtime object **Output:** Object type analysis document with: + - ADT endpoint(s) - Supported operations (CRUD + actions) - Object relationships @@ -46,6 +48,7 @@ Comprehensive workflow for implementing a new ADK object type with full stack su **Goal:** Type-safe XML parsing for the object type. **Actions:** + 1. Capture sample XML responses from SAP: - GET single object - GET list/collection @@ -60,6 +63,7 @@ Comprehensive workflow for implementing a new ADK object type with full stack su 5. **MANDATORY:** Create test scenario in `adt-schemas-xsd/tests/scenarios/` **Output:** + - Schema in `adt-schemas-xsd/src/schemas/generated/` or `manual/` - Test scenario with real SAP XML fixture - Exported from index.ts @@ -71,25 +75,30 @@ Comprehensive workflow for implementing a new ADK object type with full stack su **Goal:** Type-safe API contract definition. **Actions:** + 1. Create contract in `adt-contracts/src/adt/{area}/`: + ```typescript import { contract } from '../../base'; import { mySchema } from '@abapify/adt-schemas-xsd'; - + export const myObject = { - get: (name: string) => contract({ - method: 'GET', - path: `/sap/bc/adt/{area}/${name}`, - headers: { Accept: 'application/xml' }, - responses: { 200: mySchema }, - }), + get: (name: string) => + contract({ + method: 'GET', + path: `/sap/bc/adt/{area}/${name}`, + headers: { Accept: 'application/xml' }, + responses: { 200: mySchema }, + }), // ... other operations }; ``` + 2. Export from area index and main index 3. **MANDATORY:** Create test scenario in `adt-contracts/tests/contracts/` **Output:** + - Contract in `adt-contracts/src/adt/{area}/` - Test scenario with contract validation - Exported from index.ts @@ -99,17 +108,20 @@ Comprehensive workflow for implementing a new ADK object type with full stack su **Goal:** Business logic layer for complex operations. **When needed:** + - Multi-step operations (create + activate + transport) - Complex error handling - Caching or optimization - Cross-object coordination **Actions:** + 1. Create service in `adt-client-v2/src/services/{area}/`: + ```typescript export class MyObjectService { constructor(private client: AdtClient) {} - + async get(name: string): Promise { const contract = myObjectContract.get(name); return this.client.execute(contract); @@ -117,10 +129,12 @@ Comprehensive workflow for implementing a new ADK object type with full stack su // ... other methods } ``` + 2. Register service in client factory 3. Add tests for service methods **Output:** + - Service class in `adt-client-v2/src/services/` - Service registration in client - Unit tests @@ -132,6 +146,7 @@ Comprehensive workflow for implementing a new ADK object type with full stack su **Location:** `adk-v2/src/objects/{category}/{object_type}/` **Files to create:** + 1. `{type}.model.ts` - Main ADK object class 2. `{type}.types.ts` - TypeScript interfaces 3. `index.ts` - Exports @@ -167,12 +182,14 @@ export type MyObjectData = MyObjectResponse; ``` **Why adt-client-v2 is the import source:** + - **Single dependency:** ADK only depends on `adt-client-v2`, not `adt-contracts` directly - **Clean layering:** `adt-client-v2` re-exports contract types for consumers - **Contract is still source of truth:** Types originate from contract, but flow through client - **Simpler dependency graph:** ADK → client → contracts → schemas **Dependency Architecture:** + ``` adt-schemas-xsd (schema definitions) ↓ @@ -184,6 +201,7 @@ adk-v2 (imports types from client only) ``` **Pattern:** + ```typescript // {type}.model.ts import { AdkObject } from '../../../base/model'; @@ -195,39 +213,45 @@ export type MyObjectData = MyObjectResponse; export class AdkMyObject extends AdkObject { readonly kind = MyObjectKind; - - get objectUri(): string { - return `/sap/bc/adt/{area}/${encodeURIComponent(this.name)}`; + + get objectUri(): string { + return `/sap/bc/adt/{area}/${encodeURIComponent(this.name)}`; } - + // Properties from schema - get description(): string { return this.dataSync.description; } - + get description(): string { + return this.dataSync.description; + } + // Lazy-loaded relationships async getRelated(): Promise { return this.lazy('related', async () => { // Load via service }); } - + // CRUD operations async load(): Promise { const data = await this.ctx.services.myObject.get(this.name); this.setData(data); return this; } - + // Actions - async activate(): Promise { /* ... */ } + async activate(): Promise { + /* ... */ + } } ``` **Cross-object references:** + - Use `AdkContext` for accessing other object types - Implement lazy loading for relationships - Use `lazy()` helper for caching **Output:** + - ADK object model with full type safety - Lazy-loaded relationships - CRUD + action methods @@ -242,6 +266,7 @@ export class AdkMyObject extends AdkObject { See `/adt-command` workflow for detailed implementation guide. **Quick summary:** + - Location: `adt-cli/src/lib/commands/{area}/` - Uses `getAdtClientV2()` for client - Uses router + pages for display @@ -256,6 +281,7 @@ See `/adt-command` workflow for detailed implementation guide. See `/adt-page` workflow for detailed implementation guide. **Quick summary:** + - Location: `adt-cli/src/lib/ui/pages/{type}.ts` - Self-registering via `definePage()` - Uses ADK for data fetching @@ -268,6 +294,7 @@ See `/adt-page` workflow for detailed implementation guide. **Location:** `adt-tui/src/pages/{area}/` **Pattern:** + ```typescript // pages/{area}/{type}-editor.tsx import { useState } from 'react'; @@ -277,17 +304,17 @@ import { useNavigation } from '../../lib/context'; export function MyObjectEditor({ obj }: { obj: AdkMyObject }) { const [description, setDescription] = useState(obj.description); const { navigate } = useNavigation(); - + const save = async () => { await obj.update({ description }); navigate('back'); }; - + return ( Edit {obj.name} - @@ -298,11 +325,13 @@ export function MyObjectEditor({ obj }: { obj: AdkMyObject }) { ``` **Integration:** + - Register page in TUI routes - Connect to ADK object for save operations - Handle validation and errors **Output:** + - TUI editor page - Form components for object fields - Save/cancel actions @@ -314,10 +343,12 @@ export function MyObjectEditor({ obj }: { obj: AdkMyObject }) { **Location:** `plugins/abapgit/src/objects/{type}/` **Files to create:** + 1. `{type}-handler.ts` - Serialization/deserialization 2. `{type}-files.ts` - File mapping **Pattern:** + ```typescript // objects/{type}/{type}-handler.ts import { ObjectHandler } from '../../lib/handler'; @@ -326,15 +357,15 @@ import { AdkMyObject } from '@abapify/adk-v2'; export class MyObjectHandler implements ObjectHandler { readonly objectType = 'MYOB'; readonly fileExtension = 'myob'; - + async serialize(obj: AdkMyObject): Promise { return { - [`${obj.name.toLowerCase()}.${this.fileExtension}.xml`]: + [`${obj.name.toLowerCase()}.${this.fileExtension}.xml`]: this.buildMetadataXml(obj), // Additional files (source code, etc.) }; } - + async deserialize(files: SerializedFiles): Promise { // Parse files back to object data } @@ -342,6 +373,7 @@ export class MyObjectHandler implements ObjectHandler { ``` **Register handler:** + ```typescript // objects/index.ts import { MyObjectHandler } from './{type}/{type}-handler'; @@ -352,6 +384,7 @@ export const handlers = [ ``` **Output:** + - Object handler for serialization - File mapping for Git storage - Round-trip tests diff --git a/.agents/commands/adt/command.md b/.agents/commands/adt/command.md index 9384e2ee..f3a6b18d 100644 --- a/.agents/commands/adt/command.md +++ b/.agents/commands/adt/command.md @@ -40,6 +40,7 @@ Create CLI commands for ADT object types. ``` **Why this order?** + - **ADK** - Encapsulates business logic, relationships, lazy loading - **Service** - Reusable business logic, error handling - **Contract** - Type-safe but low-level @@ -65,6 +66,7 @@ Create CLI commands for ADT object types. ### Command Patterns **Full CRUD cycle:** + - `get ` - Display single object - `list` - List objects with filters - `create` - Create new object @@ -75,6 +77,7 @@ Create CLI commands for ADT object types. ### Client Initialization **ALWAYS use shared helper:** + ```typescript import { getAdtClientV2 } from '../utils/adt-client-v2'; import { AdkTransportRequest } from '@abapify/adk-v2'; @@ -87,6 +90,7 @@ const transport = await AdkTransportRequest.get(number); ``` **Key points:** + - `getAdtClientV2()` automatically initializes ADK global context - ADK objects can be used without passing context explicitly - Context is optional - pass it only for testing or multi-connection scenarios @@ -100,10 +104,11 @@ const transport = await AdkTransportRequest.get(number); **Location:** `adt-cli/src/lib/commands/{area}/{type}.ts` **Pattern:** + ```typescript /** * adt {area} {type} - {Type} commands - * + * * Uses ADK ({AdkType}) for operations. */ @@ -231,6 +236,7 @@ describe('{type} command', () => { ## Output Formatting Guidelines ### Emoji Indicators + - 🔄 - Loading/in progress - 🔍 - Searching - 📋 - Listing results @@ -240,7 +246,9 @@ describe('{type} command', () => { - 💾 - File saved ### JSON Output + **Always add `--json` flag:** + ```typescript if (options.json) { console.log(JSON.stringify(data, null, 2)); @@ -251,6 +259,7 @@ if (options.json) { ``` ### Error Handling + ```typescript try { // Command logic @@ -267,7 +276,7 @@ Commands should use the router for display: ```typescript import { router } from '../../ui/router'; -import '../../ui/pages/{type}'; // Trigger page registration +import '../../ui/pages/{type}'; // Trigger page registration // In action handler: const page = await router.navTo(client, '{TYPE_CODE}', { name: id }); @@ -275,6 +284,7 @@ page.print(); ``` This separates: + - **Command** - Handles CLI args, options, auth, progress - **Page** - Handles data fetching and rendering diff --git a/.agents/commands/adt/contract.md b/.agents/commands/adt/contract.md index 65aa62e3..98bb939e 100644 --- a/.agents/commands/adt/contract.md +++ b/.agents/commands/adt/contract.md @@ -25,14 +25,15 @@ import { mySchema } from '@abapify/adt-schemas-xsd'; // Contract definition with full type safety export const myResource = { - get: (id: string) => contract({ - method: 'GET', - path: `/sap/bc/adt/area/${id}`, - headers: { Accept: 'application/xml' }, - responses: { - 200: mySchema, // Schema provides response type - }, - }), + get: (id: string) => + contract({ + method: 'GET', + path: `/sap/bc/adt/area/${id}`, + headers: { Accept: 'application/xml' }, + responses: { + 200: mySchema, // Schema provides response type + }, + }), }; // When executed, response is fully typed: @@ -79,6 +80,7 @@ expect(contract.responses[200]).toBe(mySchema); **Goal:** Map ADT REST API to contract operations. **Actions:** + 1. Discover endpoint via ADT discovery: ```bash npx adt discovery @@ -104,6 +106,7 @@ expect(contract.responses[200]).toBe(mySchema); **Location:** `adt-contracts/src/adt/{area}/{resource}.ts` **Pattern:** + ```typescript // src/adt/{area}/{resource}.ts import { contract } from '../../base'; @@ -111,98 +114,105 @@ import { mySchema, myListSchema } from '@abapify/adt-schemas-xsd'; /** * {Resource} Contract - * + * * Endpoint: /sap/bc/adt/{area}/{resource} */ export const myResource = { /** * Get single {resource} */ - get: (id: string) => contract({ - method: 'GET', - path: `/sap/bc/adt/{area}/${id}`, - headers: { - Accept: 'application/xml', - }, - responses: { - 200: mySchema, - }, - }), + get: (id: string) => + contract({ + method: 'GET', + path: `/sap/bc/adt/{area}/${id}`, + headers: { + Accept: 'application/xml', + }, + responses: { + 200: mySchema, + }, + }), /** * List {resources} */ - list: (params?: { package?: string; user?: string }) => contract({ - method: 'GET', - path: '/sap/bc/adt/{area}', - headers: { - Accept: 'application/xml', - }, - query: params, - responses: { - 200: myListSchema, - }, - }), + list: (params?: { package?: string; user?: string }) => + contract({ + method: 'GET', + path: '/sap/bc/adt/{area}', + headers: { + Accept: 'application/xml', + }, + query: params, + responses: { + 200: myListSchema, + }, + }), /** * Create {resource} */ - create: () => contract({ - method: 'POST', - path: '/sap/bc/adt/{area}', - headers: { - Accept: 'application/xml', - 'Content-Type': 'application/xml', - }, - body: mySchema, - responses: { - 200: mySchema, - 201: mySchema, - }, - }), + create: () => + contract({ + method: 'POST', + path: '/sap/bc/adt/{area}', + headers: { + Accept: 'application/xml', + 'Content-Type': 'application/xml', + }, + body: mySchema, + responses: { + 200: mySchema, + 201: mySchema, + }, + }), /** * Update {resource} */ - update: (id: string) => contract({ - method: 'PUT', - path: `/sap/bc/adt/{area}/${id}`, - headers: { - Accept: 'application/xml', - 'Content-Type': 'application/xml', - }, - body: mySchema, - responses: { - 200: mySchema, - }, - }), + update: (id: string) => + contract({ + method: 'PUT', + path: `/sap/bc/adt/{area}/${id}`, + headers: { + Accept: 'application/xml', + 'Content-Type': 'application/xml', + }, + body: mySchema, + responses: { + 200: mySchema, + }, + }), /** * Delete {resource} */ - delete: (id: string) => contract({ - method: 'DELETE', - path: `/sap/bc/adt/{area}/${id}`, - responses: { - 200: undefined, - 204: undefined, - }, - }), + delete: (id: string) => + contract({ + method: 'DELETE', + path: `/sap/bc/adt/{area}/${id}`, + responses: { + 200: undefined, + 204: undefined, + }, + }), }; ``` ### Step 3: Export Contract **Actions:** + 1. Create/update area index `src/adt/{area}/index.ts`: + ```typescript import { myResource } from './myresource'; - + export const areaContract = { myResource, // ... other resources }; - + export type AreaContract = typeof areaContract; ``` @@ -225,6 +235,7 @@ export const myResource = { 4. **ContractOperation type required** - use the type helper **Pattern:** + ```typescript // tests/contracts/{area}.ts import { ContractScenario, type ContractOperation } from './base'; @@ -234,7 +245,7 @@ import { fixtures } from 'adt-fixtures'; export class MyResourceScenario extends ContractScenario { readonly name = 'My Resource'; - + // ContractOperation[] ensures type safety readonly operations: ContractOperation[] = [ { @@ -245,8 +256,8 @@ export class MyResourceScenario extends ContractScenario { headers: { Accept: 'application/xml' }, response: { status: 200, - schema: mySchema, // TypeScript validates this is a valid schema - fixture: fixtures.myresource?.single, // Optional + schema: mySchema, // TypeScript validates this is a valid schema + fixture: fixtures.myresource?.single, // Optional }, }, { @@ -279,6 +290,7 @@ export class MyResourceScenario extends ContractScenario { ``` **Register scenario:** + ```typescript // tests/contracts/index.ts import { MyResourceScenario } from './{area}'; @@ -296,6 +308,7 @@ npx tsc --noEmit -p packages/adt-contracts ``` **Verify:** + - Contract has correct method - Contract has correct path - Contract has correct headers @@ -309,52 +322,52 @@ npx tsc --noEmit -p packages/adt-contracts ### Path Parameters ```typescript -get: (id: string, subId?: string) => contract({ - path: subId - ? `/sap/bc/adt/area/${id}/sub/${subId}` - : `/sap/bc/adt/area/${id}`, - // ... -}) +get: (id: string, subId?: string) => + contract({ + path: subId + ? `/sap/bc/adt/area/${id}/sub/${subId}` + : `/sap/bc/adt/area/${id}`, + // ... + }); ``` ### Query Parameters ```typescript -list: (params?: { - package?: string; - user?: string; - maxResults?: number; -}) => contract({ - query: params, - // ... -}) +list: (params?: { package?: string; user?: string; maxResults?: number }) => + contract({ + query: params, + // ... + }); ``` ### Multiple Response Codes ```typescript -create: () => contract({ - responses: { - 200: mySchema, // Success with body - 201: mySchema, // Created with body - 204: undefined, // Success no body - }, -}) +create: () => + contract({ + responses: { + 200: mySchema, // Success with body + 201: mySchema, // Created with body + 204: undefined, // Success no body + }, + }); ``` ### Actions ```typescript -release: (id: string) => contract({ - method: 'POST', - path: `/sap/bc/adt/area/${id}/release`, - headers: { - Accept: 'application/xml', - }, - responses: { - 200: releaseResultSchema, - }, -}) +release: (id: string) => + contract({ + method: 'POST', + path: `/sap/bc/adt/area/${id}/release`, + headers: { + Accept: 'application/xml', + }, + responses: { + 200: releaseResultSchema, + }, + }); ``` ## Checklist diff --git a/.agents/commands/adt/page.md b/.agents/commands/adt/page.md index ee64065c..52d2b543 100644 --- a/.agents/commands/adt/page.md +++ b/.agents/commands/adt/page.md @@ -40,6 +40,7 @@ Create CLI display pages for ADT object types. ``` **Why this order?** + - **ADK** - Encapsulates business logic, relationships, lazy loading - **Service** - Reusable business logic, error handling - **Contract** - Type-safe but low-level @@ -48,6 +49,7 @@ Create CLI display pages for ADT object types. ### Page Architecture Pages are **self-registering display components** that: + - Fetch data using ADK objects (preferred) - Render formatted output for terminal - Register with the router on import @@ -83,13 +85,12 @@ import { Box, Field, Section, Text, adtLink } from '../components'; // Components are composable const content = Box( - Section('▼ Properties', + Section( + '▼ Properties', Field('Name', obj.name), Field('Description', obj.description), ), - Section('▼ Details', - Text('Additional info...'), - ), + Section('▼ Details', Text('Additional info...')), ); ``` @@ -101,11 +102,15 @@ Pages register themselves when imported: import { definePage } from '../router'; export const myPageDef = definePage({ - type: 'MYTYPE', // Object type code + type: 'MYTYPE', // Object type code name: 'My Object', icon: '📦', - fetch: async (client, params) => { /* ... */ }, - render: (data, params) => { /* ... */ }, + fetch: async (client, params) => { + /* ... */ + }, + render: (data, params) => { + /* ... */ + }, }); ``` @@ -116,12 +121,13 @@ export const myPageDef = definePage({ **Location:** `adt-cli/src/lib/ui/pages/{type}.ts` **Pattern:** -```typescript + +````typescript /** * {Type} Page * * Self-registering page for {type} objects using ADK. - * + * * Note: ADK global context is automatically initialized by getAdtClientV2(). * No need to create context manually - just use ADK objects directly. */ @@ -180,7 +186,7 @@ function render{Type}Page(data: Adk{Type}, params: NavParams): Page { // Properties section with ADT link const objectLink = adtLink({ name: data.name, type: data.type, uri: data.objectUri }); - + sections.push(Section('▼ Properties', Field('Name', data.name), Field('Description', data.description || '-'), @@ -220,12 +226,12 @@ function render{Type}Page(data: Adk{Type}, params: NavParams): Page { * * Self-registers with the router on import. * Type: {TYPE_CODE} - * + * * Usage: * ```ts - * const page = await router.navTo(client, '{TYPE_CODE}', { + * const page = await router.navTo(client, '{TYPE_CODE}', { * name: 'OBJECT_NAME', - * showDetails: true + * showDetails: true * }); * page.print(); * ``` @@ -247,7 +253,7 @@ export const {type}PageDef = definePage({ }); export default {type}PageDef; -``` +```` ### Step 2: Export from Index @@ -264,7 +270,7 @@ export { {type}PageDef } from './{type}'; Routes are auto-registered via `definePage()`, but you can add aliases: ```typescript -import './{type}'; // Triggers self-registration +import './{type}'; // Triggers self-registration ``` ### Step 4: Import in Command @@ -288,19 +294,19 @@ page.print(); import { Box, Field, Section, Text, adtLink } from '../components'; // Box - Container for other components -Box(...children) +Box(...children); // Section - Titled section with children -Section('▼ Title', ...children) +Section('▼ Title', ...children); // Field - Label: Value pair -Field('Label', 'Value') +Field('Label', 'Value'); // Text - Plain text -Text('Some text') +Text('Some text'); // adtLink - Clickable ADT link (terminal hyperlink) -adtLink({ name: 'OBJ', type: 'CLAS', uri: '/sap/bc/adt/...' }) +adtLink({ name: 'OBJ', type: 'CLAS', uri: '/sap/bc/adt/...' }); ``` ### Custom Components @@ -319,16 +325,16 @@ function MyComponent(data: MyData): Component { interface PageDefinition { /** Object type code (e.g., 'CLAS', 'RQRQ') */ type: string; - + /** Display name */ name: string; - + /** Icon emoji */ icon: string; - + /** Fetch data from client */ fetch: (client: AdtClient, params: NavParams) => Promise; - + /** Render page from data */ render: (data: T, params: NavParams) => Page; } diff --git a/.agents/commands/adt/schema.md b/.agents/commands/adt/schema.md index 05636239..1507da22 100644 --- a/.agents/commands/adt/schema.md +++ b/.agents/commands/adt/schema.md @@ -46,19 +46,22 @@ import schema from '../../speci'; export default schema({ ns: 'http://www.sap.com/adt/...', root: 'MyRoot', - elements: { /* ... */ }, -} as const); // as const is REQUIRED for type inference! + elements: { + /* ... */ + }, +} as const); // as const is REQUIRED for type inference! ``` ### Why `as const`? Without `as const`, TypeScript widens literal types: + ```typescript // WITHOUT as const - types are widened -const bad = { name: 'foo', type: 'string' }; // type: { name: string; type: string } +const bad = { name: 'foo', type: 'string' }; // type: { name: string; type: string } // WITH as const - literal types preserved -const good = { name: 'foo', type: 'string' } as const; // type: { name: 'foo'; type: 'string' } +const good = { name: 'foo', type: 'string' } as const; // type: { name: 'foo'; type: 'string' } ``` speci needs literal types to infer the correct TypeScript types from schema definitions. @@ -83,6 +86,7 @@ speci needs literal types to infer the correct TypeScript types from schema defi **Goal:** Get real XML responses from SAP for the endpoint. **Actions:** + 1. Use ADT CLI to fetch sample data: ```bash npx adt fetch /sap/bc/adt/{endpoint} --raw > sample.xml @@ -114,6 +118,7 @@ speci needs literal types to infer the correct TypeScript types from schema defi **When:** XSD file available in SAP SDK. **Actions:** + 1. Download XSD to `.xsd/model/`: ```bash npx nx run adt-schemas-xsd:download @@ -157,6 +162,7 @@ speci needs literal types to infer the correct TypeScript types from schema defi **Location:** `adt-schemas-xsd/src/schemas/manual/` **Pattern:** + ```typescript // src/schemas/manual/myschema.ts import schema from '../../speci'; @@ -165,22 +171,24 @@ export default schema({ ns: 'http://www.sap.com/adt/myarea', prefix: 'myprefix', root: 'MyRootElement', - include: [/* imported schemas */], + include: [ + /* imported schemas */ + ], elements: { MyRootElement: { sequence: [ { name: 'child1', type: 'string' }, { name: 'child2', type: 'Child2Type' }, ], - attributes: [ - { name: 'attr1', type: 'string' }, - ], + attributes: [{ name: 'attr1', type: 'string' }], }, Child2Type: { - sequence: [/* ... */], + sequence: [ + /* ... */ + ], }, }, -} as const); // CRITICAL: as const for type inference +} as const); // CRITICAL: as const for type inference ``` ### Step 3c: Create ABAP XML Schema @@ -188,11 +196,13 @@ export default schema({ **When:** XML uses `asx:abap` envelope format. **Key rules:** + 1. **ALWAYS use `as const`** - Critical for TypeScript type inference 2. **Element names WITHOUT namespace prefix** - Use `'abap'`, not `'asx:abap'` 3. **Root element content is parsed directly** - No wrapper in result **Pattern:** + ```typescript // src/schemas/manual/myabapschema.ts import schema from '../../speci'; @@ -200,7 +210,7 @@ import schema from '../../speci'; export default schema({ ns: 'http://www.sap.com/abapxml', prefix: 'asx', - root: 'abap', // WITHOUT prefix! + root: 'abap', // WITHOUT prefix! elements: { abap: { sequence: [{ name: 'values', type: 'values' }], @@ -216,17 +226,19 @@ export default schema({ ], }, }, -} as const); // CRITICAL! +} as const); // CRITICAL! ``` ### Step 4: Export Schema **Actions:** + 1. Add export to `src/schemas/index.ts`: + ```typescript // For generated schemas - usually auto-exported export * from './generated/sap'; - + // For manual schemas export { default as myschema } from './manual/myschema'; ``` @@ -245,6 +257,7 @@ export default schema({ 4. **SchemaType required** - use the type helper for parsed data **Pattern:** + ```typescript // tests/scenarios/myschema.ts import { expect } from 'vitest'; @@ -253,14 +266,14 @@ import { myschema } from '../../src/schemas/index'; export class MySchemaScenario extends Scenario { readonly schema = myschema; - readonly fixtures = ['myschema.xml']; // In fixtures/ folder + readonly fixtures = ['myschema.xml']; // In fixtures/ folder validateParsed(data: SchemaType): void { // Type-safe assertions - TypeScript validates property access! // If schema is wrong, this won't compile expect(data.someField).toBeDefined(); expect(data.nested?.child).toBe('expected'); - + // ❌ This would cause compile error if 'wrongField' not in schema: // expect(data.wrongField).toBeDefined(); } @@ -273,6 +286,7 @@ export class MySchemaScenario extends Scenario { ``` **Register scenario:** + ```typescript // tests/scenarios/index.ts import { MySchemaScenario } from './myschema'; @@ -290,6 +304,7 @@ npx tsc --noEmit -p packages/adt-schemas-xsd ``` **Verify:** + - Schema parses sample XML correctly - **Type check passes** (compile-time verification) - Type inference works (accessing wrong properties = compile error) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 8d90c132..86bfb165 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -44,6 +44,8 @@ RUN apt-get update && apt-get install -y \ xdg-utils USER node -# Install uv Python package manager system-wide +# Install uv Python package manager RUN curl -LsSf https://astral.sh/uv/install.sh | sh +# Install bun +RUN curl -fsSL https://bun.sh/install | bash diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 016422d0..82bb1c0c 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -4,23 +4,13 @@ "dockerfile": "Dockerfile", "context": "." }, - "mounts": [ - "source=/home/${localEnv:USER}/.codeium,target=/home/node/.codeium,type=bind,consistency=cached", - //"source=/home/${localEnv:USER}/.gitconfig,target=/home/node/.gitconfig,type=bind,consistency=cached", - "source=/home/${localEnv:USER}/.npmrc,target=/home/node/.npmrc,type=bind,consistency=cached", - "source=/home/${localEnv:USER}/.vscode-server/data/User/globalStorage/kilocode.kilo-code,target=/home/node/.kilocode-data,type=bind,consistency=cached", - "source=/home/${localEnv:USER}/.kilocode,target=/home/node/.kilocode,type=bind,consistency=cached" - ], + "customizations": { "vscode": { "extensions": ["nrwl.angular-console"] } }, - "runArgs": [ - "--network=host", - "--cap-add=SYS_ADMIN", - "--name=abapify-js-devcontainer" - ], + "runArgs": ["--network=host"], "remoteEnv": { "LOCAL_WORKSPACE_FOLDER": "${localWorkspaceFolder}" }, @@ -28,6 +18,5 @@ "ghcr.io/devcontainers/features/docker-outside-of-docker:1": { "moby": false } - }, - "postCreateCommand": "mkdir -p /home/node/.vscode-server/data/User/globalStorage && ln -sfn /home/node/.kilocode-data /home/node/.vscode-server/data/User/globalStorage/kilocode.kilo-code" + } } diff --git a/.github/agents/ci-monitor-subagent.agent.md b/.github/agents/ci-monitor-subagent.agent.md new file mode 100644 index 00000000..ac25b5b3 --- /dev/null +++ b/.github/agents/ci-monitor-subagent.agent.md @@ -0,0 +1,616 @@ +--- +description: Polls Nx Cloud CI pipeline and self-healing status. Returns structured state when actionable. Spawned by /monitor-ci command to monitor CI Attempt status. +--- + +# CI Monitor Subagent + +You are a CI monitoring subagent responsible for polling Nx Cloud CI Attempt status and self-healing state. You report status back to the main agent - you do NOT make apply/reject decisions. + +## Your Responsibilities + +1. Poll CI status using the `ci_information` MCP tool +2. Implement exponential backoff between polls +3. Return structured state when an actionable condition is reached +4. Track iteration count and elapsed time +5. Output status updates based on verbosity level + +## Input Parameters (from Main Agent) + +The main agent may provide these optional parameters in the prompt: + +| Parameter | Description | +| ------------------- | --------------------------------------------------------------------------- | +| `branch` | Branch to monitor (auto-detected if not provided) | +| `expectedCommitSha` | Commit SHA that should trigger a new CI Attempt | +| `previousCipeUrl` | CI Attempt URL before the action (to detect change) | +| `subagentTimeout` | Polling timeout in minutes (default: 30) | +| `newCipeTimeout` | Minutes to wait for CI Attempt before returning `no_new_cipe` (default: 10) | +| `verbosity` | Output level: minimal, medium, verbose (default: medium) | + +When `expectedCommitSha` or `previousCipeUrl` is provided, you must detect whether a new CI Attempt has spawned. + +## MCP Tool Reference + +### `ci_information` + +**Input:** + +```json +{ + "branch": "string (optional, defaults to current git branch)", + "select": "string (optional, comma-separated field names)", + "pageToken": "number (optional, 0-based pagination for long strings)" +} +``` + +**Output:** + +```json +{ + "cipeStatus": "NOT_STARTED | IN_PROGRESS | SUCCEEDED | FAILED | CANCELED | TIMED_OUT", + "cipeUrl": "string", + "branch": "string", + "commitSha": "string | null", + "failedTaskIds": "string[]", + "verifiedTaskIds": "string[]", + "selfHealingEnabled": "boolean", + "selfHealingStatus": "NOT_STARTED | IN_PROGRESS | COMPLETED | FAILED | NOT_EXECUTABLE | null", + "selfHealingSkippedReason": "string | null", + "selfHealingSkipMessage": "string | null", + "verificationStatus": "NOT_STARTED | IN_PROGRESS | COMPLETED | FAILED | NOT_EXECUTABLE | null", + "userAction": "NONE | APPLIED | REJECTED | APPLIED_LOCALLY | APPLIED_AUTOMATICALLY | null", + "failureClassification": "string | null", + "taskOutputSummary": "string | null", + "suggestedFixReasoning": "string | null", + "suggestedFixDescription": "string | null", + "suggestedFix": "string | null", + "shortLink": "string | null", + "couldAutoApplyTasks": "boolean | null", + "confidence": "number | null", + "confidenceReasoning": "string | null", + "hints": "string[]" +} +``` + +**Select Parameter:** + +| Usage | Returns | +| --------------- | ----------------------------------------------------------- | +| No `select` | Formatted overview (truncated, not recommended for polling) | +| Single field | Raw value with pagination for long strings | +| Multiple fields | Object with requested field values | + +**Field Sets for Efficient Polling:** + +```yaml +WAIT_FIELDS: + 'cipeUrl,commitSha,cipeStatus' + # Minimal fields for detecting new CI Attempt + +LIGHT_FIELDS: + 'cipeStatus,cipeUrl,branch,commitSha,selfHealingStatus,verificationStatus,userAction,failedTaskIds,verifiedTaskIds,selfHealingEnabled,failureClassification,couldAutoApplyTasks,shortLink,confidence,confidenceReasoning,hints,selfHealingSkippedReason,selfHealingSkipMessage' + # Status fields for determining actionable state (includes hints for contextual guidance) + +HEAVY_FIELDS: + 'taskOutputSummary,suggestedFix,suggestedFixReasoning,suggestedFixDescription' + # Large content fields - fetch only when returning to main agent +``` + +## Initial Poll + +Start polling immediately — no initial wait. The exponential backoff between polls +(60s → 90s → 120s cap) handles pacing naturally. The first poll provides immediate +feedback on CI state, even if it's NOT_STARTED. + +## Stale Detection (CRITICAL) + +**Before EVERY poll iteration**, check if this subagent instance is stale: + +### Stale Check Protocol + +1. **Immediately after waking from sleep**, before calling `ci_information`: + + ``` + IF main agent has moved on (CI already passed or new cycle started): + → Output: "[ci-monitor-subagent] Stale instance detected. Exiting." + → Return immediately with status: stale_exit + → Do NOT continue polling + ``` + +2. **After each `ci_information` call**, check for early exit: + + ``` + IF cipeStatus == 'SUCCEEDED': + → CI passed while we were sleeping + → Return immediately with status: ci_success + → Do NOT continue to next poll iteration + ``` + +### Why Stale Instances Happen + +When main agent spawns a new subagent cycle, previous subagent instances may still be in a `sleep` call. Upon waking: + +- They have outdated context (old `expectedCommitSha`, old `previousCipeUrl`) +- Main agent has already moved on +- Continuing to poll wastes resources and causes confusing output + +**The subagent MUST self-terminate when detecting staleness rather than continuing.** + +## Two-Phase Operation + +The subagent operates in one of two modes depending on input: + +### Mode 1: Fresh Start (no `expectedCommitSha` or `previousCipeUrl`) + +Normal polling - process whatever CI Attempt is returned by `ci_information`. If `ci_information` returns no CI Attempt for the branch after `newCipeTimeout` (default 10 min), return `no_new_cipe`. + +### Mode 2: Wait-for-New-CI-Attempt (when `expectedCommitSha` or `previousCipeUrl` provided) + +**CRITICAL**: When expecting a new CI Attempt, the subagent must **completely ignore** the old/stale CI Attempt. Do NOT process its status, do NOT return actionable states based on it. + +#### Phase A: Wait Mode + +1. Start a **new-CI-Attempt timeout** timer (default: 10 minutes, configurable via main agent) +2. On each poll of `ci_information`: + - Check if CI Attempt is NEW: + - `cipeUrl` differs from `previousCipeUrl` → **new CI Attempt detected** + - `commitSha` matches `expectedCommitSha` → **correct CI Attempt detected** + - If still OLD CI Attempt: **ignore all status fields**, just wait and poll again + - Do NOT return `fix_available`, `ci_success`, etc. based on old CI Attempt! +3. Output wait status (see below) +4. If `newCipeTimeout` reached → return `no_new_cipe` + +#### Phase B: Normal Polling (after new CI Attempt detected) + +Once new CI Attempt is detected: + +1. Clear the new-CI-Attempt timeout +2. Switch to normal polling mode +3. Process the NEW CI Attempt's status normally +4. Return when actionable state reached + +### Wait Mode Output + +While in wait mode, output clearly that you're waiting (not processing): + +``` +[ci-monitor-subagent] ═══════════════════════════════════════════════════════ +[ci-monitor-subagent] WAIT MODE - Expecting new CI Attempt +[ci-monitor-subagent] Expected SHA: +[ci-monitor-subagent] Previous CI Attempt: +[ci-monitor-subagent] ═══════════════════════════════════════════════════════ + +[ci-monitor-subagent] Polling... (elapsed: 0m 30s) +[ci-monitor-subagent] Still seeing previous CI Attempt (ignoring): + +[ci-monitor-subagent] Polling... (elapsed: 1m 30s) +[ci-monitor-subagent] Still seeing previous CI Attempt (ignoring): + +[ci-monitor-subagent] Polling... (elapsed: 2m 30s) +[ci-monitor-subagent] ✓ New CI Attempt detected! URL: , SHA: +[ci-monitor-subagent] Switching to normal polling mode... +``` + +### Why This Matters (Context Preservation) + +**The problem**: Stale CI Attempt data can be very large: + +- `taskOutputSummary`: potentially thousands of characters of build/test output +- `suggestedFix`: entire patch files +- `suggestedFixReasoning`: detailed explanation + +If subagent returns stale CI Attempt data to main agent, it **pollutes main agent's context** with useless information (we already processed that CI Attempt). This wastes valuable context window. + +**Without wait mode:** + +1. Poll `ci_information` → get old CI Attempt with huge data +2. Return to main agent with all that stale data +3. Main agent's context gets polluted with useless info +4. Main agent has to process/ignore it anyway + +**With wait mode:** + +1. Poll `ci_information` → get old CI Attempt → **ignore it, don't return** +2. Keep waiting internally (stale data stays in subagent) +3. New CI Attempt appears → switch to normal mode +4. Return to main agent with only the NEW, relevant CI Attempt data + +## Polling Loop + +### Subagent State Management + +Maintain internal accumulated state across polls: + +``` +accumulated_state = {} +``` + +### Call `ci_information` MCP Tool + +**Wait Mode (expecting new CI Attempt):** + +``` +ci_information({ + branch: "", + select: "cipeUrl,commitSha,cipeStatus" +}) +``` + +Only fetch minimal fields needed to detect CI Attempt change. Do NOT fetch heavy fields - stale data wastes context. + +**Normal Mode (processing CI Attempt):** + +``` +ci_information({ + branch: "", + select: "cipeStatus,cipeUrl,branch,commitSha,selfHealingStatus,verificationStatus,userAction,failedTaskIds,verifiedTaskIds,selfHealingEnabled,failureClassification,couldAutoApplyTasks,shortLink,confidence,confidenceReasoning,hints,selfHealingSkippedReason,selfHealingSkipMessage" +}) +``` + +Merge response into `accumulated_state` after each poll. + +### Stale Check After Each Poll + +**Immediately after receiving `ci_information` response, before any other processing:** + +1. **Check if CI already succeeded:** + + ``` + IF cipeStatus == 'SUCCEEDED': + → Return immediately with ci_success + → Do NOT sleep, do NOT continue polling + ``` + +2. **If in wait mode, verify we're still relevant:** + + ``` + IF expectedCommitSha provided AND current commitSha matches AND cipeStatus == 'SUCCEEDED': + → Our expected CI Attempt ran and passed + → Return immediately with ci_success + ``` + +This prevents continuing to poll after CI has already completed. + +### Analyze Response + +**If in Wait Mode** (expecting new CI Attempt): + +1. Check if CI Attempt is new (see Two-Phase Operation above) +2. If old CI Attempt → **ignore status**, output wait message, poll again +3. If new CI Attempt → switch to normal mode, continue below + +**If in Normal Mode**: +Based on the response, decide whether to **keep polling** or **return to main agent**. + +### Keep Polling When + +Continue polling (with backoff) if ANY of these conditions are true: + +| Condition | Reason | +| --------------------------------------- | ---------------------------------------- | +| `cipeStatus == 'IN_PROGRESS'` | CI still running | +| `cipeStatus == 'NOT_STARTED'` | CI hasn't started yet | +| `selfHealingStatus == 'IN_PROGRESS'` | Self-healing agent working | +| `selfHealingStatus == 'NOT_STARTED'` | Self-healing not started yet (see note) | +| `failureClassification == 'FLAKY_TASK'` | Auto-rerun in progress | +| `userAction == 'APPLIED_AUTOMATICALLY'` | New CI Attempt spawning after auto-apply | + +**Note:** When `selfHealingSkippedReason` is present, do NOT continue polling on `selfHealingStatus == NOT_STARTED`. The throttled state means self-healing will not start — return `self_healing_throttled` immediately. + +When `couldAutoApplyTasks == true`: + +- `verificationStatus` = `NOT_STARTED`, `IN_PROGRESS` → keep polling (verification still in progress) +- `verificationStatus` = `COMPLETED` → return `fix_auto_applying` (auto-apply will happen, main agent spawns wait mode subagent) +- `verificationStatus` = `FAILED`, `NOT_EXECUTABLE` → return `fix_available` (auto-apply won't happen, needs manual action) + +### Exponential Backoff + +Between polls, wait with exponential backoff: + +| Poll Attempt | Wait Time | +| ------------ | ----------------- | +| 1st | 60 seconds | +| 2nd | 90 seconds | +| 3rd+ | 120 seconds (cap) | + +Reset to 60 seconds when state changes significantly. + +### CRITICAL: Foreground-Only Sleep + +**NEVER run sleep as a background command.** This is the #1 cause of stale timer issues. + +| Pattern | Result | +| ------------------- | ------------------------------------------- | +| `sleep 60` | ✅ CORRECT - blocks until complete | +| `sleep 60 &` | ❌ WRONG - creates orphan timer | +| `(sleep 60 && ...)` | ❌ WRONG - subshell continues independently | +| `nohup sleep ...` | ❌ WRONG - survives agent termination | + +**Why this matters**: Background sleep commands create timer processes that outlive the polling context. When they complete, they trigger actions in a stale context, causing "CI already passed" spam. + +```bash +# Example backoff - run in FOREGROUND (blocking) +sleep 60 # First wait - BLOCKS until complete +sleep 90 # Second wait - BLOCKS until complete +sleep 120 # Third and subsequent waits (capped) - BLOCKS until complete +``` + +### Fetch Heavy Fields on Actionable State + +Before returning to main agent, fetch heavy fields if the status requires them: + +| Status | Heavy Fields Needed | +| ------------------------ | ------------------------------------------------------------------------------ | +| `ci_success` | None | +| `fix_auto_applying` | None | +| `fix_available` | `taskOutputSummary,suggestedFix,suggestedFixReasoning,suggestedFixDescription` | +| `fix_failed` | `taskOutputSummary` | +| `no_fix` | `taskOutputSummary` | +| `environment_issue` | None | +| `no_new_cipe` | None | +| `polling_timeout` | None | +| `cipe_canceled` | None | +| `cipe_timed_out` | None | +| `self_healing_throttled` | `selfHealingSkipMessage` | +| `cipe_no_tasks` | None | + +``` +# Example: fetching heavy fields for fix_available +ci_information({ + branch: "", + select: "taskOutputSummary,suggestedFix,suggestedFixReasoning,suggestedFixDescription" +}) +``` + +Merge response into `accumulated_state`, then return merged state to main agent. + +**Pagination:** Heavy string fields return first page only. If `hasMore` indicated, include in return format so main agent knows more content available. + +### Return to Main Agent When + +Return immediately with structured state if ANY of these conditions are true: + +| Status | Condition | +| ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `ci_success` | `cipeStatus == 'SUCCEEDED'` | +| `fix_auto_applying` | `selfHealingStatus == 'COMPLETED'` AND `couldAutoApplyTasks == true` AND `verificationStatus == 'COMPLETED'` | +| `fix_available` | `selfHealingStatus == 'COMPLETED'` AND `suggestedFix != null` AND (`couldAutoApplyTasks != true` OR `verificationStatus` in (`FAILED`, `NOT_EXECUTABLE`)) | +| `fix_failed` | `selfHealingStatus == 'FAILED'` | +| `environment_issue` | `failureClassification == 'ENVIRONMENT_STATE'` | +| `no_fix` | `cipeStatus == 'FAILED'` AND (`selfHealingEnabled == false` OR `selfHealingStatus == 'NOT_EXECUTABLE'`) | +| `no_new_cipe` | No CI Attempt found for branch (normal mode) or no new CI Attempt detected (wait mode) after `newCipeTimeout` (default 10 min) | +| `polling_timeout` | Subagent has been polling for > configured timeout (default 30 min) | +| `cipe_canceled` | `cipeStatus == 'CANCELED'` | +| `cipe_timed_out` | `cipeStatus == 'TIMED_OUT'` | +| `self_healing_throttled` | `selfHealingSkippedReason == 'THROTTLED'` | +| `cipe_no_tasks` | `cipeStatus == 'FAILED'` AND `failedTaskIds.length == 0` AND `selfHealingStatus == null` | + +## Subagent Timeout + +Track elapsed time: + +### New-CI-Attempt Timeout (both modes) + +**`newCipeTimeout`** (default: 10 minutes, configurable via main agent). Applies to both normal mode and wait mode: + +- **Normal mode:** If no CI Attempt is found for the branch after `newCipeTimeout` minutes of polling, return `no_new_cipe` with actionable suggestions. +- **Wait mode:** If no new CI Attempt is detected after `newCipeTimeout` minutes of polling, return `no_new_cipe`. + +Track separately from main polling timeout. + +### Main Polling Timeout + +If you have been polling for more than **30 minutes** (configurable via `subagentTimeout`), return with `status: polling_timeout`. + +## Return Format + +When returning to the main agent, provide a structured response with accumulated state: + +``` +## CI Monitor Result + +**Status:** +**Iterations:** +**Elapsed:** m s + +### CI Attempt Details +- **Status:** +- **URL:** +- **Branch:** +- **Commit:** +- **Failed Tasks:** +- **Verified Tasks:** + +### Self-Healing Details +- **Enabled:** +- **Status:** +- **Verification:** +- **User Action:** +- **Classification:** +- **Confidence:** +- **Confidence Reasoning:** + +### Fix Information (if available) +- **Short Link:** +- **Description:** +- **Reasoning:** + +### Hints (if any) + + +### Task Output Summary (first page) + +[MORE_CONTENT_AVAILABLE: taskOutputSummary, pageToken: 1] + +### Suggested Fix (first page) + +[MORE_CONTENT_AVAILABLE: suggestedFix, pageToken: 1] +``` + +### Pagination Indicators + +When a heavy field has more content available, append indicator: + +``` +[MORE_CONTENT_AVAILABLE: , pageToken: ] +``` + +Main agent can fetch additional pages if needed using: + +``` +ci_information({ select: "", pageToken: }) +``` + +Fields that may have pagination: + +- `taskOutputSummary` (reverse pagination - page 0 = most recent) +- `suggestedFix` (forward pagination - page 0 = start) +- `suggestedFixReasoning` + +### Return Format for `no_new_cipe` + +When returning with `status: no_new_cipe`, include additional context: + +``` +## CI Monitor Result + +**Status:** no_new_cipe +**Iterations:** +**Elapsed:** m s +**Timeout:** newCipeTimeout ( min) exceeded + +### Context +- **Mode:** +- **Expected Commit SHA:** (if wait mode) +- **Previous CI Attempt URL:** (if wait mode) +- **Last Seen CI Attempt URL:** +- **Last Seen Commit SHA:** + +### Likely Cause +No CI Attempt appeared within the newCipeTimeout window. +If in wait mode: CI workflow likely failed before Nx tasks could run (e.g., install step, checkout, auth). +If in normal mode: No CI Attempt exists for this branch yet. +Check your CI provider logs for the branch or commit. + +### Suggestions +- Verify the push succeeded and CI workflow was triggered +- Check CI provider configuration and logs +- Ensure commit SHA matches expected value +``` + +### Return Format for `polling_timeout` + +When returning with `status: polling_timeout`, include additional context: + +``` +## CI Monitor Result + +**Status:** polling_timeout +**Iterations:** +**Elapsed:** m s +**Timeout:** 30-minute polling timeout exceeded + +### Last Known CI Attempt State +- **Status:** +- **URL:** +- **Branch:** +- **Commit:** +- **Self-Healing:** +- **Verification:** + +### Suggestions +- CI pipeline or self-healing may be stuck +- Check Nx Cloud dashboard for the CI Attempt +- Consider stopping this agent and starting fresh +``` + +## Status Reporting (Verbosity-Controlled) + +**Important:** When running in background mode, your text output goes to an output file — it is NOT directly visible to users. The main agent is responsible for reading your output and relaying it to the user. Write your status lines clearly and consistently so the main agent can parse and forward them. + +Output is controlled by the `verbosity` parameter from the main agent: + +| Level | What to Output | +| --------- | ------------------------------------------------------------------------- | +| `minimal` | Only critical lifecycle transitions (always output, all verbosity levels) | +| `medium` | Compact status line on every poll (not just state changes). | +| `verbose` | Output detailed phase information after every poll. | + +### Minimal Verbosity + +Output **ONLY significant lifecycle transitions** regardless of verbosity. These critical transitions are ALWAYS output at ALL verbosity levels: + +- CI pipeline failed (`cipeStatus` changed to FAILED) +- Self-healing fix generation started (`selfHealingStatus` changed to IN_PROGRESS) +- Self-healing fix generated (`selfHealingStatus` changed to COMPLETED) +- Fix verification started (`verificationStatus` changed to IN_PROGRESS) +- Fix verification completed (`verificationStatus` changed to COMPLETED or FAILED) + +Use a compact single-line format: + +``` +⚡ CI failed — self-healing fix generation started +⚡ Self-healing fix generated — verification started +⚡ Fix verification completed successfully +⚡ Fix verification failed +``` + +### Medium Verbosity (Default) + +Output **compact status line on every poll** (not just state transitions). Format should be single-line: + +``` +[ci-monitor] Poll #N | CI: STATUS | Self-healing: STATUS | Verification: STATUS | Next poll: Xs +``` + +Example: + +``` +[ci-monitor] Poll #1 | CI: IN_PROGRESS | Self-healing: NOT_STARTED | Verification: NOT_STARTED | Next poll: 60s +[ci-monitor] Poll #2 | CI: FAILED | Self-healing: IN_PROGRESS | Verification: NOT_STARTED | Next poll: 90s +[ci-monitor] Poll #3 | CI: FAILED | Self-healing: COMPLETED | Verification: IN_PROGRESS | Next poll: 120s +``` + +### Verbose Verbosity + +Output detailed phase box after every poll: + +``` +[ci-monitor-subagent] ───────────────────────────────────────────────────── +[ci-monitor-subagent] Iteration | Elapsed: m s +[ci-monitor-subagent] +[ci-monitor-subagent] CI Status: +[ci-monitor-subagent] Self-Healing: +[ci-monitor-subagent] Verification: +[ci-monitor-subagent] Classification: +[ci-monitor-subagent] +[ci-monitor-subagent] → +[ci-monitor-subagent] ───────────────────────────────────────────────────── +``` + +### Phase Descriptions (for verbose output) + +| Status Combo | Description | +| ----------------------------------------------------------------------------------------- | ---------------------------------------------------- | +| `cipeStatus: IN_PROGRESS` | "CI running..." | +| `cipeStatus: NOT_STARTED` | "Waiting for CI to start..." | +| `cipeStatus: FAILED` + `selfHealingStatus: NOT_STARTED` | "CI failed. Self-healing starting..." | +| `cipeStatus: FAILED` + `selfHealingStatus: IN_PROGRESS` | "CI failed. Self-healing generating fix..." | +| `cipeStatus: FAILED` + `selfHealingStatus: COMPLETED` + `verificationStatus: IN_PROGRESS` | "Fix generated! Verification running..." | +| `cipeStatus: FAILED` + `selfHealingStatus: COMPLETED` + `verificationStatus: COMPLETED` | "Fix ready! Verified successfully." | +| `cipeStatus: FAILED` + `selfHealingStatus: COMPLETED` + `verificationStatus: FAILED` | "Fix generated but verification failed." | +| `cipeStatus: FAILED` + `selfHealingStatus: FAILED` | "Self-healing could not generate a fix." | +| `cipeStatus: FAILED` + `selfHealingSkippedReason: 'THROTTLED'` | "Self-healing throttled — too many unapplied fixes." | +| `cipeStatus: SUCCEEDED` | "CI passed!" | + +## Important Notes + +- You do NOT make apply/reject decisions - that's the main agent's job +- You do NOT perform git operations +- You only poll and report state +- Respect the `verbosity` parameter for output (default: medium) +- If `ci_information` returns an error, wait and retry (count as failed poll) +- Track consecutive failures - if 5 consecutive failures, return with `status: error` +- `newCipeTimeout` applies to both normal and wait mode — if no CI Attempt appears within this window, return `no_new_cipe` +- Track `newCipeTimeout` (default 10 minutes) separately from main polling timeout (default 30 minutes) +- If the `hints` array in `ci_information` responses is non-empty, include hints in your return format. diff --git a/.github/prompts/monitor-ci.prompt.md b/.github/prompts/monitor-ci.prompt.md new file mode 100644 index 00000000..4280681e --- /dev/null +++ b/.github/prompts/monitor-ci.prompt.md @@ -0,0 +1,671 @@ +--- +description: Monitor Nx Cloud CI pipeline and handle self-healing fixes. USE WHEN user says "monitor ci", "watch ci", "ci monitor", "watch ci for this branch", "track ci", "check ci status", wants to track CI status, or needs help with self-healing CI fixes. ALWAYS USE THIS SKILL instead of native CI provider tools (gh, glab, etc.) for CI monitoring. +argument-hint: '[instructions] [--max-cycles N] [--timeout MINUTES] [--verbosity minimal|medium|verbose] [--branch BRANCH] [--fresh] [--auto-fix-workflow] [--new-cipe-timeout MINUTES]' +--- + +# Monitor CI Command + +You are the orchestrator for monitoring Nx Cloud CI pipeline executions and handling self-healing fixes. You spawn the `ci-monitor-subagent` subagent to poll CI status and make decisions based on the results. + +## Context + +- **Current Branch:** !`git branch --show-current` +- **Current Commit:** !`git rev-parse --short HEAD` +- **Remote Status:** !`git status -sb | head -1` + +## User Instructions + +${input:args} + +**Important:** If user provides specific instructions, respect them over default behaviors described below. + +## Configuration Defaults + +| Setting | Default | Description | +| ------------------------- | ------------- | ------------------------------------------------------------------------- | +| `--max-cycles` | 10 | Maximum **agent-initiated** CI Attempt cycles before timeout | +| `--timeout` | 120 | Maximum duration in minutes | +| `--verbosity` | medium | Output level: minimal, medium, verbose | +| `--branch` | (auto-detect) | Branch to monitor | +| `--subagent-timeout` | 30 | Subagent polling timeout in minutes | +| `--fresh` | false | Ignore previous context, start fresh | +| `--auto-fix-workflow` | false | Attempt common fixes for pre-CI-Attempt failures (e.g., lockfile updates) | +| `--new-cipe-timeout` | 10 | Minutes to wait for new CI Attempt after action | +| `--local-verify-attempts` | 3 | Max local verification + enhance cycles before pushing to CI | + +Parse any overrides from `${input:args}` and merge with defaults. + +## Nx Cloud Connection Check + +**CRITICAL**: Before starting the monitoring loop, verify the workspace is connected to Nx Cloud. + +### Step 0: Verify Nx Cloud Connection + +1. **Check `nx.json`** at workspace root for `nxCloudId` or `nxCloudAccessToken` +2. **If `nx.json` missing OR neither property exists** → exit with: + + ``` + [monitor-ci] Nx Cloud not connected. Unlock 70% faster CI and auto-fix broken PRs with https://nx.dev/nx-cloud + ``` + +3. **If connected** → continue to main loop + +## Anti-Patterns (NEVER DO) + +**CRITICAL**: The following behaviors are strictly prohibited: + +| Anti-Pattern | Why It's Bad | +| ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ | +| Using CI provider CLIs with `--watch` flags (e.g., `gh pr checks --watch`, `glab ci status -w`) | Bypasses Nx Cloud self-healing entirely | +| Writing custom CI polling scripts | Unreliable, pollutes context, no self-healing | +| Cancelling CI workflows/pipelines | Destructive, loses CI progress | +| Running CI checks on main agent | Wastes main agent context tokens | +| Independently analyzing/fixing CI failures while subagent polls | Races with self-healing, causes duplicate fixes and confused state | + +**If this skill fails to activate**, the fallback is: + +1. Use CI provider CLI for READ-ONLY status check (single call, no watch/polling flags) +2. Immediately delegate to this skill with gathered context +3. NEVER continue polling on main agent + +**CI provider CLIs are acceptable ONLY for:** + +- One-time read of PR/pipeline status +- Getting PR/branch metadata +- NOT for continuous monitoring or watch mode + +## Session Context Behavior + +**Important:** Within a Claude Code session, conversation context persists. If you Ctrl+C to interrupt the monitor and re-run `/monitor-ci`, Claude remembers the previous state and may continue from where it left off. + +- **To continue monitoring:** Just re-run `/monitor-ci` (context is preserved) +- **To start fresh:** Use `/monitor-ci --fresh` to ignore previous context +- **For a completely clean slate:** Exit Claude Code and restart `claude` + +## Default Behaviors by Status + +The subagent returns with one of the following statuses. This table defines the **default behavior** for each status. User instructions can override any of these. + +| Status | Default Behavior | +| ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `ci_success` | Exit with success. Log "CI passed successfully!" | +| `fix_auto_applying` | Fix will be auto-applied by self-healing. Do NOT call MCP. Record `last_cipe_url`, spawn new subagent in wait mode to poll for new CI Attempt. | +| `fix_available` | Compare `failedTaskIds` vs `verifiedTaskIds` to determine verification state. See **Fix Available Decision Logic** section below. | +| `fix_failed` | Self-healing failed to generate fix. Attempt local fix based on `taskOutputSummary`. If successful → commit, push, loop. If not → exit with failure. | +| `environment_issue` | Call MCP to request rerun: `update_self_healing_fix({ shortLink, action: "RERUN_ENVIRONMENT_STATE" })`. New CI Attempt spawns automatically. Loop to poll for new CI Attempt. | +| `self_healing_throttled` | Self-healing throttled due to unapplied fixes. See **Throttled Self-Healing Flow** below. | +| `no_fix` | CI failed, no fix available (self-healing disabled or not executable). Attempt local fix if possible. Otherwise exit with failure. | +| `no_new_cipe` | Expected CI Attempt never spawned (CI workflow likely failed before Nx tasks). Report to user, attempt common fixes if configured, or exit with guidance. | +| `polling_timeout` | Subagent polling timeout reached. Exit with timeout. | +| `cipe_canceled` | CI Attempt was canceled. Exit with canceled status. | +| `cipe_timed_out` | CI Attempt timed out. Exit with timeout status. | +| `cipe_no_tasks` | CI Attempt exists but failed with no task data (likely infrastructure issue). Retry once with empty commit. If retry fails, exit with failure and guidance. | +| `error` | Increment `no_progress_count`. If >= 3 → exit with circuit breaker. Otherwise wait 60s and loop. | + +### Fix Available Decision Logic + +When subagent returns `fix_available`, main agent compares `failedTaskIds` vs `verifiedTaskIds`: + +#### Step 1: Categorize Tasks + +1. **Verified tasks** = tasks in both `failedTaskIds` AND `verifiedTaskIds` +2. **Unverified tasks** = tasks in `failedTaskIds` but NOT in `verifiedTaskIds` +3. **E2E tasks** = unverified tasks where target contains "e2e" (task format: `:` or `::`) +4. **Verifiable tasks** = unverified tasks that are NOT e2e + +#### Step 2: Determine Path + +| Condition | Path | +| --------------------------------------- | ---------------------------------------- | +| No unverified tasks (all verified) | Apply via MCP | +| Unverified tasks exist, but ALL are e2e | Apply via MCP (treat as verified enough) | +| Verifiable tasks exist | Local verification flow | + +#### Step 3a: Apply via MCP (fully/e2e-only verified) + +- Call `update_self_healing_fix({ shortLink, action: "APPLY" })` +- Record `last_cipe_url`, spawn subagent in wait mode + +#### Step 3b: Local Verification Flow + +When verifiable (non-e2e) unverified tasks exist: + +1. **Detect package manager:** + - `pnpm-lock.yaml` exists → `pnpm nx` + - `yarn.lock` exists → `yarn nx` + - Otherwise → `npx nx` + +2. **Run verifiable tasks in parallel:** + - Spawn `general` subagents to run each task concurrently + - Each subagent runs: ` nx run ` + - Collect pass/fail results from all subagents + +3. **Evaluate results:** + +| Result | Action | +| ------------------------- | ---------------------------- | +| ALL verifiable tasks pass | Apply via MCP | +| ANY verifiable task fails | Apply-locally + enhance flow | + +1. **Apply-locally + enhance flow:** + - Run `nx-cloud apply-locally ` + - Enhance the code to fix failing tasks + - Run failing tasks again to verify fix + - If still failing → increment `local_verify_count`, loop back to enhance + - If passing → commit and push, record `expected_commit_sha`, spawn subagent in wait mode + +2. **Track attempts** (wraps step 4): + - Increment `local_verify_count` after each enhance cycle + - If `local_verify_count >= local_verify_attempts` (default: 3): + - Get code in commit-able state + - Commit and push with message indicating local verification failed + - Report to user: + + ``` + [monitor-ci] Local verification failed after attempts. Pushed to CI for final validation. Failed: + ``` + + - Record `expected_commit_sha`, spawn subagent in wait mode (let CI be final judge) + +#### Commit Message Format + +```bash +git commit -m "fix(): + +Failed tasks: , +Local verification: passed|enhanced|failed-pushing-to-ci" +``` + +**Git Safety**: Only stage and commit files that were modified as part of the fix. Users may have concurrent local changes (local publish, WIP features, config tweaks) that must NOT be committed. NEVER use `git add -A` or `git add .` — always stage specific files by name. + +### Unverified Fix Flow (No Verification Attempted) + +When `verificationStatus` is `FAILED`, `NOT_EXECUTABLE`, or fix has `couldAutoApplyTasks != true` with no verification: + +- Analyze fix content (`suggestedFix`, `suggestedFixReasoning`, `taskOutputSummary`) +- If fix looks correct → apply via MCP +- If fix needs enhancement → use Apply Locally + Enhance Flow above +- If fix is wrong → reject via MCP, fix from scratch, commit, push + +### Auto-Apply Eligibility + +The `couldAutoApplyTasks` field indicates whether the fix is eligible for automatic application: + +- **`true`**: Fix is eligible for auto-apply. Subagent keeps polling while verification is in progress. Returns `fix_auto_applying` when verified, or `fix_available` if verification fails. +- **`false`** or **`null`**: Fix requires manual action (apply via MCP, apply locally, or reject) + +**Key point**: When subagent returns `fix_auto_applying`, do NOT call MCP to apply - self-healing handles it. Just spawn a new subagent in wait mode. No local git operations (no commit, no push). + +### Accidental Local Fix Recovery + +If you find yourself with uncommitted local changes from your own fix attempt when the subagent returns (e.g., you accidentally analyzed/fixed the failure while the subagent was polling): + +1. **Compare your local changes with the self-healing fix** (`suggestedFix` / `suggestedFixDescription`) +2. **If identical or substantially similar** → discard only the files you modified (`git checkout -- ...`), then apply via MCP instead. Self-healing's pipeline is the preferred path. Do NOT discard unrelated user changes. +3. **If meaningfully different** (your fix addresses something self-healing missed) → proceed with the Apply Locally + Enhance Flow + +Self-healing fixes go through proper CI verification. Always prefer the self-healing path when fixes overlap. + +### Apply vs Reject vs Apply Locally + +- **Apply via MCP**: Calls `update_self_healing_fix({ shortLink, action: "APPLY" })`. Self-healing agent applies the fix in CI and a new CI Attempt spawns automatically. No local git operations needed. +- **Apply Locally**: Runs `nx-cloud apply-locally `. Applies the patch to your local working directory and sets state to `APPLIED_LOCALLY`. Use this when you want to enhance the fix before pushing. +- **Reject via MCP**: Calls `update_self_healing_fix({ shortLink, action: "REJECT" })`. Marks fix as rejected. Use only when the fix is completely wrong and you'll fix from scratch. + +### Apply Locally + Enhance Flow + +When the fix needs enhancement (use `nx-cloud apply-locally`, NOT reject): + +1. Apply the patch locally: `nx-cloud apply-locally ` (this also updates state to `APPLIED_LOCALLY`) +2. Make additional changes as needed +3. Stage only the files you modified: `git add ...` +4. Commit and push: + + ```bash + git commit -m "fix: resolve " + git push origin $(git branch --show-current) + ``` + +5. Loop to poll for new CI Attempt + +### Reject + Fix From Scratch Flow + +When the fix is completely wrong: + +1. Call MCP to reject: `update_self_healing_fix({ shortLink, action: "REJECT" })` +2. Fix the issue from scratch locally +3. Stage only the files you modified: `git add ...` +4. Commit and push: + + ```bash + git commit -m "fix: resolve " + git push origin $(git branch --show-current) + ``` + +5. Loop to poll for new CI Attempt + +### Environment Issue Handling + +When `failureClassification == 'ENVIRONMENT_STATE'`: + +1. Call MCP to request rerun: `update_self_healing_fix({ shortLink, action: "RERUN_ENVIRONMENT_STATE" })` +2. New CI Attempt spawns automatically (no local git operations needed) +3. Loop to poll for new CI Attempt with `previousCipeUrl` set + +### Throttled Self-Healing Flow + +When `status == 'self_healing_throttled'`: + +Self-healing was skipped because too many previous fixes remain unapplied. The `selfHealingSkipMessage` contains URLs to CIPEs with pending fixes. + +1. **Parse throttle message** for CIPE URLs using regex matching `/cipes/{id}` pattern (format: `https://...nx.app/cipes/{cipeId}/self-healing`) +2. **Reject previous fixes** — for each CIPE URL found: + - Call `ci_information({ url: "" })` to get the `shortLink` + - Call `update_self_healing_fix({ shortLink: "", action: "REJECT" })` to reject +3. **Attempt local fix**: + - Use `failedTaskIds` from the current CIPE + - Use `taskOutputSummary` (fetch via select if available) for context + - Try to fix locally, run tasks to verify +4. **Fallback if local fix not possible**: + - Push empty commit (`git commit --allow-empty -m "ci: rerun after rejecting throttled fixes"`) + - Push to trigger new CI + - Spawn subagent in wait mode to poll for new CI Attempt +5. After rejecting fixes and pushing, self-healing should resume since throttle condition (unapplied fixes) is cleared + +### No-New-CI-Attempt Handling + +When `status == 'no_new_cipe'`: + +This means the expected CI Attempt was never created - CI likely failed before Nx tasks could run. + +1. **Report to user:** + + ``` + [monitor-ci] No CI attempt for after 10 min. Check CI provider for pre-Nx failures (install, checkout, auth). Last CI attempt: + ``` + +2. **If user configured auto-fix attempts** (e.g., `--auto-fix-workflow`): + - Detect package manager: check for `pnpm-lock.yaml`, `yarn.lock`, `package-lock.json` + - Run install to update lockfile: + + ```bash + pnpm install # or npm install / yarn install + ``` + + - If lockfile changed: + + ```bash + git add pnpm-lock.yaml # or appropriate lockfile + git commit -m "chore: update lockfile" + git push origin $(git branch --show-current) + ``` + + - Record new commit SHA, loop to poll with `expectedCommitSha` + +3. **Otherwise:** Exit with `no_new_cipe` status, providing guidance for user to investigate + +### CI-Attempt-No-Tasks Handling + +When `status == 'cipe_no_tasks'`: + +This means the CI Attempt was created but no Nx tasks were recorded before it failed. Common causes: + +- CI timeout before tasks could run +- Critical infrastructure error +- Memory/resource exhaustion +- Network issues connecting to Nx Cloud + +1. **Report to user:** + + ``` + [monitor-ci] CI failed but no Nx tasks were recorded. + [monitor-ci] CI Attempt URL: + [monitor-ci] + [monitor-ci] This usually indicates an infrastructure issue. Attempting retry... + ``` + +2. **Create empty commit to retry CI:** + + ```bash + git commit --allow-empty -m "chore: retry ci [monitor-ci]" + git push origin $(git branch --show-current) + ``` + +3. **Record `expected_commit_sha`, spawn subagent in wait mode** + +4. **If retry also returns `cipe_no_tasks`:** + - Exit with failure + - Provide guidance: + + ``` + [monitor-ci] Retry failed. Please check: + [monitor-ci] 1. Nx Cloud UI: + [monitor-ci] 2. CI provider logs (GitHub Actions, GitLab CI, etc.) + [monitor-ci] 3. CI job timeout settings + [monitor-ci] 4. Memory/resource limits + ``` + +## Exit Conditions + +Exit the monitoring loop when ANY of these conditions are met: + +| Condition | Exit Type | +| ------------------------------------------------------------ | ---------------------- | +| CI passes (`cipeStatus == 'SUCCEEDED'`) | Success | +| Max agent-initiated cycles reached (after user declines ext) | Timeout | +| Max duration reached | Timeout | +| 3 consecutive no-progress iterations | Circuit breaker | +| No fix available and local fix not possible | Failure | +| No new CI Attempt and auto-fix not configured | Pre-CI-Attempt failure | +| User cancels | Cancelled | + +## Main Loop + +### Step 1: Initialize Tracking + +``` +cycle_count = 0 # Only incremented for agent-initiated cycles (counted against --max-cycles) +start_time = now() +no_progress_count = 0 +local_verify_count = 0 +last_state = null +last_cipe_url = null +expected_commit_sha = null +agent_triggered = false # Set true after monitor takes an action that triggers new CI Attempt +``` + +### Step 2: Spawn Subagent and Monitor Output + +Spawn the `ci-monitor-subagent` subagent to poll CI status. **Run in background** so you can actively monitor and relay its output to the user. + +**Fresh start (first spawn, no expected CI Attempt):** + +``` +Task( + agent: "ci-monitor-subagent", + run_in_background: true, + prompt: "Monitor CI for branch ''. + Subagent timeout: minutes. + New-CI-Attempt timeout: minutes. + Verbosity: ." +) +``` + +**After action that triggers new CI Attempt (wait mode):** + +``` +Task( + agent: "ci-monitor-subagent", + run_in_background: true, + prompt: "Monitor CI for branch ''. + Subagent timeout: minutes. + New-CI-Attempt timeout: minutes. + Verbosity: . + + WAIT MODE: A new CI Attempt should spawn. Ignore old CI Attempt until new one appears. + Expected commit SHA: + Previous CI Attempt URL: " +) +``` + +### Step 2a: Active Output Monitoring (CRITICAL) + +**The subagent's text output is NOT visible to users when running in background.** You MUST actively monitor and relay its output. Do NOT passively wait for completion. + +After spawning the background subagent, enter a monitoring loop: + +1. **Every 60 seconds**, check the subagent output using `TaskOutput(task_id, block=false)` +2. **Parse new lines** since your last check — look for `[ci-monitor]` and `⚡` prefixed lines +3. **Relay to user** based on verbosity: + - `minimal`: Only relay `⚡` critical transition lines + - `medium`: Relay all `[ci-monitor]` status lines + - `verbose`: Relay all subagent output +4. **Continue** until `TaskOutput` returns a completed status +5. When complete, proceed to Step 3 with the final subagent response + +**Example monitoring loop output:** + +``` +[monitor-ci] Checking subagent status... (elapsed: 1m) +[monitor-ci] CI: IN_PROGRESS | Self-healing: NOT_STARTED + +[monitor-ci] Checking subagent status... (elapsed: 3m) +[monitor-ci] CI: FAILED | Self-healing: IN_PROGRESS +[monitor-ci] ⚡ CI failed — self-healing fix generation started + +[monitor-ci] Checking subagent status... (elapsed: 5m) +[monitor-ci] CI: FAILED | Self-healing: COMPLETED | Verification: IN_PROGRESS +[monitor-ci] ⚡ Self-healing fix generated — verification started +``` + +**NEVER do this:** + +- Spawn subagent and passively say "Waiting for results..." +- Check once and say "Still working, I'll wait" +- Only show output when the subagent finishes +- Independently analyze CI failures, read task output, or attempt fixes while subagent is polling + +**While the subagent is polling, your ONLY job is to relay its output.** Do not read CI task output, diagnose failures, generate fixes, modify code, or run tasks locally. All fix decisions happen in Step 3 AFTER the subagent returns with a status. Self-healing may already be working on a fix — independent local analysis races with it and causes duplicate/conflicting fixes. + +### Step 3: Handle Subagent Response + +When subagent returns: + +1. Check the returned status +2. Look up default behavior in the table above +3. Check if user instructions override the default +4. Execute the appropriate action +5. **If action expects new CI Attempt**, update tracking (see Step 3a) +6. If action results in looping, go to Step 2 + +### Step 3a: Track State for New-CI-Attempt Detection + +After actions that should trigger a new CI Attempt, record state before looping: + +| Action | What to Track | Subagent Mode | +| ----------------------------------- | --------------------------------------------- | ------------- | +| Fix auto-applying | `last_cipe_url = current cipeUrl` | Wait mode | +| Apply via MCP | `last_cipe_url = current cipeUrl` | Wait mode | +| Apply locally + push | `expected_commit_sha = $(git rev-parse HEAD)` | Wait mode | +| Reject + fix + push | `expected_commit_sha = $(git rev-parse HEAD)` | Wait mode | +| Fix failed + local fix + push | `expected_commit_sha = $(git rev-parse HEAD)` | Wait mode | +| No fix + local fix + push | `expected_commit_sha = $(git rev-parse HEAD)` | Wait mode | +| Environment rerun | `last_cipe_url = current cipeUrl` | Wait mode | +| No-new-CI-Attempt + auto-fix + push | `expected_commit_sha = $(git rev-parse HEAD)` | Wait mode | +| CI Attempt no tasks + retry push | `expected_commit_sha = $(git rev-parse HEAD)` | Wait mode | + +**CRITICAL**: When passing `expectedCommitSha` or `last_cipe_url` to the subagent, it enters **wait mode**: + +- Subagent will **completely ignore** the old/stale CI Attempt +- Subagent will only wait for new CI Attempt to appear +- Subagent will NOT return to main agent with stale CI Attempt data +- Once new CI Attempt detected, subagent switches to normal polling + +**Why wait mode matters for context preservation**: Stale CI Attempt data can be very large (task output summaries, suggested fix patches, reasoning). If subagent returns this to main agent, it pollutes main agent's context with useless data since we already processed that CI Attempt. Wait mode keeps stale data in the subagent, never sending it to main agent. + +### Step 4: Cycle Classification and Progress Tracking + +#### Cycle Classification + +Not all cycles are equal. Only count cycles the monitor itself triggered toward `--max-cycles`: + +1. **After subagent returns**, check `agent_triggered`: + - `agent_triggered == true` → this cycle was triggered by the monitor → `cycle_count++` + - `agent_triggered == false` → this cycle was human-initiated or a first observation → do NOT increment `cycle_count` +2. **Reset** `agent_triggered = false` +3. **After Step 3a** (when the monitor takes an action that triggers a new CI Attempt) → set `agent_triggered = true` + +**How detection works**: Step 3a is only called when the monitor explicitly pushes code, applies a fix via MCP, or triggers an environment rerun. If a human pushes on their own, the subagent detects a new CI Attempt but the monitor never went through Step 3a, so `agent_triggered` remains `false`. + +**When a human-initiated cycle is detected**, log it: + +``` +[monitor-ci] New CI Attempt detected (human-initiated push). Monitoring without incrementing cycle count. (agent cycles: N/max-cycles) +``` + +#### Approaching Limit Gate + +When `cycle_count >= max_cycles - 2`, pause and ask the user before continuing: + +``` +[monitor-ci] Approaching cycle limit (cycle_count/max_cycles agent-initiated cycles used). +[monitor-ci] How would you like to proceed? + 1. Continue with 5 more cycles + 2. Continue with 10 more cycles + 3. Stop monitoring +``` + +Increase `max_cycles` by the user's choice and continue. + +#### Progress Tracking + +After each action: + +- If state changed significantly → reset `no_progress_count = 0` +- If state unchanged → `no_progress_count++` +- On new CI attempt detected → reset `local_verify_count = 0` + +## Status Reporting + +Based on verbosity level: + +| Level | What to Report | +| --------- | -------------------------------------------------------------------------- | +| `minimal` | Only final result (success/failure/timeout) | +| `medium` | State changes + periodic updates ("Cycle N \| Elapsed: Xm \| Status: ...") | +| `verbose` | All of medium + full subagent responses, git outputs, MCP responses | + +## User Instruction Examples + +Users can override default behaviors: + +| Instruction | Effect | +| ------------------------------------------------ | --------------------------------------------------- | +| "never auto-apply" | Always prompt before applying any fix | +| "always ask before git push" | Prompt before each push | +| "reject any fix for e2e tasks" | Auto-reject if `failedTaskIds` contains e2e | +| "apply all fixes regardless of verification" | Skip verification check, apply everything | +| "if confidence < 70, reject" | Check confidence field before applying | +| "run 'nx affected -t typecheck' before applying" | Add local verification step | +| "auto-fix workflow failures" | Attempt lockfile updates on pre-CI-Attempt failures | +| "wait 45 min for new CI Attempt" | Override new-CI-Attempt timeout (default: 10 min) | + +## Error Handling + +| Error | Action | +| ------------------------------ | ----------------------------------------------------------------------------------------------------------- | +| Git rebase conflict | Report to user, exit | +| `nx-cloud apply-locally` fails | Reject fix via MCP (`action: "REJECT"`), then attempt manual patch (Reject + Fix From Scratch Flow) or exit | +| MCP tool error | Retry once, if fails report to user | +| Subagent spawn failure | Retry once, if fails exit with error | +| No new CI Attempt detected | If `--auto-fix-workflow`, try lockfile update; otherwise report to user with guidance | +| Lockfile auto-fix fails | Report to user, exit with guidance to check CI logs | + +## Example Session + +### Example 1: Normal Flow with Self-Healing (medium verbosity) + +``` +[monitor-ci] Starting CI monitor for branch 'feature/add-auth' +[monitor-ci] Config: max-cycles=5, timeout=120m, verbosity=medium + +[monitor-ci] Spawning subagent to poll CI status... +[monitor-ci] Checking subagent status... (elapsed: 1m) +[monitor-ci] CI: IN_PROGRESS | Self-healing: NOT_STARTED +[monitor-ci] Checking subagent status... (elapsed: 3m) +[monitor-ci] CI: FAILED | Self-healing: IN_PROGRESS +[monitor-ci] ⚡ CI failed — self-healing fix generation started +[monitor-ci] Checking subagent status... (elapsed: 5m) +[monitor-ci] CI: FAILED | Self-healing: COMPLETED | Verification: COMPLETED + +[monitor-ci] Fix available! Verification: COMPLETED +[monitor-ci] Applying fix via MCP... +[monitor-ci] Fix applied in CI. Waiting for new CI attempt... + +[monitor-ci] Spawning subagent to poll CI status... +[monitor-ci] Checking subagent status... (elapsed: 7m) +[monitor-ci] ⚡ New CI Attempt detected! +[monitor-ci] Checking subagent status... (elapsed: 8m) +[monitor-ci] CI: SUCCEEDED + +[monitor-ci] CI passed successfully! + +[monitor-ci] Summary: + - Agent cycles: 1/5 + - Total time: 12m 34s + - Fixes applied: 1 + - Result: SUCCESS +``` + +### Example 2: Pre-CI Failure (medium verbosity) + +``` +[monitor-ci] Starting CI monitor for branch 'feature/add-products' +[monitor-ci] Config: max-cycles=5, timeout=120m, auto-fix-workflow=true + +[monitor-ci] Spawning subagent to poll CI status... +[monitor-ci] Checking subagent status... (elapsed: 2m) +[monitor-ci] CI: FAILED | Self-healing: COMPLETED + +[monitor-ci] Fix available! Applying locally, enhancing, and pushing... +[monitor-ci] Committed: abc1234 + +[monitor-ci] Spawning subagent to poll CI status... +[monitor-ci] Checking subagent status... (elapsed: 6m) +[monitor-ci] Waiting for new CI Attempt... (expected SHA: abc1234) +[monitor-ci] Checking subagent status... (elapsed: 12m) +[monitor-ci] ⚠️ CI Attempt timeout (10 min). Status: no_new_cipe + +[monitor-ci] --auto-fix-workflow enabled. Attempting lockfile update... +[monitor-ci] Lockfile updated. Committed: def5678 + +[monitor-ci] Spawning subagent to poll CI status... +[monitor-ci] Checking subagent status... (elapsed: 16m) +[monitor-ci] ⚡ New CI Attempt detected! +[monitor-ci] Checking subagent status... (elapsed: 18m) +[monitor-ci] CI: SUCCEEDED + +[monitor-ci] CI passed successfully! + +[monitor-ci] Summary: + - Agent cycles: 3/5 + - Total time: 22m 15s + - Fixes applied: 1 (self-healing) + 1 (lockfile) + - Result: SUCCESS +``` + +### Example 3: Human-in-the-Loop (user pushes during monitoring) + +``` +[monitor-ci] Starting CI monitor for branch 'feature/refactor-api' +[monitor-ci] Config: max-cycles=5, timeout=120m, verbosity=medium + +[monitor-ci] Spawning subagent to poll CI status... +[monitor-ci] Checking subagent status... (elapsed: 4m) +[monitor-ci] CI: FAILED | Self-healing: COMPLETED + +[monitor-ci] Fix available! Applying fix via MCP... (agent cycles: 0/5) +[monitor-ci] Fix applied in CI. Waiting for new CI attempt... + +[monitor-ci] Spawning subagent to poll CI status... +[monitor-ci] Checking subagent status... (elapsed: 8m) +[monitor-ci] ⚡ New CI Attempt detected! +[monitor-ci] CI: FAILED | Self-healing: COMPLETED + +[monitor-ci] Agent-initiated cycle. (agent cycles: 1/5) +[monitor-ci] Fix available! Applying locally and enhancing... +[monitor-ci] Committed: abc1234 + +[monitor-ci] Spawning subagent to poll CI status... + ... (user pushes their own changes to the branch while monitor waits) ... +[monitor-ci] Checking subagent status... (elapsed: 12m) +[monitor-ci] ⚡ New CI Attempt detected! +[monitor-ci] CI: FAILED | Self-healing: IN_PROGRESS + +[monitor-ci] New CI Attempt detected (human-initiated push). Monitoring without incrementing cycle count. (agent cycles: 2/5) +[monitor-ci] Checking subagent status... (elapsed: 16m) +[monitor-ci] CI: FAILED | Self-healing: COMPLETED + +[monitor-ci] Fix available! Applying via MCP... (agent cycles: 2/5) + ... (continues, human cycles don't eat into the budget) ... +``` diff --git a/.github/skills/link-workspace-packages/SKILL.md b/.github/skills/link-workspace-packages/SKILL.md new file mode 100644 index 00000000..de131349 --- /dev/null +++ b/.github/skills/link-workspace-packages/SKILL.md @@ -0,0 +1,127 @@ +--- +name: link-workspace-packages +description: 'Link workspace packages in monorepos (npm, yarn, pnpm, bun). USE WHEN: (1) you just created or generated new packages and need to wire up their dependencies, (2) user imports from a sibling package and needs to add it as a dependency, (3) you get resolution errors for workspace packages (@org/*) like "cannot find module", "failed to resolve import", "TS2307", or "cannot resolve". DO NOT patch around with tsconfig paths or manual package.json edits - use the package manager''s workspace commands to fix actual linking.' +--- + +# Link Workspace Packages + +Add dependencies between packages in a monorepo. All package managers support workspaces but with different syntax. + +## Detect Package Manager + +Check whether there's a `packageManager` field in the root-level `package.json`. + +Alternatively check lockfile in repo root: + +- `pnpm-lock.yaml` → pnpm +- `yarn.lock` → yarn +- `bun.lock` / `bun.lockb` → bun +- `package-lock.json` → npm + +## Workflow + +1. Identify consumer package (the one importing) +2. Identify provider package(s) (being imported) +3. Add dependency using package manager's workspace syntax +4. Verify symlinks created in consumer's `node_modules/` + +--- + +## pnpm + +Uses `workspace:` protocol - symlinks only created when explicitly declared. + +```bash +# From consumer directory +pnpm add @org/ui --workspace + +# Or with --filter from anywhere +pnpm add @org/ui --filter @org/app --workspace +``` + +Result in `package.json`: + +```json +{ "dependencies": { "@org/ui": "workspace:*" } } +``` + +--- + +## yarn (v2+/berry) + +Also uses `workspace:` protocol. + +```bash +yarn workspace @org/app add @org/ui +``` + +Result in `package.json`: + +```json +{ "dependencies": { "@org/ui": "workspace:^" } } +``` + +--- + +## npm + +No `workspace:` protocol. npm auto-symlinks workspace packages. + +```bash +npm install @org/ui --workspace @org/app +``` + +Result in `package.json`: + +```json +{ "dependencies": { "@org/ui": "*" } } +``` + +npm resolves to local workspace automatically during install. + +--- + +## bun + +Supports `workspace:` protocol (pnpm-compatible). + +```bash +cd packages/app && bun add @org/ui +``` + +Result in `package.json`: + +```json +{ "dependencies": { "@org/ui": "workspace:*" } } +``` + +--- + +## Examples + +**Example 1: pnpm - link ui lib to app** + +```bash +pnpm add @org/ui --filter @org/app --workspace +``` + +**Example 2: npm - link multiple packages** + +```bash +npm install @org/data-access @org/ui --workspace @org/dashboard +``` + +**Example 3: Debug "Cannot find module"** + +1. Check if dependency is declared in consumer's `package.json` +2. If not, add it using appropriate command above +3. Run install (`pnpm install`, `npm install`, etc.) + +## Notes + +- Symlinks appear in `/node_modules/@org/` +- **Hoisting differs by manager:** + - npm/bun: hoist shared deps to root `node_modules` + - pnpm: no hoisting (strict isolation, prevents phantom deps) + - yarn berry: uses Plug'n'Play by default (no `node_modules`) +- Root `package.json` should have `"private": true` to prevent accidental publish diff --git a/.github/skills/monitor-ci/SKILL.md b/.github/skills/monitor-ci/SKILL.md new file mode 100644 index 00000000..b81b00ad --- /dev/null +++ b/.github/skills/monitor-ci/SKILL.md @@ -0,0 +1,671 @@ +--- +name: monitor-ci +description: Monitor Nx Cloud CI pipeline and handle self-healing fixes. USE WHEN user says "monitor ci", "watch ci", "ci monitor", "watch ci for this branch", "track ci", "check ci status", wants to track CI status, or needs help with self-healing CI fixes. ALWAYS USE THIS SKILL instead of native CI provider tools (gh, glab, etc.) for CI monitoring. +--- + +# Monitor CI Command + +You are the orchestrator for monitoring Nx Cloud CI pipeline executions and handling self-healing fixes. You spawn the `ci-monitor-subagent` subagent to poll CI status and make decisions based on the results. + +## Context + +- **Current Branch:** !`git branch --show-current` +- **Current Commit:** !`git rev-parse --short HEAD` +- **Remote Status:** !`git status -sb | head -1` + +## User Instructions + +$ARGUMENTS + +**Important:** If user provides specific instructions, respect them over default behaviors described below. + +## Configuration Defaults + +| Setting | Default | Description | +| ------------------------- | ------------- | ------------------------------------------------------------------------- | +| `--max-cycles` | 10 | Maximum **agent-initiated** CI Attempt cycles before timeout | +| `--timeout` | 120 | Maximum duration in minutes | +| `--verbosity` | medium | Output level: minimal, medium, verbose | +| `--branch` | (auto-detect) | Branch to monitor | +| `--subagent-timeout` | 30 | Subagent polling timeout in minutes | +| `--fresh` | false | Ignore previous context, start fresh | +| `--auto-fix-workflow` | false | Attempt common fixes for pre-CI-Attempt failures (e.g., lockfile updates) | +| `--new-cipe-timeout` | 10 | Minutes to wait for new CI Attempt after action | +| `--local-verify-attempts` | 3 | Max local verification + enhance cycles before pushing to CI | + +Parse any overrides from `$ARGUMENTS` and merge with defaults. + +## Nx Cloud Connection Check + +**CRITICAL**: Before starting the monitoring loop, verify the workspace is connected to Nx Cloud. + +### Step 0: Verify Nx Cloud Connection + +1. **Check `nx.json`** at workspace root for `nxCloudId` or `nxCloudAccessToken` +2. **If `nx.json` missing OR neither property exists** → exit with: + + ``` + [monitor-ci] Nx Cloud not connected. Unlock 70% faster CI and auto-fix broken PRs with https://nx.dev/nx-cloud + ``` + +3. **If connected** → continue to main loop + +## Anti-Patterns (NEVER DO) + +**CRITICAL**: The following behaviors are strictly prohibited: + +| Anti-Pattern | Why It's Bad | +| ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ | +| Using CI provider CLIs with `--watch` flags (e.g., `gh pr checks --watch`, `glab ci status -w`) | Bypasses Nx Cloud self-healing entirely | +| Writing custom CI polling scripts | Unreliable, pollutes context, no self-healing | +| Cancelling CI workflows/pipelines | Destructive, loses CI progress | +| Running CI checks on main agent | Wastes main agent context tokens | +| Independently analyzing/fixing CI failures while subagent polls | Races with self-healing, causes duplicate fixes and confused state | + +**If this skill fails to activate**, the fallback is: + +1. Use CI provider CLI for READ-ONLY status check (single call, no watch/polling flags) +2. Immediately delegate to this skill with gathered context +3. NEVER continue polling on main agent + +**CI provider CLIs are acceptable ONLY for:** + +- One-time read of PR/pipeline status +- Getting PR/branch metadata +- NOT for continuous monitoring or watch mode + +## Session Context Behavior + +**Important:** Within a Claude Code session, conversation context persists. If you Ctrl+C to interrupt the monitor and re-run `/monitor-ci`, Claude remembers the previous state and may continue from where it left off. + +- **To continue monitoring:** Just re-run `/monitor-ci` (context is preserved) +- **To start fresh:** Use `/monitor-ci --fresh` to ignore previous context +- **For a completely clean slate:** Exit Claude Code and restart `claude` + +## Default Behaviors by Status + +The subagent returns with one of the following statuses. This table defines the **default behavior** for each status. User instructions can override any of these. + +| Status | Default Behavior | +| ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `ci_success` | Exit with success. Log "CI passed successfully!" | +| `fix_auto_applying` | Fix will be auto-applied by self-healing. Do NOT call MCP. Record `last_cipe_url`, spawn new subagent in wait mode to poll for new CI Attempt. | +| `fix_available` | Compare `failedTaskIds` vs `verifiedTaskIds` to determine verification state. See **Fix Available Decision Logic** section below. | +| `fix_failed` | Self-healing failed to generate fix. Attempt local fix based on `taskOutputSummary`. If successful → commit, push, loop. If not → exit with failure. | +| `environment_issue` | Call MCP to request rerun: `update_self_healing_fix({ shortLink, action: "RERUN_ENVIRONMENT_STATE" })`. New CI Attempt spawns automatically. Loop to poll for new CI Attempt. | +| `self_healing_throttled` | Self-healing throttled due to unapplied fixes. See **Throttled Self-Healing Flow** below. | +| `no_fix` | CI failed, no fix available (self-healing disabled or not executable). Attempt local fix if possible. Otherwise exit with failure. | +| `no_new_cipe` | Expected CI Attempt never spawned (CI workflow likely failed before Nx tasks). Report to user, attempt common fixes if configured, or exit with guidance. | +| `polling_timeout` | Subagent polling timeout reached. Exit with timeout. | +| `cipe_canceled` | CI Attempt was canceled. Exit with canceled status. | +| `cipe_timed_out` | CI Attempt timed out. Exit with timeout status. | +| `cipe_no_tasks` | CI Attempt exists but failed with no task data (likely infrastructure issue). Retry once with empty commit. If retry fails, exit with failure and guidance. | +| `error` | Increment `no_progress_count`. If >= 3 → exit with circuit breaker. Otherwise wait 60s and loop. | + +### Fix Available Decision Logic + +When subagent returns `fix_available`, main agent compares `failedTaskIds` vs `verifiedTaskIds`: + +#### Step 1: Categorize Tasks + +1. **Verified tasks** = tasks in both `failedTaskIds` AND `verifiedTaskIds` +2. **Unverified tasks** = tasks in `failedTaskIds` but NOT in `verifiedTaskIds` +3. **E2E tasks** = unverified tasks where target contains "e2e" (task format: `:` or `::`) +4. **Verifiable tasks** = unverified tasks that are NOT e2e + +#### Step 2: Determine Path + +| Condition | Path | +| --------------------------------------- | ---------------------------------------- | +| No unverified tasks (all verified) | Apply via MCP | +| Unverified tasks exist, but ALL are e2e | Apply via MCP (treat as verified enough) | +| Verifiable tasks exist | Local verification flow | + +#### Step 3a: Apply via MCP (fully/e2e-only verified) + +- Call `update_self_healing_fix({ shortLink, action: "APPLY" })` +- Record `last_cipe_url`, spawn subagent in wait mode + +#### Step 3b: Local Verification Flow + +When verifiable (non-e2e) unverified tasks exist: + +1. **Detect package manager:** + - `pnpm-lock.yaml` exists → `pnpm nx` + - `yarn.lock` exists → `yarn nx` + - Otherwise → `npx nx` + +2. **Run verifiable tasks in parallel:** + - Spawn `general` subagents to run each task concurrently + - Each subagent runs: ` nx run ` + - Collect pass/fail results from all subagents + +3. **Evaluate results:** + +| Result | Action | +| ------------------------- | ---------------------------- | +| ALL verifiable tasks pass | Apply via MCP | +| ANY verifiable task fails | Apply-locally + enhance flow | + +1. **Apply-locally + enhance flow:** + - Run `nx-cloud apply-locally ` + - Enhance the code to fix failing tasks + - Run failing tasks again to verify fix + - If still failing → increment `local_verify_count`, loop back to enhance + - If passing → commit and push, record `expected_commit_sha`, spawn subagent in wait mode + +2. **Track attempts** (wraps step 4): + - Increment `local_verify_count` after each enhance cycle + - If `local_verify_count >= local_verify_attempts` (default: 3): + - Get code in commit-able state + - Commit and push with message indicating local verification failed + - Report to user: + + ``` + [monitor-ci] Local verification failed after attempts. Pushed to CI for final validation. Failed: + ``` + + - Record `expected_commit_sha`, spawn subagent in wait mode (let CI be final judge) + +#### Commit Message Format + +```bash +git commit -m "fix(): + +Failed tasks: , +Local verification: passed|enhanced|failed-pushing-to-ci" +``` + +**Git Safety**: Only stage and commit files that were modified as part of the fix. Users may have concurrent local changes (local publish, WIP features, config tweaks) that must NOT be committed. NEVER use `git add -A` or `git add .` — always stage specific files by name. + +### Unverified Fix Flow (No Verification Attempted) + +When `verificationStatus` is `FAILED`, `NOT_EXECUTABLE`, or fix has `couldAutoApplyTasks != true` with no verification: + +- Analyze fix content (`suggestedFix`, `suggestedFixReasoning`, `taskOutputSummary`) +- If fix looks correct → apply via MCP +- If fix needs enhancement → use Apply Locally + Enhance Flow above +- If fix is wrong → reject via MCP, fix from scratch, commit, push + +### Auto-Apply Eligibility + +The `couldAutoApplyTasks` field indicates whether the fix is eligible for automatic application: + +- **`true`**: Fix is eligible for auto-apply. Subagent keeps polling while verification is in progress. Returns `fix_auto_applying` when verified, or `fix_available` if verification fails. +- **`false`** or **`null`**: Fix requires manual action (apply via MCP, apply locally, or reject) + +**Key point**: When subagent returns `fix_auto_applying`, do NOT call MCP to apply - self-healing handles it. Just spawn a new subagent in wait mode. No local git operations (no commit, no push). + +### Accidental Local Fix Recovery + +If you find yourself with uncommitted local changes from your own fix attempt when the subagent returns (e.g., you accidentally analyzed/fixed the failure while the subagent was polling): + +1. **Compare your local changes with the self-healing fix** (`suggestedFix` / `suggestedFixDescription`) +2. **If identical or substantially similar** → discard only the files you modified (`git checkout -- ...`), then apply via MCP instead. Self-healing's pipeline is the preferred path. Do NOT discard unrelated user changes. +3. **If meaningfully different** (your fix addresses something self-healing missed) → proceed with the Apply Locally + Enhance Flow + +Self-healing fixes go through proper CI verification. Always prefer the self-healing path when fixes overlap. + +### Apply vs Reject vs Apply Locally + +- **Apply via MCP**: Calls `update_self_healing_fix({ shortLink, action: "APPLY" })`. Self-healing agent applies the fix in CI and a new CI Attempt spawns automatically. No local git operations needed. +- **Apply Locally**: Runs `nx-cloud apply-locally `. Applies the patch to your local working directory and sets state to `APPLIED_LOCALLY`. Use this when you want to enhance the fix before pushing. +- **Reject via MCP**: Calls `update_self_healing_fix({ shortLink, action: "REJECT" })`. Marks fix as rejected. Use only when the fix is completely wrong and you'll fix from scratch. + +### Apply Locally + Enhance Flow + +When the fix needs enhancement (use `nx-cloud apply-locally`, NOT reject): + +1. Apply the patch locally: `nx-cloud apply-locally ` (this also updates state to `APPLIED_LOCALLY`) +2. Make additional changes as needed +3. Stage only the files you modified: `git add ...` +4. Commit and push: + + ```bash + git commit -m "fix: resolve " + git push origin $(git branch --show-current) + ``` + +5. Loop to poll for new CI Attempt + +### Reject + Fix From Scratch Flow + +When the fix is completely wrong: + +1. Call MCP to reject: `update_self_healing_fix({ shortLink, action: "REJECT" })` +2. Fix the issue from scratch locally +3. Stage only the files you modified: `git add ...` +4. Commit and push: + + ```bash + git commit -m "fix: resolve " + git push origin $(git branch --show-current) + ``` + +5. Loop to poll for new CI Attempt + +### Environment Issue Handling + +When `failureClassification == 'ENVIRONMENT_STATE'`: + +1. Call MCP to request rerun: `update_self_healing_fix({ shortLink, action: "RERUN_ENVIRONMENT_STATE" })` +2. New CI Attempt spawns automatically (no local git operations needed) +3. Loop to poll for new CI Attempt with `previousCipeUrl` set + +### Throttled Self-Healing Flow + +When `status == 'self_healing_throttled'`: + +Self-healing was skipped because too many previous fixes remain unapplied. The `selfHealingSkipMessage` contains URLs to CIPEs with pending fixes. + +1. **Parse throttle message** for CIPE URLs using regex matching `/cipes/{id}` pattern (format: `https://...nx.app/cipes/{cipeId}/self-healing`) +2. **Reject previous fixes** — for each CIPE URL found: + - Call `ci_information({ url: "" })` to get the `shortLink` + - Call `update_self_healing_fix({ shortLink: "", action: "REJECT" })` to reject +3. **Attempt local fix**: + - Use `failedTaskIds` from the current CIPE + - Use `taskOutputSummary` (fetch via select if available) for context + - Try to fix locally, run tasks to verify +4. **Fallback if local fix not possible**: + - Push empty commit (`git commit --allow-empty -m "ci: rerun after rejecting throttled fixes"`) + - Push to trigger new CI + - Spawn subagent in wait mode to poll for new CI Attempt +5. After rejecting fixes and pushing, self-healing should resume since throttle condition (unapplied fixes) is cleared + +### No-New-CI-Attempt Handling + +When `status == 'no_new_cipe'`: + +This means the expected CI Attempt was never created - CI likely failed before Nx tasks could run. + +1. **Report to user:** + + ``` + [monitor-ci] No CI attempt for after 10 min. Check CI provider for pre-Nx failures (install, checkout, auth). Last CI attempt: + ``` + +2. **If user configured auto-fix attempts** (e.g., `--auto-fix-workflow`): + - Detect package manager: check for `pnpm-lock.yaml`, `yarn.lock`, `package-lock.json` + - Run install to update lockfile: + + ```bash + pnpm install # or npm install / yarn install + ``` + + - If lockfile changed: + + ```bash + git add pnpm-lock.yaml # or appropriate lockfile + git commit -m "chore: update lockfile" + git push origin $(git branch --show-current) + ``` + + - Record new commit SHA, loop to poll with `expectedCommitSha` + +3. **Otherwise:** Exit with `no_new_cipe` status, providing guidance for user to investigate + +### CI-Attempt-No-Tasks Handling + +When `status == 'cipe_no_tasks'`: + +This means the CI Attempt was created but no Nx tasks were recorded before it failed. Common causes: + +- CI timeout before tasks could run +- Critical infrastructure error +- Memory/resource exhaustion +- Network issues connecting to Nx Cloud + +1. **Report to user:** + + ``` + [monitor-ci] CI failed but no Nx tasks were recorded. + [monitor-ci] CI Attempt URL: + [monitor-ci] + [monitor-ci] This usually indicates an infrastructure issue. Attempting retry... + ``` + +2. **Create empty commit to retry CI:** + + ```bash + git commit --allow-empty -m "chore: retry ci [monitor-ci]" + git push origin $(git branch --show-current) + ``` + +3. **Record `expected_commit_sha`, spawn subagent in wait mode** + +4. **If retry also returns `cipe_no_tasks`:** + - Exit with failure + - Provide guidance: + + ``` + [monitor-ci] Retry failed. Please check: + [monitor-ci] 1. Nx Cloud UI: + [monitor-ci] 2. CI provider logs (GitHub Actions, GitLab CI, etc.) + [monitor-ci] 3. CI job timeout settings + [monitor-ci] 4. Memory/resource limits + ``` + +## Exit Conditions + +Exit the monitoring loop when ANY of these conditions are met: + +| Condition | Exit Type | +| ------------------------------------------------------------ | ---------------------- | +| CI passes (`cipeStatus == 'SUCCEEDED'`) | Success | +| Max agent-initiated cycles reached (after user declines ext) | Timeout | +| Max duration reached | Timeout | +| 3 consecutive no-progress iterations | Circuit breaker | +| No fix available and local fix not possible | Failure | +| No new CI Attempt and auto-fix not configured | Pre-CI-Attempt failure | +| User cancels | Cancelled | + +## Main Loop + +### Step 1: Initialize Tracking + +``` +cycle_count = 0 # Only incremented for agent-initiated cycles (counted against --max-cycles) +start_time = now() +no_progress_count = 0 +local_verify_count = 0 +last_state = null +last_cipe_url = null +expected_commit_sha = null +agent_triggered = false # Set true after monitor takes an action that triggers new CI Attempt +``` + +### Step 2: Spawn Subagent and Monitor Output + +Spawn the `ci-monitor-subagent` subagent to poll CI status. **Run in background** so you can actively monitor and relay its output to the user. + +**Fresh start (first spawn, no expected CI Attempt):** + +``` +Task( + agent: "ci-monitor-subagent", + run_in_background: true, + prompt: "Monitor CI for branch ''. + Subagent timeout: minutes. + New-CI-Attempt timeout: minutes. + Verbosity: ." +) +``` + +**After action that triggers new CI Attempt (wait mode):** + +``` +Task( + agent: "ci-monitor-subagent", + run_in_background: true, + prompt: "Monitor CI for branch ''. + Subagent timeout: minutes. + New-CI-Attempt timeout: minutes. + Verbosity: . + + WAIT MODE: A new CI Attempt should spawn. Ignore old CI Attempt until new one appears. + Expected commit SHA: + Previous CI Attempt URL: " +) +``` + +### Step 2a: Active Output Monitoring (CRITICAL) + +**The subagent's text output is NOT visible to users when running in background.** You MUST actively monitor and relay its output. Do NOT passively wait for completion. + +After spawning the background subagent, enter a monitoring loop: + +1. **Every 60 seconds**, check the subagent output using `TaskOutput(task_id, block=false)` +2. **Parse new lines** since your last check — look for `[ci-monitor]` and `⚡` prefixed lines +3. **Relay to user** based on verbosity: + - `minimal`: Only relay `⚡` critical transition lines + - `medium`: Relay all `[ci-monitor]` status lines + - `verbose`: Relay all subagent output +4. **Continue** until `TaskOutput` returns a completed status +5. When complete, proceed to Step 3 with the final subagent response + +**Example monitoring loop output:** + +``` +[monitor-ci] Checking subagent status... (elapsed: 1m) +[monitor-ci] CI: IN_PROGRESS | Self-healing: NOT_STARTED + +[monitor-ci] Checking subagent status... (elapsed: 3m) +[monitor-ci] CI: FAILED | Self-healing: IN_PROGRESS +[monitor-ci] ⚡ CI failed — self-healing fix generation started + +[monitor-ci] Checking subagent status... (elapsed: 5m) +[monitor-ci] CI: FAILED | Self-healing: COMPLETED | Verification: IN_PROGRESS +[monitor-ci] ⚡ Self-healing fix generated — verification started +``` + +**NEVER do this:** + +- Spawn subagent and passively say "Waiting for results..." +- Check once and say "Still working, I'll wait" +- Only show output when the subagent finishes +- Independently analyze CI failures, read task output, or attempt fixes while subagent is polling + +**While the subagent is polling, your ONLY job is to relay its output.** Do not read CI task output, diagnose failures, generate fixes, modify code, or run tasks locally. All fix decisions happen in Step 3 AFTER the subagent returns with a status. Self-healing may already be working on a fix — independent local analysis races with it and causes duplicate/conflicting fixes. + +### Step 3: Handle Subagent Response + +When subagent returns: + +1. Check the returned status +2. Look up default behavior in the table above +3. Check if user instructions override the default +4. Execute the appropriate action +5. **If action expects new CI Attempt**, update tracking (see Step 3a) +6. If action results in looping, go to Step 2 + +### Step 3a: Track State for New-CI-Attempt Detection + +After actions that should trigger a new CI Attempt, record state before looping: + +| Action | What to Track | Subagent Mode | +| ----------------------------------- | --------------------------------------------- | ------------- | +| Fix auto-applying | `last_cipe_url = current cipeUrl` | Wait mode | +| Apply via MCP | `last_cipe_url = current cipeUrl` | Wait mode | +| Apply locally + push | `expected_commit_sha = $(git rev-parse HEAD)` | Wait mode | +| Reject + fix + push | `expected_commit_sha = $(git rev-parse HEAD)` | Wait mode | +| Fix failed + local fix + push | `expected_commit_sha = $(git rev-parse HEAD)` | Wait mode | +| No fix + local fix + push | `expected_commit_sha = $(git rev-parse HEAD)` | Wait mode | +| Environment rerun | `last_cipe_url = current cipeUrl` | Wait mode | +| No-new-CI-Attempt + auto-fix + push | `expected_commit_sha = $(git rev-parse HEAD)` | Wait mode | +| CI Attempt no tasks + retry push | `expected_commit_sha = $(git rev-parse HEAD)` | Wait mode | + +**CRITICAL**: When passing `expectedCommitSha` or `last_cipe_url` to the subagent, it enters **wait mode**: + +- Subagent will **completely ignore** the old/stale CI Attempt +- Subagent will only wait for new CI Attempt to appear +- Subagent will NOT return to main agent with stale CI Attempt data +- Once new CI Attempt detected, subagent switches to normal polling + +**Why wait mode matters for context preservation**: Stale CI Attempt data can be very large (task output summaries, suggested fix patches, reasoning). If subagent returns this to main agent, it pollutes main agent's context with useless data since we already processed that CI Attempt. Wait mode keeps stale data in the subagent, never sending it to main agent. + +### Step 4: Cycle Classification and Progress Tracking + +#### Cycle Classification + +Not all cycles are equal. Only count cycles the monitor itself triggered toward `--max-cycles`: + +1. **After subagent returns**, check `agent_triggered`: + - `agent_triggered == true` → this cycle was triggered by the monitor → `cycle_count++` + - `agent_triggered == false` → this cycle was human-initiated or a first observation → do NOT increment `cycle_count` +2. **Reset** `agent_triggered = false` +3. **After Step 3a** (when the monitor takes an action that triggers a new CI Attempt) → set `agent_triggered = true` + +**How detection works**: Step 3a is only called when the monitor explicitly pushes code, applies a fix via MCP, or triggers an environment rerun. If a human pushes on their own, the subagent detects a new CI Attempt but the monitor never went through Step 3a, so `agent_triggered` remains `false`. + +**When a human-initiated cycle is detected**, log it: + +``` +[monitor-ci] New CI Attempt detected (human-initiated push). Monitoring without incrementing cycle count. (agent cycles: N/max-cycles) +``` + +#### Approaching Limit Gate + +When `cycle_count >= max_cycles - 2`, pause and ask the user before continuing: + +``` +[monitor-ci] Approaching cycle limit (cycle_count/max_cycles agent-initiated cycles used). +[monitor-ci] How would you like to proceed? + 1. Continue with 5 more cycles + 2. Continue with 10 more cycles + 3. Stop monitoring +``` + +Increase `max_cycles` by the user's choice and continue. + +#### Progress Tracking + +After each action: + +- If state changed significantly → reset `no_progress_count = 0` +- If state unchanged → `no_progress_count++` +- On new CI attempt detected → reset `local_verify_count = 0` + +## Status Reporting + +Based on verbosity level: + +| Level | What to Report | +| --------- | -------------------------------------------------------------------------- | +| `minimal` | Only final result (success/failure/timeout) | +| `medium` | State changes + periodic updates ("Cycle N \| Elapsed: Xm \| Status: ...") | +| `verbose` | All of medium + full subagent responses, git outputs, MCP responses | + +## User Instruction Examples + +Users can override default behaviors: + +| Instruction | Effect | +| ------------------------------------------------ | --------------------------------------------------- | +| "never auto-apply" | Always prompt before applying any fix | +| "always ask before git push" | Prompt before each push | +| "reject any fix for e2e tasks" | Auto-reject if `failedTaskIds` contains e2e | +| "apply all fixes regardless of verification" | Skip verification check, apply everything | +| "if confidence < 70, reject" | Check confidence field before applying | +| "run 'nx affected -t typecheck' before applying" | Add local verification step | +| "auto-fix workflow failures" | Attempt lockfile updates on pre-CI-Attempt failures | +| "wait 45 min for new CI Attempt" | Override new-CI-Attempt timeout (default: 10 min) | + +## Error Handling + +| Error | Action | +| ------------------------------ | ----------------------------------------------------------------------------------------------------------- | +| Git rebase conflict | Report to user, exit | +| `nx-cloud apply-locally` fails | Reject fix via MCP (`action: "REJECT"`), then attempt manual patch (Reject + Fix From Scratch Flow) or exit | +| MCP tool error | Retry once, if fails report to user | +| Subagent spawn failure | Retry once, if fails exit with error | +| No new CI Attempt detected | If `--auto-fix-workflow`, try lockfile update; otherwise report to user with guidance | +| Lockfile auto-fix fails | Report to user, exit with guidance to check CI logs | + +## Example Session + +### Example 1: Normal Flow with Self-Healing (medium verbosity) + +``` +[monitor-ci] Starting CI monitor for branch 'feature/add-auth' +[monitor-ci] Config: max-cycles=5, timeout=120m, verbosity=medium + +[monitor-ci] Spawning subagent to poll CI status... +[monitor-ci] Checking subagent status... (elapsed: 1m) +[monitor-ci] CI: IN_PROGRESS | Self-healing: NOT_STARTED +[monitor-ci] Checking subagent status... (elapsed: 3m) +[monitor-ci] CI: FAILED | Self-healing: IN_PROGRESS +[monitor-ci] ⚡ CI failed — self-healing fix generation started +[monitor-ci] Checking subagent status... (elapsed: 5m) +[monitor-ci] CI: FAILED | Self-healing: COMPLETED | Verification: COMPLETED + +[monitor-ci] Fix available! Verification: COMPLETED +[monitor-ci] Applying fix via MCP... +[monitor-ci] Fix applied in CI. Waiting for new CI attempt... + +[monitor-ci] Spawning subagent to poll CI status... +[monitor-ci] Checking subagent status... (elapsed: 7m) +[monitor-ci] ⚡ New CI Attempt detected! +[monitor-ci] Checking subagent status... (elapsed: 8m) +[monitor-ci] CI: SUCCEEDED + +[monitor-ci] CI passed successfully! + +[monitor-ci] Summary: + - Agent cycles: 1/5 + - Total time: 12m 34s + - Fixes applied: 1 + - Result: SUCCESS +``` + +### Example 2: Pre-CI Failure (medium verbosity) + +``` +[monitor-ci] Starting CI monitor for branch 'feature/add-products' +[monitor-ci] Config: max-cycles=5, timeout=120m, auto-fix-workflow=true + +[monitor-ci] Spawning subagent to poll CI status... +[monitor-ci] Checking subagent status... (elapsed: 2m) +[monitor-ci] CI: FAILED | Self-healing: COMPLETED + +[monitor-ci] Fix available! Applying locally, enhancing, and pushing... +[monitor-ci] Committed: abc1234 + +[monitor-ci] Spawning subagent to poll CI status... +[monitor-ci] Checking subagent status... (elapsed: 6m) +[monitor-ci] Waiting for new CI Attempt... (expected SHA: abc1234) +[monitor-ci] Checking subagent status... (elapsed: 12m) +[monitor-ci] ⚠️ CI Attempt timeout (10 min). Status: no_new_cipe + +[monitor-ci] --auto-fix-workflow enabled. Attempting lockfile update... +[monitor-ci] Lockfile updated. Committed: def5678 + +[monitor-ci] Spawning subagent to poll CI status... +[monitor-ci] Checking subagent status... (elapsed: 16m) +[monitor-ci] ⚡ New CI Attempt detected! +[monitor-ci] Checking subagent status... (elapsed: 18m) +[monitor-ci] CI: SUCCEEDED + +[monitor-ci] CI passed successfully! + +[monitor-ci] Summary: + - Agent cycles: 3/5 + - Total time: 22m 15s + - Fixes applied: 1 (self-healing) + 1 (lockfile) + - Result: SUCCESS +``` + +### Example 3: Human-in-the-Loop (user pushes during monitoring) + +``` +[monitor-ci] Starting CI monitor for branch 'feature/refactor-api' +[monitor-ci] Config: max-cycles=5, timeout=120m, verbosity=medium + +[monitor-ci] Spawning subagent to poll CI status... +[monitor-ci] Checking subagent status... (elapsed: 4m) +[monitor-ci] CI: FAILED | Self-healing: COMPLETED + +[monitor-ci] Fix available! Applying fix via MCP... (agent cycles: 0/5) +[monitor-ci] Fix applied in CI. Waiting for new CI attempt... + +[monitor-ci] Spawning subagent to poll CI status... +[monitor-ci] Checking subagent status... (elapsed: 8m) +[monitor-ci] ⚡ New CI Attempt detected! +[monitor-ci] CI: FAILED | Self-healing: COMPLETED + +[monitor-ci] Agent-initiated cycle. (agent cycles: 1/5) +[monitor-ci] Fix available! Applying locally and enhancing... +[monitor-ci] Committed: abc1234 + +[monitor-ci] Spawning subagent to poll CI status... + ... (user pushes their own changes to the branch while monitor waits) ... +[monitor-ci] Checking subagent status... (elapsed: 12m) +[monitor-ci] ⚡ New CI Attempt detected! +[monitor-ci] CI: FAILED | Self-healing: IN_PROGRESS + +[monitor-ci] New CI Attempt detected (human-initiated push). Monitoring without incrementing cycle count. (agent cycles: 2/5) +[monitor-ci] Checking subagent status... (elapsed: 16m) +[monitor-ci] CI: FAILED | Self-healing: COMPLETED + +[monitor-ci] Fix available! Applying via MCP... (agent cycles: 2/5) + ... (continues, human cycles don't eat into the budget) ... +``` diff --git a/.github/skills/nx-generate/SKILL.md b/.github/skills/nx-generate/SKILL.md new file mode 100644 index 00000000..af7ba80a --- /dev/null +++ b/.github/skills/nx-generate/SKILL.md @@ -0,0 +1,166 @@ +--- +name: nx-generate +description: Generate code using nx generators. INVOKE IMMEDIATELY when user mentions scaffolding, setup, structure, creating apps/libs, or setting up project structure. Trigger words - scaffold, setup, create a ... app, create a ... lib, project structure, generate, add a new project. ALWAYS use this BEFORE calling nx_docs or exploring - this skill handles discovery internally. +--- + +# Run Nx Generator + +Nx generators are powerful tools that scaffold projects, make automated code migrations or automate repetitive tasks in a monorepo. They ensure consistency across the codebase and reduce boilerplate work. + +This skill applies when the user wants to: + +- Create new projects like libraries or applications +- Scaffold features or boilerplate code +- Run workspace-specific or custom generators +- Do anything else that an nx generator exists for + +## Key Principles + +1. **Always use `--no-interactive`** - Prevents prompts that would hang execution +2. **Read the generator source code** - The schema alone is not enough; understand what the generator actually does +3. **Match existing repo patterns** - Study similar artifacts in the repo and follow their conventions +4. **Verify with lint/test/build/typecheck etc.** - Generated code must pass verification. The listed targets are just an example, use what's appropriate for this workspace. + +## Steps + +### 1. Discover Available Generators + +Use the Nx CLI to discover available generators: + +- List all generators for a plugin: `npx nx list @nx/react` +- View available plugins: `npx nx list` + +This includes plugin generators (e.g., `@nx/react:library`) and local workspace generators. + +### 2. Match Generator to User Request + +Identify which generator(s) could fulfill the user's needs. Consider what artifact type they want, which framework is relevant, and any specific generator names mentioned. + +**IMPORTANT**: When both a local workspace generator and an external plugin generator could satisfy the request, **always prefer the local workspace generator**. Local generators are customized for the specific repo's patterns. + +If no suitable generator exists, you can stop using this skill. However, the burden of proof is high—carefully consider all available generators before deciding none apply. + +### 3. Get Generator Options + +Use the `--help` flag to understand available options: + +```bash +npx nx g @nx/react:library --help +``` + +Pay attention to required options, defaults that might need overriding, and options relevant to the user's request. + +### Library Buildability + +**Default to non-buildable libraries** unless there's a specific reason for buildable. + +| Type | When to use | Generator flags | +| --------------------------- | ----------------------------------------------------------------- | ----------------------------------- | +| **Non-buildable** (default) | Internal monorepo libs consumed by apps | No `--bundler` flag | +| **Buildable** | Publishing to npm, cross-repo sharing, stable libs for cache hits | `--bundler=vite` or `--bundler=swc` | + +Non-buildable libs: + +- Export `.ts`/`.tsx` source directly +- Consumer's bundler compiles them +- Faster dev experience, less config + +Buildable libs: + +- Have their own build target +- Useful for stable libs that rarely change (cache hits) +- Required for npm publishing + +**If unclear, ask the user:** "Should this library be buildable (own build step, better caching) or non-buildable (source consumed directly, simpler setup)?" + +### 4. Read Generator Source Code + +**This step is critical.** The schema alone does not tell you everything. Reading the source code helps you: + +- Know exactly what files will be created/modified and where +- Understand side effects (updating configs, installing deps, etc.) +- Identify behaviors and options not obvious from the schema +- Understand how options interact with each other + +To find generator source code: + +- For plugin generators: Use `node -e "console.log(require.resolve('@nx//generators.json'));"` to find the generators.json, then locate the source from there +- If that fails, read directly from `node_modules//generators.json` +- For local generators: Typically in `tools/generators/` or a local plugin directory. Search the repo for the generator name. + +After reading the source, reconsider: Is this the right generator? If not, go back to step 2. + +> **⚠️ `--directory` flag behavior can be misleading.** +> It should specify the full path of the generated library or component, not the parent path that it will be generated in. +> +> ```bash +> # ✅ Correct - directory is the full path for the library +> nx g @nx/react:library --directory=libs/my-lib +> # generates libs/my-lib/package.json and more +> +> # ❌ Wrong - this will create files at libs and libs/src/... +> nx g @nx/react:library --name=my-lib --directory=libs +> # generates libs/package.json and more +> ``` + +### 5. Examine Existing Patterns + +Before generating, examine the target area of the codebase: + +- Look at similar existing artifacts (other libraries, applications, etc.) +- Identify naming conventions, file structures, and configuration patterns +- Note which test runners, build tools, and linters are used +- Configure the generator to match these patterns + +### 6. Dry-Run to Verify File Placement + +**Always run with `--dry-run` first** to verify files will be created in the correct location: + +```bash +npx nx g @nx/react:library --name=my-lib --dry-run --no-interactive +``` + +Review the output carefully. If files would be created in the wrong location, adjust your options based on what you learned from the generator source code. + +Note: Some generators don't support dry-run (e.g., if they install npm packages). If dry-run fails for this reason, proceed to running the generator for real. + +### 7. Run the Generator + +Execute the generator: + +```bash +nx generate --no-interactive +``` + +> **Tip:** New packages often need workspace dependencies wired up (e.g., importing shared types, being consumed by apps). The `link-workspace-packages` skill can help add these correctly. + +### 8. Modify Generated Code (If Needed) + +Generators provide a starting point. Modify the output as needed to: + +- Add or modify functionality as requested +- Adjust imports, exports, or configurations +- Integrate with existing code patterns + +**Important:** If you replace or delete generated test files (e.g., `*.spec.ts`), either write meaningful replacement tests or remove the `test` target from the project configuration. Empty test suites will cause `nx test` to fail. + +### 9. Format and Verify + +Format all generated/modified files: + +```bash +nx format --fix +``` + +This example is for built-in nx formatting with prettier. There might be other formatting tools for this workspace, use these when appropriate. + +Then verify the generated code works. Keep in mind that the changes you make with a generator or subsequent modifications might impact various projects so it's usually not enough to only run targets for the artifact you just created. + +```bash +# these targets are just an example! +nx run-many -t build,lint,test,typecheck +``` + +These targets are common examples used across many workspaces. You should do research into other targets available for this workspace and its projects. CI configuration is usually a good guide for what the critical targets are that have to pass. + +If verification fails with manageable issues (a few lint errors, minor type issues), fix them. If issues are extensive, attempt obvious fixes first, then escalate to the user with details about what was generated, what's failing, and what you've attempted. diff --git a/.github/skills/nx-plugins/SKILL.md b/.github/skills/nx-plugins/SKILL.md new file mode 100644 index 00000000..89223c7f --- /dev/null +++ b/.github/skills/nx-plugins/SKILL.md @@ -0,0 +1,9 @@ +--- +name: nx-plugins +description: Find and add Nx plugins. USE WHEN user wants to discover available plugins, install a new plugin, or add support for a specific framework or technology to the workspace. +--- + +## Finding and Installing new plugins + +- List plugins: `pnpm nx list` +- Install plugins `pnpm nx add `. Example: `pnpm nx add @nx/react`. diff --git a/.github/skills/nx-run-tasks/SKILL.md b/.github/skills/nx-run-tasks/SKILL.md new file mode 100644 index 00000000..7f1263a5 --- /dev/null +++ b/.github/skills/nx-run-tasks/SKILL.md @@ -0,0 +1,58 @@ +--- +name: nx-run-tasks +description: Helps with running tasks in an Nx workspace. USE WHEN the user wants to execute build, test, lint, serve, or run any other tasks defined in the workspace. +--- + +You can run tasks with Nx in the following way. + +Keep in mind that you might have to prefix things with npx/pnpx/yarn if the user doesn't have nx installed globally. Look at the package.json or lockfile to determine which package manager is in use. + +For more details on any command, run it with `--help` (e.g. `nx run-many --help`, `nx affected --help`). + +## Understand which tasks can be run + +You can check those via `nx show project --json`, for example `nx show project myapp --json`. It contains a `targets` section which has information about targets that can be run. You can also just look at the `package.json` scripts or `project.json` targets, but you might miss out on inferred tasks by Nx plugins. + +## Run a single task + +``` +nx run : +``` + +where `project` is the project name defined in `package.json` or `project.json` (if present). + +## Run multiple tasks + +``` +nx run-many -t build test lint typecheck +``` + +You can pass a `-p` flag to filter to specific projects, otherwise it runs on all projects. You can also use `--exclude` to exclude projects, and `--parallel` to control the number of parallel processes (default is 3). + +Examples: + +- `nx run-many -t test -p proj1 proj2` — test specific projects +- `nx run-many -t test --projects=*-app --exclude=excluded-app` — test projects matching a pattern +- `nx run-many -t test --projects=tag:api-*` — test projects by tag + +## Run tasks for affected projects + +Use `nx affected` to only run tasks on projects that have been changed and projects that depend on changed projects. This is especially useful in CI and for large workspaces. + +``` +nx affected -t build test lint +``` + +By default it compares against the base branch. You can customize this: + +- `nx affected -t test --base=main --head=HEAD` — compare against a specific base and head +- `nx affected -t test --files=libs/mylib/src/index.ts` — specify changed files directly + +## Useful flags + +These flags work with `run`, `run-many`, and `affected`: + +- `--skipNxCache` — rerun tasks even when results are cached +- `--verbose` — print additional information such as stack traces +- `--nxBail` — stop execution after the first failed task +- `--configuration=` — use a specific configuration (e.g. `production`) diff --git a/.github/skills/nx-workspace/SKILL.md b/.github/skills/nx-workspace/SKILL.md new file mode 100644 index 00000000..6fd2c575 --- /dev/null +++ b/.github/skills/nx-workspace/SKILL.md @@ -0,0 +1,287 @@ +--- +name: nx-workspace +description: "Explore and understand Nx workspaces. USE WHEN answering questions about the workspace, projects, or tasks. ALSO USE WHEN an nx command fails or you need to check available targets/configuration before running a task. EXAMPLES: 'What projects are in this workspace?', 'How is project X configured?', 'What depends on library Y?', 'What targets can I run?', 'Cannot find configuration for task', 'debug nx task failure'." +--- + +# Nx Workspace Exploration + +This skill provides read-only exploration of Nx workspaces. Use it to understand workspace structure, project configuration, available targets, and dependencies. + +Keep in mind that you might have to prefix commands with `npx`/`pnpx`/`yarn` if nx isn't installed globally. Check the lockfile to determine the package manager in use. + +## Listing Projects + +Use `nx show projects` to list projects in the workspace. + +The project filtering syntax (`-p`/`--projects`) works across many Nx commands including `nx run-many`, `nx release`, `nx show projects`, and more. Filters support explicit names, glob patterns, tag references (e.g. `tag:name`), directories, and negation (e.g. `!project-name`). + +```bash +# List all projects +nx show projects + +# Filter by pattern (glob) +nx show projects --projects "apps/*" +nx show projects --projects "shared-*" + +# Filter by tag +nx show projects --projects "tag:publishable" +nx show projects -p 'tag:publishable,!tag:internal' + +# Filter by target (projects that have a specific target) +nx show projects --withTarget build + +# Combine filters +nx show projects --type lib --withTarget test +nx show projects --affected --exclude="*-e2e" +nx show projects -p "tag:scope:client,packages/*" + +# Negate patterns +nx show projects -p '!tag:private' +nx show projects -p '!*-e2e' + +# Output as JSON +nx show projects --json +``` + +## Project Configuration + +Use `nx show project --json` to get the full resolved configuration for a project. + +**Important**: Do NOT read `project.json` directly - it only contains partial configuration. The `nx show project --json` command returns the full resolved config including inferred targets from plugins. + +You can read the full project schema at `node_modules/nx/schemas/project-schema.json` to understand nx project configuration options. + +```bash +# Get full project configuration +nx show project my-app --json + +# Extract specific parts from the JSON +nx show project my-app --json | jq '.targets' +nx show project my-app --json | jq '.targets.build' +nx show project my-app --json | jq '.targets | keys' + + +# Check project metadata +nx show project my-app --json | jq '{name, root, sourceRoot, projectType, tags}' +``` + +## Target Information + +Targets define what tasks can be run on a project. + +```bash +# List all targets for a project +nx show project my-app --json | jq '.targets | keys' + +# Get full target configuration +nx show project my-app --json | jq '.targets.build' + +# Check target executor/command +nx show project my-app --json | jq '.targets.build.executor' +nx show project my-app --json | jq '.targets.build.command' + +# View target options +nx show project my-app --json | jq '.targets.build.options' + +# Check target inputs/outputs (for caching) +nx show project my-app --json | jq '.targets.build.inputs' +nx show project my-app --json | jq '.targets.build.outputs' + +# Find projects with a specific target +nx show projects --withTarget serve +nx show projects --withTarget e2e +``` + +## Workspace Configuration + +Read `nx.json` directly for workspace-level configuration. +You can read the full project schema at `node_modules/nx/schemas/nx-schema.json` to understand nx project configuration options. + +```bash +# Read the full nx.json +cat nx.json + +# Or use jq for specific sections +cat nx.json | jq '.targetDefaults' +cat nx.json | jq '.namedInputs' +cat nx.json | jq '.plugins' +cat nx.json | jq '.generators' +``` + +Key nx.json sections: + +- `targetDefaults` - Default configuration applied to all targets of a given name +- `namedInputs` - Reusable input definitions for caching +- `plugins` - Nx plugins and their configuration +- ...and much more, read the schema or nx.json for details + +## Affected Projects + +If the user is asking about affected projects, read the [affected projects reference](references/AFFECTED.md) for detailed commands and examples. + +## Common Exploration Patterns + +### "What's in this workspace?" + +```bash +nx show projects +nx show projects --type app +nx show projects --type lib +``` + +### "How do I build/test/lint project X?" + +```bash +nx show project X --json | jq '.targets | keys' +nx show project X --json | jq '.targets.build' +``` + +### "What depends on library Y?" + +```bash +# Use the project graph to find dependents +nx graph --print | jq '.graph.dependencies | to_entries[] | select(.value[].target == "Y") | .key' +``` + +## Programmatic Answers + +When processing nx CLI results, use command-line tools to compute the answer programmatically rather than counting or parsing output manually. Always use `--json` flags to get structured output that can be processed with `jq`, `grep`, or other tools you have installed locally. + +### Listing Projects + +```bash +nx show projects --json +``` + +Example output: + +```json +["my-app", "my-app-e2e", "shared-ui", "shared-utils", "api"] +``` + +Common operations: + +```bash +# Count projects +nx show projects --json | jq 'length' + +# Filter by pattern +nx show projects --json | jq '.[] | select(startswith("shared-"))' + +# Get affected projects as array +nx show projects --affected --json | jq '.' +``` + +### Project Details + +```bash +nx show project my-app --json +``` + +Example output: + +```json +{ + "root": "apps/my-app", + "name": "my-app", + "sourceRoot": "apps/my-app/src", + "projectType": "application", + "tags": ["type:app", "scope:client"], + "targets": { + "build": { + "executor": "@nx/vite:build", + "options": { "outputPath": "dist/apps/my-app" } + }, + "serve": { + "executor": "@nx/vite:dev-server", + "options": { "buildTarget": "my-app:build" } + }, + "test": { + "executor": "@nx/vite:test", + "options": {} + } + }, + "implicitDependencies": [] +} +``` + +Common operations: + +```bash +# Get target names +nx show project my-app --json | jq '.targets | keys' + +# Get specific target config +nx show project my-app --json | jq '.targets.build' + +# Get tags +nx show project my-app --json | jq '.tags' + +# Get project root +nx show project my-app --json | jq -r '.root' +``` + +### Project Graph + +```bash +nx graph --print +``` + +Example output: + +```json +{ + "graph": { + "nodes": { + "my-app": { + "name": "my-app", + "type": "app", + "data": { "root": "apps/my-app", "tags": ["type:app"] } + }, + "shared-ui": { + "name": "shared-ui", + "type": "lib", + "data": { "root": "libs/shared-ui", "tags": ["type:ui"] } + } + }, + "dependencies": { + "my-app": [ + { "source": "my-app", "target": "shared-ui", "type": "static" } + ], + "shared-ui": [] + } + } +} +``` + +Common operations: + +```bash +# Get all project names from graph +nx graph --print | jq '.graph.nodes | keys' + +# Find dependencies of a project +nx graph --print | jq '.graph.dependencies["my-app"]' + +# Find projects that depend on a library +nx graph --print | jq '.graph.dependencies | to_entries[] | select(.value[].target == "shared-ui") | .key' +``` + +## Troubleshooting + +### "Cannot find configuration for task X:target" + +```bash +# Check what targets exist on the project +nx show project X --json | jq '.targets | keys' + +# Check if any projects have that target +nx show projects --withTarget target +``` + +### "The workspace is out of sync" + +```bash +nx sync +nx reset # if sync doesn't fix stale cache +``` diff --git a/.github/skills/nx-workspace/references/AFFECTED.md b/.github/skills/nx-workspace/references/AFFECTED.md new file mode 100644 index 00000000..e30f18f6 --- /dev/null +++ b/.github/skills/nx-workspace/references/AFFECTED.md @@ -0,0 +1,27 @@ +## Affected Projects + +Find projects affected by changes in the current branch. + +```bash +# Affected since base branch (auto-detected) +nx show projects --affected + +# Affected with explicit base +nx show projects --affected --base=main +nx show projects --affected --base=origin/main + +# Affected between two commits +nx show projects --affected --base=abc123 --head=def456 + +# Affected apps only +nx show projects --affected --type app + +# Affected excluding e2e projects +nx show projects --affected --exclude="*-e2e" + +# Affected by uncommitted changes +nx show projects --affected --uncommitted + +# Affected by untracked files +nx show projects --affected --untracked +``` diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6689f80c..edada5cc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -27,7 +27,7 @@ jobs: # This line enables distribution # The "--stop-agents-after" is optional, but allows idle agents to shut down once the "e2e-ci" targets have been requested # - run: npx nx-cloud start-ci-run --distribute-on="3 linux-medium-js" --stop-agents-after="e2e-ci" - - run: bun install --frozen-lockfile + - run: bun install - uses: nrwl/nx-set-shas@v4 diff --git a/.vscode/mcp.json b/.vscode/mcp.json deleted file mode 100644 index 0a4b6fb8..00000000 --- a/.vscode/mcp.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "servers": { - "Docker Gateway": { - "command": "docker.exe", - "args": ["mcp", "gateway", "run"], - "type": "stdio" - } - } -} diff --git a/.windsurf/README.md b/.windsurf/README.md index 610afb0a..f0b59574 100644 --- a/.windsurf/README.md +++ b/.windsurf/README.md @@ -78,7 +78,6 @@ Behavior: ## Memory: Internal vs. Workspace-Committable - Internal Memory (AI-side): - - Stored in a persistent database. - Tracks user preferences, high-level decisions, and context. - Not committed to git. @@ -93,7 +92,6 @@ I prefer committable memory for team-wide standards and processes. ## Agent Behaviors You Can Rely On - I will: - - Consult `.windsurf/rules/` and follow applicable rules. - Use `.windsurf/workflows/` for well-defined procedures. - Keep `.windsurf/best-practices/` aligned with actual code changes. @@ -113,11 +111,9 @@ I prefer committable memory for team-wide standards and processes. ## FAQ - Q: How do I make you auto-run a step in a workflow? - - A: Add `// turbo` above that step. I’ll treat that step as safe to auto-run if it’s a terminal command. - Q: What’s the difference between a rule and a best practice? - - A: Rules are imperative (“must do” under a specific condition). Best practices are guidance that I aim to follow consistently. - Q: When should I create a workflow instead of a rule? diff --git a/.windsurf/workflows/adt/adt-adk.md b/.windsurf/workflows/adt/adt-adk.md index 9cf942bf..708c8556 100644 --- a/.windsurf/workflows/adt/adt-adk.md +++ b/.windsurf/workflows/adt/adt-adk.md @@ -26,48 +26,57 @@ implements: .agents/commands/adt/adk.md ## Quick Reference ### Step 1: Understand Object Type + - Research SAP documentation - Discover ADT endpoints via `/sap/bc/adt/discovery` - Document semantics, operations, relationships ### Step 2: Create Schema + **Invoke:** `/adt-schema ` ### Step 3: Create Contract + **Invoke:** `/adt-contract ` ### Step 4: Create Service (if needed) + - Location: `adt-client-v2/src/services/{area}/` - For complex multi-step operations ### Step 5: Implement ADK Model + - Location: `adk-v2/src/objects/{category}/{type}/` - Files: `{type}.model.ts`, `{type}.types.ts`, `index.ts` - Pattern: Extend `AdkObject`, implement lazy loading ### Step 6: Implement CLI Commands + **Invoke:** `/adt-command ` ### Step 7: Implement CLI Pages + **Invoke:** `/adt-page ` ### Step 8: Implement TUI Editor + - Location: `adt-tui/src/pages/{area}/` - Edit pages for modify operations ### Step 9: Add abapGit Support (repository objects) + - Location: `plugins/abapgit/src/objects/{type}/` - Serialization handler - File mapping ## Sub-Workflows -| Workflow | Purpose | -|----------|---------| -| `/adt-schema` | Create type-safe XML schema | -| `/adt-contract` | Create API contract | -| `/adt-command` | Create CLI commands | -| `/adt-page` | Create display pages | +| Workflow | Purpose | +| --------------- | --------------------------- | +| `/adt-schema` | Create type-safe XML schema | +| `/adt-contract` | Create API contract | +| `/adt-command` | Create CLI commands | +| `/adt-page` | Create display pages | ## Complete Workflow diff --git a/.windsurf/workflows/adt/adt-command.md b/.windsurf/workflows/adt/adt-command.md index 7d81011e..4cae144b 100644 --- a/.windsurf/workflows/adt/adt-command.md +++ b/.windsurf/workflows/adt/adt-command.md @@ -26,6 +26,7 @@ implements: .agents/commands/adt/command.md ``` **Example:** + ```typescript // ✅ PREFERRED - Use ADK const transport = await AdkTransportRequest.get(ctx, number); @@ -43,6 +44,7 @@ const data = await client.fetch('/sap/bc/adt/...'); ## Quick Reference ### Step 1: Create Command + Location: `adt-cli/src/lib/commands/{area}/{type}.ts` ```typescript @@ -55,6 +57,7 @@ const obj = await AdkMyObject.get(ctx, id); ``` ### Step 2: Export & Register + - Export from `commands/{area}/index.ts` - Register in `cli.ts` diff --git a/.windsurf/workflows/adt/adt-contract.md b/.windsurf/workflows/adt/adt-contract.md index 79723136..dd5e3e66 100644 --- a/.windsurf/workflows/adt/adt-contract.md +++ b/.windsurf/workflows/adt/adt-contract.md @@ -17,11 +17,13 @@ implements: .agents/commands/adt/contract.md ## Key Concepts ### Contracts = Type-Safe API Definitions + - Method, path, headers, query, body, responses - Use speci-compatible schemas for full type inference - Response types inferred from schema ### Testing Philosophy + - Tests validate definitions, not HTTP calls - No mocks needed - test contract objects directly - Type safety verified at compile time @@ -37,11 +39,13 @@ npx tsc --noEmit -p packages/adt-contracts # REQUIRED! ## Quick Reference ### Step 1: Identify Endpoint + ```bash npx adt discovery ``` ### Step 2: Create Contract + Location: `adt-contracts/src/adt/{area}/{resource}.ts` ```typescript @@ -49,20 +53,23 @@ import { contract } from '../../base'; import { mySchema } from '@abapify/adt-schemas-xsd'; export const myResource = { - get: (id: string) => contract({ - method: 'GET', - path: `/sap/bc/adt/{area}/${id}`, - headers: { Accept: 'application/xml' }, - responses: { 200: mySchema }, - }), + get: (id: string) => + contract({ + method: 'GET', + path: `/sap/bc/adt/{area}/${id}`, + headers: { Accept: 'application/xml' }, + responses: { 200: mySchema }, + }), }; ``` ### Step 3: Export + - Area index: `src/adt/{area}/index.ts` - Main index: `src/adt/index.ts` ### Step 4: Test Scenario (MANDATORY) + - Location: `tests/contracts/{area}.ts` - Use `ContractOperation[]` type - Tests must compile with `tsc --noEmit` diff --git a/.windsurf/workflows/adt/adt-page.md b/.windsurf/workflows/adt/adt-page.md index 22e7d56d..6465ac97 100644 --- a/.windsurf/workflows/adt/adt-page.md +++ b/.windsurf/workflows/adt/adt-page.md @@ -28,6 +28,7 @@ implements: .agents/commands/adt/page.md ## Quick Reference ### Step 1: Create Page + Location: `adt-cli/src/lib/ui/pages/{type}.ts` ```typescript @@ -42,14 +43,17 @@ export const myPageDef = definePage({ // ALWAYS prefer ADK for data fetching fetch: async (client, params) => { const ctx = createAdkContext(client); - return AdkMyObject.get(ctx, params.name); // ← ADK preferred + return AdkMyObject.get(ctx, params.name); // ← ADK preferred }, - render: (data, params) => { /* ... */ }, + render: (data, params) => { + /* ... */ + }, }); ``` ### Step 2: Export & Use + - Export from `ui/pages/index.ts` - Import in command to trigger registration diff --git a/.windsurf/workflows/adt/adt-schema.md b/.windsurf/workflows/adt/adt-schema.md index 7c3723ea..7195bb01 100644 --- a/.windsurf/workflows/adt/adt-schema.md +++ b/.windsurf/workflows/adt/adt-schema.md @@ -17,11 +17,13 @@ implements: .agents/commands/adt/schema.md ## Key Concepts ### ts-xsd = XSD in TypeScript + - Full type inference from schema definition - Round-trip: `parse(xml) → object` and `build(object) → xml` - Compile-time type safety ### speci = Schema Factory + - Adds `parse()` and `build()` methods - Requires `as const` for type inference - All ADT schemas must be speci-compatible @@ -29,12 +31,14 @@ implements: .agents/commands/adt/schema.md ## �� CRITICAL Rules ### Never Modify Generated Files + - Files in `src/schemas/generated/` are READ-ONLY - Fix the generator in `ts-xsd/src/codegen/` instead - **Requires user confirmation** before modifying ts-xsd - **Full ts-xsd test coverage required** ### Type Check is MANDATORY + ```bash npx nx test adt-schemas-xsd npx tsc --noEmit -p packages/adt-schemas-xsd # REQUIRED! @@ -43,23 +47,28 @@ npx tsc --noEmit -p packages/adt-schemas-xsd # REQUIRED! ## Quick Reference ### Step 1: Capture Sample XML + ```bash npx adt fetch /sap/bc/adt/{endpoint} --raw > sample.xml ``` ### Step 2: Determine Source + - **XSD exists?** → Generate - **Standard ADT XML?** → Manual schema - **ABAP XML (asx:abap)?** → ABAP XML schema ### Step 3: Create Schema + - Generated: Add to `tsxsd.config.ts`, run `npx nx run adt-schemas-xsd:generate` - Manual: Create in `src/schemas/manual/` with `as const` ### Step 4: Export + Add to `src/schemas/index.ts` ### Step 5: Test Scenario (MANDATORY) + - Location: `tests/scenarios/` - Use `SchemaType` for type safety - Tests must compile with `tsc --noEmit` diff --git a/AGENT.md b/AGENTS.md similarity index 95% rename from AGENT.md rename to AGENTS.md index b3fedabf..57648fd3 100644 --- a/AGENT.md +++ b/AGENTS.md @@ -1,4 +1,7 @@ -# AGENT.md + + + +# AGENTS.md ## Project Context & Goals @@ -115,8 +118,8 @@ this.handlers.set( new AdkObjectHandler( client, (xml) => ClassAdtAdapter.fromAdtXML(xml), - (name) => `/sap/bc/adt/oo/classes/${name.toLowerCase()}` - ) + (name) => `/sap/bc/adt/oo/classes/${name.toLowerCase()}`, + ), ); ``` @@ -163,3 +166,5 @@ this.handlers.set( 2. Run type check: `nx typecheck` 3. Test: `nx test [package-name]` 4. **Spec Validation**: Confirm implementation matches updated specifications + + diff --git a/README.md b/README.md index c0eb9968..7214e7ae 100644 --- a/README.md +++ b/README.md @@ -67,6 +67,7 @@ The architecture prioritizes **type safety** and **contract-first design**: 6. **adt-cli exposes** - User-friendly command-line interface **Benefits:** + - ✅ **Single source of truth** - XSD schemas define types once - ✅ **Full type safety** - TypeScript types flow from schema to CLI - ✅ **No manual type definitions** - Generated from official SAP schemas @@ -77,31 +78,31 @@ The architecture prioritizes **type safety** and **contract-first design**: ### Core Packages (Target Design) -| Package | Purpose | Status | -|---------|---------|--------| -| **[ts-xsd](./packages/ts-xsd)** | XSD → TypeScript schema generation | ✅ Active | -| **[speci](./packages/speci)** | Contract specification system | ✅ Active | -| **[adt-schemas-xsd](./packages/adt-schemas-xsd)** | SAP ADT schemas (generated from XSD) | ✅ Active | -| **[adt-contracts](./packages/adt-contracts)** | REST API contracts (speci + ts-xsd) | 🚧 Development | -| **[adt-client-v2](./packages/adt-client-v2)** | HTTP client using contracts | 🚧 Development | -| **[adt-cli](./packages/adt-cli)** | Command-line interface | ✅ Active | +| Package | Purpose | Status | +| ------------------------------------------------- | ------------------------------------ | -------------- | +| **[ts-xsd](./packages/ts-xsd)** | XSD → TypeScript schema generation | ✅ Active | +| **[speci](./packages/speci)** | Contract specification system | ✅ Active | +| **[adt-schemas-xsd](./packages/adt-schemas-xsd)** | SAP ADT schemas (generated from XSD) | ✅ Active | +| **[adt-contracts](./packages/adt-contracts)** | REST API contracts (speci + ts-xsd) | 🚧 Development | +| **[adt-client-v2](./packages/adt-client-v2)** | HTTP client using contracts | 🚧 Development | +| **[adt-cli](./packages/adt-cli)** | Command-line interface | ✅ Active | ### Supporting Packages -| Package | Purpose | Status | -|---------|---------|--------| -| **[adt-auth](./packages/adt-auth)** | Authentication (Basic, SLC, OAuth) | ✅ Active | -| **[adt-config](./packages/adt-config)** | Configuration loader | ✅ Active | -| **[browser-auth](./packages/browser-auth)** | Browser-based SSO | ✅ Active | -| **[adt-puppeteer](./packages/adt-puppeteer)** | Puppeteer SSO adapter | ✅ Active | -| **[adk](./packages/adk)** | ABAP Development Kit - object modeling | 🚧 Development | +| Package | Purpose | Status | +| --------------------------------------------- | -------------------------------------- | -------------- | +| **[adt-auth](./packages/adt-auth)** | Authentication (Basic, SLC, OAuth) | ✅ Active | +| **[adt-config](./packages/adt-config)** | Configuration loader | ✅ Active | +| **[browser-auth](./packages/browser-auth)** | Browser-based SSO | ✅ Active | +| **[adt-puppeteer](./packages/adt-puppeteer)** | Puppeteer SSO adapter | ✅ Active | +| **[adk](./packages/adk)** | ABAP Development Kit - object modeling | 🚧 Development | ### Legacy Packages (Subject to Deletion) -| Package | Replacement | Notes | -|---------|-------------|-------| +| Package | Replacement | Notes | +| --------------------------------------- | ------------- | ---------------------------------------- | | **[adt-client](./packages/adt-client)** | adt-client-v2 | Original client without contract support | -| **[ts-xml](./packages/ts-xml)** | ts-xsd | Earlier XML schema approach | +| **[ts-xml](./packages/ts-xml)** | ts-xsd | Earlier XML schema approach | > ⚠️ **Legacy packages** will be removed once migration to the new architecture is complete. @@ -245,7 +246,6 @@ import { Command } from 'commander'; ``` 3. **Make Changes** - - Write tests first (TDD approach) - Implement your changes - Ensure all tests pass: `npx nx test` @@ -288,6 +288,7 @@ MIT License - see [LICENSE](./LICENSE) for details. The combination of `ts-xsd` and `speci` provides a powerful contract specification system: **ts-xsd** converts XSD schemas to TypeScript: + ```typescript // Generated from SAP's official XSD const TransportSchema = { @@ -309,6 +310,7 @@ type Transport = InferXsd; ``` **speci** defines REST contracts: + ```typescript import { http } from 'speci/rest'; import { schemas } from 'adt-schemas-xsd'; @@ -326,6 +328,7 @@ const ctsContract = { ### Why Not Just Use fast-xml-parser? Traditional XML parsers force you into their data format: + ```typescript // fast-xml-parser output - awkward structure const data = { @@ -337,6 +340,7 @@ const data = { ``` With ts-xsd, you get clean domain objects: + ```typescript // ts-xsd output - clean TypeScript types const data: Transport = { diff --git a/adt.config.ts b/adt.config.ts index 9d03c4af..e9bf3683 100644 --- a/adt.config.ts +++ b/adt.config.ts @@ -1,8 +1,8 @@ /** * ADT Configuration for abapify root - * + * * This config enables CLI command plugins when running from abapify root. - * + * * NOTE: Contract generation config is now in packages/adt-contracts/adt.config.ts * Run: npx nx run adt-contracts:generate-contracts */ diff --git a/bun.lock b/bun.lock index 306cad0b..a106c66d 100644 --- a/bun.lock +++ b/bun.lock @@ -5,10 +5,7 @@ "": { "name": "abapify", "dependencies": { - "@cloudfoundry/api": "^0.1.7", "@nx/devkit": "22.1.1", - "@sap/cds-dk": "^8.4.0", - "@sap/xsenv": "^5.4.0", "@xmldom/xmldom": "^0.9.5", "axios": "^1.7.7", "dset": "^3.1.4", @@ -24,7 +21,6 @@ "zod": "^4.1.13", }, "devDependencies": { - "@cap-js/cds-types": "^0.7.0", "@eslint/js": "^9.8.0", "@nx/eslint": "22.1.1", "@nx/eslint-plugin": "22.1.1", @@ -62,12 +58,12 @@ "knip": "^5.71.0", "nx": "22.1.1", "pino-pretty": "^10.3.1", - "prettier": "^2.6.2", + "prettier": "^3.7.4", "rollup": "^4.14.0", "swc-loader": "0.1.15", "ts-jest": "29.4.1", "ts-node": "10.9.1", - "tsdown": "^0.16.7", + "tsdown": "^0.18.0", "tslib": "^2.3.0", "tsx": "^4.19.2", "typescript": "^5.9.3", @@ -82,6 +78,15 @@ "version": "0.0.1", "dependencies": { "@abapify/adt-client": "*", + "@abapify/adt-schemas": "*", + }, + }, + "packages/adt-atc": { + "name": "@abapify/adt-atc", + "version": "0.1.0", + "dependencies": { + "@abapify/adt-plugin": "workspace:*", + "chalk": "^5.3.0", }, }, "packages/adt-auth": { @@ -100,10 +105,14 @@ }, "dependencies": { "@abapify/adk": "*", + "@abapify/adt-atc": "*", "@abapify/adt-auth": "*", "@abapify/adt-client": "*", + "@abapify/adt-codegen": "*", "@abapify/adt-config": "*", "@abapify/adt-contracts": "*", + "@abapify/adt-export": "*", + "@abapify/adt-plugin": "*", "@abapify/adt-plugin-abapgit": "*", "@abapify/adt-tui": "*", "@abapify/logger": "*", @@ -128,6 +137,7 @@ "version": "0.0.1", "dependencies": { "@abapify/adt-contracts": "*", + "@abapify/adt-schemas": "*", "@abapify/logger": "*", }, }, @@ -135,9 +145,10 @@ "name": "@abapify/adt-codegen", "version": "0.1.0", "bin": { - "adt-codegen": "./dist/cli.js", + "adt-codegen": "./dist/cli.mjs", }, "dependencies": { + "@abapify/adt-plugin": "workspace:*", "chalk": "^5.3.0", "commander": "^11.1.0", "fast-xml-parser": "^4.3.2", @@ -158,6 +169,15 @@ "adt-fixtures": "*", }, }, + "packages/adt-export": { + "name": "@abapify/adt-export", + "version": "0.1.0", + "dependencies": { + "@abapify/adk": "workspace:*", + "@abapify/adt-plugin": "workspace:*", + "@abapify/adt-plugin-abapgit": "workspace:*", + }, + }, "packages/adt-fixtures": { "name": "adt-fixtures", "version": "0.0.1", @@ -166,6 +186,7 @@ "name": "@abapify/adt-playwright", "version": "0.0.1", "dependencies": { + "@abapify/adt-auth": "*", "@abapify/adt-config": "*", "@abapify/browser-auth": "*", "playwright": "^1.57.0", @@ -186,6 +207,7 @@ "version": "0.0.1", "dependencies": { "@abapify/adk": "*", + "@abapify/adt-atc": "workspace:*", "@abapify/adt-plugin": "*", "ts-xsd": "workspace:*", }, @@ -308,6 +330,8 @@ "packages": { "@abapify/adk": ["@abapify/adk@workspace:packages/adk"], + "@abapify/adt-atc": ["@abapify/adt-atc@workspace:packages/adt-atc"], + "@abapify/adt-auth": ["@abapify/adt-auth@workspace:packages/adt-auth"], "@abapify/adt-cli": ["@abapify/adt-cli@workspace:packages/adt-cli"], @@ -320,6 +344,8 @@ "@abapify/adt-contracts": ["@abapify/adt-contracts@workspace:packages/adt-contracts"], + "@abapify/adt-export": ["@abapify/adt-export@workspace:packages/adt-export"], + "@abapify/adt-playwright": ["@abapify/adt-playwright@workspace:packages/adt-playwright"], "@abapify/adt-plugin": ["@abapify/adt-plugin@workspace:packages/adt-plugin"], @@ -338,4318 +364,4330 @@ "@abapify/logger": ["@abapify/logger@workspace:packages/logger"], - "@alcalzone/ansi-tokenize": ["@alcalzone/ansi-tokenize@0.1.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@alcalzone/ansi-tokenize/-/ansi-tokenize-0.1.3.tgz", { "dependencies": { "ansi-styles": "^6.2.1", "is-fullwidth-code-point": "^4.0.0" } }, "sha512-3yWxPTq3UQ/FY9p1ErPxIyfT64elWaMvM9lIHnaqpyft63tkxodF5aUElYHrdisWve5cETkh1+KBw1yJuW0aRw=="], + "@alcalzone/ansi-tokenize": ["@alcalzone/ansi-tokenize@0.1.3", "", { "dependencies": { "ansi-styles": "^6.2.1", "is-fullwidth-code-point": "^4.0.0" } }, "sha512-3yWxPTq3UQ/FY9p1ErPxIyfT64elWaMvM9lIHnaqpyft63tkxodF5aUElYHrdisWve5cETkh1+KBw1yJuW0aRw=="], - "@ampproject/remapping": ["@ampproject/remapping@2.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@ampproject/remapping/-/remapping-2.3.0.tgz", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw=="], + "@ampproject/remapping": ["@ampproject/remapping@2.3.0", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw=="], - "@asamuzakjp/css-color": ["@asamuzakjp/css-color@3.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@asamuzakjp/css-color/-/css-color-3.2.0.tgz", { "dependencies": { "@csstools/css-calc": "^2.1.3", "@csstools/css-color-parser": "^3.0.9", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", "lru-cache": "^10.4.3" } }, "sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw=="], + "@asamuzakjp/css-color": ["@asamuzakjp/css-color@3.2.0", "", { "dependencies": { "@csstools/css-calc": "^2.1.3", "@csstools/css-color-parser": "^3.0.9", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", "lru-cache": "^10.4.3" } }, "sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw=="], - "@babel/code-frame": ["@babel/code-frame@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/code-frame/-/code-frame-7.27.1.tgz", { "dependencies": { "@babel/helper-validator-identifier": "^7.27.1", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg=="], + "@babel/code-frame": ["@babel/code-frame@7.29.0", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.28.5", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw=="], - "@babel/compat-data": ["@babel/compat-data@7.28.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/compat-data/-/compat-data-7.28.5.tgz", {}, "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA=="], + "@babel/compat-data": ["@babel/compat-data@7.29.0", "", {}, "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg=="], - "@babel/core": ["@babel/core@7.28.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/core/-/core-7.28.5.tgz", { "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.5", "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-module-transforms": "^7.28.3", "@babel/helpers": "^7.28.4", "@babel/parser": "^7.28.5", "@babel/template": "^7.27.2", "@babel/traverse": "^7.28.5", "@babel/types": "^7.28.5", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" } }, "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw=="], + "@babel/core": ["@babel/core@7.29.0", "", { "dependencies": { "@babel/code-frame": "^7.29.0", "@babel/generator": "^7.29.0", "@babel/helper-compilation-targets": "^7.28.6", "@babel/helper-module-transforms": "^7.28.6", "@babel/helpers": "^7.28.6", "@babel/parser": "^7.29.0", "@babel/template": "^7.28.6", "@babel/traverse": "^7.29.0", "@babel/types": "^7.29.0", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" } }, "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA=="], - "@babel/generator": ["@babel/generator@7.28.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/generator/-/generator-7.28.5.tgz", { "dependencies": { "@babel/parser": "^7.28.5", "@babel/types": "^7.28.5", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" } }, "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ=="], + "@babel/generator": ["@babel/generator@7.29.1", "", { "dependencies": { "@babel/parser": "^7.29.0", "@babel/types": "^7.29.0", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" } }, "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw=="], - "@babel/helper-annotate-as-pure": ["@babel/helper-annotate-as-pure@7.27.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", { "dependencies": { "@babel/types": "^7.27.3" } }, "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg=="], + "@babel/helper-annotate-as-pure": ["@babel/helper-annotate-as-pure@7.27.3", "", { "dependencies": { "@babel/types": "^7.27.3" } }, "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg=="], - "@babel/helper-compilation-targets": ["@babel/helper-compilation-targets@7.27.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", { "dependencies": { "@babel/compat-data": "^7.27.2", "@babel/helper-validator-option": "^7.27.1", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" } }, "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ=="], + "@babel/helper-compilation-targets": ["@babel/helper-compilation-targets@7.28.6", "", { "dependencies": { "@babel/compat-data": "^7.28.6", "@babel/helper-validator-option": "^7.27.1", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" } }, "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA=="], - "@babel/helper-create-class-features-plugin": ["@babel/helper-create-class-features-plugin@7.28.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.5.tgz", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", "@babel/helper-member-expression-to-functions": "^7.28.5", "@babel/helper-optimise-call-expression": "^7.27.1", "@babel/helper-replace-supers": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", "@babel/traverse": "^7.28.5", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ=="], + "@babel/helper-create-class-features-plugin": ["@babel/helper-create-class-features-plugin@7.28.6", "", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", "@babel/helper-member-expression-to-functions": "^7.28.5", "@babel/helper-optimise-call-expression": "^7.27.1", "@babel/helper-replace-supers": "^7.28.6", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", "@babel/traverse": "^7.28.6", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow=="], - "@babel/helper-create-regexp-features-plugin": ["@babel/helper-create-regexp-features-plugin@7.28.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", "regexpu-core": "^6.3.1", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw=="], + "@babel/helper-create-regexp-features-plugin": ["@babel/helper-create-regexp-features-plugin@7.28.5", "", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", "regexpu-core": "^6.3.1", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw=="], - "@babel/helper-define-polyfill-provider": ["@babel/helper-define-polyfill-provider@0.6.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz", { "dependencies": { "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-plugin-utils": "^7.27.1", "debug": "^4.4.1", "lodash.debounce": "^4.0.8", "resolve": "^1.22.10" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg=="], + "@babel/helper-define-polyfill-provider": ["@babel/helper-define-polyfill-provider@0.6.6", "", { "dependencies": { "@babel/helper-compilation-targets": "^7.28.6", "@babel/helper-plugin-utils": "^7.28.6", "debug": "^4.4.3", "lodash.debounce": "^4.0.8", "resolve": "^1.22.11" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "sha512-mOAsxeeKkUKayvZR3HeTYD/fICpCPLJrU5ZjelT/PA6WHtNDBOE436YiaEUvHN454bRM3CebhDsIpieCc4texA=="], - "@babel/helper-globals": ["@babel/helper-globals@7.28.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/helper-globals/-/helper-globals-7.28.0.tgz", {}, "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw=="], + "@babel/helper-globals": ["@babel/helper-globals@7.28.0", "", {}, "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw=="], - "@babel/helper-member-expression-to-functions": ["@babel/helper-member-expression-to-functions@7.28.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz", { "dependencies": { "@babel/traverse": "^7.28.5", "@babel/types": "^7.28.5" } }, "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg=="], + "@babel/helper-member-expression-to-functions": ["@babel/helper-member-expression-to-functions@7.28.5", "", { "dependencies": { "@babel/traverse": "^7.28.5", "@babel/types": "^7.28.5" } }, "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg=="], - "@babel/helper-module-imports": ["@babel/helper-module-imports@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", { "dependencies": { "@babel/traverse": "^7.27.1", "@babel/types": "^7.27.1" } }, "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w=="], + "@babel/helper-module-imports": ["@babel/helper-module-imports@7.28.6", "", { "dependencies": { "@babel/traverse": "^7.28.6", "@babel/types": "^7.28.6" } }, "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw=="], - "@babel/helper-module-transforms": ["@babel/helper-module-transforms@7.28.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", { "dependencies": { "@babel/helper-module-imports": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1", "@babel/traverse": "^7.28.3" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw=="], + "@babel/helper-module-transforms": ["@babel/helper-module-transforms@7.28.6", "", { "dependencies": { "@babel/helper-module-imports": "^7.28.6", "@babel/helper-validator-identifier": "^7.28.5", "@babel/traverse": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA=="], - "@babel/helper-optimise-call-expression": ["@babel/helper-optimise-call-expression@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", { "dependencies": { "@babel/types": "^7.27.1" } }, "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw=="], + "@babel/helper-optimise-call-expression": ["@babel/helper-optimise-call-expression@7.27.1", "", { "dependencies": { "@babel/types": "^7.27.1" } }, "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw=="], - "@babel/helper-plugin-utils": ["@babel/helper-plugin-utils@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", {}, "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw=="], + "@babel/helper-plugin-utils": ["@babel/helper-plugin-utils@7.28.6", "", {}, "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug=="], - "@babel/helper-remap-async-to-generator": ["@babel/helper-remap-async-to-generator@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.1", "@babel/helper-wrap-function": "^7.27.1", "@babel/traverse": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA=="], + "@babel/helper-remap-async-to-generator": ["@babel/helper-remap-async-to-generator@7.27.1", "", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.1", "@babel/helper-wrap-function": "^7.27.1", "@babel/traverse": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA=="], - "@babel/helper-replace-supers": ["@babel/helper-replace-supers@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", { "dependencies": { "@babel/helper-member-expression-to-functions": "^7.27.1", "@babel/helper-optimise-call-expression": "^7.27.1", "@babel/traverse": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA=="], + "@babel/helper-replace-supers": ["@babel/helper-replace-supers@7.28.6", "", { "dependencies": { "@babel/helper-member-expression-to-functions": "^7.28.5", "@babel/helper-optimise-call-expression": "^7.27.1", "@babel/traverse": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg=="], - "@babel/helper-skip-transparent-expression-wrappers": ["@babel/helper-skip-transparent-expression-wrappers@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", { "dependencies": { "@babel/traverse": "^7.27.1", "@babel/types": "^7.27.1" } }, "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg=="], + "@babel/helper-skip-transparent-expression-wrappers": ["@babel/helper-skip-transparent-expression-wrappers@7.27.1", "", { "dependencies": { "@babel/traverse": "^7.27.1", "@babel/types": "^7.27.1" } }, "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg=="], - "@babel/helper-string-parser": ["@babel/helper-string-parser@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", {}, "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA=="], + "@babel/helper-string-parser": ["@babel/helper-string-parser@7.27.1", "", {}, "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA=="], - "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.28.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", {}, "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q=="], + "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.28.5", "", {}, "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q=="], - "@babel/helper-validator-option": ["@babel/helper-validator-option@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", {}, "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg=="], + "@babel/helper-validator-option": ["@babel/helper-validator-option@7.27.1", "", {}, "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg=="], - "@babel/helper-wrap-function": ["@babel/helper-wrap-function@7.28.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/helper-wrap-function/-/helper-wrap-function-7.28.3.tgz", { "dependencies": { "@babel/template": "^7.27.2", "@babel/traverse": "^7.28.3", "@babel/types": "^7.28.2" } }, "sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g=="], + "@babel/helper-wrap-function": ["@babel/helper-wrap-function@7.28.6", "", { "dependencies": { "@babel/template": "^7.28.6", "@babel/traverse": "^7.28.6", "@babel/types": "^7.28.6" } }, "sha512-z+PwLziMNBeSQJonizz2AGnndLsP2DeGHIxDAn+wdHOGuo4Fo1x1HBPPXeE9TAOPHNNWQKCSlA2VZyYyyibDnQ=="], - "@babel/helpers": ["@babel/helpers@7.28.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/helpers/-/helpers-7.28.4.tgz", { "dependencies": { "@babel/template": "^7.27.2", "@babel/types": "^7.28.4" } }, "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w=="], + "@babel/helpers": ["@babel/helpers@7.28.6", "", { "dependencies": { "@babel/template": "^7.28.6", "@babel/types": "^7.28.6" } }, "sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw=="], - "@babel/parser": ["@babel/parser@7.28.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/parser/-/parser-7.28.5.tgz", { "dependencies": { "@babel/types": "^7.28.5" }, "bin": "./bin/babel-parser.js" }, "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ=="], + "@babel/parser": ["@babel/parser@7.29.0", "", { "dependencies": { "@babel/types": "^7.29.0" }, "bin": "./bin/babel-parser.js" }, "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww=="], - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": ["@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.28.5.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/traverse": "^7.28.5" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q=="], + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": ["@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/traverse": "^7.28.5" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q=="], - "@babel/plugin-bugfix-safari-class-field-initializer-scope": ["@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA=="], + "@babel/plugin-bugfix-safari-class-field-initializer-scope": ["@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA=="], - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ["@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA=="], + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ["@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA=="], - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ["@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", "@babel/plugin-transform-optional-chaining": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.13.0" } }, "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw=="], + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ["@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", "@babel/plugin-transform-optional-chaining": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.13.0" } }, "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw=="], - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": ["@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.3.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/traverse": "^7.28.3" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw=="], + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": ["@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.6", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.28.6", "@babel/traverse": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-a0aBScVTlNaiUe35UtfxAN7A/tehvvG4/ByO6+46VPKTRSlfnAFsgKy0FUh+qAkQrDTmhDkT+IBOKlOoMUxQ0g=="], - "@babel/plugin-proposal-decorators": ["@babel/plugin-proposal-decorators@7.28.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.28.0.tgz", { "dependencies": { "@babel/helper-create-class-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1", "@babel/plugin-syntax-decorators": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-zOiZqvANjWDUaUS9xMxbMcK/Zccztbe/6ikvUXaG9nsPH3w6qh5UaPGAnirI/WhIbZ8m3OHU0ReyPrknG+ZKeg=="], + "@babel/plugin-proposal-decorators": ["@babel/plugin-proposal-decorators@7.29.0", "", { "dependencies": { "@babel/helper-create-class-features-plugin": "^7.28.6", "@babel/helper-plugin-utils": "^7.28.6", "@babel/plugin-syntax-decorators": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-CVBVv3VY/XRMxRYq5dwr2DS7/MvqPm23cOCjbwNnVrfOqcWlnefua1uUs0sjdKOGjvPUG633o07uWzJq4oI6dA=="], - "@babel/plugin-proposal-private-property-in-object": ["@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", { "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w=="], + "@babel/plugin-proposal-private-property-in-object": ["@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2", "", { "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w=="], - "@babel/plugin-syntax-async-generators": ["@babel/plugin-syntax-async-generators@7.8.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw=="], + "@babel/plugin-syntax-async-generators": ["@babel/plugin-syntax-async-generators@7.8.4", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw=="], - "@babel/plugin-syntax-bigint": ["@babel/plugin-syntax-bigint@7.8.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg=="], + "@babel/plugin-syntax-bigint": ["@babel/plugin-syntax-bigint@7.8.3", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg=="], - "@babel/plugin-syntax-class-properties": ["@babel/plugin-syntax-class-properties@7.12.13", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA=="], + "@babel/plugin-syntax-class-properties": ["@babel/plugin-syntax-class-properties@7.12.13", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA=="], - "@babel/plugin-syntax-class-static-block": ["@babel/plugin-syntax-class-static-block@7.14.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw=="], + "@babel/plugin-syntax-class-static-block": ["@babel/plugin-syntax-class-static-block@7.14.5", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw=="], - "@babel/plugin-syntax-decorators": ["@babel/plugin-syntax-decorators@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-YMq8Z87Lhl8EGkmb0MwYkt36QnxC+fzCgrl66ereamPlYToRpIk5nUjKUY3QKLWq8mwUB1BgbeXcTJhZOCDg5A=="], + "@babel/plugin-syntax-decorators": ["@babel/plugin-syntax-decorators@7.28.6", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-71EYI0ONURHJBL4rSFXnITXqXrrY8q4P0q006DPfN+Rk+ASM+++IBXem/ruokgBZR8YNEWZ8R6B+rCb8VcUTqA=="], - "@babel/plugin-syntax-import-assertions": ["@babel/plugin-syntax-import-assertions@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg=="], + "@babel/plugin-syntax-import-assertions": ["@babel/plugin-syntax-import-assertions@7.28.6", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-pSJUpFHdx9z5nqTSirOCMtYVP2wFgoWhP0p3g8ONK/4IHhLIBd0B9NYqAvIUAhq+OkhO4VM1tENCt0cjlsNShw=="], - "@babel/plugin-syntax-import-attributes": ["@babel/plugin-syntax-import-attributes@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww=="], + "@babel/plugin-syntax-import-attributes": ["@babel/plugin-syntax-import-attributes@7.28.6", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw=="], - "@babel/plugin-syntax-import-meta": ["@babel/plugin-syntax-import-meta@7.10.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g=="], + "@babel/plugin-syntax-import-meta": ["@babel/plugin-syntax-import-meta@7.10.4", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g=="], - "@babel/plugin-syntax-json-strings": ["@babel/plugin-syntax-json-strings@7.8.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA=="], + "@babel/plugin-syntax-json-strings": ["@babel/plugin-syntax-json-strings@7.8.3", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA=="], - "@babel/plugin-syntax-jsx": ["@babel/plugin-syntax-jsx@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w=="], + "@babel/plugin-syntax-jsx": ["@babel/plugin-syntax-jsx@7.28.6", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w=="], - "@babel/plugin-syntax-logical-assignment-operators": ["@babel/plugin-syntax-logical-assignment-operators@7.10.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig=="], + "@babel/plugin-syntax-logical-assignment-operators": ["@babel/plugin-syntax-logical-assignment-operators@7.10.4", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig=="], - "@babel/plugin-syntax-nullish-coalescing-operator": ["@babel/plugin-syntax-nullish-coalescing-operator@7.8.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ=="], + "@babel/plugin-syntax-nullish-coalescing-operator": ["@babel/plugin-syntax-nullish-coalescing-operator@7.8.3", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ=="], - "@babel/plugin-syntax-numeric-separator": ["@babel/plugin-syntax-numeric-separator@7.10.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug=="], + "@babel/plugin-syntax-numeric-separator": ["@babel/plugin-syntax-numeric-separator@7.10.4", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug=="], - "@babel/plugin-syntax-object-rest-spread": ["@babel/plugin-syntax-object-rest-spread@7.8.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA=="], + "@babel/plugin-syntax-object-rest-spread": ["@babel/plugin-syntax-object-rest-spread@7.8.3", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA=="], - "@babel/plugin-syntax-optional-catch-binding": ["@babel/plugin-syntax-optional-catch-binding@7.8.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q=="], + "@babel/plugin-syntax-optional-catch-binding": ["@babel/plugin-syntax-optional-catch-binding@7.8.3", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q=="], - "@babel/plugin-syntax-optional-chaining": ["@babel/plugin-syntax-optional-chaining@7.8.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg=="], + "@babel/plugin-syntax-optional-chaining": ["@babel/plugin-syntax-optional-chaining@7.8.3", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg=="], - "@babel/plugin-syntax-private-property-in-object": ["@babel/plugin-syntax-private-property-in-object@7.14.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg=="], + "@babel/plugin-syntax-private-property-in-object": ["@babel/plugin-syntax-private-property-in-object@7.14.5", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg=="], - "@babel/plugin-syntax-top-level-await": ["@babel/plugin-syntax-top-level-await@7.14.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw=="], + "@babel/plugin-syntax-top-level-await": ["@babel/plugin-syntax-top-level-await@7.14.5", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw=="], - "@babel/plugin-syntax-typescript": ["@babel/plugin-syntax-typescript@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ=="], + "@babel/plugin-syntax-typescript": ["@babel/plugin-syntax-typescript@7.28.6", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A=="], - "@babel/plugin-syntax-unicode-sets-regex": ["@babel/plugin-syntax-unicode-sets-regex@7.18.6", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", { "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg=="], + "@babel/plugin-syntax-unicode-sets-regex": ["@babel/plugin-syntax-unicode-sets-regex@7.18.6", "", { "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg=="], - "@babel/plugin-transform-arrow-functions": ["@babel/plugin-transform-arrow-functions@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA=="], + "@babel/plugin-transform-arrow-functions": ["@babel/plugin-transform-arrow-functions@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA=="], - "@babel/plugin-transform-async-generator-functions": ["@babel/plugin-transform-async-generator-functions@7.28.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.0.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-remap-async-to-generator": "^7.27.1", "@babel/traverse": "^7.28.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q=="], + "@babel/plugin-transform-async-generator-functions": ["@babel/plugin-transform-async-generator-functions@7.29.0", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.28.6", "@babel/helper-remap-async-to-generator": "^7.27.1", "@babel/traverse": "^7.29.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-va0VdWro4zlBr2JsXC+ofCPB2iG12wPtVGTWFx2WLDOM3nYQZZIGP82qku2eW/JR83sD+k2k+CsNtyEbUqhU6w=="], - "@babel/plugin-transform-async-to-generator": ["@babel/plugin-transform-async-to-generator@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz", { "dependencies": { "@babel/helper-module-imports": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-remap-async-to-generator": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA=="], + "@babel/plugin-transform-async-to-generator": ["@babel/plugin-transform-async-to-generator@7.28.6", "", { "dependencies": { "@babel/helper-module-imports": "^7.28.6", "@babel/helper-plugin-utils": "^7.28.6", "@babel/helper-remap-async-to-generator": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-ilTRcmbuXjsMmcZ3HASTe4caH5Tpo93PkTxF9oG2VZsSWsahydmcEHhix9Ik122RcTnZnUzPbmux4wh1swfv7g=="], - "@babel/plugin-transform-block-scoped-functions": ["@babel/plugin-transform-block-scoped-functions@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg=="], + "@babel/plugin-transform-block-scoped-functions": ["@babel/plugin-transform-block-scoped-functions@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg=="], - "@babel/plugin-transform-block-scoping": ["@babel/plugin-transform-block-scoping@7.28.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.5.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-45DmULpySVvmq9Pj3X9B+62Xe+DJGov27QravQJU1LLcapR6/10i+gYVAucGGJpHBp5mYxIMK4nDAT/QDLr47g=="], + "@babel/plugin-transform-block-scoping": ["@babel/plugin-transform-block-scoping@7.28.6", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-tt/7wOtBmwHPNMPu7ax4pdPz6shjFrmHDghvNC+FG9Qvj7D6mJcoRQIF5dy4njmxR941l6rgtvfSB2zX3VlUIw=="], - "@babel/plugin-transform-class-properties": ["@babel/plugin-transform-class-properties@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz", { "dependencies": { "@babel/helper-create-class-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA=="], + "@babel/plugin-transform-class-properties": ["@babel/plugin-transform-class-properties@7.28.6", "", { "dependencies": { "@babel/helper-create-class-features-plugin": "^7.28.6", "@babel/helper-plugin-utils": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-dY2wS3I2G7D697VHndN91TJr8/AAfXQNt5ynCTI/MpxMsSzHp+52uNivYT5wCPax3whc47DR8Ba7cmlQMg24bw=="], - "@babel/plugin-transform-class-static-block": ["@babel/plugin-transform-class-static-block@7.28.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.3.tgz", { "dependencies": { "@babel/helper-create-class-features-plugin": "^7.28.3", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.12.0" } }, "sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg=="], + "@babel/plugin-transform-class-static-block": ["@babel/plugin-transform-class-static-block@7.28.6", "", { "dependencies": { "@babel/helper-create-class-features-plugin": "^7.28.6", "@babel/helper-plugin-utils": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.12.0" } }, "sha512-rfQ++ghVwTWTqQ7w8qyDxL1XGihjBss4CmTgGRCTAC9RIbhVpyp4fOeZtta0Lbf+dTNIVJer6ych2ibHwkZqsQ=="], - "@babel/plugin-transform-classes": ["@babel/plugin-transform-classes@7.28.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.4.tgz", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-globals": "^7.28.0", "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-replace-supers": "^7.27.1", "@babel/traverse": "^7.28.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA=="], + "@babel/plugin-transform-classes": ["@babel/plugin-transform-classes@7.28.6", "", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", "@babel/helper-compilation-targets": "^7.28.6", "@babel/helper-globals": "^7.28.0", "@babel/helper-plugin-utils": "^7.28.6", "@babel/helper-replace-supers": "^7.28.6", "@babel/traverse": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-EF5KONAqC5zAqT783iMGuM2ZtmEBy+mJMOKl2BCvPZ2lVrwvXnB6o+OBWCS+CoeCCpVRF2sA2RBKUxvT8tQT5Q=="], - "@babel/plugin-transform-computed-properties": ["@babel/plugin-transform-computed-properties@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/template": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw=="], + "@babel/plugin-transform-computed-properties": ["@babel/plugin-transform-computed-properties@7.28.6", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.28.6", "@babel/template": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-bcc3k0ijhHbc2lEfpFHgx7eYw9KNXqOerKWfzbxEHUGKnS3sz9C4CNL9OiFN1297bDNfUiSO7DaLzbvHQQQ1BQ=="], - "@babel/plugin-transform-destructuring": ["@babel/plugin-transform-destructuring@7.28.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/traverse": "^7.28.5" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw=="], + "@babel/plugin-transform-destructuring": ["@babel/plugin-transform-destructuring@7.28.5", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/traverse": "^7.28.5" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw=="], - "@babel/plugin-transform-dotall-regex": ["@babel/plugin-transform-dotall-regex@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz", { "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw=="], + "@babel/plugin-transform-dotall-regex": ["@babel/plugin-transform-dotall-regex@7.28.6", "", { "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.28.5", "@babel/helper-plugin-utils": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-SljjowuNKB7q5Oayv4FoPzeB74g3QgLt8IVJw9ADvWy3QnUb/01aw8I4AVv8wYnPvQz2GDDZ/g3GhcNyDBI4Bg=="], - "@babel/plugin-transform-duplicate-keys": ["@babel/plugin-transform-duplicate-keys@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q=="], + "@babel/plugin-transform-duplicate-keys": ["@babel/plugin-transform-duplicate-keys@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q=="], - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": ["@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz", { "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ=="], + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": ["@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.0", "", { "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.28.5", "@babel/helper-plugin-utils": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-zBPcW2lFGxdiD8PUnPwJjag2J9otbcLQzvbiOzDxpYXyCuYX9agOwMPGn1prVH0a4qzhCKu24rlH4c1f7yA8rw=="], - "@babel/plugin-transform-dynamic-import": ["@babel/plugin-transform-dynamic-import@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A=="], + "@babel/plugin-transform-dynamic-import": ["@babel/plugin-transform-dynamic-import@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A=="], - "@babel/plugin-transform-explicit-resource-management": ["@babel/plugin-transform-explicit-resource-management@7.28.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.0.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/plugin-transform-destructuring": "^7.28.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-K8nhUcn3f6iB+P3gwCv/no7OdzOZQcKchW6N389V6PD8NUWKZHzndOd9sPDVbMoBsbmjMqlB4L9fm+fEFNVlwQ=="], + "@babel/plugin-transform-explicit-resource-management": ["@babel/plugin-transform-explicit-resource-management@7.28.6", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.28.6", "@babel/plugin-transform-destructuring": "^7.28.5" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-Iao5Konzx2b6g7EPqTy40UZbcdXE126tTxVFr/nAIj+WItNxjKSYTEw3RC+A2/ZetmdJsgueL1KhaMCQHkLPIg=="], - "@babel/plugin-transform-exponentiation-operator": ["@babel/plugin-transform-exponentiation-operator@7.28.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.28.5.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-D4WIMaFtwa2NizOp+dnoFjRez/ClKiC2BqqImwKd1X28nqBtZEyCYJ2ozQrrzlxAFrcrjxo39S6khe9RNDlGzw=="], + "@babel/plugin-transform-exponentiation-operator": ["@babel/plugin-transform-exponentiation-operator@7.28.6", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-WitabqiGjV/vJ0aPOLSFfNY1u9U3R7W36B03r5I2KoNix+a3sOhJ3pKFB3R5It9/UiK78NiO0KE9P21cMhlPkw=="], - "@babel/plugin-transform-export-namespace-from": ["@babel/plugin-transform-export-namespace-from@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ=="], + "@babel/plugin-transform-export-namespace-from": ["@babel/plugin-transform-export-namespace-from@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ=="], - "@babel/plugin-transform-for-of": ["@babel/plugin-transform-for-of@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw=="], + "@babel/plugin-transform-for-of": ["@babel/plugin-transform-for-of@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw=="], - "@babel/plugin-transform-function-name": ["@babel/plugin-transform-function-name@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", { "dependencies": { "@babel/helper-compilation-targets": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1", "@babel/traverse": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ=="], + "@babel/plugin-transform-function-name": ["@babel/plugin-transform-function-name@7.27.1", "", { "dependencies": { "@babel/helper-compilation-targets": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1", "@babel/traverse": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ=="], - "@babel/plugin-transform-json-strings": ["@babel/plugin-transform-json-strings@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q=="], + "@babel/plugin-transform-json-strings": ["@babel/plugin-transform-json-strings@7.28.6", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-Nr+hEN+0geQkzhbdgQVPoqr47lZbm+5fCUmO70722xJZd0Mvb59+33QLImGj6F+DkK3xgDi1YVysP8whD6FQAw=="], - "@babel/plugin-transform-literals": ["@babel/plugin-transform-literals@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA=="], + "@babel/plugin-transform-literals": ["@babel/plugin-transform-literals@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA=="], - "@babel/plugin-transform-logical-assignment-operators": ["@babel/plugin-transform-logical-assignment-operators@7.28.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.28.5.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-axUuqnUTBuXyHGcJEVVh9pORaN6wC5bYfE7FGzPiaWa3syib9m7g+/IT/4VgCOe2Upef43PHzeAvcrVek6QuuA=="], + "@babel/plugin-transform-logical-assignment-operators": ["@babel/plugin-transform-logical-assignment-operators@7.28.6", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-+anKKair6gpi8VsM/95kmomGNMD0eLz1NQ8+Pfw5sAwWH9fGYXT50E55ZpV0pHUHWf6IUTWPM+f/7AAff+wr9A=="], - "@babel/plugin-transform-member-expression-literals": ["@babel/plugin-transform-member-expression-literals@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ=="], + "@babel/plugin-transform-member-expression-literals": ["@babel/plugin-transform-member-expression-literals@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ=="], - "@babel/plugin-transform-modules-amd": ["@babel/plugin-transform-modules-amd@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz", { "dependencies": { "@babel/helper-module-transforms": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA=="], + "@babel/plugin-transform-modules-amd": ["@babel/plugin-transform-modules-amd@7.27.1", "", { "dependencies": { "@babel/helper-module-transforms": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA=="], - "@babel/plugin-transform-modules-commonjs": ["@babel/plugin-transform-modules-commonjs@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz", { "dependencies": { "@babel/helper-module-transforms": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw=="], + "@babel/plugin-transform-modules-commonjs": ["@babel/plugin-transform-modules-commonjs@7.28.6", "", { "dependencies": { "@babel/helper-module-transforms": "^7.28.6", "@babel/helper-plugin-utils": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA=="], - "@babel/plugin-transform-modules-systemjs": ["@babel/plugin-transform-modules-systemjs@7.28.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.28.5.tgz", { "dependencies": { "@babel/helper-module-transforms": "^7.28.3", "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-validator-identifier": "^7.28.5", "@babel/traverse": "^7.28.5" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-vn5Jma98LCOeBy/KpeQhXcV2WZgaRUtjwQmjoBuLNlOmkg0fB5pdvYVeWRYI69wWKwK2cD1QbMiUQnoujWvrew=="], + "@babel/plugin-transform-modules-systemjs": ["@babel/plugin-transform-modules-systemjs@7.29.0", "", { "dependencies": { "@babel/helper-module-transforms": "^7.28.6", "@babel/helper-plugin-utils": "^7.28.6", "@babel/helper-validator-identifier": "^7.28.5", "@babel/traverse": "^7.29.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-PrujnVFbOdUpw4UHiVwKvKRLMMic8+eC0CuNlxjsyZUiBjhFdPsewdXCkveh2KqBA9/waD0W1b4hXSOBQJezpQ=="], - "@babel/plugin-transform-modules-umd": ["@babel/plugin-transform-modules-umd@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz", { "dependencies": { "@babel/helper-module-transforms": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w=="], + "@babel/plugin-transform-modules-umd": ["@babel/plugin-transform-modules-umd@7.27.1", "", { "dependencies": { "@babel/helper-module-transforms": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w=="], - "@babel/plugin-transform-named-capturing-groups-regex": ["@babel/plugin-transform-named-capturing-groups-regex@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz", { "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng=="], + "@babel/plugin-transform-named-capturing-groups-regex": ["@babel/plugin-transform-named-capturing-groups-regex@7.29.0", "", { "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.28.5", "@babel/helper-plugin-utils": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-1CZQA5KNAD6ZYQLPw7oi5ewtDNxH/2vuCh+6SmvgDfhumForvs8a1o9n0UrEoBD8HU4djO2yWngTQlXl1NDVEQ=="], - "@babel/plugin-transform-new-target": ["@babel/plugin-transform-new-target@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ=="], + "@babel/plugin-transform-new-target": ["@babel/plugin-transform-new-target@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ=="], - "@babel/plugin-transform-nullish-coalescing-operator": ["@babel/plugin-transform-nullish-coalescing-operator@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA=="], + "@babel/plugin-transform-nullish-coalescing-operator": ["@babel/plugin-transform-nullish-coalescing-operator@7.28.6", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-3wKbRgmzYbw24mDJXT7N+ADXw8BC/imU9yo9c9X9NKaLF1fW+e5H1U5QjMUBe4Qo4Ox/o++IyUkl1sVCLgevKg=="], - "@babel/plugin-transform-numeric-separator": ["@babel/plugin-transform-numeric-separator@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw=="], + "@babel/plugin-transform-numeric-separator": ["@babel/plugin-transform-numeric-separator@7.28.6", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-SJR8hPynj8outz+SlStQSwvziMN4+Bq99it4tMIf5/Caq+3iOc0JtKyse8puvyXkk3eFRIA5ID/XfunGgO5i6w=="], - "@babel/plugin-transform-object-rest-spread": ["@babel/plugin-transform-object-rest-spread@7.28.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.4.tgz", { "dependencies": { "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-plugin-utils": "^7.27.1", "@babel/plugin-transform-destructuring": "^7.28.0", "@babel/plugin-transform-parameters": "^7.27.7", "@babel/traverse": "^7.28.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-373KA2HQzKhQCYiRVIRr+3MjpCObqzDlyrM6u4I201wL8Mp2wHf7uB8GhDwis03k2ti8Zr65Zyyqs1xOxUF/Ew=="], + "@babel/plugin-transform-object-rest-spread": ["@babel/plugin-transform-object-rest-spread@7.28.6", "", { "dependencies": { "@babel/helper-compilation-targets": "^7.28.6", "@babel/helper-plugin-utils": "^7.28.6", "@babel/plugin-transform-destructuring": "^7.28.5", "@babel/plugin-transform-parameters": "^7.27.7", "@babel/traverse": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-5rh+JR4JBC4pGkXLAcYdLHZjXudVxWMXbB6u6+E9lRL5TrGVbHt1TjxGbZ8CkmYw9zjkB7jutzOROArsqtncEA=="], - "@babel/plugin-transform-object-super": ["@babel/plugin-transform-object-super@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-replace-supers": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng=="], + "@babel/plugin-transform-object-super": ["@babel/plugin-transform-object-super@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-replace-supers": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng=="], - "@babel/plugin-transform-optional-catch-binding": ["@babel/plugin-transform-optional-catch-binding@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q=="], + "@babel/plugin-transform-optional-catch-binding": ["@babel/plugin-transform-optional-catch-binding@7.28.6", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-R8ja/Pyrv0OGAvAXQhSTmWyPJPml+0TMqXlO5w+AsMEiwb2fg3WkOvob7UxFSL3OIttFSGSRFKQsOhJ/X6HQdQ=="], - "@babel/plugin-transform-optional-chaining": ["@babel/plugin-transform-optional-chaining@7.28.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.5.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-N6fut9IZlPnjPwgiQkXNhb+cT8wQKFlJNqcZkWlcTqkcqx6/kU4ynGmLFoa4LViBSirn05YAwk+sQBbPfxtYzQ=="], + "@babel/plugin-transform-optional-chaining": ["@babel/plugin-transform-optional-chaining@7.28.6", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.28.6", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-A4zobikRGJTsX9uqVFdafzGkqD30t26ck2LmOzAuLL8b2x6k3TIqRiT2xVvA9fNmFeTX484VpsdgmKNA0bS23w=="], - "@babel/plugin-transform-parameters": ["@babel/plugin-transform-parameters@7.27.7", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg=="], + "@babel/plugin-transform-parameters": ["@babel/plugin-transform-parameters@7.27.7", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg=="], - "@babel/plugin-transform-private-methods": ["@babel/plugin-transform-private-methods@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz", { "dependencies": { "@babel/helper-create-class-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA=="], + "@babel/plugin-transform-private-methods": ["@babel/plugin-transform-private-methods@7.28.6", "", { "dependencies": { "@babel/helper-create-class-features-plugin": "^7.28.6", "@babel/helper-plugin-utils": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-piiuapX9CRv7+0st8lmuUlRSmX6mBcVeNQ1b4AYzJxfCMuBfB0vBXDiGSmm03pKJw1v6cZ8KSeM+oUnM6yAExg=="], - "@babel/plugin-transform-private-property-in-object": ["@babel/plugin-transform-private-property-in-object@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.1", "@babel/helper-create-class-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ=="], + "@babel/plugin-transform-private-property-in-object": ["@babel/plugin-transform-private-property-in-object@7.28.6", "", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", "@babel/helper-create-class-features-plugin": "^7.28.6", "@babel/helper-plugin-utils": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-b97jvNSOb5+ehyQmBpmhOCiUC5oVK4PMnpRvO7+ymFBoqYjeDHIU9jnrNUuwHOiL9RpGDoKBpSViarV+BU+eVA=="], - "@babel/plugin-transform-property-literals": ["@babel/plugin-transform-property-literals@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ=="], + "@babel/plugin-transform-property-literals": ["@babel/plugin-transform-property-literals@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ=="], - "@babel/plugin-transform-regenerator": ["@babel/plugin-transform-regenerator@7.28.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.4.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-+ZEdQlBoRg9m2NnzvEeLgtvBMO4tkFBw5SQIUgLICgTrumLoU7lr+Oghi6km2PFj+dbUt2u1oby2w3BDO9YQnA=="], + "@babel/plugin-transform-regenerator": ["@babel/plugin-transform-regenerator@7.29.0", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-FijqlqMA7DmRdg/aINBSs04y8XNTYw/lr1gJ2WsmBnnaNw1iS43EPkJW+zK7z65auG3AWRFXWj+NcTQwYptUog=="], - "@babel/plugin-transform-regexp-modifiers": ["@babel/plugin-transform-regexp-modifiers@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz", { "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA=="], + "@babel/plugin-transform-regexp-modifiers": ["@babel/plugin-transform-regexp-modifiers@7.28.6", "", { "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.28.5", "@babel/helper-plugin-utils": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-QGWAepm9qxpaIs7UM9FvUSnCGlb8Ua1RhyM4/veAxLwt3gMat/LSGrZixyuj4I6+Kn9iwvqCyPTtbdxanYoWYg=="], - "@babel/plugin-transform-reserved-words": ["@babel/plugin-transform-reserved-words@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw=="], + "@babel/plugin-transform-reserved-words": ["@babel/plugin-transform-reserved-words@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw=="], - "@babel/plugin-transform-runtime": ["@babel/plugin-transform-runtime@7.28.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.28.5.tgz", { "dependencies": { "@babel/helper-module-imports": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1", "babel-plugin-polyfill-corejs2": "^0.4.14", "babel-plugin-polyfill-corejs3": "^0.13.0", "babel-plugin-polyfill-regenerator": "^0.6.5", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-20NUVgOrinudkIBzQ2bNxP08YpKprUkRTiRSd2/Z5GOdPImJGkoN4Z7IQe1T5AdyKI1i5L6RBmluqdSzvaq9/w=="], + "@babel/plugin-transform-runtime": ["@babel/plugin-transform-runtime@7.29.0", "", { "dependencies": { "@babel/helper-module-imports": "^7.28.6", "@babel/helper-plugin-utils": "^7.28.6", "babel-plugin-polyfill-corejs2": "^0.4.14", "babel-plugin-polyfill-corejs3": "^0.13.0", "babel-plugin-polyfill-regenerator": "^0.6.5", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-jlaRT5dJtMaMCV6fAuLbsQMSwz/QkvaHOHOSXRitGGwSpR1blCY4KUKoyP2tYO8vJcqYe8cEj96cqSztv3uF9w=="], - "@babel/plugin-transform-shorthand-properties": ["@babel/plugin-transform-shorthand-properties@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ=="], + "@babel/plugin-transform-shorthand-properties": ["@babel/plugin-transform-shorthand-properties@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ=="], - "@babel/plugin-transform-spread": ["@babel/plugin-transform-spread@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q=="], + "@babel/plugin-transform-spread": ["@babel/plugin-transform-spread@7.28.6", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.28.6", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-9U4QObUC0FtJl05AsUcodau/RWDytrU6uKgkxu09mLR9HLDAtUMoPuuskm5huQsoktmsYpI+bGmq+iapDcriKA=="], - "@babel/plugin-transform-sticky-regex": ["@babel/plugin-transform-sticky-regex@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g=="], + "@babel/plugin-transform-sticky-regex": ["@babel/plugin-transform-sticky-regex@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g=="], - "@babel/plugin-transform-template-literals": ["@babel/plugin-transform-template-literals@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg=="], + "@babel/plugin-transform-template-literals": ["@babel/plugin-transform-template-literals@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg=="], - "@babel/plugin-transform-typeof-symbol": ["@babel/plugin-transform-typeof-symbol@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw=="], + "@babel/plugin-transform-typeof-symbol": ["@babel/plugin-transform-typeof-symbol@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw=="], - "@babel/plugin-transform-typescript": ["@babel/plugin-transform-typescript@7.28.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.5.tgz", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", "@babel/helper-create-class-features-plugin": "^7.28.5", "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", "@babel/plugin-syntax-typescript": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-x2Qa+v/CuEoX7Dr31iAfr0IhInrVOWZU/2vJMJ00FOR/2nM0BcBEclpaf9sWCDc+v5e9dMrhSH8/atq/kX7+bA=="], + "@babel/plugin-transform-typescript": ["@babel/plugin-transform-typescript@7.28.6", "", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", "@babel/helper-create-class-features-plugin": "^7.28.6", "@babel/helper-plugin-utils": "^7.28.6", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", "@babel/plugin-syntax-typescript": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-0YWL2RFxOqEm9Efk5PvreamxPME8OyY0wM5wh5lHjF+VtVhdneCWGzZeSqzOfiobVqQaNCd2z0tQvnI9DaPWPw=="], - "@babel/plugin-transform-unicode-escapes": ["@babel/plugin-transform-unicode-escapes@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg=="], + "@babel/plugin-transform-unicode-escapes": ["@babel/plugin-transform-unicode-escapes@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg=="], - "@babel/plugin-transform-unicode-property-regex": ["@babel/plugin-transform-unicode-property-regex@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz", { "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q=="], + "@babel/plugin-transform-unicode-property-regex": ["@babel/plugin-transform-unicode-property-regex@7.28.6", "", { "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.28.5", "@babel/helper-plugin-utils": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-4Wlbdl/sIZjzi/8St0evF0gEZrgOswVO6aOzqxh1kDZOl9WmLrHq2HtGhnOJZmHZYKP8WZ1MDLCt5DAWwRo57A=="], - "@babel/plugin-transform-unicode-regex": ["@babel/plugin-transform-unicode-regex@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", { "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw=="], + "@babel/plugin-transform-unicode-regex": ["@babel/plugin-transform-unicode-regex@7.27.1", "", { "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw=="], - "@babel/plugin-transform-unicode-sets-regex": ["@babel/plugin-transform-unicode-sets-regex@7.27.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz", { "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw=="], + "@babel/plugin-transform-unicode-sets-regex": ["@babel/plugin-transform-unicode-sets-regex@7.28.6", "", { "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.28.5", "@babel/helper-plugin-utils": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-/wHc/paTUmsDYN7SZkpWxogTOBNnlx7nBQYfy6JJlCT7G3mVhltk3e++N7zV0XfgGsrqBxd4rJQt9H16I21Y1Q=="], - "@babel/preset-env": ["@babel/preset-env@7.28.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/preset-env/-/preset-env-7.28.5.tgz", { "dependencies": { "@babel/compat-data": "^7.28.5", "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-validator-option": "^7.27.1", "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.28.5", "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.3", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-import-assertions": "^7.27.1", "@babel/plugin-syntax-import-attributes": "^7.27.1", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.27.1", "@babel/plugin-transform-async-generator-functions": "^7.28.0", "@babel/plugin-transform-async-to-generator": "^7.27.1", "@babel/plugin-transform-block-scoped-functions": "^7.27.1", "@babel/plugin-transform-block-scoping": "^7.28.5", "@babel/plugin-transform-class-properties": "^7.27.1", "@babel/plugin-transform-class-static-block": "^7.28.3", "@babel/plugin-transform-classes": "^7.28.4", "@babel/plugin-transform-computed-properties": "^7.27.1", "@babel/plugin-transform-destructuring": "^7.28.5", "@babel/plugin-transform-dotall-regex": "^7.27.1", "@babel/plugin-transform-duplicate-keys": "^7.27.1", "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.27.1", "@babel/plugin-transform-dynamic-import": "^7.27.1", "@babel/plugin-transform-explicit-resource-management": "^7.28.0", "@babel/plugin-transform-exponentiation-operator": "^7.28.5", "@babel/plugin-transform-export-namespace-from": "^7.27.1", "@babel/plugin-transform-for-of": "^7.27.1", "@babel/plugin-transform-function-name": "^7.27.1", "@babel/plugin-transform-json-strings": "^7.27.1", "@babel/plugin-transform-literals": "^7.27.1", "@babel/plugin-transform-logical-assignment-operators": "^7.28.5", "@babel/plugin-transform-member-expression-literals": "^7.27.1", "@babel/plugin-transform-modules-amd": "^7.27.1", "@babel/plugin-transform-modules-commonjs": "^7.27.1", "@babel/plugin-transform-modules-systemjs": "^7.28.5", "@babel/plugin-transform-modules-umd": "^7.27.1", "@babel/plugin-transform-named-capturing-groups-regex": "^7.27.1", "@babel/plugin-transform-new-target": "^7.27.1", "@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1", "@babel/plugin-transform-numeric-separator": "^7.27.1", "@babel/plugin-transform-object-rest-spread": "^7.28.4", "@babel/plugin-transform-object-super": "^7.27.1", "@babel/plugin-transform-optional-catch-binding": "^7.27.1", "@babel/plugin-transform-optional-chaining": "^7.28.5", "@babel/plugin-transform-parameters": "^7.27.7", "@babel/plugin-transform-private-methods": "^7.27.1", "@babel/plugin-transform-private-property-in-object": "^7.27.1", "@babel/plugin-transform-property-literals": "^7.27.1", "@babel/plugin-transform-regenerator": "^7.28.4", "@babel/plugin-transform-regexp-modifiers": "^7.27.1", "@babel/plugin-transform-reserved-words": "^7.27.1", "@babel/plugin-transform-shorthand-properties": "^7.27.1", "@babel/plugin-transform-spread": "^7.27.1", "@babel/plugin-transform-sticky-regex": "^7.27.1", "@babel/plugin-transform-template-literals": "^7.27.1", "@babel/plugin-transform-typeof-symbol": "^7.27.1", "@babel/plugin-transform-unicode-escapes": "^7.27.1", "@babel/plugin-transform-unicode-property-regex": "^7.27.1", "@babel/plugin-transform-unicode-regex": "^7.27.1", "@babel/plugin-transform-unicode-sets-regex": "^7.27.1", "@babel/preset-modules": "0.1.6-no-external-plugins", "babel-plugin-polyfill-corejs2": "^0.4.14", "babel-plugin-polyfill-corejs3": "^0.13.0", "babel-plugin-polyfill-regenerator": "^0.6.5", "core-js-compat": "^3.43.0", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-S36mOoi1Sb6Fz98fBfE+UZSpYw5mJm0NUHtIKrOuNcqeFauy1J6dIvXm2KRVKobOSaGq4t/hBXdN4HGU3wL9Wg=="], + "@babel/preset-env": ["@babel/preset-env@7.29.0", "", { "dependencies": { "@babel/compat-data": "^7.29.0", "@babel/helper-compilation-targets": "^7.28.6", "@babel/helper-plugin-utils": "^7.28.6", "@babel/helper-validator-option": "^7.27.1", "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.28.5", "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.6", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-import-assertions": "^7.28.6", "@babel/plugin-syntax-import-attributes": "^7.28.6", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.27.1", "@babel/plugin-transform-async-generator-functions": "^7.29.0", "@babel/plugin-transform-async-to-generator": "^7.28.6", "@babel/plugin-transform-block-scoped-functions": "^7.27.1", "@babel/plugin-transform-block-scoping": "^7.28.6", "@babel/plugin-transform-class-properties": "^7.28.6", "@babel/plugin-transform-class-static-block": "^7.28.6", "@babel/plugin-transform-classes": "^7.28.6", "@babel/plugin-transform-computed-properties": "^7.28.6", "@babel/plugin-transform-destructuring": "^7.28.5", "@babel/plugin-transform-dotall-regex": "^7.28.6", "@babel/plugin-transform-duplicate-keys": "^7.27.1", "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.29.0", "@babel/plugin-transform-dynamic-import": "^7.27.1", "@babel/plugin-transform-explicit-resource-management": "^7.28.6", "@babel/plugin-transform-exponentiation-operator": "^7.28.6", "@babel/plugin-transform-export-namespace-from": "^7.27.1", "@babel/plugin-transform-for-of": "^7.27.1", "@babel/plugin-transform-function-name": "^7.27.1", "@babel/plugin-transform-json-strings": "^7.28.6", "@babel/plugin-transform-literals": "^7.27.1", "@babel/plugin-transform-logical-assignment-operators": "^7.28.6", "@babel/plugin-transform-member-expression-literals": "^7.27.1", "@babel/plugin-transform-modules-amd": "^7.27.1", "@babel/plugin-transform-modules-commonjs": "^7.28.6", "@babel/plugin-transform-modules-systemjs": "^7.29.0", "@babel/plugin-transform-modules-umd": "^7.27.1", "@babel/plugin-transform-named-capturing-groups-regex": "^7.29.0", "@babel/plugin-transform-new-target": "^7.27.1", "@babel/plugin-transform-nullish-coalescing-operator": "^7.28.6", "@babel/plugin-transform-numeric-separator": "^7.28.6", "@babel/plugin-transform-object-rest-spread": "^7.28.6", "@babel/plugin-transform-object-super": "^7.27.1", "@babel/plugin-transform-optional-catch-binding": "^7.28.6", "@babel/plugin-transform-optional-chaining": "^7.28.6", "@babel/plugin-transform-parameters": "^7.27.7", "@babel/plugin-transform-private-methods": "^7.28.6", "@babel/plugin-transform-private-property-in-object": "^7.28.6", "@babel/plugin-transform-property-literals": "^7.27.1", "@babel/plugin-transform-regenerator": "^7.29.0", "@babel/plugin-transform-regexp-modifiers": "^7.28.6", "@babel/plugin-transform-reserved-words": "^7.27.1", "@babel/plugin-transform-shorthand-properties": "^7.27.1", "@babel/plugin-transform-spread": "^7.28.6", "@babel/plugin-transform-sticky-regex": "^7.27.1", "@babel/plugin-transform-template-literals": "^7.27.1", "@babel/plugin-transform-typeof-symbol": "^7.27.1", "@babel/plugin-transform-unicode-escapes": "^7.27.1", "@babel/plugin-transform-unicode-property-regex": "^7.28.6", "@babel/plugin-transform-unicode-regex": "^7.27.1", "@babel/plugin-transform-unicode-sets-regex": "^7.28.6", "@babel/preset-modules": "0.1.6-no-external-plugins", "babel-plugin-polyfill-corejs2": "^0.4.15", "babel-plugin-polyfill-corejs3": "^0.14.0", "babel-plugin-polyfill-regenerator": "^0.6.6", "core-js-compat": "^3.48.0", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-fNEdfc0yi16lt6IZo2Qxk3knHVdfMYX33czNb4v8yWhemoBhibCpQK/uYHtSKIiO+p/zd3+8fYVXhQdOVV608w=="], - "@babel/preset-modules": ["@babel/preset-modules@0.1.6-no-external-plugins", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/types": "^7.4.4", "esutils": "^2.0.2" }, "peerDependencies": { "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA=="], + "@babel/preset-modules": ["@babel/preset-modules@0.1.6-no-external-plugins", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/types": "^7.4.4", "esutils": "^2.0.2" }, "peerDependencies": { "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA=="], - "@babel/preset-typescript": ["@babel/preset-typescript@7.28.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/preset-typescript/-/preset-typescript-7.28.5.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-validator-option": "^7.27.1", "@babel/plugin-syntax-jsx": "^7.27.1", "@babel/plugin-transform-modules-commonjs": "^7.27.1", "@babel/plugin-transform-typescript": "^7.28.5" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g=="], + "@babel/preset-typescript": ["@babel/preset-typescript@7.28.5", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-validator-option": "^7.27.1", "@babel/plugin-syntax-jsx": "^7.27.1", "@babel/plugin-transform-modules-commonjs": "^7.27.1", "@babel/plugin-transform-typescript": "^7.28.5" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g=="], - "@babel/runtime": ["@babel/runtime@7.28.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/runtime/-/runtime-7.28.4.tgz", {}, "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ=="], + "@babel/runtime": ["@babel/runtime@7.28.6", "", {}, "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA=="], - "@babel/template": ["@babel/template@7.27.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/template/-/template-7.27.2.tgz", { "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/parser": "^7.27.2", "@babel/types": "^7.27.1" } }, "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw=="], + "@babel/template": ["@babel/template@7.28.6", "", { "dependencies": { "@babel/code-frame": "^7.28.6", "@babel/parser": "^7.28.6", "@babel/types": "^7.28.6" } }, "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ=="], - "@babel/traverse": ["@babel/traverse@7.28.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/traverse/-/traverse-7.28.5.tgz", { "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.5", "@babel/helper-globals": "^7.28.0", "@babel/parser": "^7.28.5", "@babel/template": "^7.27.2", "@babel/types": "^7.28.5", "debug": "^4.3.1" } }, "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ=="], + "@babel/traverse": ["@babel/traverse@7.29.0", "", { "dependencies": { "@babel/code-frame": "^7.29.0", "@babel/generator": "^7.29.0", "@babel/helper-globals": "^7.28.0", "@babel/parser": "^7.29.0", "@babel/template": "^7.28.6", "@babel/types": "^7.29.0", "debug": "^4.3.1" } }, "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA=="], - "@babel/types": ["@babel/types@7.28.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@babel/types/-/types-7.28.5.tgz", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.28.5" } }, "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA=="], + "@babel/types": ["@babel/types@7.29.0", "", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.28.5" } }, "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A=="], - "@bcoe/v8-coverage": ["@bcoe/v8-coverage@1.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@bcoe/v8-coverage/-/v8-coverage-1.0.2.tgz", {}, "sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA=="], + "@bcoe/v8-coverage": ["@bcoe/v8-coverage@1.0.2", "", {}, "sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA=="], - "@borewit/text-codec": ["@borewit/text-codec@0.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@borewit/text-codec/-/text-codec-0.1.1.tgz", {}, "sha512-5L/uBxmjaCIX5h8Z+uu+kA9BQLkc/Wl06UGR5ajNRxu+/XjonB5i8JpgFMrPj3LXTCPA0pv8yxUvbUi+QthGGA=="], + "@borewit/text-codec": ["@borewit/text-codec@0.2.1", "", {}, "sha512-k7vvKPbf7J2fZ5klGRD9AeKfUvojuZIQ3BT5u7Jfv+puwXkUBUT5PVyMDfJZpy30CBDXGMgw7fguK/lpOMBvgw=="], - "@cap-js/asyncapi": ["@cap-js/asyncapi@1.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@cap-js/asyncapi/-/asyncapi-1.0.3.tgz", { "peerDependencies": { "@sap/cds": ">=7.6" } }, "sha512-vZSWKAe+3qfvZDXV5SSFiObGWmqyS9MDyEADb5PLVT8kzO39qGaSDPv/GzI/gwvRfCayGAjU4ThiBKrFA7Gclg=="], + "@cspotcode/source-map-support": ["@cspotcode/source-map-support@0.8.1", "", { "dependencies": { "@jridgewell/trace-mapping": "0.3.9" } }, "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw=="], - "@cap-js/cds-types": ["@cap-js/cds-types@0.7.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@cap-js/cds-types/-/cds-types-0.7.0.tgz", { "dependencies": { "@types/express": "^4.17.21" }, "peerDependencies": { "@sap/cds": "^8.0.0" } }, "sha512-zprkz3csN7z7v+0V78UlCfg2psm7Q3DJwvBjQB5BxVhlBcmuzoXn5EKKvzIXjflgWP1hUsDUhjVU5Hg9Quvq0g=="], + "@csstools/color-helpers": ["@csstools/color-helpers@5.1.0", "", {}, "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA=="], - "@cap-js/db-service": ["@cap-js/db-service@1.20.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@cap-js/db-service/-/db-service-1.20.3.tgz", { "dependencies": { "generic-pool": "^3.9.0" }, "peerDependencies": { "@sap/cds": ">=7.9 <9" } }, "sha512-/BLwO5hsyxgoH7I5yenNulxiYyuxGzi8uZXDqQwx1zZOAp9IjaNxaQmFW2lFFeolj7bXhdJNCSJ+WnY3l4r6tg=="], + "@csstools/css-calc": ["@csstools/css-calc@2.1.4", "", { "peerDependencies": { "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4" } }, "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ=="], - "@cap-js/openapi": ["@cap-js/openapi@1.2.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@cap-js/openapi/-/openapi-1.2.3.tgz", { "dependencies": { "pluralize": "^8.0.0" }, "peerDependencies": { "@sap/cds": ">=7.6" } }, "sha512-UnEUBrBIjMvYYJTtAmSrnWLKIjnaK9KcCS6pPoVBRgZrMaL0bl/aB3KMH4xzc6LWjtbxzlyI71XC7No4+SKerg=="], + "@csstools/css-color-parser": ["@csstools/css-color-parser@3.1.0", "", { "dependencies": { "@csstools/color-helpers": "^5.1.0", "@csstools/css-calc": "^2.1.4" }, "peerDependencies": { "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4" } }, "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA=="], - "@cap-js/sqlite": ["@cap-js/sqlite@1.11.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@cap-js/sqlite/-/sqlite-1.11.1.tgz", { "dependencies": { "@cap-js/db-service": "^1.20.0", "better-sqlite3": "^11.0.0" }, "peerDependencies": { "@sap/cds": ">=7.6 <9" } }, "sha512-vM5aggdzMvhUyfLo5Z/yqwro7jzXI5JawRRPaf7/LSaWedP9Y20nSvE0o+Frl1gtzGgBOx0MtESec3daEI3xFw=="], + "@csstools/css-parser-algorithms": ["@csstools/css-parser-algorithms@3.0.5", "", { "peerDependencies": { "@csstools/css-tokenizer": "^3.0.4" } }, "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ=="], - "@cloudfoundry/api": ["@cloudfoundry/api@0.1.7", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@cloudfoundry/api/-/api-0.1.7.tgz", { "dependencies": { "axios": "^1.7.7", "qs": "^6.13.1" } }, "sha512-iDpHdDLT7+WwkfV/KhBqY9np8XcAibLqhD/UqBpbmOpGFHEx7ulaP0a7ZemuKbM2eDmUWcpvJysY+c6NRIWRlA=="], + "@csstools/css-tokenizer": ["@csstools/css-tokenizer@3.0.4", "", {}, "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw=="], - "@cspotcode/source-map-support": ["@cspotcode/source-map-support@0.8.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", { "dependencies": { "@jridgewell/trace-mapping": "0.3.9" } }, "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw=="], + "@cypress/request": ["@cypress/request@3.0.8", "", { "dependencies": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", "caseless": "~0.12.0", "combined-stream": "~1.0.6", "extend": "~3.0.2", "forever-agent": "~0.6.1", "form-data": "~4.0.0", "http-signature": "~1.4.0", "is-typedarray": "~1.0.0", "isstream": "~0.1.2", "json-stringify-safe": "~5.0.1", "mime-types": "~2.1.19", "performance-now": "^2.1.0", "qs": "6.14.0", "safe-buffer": "^5.1.2", "tough-cookie": "^5.0.0", "tunnel-agent": "^0.6.0", "uuid": "^8.3.2" } }, "sha512-h0NFgh1mJmm1nr4jCwkGHwKneVYKghUyWe6TMNrk0B9zsjAJxpg8C4/+BAcmLgCPa1vj1V8rNUaILl+zYRUWBQ=="], - "@csstools/color-helpers": ["@csstools/color-helpers@5.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@csstools/color-helpers/-/color-helpers-5.1.0.tgz", {}, "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA=="], + "@emnapi/core": ["@emnapi/core@1.8.1", "", { "dependencies": { "@emnapi/wasi-threads": "1.1.0", "tslib": "^2.4.0" } }, "sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg=="], - "@csstools/css-calc": ["@csstools/css-calc@2.1.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@csstools/css-calc/-/css-calc-2.1.4.tgz", { "peerDependencies": { "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4" } }, "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ=="], + "@emnapi/runtime": ["@emnapi/runtime@1.8.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg=="], - "@csstools/css-color-parser": ["@csstools/css-color-parser@3.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz", { "dependencies": { "@csstools/color-helpers": "^5.1.0", "@csstools/css-calc": "^2.1.4" }, "peerDependencies": { "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4" } }, "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA=="], + "@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.1.0", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ=="], - "@csstools/css-parser-algorithms": ["@csstools/css-parser-algorithms@3.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz", { "peerDependencies": { "@csstools/css-tokenizer": "^3.0.4" } }, "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ=="], + "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.27.3", "", { "os": "aix", "cpu": "ppc64" }, "sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg=="], - "@csstools/css-tokenizer": ["@csstools/css-tokenizer@3.0.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz", {}, "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw=="], + "@esbuild/android-arm": ["@esbuild/android-arm@0.27.3", "", { "os": "android", "cpu": "arm" }, "sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA=="], - "@cypress/request": ["@cypress/request@3.0.8", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@cypress/request/-/request-3.0.8.tgz", { "dependencies": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", "caseless": "~0.12.0", "combined-stream": "~1.0.6", "extend": "~3.0.2", "forever-agent": "~0.6.1", "form-data": "~4.0.0", "http-signature": "~1.4.0", "is-typedarray": "~1.0.0", "isstream": "~0.1.2", "json-stringify-safe": "~5.0.1", "mime-types": "~2.1.19", "performance-now": "^2.1.0", "qs": "6.14.0", "safe-buffer": "^5.1.2", "tough-cookie": "^5.0.0", "tunnel-agent": "^0.6.0", "uuid": "^8.3.2" } }, "sha512-h0NFgh1mJmm1nr4jCwkGHwKneVYKghUyWe6TMNrk0B9zsjAJxpg8C4/+BAcmLgCPa1vj1V8rNUaILl+zYRUWBQ=="], + "@esbuild/android-arm64": ["@esbuild/android-arm64@0.27.3", "", { "os": "android", "cpu": "arm64" }, "sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg=="], - "@emnapi/core": ["@emnapi/core@1.7.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@emnapi/core/-/core-1.7.0.tgz", { "dependencies": { "@emnapi/wasi-threads": "1.1.0", "tslib": "^2.4.0" } }, "sha512-pJdKGq/1iquWYtv1RRSljZklxHCOCAJFJrImO5ZLKPJVJlVUcs8yFwNQlqS0Lo8xT1VAXXTCZocF9n26FWEKsw=="], + "@esbuild/android-x64": ["@esbuild/android-x64@0.27.3", "", { "os": "android", "cpu": "x64" }, "sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ=="], - "@emnapi/runtime": ["@emnapi/runtime@1.7.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@emnapi/runtime/-/runtime-1.7.0.tgz", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-oAYoQnCYaQZKVS53Fq23ceWMRxq5EhQsE0x0RdQ55jT7wagMu5k+fS39v1fiSLrtrLQlXwVINenqhLMtTrV/1Q=="], + "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.27.3", "", { "os": "darwin", "cpu": "arm64" }, "sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg=="], - "@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ=="], + "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.27.3", "", { "os": "darwin", "cpu": "x64" }, "sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg=="], - "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.12", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", { "os": "aix", "cpu": "ppc64" }, "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA=="], + "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.27.3", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w=="], - "@esbuild/android-arm": ["@esbuild/android-arm@0.25.12", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@esbuild/android-arm/-/android-arm-0.25.12.tgz", { "os": "android", "cpu": "arm" }, "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg=="], + "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.27.3", "", { "os": "freebsd", "cpu": "x64" }, "sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA=="], - "@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.12", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", { "os": "android", "cpu": "arm64" }, "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg=="], + "@esbuild/linux-arm": ["@esbuild/linux-arm@0.27.3", "", { "os": "linux", "cpu": "arm" }, "sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw=="], - "@esbuild/android-x64": ["@esbuild/android-x64@0.25.12", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@esbuild/android-x64/-/android-x64-0.25.12.tgz", { "os": "android", "cpu": "x64" }, "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg=="], + "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.27.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg=="], - "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.12", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", { "os": "darwin", "cpu": "arm64" }, "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg=="], + "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.27.3", "", { "os": "linux", "cpu": "ia32" }, "sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg=="], - "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.12", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", { "os": "darwin", "cpu": "x64" }, "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA=="], + "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.27.3", "", { "os": "linux", "cpu": "none" }, "sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA=="], - "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.12", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", { "os": "freebsd", "cpu": "arm64" }, "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg=="], + "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.27.3", "", { "os": "linux", "cpu": "none" }, "sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw=="], - "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.12", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", { "os": "freebsd", "cpu": "x64" }, "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ=="], + "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.27.3", "", { "os": "linux", "cpu": "ppc64" }, "sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA=="], - "@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.12", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", { "os": "linux", "cpu": "arm" }, "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw=="], + "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.27.3", "", { "os": "linux", "cpu": "none" }, "sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ=="], - "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.12", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ=="], + "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.27.3", "", { "os": "linux", "cpu": "s390x" }, "sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw=="], - "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.12", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", { "os": "linux", "cpu": "ia32" }, "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA=="], + "@esbuild/linux-x64": ["@esbuild/linux-x64@0.27.3", "", { "os": "linux", "cpu": "x64" }, "sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA=="], - "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.12", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", { "os": "linux", "cpu": "none" }, "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng=="], + "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.27.3", "", { "os": "none", "cpu": "arm64" }, "sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA=="], - "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.12", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", { "os": "linux", "cpu": "none" }, "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw=="], + "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.27.3", "", { "os": "none", "cpu": "x64" }, "sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA=="], - "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.12", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", { "os": "linux", "cpu": "ppc64" }, "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA=="], + "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.27.3", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw=="], - "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.12", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", { "os": "linux", "cpu": "none" }, "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w=="], + "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.27.3", "", { "os": "openbsd", "cpu": "x64" }, "sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ=="], - "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.12", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", { "os": "linux", "cpu": "s390x" }, "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg=="], + "@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.27.3", "", { "os": "none", "cpu": "arm64" }, "sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g=="], - "@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.12", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", { "os": "linux", "cpu": "x64" }, "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw=="], + "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.27.3", "", { "os": "sunos", "cpu": "x64" }, "sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA=="], - "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.12", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", { "os": "none", "cpu": "arm64" }, "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg=="], + "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.27.3", "", { "os": "win32", "cpu": "arm64" }, "sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA=="], - "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.12", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", { "os": "none", "cpu": "x64" }, "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ=="], + "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.27.3", "", { "os": "win32", "cpu": "ia32" }, "sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q=="], - "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.12", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", { "os": "openbsd", "cpu": "arm64" }, "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A=="], + "@esbuild/win32-x64": ["@esbuild/win32-x64@0.27.3", "", { "os": "win32", "cpu": "x64" }, "sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA=="], - "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.12", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", { "os": "openbsd", "cpu": "x64" }, "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw=="], + "@eslint-community/eslint-utils": ["@eslint-community/eslint-utils@4.9.1", "", { "dependencies": { "eslint-visitor-keys": "^3.4.3" }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ=="], - "@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.25.12", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", { "os": "none", "cpu": "arm64" }, "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg=="], + "@eslint-community/regexpp": ["@eslint-community/regexpp@4.12.2", "", {}, "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew=="], - "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.12", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", { "os": "sunos", "cpu": "x64" }, "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w=="], + "@eslint/config-array": ["@eslint/config-array@0.21.1", "", { "dependencies": { "@eslint/object-schema": "^2.1.7", "debug": "^4.3.1", "minimatch": "^3.1.2" } }, "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA=="], - "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.12", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", { "os": "win32", "cpu": "arm64" }, "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg=="], + "@eslint/config-helpers": ["@eslint/config-helpers@0.4.2", "", { "dependencies": { "@eslint/core": "^0.17.0" } }, "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw=="], - "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.12", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", { "os": "win32", "cpu": "ia32" }, "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ=="], + "@eslint/core": ["@eslint/core@0.17.0", "", { "dependencies": { "@types/json-schema": "^7.0.15" } }, "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ=="], - "@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.12", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", { "os": "win32", "cpu": "x64" }, "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA=="], + "@eslint/eslintrc": ["@eslint/eslintrc@3.3.4", "", { "dependencies": { "ajv": "^6.14.0", "debug": "^4.3.2", "espree": "^10.0.1", "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.1", "minimatch": "^3.1.3", "strip-json-comments": "^3.1.1" } }, "sha512-4h4MVF8pmBsncB60r0wSJiIeUKTSD4m7FmTFThG8RHlsg9ajqckLm9OraguFGZE4vVdpiI1Q4+hFnisopmG6gQ=="], - "@eslint-community/eslint-utils": ["@eslint-community/eslint-utils@4.9.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz", { "dependencies": { "eslint-visitor-keys": "^3.4.3" }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g=="], + "@eslint/js": ["@eslint/js@9.39.3", "", {}, "sha512-1B1VkCq6FuUNlQvlBYb+1jDu/gV297TIs/OeiaSR9l1H27SVW55ONE1e1Vp16NqP683+xEGzxYtv4XCiDPaQiw=="], - "@eslint-community/regexpp": ["@eslint-community/regexpp@4.12.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", {}, "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew=="], + "@eslint/object-schema": ["@eslint/object-schema@2.1.7", "", {}, "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA=="], - "@eslint/config-array": ["@eslint/config-array@0.21.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@eslint/config-array/-/config-array-0.21.1.tgz", { "dependencies": { "@eslint/object-schema": "^2.1.7", "debug": "^4.3.1", "minimatch": "^3.1.2" } }, "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA=="], + "@eslint/plugin-kit": ["@eslint/plugin-kit@0.4.1", "", { "dependencies": { "@eslint/core": "^0.17.0", "levn": "^0.4.1" } }, "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA=="], - "@eslint/config-helpers": ["@eslint/config-helpers@0.4.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", { "dependencies": { "@eslint/core": "^0.17.0" } }, "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw=="], + "@humanfs/core": ["@humanfs/core@0.19.1", "", {}, "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA=="], - "@eslint/core": ["@eslint/core@0.17.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@eslint/core/-/core-0.17.0.tgz", { "dependencies": { "@types/json-schema": "^7.0.15" } }, "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ=="], + "@humanfs/node": ["@humanfs/node@0.16.7", "", { "dependencies": { "@humanfs/core": "^0.19.1", "@humanwhocodes/retry": "^0.4.0" } }, "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ=="], - "@eslint/eslintrc": ["@eslint/eslintrc@3.3.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", { "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^10.0.1", "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" } }, "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ=="], + "@humanwhocodes/module-importer": ["@humanwhocodes/module-importer@1.0.1", "", {}, "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA=="], - "@eslint/js": ["@eslint/js@9.39.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@eslint/js/-/js-9.39.1.tgz", {}, "sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw=="], + "@humanwhocodes/retry": ["@humanwhocodes/retry@0.4.3", "", {}, "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ=="], - "@eslint/object-schema": ["@eslint/object-schema@2.1.7", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@eslint/object-schema/-/object-schema-2.1.7.tgz", {}, "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA=="], + "@inquirer/ansi": ["@inquirer/ansi@1.0.2", "", {}, "sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ=="], - "@eslint/plugin-kit": ["@eslint/plugin-kit@0.4.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", { "dependencies": { "@eslint/core": "^0.17.0", "levn": "^0.4.1" } }, "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA=="], + "@inquirer/checkbox": ["@inquirer/checkbox@4.3.2", "", { "dependencies": { "@inquirer/ansi": "^1.0.2", "@inquirer/core": "^10.3.2", "@inquirer/figures": "^1.0.15", "@inquirer/type": "^3.0.10", "yoctocolors-cjs": "^2.1.3" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA=="], - "@humanfs/core": ["@humanfs/core@0.19.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@humanfs/core/-/core-0.19.1.tgz", {}, "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA=="], + "@inquirer/confirm": ["@inquirer/confirm@5.1.21", "", { "dependencies": { "@inquirer/core": "^10.3.2", "@inquirer/type": "^3.0.10" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ=="], - "@humanfs/node": ["@humanfs/node@0.16.7", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@humanfs/node/-/node-0.16.7.tgz", { "dependencies": { "@humanfs/core": "^0.19.1", "@humanwhocodes/retry": "^0.4.0" } }, "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ=="], + "@inquirer/core": ["@inquirer/core@10.3.2", "", { "dependencies": { "@inquirer/ansi": "^1.0.2", "@inquirer/figures": "^1.0.15", "@inquirer/type": "^3.0.10", "cli-width": "^4.1.0", "mute-stream": "^2.0.0", "signal-exit": "^4.1.0", "wrap-ansi": "^6.2.0", "yoctocolors-cjs": "^2.1.3" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A=="], - "@humanwhocodes/module-importer": ["@humanwhocodes/module-importer@1.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", {}, "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA=="], + "@inquirer/editor": ["@inquirer/editor@4.2.23", "", { "dependencies": { "@inquirer/core": "^10.3.2", "@inquirer/external-editor": "^1.0.3", "@inquirer/type": "^3.0.10" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-aLSROkEwirotxZ1pBaP8tugXRFCxW94gwrQLxXfrZsKkfjOYC1aRvAZuhpJOb5cu4IBTJdsCigUlf2iCOu4ZDQ=="], - "@humanwhocodes/retry": ["@humanwhocodes/retry@0.4.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@humanwhocodes/retry/-/retry-0.4.3.tgz", {}, "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ=="], + "@inquirer/expand": ["@inquirer/expand@4.0.23", "", { "dependencies": { "@inquirer/core": "^10.3.2", "@inquirer/type": "^3.0.10", "yoctocolors-cjs": "^2.1.3" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-nRzdOyFYnpeYTTR2qFwEVmIWypzdAx/sIkCMeTNTcflFOovfqUk+HcFhQQVBftAh9gmGrpFj6QcGEqrDMDOiew=="], - "@inquirer/ansi": ["@inquirer/ansi@1.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@inquirer/ansi/-/ansi-1.0.2.tgz", {}, "sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ=="], + "@inquirer/external-editor": ["@inquirer/external-editor@1.0.3", "", { "dependencies": { "chardet": "^2.1.1", "iconv-lite": "^0.7.0" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA=="], - "@inquirer/checkbox": ["@inquirer/checkbox@4.3.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@inquirer/checkbox/-/checkbox-4.3.2.tgz", { "dependencies": { "@inquirer/ansi": "^1.0.2", "@inquirer/core": "^10.3.2", "@inquirer/figures": "^1.0.15", "@inquirer/type": "^3.0.10", "yoctocolors-cjs": "^2.1.3" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA=="], + "@inquirer/figures": ["@inquirer/figures@1.0.15", "", {}, "sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g=="], - "@inquirer/confirm": ["@inquirer/confirm@5.1.21", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@inquirer/confirm/-/confirm-5.1.21.tgz", { "dependencies": { "@inquirer/core": "^10.3.2", "@inquirer/type": "^3.0.10" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ=="], + "@inquirer/input": ["@inquirer/input@4.3.1", "", { "dependencies": { "@inquirer/core": "^10.3.2", "@inquirer/type": "^3.0.10" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-kN0pAM4yPrLjJ1XJBjDxyfDduXOuQHrBB8aLDMueuwUGn+vNpF7Gq7TvyVxx8u4SHlFFj4trmj+a2cbpG4Jn1g=="], - "@inquirer/core": ["@inquirer/core@10.3.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@inquirer/core/-/core-10.3.2.tgz", { "dependencies": { "@inquirer/ansi": "^1.0.2", "@inquirer/figures": "^1.0.15", "@inquirer/type": "^3.0.10", "cli-width": "^4.1.0", "mute-stream": "^2.0.0", "signal-exit": "^4.1.0", "wrap-ansi": "^6.2.0", "yoctocolors-cjs": "^2.1.3" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A=="], + "@inquirer/number": ["@inquirer/number@3.0.23", "", { "dependencies": { "@inquirer/core": "^10.3.2", "@inquirer/type": "^3.0.10" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-5Smv0OK7K0KUzUfYUXDXQc9jrf8OHo4ktlEayFlelCjwMXz0299Y8OrI+lj7i4gCBY15UObk76q0QtxjzFcFcg=="], - "@inquirer/editor": ["@inquirer/editor@4.2.23", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@inquirer/editor/-/editor-4.2.23.tgz", { "dependencies": { "@inquirer/core": "^10.3.2", "@inquirer/external-editor": "^1.0.3", "@inquirer/type": "^3.0.10" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-aLSROkEwirotxZ1pBaP8tugXRFCxW94gwrQLxXfrZsKkfjOYC1aRvAZuhpJOb5cu4IBTJdsCigUlf2iCOu4ZDQ=="], + "@inquirer/password": ["@inquirer/password@4.0.23", "", { "dependencies": { "@inquirer/ansi": "^1.0.2", "@inquirer/core": "^10.3.2", "@inquirer/type": "^3.0.10" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-zREJHjhT5vJBMZX/IUbyI9zVtVfOLiTO66MrF/3GFZYZ7T4YILW5MSkEYHceSii/KtRk+4i3RE7E1CUXA2jHcA=="], - "@inquirer/expand": ["@inquirer/expand@4.0.23", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@inquirer/expand/-/expand-4.0.23.tgz", { "dependencies": { "@inquirer/core": "^10.3.2", "@inquirer/type": "^3.0.10", "yoctocolors-cjs": "^2.1.3" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-nRzdOyFYnpeYTTR2qFwEVmIWypzdAx/sIkCMeTNTcflFOovfqUk+HcFhQQVBftAh9gmGrpFj6QcGEqrDMDOiew=="], + "@inquirer/prompts": ["@inquirer/prompts@7.10.1", "", { "dependencies": { "@inquirer/checkbox": "^4.3.2", "@inquirer/confirm": "^5.1.21", "@inquirer/editor": "^4.2.23", "@inquirer/expand": "^4.0.23", "@inquirer/input": "^4.3.1", "@inquirer/number": "^3.0.23", "@inquirer/password": "^4.0.23", "@inquirer/rawlist": "^4.1.11", "@inquirer/search": "^3.2.2", "@inquirer/select": "^4.4.2" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-Dx/y9bCQcXLI5ooQ5KyvA4FTgeo2jYj/7plWfV5Ak5wDPKQZgudKez2ixyfz7tKXzcJciTxqLeK7R9HItwiByg=="], - "@inquirer/external-editor": ["@inquirer/external-editor@1.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@inquirer/external-editor/-/external-editor-1.0.3.tgz", { "dependencies": { "chardet": "^2.1.1", "iconv-lite": "^0.7.0" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA=="], + "@inquirer/rawlist": ["@inquirer/rawlist@4.1.11", "", { "dependencies": { "@inquirer/core": "^10.3.2", "@inquirer/type": "^3.0.10", "yoctocolors-cjs": "^2.1.3" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-+LLQB8XGr3I5LZN/GuAHo+GpDJegQwuPARLChlMICNdwW7OwV2izlCSCxN6cqpL0sMXmbKbFcItJgdQq5EBXTw=="], - "@inquirer/figures": ["@inquirer/figures@1.0.15", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@inquirer/figures/-/figures-1.0.15.tgz", {}, "sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g=="], + "@inquirer/search": ["@inquirer/search@3.2.2", "", { "dependencies": { "@inquirer/core": "^10.3.2", "@inquirer/figures": "^1.0.15", "@inquirer/type": "^3.0.10", "yoctocolors-cjs": "^2.1.3" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-p2bvRfENXCZdWF/U2BXvnSI9h+tuA8iNqtUKb9UWbmLYCRQxd8WkvwWvYn+3NgYaNwdUkHytJMGG4MMLucI1kA=="], - "@inquirer/input": ["@inquirer/input@4.3.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@inquirer/input/-/input-4.3.1.tgz", { "dependencies": { "@inquirer/core": "^10.3.2", "@inquirer/type": "^3.0.10" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-kN0pAM4yPrLjJ1XJBjDxyfDduXOuQHrBB8aLDMueuwUGn+vNpF7Gq7TvyVxx8u4SHlFFj4trmj+a2cbpG4Jn1g=="], + "@inquirer/select": ["@inquirer/select@4.4.2", "", { "dependencies": { "@inquirer/ansi": "^1.0.2", "@inquirer/core": "^10.3.2", "@inquirer/figures": "^1.0.15", "@inquirer/type": "^3.0.10", "yoctocolors-cjs": "^2.1.3" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-l4xMuJo55MAe+N7Qr4rX90vypFwCajSakx59qe/tMaC1aEHWLyw68wF4o0A4SLAY4E0nd+Vt+EyskeDIqu1M6w=="], - "@inquirer/number": ["@inquirer/number@3.0.23", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@inquirer/number/-/number-3.0.23.tgz", { "dependencies": { "@inquirer/core": "^10.3.2", "@inquirer/type": "^3.0.10" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-5Smv0OK7K0KUzUfYUXDXQc9jrf8OHo4ktlEayFlelCjwMXz0299Y8OrI+lj7i4gCBY15UObk76q0QtxjzFcFcg=="], + "@inquirer/type": ["@inquirer/type@3.0.10", "", { "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA=="], - "@inquirer/password": ["@inquirer/password@4.0.23", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@inquirer/password/-/password-4.0.23.tgz", { "dependencies": { "@inquirer/ansi": "^1.0.2", "@inquirer/core": "^10.3.2", "@inquirer/type": "^3.0.10" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-zREJHjhT5vJBMZX/IUbyI9zVtVfOLiTO66MrF/3GFZYZ7T4YILW5MSkEYHceSii/KtRk+4i3RE7E1CUXA2jHcA=="], + "@isaacs/cliui": ["@isaacs/cliui@8.0.2", "", { "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", "strip-ansi": "^7.0.1", "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", "wrap-ansi": "^8.1.0", "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" } }, "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA=="], - "@inquirer/prompts": ["@inquirer/prompts@7.10.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@inquirer/prompts/-/prompts-7.10.1.tgz", { "dependencies": { "@inquirer/checkbox": "^4.3.2", "@inquirer/confirm": "^5.1.21", "@inquirer/editor": "^4.2.23", "@inquirer/expand": "^4.0.23", "@inquirer/input": "^4.3.1", "@inquirer/number": "^3.0.23", "@inquirer/password": "^4.0.23", "@inquirer/rawlist": "^4.1.11", "@inquirer/search": "^3.2.2", "@inquirer/select": "^4.4.2" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-Dx/y9bCQcXLI5ooQ5KyvA4FTgeo2jYj/7plWfV5Ak5wDPKQZgudKez2ixyfz7tKXzcJciTxqLeK7R9HItwiByg=="], + "@istanbuljs/load-nyc-config": ["@istanbuljs/load-nyc-config@1.1.0", "", { "dependencies": { "camelcase": "^5.3.1", "find-up": "^4.1.0", "get-package-type": "^0.1.0", "js-yaml": "^3.13.1", "resolve-from": "^5.0.0" } }, "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ=="], - "@inquirer/rawlist": ["@inquirer/rawlist@4.1.11", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@inquirer/rawlist/-/rawlist-4.1.11.tgz", { "dependencies": { "@inquirer/core": "^10.3.2", "@inquirer/type": "^3.0.10", "yoctocolors-cjs": "^2.1.3" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-+LLQB8XGr3I5LZN/GuAHo+GpDJegQwuPARLChlMICNdwW7OwV2izlCSCxN6cqpL0sMXmbKbFcItJgdQq5EBXTw=="], + "@istanbuljs/schema": ["@istanbuljs/schema@0.1.3", "", {}, "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA=="], - "@inquirer/search": ["@inquirer/search@3.2.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@inquirer/search/-/search-3.2.2.tgz", { "dependencies": { "@inquirer/core": "^10.3.2", "@inquirer/figures": "^1.0.15", "@inquirer/type": "^3.0.10", "yoctocolors-cjs": "^2.1.3" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-p2bvRfENXCZdWF/U2BXvnSI9h+tuA8iNqtUKb9UWbmLYCRQxd8WkvwWvYn+3NgYaNwdUkHytJMGG4MMLucI1kA=="], + "@jest/console": ["@jest/console@30.2.0", "", { "dependencies": { "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "jest-message-util": "30.2.0", "jest-util": "30.2.0", "slash": "^3.0.0" } }, "sha512-+O1ifRjkvYIkBqASKWgLxrpEhQAAE7hY77ALLUufSk5717KfOShg6IbqLmdsLMPdUiFvA2kTs0R7YZy+l0IzZQ=="], - "@inquirer/select": ["@inquirer/select@4.4.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@inquirer/select/-/select-4.4.2.tgz", { "dependencies": { "@inquirer/ansi": "^1.0.2", "@inquirer/core": "^10.3.2", "@inquirer/figures": "^1.0.15", "@inquirer/type": "^3.0.10", "yoctocolors-cjs": "^2.1.3" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-l4xMuJo55MAe+N7Qr4rX90vypFwCajSakx59qe/tMaC1aEHWLyw68wF4o0A4SLAY4E0nd+Vt+EyskeDIqu1M6w=="], + "@jest/core": ["@jest/core@30.0.5", "", { "dependencies": { "@jest/console": "30.0.5", "@jest/pattern": "30.0.1", "@jest/reporters": "30.0.5", "@jest/test-result": "30.0.5", "@jest/transform": "30.0.5", "@jest/types": "30.0.5", "@types/node": "*", "ansi-escapes": "^4.3.2", "chalk": "^4.1.2", "ci-info": "^4.2.0", "exit-x": "^0.2.2", "graceful-fs": "^4.2.11", "jest-changed-files": "30.0.5", "jest-config": "30.0.5", "jest-haste-map": "30.0.5", "jest-message-util": "30.0.5", "jest-regex-util": "30.0.1", "jest-resolve": "30.0.5", "jest-resolve-dependencies": "30.0.5", "jest-runner": "30.0.5", "jest-runtime": "30.0.5", "jest-snapshot": "30.0.5", "jest-util": "30.0.5", "jest-validate": "30.0.5", "jest-watcher": "30.0.5", "micromatch": "^4.0.8", "pretty-format": "30.0.5", "slash": "^3.0.0" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "optionalPeers": ["node-notifier"] }, "sha512-fKD0OulvRsXF1hmaFgHhVJzczWzA1RXMMo9LTPuFXo9q/alDbME3JIyWYqovWsUBWSoBcsHaGPSLF9rz4l9Qeg=="], - "@inquirer/type": ["@inquirer/type@3.0.10", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@inquirer/type/-/type-3.0.10.tgz", { "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA=="], + "@jest/create-cache-key-function": ["@jest/create-cache-key-function@30.2.0", "", { "dependencies": { "@jest/types": "30.2.0" } }, "sha512-44F4l4Enf+MirJN8X/NhdGkl71k5rBYiwdVlo4HxOwbu0sHV8QKrGEedb1VUU4K3W7fBKE0HGfbn7eZm0Ti3zg=="], - "@isaacs/balanced-match": ["@isaacs/balanced-match@4.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", {}, "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ=="], + "@jest/diff-sequences": ["@jest/diff-sequences@30.0.1", "", {}, "sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw=="], - "@isaacs/brace-expansion": ["@isaacs/brace-expansion@5.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz", { "dependencies": { "@isaacs/balanced-match": "^4.0.1" } }, "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA=="], + "@jest/environment": ["@jest/environment@30.0.5", "", { "dependencies": { "@jest/fake-timers": "30.0.5", "@jest/types": "30.0.5", "@types/node": "*", "jest-mock": "30.0.5" } }, "sha512-aRX7WoaWx1oaOkDQvCWImVQ8XNtdv5sEWgk4gxR6NXb7WBUnL5sRak4WRzIQRZ1VTWPvV4VI4mgGjNL9TeKMYA=="], - "@isaacs/cliui": ["@isaacs/cliui@8.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@isaacs/cliui/-/cliui-8.0.2.tgz", { "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", "strip-ansi": "^7.0.1", "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", "wrap-ansi": "^8.1.0", "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" } }, "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA=="], + "@jest/environment-jsdom-abstract": ["@jest/environment-jsdom-abstract@30.0.5", "", { "dependencies": { "@jest/environment": "30.0.5", "@jest/fake-timers": "30.0.5", "@jest/types": "30.0.5", "@types/jsdom": "^21.1.7", "@types/node": "*", "jest-mock": "30.0.5", "jest-util": "30.0.5" }, "peerDependencies": { "canvas": "^3.0.0", "jsdom": "*" }, "optionalPeers": ["canvas"] }, "sha512-gpWwiVxZunkoglP8DCnT3As9x5O8H6gveAOpvaJd2ATAoSh7ZSSCWbr9LQtUMvr8WD3VjG9YnDhsmkCK5WN1rQ=="], - "@istanbuljs/load-nyc-config": ["@istanbuljs/load-nyc-config@1.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", { "dependencies": { "camelcase": "^5.3.1", "find-up": "^4.1.0", "get-package-type": "^0.1.0", "js-yaml": "^3.13.1", "resolve-from": "^5.0.0" } }, "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ=="], + "@jest/expect": ["@jest/expect@30.2.0", "", { "dependencies": { "expect": "30.2.0", "jest-snapshot": "30.2.0" } }, "sha512-V9yxQK5erfzx99Sf+7LbhBwNWEZ9eZay8qQ9+JSC0TrMR1pMDHLMY+BnVPacWU6Jamrh252/IKo4F1Xn/zfiqA=="], - "@istanbuljs/schema": ["@istanbuljs/schema@0.1.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@istanbuljs/schema/-/schema-0.1.3.tgz", {}, "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA=="], + "@jest/expect-utils": ["@jest/expect-utils@30.2.0", "", { "dependencies": { "@jest/get-type": "30.1.0" } }, "sha512-1JnRfhqpD8HGpOmQp180Fo9Zt69zNtC+9lR+kT7NVL05tNXIi+QC8Csz7lfidMoVLPD3FnOtcmp0CEFnxExGEA=="], - "@jest/console": ["@jest/console@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/console/-/console-30.2.0.tgz", { "dependencies": { "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "jest-message-util": "30.2.0", "jest-util": "30.2.0", "slash": "^3.0.0" } }, "sha512-+O1ifRjkvYIkBqASKWgLxrpEhQAAE7hY77ALLUufSk5717KfOShg6IbqLmdsLMPdUiFvA2kTs0R7YZy+l0IzZQ=="], + "@jest/fake-timers": ["@jest/fake-timers@30.2.0", "", { "dependencies": { "@jest/types": "30.2.0", "@sinonjs/fake-timers": "^13.0.0", "@types/node": "*", "jest-message-util": "30.2.0", "jest-mock": "30.2.0", "jest-util": "30.2.0" } }, "sha512-HI3tRLjRxAbBy0VO8dqqm7Hb2mIa8d5bg/NJkyQcOk7V118ObQML8RC5luTF/Zsg4474a+gDvhce7eTnP4GhYw=="], - "@jest/core": ["@jest/core@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/core/-/core-30.0.5.tgz", { "dependencies": { "@jest/console": "30.0.5", "@jest/pattern": "30.0.1", "@jest/reporters": "30.0.5", "@jest/test-result": "30.0.5", "@jest/transform": "30.0.5", "@jest/types": "30.0.5", "@types/node": "*", "ansi-escapes": "^4.3.2", "chalk": "^4.1.2", "ci-info": "^4.2.0", "exit-x": "^0.2.2", "graceful-fs": "^4.2.11", "jest-changed-files": "30.0.5", "jest-config": "30.0.5", "jest-haste-map": "30.0.5", "jest-message-util": "30.0.5", "jest-regex-util": "30.0.1", "jest-resolve": "30.0.5", "jest-resolve-dependencies": "30.0.5", "jest-runner": "30.0.5", "jest-runtime": "30.0.5", "jest-snapshot": "30.0.5", "jest-util": "30.0.5", "jest-validate": "30.0.5", "jest-watcher": "30.0.5", "micromatch": "^4.0.8", "pretty-format": "30.0.5", "slash": "^3.0.0" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "optionalPeers": ["node-notifier"] }, "sha512-fKD0OulvRsXF1hmaFgHhVJzczWzA1RXMMo9LTPuFXo9q/alDbME3JIyWYqovWsUBWSoBcsHaGPSLF9rz4l9Qeg=="], + "@jest/get-type": ["@jest/get-type@30.1.0", "", {}, "sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA=="], - "@jest/create-cache-key-function": ["@jest/create-cache-key-function@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/create-cache-key-function/-/create-cache-key-function-30.2.0.tgz", { "dependencies": { "@jest/types": "30.2.0" } }, "sha512-44F4l4Enf+MirJN8X/NhdGkl71k5rBYiwdVlo4HxOwbu0sHV8QKrGEedb1VUU4K3W7fBKE0HGfbn7eZm0Ti3zg=="], + "@jest/globals": ["@jest/globals@30.0.5", "", { "dependencies": { "@jest/environment": "30.0.5", "@jest/expect": "30.0.5", "@jest/types": "30.0.5", "jest-mock": "30.0.5" } }, "sha512-7oEJT19WW4oe6HR7oLRvHxwlJk2gev0U9px3ufs8sX9PoD1Eza68KF0/tlN7X0dq/WVsBScXQGgCldA1V9Y/jA=="], - "@jest/diff-sequences": ["@jest/diff-sequences@30.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/diff-sequences/-/diff-sequences-30.0.1.tgz", {}, "sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw=="], + "@jest/pattern": ["@jest/pattern@30.0.1", "", { "dependencies": { "@types/node": "*", "jest-regex-util": "30.0.1" } }, "sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA=="], - "@jest/environment": ["@jest/environment@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/environment/-/environment-30.0.5.tgz", { "dependencies": { "@jest/fake-timers": "30.0.5", "@jest/types": "30.0.5", "@types/node": "*", "jest-mock": "30.0.5" } }, "sha512-aRX7WoaWx1oaOkDQvCWImVQ8XNtdv5sEWgk4gxR6NXb7WBUnL5sRak4WRzIQRZ1VTWPvV4VI4mgGjNL9TeKMYA=="], + "@jest/reporters": ["@jest/reporters@30.2.0", "", { "dependencies": { "@bcoe/v8-coverage": "^0.2.3", "@jest/console": "30.2.0", "@jest/test-result": "30.2.0", "@jest/transform": "30.2.0", "@jest/types": "30.2.0", "@jridgewell/trace-mapping": "^0.3.25", "@types/node": "*", "chalk": "^4.1.2", "collect-v8-coverage": "^1.0.2", "exit-x": "^0.2.2", "glob": "^10.3.10", "graceful-fs": "^4.2.11", "istanbul-lib-coverage": "^3.0.0", "istanbul-lib-instrument": "^6.0.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^5.0.0", "istanbul-reports": "^3.1.3", "jest-message-util": "30.2.0", "jest-util": "30.2.0", "jest-worker": "30.2.0", "slash": "^3.0.0", "string-length": "^4.0.2", "v8-to-istanbul": "^9.0.1" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "optionalPeers": ["node-notifier"] }, "sha512-DRyW6baWPqKMa9CzeiBjHwjd8XeAyco2Vt8XbcLFjiwCOEKOvy82GJ8QQnJE9ofsxCMPjH4MfH8fCWIHHDKpAQ=="], - "@jest/environment-jsdom-abstract": ["@jest/environment-jsdom-abstract@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/environment-jsdom-abstract/-/environment-jsdom-abstract-30.0.5.tgz", { "dependencies": { "@jest/environment": "30.0.5", "@jest/fake-timers": "30.0.5", "@jest/types": "30.0.5", "@types/jsdom": "^21.1.7", "@types/node": "*", "jest-mock": "30.0.5", "jest-util": "30.0.5" }, "peerDependencies": { "canvas": "^3.0.0", "jsdom": "*" }, "optionalPeers": ["canvas"] }, "sha512-gpWwiVxZunkoglP8DCnT3As9x5O8H6gveAOpvaJd2ATAoSh7ZSSCWbr9LQtUMvr8WD3VjG9YnDhsmkCK5WN1rQ=="], + "@jest/schemas": ["@jest/schemas@30.0.5", "", { "dependencies": { "@sinclair/typebox": "^0.34.0" } }, "sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA=="], - "@jest/expect": ["@jest/expect@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/expect/-/expect-30.2.0.tgz", { "dependencies": { "expect": "30.2.0", "jest-snapshot": "30.2.0" } }, "sha512-V9yxQK5erfzx99Sf+7LbhBwNWEZ9eZay8qQ9+JSC0TrMR1pMDHLMY+BnVPacWU6Jamrh252/IKo4F1Xn/zfiqA=="], + "@jest/snapshot-utils": ["@jest/snapshot-utils@30.0.5", "", { "dependencies": { "@jest/types": "30.0.5", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "natural-compare": "^1.4.0" } }, "sha512-XcCQ5qWHLvi29UUrowgDFvV4t7ETxX91CbDczMnoqXPOIcZOxyNdSjm6kV5XMc8+HkxfRegU/MUmnTbJRzGrUQ=="], - "@jest/expect-utils": ["@jest/expect-utils@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/expect-utils/-/expect-utils-30.2.0.tgz", { "dependencies": { "@jest/get-type": "30.1.0" } }, "sha512-1JnRfhqpD8HGpOmQp180Fo9Zt69zNtC+9lR+kT7NVL05tNXIi+QC8Csz7lfidMoVLPD3FnOtcmp0CEFnxExGEA=="], + "@jest/source-map": ["@jest/source-map@30.0.1", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "callsites": "^3.1.0", "graceful-fs": "^4.2.11" } }, "sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg=="], - "@jest/fake-timers": ["@jest/fake-timers@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/fake-timers/-/fake-timers-30.2.0.tgz", { "dependencies": { "@jest/types": "30.2.0", "@sinonjs/fake-timers": "^13.0.0", "@types/node": "*", "jest-message-util": "30.2.0", "jest-mock": "30.2.0", "jest-util": "30.2.0" } }, "sha512-HI3tRLjRxAbBy0VO8dqqm7Hb2mIa8d5bg/NJkyQcOk7V118ObQML8RC5luTF/Zsg4474a+gDvhce7eTnP4GhYw=="], + "@jest/test-result": ["@jest/test-result@30.2.0", "", { "dependencies": { "@jest/console": "30.2.0", "@jest/types": "30.2.0", "@types/istanbul-lib-coverage": "^2.0.6", "collect-v8-coverage": "^1.0.2" } }, "sha512-RF+Z+0CCHkARz5HT9mcQCBulb1wgCP3FBvl9VFokMX27acKphwyQsNuWH3c+ojd1LeWBLoTYoxF0zm6S/66mjg=="], - "@jest/get-type": ["@jest/get-type@30.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/get-type/-/get-type-30.1.0.tgz", {}, "sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA=="], + "@jest/test-sequencer": ["@jest/test-sequencer@30.2.0", "", { "dependencies": { "@jest/test-result": "30.2.0", "graceful-fs": "^4.2.11", "jest-haste-map": "30.2.0", "slash": "^3.0.0" } }, "sha512-wXKgU/lk8fKXMu/l5Hog1R61bL4q5GCdT6OJvdAFz1P+QrpoFuLU68eoKuVc4RbrTtNnTL5FByhWdLgOPSph+Q=="], - "@jest/globals": ["@jest/globals@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/globals/-/globals-30.0.5.tgz", { "dependencies": { "@jest/environment": "30.0.5", "@jest/expect": "30.0.5", "@jest/types": "30.0.5", "jest-mock": "30.0.5" } }, "sha512-7oEJT19WW4oe6HR7oLRvHxwlJk2gev0U9px3ufs8sX9PoD1Eza68KF0/tlN7X0dq/WVsBScXQGgCldA1V9Y/jA=="], + "@jest/transform": ["@jest/transform@30.2.0", "", { "dependencies": { "@babel/core": "^7.27.4", "@jest/types": "30.2.0", "@jridgewell/trace-mapping": "^0.3.25", "babel-plugin-istanbul": "^7.0.1", "chalk": "^4.1.2", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.11", "jest-haste-map": "30.2.0", "jest-regex-util": "30.0.1", "jest-util": "30.2.0", "micromatch": "^4.0.8", "pirates": "^4.0.7", "slash": "^3.0.0", "write-file-atomic": "^5.0.1" } }, "sha512-XsauDV82o5qXbhalKxD7p4TZYYdwcaEXC77PPD2HixEFF+6YGppjrAAQurTl2ECWcEomHBMMNS9AH3kcCFx8jA=="], - "@jest/pattern": ["@jest/pattern@30.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/pattern/-/pattern-30.0.1.tgz", { "dependencies": { "@types/node": "*", "jest-regex-util": "30.0.1" } }, "sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA=="], + "@jest/types": ["@jest/types@30.0.5", "", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-aREYa3aku9SSnea4aX6bhKn4bgv3AXkgijoQgbYV3yvbiGt6z+MQ85+6mIhx9DsKW2BuB/cLR/A+tcMThx+KLQ=="], - "@jest/reporters": ["@jest/reporters@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/reporters/-/reporters-30.2.0.tgz", { "dependencies": { "@bcoe/v8-coverage": "^0.2.3", "@jest/console": "30.2.0", "@jest/test-result": "30.2.0", "@jest/transform": "30.2.0", "@jest/types": "30.2.0", "@jridgewell/trace-mapping": "^0.3.25", "@types/node": "*", "chalk": "^4.1.2", "collect-v8-coverage": "^1.0.2", "exit-x": "^0.2.2", "glob": "^10.3.10", "graceful-fs": "^4.2.11", "istanbul-lib-coverage": "^3.0.0", "istanbul-lib-instrument": "^6.0.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^5.0.0", "istanbul-reports": "^3.1.3", "jest-message-util": "30.2.0", "jest-util": "30.2.0", "jest-worker": "30.2.0", "slash": "^3.0.0", "string-length": "^4.0.2", "v8-to-istanbul": "^9.0.1" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "optionalPeers": ["node-notifier"] }, "sha512-DRyW6baWPqKMa9CzeiBjHwjd8XeAyco2Vt8XbcLFjiwCOEKOvy82GJ8QQnJE9ofsxCMPjH4MfH8fCWIHHDKpAQ=="], + "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="], - "@jest/schemas": ["@jest/schemas@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/schemas/-/schemas-30.0.5.tgz", { "dependencies": { "@sinclair/typebox": "^0.34.0" } }, "sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA=="], + "@jridgewell/remapping": ["@jridgewell/remapping@2.3.5", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ=="], - "@jest/snapshot-utils": ["@jest/snapshot-utils@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/snapshot-utils/-/snapshot-utils-30.0.5.tgz", { "dependencies": { "@jest/types": "30.0.5", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "natural-compare": "^1.4.0" } }, "sha512-XcCQ5qWHLvi29UUrowgDFvV4t7ETxX91CbDczMnoqXPOIcZOxyNdSjm6kV5XMc8+HkxfRegU/MUmnTbJRzGrUQ=="], + "@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="], - "@jest/source-map": ["@jest/source-map@30.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/source-map/-/source-map-30.0.1.tgz", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "callsites": "^3.1.0", "graceful-fs": "^4.2.11" } }, "sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg=="], + "@jridgewell/source-map": ["@jridgewell/source-map@0.3.11", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25" } }, "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA=="], - "@jest/test-result": ["@jest/test-result@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/test-result/-/test-result-30.2.0.tgz", { "dependencies": { "@jest/console": "30.2.0", "@jest/types": "30.2.0", "@types/istanbul-lib-coverage": "^2.0.6", "collect-v8-coverage": "^1.0.2" } }, "sha512-RF+Z+0CCHkARz5HT9mcQCBulb1wgCP3FBvl9VFokMX27acKphwyQsNuWH3c+ojd1LeWBLoTYoxF0zm6S/66mjg=="], + "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="], - "@jest/test-sequencer": ["@jest/test-sequencer@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/test-sequencer/-/test-sequencer-30.2.0.tgz", { "dependencies": { "@jest/test-result": "30.2.0", "graceful-fs": "^4.2.11", "jest-haste-map": "30.2.0", "slash": "^3.0.0" } }, "sha512-wXKgU/lk8fKXMu/l5Hog1R61bL4q5GCdT6OJvdAFz1P+QrpoFuLU68eoKuVc4RbrTtNnTL5FByhWdLgOPSph+Q=="], + "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="], - "@jest/transform": ["@jest/transform@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/transform/-/transform-30.2.0.tgz", { "dependencies": { "@babel/core": "^7.27.4", "@jest/types": "30.2.0", "@jridgewell/trace-mapping": "^0.3.25", "babel-plugin-istanbul": "^7.0.1", "chalk": "^4.1.2", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.11", "jest-haste-map": "30.2.0", "jest-regex-util": "30.0.1", "jest-util": "30.2.0", "micromatch": "^4.0.8", "pirates": "^4.0.7", "slash": "^3.0.0", "write-file-atomic": "^5.0.1" } }, "sha512-XsauDV82o5qXbhalKxD7p4TZYYdwcaEXC77PPD2HixEFF+6YGppjrAAQurTl2ECWcEomHBMMNS9AH3kcCFx8jA=="], + "@napi-rs/nice": ["@napi-rs/nice@1.1.1", "", { "optionalDependencies": { "@napi-rs/nice-android-arm-eabi": "1.1.1", "@napi-rs/nice-android-arm64": "1.1.1", "@napi-rs/nice-darwin-arm64": "1.1.1", "@napi-rs/nice-darwin-x64": "1.1.1", "@napi-rs/nice-freebsd-x64": "1.1.1", "@napi-rs/nice-linux-arm-gnueabihf": "1.1.1", "@napi-rs/nice-linux-arm64-gnu": "1.1.1", "@napi-rs/nice-linux-arm64-musl": "1.1.1", "@napi-rs/nice-linux-ppc64-gnu": "1.1.1", "@napi-rs/nice-linux-riscv64-gnu": "1.1.1", "@napi-rs/nice-linux-s390x-gnu": "1.1.1", "@napi-rs/nice-linux-x64-gnu": "1.1.1", "@napi-rs/nice-linux-x64-musl": "1.1.1", "@napi-rs/nice-openharmony-arm64": "1.1.1", "@napi-rs/nice-win32-arm64-msvc": "1.1.1", "@napi-rs/nice-win32-ia32-msvc": "1.1.1", "@napi-rs/nice-win32-x64-msvc": "1.1.1" } }, "sha512-xJIPs+bYuc9ASBl+cvGsKbGrJmS6fAKaSZCnT0lhahT5rhA2VVy9/EcIgd2JhtEuFOJNx7UHNn/qiTPTY4nrQw=="], - "@jest/types": ["@jest/types@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/types/-/types-30.0.5.tgz", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-aREYa3aku9SSnea4aX6bhKn4bgv3AXkgijoQgbYV3yvbiGt6z+MQ85+6mIhx9DsKW2BuB/cLR/A+tcMThx+KLQ=="], + "@napi-rs/nice-android-arm-eabi": ["@napi-rs/nice-android-arm-eabi@1.1.1", "", { "os": "android", "cpu": "arm" }, "sha512-kjirL3N6TnRPv5iuHw36wnucNqXAO46dzK9oPb0wj076R5Xm8PfUVA9nAFB5ZNMmfJQJVKACAPd/Z2KYMppthw=="], - "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="], + "@napi-rs/nice-android-arm64": ["@napi-rs/nice-android-arm64@1.1.1", "", { "os": "android", "cpu": "arm64" }, "sha512-blG0i7dXgbInN5urONoUCNf+DUEAavRffrO7fZSeoRMJc5qD+BJeNcpr54msPF6qfDD6kzs9AQJogZvT2KD5nw=="], - "@jridgewell/remapping": ["@jridgewell/remapping@2.3.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jridgewell/remapping/-/remapping-2.3.5.tgz", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ=="], + "@napi-rs/nice-darwin-arm64": ["@napi-rs/nice-darwin-arm64@1.1.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-s/E7w45NaLqTGuOjC2p96pct4jRfo61xb9bU1unM/MJ/RFkKlJyJDx7OJI/O0ll/hrfpqKopuAFDV8yo0hfT7A=="], - "@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="], + "@napi-rs/nice-darwin-x64": ["@napi-rs/nice-darwin-x64@1.1.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-dGoEBnVpsdcC+oHHmW1LRK5eiyzLwdgNQq3BmZIav+9/5WTZwBYX7r5ZkQC07Nxd3KHOCkgbHSh4wPkH1N1LiQ=="], - "@jridgewell/source-map": ["@jridgewell/source-map@0.3.11", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jridgewell/source-map/-/source-map-0.3.11.tgz", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25" } }, "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA=="], + "@napi-rs/nice-freebsd-x64": ["@napi-rs/nice-freebsd-x64@1.1.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-kHv4kEHAylMYmlNwcQcDtXjklYp4FCf0b05E+0h6nDHsZ+F0bDe04U/tXNOqrx5CmIAth4vwfkjjUmp4c4JktQ=="], - "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="], + "@napi-rs/nice-linux-arm-gnueabihf": ["@napi-rs/nice-linux-arm-gnueabihf@1.1.1", "", { "os": "linux", "cpu": "arm" }, "sha512-E1t7K0efyKXZDoZg1LzCOLxgolxV58HCkaEkEvIYQx12ht2pa8hoBo+4OB3qh7e+QiBlp1SRf+voWUZFxyhyqg=="], - "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="], + "@napi-rs/nice-linux-arm64-gnu": ["@napi-rs/nice-linux-arm64-gnu@1.1.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-CIKLA12DTIZlmTaaKhQP88R3Xao+gyJxNWEn04wZwC2wmRapNnxCUZkVwggInMJvtVElA+D4ZzOU5sX4jV+SmQ=="], - "@napi-rs/nice": ["@napi-rs/nice@1.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@napi-rs/nice/-/nice-1.1.1.tgz", { "optionalDependencies": { "@napi-rs/nice-android-arm-eabi": "1.1.1", "@napi-rs/nice-android-arm64": "1.1.1", "@napi-rs/nice-darwin-arm64": "1.1.1", "@napi-rs/nice-darwin-x64": "1.1.1", "@napi-rs/nice-freebsd-x64": "1.1.1", "@napi-rs/nice-linux-arm-gnueabihf": "1.1.1", "@napi-rs/nice-linux-arm64-gnu": "1.1.1", "@napi-rs/nice-linux-arm64-musl": "1.1.1", "@napi-rs/nice-linux-ppc64-gnu": "1.1.1", "@napi-rs/nice-linux-riscv64-gnu": "1.1.1", "@napi-rs/nice-linux-s390x-gnu": "1.1.1", "@napi-rs/nice-linux-x64-gnu": "1.1.1", "@napi-rs/nice-linux-x64-musl": "1.1.1", "@napi-rs/nice-openharmony-arm64": "1.1.1", "@napi-rs/nice-win32-arm64-msvc": "1.1.1", "@napi-rs/nice-win32-ia32-msvc": "1.1.1", "@napi-rs/nice-win32-x64-msvc": "1.1.1" } }, "sha512-xJIPs+bYuc9ASBl+cvGsKbGrJmS6fAKaSZCnT0lhahT5rhA2VVy9/EcIgd2JhtEuFOJNx7UHNn/qiTPTY4nrQw=="], + "@napi-rs/nice-linux-arm64-musl": ["@napi-rs/nice-linux-arm64-musl@1.1.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-+2Rzdb3nTIYZ0YJF43qf2twhqOCkiSrHx2Pg6DJaCPYhhaxbLcdlV8hCRMHghQ+EtZQWGNcS2xF4KxBhSGeutg=="], - "@napi-rs/nice-android-arm-eabi": ["@napi-rs/nice-android-arm-eabi@1.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@napi-rs/nice-android-arm-eabi/-/nice-android-arm-eabi-1.1.1.tgz", { "os": "android", "cpu": "arm" }, "sha512-kjirL3N6TnRPv5iuHw36wnucNqXAO46dzK9oPb0wj076R5Xm8PfUVA9nAFB5ZNMmfJQJVKACAPd/Z2KYMppthw=="], + "@napi-rs/nice-linux-ppc64-gnu": ["@napi-rs/nice-linux-ppc64-gnu@1.1.1", "", { "os": "linux", "cpu": "ppc64" }, "sha512-4FS8oc0GeHpwvv4tKciKkw3Y4jKsL7FRhaOeiPei0X9T4Jd619wHNe4xCLmN2EMgZoeGg+Q7GY7BsvwKpL22Tg=="], - "@napi-rs/nice-android-arm64": ["@napi-rs/nice-android-arm64@1.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@napi-rs/nice-android-arm64/-/nice-android-arm64-1.1.1.tgz", { "os": "android", "cpu": "arm64" }, "sha512-blG0i7dXgbInN5urONoUCNf+DUEAavRffrO7fZSeoRMJc5qD+BJeNcpr54msPF6qfDD6kzs9AQJogZvT2KD5nw=="], + "@napi-rs/nice-linux-riscv64-gnu": ["@napi-rs/nice-linux-riscv64-gnu@1.1.1", "", { "os": "linux", "cpu": "none" }, "sha512-HU0nw9uD4FO/oGCCk409tCi5IzIZpH2agE6nN4fqpwVlCn5BOq0MS1dXGjXaG17JaAvrlpV5ZeyZwSon10XOXw=="], - "@napi-rs/nice-darwin-arm64": ["@napi-rs/nice-darwin-arm64@1.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@napi-rs/nice-darwin-arm64/-/nice-darwin-arm64-1.1.1.tgz", { "os": "darwin", "cpu": "arm64" }, "sha512-s/E7w45NaLqTGuOjC2p96pct4jRfo61xb9bU1unM/MJ/RFkKlJyJDx7OJI/O0ll/hrfpqKopuAFDV8yo0hfT7A=="], + "@napi-rs/nice-linux-s390x-gnu": ["@napi-rs/nice-linux-s390x-gnu@1.1.1", "", { "os": "linux", "cpu": "s390x" }, "sha512-2YqKJWWl24EwrX0DzCQgPLKQBxYDdBxOHot1KWEq7aY2uYeX+Uvtv4I8xFVVygJDgf6/92h9N3Y43WPx8+PAgQ=="], - "@napi-rs/nice-darwin-x64": ["@napi-rs/nice-darwin-x64@1.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@napi-rs/nice-darwin-x64/-/nice-darwin-x64-1.1.1.tgz", { "os": "darwin", "cpu": "x64" }, "sha512-dGoEBnVpsdcC+oHHmW1LRK5eiyzLwdgNQq3BmZIav+9/5WTZwBYX7r5ZkQC07Nxd3KHOCkgbHSh4wPkH1N1LiQ=="], + "@napi-rs/nice-linux-x64-gnu": ["@napi-rs/nice-linux-x64-gnu@1.1.1", "", { "os": "linux", "cpu": "x64" }, "sha512-/gaNz3R92t+dcrfCw/96pDopcmec7oCcAQ3l/M+Zxr82KT4DljD37CpgrnXV+pJC263JkW572pdbP3hP+KjcIg=="], - "@napi-rs/nice-freebsd-x64": ["@napi-rs/nice-freebsd-x64@1.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@napi-rs/nice-freebsd-x64/-/nice-freebsd-x64-1.1.1.tgz", { "os": "freebsd", "cpu": "x64" }, "sha512-kHv4kEHAylMYmlNwcQcDtXjklYp4FCf0b05E+0h6nDHsZ+F0bDe04U/tXNOqrx5CmIAth4vwfkjjUmp4c4JktQ=="], + "@napi-rs/nice-linux-x64-musl": ["@napi-rs/nice-linux-x64-musl@1.1.1", "", { "os": "linux", "cpu": "x64" }, "sha512-xScCGnyj/oppsNPMnevsBe3pvNaoK7FGvMjT35riz9YdhB2WtTG47ZlbxtOLpjeO9SqqQ2J2igCmz6IJOD5JYw=="], - "@napi-rs/nice-linux-arm-gnueabihf": ["@napi-rs/nice-linux-arm-gnueabihf@1.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@napi-rs/nice-linux-arm-gnueabihf/-/nice-linux-arm-gnueabihf-1.1.1.tgz", { "os": "linux", "cpu": "arm" }, "sha512-E1t7K0efyKXZDoZg1LzCOLxgolxV58HCkaEkEvIYQx12ht2pa8hoBo+4OB3qh7e+QiBlp1SRf+voWUZFxyhyqg=="], + "@napi-rs/nice-openharmony-arm64": ["@napi-rs/nice-openharmony-arm64@1.1.1", "", { "os": "none", "cpu": "arm64" }, "sha512-6uJPRVwVCLDeoOaNyeiW0gp2kFIM4r7PL2MczdZQHkFi9gVlgm+Vn+V6nTWRcu856mJ2WjYJiumEajfSm7arPQ=="], - "@napi-rs/nice-linux-arm64-gnu": ["@napi-rs/nice-linux-arm64-gnu@1.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@napi-rs/nice-linux-arm64-gnu/-/nice-linux-arm64-gnu-1.1.1.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-CIKLA12DTIZlmTaaKhQP88R3Xao+gyJxNWEn04wZwC2wmRapNnxCUZkVwggInMJvtVElA+D4ZzOU5sX4jV+SmQ=="], + "@napi-rs/nice-win32-arm64-msvc": ["@napi-rs/nice-win32-arm64-msvc@1.1.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-uoTb4eAvM5B2aj/z8j+Nv8OttPf2m+HVx3UjA5jcFxASvNhQriyCQF1OB1lHL43ZhW+VwZlgvjmP5qF3+59atA=="], - "@napi-rs/nice-linux-arm64-musl": ["@napi-rs/nice-linux-arm64-musl@1.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@napi-rs/nice-linux-arm64-musl/-/nice-linux-arm64-musl-1.1.1.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-+2Rzdb3nTIYZ0YJF43qf2twhqOCkiSrHx2Pg6DJaCPYhhaxbLcdlV8hCRMHghQ+EtZQWGNcS2xF4KxBhSGeutg=="], + "@napi-rs/nice-win32-ia32-msvc": ["@napi-rs/nice-win32-ia32-msvc@1.1.1", "", { "os": "win32", "cpu": "ia32" }, "sha512-CNQqlQT9MwuCsg1Vd/oKXiuH+TcsSPJmlAFc5frFyX/KkOh0UpBLEj7aoY656d5UKZQMQFP7vJNa1DNUNORvug=="], - "@napi-rs/nice-linux-ppc64-gnu": ["@napi-rs/nice-linux-ppc64-gnu@1.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@napi-rs/nice-linux-ppc64-gnu/-/nice-linux-ppc64-gnu-1.1.1.tgz", { "os": "linux", "cpu": "ppc64" }, "sha512-4FS8oc0GeHpwvv4tKciKkw3Y4jKsL7FRhaOeiPei0X9T4Jd619wHNe4xCLmN2EMgZoeGg+Q7GY7BsvwKpL22Tg=="], + "@napi-rs/nice-win32-x64-msvc": ["@napi-rs/nice-win32-x64-msvc@1.1.1", "", { "os": "win32", "cpu": "x64" }, "sha512-vB+4G/jBQCAh0jelMTY3+kgFy00Hlx2f2/1zjMoH821IbplbWZOkLiTYXQkygNTzQJTq5cvwBDgn2ppHD+bglQ=="], - "@napi-rs/nice-linux-riscv64-gnu": ["@napi-rs/nice-linux-riscv64-gnu@1.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@napi-rs/nice-linux-riscv64-gnu/-/nice-linux-riscv64-gnu-1.1.1.tgz", { "os": "linux", "cpu": "none" }, "sha512-HU0nw9uD4FO/oGCCk409tCi5IzIZpH2agE6nN4fqpwVlCn5BOq0MS1dXGjXaG17JaAvrlpV5ZeyZwSon10XOXw=="], + "@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@0.2.4", "", { "dependencies": { "@emnapi/core": "^1.1.0", "@emnapi/runtime": "^1.1.0", "@tybys/wasm-util": "^0.9.0" } }, "sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ=="], - "@napi-rs/nice-linux-s390x-gnu": ["@napi-rs/nice-linux-s390x-gnu@1.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@napi-rs/nice-linux-s390x-gnu/-/nice-linux-s390x-gnu-1.1.1.tgz", { "os": "linux", "cpu": "s390x" }, "sha512-2YqKJWWl24EwrX0DzCQgPLKQBxYDdBxOHot1KWEq7aY2uYeX+Uvtv4I8xFVVygJDgf6/92h9N3Y43WPx8+PAgQ=="], + "@nodelib/fs.scandir": ["@nodelib/fs.scandir@2.1.5", "", { "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="], - "@napi-rs/nice-linux-x64-gnu": ["@napi-rs/nice-linux-x64-gnu@1.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@napi-rs/nice-linux-x64-gnu/-/nice-linux-x64-gnu-1.1.1.tgz", { "os": "linux", "cpu": "x64" }, "sha512-/gaNz3R92t+dcrfCw/96pDopcmec7oCcAQ3l/M+Zxr82KT4DljD37CpgrnXV+pJC263JkW572pdbP3hP+KjcIg=="], + "@nodelib/fs.stat": ["@nodelib/fs.stat@2.0.5", "", {}, "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="], - "@napi-rs/nice-linux-x64-musl": ["@napi-rs/nice-linux-x64-musl@1.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@napi-rs/nice-linux-x64-musl/-/nice-linux-x64-musl-1.1.1.tgz", { "os": "linux", "cpu": "x64" }, "sha512-xScCGnyj/oppsNPMnevsBe3pvNaoK7FGvMjT35riz9YdhB2WtTG47ZlbxtOLpjeO9SqqQ2J2igCmz6IJOD5JYw=="], + "@nodelib/fs.walk": ["@nodelib/fs.walk@1.2.8", "", { "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg=="], - "@napi-rs/nice-openharmony-arm64": ["@napi-rs/nice-openharmony-arm64@1.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@napi-rs/nice-openharmony-arm64/-/nice-openharmony-arm64-1.1.1.tgz", { "os": "none", "cpu": "arm64" }, "sha512-6uJPRVwVCLDeoOaNyeiW0gp2kFIM4r7PL2MczdZQHkFi9gVlgm+Vn+V6nTWRcu856mJ2WjYJiumEajfSm7arPQ=="], + "@nx/devkit": ["@nx/devkit@22.1.1", "", { "dependencies": { "@zkochan/js-yaml": "0.0.7", "ejs": "^3.1.7", "enquirer": "~2.3.6", "minimatch": "9.0.3", "semver": "^7.6.3", "tslib": "^2.3.0", "yargs-parser": "21.1.1" }, "peerDependencies": { "nx": ">= 21 <= 23 || ^22.0.0-0" } }, "sha512-KAfo3xKVzfYOzpDEeQC2aA1xhNDi9wpt85yWf4A7ABvbrbl9pv9e2UAo1LSFP9DlLSRn9iX+FBjLA5NKmJdKcg=="], - "@napi-rs/nice-win32-arm64-msvc": ["@napi-rs/nice-win32-arm64-msvc@1.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@napi-rs/nice-win32-arm64-msvc/-/nice-win32-arm64-msvc-1.1.1.tgz", { "os": "win32", "cpu": "arm64" }, "sha512-uoTb4eAvM5B2aj/z8j+Nv8OttPf2m+HVx3UjA5jcFxASvNhQriyCQF1OB1lHL43ZhW+VwZlgvjmP5qF3+59atA=="], + "@nx/docker": ["@nx/docker@22.1.1", "", { "dependencies": { "@nx/devkit": "22.1.1", "enquirer": "~2.3.6", "tslib": "^2.3.0" } }, "sha512-ZybftCHGhg5Dg8Uw8LbTUFZ4H+2viEDVTuA+RMvRQogHz4C/w+0RykpaOVEeM+w7nHdu5MCFH9fTnZdB/1AFnA=="], - "@napi-rs/nice-win32-ia32-msvc": ["@napi-rs/nice-win32-ia32-msvc@1.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@napi-rs/nice-win32-ia32-msvc/-/nice-win32-ia32-msvc-1.1.1.tgz", { "os": "win32", "cpu": "ia32" }, "sha512-CNQqlQT9MwuCsg1Vd/oKXiuH+TcsSPJmlAFc5frFyX/KkOh0UpBLEj7aoY656d5UKZQMQFP7vJNa1DNUNORvug=="], + "@nx/eslint": ["@nx/eslint@22.1.1", "", { "dependencies": { "@nx/devkit": "22.1.1", "@nx/js": "22.1.1", "semver": "^7.6.3", "tslib": "^2.3.0", "typescript": "~5.9.2" }, "peerDependencies": { "@zkochan/js-yaml": "0.0.7", "eslint": "^8.0.0 || ^9.0.0" }, "optionalPeers": ["@zkochan/js-yaml"] }, "sha512-OTEJdrYLkpCzribRnE08mK5L0nAn6soepiDQJG3dg2fNs2uGMnvXb6LdwQ+7RZqD2V+HqZVeSjArhblf0drDPQ=="], - "@napi-rs/nice-win32-x64-msvc": ["@napi-rs/nice-win32-x64-msvc@1.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@napi-rs/nice-win32-x64-msvc/-/nice-win32-x64-msvc-1.1.1.tgz", { "os": "win32", "cpu": "x64" }, "sha512-vB+4G/jBQCAh0jelMTY3+kgFy00Hlx2f2/1zjMoH821IbplbWZOkLiTYXQkygNTzQJTq5cvwBDgn2ppHD+bglQ=="], + "@nx/eslint-plugin": ["@nx/eslint-plugin@22.1.1", "", { "dependencies": { "@nx/devkit": "22.1.1", "@nx/js": "22.1.1", "@phenomnomnominal/tsquery": "~5.0.1", "@typescript-eslint/type-utils": "^8.0.0", "@typescript-eslint/utils": "^8.0.0", "chalk": "^4.1.0", "confusing-browser-globals": "^1.0.9", "globals": "^15.9.0", "jsonc-eslint-parser": "^2.1.0", "semver": "^7.6.3", "tslib": "^2.3.0" }, "peerDependencies": { "@typescript-eslint/parser": "^6.13.2 || ^7.0.0 || ^8.0.0", "eslint-config-prettier": "^10.0.0" }, "optionalPeers": ["eslint-config-prettier"] }, "sha512-Edyeguwrf3m+LJTCGo6M9LmpwG9yqeHROZAjEONFC8ETtJZy4lmha3s+XE4g7V+YIbXCgMYsK7LBdHzLUiOYnA=="], - "@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@0.2.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.4.tgz", { "dependencies": { "@emnapi/core": "^1.1.0", "@emnapi/runtime": "^1.1.0", "@tybys/wasm-util": "^0.9.0" } }, "sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ=="], + "@nx/jest": ["@nx/jest@22.1.1", "", { "dependencies": { "@jest/reporters": "^30.0.2", "@jest/test-result": "^30.0.2", "@nx/devkit": "22.1.1", "@nx/js": "22.1.1", "@phenomnomnominal/tsquery": "~5.0.1", "identity-obj-proxy": "3.0.0", "jest-config": "^30.0.2", "jest-resolve": "^30.0.2", "jest-util": "^30.0.2", "minimatch": "9.0.3", "picocolors": "^1.1.0", "resolve.exports": "2.0.3", "semver": "^7.6.3", "tslib": "^2.3.0", "yargs-parser": "21.1.1" } }, "sha512-jhW14AgWZdxqQZbASzDOLqIJxnV9z9njzKO/TtDxksPQkkuwZn7VT/thC+rzja/PmIJYHyQpZ6B1prayk6GCSw=="], - "@nodelib/fs.scandir": ["@nodelib/fs.scandir@2.1.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", { "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="], + "@nx/js": ["@nx/js@22.1.1", "", { "dependencies": { "@babel/core": "^7.23.2", "@babel/plugin-proposal-decorators": "^7.22.7", "@babel/plugin-transform-class-properties": "^7.22.5", "@babel/plugin-transform-runtime": "^7.23.2", "@babel/preset-env": "^7.23.2", "@babel/preset-typescript": "^7.22.5", "@babel/runtime": "^7.22.6", "@nx/devkit": "22.1.1", "@nx/workspace": "22.1.1", "@zkochan/js-yaml": "0.0.7", "babel-plugin-const-enum": "^1.0.1", "babel-plugin-macros": "^3.1.0", "babel-plugin-transform-typescript-metadata": "^0.3.1", "chalk": "^4.1.0", "columnify": "^1.6.0", "detect-port": "^1.5.1", "ignore": "^5.0.4", "js-tokens": "^4.0.0", "jsonc-parser": "3.2.0", "npm-run-path": "^4.0.1", "picocolors": "^1.1.0", "picomatch": "4.0.2", "semver": "^7.6.3", "source-map-support": "0.5.19", "tinyglobby": "^0.2.12", "tslib": "^2.3.0" }, "peerDependencies": { "verdaccio": "^6.0.5" }, "optionalPeers": ["verdaccio"] }, "sha512-JapLufitpYiZSTIrBc8KhpU4ViMNL513V5g+YhvzW4RNhTAGqxAbeOYK+LEMcrpR2pwk6zCWzRWznQeSaCsbQA=="], - "@nodelib/fs.stat": ["@nodelib/fs.stat@2.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", {}, "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="], + "@nx/node": ["@nx/node@22.1.1", "", { "dependencies": { "@nx/devkit": "22.1.1", "@nx/docker": "22.1.1", "@nx/eslint": "22.1.1", "@nx/jest": "22.1.1", "@nx/js": "22.1.1", "kill-port": "^1.6.1", "tcp-port-used": "^1.0.2", "tslib": "^2.3.0" } }, "sha512-8BvxgcPydW0Wg0U7WyU7tVT3AY0fOsCW1nmE2tc2gmg7Drd0I+49Ee8GJxkD/sP8HZA+0rndLmUHM68JtIeZPA=="], - "@nodelib/fs.walk": ["@nodelib/fs.walk@1.2.8", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", { "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg=="], + "@nx/nx-darwin-arm64": ["@nx/nx-darwin-arm64@22.1.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-B1XlawHKfgj/PCc/A/cV+GtRgPXQQrDV3pv7ohDcqTksHNMc4B5Kx+oyihbeq5u8z+eNBsU8C1WiGEOXvwXEyg=="], - "@nx/devkit": ["@nx/devkit@22.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@nx/devkit/-/devkit-22.1.1.tgz", { "dependencies": { "@zkochan/js-yaml": "0.0.7", "ejs": "^3.1.7", "enquirer": "~2.3.6", "minimatch": "9.0.3", "semver": "^7.6.3", "tslib": "^2.3.0", "yargs-parser": "21.1.1" }, "peerDependencies": { "nx": ">= 21 <= 23 || ^22.0.0-0" } }, "sha512-KAfo3xKVzfYOzpDEeQC2aA1xhNDi9wpt85yWf4A7ABvbrbl9pv9e2UAo1LSFP9DlLSRn9iX+FBjLA5NKmJdKcg=="], + "@nx/nx-darwin-x64": ["@nx/nx-darwin-x64@22.1.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-VHThopq74WtFro7UiJkiRsKW4fVzmOSnV9rUUZhm4vKqemtDGOHmVWZmQmuUCvVt0pQvxTs00DdYRIWykxeQ6w=="], - "@nx/docker": ["@nx/docker@22.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@nx/docker/-/docker-22.1.1.tgz", { "dependencies": { "@nx/devkit": "22.1.1", "enquirer": "~2.3.6", "tslib": "^2.3.0" } }, "sha512-ZybftCHGhg5Dg8Uw8LbTUFZ4H+2viEDVTuA+RMvRQogHz4C/w+0RykpaOVEeM+w7nHdu5MCFH9fTnZdB/1AFnA=="], + "@nx/nx-freebsd-x64": ["@nx/nx-freebsd-x64@22.1.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-OGklM9RQi1of5TTO1dPvYjgUfMos+Cu3BhDlUnCEOo8SaFfjsi57AFG9nEcMlizWj9q5699kerPRVFmDiz2Nxg=="], - "@nx/eslint": ["@nx/eslint@22.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@nx/eslint/-/eslint-22.1.1.tgz", { "dependencies": { "@nx/devkit": "22.1.1", "@nx/js": "22.1.1", "semver": "^7.6.3", "tslib": "^2.3.0", "typescript": "~5.9.2" }, "peerDependencies": { "@zkochan/js-yaml": "0.0.7", "eslint": "^8.0.0 || ^9.0.0" }, "optionalPeers": ["@zkochan/js-yaml"] }, "sha512-OTEJdrYLkpCzribRnE08mK5L0nAn6soepiDQJG3dg2fNs2uGMnvXb6LdwQ+7RZqD2V+HqZVeSjArhblf0drDPQ=="], + "@nx/nx-linux-arm-gnueabihf": ["@nx/nx-linux-arm-gnueabihf@22.1.1", "", { "os": "linux", "cpu": "arm" }, "sha512-45c32yMyU1QFyVLrKv5QVT2EfiRh5eAfHu7k1NfNlxuUtgeB34+p96p2hloOVLFlVXMZTIqucJTuXBwaJPg4ag=="], - "@nx/eslint-plugin": ["@nx/eslint-plugin@22.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@nx/eslint-plugin/-/eslint-plugin-22.1.1.tgz", { "dependencies": { "@nx/devkit": "22.1.1", "@nx/js": "22.1.1", "@phenomnomnominal/tsquery": "~5.0.1", "@typescript-eslint/type-utils": "^8.0.0", "@typescript-eslint/utils": "^8.0.0", "chalk": "^4.1.0", "confusing-browser-globals": "^1.0.9", "globals": "^15.9.0", "jsonc-eslint-parser": "^2.1.0", "semver": "^7.6.3", "tslib": "^2.3.0" }, "peerDependencies": { "@typescript-eslint/parser": "^6.13.2 || ^7.0.0 || ^8.0.0", "eslint-config-prettier": "^10.0.0" }, "optionalPeers": ["eslint-config-prettier"] }, "sha512-Edyeguwrf3m+LJTCGo6M9LmpwG9yqeHROZAjEONFC8ETtJZy4lmha3s+XE4g7V+YIbXCgMYsK7LBdHzLUiOYnA=="], + "@nx/nx-linux-arm64-gnu": ["@nx/nx-linux-arm64-gnu@22.1.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-63N6lV+LptT4yVXfshPQoTugyVVNaOdC6gCMAq9D9Xl0MNs8Cc1PQDnUg+snyFAENoLBkJPzT2/NLBAgmRoB/A=="], - "@nx/jest": ["@nx/jest@22.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@nx/jest/-/jest-22.1.1.tgz", { "dependencies": { "@jest/reporters": "^30.0.2", "@jest/test-result": "^30.0.2", "@nx/devkit": "22.1.1", "@nx/js": "22.1.1", "@phenomnomnominal/tsquery": "~5.0.1", "identity-obj-proxy": "3.0.0", "jest-config": "^30.0.2", "jest-resolve": "^30.0.2", "jest-util": "^30.0.2", "minimatch": "9.0.3", "picocolors": "^1.1.0", "resolve.exports": "2.0.3", "semver": "^7.6.3", "tslib": "^2.3.0", "yargs-parser": "21.1.1" } }, "sha512-jhW14AgWZdxqQZbASzDOLqIJxnV9z9njzKO/TtDxksPQkkuwZn7VT/thC+rzja/PmIJYHyQpZ6B1prayk6GCSw=="], + "@nx/nx-linux-arm64-musl": ["@nx/nx-linux-arm64-musl@22.1.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-r1NFh6+virI3GDDnBh4UlPH/EeCNw/pn9vEyaiQopbB+XngLw7HAxwoJmv4rdEMm82w8ztMrBeTwxo7rtKdHcQ=="], - "@nx/js": ["@nx/js@22.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@nx/js/-/js-22.1.1.tgz", { "dependencies": { "@babel/core": "^7.23.2", "@babel/plugin-proposal-decorators": "^7.22.7", "@babel/plugin-transform-class-properties": "^7.22.5", "@babel/plugin-transform-runtime": "^7.23.2", "@babel/preset-env": "^7.23.2", "@babel/preset-typescript": "^7.22.5", "@babel/runtime": "^7.22.6", "@nx/devkit": "22.1.1", "@nx/workspace": "22.1.1", "@zkochan/js-yaml": "0.0.7", "babel-plugin-const-enum": "^1.0.1", "babel-plugin-macros": "^3.1.0", "babel-plugin-transform-typescript-metadata": "^0.3.1", "chalk": "^4.1.0", "columnify": "^1.6.0", "detect-port": "^1.5.1", "ignore": "^5.0.4", "js-tokens": "^4.0.0", "jsonc-parser": "3.2.0", "npm-run-path": "^4.0.1", "picocolors": "^1.1.0", "picomatch": "4.0.2", "semver": "^7.6.3", "source-map-support": "0.5.19", "tinyglobby": "^0.2.12", "tslib": "^2.3.0" }, "peerDependencies": { "verdaccio": "^6.0.5" }, "optionalPeers": ["verdaccio"] }, "sha512-JapLufitpYiZSTIrBc8KhpU4ViMNL513V5g+YhvzW4RNhTAGqxAbeOYK+LEMcrpR2pwk6zCWzRWznQeSaCsbQA=="], + "@nx/nx-linux-x64-gnu": ["@nx/nx-linux-x64-gnu@22.1.1", "", { "os": "linux", "cpu": "x64" }, "sha512-VoogXatmWvjVECjQRd4wN9xMZ2ig1h90rAU0O1XkRF0cuTtNKS/6K6+tABSr88RSYMa8jont+cA1uaNaBEdutA=="], - "@nx/node": ["@nx/node@22.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@nx/node/-/node-22.1.1.tgz", { "dependencies": { "@nx/devkit": "22.1.1", "@nx/docker": "22.1.1", "@nx/eslint": "22.1.1", "@nx/jest": "22.1.1", "@nx/js": "22.1.1", "kill-port": "^1.6.1", "tcp-port-used": "^1.0.2", "tslib": "^2.3.0" } }, "sha512-8BvxgcPydW0Wg0U7WyU7tVT3AY0fOsCW1nmE2tc2gmg7Drd0I+49Ee8GJxkD/sP8HZA+0rndLmUHM68JtIeZPA=="], + "@nx/nx-linux-x64-musl": ["@nx/nx-linux-x64-musl@22.1.1", "", { "os": "linux", "cpu": "x64" }, "sha512-C4rEO7ITUYFvHRAq0fDa0MRdy4VHUWYYKxa4Wigwfzjw57zJ3128tHRARkfwvdkaIUjywlVSM4RudXm3vaDoTg=="], - "@nx/nx-darwin-arm64": ["@nx/nx-darwin-arm64@22.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@nx/nx-darwin-arm64/-/nx-darwin-arm64-22.1.1.tgz", { "os": "darwin", "cpu": "arm64" }, "sha512-B1XlawHKfgj/PCc/A/cV+GtRgPXQQrDV3pv7ohDcqTksHNMc4B5Kx+oyihbeq5u8z+eNBsU8C1WiGEOXvwXEyg=="], + "@nx/nx-win32-arm64-msvc": ["@nx/nx-win32-arm64-msvc@22.1.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-zVyEyrqndOFs3TiLIN+4iTqanCFGjY+7y0LzN2t9XdswRef0H1qGrCTtF5eNGuxYBvguoQmZxnStAjJNYz7ksw=="], - "@nx/nx-darwin-x64": ["@nx/nx-darwin-x64@22.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@nx/nx-darwin-x64/-/nx-darwin-x64-22.1.1.tgz", { "os": "darwin", "cpu": "x64" }, "sha512-VHThopq74WtFro7UiJkiRsKW4fVzmOSnV9rUUZhm4vKqemtDGOHmVWZmQmuUCvVt0pQvxTs00DdYRIWykxeQ6w=="], + "@nx/nx-win32-x64-msvc": ["@nx/nx-win32-x64-msvc@22.1.1", "", { "os": "win32", "cpu": "x64" }, "sha512-GBuWLm2xxmlDtgOomdlg7RZ8ro9cWFKE0Zhvx3bvX1v1x0kzfL4Uw5oychxEmFhhzq+gVs91txdKjqThw11Iqg=="], - "@nx/nx-freebsd-x64": ["@nx/nx-freebsd-x64@22.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@nx/nx-freebsd-x64/-/nx-freebsd-x64-22.1.1.tgz", { "os": "freebsd", "cpu": "x64" }, "sha512-OGklM9RQi1of5TTO1dPvYjgUfMos+Cu3BhDlUnCEOo8SaFfjsi57AFG9nEcMlizWj9q5699kerPRVFmDiz2Nxg=="], + "@nx/plugin": ["@nx/plugin@22.1.1", "", { "dependencies": { "@nx/devkit": "22.1.1", "@nx/eslint": "22.1.1", "@nx/jest": "22.1.1", "@nx/js": "22.1.1", "tslib": "^2.3.0" } }, "sha512-towyy3twqQSEhFrEHFyxAq9QuOUg8h3AcenALWH+3WUmy4mi+g3qjQ6vL/XMFYppHx87xCav1EUTglJyV+bT0w=="], - "@nx/nx-linux-arm-gnueabihf": ["@nx/nx-linux-arm-gnueabihf@22.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-22.1.1.tgz", { "os": "linux", "cpu": "arm" }, "sha512-45c32yMyU1QFyVLrKv5QVT2EfiRh5eAfHu7k1NfNlxuUtgeB34+p96p2hloOVLFlVXMZTIqucJTuXBwaJPg4ag=="], + "@nx/rollup": ["@nx/rollup@22.1.1", "", { "dependencies": { "@nx/devkit": "22.1.1", "@nx/js": "22.1.1", "@rollup/plugin-babel": "^6.0.4", "@rollup/plugin-commonjs": "^25.0.7", "@rollup/plugin-image": "^3.0.3", "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-typescript": "^12.1.0", "autoprefixer": "^10.4.9", "picocolors": "^1.1.0", "picomatch": "4.0.2", "postcss": "^8.4.38", "rollup": "^4.14.0", "rollup-plugin-copy": "^3.5.0", "rollup-plugin-postcss": "^4.0.2", "rollup-plugin-typescript2": "^0.36.0", "tslib": "^2.3.0" } }, "sha512-8hUSWGyig9bp0B3ScMd8f93ghP+0jvl1I2SMRFYpsnHsW+NBWweeNLTLHnLjDddLWitH3hrhMrBnhb4fwYyzjg=="], - "@nx/nx-linux-arm64-gnu": ["@nx/nx-linux-arm64-gnu@22.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-22.1.1.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-63N6lV+LptT4yVXfshPQoTugyVVNaOdC6gCMAq9D9Xl0MNs8Cc1PQDnUg+snyFAENoLBkJPzT2/NLBAgmRoB/A=="], + "@nx/vite": ["@nx/vite@22.1.1", "", { "dependencies": { "@nx/devkit": "22.1.1", "@nx/js": "22.1.1", "@nx/vitest": "22.1.1", "@phenomnomnominal/tsquery": "~5.0.1", "ajv": "^8.0.0", "enquirer": "~2.3.6", "picomatch": "4.0.2", "semver": "^7.6.3", "tsconfig-paths": "^4.1.2", "tslib": "^2.3.0" }, "peerDependencies": { "vite": "^5.0.0 || ^6.0.0 || ^7.0.0", "vitest": "^1.3.1 || ^2.0.0 || ^3.0.0 || ^4.0.0" } }, "sha512-wRei7Mb+rm+hvmIODTM1MLuEYop9tIRRTa2y8t/UpmksAzYLEyHCE44TTdWrTjPMj1sRwRcnq68gSq8j/5Ub3A=="], - "@nx/nx-linux-arm64-musl": ["@nx/nx-linux-arm64-musl@22.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-22.1.1.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-r1NFh6+virI3GDDnBh4UlPH/EeCNw/pn9vEyaiQopbB+XngLw7HAxwoJmv4rdEMm82w8ztMrBeTwxo7rtKdHcQ=="], + "@nx/vitest": ["@nx/vitest@22.1.1", "", { "dependencies": { "@nx/devkit": "22.1.1", "@nx/js": "22.1.1", "@phenomnomnominal/tsquery": "~5.0.1", "semver": "^7.6.3", "tslib": "^2.3.0" }, "peerDependencies": { "vite": "^5.0.0 || ^6.0.0 || ^7.0.0", "vitest": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0" }, "optionalPeers": ["vite", "vitest"] }, "sha512-tedotYAj4oJ9ODgu0C4jn8yDKf6FSLzc9+IC+exuGWa6jjlalUGRPLtLejv4TlQJWtRQzB4fSRJk8t/+LiPPvA=="], - "@nx/nx-linux-x64-gnu": ["@nx/nx-linux-x64-gnu@22.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-22.1.1.tgz", { "os": "linux", "cpu": "x64" }, "sha512-VoogXatmWvjVECjQRd4wN9xMZ2ig1h90rAU0O1XkRF0cuTtNKS/6K6+tABSr88RSYMa8jont+cA1uaNaBEdutA=="], + "@nx/web": ["@nx/web@22.1.1", "", { "dependencies": { "@nx/devkit": "22.1.1", "@nx/js": "22.1.1", "detect-port": "^1.5.1", "http-server": "^14.1.0", "picocolors": "^1.1.0", "tslib": "^2.3.0" } }, "sha512-r9PB7z/Aq/FIBVBmIShFgB8XUB9gT4a7fdlJ8i5EEAEEVACROAVs9XNFUcYxvlQkQ8tRLpNV1gFAtOPAqdi+eg=="], - "@nx/nx-linux-x64-musl": ["@nx/nx-linux-x64-musl@22.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-22.1.1.tgz", { "os": "linux", "cpu": "x64" }, "sha512-C4rEO7ITUYFvHRAq0fDa0MRdy4VHUWYYKxa4Wigwfzjw57zJ3128tHRARkfwvdkaIUjywlVSM4RudXm3vaDoTg=="], + "@nx/workspace": ["@nx/workspace@22.1.1", "", { "dependencies": { "@nx/devkit": "22.1.1", "@zkochan/js-yaml": "0.0.7", "chalk": "^4.1.0", "enquirer": "~2.3.6", "nx": "22.1.1", "picomatch": "4.0.2", "semver": "^7.6.3", "tslib": "^2.3.0", "yargs-parser": "21.1.1" } }, "sha512-qFG/CuoNXImIw0hMUYtFOql8Ed5I/4P37iASZeQQxksTjaShcfzl0Ei2tzAqAANNfef5ANfTdnczRnwwHchnfA=="], - "@nx/nx-win32-arm64-msvc": ["@nx/nx-win32-arm64-msvc@22.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-22.1.1.tgz", { "os": "win32", "cpu": "arm64" }, "sha512-zVyEyrqndOFs3TiLIN+4iTqanCFGjY+7y0LzN2t9XdswRef0H1qGrCTtF5eNGuxYBvguoQmZxnStAjJNYz7ksw=="], + "@oxc-project/types": ["@oxc-project/types@0.103.0", "", {}, "sha512-bkiYX5kaXWwUessFRSoXFkGIQTmc6dLGdxuRTrC+h8PSnIdZyuXHHlLAeTmOue5Br/a0/a7dHH0Gca6eXn9MKg=="], - "@nx/nx-win32-x64-msvc": ["@nx/nx-win32-x64-msvc@22.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-22.1.1.tgz", { "os": "win32", "cpu": "x64" }, "sha512-GBuWLm2xxmlDtgOomdlg7RZ8ro9cWFKE0Zhvx3bvX1v1x0kzfL4Uw5oychxEmFhhzq+gVs91txdKjqThw11Iqg=="], + "@oxc-resolver/binding-android-arm-eabi": ["@oxc-resolver/binding-android-arm-eabi@11.19.0", "", { "os": "android", "cpu": "arm" }, "sha512-dlMjjWE3h+qMujLp5nBX/x7R5ny+xfr4YtsyaMNuM5JImOtQBzpFxQr9kJOKGL+9RbaoTOXpt5KF05f9pnOsgw=="], - "@nx/plugin": ["@nx/plugin@22.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@nx/plugin/-/plugin-22.1.1.tgz", { "dependencies": { "@nx/devkit": "22.1.1", "@nx/eslint": "22.1.1", "@nx/jest": "22.1.1", "@nx/js": "22.1.1", "tslib": "^2.3.0" } }, "sha512-towyy3twqQSEhFrEHFyxAq9QuOUg8h3AcenALWH+3WUmy4mi+g3qjQ6vL/XMFYppHx87xCav1EUTglJyV+bT0w=="], + "@oxc-resolver/binding-android-arm64": ["@oxc-resolver/binding-android-arm64@11.19.0", "", { "os": "android", "cpu": "arm64" }, "sha512-x5P0Y12oMcSC9PKkz1FtdVVLosXYi/05m+ufxPrUggd6vZRBPJhW4zZUsMVbz8dwwk71Dh0f6/2ntw3WPOq+Ig=="], - "@nx/rollup": ["@nx/rollup@22.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@nx/rollup/-/rollup-22.1.1.tgz", { "dependencies": { "@nx/devkit": "22.1.1", "@nx/js": "22.1.1", "@rollup/plugin-babel": "^6.0.4", "@rollup/plugin-commonjs": "^25.0.7", "@rollup/plugin-image": "^3.0.3", "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-typescript": "^12.1.0", "autoprefixer": "^10.4.9", "picocolors": "^1.1.0", "picomatch": "4.0.2", "postcss": "^8.4.38", "rollup": "^4.14.0", "rollup-plugin-copy": "^3.5.0", "rollup-plugin-postcss": "^4.0.2", "rollup-plugin-typescript2": "^0.36.0", "tslib": "^2.3.0" } }, "sha512-8hUSWGyig9bp0B3ScMd8f93ghP+0jvl1I2SMRFYpsnHsW+NBWweeNLTLHnLjDddLWitH3hrhMrBnhb4fwYyzjg=="], + "@oxc-resolver/binding-darwin-arm64": ["@oxc-resolver/binding-darwin-arm64@11.19.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-DjnuIPB60IQrVSCiuVBzN8/8AeeIjthdkk+dZYdZzgLeP2T5ZF41u50haJMtIdGr5cRzRH6zPV/gh6+RFjlvKA=="], - "@nx/vite": ["@nx/vite@22.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@nx/vite/-/vite-22.1.1.tgz", { "dependencies": { "@nx/devkit": "22.1.1", "@nx/js": "22.1.1", "@nx/vitest": "22.1.1", "@phenomnomnominal/tsquery": "~5.0.1", "ajv": "^8.0.0", "enquirer": "~2.3.6", "picomatch": "4.0.2", "semver": "^7.6.3", "tsconfig-paths": "^4.1.2", "tslib": "^2.3.0" }, "peerDependencies": { "vite": "^5.0.0 || ^6.0.0 || ^7.0.0", "vitest": "^1.3.1 || ^2.0.0 || ^3.0.0 || ^4.0.0" } }, "sha512-wRei7Mb+rm+hvmIODTM1MLuEYop9tIRRTa2y8t/UpmksAzYLEyHCE44TTdWrTjPMj1sRwRcnq68gSq8j/5Ub3A=="], + "@oxc-resolver/binding-darwin-x64": ["@oxc-resolver/binding-darwin-x64@11.19.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-dVAqIZIIY7xOXCCV0nJPs8ExlYc6R7mcNpFobwNyE3qlXGbgvwb7Gl3iOumOiPBfF+sbJR3MMP7RAPfKqbvYyA=="], - "@nx/vitest": ["@nx/vitest@22.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@nx/vitest/-/vitest-22.1.1.tgz", { "dependencies": { "@nx/devkit": "22.1.1", "@nx/js": "22.1.1", "@phenomnomnominal/tsquery": "~5.0.1", "semver": "^7.6.3", "tslib": "^2.3.0" }, "peerDependencies": { "vite": "^5.0.0 || ^6.0.0 || ^7.0.0", "vitest": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0" }, "optionalPeers": ["vite", "vitest"] }, "sha512-tedotYAj4oJ9ODgu0C4jn8yDKf6FSLzc9+IC+exuGWa6jjlalUGRPLtLejv4TlQJWtRQzB4fSRJk8t/+LiPPvA=="], + "@oxc-resolver/binding-freebsd-x64": ["@oxc-resolver/binding-freebsd-x64@11.19.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-kwcZ30bIpJNFcT22sIlde4mz0EyXmB3lAefCFWtffqpbmLweQUwz1dKDcsutxEjpkbEKLmfrj1wCyRZp7n5Hnw=="], - "@nx/web": ["@nx/web@22.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@nx/web/-/web-22.1.1.tgz", { "dependencies": { "@nx/devkit": "22.1.1", "@nx/js": "22.1.1", "detect-port": "^1.5.1", "http-server": "^14.1.0", "picocolors": "^1.1.0", "tslib": "^2.3.0" } }, "sha512-r9PB7z/Aq/FIBVBmIShFgB8XUB9gT4a7fdlJ8i5EEAEEVACROAVs9XNFUcYxvlQkQ8tRLpNV1gFAtOPAqdi+eg=="], + "@oxc-resolver/binding-linux-arm-gnueabihf": ["@oxc-resolver/binding-linux-arm-gnueabihf@11.19.0", "", { "os": "linux", "cpu": "arm" }, "sha512-GImk/cb3X+zBGEwr6l9h0dbiNo5zNd52gamZmluEpbyybiZ8kc5q44/7zRR4ILChWRW7pI92W57CJwhkF+wRmg=="], - "@nx/workspace": ["@nx/workspace@22.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@nx/workspace/-/workspace-22.1.1.tgz", { "dependencies": { "@nx/devkit": "22.1.1", "@zkochan/js-yaml": "0.0.7", "chalk": "^4.1.0", "enquirer": "~2.3.6", "nx": "22.1.1", "picomatch": "4.0.2", "semver": "^7.6.3", "tslib": "^2.3.0", "yargs-parser": "21.1.1" } }, "sha512-qFG/CuoNXImIw0hMUYtFOql8Ed5I/4P37iASZeQQxksTjaShcfzl0Ei2tzAqAANNfef5ANfTdnczRnwwHchnfA=="], + "@oxc-resolver/binding-linux-arm-musleabihf": ["@oxc-resolver/binding-linux-arm-musleabihf@11.19.0", "", { "os": "linux", "cpu": "arm" }, "sha512-uIEyws3bBD1gif4SZCOV2XIr6q5fd1WbzzBbpL8qk+TbzOvKMWnMNNtfNacnAGGa2lLRNXR1Fffot2mlZ/Xmbw=="], - "@oxc-project/runtime": ["@oxc-project/runtime@0.96.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@oxc-project/runtime/-/runtime-0.96.0.tgz", {}, "sha512-34lh4o9CcSw09Hx6fKihPu85+m+4pmDlkXwJrLvN5nMq5JrcGhhihVM415zDqT8j8IixO1PYYdQZRN4SwQCncg=="], + "@oxc-resolver/binding-linux-arm64-gnu": ["@oxc-resolver/binding-linux-arm64-gnu@11.19.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-bIkgp+AB+yZfvdKDfjFT7PycsRtih7+zCV5AbnkzfyvNvQ47rfssf8R1IbG++mx+rZ4YUCUu8EbP66HC3O5c5w=="], - "@oxc-project/types": ["@oxc-project/types@0.98.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@oxc-project/types/-/types-0.98.0.tgz", {}, "sha512-Vzmd6FsqVuz5HQVcRC/hrx7Ujo3WEVeQP7C2UNP5uy1hUY4SQvMB+93jxkI1KRHz9a/6cni3glPOtvteN+zpsw=="], + "@oxc-resolver/binding-linux-arm64-musl": ["@oxc-resolver/binding-linux-arm64-musl@11.19.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-bOt5pKPcbidTSy64m2CfM0XcaCmxBEFclCMPuOPO08hh8QIFTiZVhFf/OxTFqyRwhq/tlzzKmXpMo7DfzbO5lQ=="], - "@oxc-resolver/binding-android-arm-eabi": ["@oxc-resolver/binding-android-arm-eabi@11.14.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@oxc-resolver/binding-android-arm-eabi/-/binding-android-arm-eabi-11.14.0.tgz", { "os": "android", "cpu": "arm" }, "sha512-jB47iZ/thvhE+USCLv+XY3IknBbkKr/p7OBsQDTHode/GPw+OHRlit3NQ1bjt1Mj8V2CS7iHdSDYobZ1/0gagQ=="], + "@oxc-resolver/binding-linux-ppc64-gnu": ["@oxc-resolver/binding-linux-ppc64-gnu@11.19.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-BymEPqVeLZzA/1kXow9U9rdniq1r5kk4u686Cx3ZU77YygR48NJI/2TyjM70vKHZffGx75ZShobcc1M5GXG3WA=="], - "@oxc-resolver/binding-android-arm64": ["@oxc-resolver/binding-android-arm64@11.14.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@oxc-resolver/binding-android-arm64/-/binding-android-arm64-11.14.0.tgz", { "os": "android", "cpu": "arm64" }, "sha512-XFJ9t7d/Cz+dWLyqtTy3Xrekz+qqN4hmOU2iOUgr7u71OQsPUHIIeS9/wKanEK0l413gPwapIkyc5x9ltlOtyw=="], + "@oxc-resolver/binding-linux-riscv64-gnu": ["@oxc-resolver/binding-linux-riscv64-gnu@11.19.0", "", { "os": "linux", "cpu": "none" }, "sha512-aFgPTzZZY+XCYe4B+3A1S63xcIh2i136+2TPXWr9NOwXXTdMdBntb1J9fEgxXDnX82MjBknLUpJqAZHNTJzixA=="], - "@oxc-resolver/binding-darwin-arm64": ["@oxc-resolver/binding-darwin-arm64@11.14.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@oxc-resolver/binding-darwin-arm64/-/binding-darwin-arm64-11.14.0.tgz", { "os": "darwin", "cpu": "arm64" }, "sha512-gwehBS9smA1mzK8frDsmUCHz+6baJVwkKF6qViHhoqA3kRKvIZ3k6WNP4JmF19JhOiGxRcoPa8gZRfzNgXwP2A=="], + "@oxc-resolver/binding-linux-riscv64-musl": ["@oxc-resolver/binding-linux-riscv64-musl@11.19.0", "", { "os": "linux", "cpu": "none" }, "sha512-9WDGt7fV9GK97WrWE/VEDhMFv9m0ZXYn5NQ+16QvyT0ux8yGLAvyadi6viaTjEdJII/OaHBRYHcL+zUjmaWwmg=="], - "@oxc-resolver/binding-darwin-x64": ["@oxc-resolver/binding-darwin-x64@11.14.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@oxc-resolver/binding-darwin-x64/-/binding-darwin-x64-11.14.0.tgz", { "os": "darwin", "cpu": "x64" }, "sha512-5wwJvfuoahKiAqqAsMLOI28rqdh3P2K7HkjIWUXNMWAZq6ErX0L5rwJzu6T32+Zxw3k18C7R9IS4wDq/3Ar+6w=="], + "@oxc-resolver/binding-linux-s390x-gnu": ["@oxc-resolver/binding-linux-s390x-gnu@11.19.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-SY3di6tccocppAVal5Hev3D6D1N5Y6TCEypAvNCOiPqku2Y8U/aXfvGbthqdPNa72KYqjUR1vomOv6J9thHITA=="], - "@oxc-resolver/binding-freebsd-x64": ["@oxc-resolver/binding-freebsd-x64@11.14.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@oxc-resolver/binding-freebsd-x64/-/binding-freebsd-x64-11.14.0.tgz", { "os": "freebsd", "cpu": "x64" }, "sha512-MWTt+LOQNcQ6fa+Uu5VikkihLi1PSIrQqqp0QD44k2AORasNWl0jRGBTcMSBIgNe82qEQWYvlGzvOEEOBp01Og=="], + "@oxc-resolver/binding-linux-x64-gnu": ["@oxc-resolver/binding-linux-x64-gnu@11.19.0", "", { "os": "linux", "cpu": "x64" }, "sha512-SV+4zBeCC3xjSE2wvhN45eyABoVRX3xryWBABFKfLwAWhF3wsB3bUF+CantYfQ/TLpasyvplRS9ovvFT9cb/0A=="], - "@oxc-resolver/binding-linux-arm-gnueabihf": ["@oxc-resolver/binding-linux-arm-gnueabihf@11.14.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@oxc-resolver/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-11.14.0.tgz", { "os": "linux", "cpu": "arm" }, "sha512-b6/IBqYrS3o0XiLVBsnex/wK8pTTK+hbGfAMOHVU6p7DBpwPPLgC/tav4IXoOIUCssTFz7aWh/xtUok0swn8VQ=="], + "@oxc-resolver/binding-linux-x64-musl": ["@oxc-resolver/binding-linux-x64-musl@11.19.0", "", { "os": "linux", "cpu": "x64" }, "sha512-LkbjO+r5Isl8Xl29pJYOCB/iSUIULFUJDGdMp+yJD3OgWtSa6VJta2iw7QXmpcoOkq18UIL09yWrlyjLDL0Hug=="], - "@oxc-resolver/binding-linux-arm-musleabihf": ["@oxc-resolver/binding-linux-arm-musleabihf@11.14.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@oxc-resolver/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-11.14.0.tgz", { "os": "linux", "cpu": "arm" }, "sha512-o2Qh5+y5YoqVK6YfzkalHdpmQ5bkbGGxuLg1pZLQ1Ift0x+Vix7DaFEpdCl5Z9xvYXogd/TwOlL0TPl4+MTFLA=="], + "@oxc-resolver/binding-openharmony-arm64": ["@oxc-resolver/binding-openharmony-arm64@11.19.0", "", { "os": "none", "cpu": "arm64" }, "sha512-Ud1gelL5slpEU5AjzBWQz1WheprOAl5CPnCKTWynvvdlBbAZXA6fPYLuCrlRo0uw+x3f37XJ71kirpSew8Zyvg=="], - "@oxc-resolver/binding-linux-arm64-gnu": ["@oxc-resolver/binding-linux-arm64-gnu@11.14.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@oxc-resolver/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-11.14.0.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-lk8mCSg0Tg4sEG73RiPjb7keGcEPwqQnBHX3Z+BR2SWe+qNHpoHcyFMNafzSvEC18vlxC04AUSoa6kJl/C5zig=="], + "@oxc-resolver/binding-wasm32-wasi": ["@oxc-resolver/binding-wasm32-wasi@11.19.0", "", { "dependencies": { "@napi-rs/wasm-runtime": "^1.1.1" }, "cpu": "none" }, "sha512-wXLNAVmL4vWXKaYJnFPgg5zQsSr3Rv+ftNReIU3UkzTcoVLK0805Pnbr2NwcBWSO5hhpOEdys02qlT2kxVgjWw=="], - "@oxc-resolver/binding-linux-arm64-musl": ["@oxc-resolver/binding-linux-arm64-musl@11.14.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@oxc-resolver/binding-linux-arm64-musl/-/binding-linux-arm64-musl-11.14.0.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-KykeIVhCM7pn93ABa0fNe8vk4XvnbfZMELne2s6P9tdJH9KMBsCFBi7a2BmSdUtTqWCAJokAcm46lpczU52Xaw=="], + "@oxc-resolver/binding-win32-arm64-msvc": ["@oxc-resolver/binding-win32-arm64-msvc@11.19.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-zszvr0dJfvv0Jg49hLwjAJ4SRzfsq28SoearUtT1qv3qXRYsBWuctdlRa/lEZkiuG4tZWiY425Jh9QqLafwsAg=="], - "@oxc-resolver/binding-linux-ppc64-gnu": ["@oxc-resolver/binding-linux-ppc64-gnu@11.14.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@oxc-resolver/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-11.14.0.tgz", { "os": "linux", "cpu": "ppc64" }, "sha512-QqPPWAcZU/jHAuam4f3zV8OdEkYRPD2XR0peVet3hoMMgsihR3Lhe7J/bLclmod297FG0+OgBYQVMh2nTN6oWA=="], + "@oxc-resolver/binding-win32-ia32-msvc": ["@oxc-resolver/binding-win32-ia32-msvc@11.19.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-I7ZYujr5XL1l7OwuddbOeqdUyFOaf51W1U2xUogInFdupIAKGqbpugpAK6RaccLcSlN0bbuo3CS5h7ue38SUAg=="], - "@oxc-resolver/binding-linux-riscv64-gnu": ["@oxc-resolver/binding-linux-riscv64-gnu@11.14.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@oxc-resolver/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-11.14.0.tgz", { "os": "linux", "cpu": "none" }, "sha512-DunWA+wafeG3hj1NADUD3c+DRvmyVNqF5LSHVUWA2bzswqmuEZXl3VYBSzxfD0j+UnRTFYLxf27AMptoMsepYg=="], + "@oxc-resolver/binding-win32-x64-msvc": ["@oxc-resolver/binding-win32-x64-msvc@11.19.0", "", { "os": "win32", "cpu": "x64" }, "sha512-NxErbI1TmJEZZVvGPePjgXFZCuOzrjQuJ6YwHjcWkelReK7Uhg4QeL05zRdfTpgkH6IY/C8OjbKx5ZilQ4yDFg=="], - "@oxc-resolver/binding-linux-riscv64-musl": ["@oxc-resolver/binding-linux-riscv64-musl@11.14.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@oxc-resolver/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-11.14.0.tgz", { "os": "linux", "cpu": "none" }, "sha512-4SRvwKTTk2k67EQr9Ny4NGf/BhlwggCI1CXwBbA9IV4oP38DH8b+NAPxDY0ySGRsWbPkG92FYOqM4AWzG4GSgA=="], + "@phenomnomnominal/tsquery": ["@phenomnomnominal/tsquery@5.0.1", "", { "dependencies": { "esquery": "^1.4.0" }, "peerDependencies": { "typescript": "^3 || ^4 || ^5" } }, "sha512-3nVv+e2FQwsW8Aw6qTU6f+1rfcJ3hrcnvH/mu9i8YhxO+9sqbOfpL8m6PbET5+xKOlz/VSbp0RoYWYCtIsnmuA=="], - "@oxc-resolver/binding-linux-s390x-gnu": ["@oxc-resolver/binding-linux-s390x-gnu@11.14.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@oxc-resolver/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-11.14.0.tgz", { "os": "linux", "cpu": "s390x" }, "sha512-hZKvkbsurj4JOom//R1Ab2MlC4cGeVm5zzMt4IsS3XySQeYjyMJ5TDZ3J5rQ8bVj3xi4FpJU2yFZ72GApsHQ6A=="], + "@pkgjs/parseargs": ["@pkgjs/parseargs@0.11.0", "", {}, "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg=="], - "@oxc-resolver/binding-linux-x64-gnu": ["@oxc-resolver/binding-linux-x64-gnu@11.14.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@oxc-resolver/binding-linux-x64-gnu/-/binding-linux-x64-gnu-11.14.0.tgz", { "os": "linux", "cpu": "x64" }, "sha512-hABxQXFXJurivw+0amFdeEcK67cF1BGBIN1+sSHzq3TRv4RoG8n5q2JE04Le2n2Kpt6xg4Y5+lcv+rb2mCJLgQ=="], + "@pkgr/core": ["@pkgr/core@0.2.9", "", {}, "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA=="], - "@oxc-resolver/binding-linux-x64-musl": ["@oxc-resolver/binding-linux-x64-musl@11.14.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@oxc-resolver/binding-linux-x64-musl/-/binding-linux-x64-musl-11.14.0.tgz", { "os": "linux", "cpu": "x64" }, "sha512-Ln73wUB5migZRvC7obAAdqVwvFvk7AUs2JLt4g9QHr8FnqivlsjpUC9Nf2ssrybdjyQzEMjttUxPZz6aKPSAHw=="], + "@polka/url": ["@polka/url@1.0.0-next.29", "", {}, "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww=="], - "@oxc-resolver/binding-wasm32-wasi": ["@oxc-resolver/binding-wasm32-wasi@11.14.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@oxc-resolver/binding-wasm32-wasi/-/binding-wasm32-wasi-11.14.0.tgz", { "dependencies": { "@napi-rs/wasm-runtime": "^1.0.7" }, "cpu": "none" }, "sha512-z+NbELmCOKNtWOqEB5qDfHXOSWB3kGQIIehq6nHtZwHLzdVO2oBq6De/ayhY3ygriC1XhgaIzzniY7jgrNl4Kw=="], + "@puppeteer/browsers": ["@puppeteer/browsers@2.13.0", "", { "dependencies": { "debug": "^4.4.3", "extract-zip": "^2.0.1", "progress": "^2.0.3", "proxy-agent": "^6.5.0", "semver": "^7.7.4", "tar-fs": "^3.1.1", "yargs": "^17.7.2" }, "bin": { "browsers": "lib/cjs/main-cli.js" } }, "sha512-46BZJYJjc/WwmKjsvDFykHtXrtomsCIrwYQPOP7VfMJoZY2bsDF9oROBABR3paDjDcmkUye1Pb1BqdcdiipaWA=="], - "@oxc-resolver/binding-win32-arm64-msvc": ["@oxc-resolver/binding-win32-arm64-msvc@11.14.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@oxc-resolver/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-11.14.0.tgz", { "os": "win32", "cpu": "arm64" }, "sha512-Ft0+qd7HSO61qCTLJ4LCdBGZkpKyDj1rG0OVSZL1DxWQoh97m7vEHd7zAvUtw8EcWjOMBQuX4mfRap/x2MOCpQ=="], + "@quansync/fs": ["@quansync/fs@1.0.0", "", { "dependencies": { "quansync": "^1.0.0" } }, "sha512-4TJ3DFtlf1L5LDMaM6CanJ/0lckGNtJcMjQ1NAV6zDmA0tEHKZtxNKin8EgPaVX1YzljbxckyT2tJrpQKAtngQ=="], - "@oxc-resolver/binding-win32-ia32-msvc": ["@oxc-resolver/binding-win32-ia32-msvc@11.14.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@oxc-resolver/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-11.14.0.tgz", { "os": "win32", "cpu": "ia32" }, "sha512-o54jYNSfGdPxHSvXEhZg8FOV3K99mJ1f7hb1alRFb+Yec1GQXNrJXxZPIxNMYeFT13kwAWB7zuQ0HZLnDHFxfw=="], + "@rolldown/binding-android-arm64": ["@rolldown/binding-android-arm64@1.0.0-beta.57", "", { "os": "android", "cpu": "arm64" }, "sha512-GoOVDy8bjw9z1K30Oo803nSzXJS/vWhFijFsW3kzvZCO8IZwFnNa6pGctmbbJstKl3Fv6UBwyjJQN6msejW0IQ=="], - "@oxc-resolver/binding-win32-x64-msvc": ["@oxc-resolver/binding-win32-x64-msvc@11.14.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@oxc-resolver/binding-win32-x64-msvc/-/binding-win32-x64-msvc-11.14.0.tgz", { "os": "win32", "cpu": "x64" }, "sha512-j97icaORyM6A7GjgmUzfn7V+KGzVvctRA+eAlJb0c2OQNaETFxl6BXZdnGBDb+6oA0Y4Sr/wnekd1kQ0aVyKGg=="], + "@rolldown/binding-darwin-arm64": ["@rolldown/binding-darwin-arm64@1.0.0-beta.57", "", { "os": "darwin", "cpu": "arm64" }, "sha512-9c4FOhRGpl+PX7zBK5p17c5efpF9aSpTPgyigv57hXf5NjQUaJOOiejPLAtFiKNBIfm5Uu6yFkvLKzOafNvlTw=="], - "@phenomnomnominal/tsquery": ["@phenomnomnominal/tsquery@5.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@phenomnomnominal/tsquery/-/tsquery-5.0.1.tgz", { "dependencies": { "esquery": "^1.4.0" }, "peerDependencies": { "typescript": "^3 || ^4 || ^5" } }, "sha512-3nVv+e2FQwsW8Aw6qTU6f+1rfcJ3hrcnvH/mu9i8YhxO+9sqbOfpL8m6PbET5+xKOlz/VSbp0RoYWYCtIsnmuA=="], + "@rolldown/binding-darwin-x64": ["@rolldown/binding-darwin-x64@1.0.0-beta.57", "", { "os": "darwin", "cpu": "x64" }, "sha512-6RsB8Qy4LnGqNGJJC/8uWeLWGOvbRL/KG5aJ8XXpSEupg/KQtlBEiFaYU/Ma5Usj1s+bt3ItkqZYAI50kSplBA=="], - "@pkgjs/parseargs": ["@pkgjs/parseargs@0.11.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", {}, "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg=="], + "@rolldown/binding-freebsd-x64": ["@rolldown/binding-freebsd-x64@1.0.0-beta.57", "", { "os": "freebsd", "cpu": "x64" }, "sha512-uA9kG7+MYkHTbqwv67Tx+5GV5YcKd33HCJIi0311iYBd25yuwyIqvJfBdt1VVB8tdOlyTb9cPAgfCki8nhwTQg=="], - "@pkgr/core": ["@pkgr/core@0.2.9", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@pkgr/core/-/core-0.2.9.tgz", {}, "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA=="], + "@rolldown/binding-linux-arm-gnueabihf": ["@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.57", "", { "os": "linux", "cpu": "arm" }, "sha512-3KkS0cHsllT2T+Te+VZMKHNw6FPQihYsQh+8J4jkzwgvAQpbsbXmrqhkw3YU/QGRrD8qgcOvBr6z5y6Jid+rmw=="], - "@polka/url": ["@polka/url@1.0.0-next.29", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@polka/url/-/url-1.0.0-next.29.tgz", {}, "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww=="], + "@rolldown/binding-linux-arm64-gnu": ["@rolldown/binding-linux-arm64-gnu@1.0.0-beta.57", "", { "os": "linux", "cpu": "arm64" }, "sha512-A3/wu1RgsHhqP3rVH2+sM81bpk+Qd2XaHTl8LtX5/1LNR7QVBFBCpAoiXwjTdGnI5cMdBVi7Z1pi52euW760Fw=="], - "@puppeteer/browsers": ["@puppeteer/browsers@2.10.13", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@puppeteer/browsers/-/browsers-2.10.13.tgz", { "dependencies": { "debug": "^4.4.3", "extract-zip": "^2.0.1", "progress": "^2.0.3", "proxy-agent": "^6.5.0", "semver": "^7.7.3", "tar-fs": "^3.1.1", "yargs": "^17.7.2" }, "bin": { "browsers": "lib/cjs/main-cli.js" } }, "sha512-a9Ruw3j3qlnB5a/zHRTkruppynxqaeE4H9WNj5eYGRWqw0ZauZ23f4W2ARf3hghF5doozyD+CRtt7XSYuYRI/Q=="], + "@rolldown/binding-linux-arm64-musl": ["@rolldown/binding-linux-arm64-musl@1.0.0-beta.57", "", { "os": "linux", "cpu": "arm64" }, "sha512-d0kIVezTQtazpyWjiJIn5to8JlwfKITDqwsFv0Xc6s31N16CD2PC/Pl2OtKgS7n8WLOJbfqgIp5ixYzTAxCqMg=="], - "@quansync/fs": ["@quansync/fs@0.1.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@quansync/fs/-/fs-0.1.5.tgz", { "dependencies": { "quansync": "^0.2.11" } }, "sha512-lNS9hL2aS2NZgNW7BBj+6EBl4rOf8l+tQ0eRY6JWCI8jI2kc53gSoqbjojU0OnAWhzoXiOjFyGsHcDGePB3lhA=="], + "@rolldown/binding-linux-x64-gnu": ["@rolldown/binding-linux-x64-gnu@1.0.0-beta.57", "", { "os": "linux", "cpu": "x64" }, "sha512-E199LPijo98yrLjPCmETx8EF43sZf9t3guSrLee/ej1rCCc3zDVTR4xFfN9BRAapGVl7/8hYqbbiQPTkv73kUg=="], - "@rolldown/binding-android-arm64": ["@rolldown/binding-android-arm64@1.0.0-beta.51", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-beta.51.tgz", { "os": "android", "cpu": "arm64" }, "sha512-Ctn8FUXKWWQI9pWC61P1yumS9WjQtelNS9riHwV7oCkknPGaAry4o7eFx2KgoLMnI2BgFJYpW7Im8/zX3BuONg=="], + "@rolldown/binding-linux-x64-musl": ["@rolldown/binding-linux-x64-musl@1.0.0-beta.57", "", { "os": "linux", "cpu": "x64" }, "sha512-++EQDpk/UJ33kY/BNsh7A7/P1sr/jbMuQ8cE554ZIy+tCUWCivo9zfyjDUoiMdnxqX6HLJEqqGnbGQOvzm2OMQ=="], - "@rolldown/binding-darwin-arm64": ["@rolldown/binding-darwin-arm64@1.0.0-beta.51", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-beta.51.tgz", { "os": "darwin", "cpu": "arm64" }, "sha512-EL1aRW2Oq15ShUEkBPsDtLMO8GTqfb/ktM/dFaVzXKQiEE96Ss6nexMgfgQrg8dGnNpndFyffVDb5IdSibsu1g=="], + "@rolldown/binding-openharmony-arm64": ["@rolldown/binding-openharmony-arm64@1.0.0-beta.57", "", { "os": "none", "cpu": "arm64" }, "sha512-voDEBcNqxbUv/GeXKFtxXVWA+H45P/8Dec4Ii/SbyJyGvCqV1j+nNHfnFUIiRQ2Q40DwPe/djvgYBs9PpETiMA=="], - "@rolldown/binding-darwin-x64": ["@rolldown/binding-darwin-x64@1.0.0-beta.51", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-beta.51.tgz", { "os": "darwin", "cpu": "x64" }, "sha512-uGtYKlFen9pMIPvkHPWZVDtmYhMQi5g5Ddsndg1gf3atScKYKYgs5aDP4DhHeTwGXQglhfBG7lEaOIZ4UAIWww=="], + "@rolldown/binding-wasm32-wasi": ["@rolldown/binding-wasm32-wasi@1.0.0-beta.57", "", { "dependencies": { "@napi-rs/wasm-runtime": "^1.1.0" }, "cpu": "none" }, "sha512-bRhcF7NLlCnpkzLVlVhrDEd0KH22VbTPkPTbMjlYvqhSmarxNIq5vtlQS8qmV7LkPKHrNLWyJW/V/sOyFba26Q=="], - "@rolldown/binding-freebsd-x64": ["@rolldown/binding-freebsd-x64@1.0.0-beta.51", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-beta.51.tgz", { "os": "freebsd", "cpu": "x64" }, "sha512-JRoVTQtHYbZj1P07JLiuTuXjiBtIa7ag7/qgKA6CIIXnAcdl4LrOf7nfDuHPJcuRKaP5dzecMgY99itvWfmUFQ=="], + "@rolldown/binding-win32-arm64-msvc": ["@rolldown/binding-win32-arm64-msvc@1.0.0-beta.57", "", { "os": "win32", "cpu": "arm64" }, "sha512-rnDVGRks2FQ2hgJ2g15pHtfxqkGFGjJQUDWzYznEkE8Ra2+Vag9OffxdbJMZqBWXHVM0iS4dv8qSiEn7bO+n1Q=="], - "@rolldown/binding-linux-arm-gnueabihf": ["@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.51", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-beta.51.tgz", { "os": "linux", "cpu": "arm" }, "sha512-BKATVnpPZ0TYBW9XfDwyd4kPGgvf964HiotIwUgpMrFOFYWqpZ+9ONNzMV4UFAYC7Hb5C2qgYQk/qj2OnAd4RQ=="], + "@rolldown/binding-win32-x64-msvc": ["@rolldown/binding-win32-x64-msvc@1.0.0-beta.57", "", { "os": "win32", "cpu": "x64" }, "sha512-OqIUyNid1M4xTj6VRXp/Lht/qIP8fo25QyAZlCP+p6D2ATCEhyW4ZIFLnC9zAGN/HMbXoCzvwfa8Jjg/8J4YEg=="], - "@rolldown/binding-linux-arm64-gnu": ["@rolldown/binding-linux-arm64-gnu@1.0.0-beta.51", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-beta.51.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-xLd7da5jkfbVsBCm1buIRdWtuXY8+hU3+6ESXY/Tk5X5DPHaifrUblhYDgmA34dQt6WyNC2kfXGgrduPEvDI6Q=="], + "@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.0-beta.57", "", {}, "sha512-aQNelgx14tGA+n2tNSa9x6/jeoCL9fkDeCei7nOKnHx0fEFRRMu5ReiITo+zZD5TzWDGGRjbSYCs93IfRIyTuQ=="], - "@rolldown/binding-linux-arm64-musl": ["@rolldown/binding-linux-arm64-musl@1.0.0-beta.51", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-beta.51.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-EQFXTgHxxTzv3t5EmjUP/DfxzFYx9sMndfLsYaAY4DWF6KsK1fXGYsiupif6qPTViPC9eVmRm78q0pZU/kuIPg=="], + "@rollup/plugin-babel": ["@rollup/plugin-babel@6.1.0", "", { "dependencies": { "@babel/helper-module-imports": "^7.18.6", "@rollup/pluginutils": "^5.0.1" }, "peerDependencies": { "@babel/core": "^7.0.0", "@types/babel__core": "^7.1.9", "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "optionalPeers": ["@types/babel__core", "rollup"] }, "sha512-dFZNuFD2YRcoomP4oYf+DvQNSUA9ih+A3vUqopQx5EdtPGo3WBnQcI/S8pwpz91UsGfL0HsMSOlaMld8HrbubA=="], - "@rolldown/binding-linux-x64-gnu": ["@rolldown/binding-linux-x64-gnu@1.0.0-beta.51", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-beta.51.tgz", { "os": "linux", "cpu": "x64" }, "sha512-p5P6Xpa68w3yFaAdSzIZJbj+AfuDnMDqNSeglBXM7UlJT14Q4zwK+rV+8Mhp9MiUb4XFISZtbI/seBprhkQbiQ=="], + "@rollup/plugin-commonjs": ["@rollup/plugin-commonjs@25.0.8", "", { "dependencies": { "@rollup/pluginutils": "^5.0.1", "commondir": "^1.0.1", "estree-walker": "^2.0.2", "glob": "^8.0.3", "is-reference": "1.2.1", "magic-string": "^0.30.3" }, "peerDependencies": { "rollup": "^2.68.0||^3.0.0||^4.0.0" }, "optionalPeers": ["rollup"] }, "sha512-ZEZWTK5n6Qde0to4vS9Mr5x/0UZoqCxPVR9KRUjU4kA2sO7GEUn1fop0DAwpO6z0Nw/kJON9bDmSxdWxO/TT1A=="], - "@rolldown/binding-linux-x64-musl": ["@rolldown/binding-linux-x64-musl@1.0.0-beta.51", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-beta.51.tgz", { "os": "linux", "cpu": "x64" }, "sha512-sNVVyLa8HB8wkFipdfz1s6i0YWinwpbMWk5hO5S+XAYH2UH67YzUT13gs6wZTKg2x/3gtgXzYnHyF5wMIqoDAw=="], + "@rollup/plugin-image": ["@rollup/plugin-image@3.0.3", "", { "dependencies": { "@rollup/pluginutils": "^5.0.1", "mini-svg-data-uri": "^1.4.4" }, "peerDependencies": { "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "optionalPeers": ["rollup"] }, "sha512-qXWQwsXpvD4trSb8PeFPFajp8JLpRtqqOeNYRUKnEQNHm7e5UP7fuSRcbjQAJ7wDZBbnJvSdY5ujNBQd9B1iFg=="], - "@rolldown/binding-openharmony-arm64": ["@rolldown/binding-openharmony-arm64@1.0.0-beta.51", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-beta.51.tgz", { "os": "none", "cpu": "arm64" }, "sha512-e/JMTz9Q8+T3g/deEi8DK44sFWZWGKr9AOCW5e8C8SCVWzAXqYXAG7FXBWBNzWEZK0Rcwo9TQHTQ9Q0gXgdCaA=="], + "@rollup/plugin-json": ["@rollup/plugin-json@6.1.0", "", { "dependencies": { "@rollup/pluginutils": "^5.1.0" }, "peerDependencies": { "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "optionalPeers": ["rollup"] }, "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA=="], - "@rolldown/binding-wasm32-wasi": ["@rolldown/binding-wasm32-wasi@1.0.0-beta.51", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-beta.51.tgz", { "dependencies": { "@napi-rs/wasm-runtime": "^1.0.7" }, "cpu": "none" }, "sha512-We3LWqSu6J9s5Y0MK+N7fUiiu37aBGPG3Pc347EoaROuAwkCS2u9xJ5dpIyLW4B49CIbS3KaPmn4kTgPb3EyPw=="], + "@rollup/plugin-node-resolve": ["@rollup/plugin-node-resolve@15.3.1", "", { "dependencies": { "@rollup/pluginutils": "^5.0.1", "@types/resolve": "1.20.2", "deepmerge": "^4.2.2", "is-module": "^1.0.0", "resolve": "^1.22.1" }, "peerDependencies": { "rollup": "^2.78.0||^3.0.0||^4.0.0" }, "optionalPeers": ["rollup"] }, "sha512-tgg6b91pAybXHJQMAAwW9VuWBO6Thi+q7BCNARLwSqlmsHz0XYURtGvh/AuwSADXSI4h/2uHbs7s4FzlZDGSGA=="], - "@rolldown/binding-win32-arm64-msvc": ["@rolldown/binding-win32-arm64-msvc@1.0.0-beta.51", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-beta.51.tgz", { "os": "win32", "cpu": "arm64" }, "sha512-fj56buHRuMM+r/cb6ZYfNjNvO/0xeFybI6cTkTROJatdP4fvmQ1NS8D/Lm10FCSDEOkqIz8hK3TGpbAThbPHsA=="], + "@rollup/plugin-typescript": ["@rollup/plugin-typescript@12.3.0", "", { "dependencies": { "@rollup/pluginutils": "^5.1.0", "resolve": "^1.22.1" }, "peerDependencies": { "rollup": "^2.14.0||^3.0.0||^4.0.0", "tslib": "*", "typescript": ">=3.7.0" }, "optionalPeers": ["rollup", "tslib"] }, "sha512-7DP0/p7y3t67+NabT9f8oTBFE6gGkto4SA6Np2oudYmZE/m1dt8RB0SjL1msMxFpLo631qjRCcBlAbq1ml/Big=="], - "@rolldown/binding-win32-ia32-msvc": ["@rolldown/binding-win32-ia32-msvc@1.0.0-beta.51", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rolldown/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.0.0-beta.51.tgz", { "os": "win32", "cpu": "ia32" }, "sha512-fkqEqaeEx8AySXiDm54b/RdINb3C0VovzJA3osMhZsbn6FoD73H0AOIiaVAtGr6x63hefruVKTX8irAm4Jkt2w=="], + "@rollup/pluginutils": ["@rollup/pluginutils@5.3.0", "", { "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", "picomatch": "^4.0.2" }, "peerDependencies": { "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "optionalPeers": ["rollup"] }, "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q=="], - "@rolldown/binding-win32-x64-msvc": ["@rolldown/binding-win32-x64-msvc@1.0.0-beta.51", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-beta.51.tgz", { "os": "win32", "cpu": "x64" }, "sha512-CWuLG/HMtrVcjKGa0C4GnuxONrku89g0+CsH8nT0SNhOtREXuzwgjIXNJImpE/A/DMf9JF+1Xkrq/YRr+F/rCg=="], + "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.59.0", "", { "os": "android", "cpu": "arm" }, "sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg=="], - "@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.0-beta.51", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.51.tgz", {}, "sha512-51/8cNXMrqWqX3o8DZidhwz1uYq0BhHDDSfVygAND1Skx5s1TDw3APSSxCMcFFedwgqGcx34gRouwY+m404BBQ=="], + "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.59.0", "", { "os": "android", "cpu": "arm64" }, "sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q=="], - "@rollup/plugin-babel": ["@rollup/plugin-babel@6.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rollup/plugin-babel/-/plugin-babel-6.1.0.tgz", { "dependencies": { "@babel/helper-module-imports": "^7.18.6", "@rollup/pluginutils": "^5.0.1" }, "peerDependencies": { "@babel/core": "^7.0.0", "@types/babel__core": "^7.1.9", "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "optionalPeers": ["@types/babel__core", "rollup"] }, "sha512-dFZNuFD2YRcoomP4oYf+DvQNSUA9ih+A3vUqopQx5EdtPGo3WBnQcI/S8pwpz91UsGfL0HsMSOlaMld8HrbubA=="], + "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.59.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg=="], - "@rollup/plugin-commonjs": ["@rollup/plugin-commonjs@25.0.8", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.8.tgz", { "dependencies": { "@rollup/pluginutils": "^5.0.1", "commondir": "^1.0.1", "estree-walker": "^2.0.2", "glob": "^8.0.3", "is-reference": "1.2.1", "magic-string": "^0.30.3" }, "peerDependencies": { "rollup": "^2.68.0||^3.0.0||^4.0.0" }, "optionalPeers": ["rollup"] }, "sha512-ZEZWTK5n6Qde0to4vS9Mr5x/0UZoqCxPVR9KRUjU4kA2sO7GEUn1fop0DAwpO6z0Nw/kJON9bDmSxdWxO/TT1A=="], + "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.59.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w=="], - "@rollup/plugin-image": ["@rollup/plugin-image@3.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rollup/plugin-image/-/plugin-image-3.0.3.tgz", { "dependencies": { "@rollup/pluginutils": "^5.0.1", "mini-svg-data-uri": "^1.4.4" }, "peerDependencies": { "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "optionalPeers": ["rollup"] }, "sha512-qXWQwsXpvD4trSb8PeFPFajp8JLpRtqqOeNYRUKnEQNHm7e5UP7fuSRcbjQAJ7wDZBbnJvSdY5ujNBQd9B1iFg=="], + "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.59.0", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA=="], - "@rollup/plugin-json": ["@rollup/plugin-json@6.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rollup/plugin-json/-/plugin-json-6.1.0.tgz", { "dependencies": { "@rollup/pluginutils": "^5.1.0" }, "peerDependencies": { "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "optionalPeers": ["rollup"] }, "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA=="], + "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.59.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg=="], - "@rollup/plugin-node-resolve": ["@rollup/plugin-node-resolve@15.3.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.3.1.tgz", { "dependencies": { "@rollup/pluginutils": "^5.0.1", "@types/resolve": "1.20.2", "deepmerge": "^4.2.2", "is-module": "^1.0.0", "resolve": "^1.22.1" }, "peerDependencies": { "rollup": "^2.78.0||^3.0.0||^4.0.0" }, "optionalPeers": ["rollup"] }, "sha512-tgg6b91pAybXHJQMAAwW9VuWBO6Thi+q7BCNARLwSqlmsHz0XYURtGvh/AuwSADXSI4h/2uHbs7s4FzlZDGSGA=="], + "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.59.0", "", { "os": "linux", "cpu": "arm" }, "sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw=="], - "@rollup/plugin-typescript": ["@rollup/plugin-typescript@12.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rollup/plugin-typescript/-/plugin-typescript-12.3.0.tgz", { "dependencies": { "@rollup/pluginutils": "^5.1.0", "resolve": "^1.22.1" }, "peerDependencies": { "rollup": "^2.14.0||^3.0.0||^4.0.0", "tslib": "*", "typescript": ">=3.7.0" }, "optionalPeers": ["rollup", "tslib"] }, "sha512-7DP0/p7y3t67+NabT9f8oTBFE6gGkto4SA6Np2oudYmZE/m1dt8RB0SjL1msMxFpLo631qjRCcBlAbq1ml/Big=="], + "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.59.0", "", { "os": "linux", "cpu": "arm" }, "sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA=="], - "@rollup/pluginutils": ["@rollup/pluginutils@5.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rollup/pluginutils/-/pluginutils-5.3.0.tgz", { "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", "picomatch": "^4.0.2" }, "peerDependencies": { "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "optionalPeers": ["rollup"] }, "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q=="], + "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.59.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA=="], - "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.53.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.2.tgz", { "os": "android", "cpu": "arm" }, "sha512-yDPzwsgiFO26RJA4nZo8I+xqzh7sJTZIWQOxn+/XOdPE31lAvLIYCKqjV+lNH/vxE2L2iH3plKxDCRK6i+CwhA=="], + "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.59.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA=="], - "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.53.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.2.tgz", { "os": "android", "cpu": "arm64" }, "sha512-k8FontTxIE7b0/OGKeSN5B6j25EuppBcWM33Z19JoVT7UTXFSo3D9CdU39wGTeb29NO3XxpMNauh09B+Ibw+9g=="], + "@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.59.0", "", { "os": "linux", "cpu": "none" }, "sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg=="], - "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.53.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.2.tgz", { "os": "darwin", "cpu": "arm64" }, "sha512-A6s4gJpomNBtJ2yioj8bflM2oogDwzUiMl2yNJ2v9E7++sHrSrsQ29fOfn5DM/iCzpWcebNYEdXpaK4tr2RhfQ=="], + "@rollup/rollup-linux-loong64-musl": ["@rollup/rollup-linux-loong64-musl@4.59.0", "", { "os": "linux", "cpu": "none" }, "sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q=="], - "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.53.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.2.tgz", { "os": "darwin", "cpu": "x64" }, "sha512-e6XqVmXlHrBlG56obu9gDRPW3O3hLxpwHpLsBJvuI8qqnsrtSZ9ERoWUXtPOkY8c78WghyPHZdmPhHLWNdAGEw=="], + "@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.59.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA=="], - "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.53.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.2.tgz", { "os": "freebsd", "cpu": "arm64" }, "sha512-v0E9lJW8VsrwPux5Qe5CwmH/CF/2mQs6xU1MF3nmUxmZUCHazCjLgYvToOk+YuuUqLQBio1qkkREhxhc656ViA=="], + "@rollup/rollup-linux-ppc64-musl": ["@rollup/rollup-linux-ppc64-musl@4.59.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA=="], - "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.53.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.2.tgz", { "os": "freebsd", "cpu": "x64" }, "sha512-ClAmAPx3ZCHtp6ysl4XEhWU69GUB1D+s7G9YjHGhIGCSrsg00nEGRRZHmINYxkdoJehde8VIsDC5t9C0gb6yqA=="], + "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.59.0", "", { "os": "linux", "cpu": "none" }, "sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg=="], - "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.53.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.2.tgz", { "os": "linux", "cpu": "arm" }, "sha512-EPlb95nUsz6Dd9Qy13fI5kUPXNSljaG9FiJ4YUGU1O/Q77i5DYFW5KR8g1OzTcdZUqQQ1KdDqsTohdFVwCwjqg=="], + "@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.59.0", "", { "os": "linux", "cpu": "none" }, "sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg=="], - "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.53.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.2.tgz", { "os": "linux", "cpu": "arm" }, "sha512-BOmnVW+khAUX+YZvNfa0tGTEMVVEerOxN0pDk2E6N6DsEIa2Ctj48FOMfNDdrwinocKaC7YXUZ1pHlKpnkja/Q=="], + "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.59.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w=="], - "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.53.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.2.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-Xt2byDZ+6OVNuREgBXr4+CZDJtrVso5woFtpKdGPhpTPHcNG7D8YXeQzpNbFRxzTVqJf7kvPMCub/pcGUWgBjA=="], + "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.59.0", "", { "os": "linux", "cpu": "x64" }, "sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg=="], - "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.53.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.2.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-+LdZSldy/I9N8+klim/Y1HsKbJ3BbInHav5qE9Iy77dtHC/pibw1SR/fXlWyAk0ThnpRKoODwnAuSjqxFRDHUQ=="], + "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.59.0", "", { "os": "linux", "cpu": "x64" }, "sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg=="], - "@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.53.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.2.tgz", { "os": "linux", "cpu": "none" }, "sha512-8ms8sjmyc1jWJS6WdNSA23rEfdjWB30LH8Wqj0Cqvv7qSHnvw6kgMMXRdop6hkmGPlyYBdRPkjJnj3KCUHV/uQ=="], + "@rollup/rollup-openbsd-x64": ["@rollup/rollup-openbsd-x64@4.59.0", "", { "os": "openbsd", "cpu": "x64" }, "sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ=="], - "@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.53.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.2.tgz", { "os": "linux", "cpu": "ppc64" }, "sha512-3HRQLUQbpBDMmzoxPJYd3W6vrVHOo2cVW8RUo87Xz0JPJcBLBr5kZ1pGcQAhdZgX9VV7NbGNipah1omKKe23/g=="], + "@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.59.0", "", { "os": "none", "cpu": "arm64" }, "sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA=="], - "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.53.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.2.tgz", { "os": "linux", "cpu": "none" }, "sha512-fMjKi+ojnmIvhk34gZP94vjogXNNUKMEYs+EDaB/5TG/wUkoeua7p7VCHnE6T2Tx+iaghAqQX8teQzcvrYpaQA=="], + "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.59.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A=="], - "@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.53.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.2.tgz", { "os": "linux", "cpu": "none" }, "sha512-XuGFGU+VwUUV5kLvoAdi0Wz5Xbh2SrjIxCtZj6Wq8MDp4bflb/+ThZsVxokM7n0pcbkEr2h5/pzqzDYI7cCgLQ=="], + "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.59.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA=="], - "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.53.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.2.tgz", { "os": "linux", "cpu": "s390x" }, "sha512-w6yjZF0P+NGzWR3AXWX9zc0DNEGdtvykB03uhonSHMRa+oWA6novflo2WaJr6JZakG2ucsyb+rvhrKac6NIy+w=="], + "@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.59.0", "", { "os": "win32", "cpu": "x64" }, "sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA=="], - "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.53.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.2.tgz", { "os": "linux", "cpu": "x64" }, "sha512-yo8d6tdfdeBArzC7T/PnHd7OypfI9cbuZzPnzLJIyKYFhAQ8SvlkKtKBMbXDxe1h03Rcr7u++nFS7tqXz87Gtw=="], + "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.59.0", "", { "os": "win32", "cpu": "x64" }, "sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA=="], - "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.53.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.2.tgz", { "os": "linux", "cpu": "x64" }, "sha512-ah59c1YkCxKExPP8O9PwOvs+XRLKwh/mV+3YdKqQ5AMQ0r4M4ZDuOrpWkUaqO7fzAHdINzV9tEVu8vNw48z0lA=="], + "@rtsao/scc": ["@rtsao/scc@1.1.0", "", {}, "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g=="], - "@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.53.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.2.tgz", { "os": "none", "cpu": "arm64" }, "sha512-4VEd19Wmhr+Zy7hbUsFZ6YXEiP48hE//KPLCSVNY5RMGX2/7HZ+QkN55a3atM1C/BZCGIgqN+xrVgtdak2S9+A=="], + "@sinclair/typebox": ["@sinclair/typebox@0.34.48", "", {}, "sha512-kKJTNuK3AQOrgjjotVxMrCn1sUJwM76wMszfq1kdU4uYVJjvEWuFQ6HgvLt4Xz3fSmZlTOxJ/Ie13KnIcWQXFA=="], - "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.53.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.2.tgz", { "os": "win32", "cpu": "arm64" }, "sha512-IlbHFYc/pQCgew/d5fslcy1KEaYVCJ44G8pajugd8VoOEI8ODhtb/j8XMhLpwHCMB3yk2J07ctup10gpw2nyMA=="], + "@sindresorhus/is": ["@sindresorhus/is@5.6.0", "", {}, "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g=="], - "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.53.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.2.tgz", { "os": "win32", "cpu": "ia32" }, "sha512-lNlPEGgdUfSzdCWU176ku/dQRnA7W+Gp8d+cWv73jYrb8uT7HTVVxq62DUYxjbaByuf1Yk0RIIAbDzp+CnOTFg=="], + "@sinonjs/commons": ["@sinonjs/commons@3.0.1", "", { "dependencies": { "type-detect": "4.0.8" } }, "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ=="], - "@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.53.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.2.tgz", { "os": "win32", "cpu": "x64" }, "sha512-S6YojNVrHybQis2lYov1sd+uj7K0Q05NxHcGktuMMdIQ2VixGwAfbJ23NnlvvVV1bdpR2m5MsNBViHJKcA4ADw=="], + "@sinonjs/fake-timers": ["@sinonjs/fake-timers@13.0.5", "", { "dependencies": { "@sinonjs/commons": "^3.0.1" } }, "sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw=="], - "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.53.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.2.tgz", { "os": "win32", "cpu": "x64" }, "sha512-k+/Rkcyx//P6fetPoLMb8pBeqJBNGx81uuf7iljX9++yNBVRDQgD04L+SVXmXmh5ZP4/WOp4mWF0kmi06PW2tA=="], + "@swc-node/core": ["@swc-node/core@1.14.1", "", { "peerDependencies": { "@swc/core": ">= 1.13.3", "@swc/types": ">= 0.1" } }, "sha512-jrt5GUaZUU6cmMS+WTJEvGvaB6j1YNKPHPzC2PUi2BjaFbtxURHj6641Az6xN7b665hNniAIdvjxWcRml5yCnw=="], - "@rtsao/scc": ["@rtsao/scc@1.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rtsao/scc/-/scc-1.1.0.tgz", {}, "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g=="], + "@swc-node/register": ["@swc-node/register@1.9.2", "", { "dependencies": { "@swc-node/core": "^1.13.1", "@swc-node/sourcemap-support": "^0.5.0", "colorette": "^2.0.20", "debug": "^4.3.4", "pirates": "^4.0.6", "tslib": "^2.6.2" }, "peerDependencies": { "@swc/core": ">= 1.4.13", "typescript": ">= 4.3" } }, "sha512-BBjg0QNuEEmJSoU/++JOXhrjWdu3PTyYeJWsvchsI0Aqtj8ICkz/DqlwtXbmZVZ5vuDPpTfFlwDBZe81zgShMA=="], - "@sap/cds": ["@sap/cds@8.9.7", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@sap/cds/-/cds-8.9.7.tgz", { "dependencies": { "@sap/cds-compiler": "^5", "@sap/cds-fiori": "^1", "@sap/cds-foss": "^5.0.0" }, "peerDependencies": { "@eslint/js": "^9", "express": "^4", "tar": "^7" }, "optionalPeers": ["express", "tar"], "bin": { "cds-test": "bin/test.js", "cds-serve": "bin/serve.js", "cds-deploy": "lib/dbs/cds-deploy.js" } }, "sha512-dZyNenU5XFxMwpmDsjoLscPwIceDtc+0vFHtIRzNQPQissywm1sWBpxjO8QpwcAq1GpIeTdgqFZIeZ6bT6NzQg=="], + "@swc-node/sourcemap-support": ["@swc-node/sourcemap-support@0.5.1", "", { "dependencies": { "source-map-support": "^0.5.21", "tslib": "^2.6.3" } }, "sha512-JxIvIo/Hrpv0JCHSyRpetAdQ6lB27oFYhv0PKCNf1g2gUXOjpeR1exrXccRxLMuAV5WAmGFBwRnNOJqN38+qtg=="], - "@sap/cds-compiler": ["@sap/cds-compiler@5.9.12", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@sap/cds-compiler/-/cds-compiler-5.9.12.tgz", { "dependencies": { "antlr4": "4.9.3" }, "bin": { "cdsc": "bin/cdsc.js", "cdshi": "bin/cdshi.js", "cdsse": "bin/cdsse.js" } }, "sha512-1KrNgO0aJ0CCtCGdCvgyQycBXMfBk7uWE/D1jQabW8WnYp9e4bsdv+GFPtUpFuXgysADzziUEhXDU82zxgRnnA=="], + "@swc/cli": ["@swc/cli@0.6.0", "", { "dependencies": { "@swc/counter": "^0.1.3", "@xhmikosr/bin-wrapper": "^13.0.5", "commander": "^8.3.0", "fast-glob": "^3.2.5", "minimatch": "^9.0.3", "piscina": "^4.3.1", "semver": "^7.3.8", "slash": "3.0.0", "source-map": "^0.7.3" }, "peerDependencies": { "@swc/core": "^1.2.66", "chokidar": "^4.0.1" }, "optionalPeers": ["chokidar"], "bin": { "swc": "bin/swc.js", "swcx": "bin/swcx.js", "spack": "bin/spack.js" } }, "sha512-Q5FsI3Cw0fGMXhmsg7c08i4EmXCrcl+WnAxb6LYOLHw4JFFC3yzmx9LaXZ7QMbA+JZXbigU2TirI7RAfO0Qlnw=="], - "@sap/cds-dk": ["@sap/cds-dk@8.9.10", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@sap/cds-dk/-/cds-dk-8.9.10.tgz", { "dependencies": { "@cap-js/asyncapi": "^1.0.0", "@cap-js/openapi": "^1.0.0", "@sap/cds": "^7 || ^8", "@sap/cds-foss": "^5.0.0", "@sap/cds-mtxs": "^1.9.0 || ^2", "@sap/eslint-plugin-cds": "^3.0.1", "@sap/hdi-deploy": "^5", "axios": "^1", "eslint": "^9", "express": "^4.17.3", "hdb": "^0", "livereload-js": "^4.0.1", "mustache": "^4.0.1", "node-watch": ">=0.7", "ws": "^8.4.2", "xml-js": "^1.6.11" }, "optionalDependencies": { "@cap-js/sqlite": "^1" }, "bin": { "cds": "bin/cds.js", "cds-ts": "bin/cds-ts.js", "cds-tsx": "bin/cds-tsx.js" } }, "sha512-xVOtP0MO5PY5j8asB5GAWFeO3VzJwwJVkqBXeZAQldi9GQBMSgTxs6m1ehed/7AlJ1D8EqK/v9IEHUdL/ZQ/Eg=="], + "@swc/core": ["@swc/core@1.13.21", "", { "dependencies": { "@swc/counter": "^0.1.3", "@swc/types": "^0.1.25" }, "optionalDependencies": { "@swc/core-darwin-arm64": "1.13.21", "@swc/core-darwin-x64": "1.13.21", "@swc/core-linux-arm-gnueabihf": "1.13.21", "@swc/core-linux-arm64-gnu": "1.13.21", "@swc/core-linux-arm64-musl": "1.13.21", "@swc/core-linux-x64-gnu": "1.13.21", "@swc/core-linux-x64-musl": "1.13.21", "@swc/core-win32-arm64-msvc": "1.13.21", "@swc/core-win32-ia32-msvc": "1.13.21", "@swc/core-win32-x64-msvc": "1.13.21" }, "peerDependencies": { "@swc/helpers": ">=0.5.17" }, "optionalPeers": ["@swc/helpers"] }, "sha512-umBaSb65O1v6Lt8RV3o5srw0nKr25amf/yRIGFPug63sAerL9n2UkmfGywA1l1aN81W7faXIynF0JmlQ2wPSdw=="], - "@sap/cds-fiori": ["@sap/cds-fiori@1.4.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@sap/cds-fiori/-/cds-fiori-1.4.1.tgz", { "peerDependencies": { "@sap/cds": ">=7.6", "express": ">=4" } }, "sha512-laoK+xfJRcJy+zWzUdgqOOy5V6lpUi9I3CN8yeGmMIktQ1ZsXc52814WvoWt4TWchY1/+rNYuWDl9Q8ttj4Y4w=="], + "@swc/core-darwin-arm64": ["@swc/core-darwin-arm64@1.13.21", "", { "os": "darwin", "cpu": "arm64" }, "sha512-0jaz9r7f0PDK8OyyVooadv8dkFlQmVmBK6DtAnWSRjkCbNt4sdqsc9ZkyEDJXaxOVcMQ3pJx/Igniyw5xqACLw=="], - "@sap/cds-foss": ["@sap/cds-foss@5.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@sap/cds-foss/-/cds-foss-5.0.1.tgz", { "dependencies": { "big.js": "^6.1.1", "generic-pool": "^3.8.2", "xmlbuilder": "^15.1.1", "yaml": "^2.2.2" } }, "sha512-q6h7LkEx6w9LswCIQzJJ2mnoyeGS8jrmBXN4I4+aECRL60mkLskoqGetot+2tX2xXGxCYJuo5v1dtSafwBqTRQ=="], + "@swc/core-darwin-x64": ["@swc/core-darwin-x64@1.13.21", "", { "os": "darwin", "cpu": "x64" }, "sha512-pLeZn+NTGa7oW/ysD6oM82BjKZl71WNJR9BKXRsOhrNQeUWv55DCoZT2P4DzeU5Xgjmos+iMoDLg/9R6Ngc0PA=="], - "@sap/cds-mtxs": ["@sap/cds-mtxs@2.7.6", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@sap/cds-mtxs/-/cds-mtxs-2.7.6.tgz", { "dependencies": { "@sap/hdi-deploy": ">=4", "axios": "^1" }, "bin": { "cds-mtx": "bin/cds-mtx.js", "cds-mtx-migrate": "bin/cds-mtx-migrate.js" } }, "sha512-LcWRJozl9SDnMMrWec/mApDoWTb4lb8qGyN7hbxxnO59PnUQcalE3fLup//EiNSZvKHzDxM/FRpQLl8letBz5g=="], + "@swc/core-linux-arm-gnueabihf": ["@swc/core-linux-arm-gnueabihf@1.13.21", "", { "os": "linux", "cpu": "arm" }, "sha512-p9aYzTmP7qVDPkXxnbekOfbT11kxnPiuLrUbgpN/vn6sxXDCObMAiY63WlDR0IauBK571WUdmgb04goe/xTQWw=="], - "@sap/eslint-plugin-cds": ["@sap/eslint-plugin-cds@3.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@sap/eslint-plugin-cds/-/eslint-plugin-cds-3.2.0.tgz", { "dependencies": { "@sap/cds": ">=7", "semver": "^7.7.1" }, "peerDependencies": { "eslint": ">=8" } }, "sha512-S0DTQKi7ltj8RwKkrDBYblTDWCeCpdftx3Kh5OFMEq0SBsUdWnpRrKfTVWQuqBQPqGkcuei9yAh0zvX/4Xkjig=="], + "@swc/core-linux-arm64-gnu": ["@swc/core-linux-arm64-gnu@1.13.21", "", { "os": "linux", "cpu": "arm64" }, "sha512-yRqFoGlCwEX1nS7OajBE23d0LPeONmFAgoe4rgRYvaUb60qGxIJoMMdvF2g3dum9ZyVDYAb3kP09hbXFbMGr4A=="], - "@sap/hdi": ["@sap/hdi@4.8.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@sap/hdi/-/hdi-4.8.0.tgz", { "dependencies": { "async": "^3.2.3" }, "peerDependencies": { "@sap/hana-client": "^2 >= 2.5", "hdb": "^2 || ^0" }, "optionalPeers": ["@sap/hana-client", "hdb"] }, "sha512-tkJmY2ffm6mt4/LFwRBihlQkMxNAXa3ngvRe2N/6+qLIsUNdrH/M03S5mkygXq56K+KoVVZYuradajCusMWwsw=="], + "@swc/core-linux-arm64-musl": ["@swc/core-linux-arm64-musl@1.13.21", "", { "os": "linux", "cpu": "arm64" }, "sha512-wu5EGA86gtdYMW69eU80jROzArzD3/6G6zzK0VVR+OFt/0zqbajiiszIpaniOVACObLfJEcShQ05B3q0+CpUEg=="], - "@sap/hdi-deploy": ["@sap/hdi-deploy@5.5.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@sap/hdi-deploy/-/hdi-deploy-5.5.1.tgz", { "dependencies": { "@sap/hdi": "^4.8.0", "@sap/xsenv": "^5.2.0", "async": "^3.2.6", "dotenv": "^16.4.5", "handlebars": "^4.7.8", "micromatch": "^4.0.8" }, "peerDependencies": { "@sap/hana-client": "^2 >= 2.6", "hdb": "^2 || ^0" }, "optionalPeers": ["@sap/hana-client", "hdb"] }, "sha512-5r9SIkXX7cO+MwRFF32O566sMx6LP1mLin0eT9F+Adqy+0SrdwkWv4JslQzYetiWLuNsfqQljcao62alaxts8A=="], + "@swc/core-linux-x64-gnu": ["@swc/core-linux-x64-gnu@1.13.21", "", { "os": "linux", "cpu": "x64" }, "sha512-AoGGVPNXH3C4S7WlJOxN1nGW5nj//J9uKysS7CIBotRmHXfHO4wPK3TVFRTA4cuouAWBBn7O8m3A99p/GR+iaw=="], - "@sap/xsenv": ["@sap/xsenv@5.6.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@sap/xsenv/-/xsenv-5.6.1.tgz", { "dependencies": { "debug": "4.4.0", "node-cache": "^5.1.2", "verror": "1.10.1" } }, "sha512-4pDpsYLNJsLUBWtTSG+TJ8ul5iY0dWDyJgTy2H/WZGZww9CSPLP/39x+syDDTjkggsmZAlo9t7y9TiXMmtAunw=="], + "@swc/core-linux-x64-musl": ["@swc/core-linux-x64-musl@1.13.21", "", { "os": "linux", "cpu": "x64" }, "sha512-cBy2amuDuxMZnEq16MqGu+DUlEFqI+7F/OACNlk7zEJKq48jJKGEMqJz3X2ucJE5jqUIg6Pos6Uo/y+vuWQymQ=="], - "@sinclair/typebox": ["@sinclair/typebox@0.34.41", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@sinclair/typebox/-/typebox-0.34.41.tgz", {}, "sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g=="], + "@swc/core-win32-arm64-msvc": ["@swc/core-win32-arm64-msvc@1.13.21", "", { "os": "win32", "cpu": "arm64" }, "sha512-2xfR5gnqBGOMOlY3s1QiFTXZaivTILMwX67FD2uzT6OCbT/3lyAM/4+3BptBXD8pUkkOGMFLsdeHw4fbO1GrpQ=="], - "@sindresorhus/is": ["@sindresorhus/is@5.6.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@sindresorhus/is/-/is-5.6.0.tgz", {}, "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g=="], + "@swc/core-win32-ia32-msvc": ["@swc/core-win32-ia32-msvc@1.13.21", "", { "os": "win32", "cpu": "ia32" }, "sha512-0pkpgKlBDwUImWTQxLakKbzZI6TIGVVAxk658oxrY8VK+hxRy2iezFY6m5Urmeds47M/cnW3dO+OY4C2caOF8A=="], - "@sinonjs/commons": ["@sinonjs/commons@3.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@sinonjs/commons/-/commons-3.0.1.tgz", { "dependencies": { "type-detect": "4.0.8" } }, "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ=="], + "@swc/core-win32-x64-msvc": ["@swc/core-win32-x64-msvc@1.13.21", "", { "os": "win32", "cpu": "x64" }, "sha512-DAnIw2J95TOW4Kr7NBx12vlZPW3QndbpFMmuC7x+fPoozoLpEscaDkiYhk7/sTtY9pubPMfHFPBORlbqyQCfOQ=="], - "@sinonjs/fake-timers": ["@sinonjs/fake-timers@13.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@sinonjs/fake-timers/-/fake-timers-13.0.5.tgz", { "dependencies": { "@sinonjs/commons": "^3.0.1" } }, "sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw=="], + "@swc/counter": ["@swc/counter@0.1.3", "", {}, "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ=="], - "@swc-node/core": ["@swc-node/core@1.14.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@swc-node/core/-/core-1.14.1.tgz", { "peerDependencies": { "@swc/core": ">= 1.13.3", "@swc/types": ">= 0.1" } }, "sha512-jrt5GUaZUU6cmMS+WTJEvGvaB6j1YNKPHPzC2PUi2BjaFbtxURHj6641Az6xN7b665hNniAIdvjxWcRml5yCnw=="], + "@swc/helpers": ["@swc/helpers@0.5.19", "", { "dependencies": { "tslib": "^2.8.0" } }, "sha512-QamiFeIK3txNjgUTNppE6MiG3p7TdninpZu0E0PbqVh1a9FNLT2FRhisaa4NcaX52XVhA5l7Pk58Ft7Sqi/2sA=="], - "@swc-node/register": ["@swc-node/register@1.9.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@swc-node/register/-/register-1.9.2.tgz", { "dependencies": { "@swc-node/core": "^1.13.1", "@swc-node/sourcemap-support": "^0.5.0", "colorette": "^2.0.20", "debug": "^4.3.4", "pirates": "^4.0.6", "tslib": "^2.6.2" }, "peerDependencies": { "@swc/core": ">= 1.4.13", "typescript": ">= 4.3" } }, "sha512-BBjg0QNuEEmJSoU/++JOXhrjWdu3PTyYeJWsvchsI0Aqtj8ICkz/DqlwtXbmZVZ5vuDPpTfFlwDBZe81zgShMA=="], + "@swc/jest": ["@swc/jest@0.2.39", "", { "dependencies": { "@jest/create-cache-key-function": "^30.0.0", "@swc/counter": "^0.1.3", "jsonc-parser": "^3.2.0" }, "peerDependencies": { "@swc/core": "*" } }, "sha512-eyokjOwYd0Q8RnMHri+8/FS1HIrIUKK/sRrFp8c1dThUOfNeCWbLmBP1P5VsKdvmkd25JaH+OKYwEYiAYg9YAA=="], - "@swc-node/sourcemap-support": ["@swc-node/sourcemap-support@0.5.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@swc-node/sourcemap-support/-/sourcemap-support-0.5.1.tgz", { "dependencies": { "source-map-support": "^0.5.21", "tslib": "^2.6.3" } }, "sha512-JxIvIo/Hrpv0JCHSyRpetAdQ6lB27oFYhv0PKCNf1g2gUXOjpeR1exrXccRxLMuAV5WAmGFBwRnNOJqN38+qtg=="], + "@swc/types": ["@swc/types@0.1.25", "", { "dependencies": { "@swc/counter": "^0.1.3" } }, "sha512-iAoY/qRhNH8a/hBvm3zKj9qQ4oc2+3w1unPJa2XvTK3XjeLXtzcCingVPw/9e5mn1+0yPqxcBGp9Jf0pkfMb1g=="], - "@swc/cli": ["@swc/cli@0.6.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@swc/cli/-/cli-0.6.0.tgz", { "dependencies": { "@swc/counter": "^0.1.3", "@xhmikosr/bin-wrapper": "^13.0.5", "commander": "^8.3.0", "fast-glob": "^3.2.5", "minimatch": "^9.0.3", "piscina": "^4.3.1", "semver": "^7.3.8", "slash": "3.0.0", "source-map": "^0.7.3" }, "peerDependencies": { "@swc/core": "^1.2.66", "chokidar": "^4.0.1" }, "optionalPeers": ["chokidar"], "bin": { "swc": "bin/swc.js", "swcx": "bin/swcx.js", "spack": "bin/spack.js" } }, "sha512-Q5FsI3Cw0fGMXhmsg7c08i4EmXCrcl+WnAxb6LYOLHw4JFFC3yzmx9LaXZ7QMbA+JZXbigU2TirI7RAfO0Qlnw=="], + "@szmarczak/http-timer": ["@szmarczak/http-timer@5.0.1", "", { "dependencies": { "defer-to-connect": "^2.0.1" } }, "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw=="], - "@swc/core": ["@swc/core@1.13.21", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@swc/core/-/core-1.13.21.tgz", { "dependencies": { "@swc/counter": "^0.1.3", "@swc/types": "^0.1.25" }, "optionalDependencies": { "@swc/core-darwin-arm64": "1.13.21", "@swc/core-darwin-x64": "1.13.21", "@swc/core-linux-arm-gnueabihf": "1.13.21", "@swc/core-linux-arm64-gnu": "1.13.21", "@swc/core-linux-arm64-musl": "1.13.21", "@swc/core-linux-x64-gnu": "1.13.21", "@swc/core-linux-x64-musl": "1.13.21", "@swc/core-win32-arm64-msvc": "1.13.21", "@swc/core-win32-ia32-msvc": "1.13.21", "@swc/core-win32-x64-msvc": "1.13.21" }, "peerDependencies": { "@swc/helpers": ">=0.5.17" }, "optionalPeers": ["@swc/helpers"] }, "sha512-umBaSb65O1v6Lt8RV3o5srw0nKr25amf/yRIGFPug63sAerL9n2UkmfGywA1l1aN81W7faXIynF0JmlQ2wPSdw=="], + "@tokenizer/inflate": ["@tokenizer/inflate@0.2.7", "", { "dependencies": { "debug": "^4.4.0", "fflate": "^0.8.2", "token-types": "^6.0.0" } }, "sha512-MADQgmZT1eKjp06jpI2yozxaU9uVs4GzzgSL+uEq7bVcJ9V1ZXQkeGNql1fsSI0gMy1vhvNTNbUqrx+pZfJVmg=="], - "@swc/core-darwin-arm64": ["@swc/core-darwin-arm64@1.13.21", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@swc/core-darwin-arm64/-/core-darwin-arm64-1.13.21.tgz", { "os": "darwin", "cpu": "arm64" }, "sha512-0jaz9r7f0PDK8OyyVooadv8dkFlQmVmBK6DtAnWSRjkCbNt4sdqsc9ZkyEDJXaxOVcMQ3pJx/Igniyw5xqACLw=="], + "@tokenizer/token": ["@tokenizer/token@0.3.0", "", {}, "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A=="], - "@swc/core-darwin-x64": ["@swc/core-darwin-x64@1.13.21", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@swc/core-darwin-x64/-/core-darwin-x64-1.13.21.tgz", { "os": "darwin", "cpu": "x64" }, "sha512-pLeZn+NTGa7oW/ysD6oM82BjKZl71WNJR9BKXRsOhrNQeUWv55DCoZT2P4DzeU5Xgjmos+iMoDLg/9R6Ngc0PA=="], + "@tootallnate/quickjs-emscripten": ["@tootallnate/quickjs-emscripten@0.23.0", "", {}, "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA=="], - "@swc/core-linux-arm-gnueabihf": ["@swc/core-linux-arm-gnueabihf@1.13.21", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.13.21.tgz", { "os": "linux", "cpu": "arm" }, "sha512-p9aYzTmP7qVDPkXxnbekOfbT11kxnPiuLrUbgpN/vn6sxXDCObMAiY63WlDR0IauBK571WUdmgb04goe/xTQWw=="], + "@trysound/sax": ["@trysound/sax@0.2.0", "", {}, "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA=="], - "@swc/core-linux-arm64-gnu": ["@swc/core-linux-arm64-gnu@1.13.21", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.13.21.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-yRqFoGlCwEX1nS7OajBE23d0LPeONmFAgoe4rgRYvaUb60qGxIJoMMdvF2g3dum9ZyVDYAb3kP09hbXFbMGr4A=="], + "@ts-morph/common": ["@ts-morph/common@0.28.1", "", { "dependencies": { "minimatch": "^10.0.1", "path-browserify": "^1.0.1", "tinyglobby": "^0.2.14" } }, "sha512-W74iWf7ILp1ZKNYXY5qbddNaml7e9Sedv5lvU1V8lftlitkc9Pq1A+jlH23ltDgWYeZFFEqGCD1Ies9hqu3O+g=="], - "@swc/core-linux-arm64-musl": ["@swc/core-linux-arm64-musl@1.13.21", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.13.21.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-wu5EGA86gtdYMW69eU80jROzArzD3/6G6zzK0VVR+OFt/0zqbajiiszIpaniOVACObLfJEcShQ05B3q0+CpUEg=="], + "@tsconfig/node10": ["@tsconfig/node10@1.0.12", "", {}, "sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ=="], - "@swc/core-linux-x64-gnu": ["@swc/core-linux-x64-gnu@1.13.21", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.13.21.tgz", { "os": "linux", "cpu": "x64" }, "sha512-AoGGVPNXH3C4S7WlJOxN1nGW5nj//J9uKysS7CIBotRmHXfHO4wPK3TVFRTA4cuouAWBBn7O8m3A99p/GR+iaw=="], + "@tsconfig/node12": ["@tsconfig/node12@1.0.11", "", {}, "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag=="], - "@swc/core-linux-x64-musl": ["@swc/core-linux-x64-musl@1.13.21", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.13.21.tgz", { "os": "linux", "cpu": "x64" }, "sha512-cBy2amuDuxMZnEq16MqGu+DUlEFqI+7F/OACNlk7zEJKq48jJKGEMqJz3X2ucJE5jqUIg6Pos6Uo/y+vuWQymQ=="], + "@tsconfig/node14": ["@tsconfig/node14@1.0.3", "", {}, "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow=="], - "@swc/core-win32-arm64-msvc": ["@swc/core-win32-arm64-msvc@1.13.21", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.13.21.tgz", { "os": "win32", "cpu": "arm64" }, "sha512-2xfR5gnqBGOMOlY3s1QiFTXZaivTILMwX67FD2uzT6OCbT/3lyAM/4+3BptBXD8pUkkOGMFLsdeHw4fbO1GrpQ=="], + "@tsconfig/node16": ["@tsconfig/node16@1.0.4", "", {}, "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA=="], - "@swc/core-win32-ia32-msvc": ["@swc/core-win32-ia32-msvc@1.13.21", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.13.21.tgz", { "os": "win32", "cpu": "ia32" }, "sha512-0pkpgKlBDwUImWTQxLakKbzZI6TIGVVAxk658oxrY8VK+hxRy2iezFY6m5Urmeds47M/cnW3dO+OY4C2caOF8A=="], + "@tybys/wasm-util": ["@tybys/wasm-util@0.9.0", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw=="], - "@swc/core-win32-x64-msvc": ["@swc/core-win32-x64-msvc@1.13.21", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.13.21.tgz", { "os": "win32", "cpu": "x64" }, "sha512-DAnIw2J95TOW4Kr7NBx12vlZPW3QndbpFMmuC7x+fPoozoLpEscaDkiYhk7/sTtY9pubPMfHFPBORlbqyQCfOQ=="], + "@types/babel__core": ["@types/babel__core@7.20.5", "", { "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", "@types/babel__generator": "*", "@types/babel__template": "*", "@types/babel__traverse": "*" } }, "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA=="], - "@swc/counter": ["@swc/counter@0.1.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@swc/counter/-/counter-0.1.3.tgz", {}, "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ=="], + "@types/babel__generator": ["@types/babel__generator@7.27.0", "", { "dependencies": { "@babel/types": "^7.0.0" } }, "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg=="], - "@swc/helpers": ["@swc/helpers@0.5.17", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@swc/helpers/-/helpers-0.5.17.tgz", { "dependencies": { "tslib": "^2.8.0" } }, "sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A=="], + "@types/babel__template": ["@types/babel__template@7.4.4", "", { "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" } }, "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A=="], - "@swc/jest": ["@swc/jest@0.2.39", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@swc/jest/-/jest-0.2.39.tgz", { "dependencies": { "@jest/create-cache-key-function": "^30.0.0", "@swc/counter": "^0.1.3", "jsonc-parser": "^3.2.0" }, "peerDependencies": { "@swc/core": "*" } }, "sha512-eyokjOwYd0Q8RnMHri+8/FS1HIrIUKK/sRrFp8c1dThUOfNeCWbLmBP1P5VsKdvmkd25JaH+OKYwEYiAYg9YAA=="], + "@types/babel__traverse": ["@types/babel__traverse@7.28.0", "", { "dependencies": { "@babel/types": "^7.28.2" } }, "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q=="], - "@swc/types": ["@swc/types@0.1.25", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@swc/types/-/types-0.1.25.tgz", { "dependencies": { "@swc/counter": "^0.1.3" } }, "sha512-iAoY/qRhNH8a/hBvm3zKj9qQ4oc2+3w1unPJa2XvTK3XjeLXtzcCingVPw/9e5mn1+0yPqxcBGp9Jf0pkfMb1g=="], + "@types/chai": ["@types/chai@5.2.3", "", { "dependencies": { "@types/deep-eql": "*", "assertion-error": "^2.0.1" } }, "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA=="], - "@szmarczak/http-timer": ["@szmarczak/http-timer@5.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", { "dependencies": { "defer-to-connect": "^2.0.1" } }, "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw=="], + "@types/deep-eql": ["@types/deep-eql@4.0.2", "", {}, "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw=="], - "@tokenizer/inflate": ["@tokenizer/inflate@0.2.7", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@tokenizer/inflate/-/inflate-0.2.7.tgz", { "dependencies": { "debug": "^4.4.0", "fflate": "^0.8.2", "token-types": "^6.0.0" } }, "sha512-MADQgmZT1eKjp06jpI2yozxaU9uVs4GzzgSL+uEq7bVcJ9V1ZXQkeGNql1fsSI0gMy1vhvNTNbUqrx+pZfJVmg=="], + "@types/eslint": ["@types/eslint@9.6.1", "", { "dependencies": { "@types/estree": "*", "@types/json-schema": "*" } }, "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag=="], - "@tokenizer/token": ["@tokenizer/token@0.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@tokenizer/token/-/token-0.3.0.tgz", {}, "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A=="], + "@types/eslint-scope": ["@types/eslint-scope@3.7.7", "", { "dependencies": { "@types/eslint": "*", "@types/estree": "*" } }, "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg=="], - "@tootallnate/quickjs-emscripten": ["@tootallnate/quickjs-emscripten@0.23.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", {}, "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA=="], + "@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="], - "@trysound/sax": ["@trysound/sax@0.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@trysound/sax/-/sax-0.2.0.tgz", {}, "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA=="], + "@types/fs-extra": ["@types/fs-extra@8.1.5", "", { "dependencies": { "@types/node": "*" } }, "sha512-0dzKcwO+S8s2kuF5Z9oUWatQJj5Uq/iqphEtE3GQJVRRYm/tD1LglU2UnXi2A8jLq5umkGouOXOR9y0n613ZwQ=="], - "@ts-morph/common": ["@ts-morph/common@0.28.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@ts-morph/common/-/common-0.28.1.tgz", { "dependencies": { "minimatch": "^10.0.1", "path-browserify": "^1.0.1", "tinyglobby": "^0.2.14" } }, "sha512-W74iWf7ILp1ZKNYXY5qbddNaml7e9Sedv5lvU1V8lftlitkc9Pq1A+jlH23ltDgWYeZFFEqGCD1Ies9hqu3O+g=="], + "@types/glob": ["@types/glob@7.2.0", "", { "dependencies": { "@types/minimatch": "*", "@types/node": "*" } }, "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA=="], - "@tsconfig/node10": ["@tsconfig/node10@1.0.11", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@tsconfig/node10/-/node10-1.0.11.tgz", {}, "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw=="], + "@types/http-cache-semantics": ["@types/http-cache-semantics@4.2.0", "", {}, "sha512-L3LgimLHXtGkWikKnsPg0/VFx9OGZaC+eN1u4r+OB1XRqH3meBIAVC2zr1WdMH+RHmnRkqliQAOHNJ/E0j/e0Q=="], - "@tsconfig/node12": ["@tsconfig/node12@1.0.11", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@tsconfig/node12/-/node12-1.0.11.tgz", {}, "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag=="], + "@types/istanbul-lib-coverage": ["@types/istanbul-lib-coverage@2.0.6", "", {}, "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w=="], - "@tsconfig/node14": ["@tsconfig/node14@1.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@tsconfig/node14/-/node14-1.0.3.tgz", {}, "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow=="], + "@types/istanbul-lib-report": ["@types/istanbul-lib-report@3.0.3", "", { "dependencies": { "@types/istanbul-lib-coverage": "*" } }, "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA=="], - "@tsconfig/node16": ["@tsconfig/node16@1.0.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@tsconfig/node16/-/node16-1.0.4.tgz", {}, "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA=="], + "@types/istanbul-reports": ["@types/istanbul-reports@3.0.4", "", { "dependencies": { "@types/istanbul-lib-report": "*" } }, "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ=="], - "@tybys/wasm-util": ["@tybys/wasm-util@0.9.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@tybys/wasm-util/-/wasm-util-0.9.0.tgz", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw=="], + "@types/jest": ["@types/jest@30.0.0", "", { "dependencies": { "expect": "^30.0.0", "pretty-format": "^30.0.0" } }, "sha512-XTYugzhuwqWjws0CVz8QpM36+T+Dz5mTEBKhNs/esGLnCIlGdRy+Dq78NRjd7ls7r8BC8ZRMOrKlkO1hU0JOwA=="], - "@types/babel__core": ["@types/babel__core@7.20.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@types/babel__core/-/babel__core-7.20.5.tgz", { "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", "@types/babel__generator": "*", "@types/babel__template": "*", "@types/babel__traverse": "*" } }, "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA=="], + "@types/js-yaml": ["@types/js-yaml@4.0.9", "", {}, "sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg=="], - "@types/babel__generator": ["@types/babel__generator@7.27.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@types/babel__generator/-/babel__generator-7.27.0.tgz", { "dependencies": { "@babel/types": "^7.0.0" } }, "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg=="], + "@types/jsdom": ["@types/jsdom@21.1.7", "", { "dependencies": { "@types/node": "*", "@types/tough-cookie": "*", "parse5": "^7.0.0" } }, "sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA=="], - "@types/babel__template": ["@types/babel__template@7.4.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@types/babel__template/-/babel__template-7.4.4.tgz", { "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" } }, "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A=="], + "@types/json-schema": ["@types/json-schema@7.0.15", "", {}, "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="], - "@types/babel__traverse": ["@types/babel__traverse@7.28.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", { "dependencies": { "@babel/types": "^7.28.2" } }, "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q=="], + "@types/json5": ["@types/json5@0.0.29", "", {}, "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="], - "@types/body-parser": ["@types/body-parser@1.19.6", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@types/body-parser/-/body-parser-1.19.6.tgz", { "dependencies": { "@types/connect": "*", "@types/node": "*" } }, "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g=="], + "@types/minimatch": ["@types/minimatch@6.0.0", "", { "dependencies": { "minimatch": "*" } }, "sha512-zmPitbQ8+6zNutpwgcQuLcsEpn/Cj54Kbn7L5pX0Os5kdWplB7xPgEh/g+SWOB/qmows2gpuCaPyduq8ZZRnxA=="], - "@types/chai": ["@types/chai@5.2.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@types/chai/-/chai-5.2.3.tgz", { "dependencies": { "@types/deep-eql": "*", "assertion-error": "^2.0.1" } }, "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA=="], + "@types/node": ["@types/node@22.19.13", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-akNQMv0wW5uyRpD2v2IEyRSZiR+BeGuoB6L310EgGObO44HSMNT8z1xzio28V8qOrgYaopIDNA18YgdXd+qTiw=="], - "@types/connect": ["@types/connect@3.4.38", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@types/connect/-/connect-3.4.38.tgz", { "dependencies": { "@types/node": "*" } }, "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug=="], + "@types/parse-json": ["@types/parse-json@4.0.2", "", {}, "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw=="], - "@types/deep-eql": ["@types/deep-eql@4.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@types/deep-eql/-/deep-eql-4.0.2.tgz", {}, "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw=="], + "@types/prop-types": ["@types/prop-types@15.7.15", "", {}, "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw=="], - "@types/eslint": ["@types/eslint@9.6.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@types/eslint/-/eslint-9.6.1.tgz", { "dependencies": { "@types/estree": "*", "@types/json-schema": "*" } }, "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag=="], + "@types/react": ["@types/react@18.3.0", "", { "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" } }, "sha512-DiUcKjzE6soLyln8NNZmyhcQjVv+WsUIFSqetMN0p8927OztKT4VTfFTqsbAi5oAGIcgOmOajlfBqyptDDjZRw=="], - "@types/eslint-scope": ["@types/eslint-scope@3.7.7", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", { "dependencies": { "@types/eslint": "*", "@types/estree": "*" } }, "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg=="], + "@types/resolve": ["@types/resolve@1.20.2", "", {}, "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q=="], - "@types/estree": ["@types/estree@1.0.8", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@types/estree/-/estree-1.0.8.tgz", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="], + "@types/stack-utils": ["@types/stack-utils@2.0.3", "", {}, "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw=="], - "@types/express": ["@types/express@4.17.25", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@types/express/-/express-4.17.25.tgz", { "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.33", "@types/qs": "*", "@types/serve-static": "^1" } }, "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw=="], + "@types/tough-cookie": ["@types/tough-cookie@4.0.5", "", {}, "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA=="], - "@types/express-serve-static-core": ["@types/express-serve-static-core@4.19.7", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@types/express-serve-static-core/-/express-serve-static-core-4.19.7.tgz", { "dependencies": { "@types/node": "*", "@types/qs": "*", "@types/range-parser": "*", "@types/send": "*" } }, "sha512-FvPtiIf1LfhzsaIXhv/PHan/2FeQBbtBDtfX2QfvPxdUelMDEckK08SM6nqo1MIZY3RUlfA+HV8+hFUSio78qg=="], + "@types/yargs": ["@types/yargs@17.0.35", "", { "dependencies": { "@types/yargs-parser": "*" } }, "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg=="], - "@types/fs-extra": ["@types/fs-extra@8.1.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@types/fs-extra/-/fs-extra-8.1.5.tgz", { "dependencies": { "@types/node": "*" } }, "sha512-0dzKcwO+S8s2kuF5Z9oUWatQJj5Uq/iqphEtE3GQJVRRYm/tD1LglU2UnXi2A8jLq5umkGouOXOR9y0n613ZwQ=="], + "@types/yargs-parser": ["@types/yargs-parser@21.0.3", "", {}, "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ=="], - "@types/glob": ["@types/glob@7.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@types/glob/-/glob-7.2.0.tgz", { "dependencies": { "@types/minimatch": "*", "@types/node": "*" } }, "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA=="], + "@types/yauzl": ["@types/yauzl@2.10.3", "", { "dependencies": { "@types/node": "*" } }, "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q=="], - "@types/http-cache-semantics": ["@types/http-cache-semantics@4.0.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", {}, "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA=="], + "@typescript-eslint/eslint-plugin": ["@typescript-eslint/eslint-plugin@8.43.0", "", { "dependencies": { "@eslint-community/regexpp": "^4.10.0", "@typescript-eslint/scope-manager": "8.43.0", "@typescript-eslint/type-utils": "8.43.0", "@typescript-eslint/utils": "8.43.0", "@typescript-eslint/visitor-keys": "8.43.0", "graphemer": "^1.4.0", "ignore": "^7.0.0", "natural-compare": "^1.4.0", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "@typescript-eslint/parser": "^8.43.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-8tg+gt7ENL7KewsKMKDHXR1vm8tt9eMxjJBYINf6swonlWgkYn5NwyIgXpbbDxTNU5DgpDFfj95prcTq2clIQQ=="], - "@types/http-errors": ["@types/http-errors@2.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@types/http-errors/-/http-errors-2.0.5.tgz", {}, "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg=="], + "@typescript-eslint/parser": ["@typescript-eslint/parser@8.56.1", "", { "dependencies": { "@typescript-eslint/scope-manager": "8.56.1", "@typescript-eslint/types": "8.56.1", "@typescript-eslint/typescript-estree": "8.56.1", "@typescript-eslint/visitor-keys": "8.56.1", "debug": "^4.4.3" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-klQbnPAAiGYFyI02+znpBRLyjL4/BrBd0nyWkdC0s/6xFLkXYQ8OoRrSkqacS1ddVxf/LDyODIKbQ5TgKAf/Fg=="], - "@types/istanbul-lib-coverage": ["@types/istanbul-lib-coverage@2.0.6", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", {}, "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w=="], + "@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.56.1", "", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.56.1", "@typescript-eslint/types": "^8.56.1", "debug": "^4.4.3" }, "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-TAdqQTzHNNvlVFfR+hu2PDJrURiwKsUvxFn1M0h95BB8ah5jejas08jUWG4dBA68jDMI988IvtfdAI53JzEHOQ=="], - "@types/istanbul-lib-report": ["@types/istanbul-lib-report@3.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", { "dependencies": { "@types/istanbul-lib-coverage": "*" } }, "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA=="], + "@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.56.1", "", { "dependencies": { "@typescript-eslint/types": "8.56.1", "@typescript-eslint/visitor-keys": "8.56.1" } }, "sha512-YAi4VDKcIZp0O4tz/haYKhmIDZFEUPOreKbfdAN3SzUDMcPhJ8QI99xQXqX+HoUVq8cs85eRKnD+rne2UAnj2w=="], - "@types/istanbul-reports": ["@types/istanbul-reports@3.0.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", { "dependencies": { "@types/istanbul-lib-report": "*" } }, "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ=="], + "@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.56.1", "", { "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-qOtCYzKEeyr3aR9f28mPJqBty7+DBqsdd63eO0yyDwc6vgThj2UjWfJIcsFeSucYydqcuudMOprZ+x1SpF3ZuQ=="], - "@types/jest": ["@types/jest@30.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@types/jest/-/jest-30.0.0.tgz", { "dependencies": { "expect": "^30.0.0", "pretty-format": "^30.0.0" } }, "sha512-XTYugzhuwqWjws0CVz8QpM36+T+Dz5mTEBKhNs/esGLnCIlGdRy+Dq78NRjd7ls7r8BC8ZRMOrKlkO1hU0JOwA=="], + "@typescript-eslint/type-utils": ["@typescript-eslint/type-utils@8.56.1", "", { "dependencies": { "@typescript-eslint/types": "8.56.1", "@typescript-eslint/typescript-estree": "8.56.1", "@typescript-eslint/utils": "8.56.1", "debug": "^4.4.3", "ts-api-utils": "^2.4.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-yB/7dxi7MgTtGhZdaHCemf7PuwrHMenHjmzgUW1aJpO+bBU43OycnM3Wn+DdvDO/8zzA9HlhaJ0AUGuvri4oGg=="], - "@types/js-yaml": ["@types/js-yaml@4.0.9", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@types/js-yaml/-/js-yaml-4.0.9.tgz", {}, "sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg=="], + "@typescript-eslint/types": ["@typescript-eslint/types@8.56.1", "", {}, "sha512-dbMkdIUkIkchgGDIv7KLUpa0Mda4IYjo4IAMJUZ+3xNoUXxMsk9YtKpTHSChRS85o+H9ftm51gsK1dZReY9CVw=="], - "@types/jsdom": ["@types/jsdom@21.1.7", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@types/jsdom/-/jsdom-21.1.7.tgz", { "dependencies": { "@types/node": "*", "@types/tough-cookie": "*", "parse5": "^7.0.0" } }, "sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA=="], + "@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.56.1", "", { "dependencies": { "@typescript-eslint/project-service": "8.56.1", "@typescript-eslint/tsconfig-utils": "8.56.1", "@typescript-eslint/types": "8.56.1", "@typescript-eslint/visitor-keys": "8.56.1", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", "tinyglobby": "^0.2.15", "ts-api-utils": "^2.4.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-qzUL1qgalIvKWAf9C1HpvBjif+Vm6rcT5wZd4VoMb9+Km3iS3Cv9DY6dMRMDtPnwRAFyAi7YXJpTIEXLvdfPxg=="], - "@types/json-schema": ["@types/json-schema@7.0.15", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@types/json-schema/-/json-schema-7.0.15.tgz", {}, "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="], + "@typescript-eslint/utils": ["@typescript-eslint/utils@8.56.1", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", "@typescript-eslint/scope-manager": "8.56.1", "@typescript-eslint/types": "8.56.1", "@typescript-eslint/typescript-estree": "8.56.1" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-HPAVNIME3tABJ61siYlHzSWCGtOoeP2RTIaHXFMPqjrQKCGB9OgUVdiNgH7TJS2JNIQ5qQ4RsAUDuGaGme/KOA=="], - "@types/json5": ["@types/json5@0.0.29", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@types/json5/-/json5-0.0.29.tgz", {}, "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="], + "@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.56.1", "", { "dependencies": { "@typescript-eslint/types": "8.56.1", "eslint-visitor-keys": "^5.0.0" } }, "sha512-KiROIzYdEV85YygXw6BI/Dx4fnBlFQu6Mq4QE4MOH9fFnhohw6wX/OAvDY2/C+ut0I3RSPKenvZJIVYqJNkhEw=="], - "@types/mime": ["@types/mime@1.3.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@types/mime/-/mime-1.3.5.tgz", {}, "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w=="], + "@typescript/native-preview": ["@typescript/native-preview@7.0.0-dev.20260227.1", "", { "optionalDependencies": { "@typescript/native-preview-darwin-arm64": "7.0.0-dev.20260227.1", "@typescript/native-preview-darwin-x64": "7.0.0-dev.20260227.1", "@typescript/native-preview-linux-arm": "7.0.0-dev.20260227.1", "@typescript/native-preview-linux-arm64": "7.0.0-dev.20260227.1", "@typescript/native-preview-linux-x64": "7.0.0-dev.20260227.1", "@typescript/native-preview-win32-arm64": "7.0.0-dev.20260227.1", "@typescript/native-preview-win32-x64": "7.0.0-dev.20260227.1" }, "bin": { "tsgo": "bin/tsgo.js" } }, "sha512-MCQZuIj7mk152lHB0kcDpHZrPjfoEijPhhigE62cHtrxukheNy+beYt5rW44wxbiapsfJWsFbRPt+cB90M/A/A=="], - "@types/minimatch": ["@types/minimatch@6.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@types/minimatch/-/minimatch-6.0.0.tgz", { "dependencies": { "minimatch": "*" } }, "sha512-zmPitbQ8+6zNutpwgcQuLcsEpn/Cj54Kbn7L5pX0Os5kdWplB7xPgEh/g+SWOB/qmows2gpuCaPyduq8ZZRnxA=="], + "@typescript/native-preview-darwin-arm64": ["@typescript/native-preview-darwin-arm64@7.0.0-dev.20260227.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-IXHoygCPooHUX/n5LyAI98Ig8vTtgxUcKaR2odN9FLWhHSv3X6adsl7glmpdD5EqVHRUva9GqFjsO0qr7hJQag=="], - "@types/node": ["@types/node@22.19.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@types/node/-/node-22.19.0.tgz", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-xpr/lmLPQEj+TUnHmR+Ab91/glhJvsqcjB+yY0Ix9GO70H6Lb4FHH5GeqdOE5btAx7eIMwuHkp4H2MSkLcqWbA=="], + "@typescript/native-preview-darwin-x64": ["@typescript/native-preview-darwin-x64@7.0.0-dev.20260227.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-pH7vB05JUO+638PCApWNcHEn/ZCB4ABy5HmqAfdjntYJ18K+/HL4P7cjxQfwA/t6LcuLd9miY9DoVh5c8yElVw=="], - "@types/parse-json": ["@types/parse-json@4.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@types/parse-json/-/parse-json-4.0.2.tgz", {}, "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw=="], + "@typescript/native-preview-linux-arm": ["@typescript/native-preview-linux-arm@7.0.0-dev.20260227.1", "", { "os": "linux", "cpu": "arm" }, "sha512-vTs7ICDzfK4v4R1Kh2zg9J0WH088jvkC2lTUS9Co8nFe2DaJ2I0QRTCg7m25GF8V+GskwpLH/k2/rGB9IA1QRA=="], - "@types/prop-types": ["@types/prop-types@15.7.15", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@types/prop-types/-/prop-types-15.7.15.tgz", {}, "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw=="], + "@typescript/native-preview-linux-arm64": ["@typescript/native-preview-linux-arm64@7.0.0-dev.20260227.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-BMgz0ZrSCjYpA8mAW5mMeepwfUFKnq/KKgBoyFWb/AcjiOwOhUJjC/222pSaBs5tkwgwajgIyDXaUDpiDW+5/w=="], - "@types/qs": ["@types/qs@6.14.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@types/qs/-/qs-6.14.0.tgz", {}, "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ=="], + "@typescript/native-preview-linux-x64": ["@typescript/native-preview-linux-x64@7.0.0-dev.20260227.1", "", { "os": "linux", "cpu": "x64" }, "sha512-XrwuolZ0X9WoMiz3dGDXVH0bH+jHERdV6h1z2N0nAYod8Q5/jmpLLATvbq5A0fa0NQbTpZRzr7uXOVtGrcorkQ=="], - "@types/range-parser": ["@types/range-parser@1.2.7", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@types/range-parser/-/range-parser-1.2.7.tgz", {}, "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ=="], + "@typescript/native-preview-win32-arm64": ["@typescript/native-preview-win32-arm64@7.0.0-dev.20260227.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-XuTvdN8u1Sl+HG7WlwlQlM54gSrPlp3PicT8Ih/AnjiduQmNp0g1Cjt0kBrNMHUbXWmoJJfpCaweAY+PCT/glA=="], - "@types/react": ["@types/react@18.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@types/react/-/react-18.3.0.tgz", { "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" } }, "sha512-DiUcKjzE6soLyln8NNZmyhcQjVv+WsUIFSqetMN0p8927OztKT4VTfFTqsbAi5oAGIcgOmOajlfBqyptDDjZRw=="], + "@typescript/native-preview-win32-x64": ["@typescript/native-preview-win32-x64@7.0.0-dev.20260227.1", "", { "os": "win32", "cpu": "x64" }, "sha512-T26qE0bTzw+rS17OVE+vnHdBBMeOo5veWg04rYRRtiTAXvGZyscq8/C7v1GfnVotpxWi6ckjJ112wn0gJspjnQ=="], - "@types/resolve": ["@types/resolve@1.20.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@types/resolve/-/resolve-1.20.2.tgz", {}, "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q=="], + "@ungap/structured-clone": ["@ungap/structured-clone@1.3.0", "", {}, "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g=="], - "@types/send": ["@types/send@1.2.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@types/send/-/send-1.2.1.tgz", { "dependencies": { "@types/node": "*" } }, "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ=="], + "@unrs/resolver-binding-android-arm-eabi": ["@unrs/resolver-binding-android-arm-eabi@1.11.1", "", { "os": "android", "cpu": "arm" }, "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw=="], - "@types/serve-static": ["@types/serve-static@1.15.10", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@types/serve-static/-/serve-static-1.15.10.tgz", { "dependencies": { "@types/http-errors": "*", "@types/node": "*", "@types/send": "<1" } }, "sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw=="], + "@unrs/resolver-binding-android-arm64": ["@unrs/resolver-binding-android-arm64@1.11.1", "", { "os": "android", "cpu": "arm64" }, "sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g=="], - "@types/stack-utils": ["@types/stack-utils@2.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@types/stack-utils/-/stack-utils-2.0.3.tgz", {}, "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw=="], + "@unrs/resolver-binding-darwin-arm64": ["@unrs/resolver-binding-darwin-arm64@1.11.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g=="], - "@types/tough-cookie": ["@types/tough-cookie@4.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", {}, "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA=="], + "@unrs/resolver-binding-darwin-x64": ["@unrs/resolver-binding-darwin-x64@1.11.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ=="], - "@types/yargs": ["@types/yargs@17.0.34", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@types/yargs/-/yargs-17.0.34.tgz", { "dependencies": { "@types/yargs-parser": "*" } }, "sha512-KExbHVa92aJpw9WDQvzBaGVE2/Pz+pLZQloT2hjL8IqsZnV62rlPOYvNnLmf/L2dyllfVUOVBj64M0z/46eR2A=="], + "@unrs/resolver-binding-freebsd-x64": ["@unrs/resolver-binding-freebsd-x64@1.11.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw=="], - "@types/yargs-parser": ["@types/yargs-parser@21.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", {}, "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ=="], + "@unrs/resolver-binding-linux-arm-gnueabihf": ["@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1", "", { "os": "linux", "cpu": "arm" }, "sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw=="], - "@types/yauzl": ["@types/yauzl@2.10.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@types/yauzl/-/yauzl-2.10.3.tgz", { "dependencies": { "@types/node": "*" } }, "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q=="], + "@unrs/resolver-binding-linux-arm-musleabihf": ["@unrs/resolver-binding-linux-arm-musleabihf@1.11.1", "", { "os": "linux", "cpu": "arm" }, "sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw=="], - "@typescript-eslint/eslint-plugin": ["@typescript-eslint/eslint-plugin@8.43.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.43.0.tgz", { "dependencies": { "@eslint-community/regexpp": "^4.10.0", "@typescript-eslint/scope-manager": "8.43.0", "@typescript-eslint/type-utils": "8.43.0", "@typescript-eslint/utils": "8.43.0", "@typescript-eslint/visitor-keys": "8.43.0", "graphemer": "^1.4.0", "ignore": "^7.0.0", "natural-compare": "^1.4.0", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "@typescript-eslint/parser": "^8.43.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-8tg+gt7ENL7KewsKMKDHXR1vm8tt9eMxjJBYINf6swonlWgkYn5NwyIgXpbbDxTNU5DgpDFfj95prcTq2clIQQ=="], + "@unrs/resolver-binding-linux-arm64-gnu": ["@unrs/resolver-binding-linux-arm64-gnu@1.11.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ=="], - "@typescript-eslint/parser": ["@typescript-eslint/parser@8.48.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript-eslint/parser/-/parser-8.48.0.tgz", { "dependencies": { "@typescript-eslint/scope-manager": "8.48.0", "@typescript-eslint/types": "8.48.0", "@typescript-eslint/typescript-estree": "8.48.0", "@typescript-eslint/visitor-keys": "8.48.0", "debug": "^4.3.4" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-jCzKdm/QK0Kg4V4IK/oMlRZlY+QOcdjv89U2NgKHZk1CYTj82/RVSx1mV/0gqCVMJ/DA+Zf/S4NBWNF8GQ+eqQ=="], + "@unrs/resolver-binding-linux-arm64-musl": ["@unrs/resolver-binding-linux-arm64-musl@1.11.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w=="], - "@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.48.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript-eslint/project-service/-/project-service-8.48.0.tgz", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.48.0", "@typescript-eslint/types": "^8.48.0", "debug": "^4.3.4" }, "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-Ne4CTZyRh1BecBf84siv42wv5vQvVmgtk8AuiEffKTUo3DrBaGYZueJSxxBZ8fjk/N3DrgChH4TOdIOwOwiqqw=="], + "@unrs/resolver-binding-linux-ppc64-gnu": ["@unrs/resolver-binding-linux-ppc64-gnu@1.11.1", "", { "os": "linux", "cpu": "ppc64" }, "sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA=="], - "@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.48.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript-eslint/scope-manager/-/scope-manager-8.48.0.tgz", { "dependencies": { "@typescript-eslint/types": "8.48.0", "@typescript-eslint/visitor-keys": "8.48.0" } }, "sha512-uGSSsbrtJrLduti0Q1Q9+BF1/iFKaxGoQwjWOIVNJv0o6omrdyR8ct37m4xIl5Zzpkp69Kkmvom7QFTtue89YQ=="], + "@unrs/resolver-binding-linux-riscv64-gnu": ["@unrs/resolver-binding-linux-riscv64-gnu@1.11.1", "", { "os": "linux", "cpu": "none" }, "sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ=="], - "@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.48.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.48.0.tgz", { "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-WNebjBdFdyu10sR1M4OXTt2OkMd5KWIL+LLfeH9KhgP+jzfDV/LI3eXzwJ1s9+Yc0Kzo2fQCdY/OpdusCMmh6w=="], + "@unrs/resolver-binding-linux-riscv64-musl": ["@unrs/resolver-binding-linux-riscv64-musl@1.11.1", "", { "os": "linux", "cpu": "none" }, "sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew=="], - "@typescript-eslint/type-utils": ["@typescript-eslint/type-utils@8.48.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript-eslint/type-utils/-/type-utils-8.48.0.tgz", { "dependencies": { "@typescript-eslint/types": "8.48.0", "@typescript-eslint/typescript-estree": "8.48.0", "@typescript-eslint/utils": "8.48.0", "debug": "^4.3.4", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-zbeVaVqeXhhab6QNEKfK96Xyc7UQuoFWERhEnj3mLVnUWrQnv15cJNseUni7f3g557gm0e46LZ6IJ4NJVOgOpw=="], + "@unrs/resolver-binding-linux-s390x-gnu": ["@unrs/resolver-binding-linux-s390x-gnu@1.11.1", "", { "os": "linux", "cpu": "s390x" }, "sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg=="], - "@typescript-eslint/types": ["@typescript-eslint/types@8.48.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript-eslint/types/-/types-8.48.0.tgz", {}, "sha512-cQMcGQQH7kwKoVswD1xdOytxQR60MWKM1di26xSUtxehaDs/32Zpqsu5WJlXTtTTqyAVK8R7hvsUnIXRS+bjvA=="], + "@unrs/resolver-binding-linux-x64-gnu": ["@unrs/resolver-binding-linux-x64-gnu@1.11.1", "", { "os": "linux", "cpu": "x64" }, "sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w=="], - "@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.48.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript-eslint/typescript-estree/-/typescript-estree-8.48.0.tgz", { "dependencies": { "@typescript-eslint/project-service": "8.48.0", "@typescript-eslint/tsconfig-utils": "8.48.0", "@typescript-eslint/types": "8.48.0", "@typescript-eslint/visitor-keys": "8.48.0", "debug": "^4.3.4", "minimatch": "^9.0.4", "semver": "^7.6.0", "tinyglobby": "^0.2.15", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-ljHab1CSO4rGrQIAyizUS6UGHHCiAYhbfcIZ1zVJr5nMryxlXMVWS3duFPSKvSUbFPwkXMFk1k0EMIjub4sRRQ=="], + "@unrs/resolver-binding-linux-x64-musl": ["@unrs/resolver-binding-linux-x64-musl@1.11.1", "", { "os": "linux", "cpu": "x64" }, "sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA=="], - "@typescript-eslint/utils": ["@typescript-eslint/utils@8.48.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript-eslint/utils/-/utils-8.48.0.tgz", { "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", "@typescript-eslint/scope-manager": "8.48.0", "@typescript-eslint/types": "8.48.0", "@typescript-eslint/typescript-estree": "8.48.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-yTJO1XuGxCsSfIVt1+1UrLHtue8xz16V8apzPYI06W0HbEbEWHxHXgZaAgavIkoh+GeV6hKKd5jm0sS6OYxWXQ=="], + "@unrs/resolver-binding-wasm32-wasi": ["@unrs/resolver-binding-wasm32-wasi@1.11.1", "", { "dependencies": { "@napi-rs/wasm-runtime": "^0.2.11" }, "cpu": "none" }, "sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ=="], - "@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.48.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript-eslint/visitor-keys/-/visitor-keys-8.48.0.tgz", { "dependencies": { "@typescript-eslint/types": "8.48.0", "eslint-visitor-keys": "^4.2.1" } }, "sha512-T0XJMaRPOH3+LBbAfzR2jalckP1MSG/L9eUtY0DEzUyVaXJ/t6zN0nR7co5kz0Jko/nkSYCBRkz1djvjajVTTg=="], + "@unrs/resolver-binding-win32-arm64-msvc": ["@unrs/resolver-binding-win32-arm64-msvc@1.11.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw=="], - "@typescript/native-preview": ["@typescript/native-preview@7.0.0-dev.20251126.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript/native-preview/-/native-preview-7.0.0-dev.20251126.1.tgz", { "optionalDependencies": { "@typescript/native-preview-darwin-arm64": "7.0.0-dev.20251126.1", "@typescript/native-preview-darwin-x64": "7.0.0-dev.20251126.1", "@typescript/native-preview-linux-arm": "7.0.0-dev.20251126.1", "@typescript/native-preview-linux-arm64": "7.0.0-dev.20251126.1", "@typescript/native-preview-linux-x64": "7.0.0-dev.20251126.1", "@typescript/native-preview-win32-arm64": "7.0.0-dev.20251126.1", "@typescript/native-preview-win32-x64": "7.0.0-dev.20251126.1" }, "bin": { "tsgo": "bin/tsgo.js" } }, "sha512-gkE5m4UH5ld1wgGHvnmI2uWOvP8TJB5eUOx7lYZwarjXeC+viNf02PA/3HJn5rV/RyEfFhu/QvqwVd8vJ9M//A=="], + "@unrs/resolver-binding-win32-ia32-msvc": ["@unrs/resolver-binding-win32-ia32-msvc@1.11.1", "", { "os": "win32", "cpu": "ia32" }, "sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ=="], - "@typescript/native-preview-darwin-arm64": ["@typescript/native-preview-darwin-arm64@7.0.0-dev.20251126.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript/native-preview-darwin-arm64/-/native-preview-darwin-arm64-7.0.0-dev.20251126.1.tgz", { "os": "darwin", "cpu": "arm64" }, "sha512-+AZBntY8ORv1fD/nBFExhJT6yWiALrNhnUIpjd0NzZhgwER1rOP8l62o5iiq8j7IQkVfbehTrqTVHVP6O1TIcA=="], + "@unrs/resolver-binding-win32-x64-msvc": ["@unrs/resolver-binding-win32-x64-msvc@1.11.1", "", { "os": "win32", "cpu": "x64" }, "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g=="], - "@typescript/native-preview-darwin-x64": ["@typescript/native-preview-darwin-x64@7.0.0-dev.20251126.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript/native-preview-darwin-x64/-/native-preview-darwin-x64-7.0.0-dev.20251126.1.tgz", { "os": "darwin", "cpu": "x64" }, "sha512-HNKJBryvqZbvEElbCaAGUoTJn+r9C5Umsq1dEPnZ9Ji/5kvCx3TVOLnck60BU/W7mV9e9fyFYdM+A5ZRgs4+kw=="], + "@verdaccio/auth": ["@verdaccio/auth@8.0.0-next-8.15", "", { "dependencies": { "@verdaccio/config": "8.0.0-next-8.15", "@verdaccio/core": "8.0.0-next-8.15", "@verdaccio/loaders": "8.0.0-next-8.6", "@verdaccio/signature": "8.0.0-next-8.7", "@verdaccio/utils": "8.1.0-next-8.15", "debug": "4.4.0", "lodash": "4.17.21", "verdaccio-htpasswd": "13.0.0-next-8.15" } }, "sha512-vAfzGOHbPcPXMCI90jqm/qSZ1OUBnOGzudZA3+YtherncdwADekvXbdJlZVclcfmZ0sRbfVG5Xpf88aETiwfcw=="], - "@typescript/native-preview-linux-arm": ["@typescript/native-preview-linux-arm@7.0.0-dev.20251126.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript/native-preview-linux-arm/-/native-preview-linux-arm-7.0.0-dev.20251126.1.tgz", { "os": "linux", "cpu": "arm" }, "sha512-ERyxlPWXXDIMxEQNdHn5tHO1d6aduoWv+VaO2hvypBROMtsFoPyHidWx2uxL4syL2TCfBHgH8wREwEq6fQeICg=="], + "@verdaccio/commons-api": ["@verdaccio/commons-api@10.2.0", "", { "dependencies": { "http-errors": "2.0.0", "http-status-codes": "2.2.0" } }, "sha512-F/YZANu4DmpcEV0jronzI7v2fGVWkQ5Mwi+bVmV+ACJ+EzR0c9Jbhtbe5QyLUuzR97t8R5E/Xe53O0cc2LukdQ=="], - "@typescript/native-preview-linux-arm64": ["@typescript/native-preview-linux-arm64@7.0.0-dev.20251126.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript/native-preview-linux-arm64/-/native-preview-linux-arm64-7.0.0-dev.20251126.1.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-WAndZy6qB4ic1oB2FseXr/7zc8hbKjmqoq+4FBssle4OrsyaXPj8zbv2V/uZQUtcXrsAB30RaqWCOnUG9u1jug=="], + "@verdaccio/config": ["@verdaccio/config@8.0.0-next-8.15", "", { "dependencies": { "@verdaccio/core": "8.0.0-next-8.15", "@verdaccio/utils": "8.1.0-next-8.15", "debug": "4.4.0", "js-yaml": "4.1.0", "lodash": "4.17.21", "minimatch": "7.4.6" } }, "sha512-oEzQB+xeqaFAy54veMshqpt1hlZCYNkqoKuwkt7O8J43Fo/beiLluKUVneXckzi+pg1yvvGT7lNCbvuUQrxxQg=="], - "@typescript/native-preview-linux-x64": ["@typescript/native-preview-linux-x64@7.0.0-dev.20251126.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript/native-preview-linux-x64/-/native-preview-linux-x64-7.0.0-dev.20251126.1.tgz", { "os": "linux", "cpu": "x64" }, "sha512-9ov4QkLRxjbdX5VyDtV1vRZWvs+GUujHvGmyxRIe/9pVBKCqyPBrHy8X/qw3/rSVjTOZELKMuwVAbkU/tNwMtw=="], + "@verdaccio/core": ["@verdaccio/core@8.0.0-next-8.15", "", { "dependencies": { "ajv": "8.17.1", "core-js": "3.40.0", "http-errors": "2.0.0", "http-status-codes": "2.3.0", "process-warning": "1.0.0", "semver": "7.7.1" } }, "sha512-d5r/ZSkCri7s1hvV35enptquV5LJ81NqMYJnsjuryIUnvwn1yaqLlcdd6zIL08unzCSr7qDdUAdwGRRm6PKzng=="], - "@typescript/native-preview-win32-arm64": ["@typescript/native-preview-win32-arm64@7.0.0-dev.20251126.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript/native-preview-win32-arm64/-/native-preview-win32-arm64-7.0.0-dev.20251126.1.tgz", { "os": "win32", "cpu": "arm64" }, "sha512-m1cCO89bWHfGiU7AyGC54pax3juhZXu9TYXe+IHZngpQZgW8XXdpso3p6Jv+xVh8MSyJJnRkS2p5eGcjW4dkYg=="], + "@verdaccio/file-locking": ["@verdaccio/file-locking@10.3.1", "", { "dependencies": { "lockfile": "1.0.4" } }, "sha512-oqYLfv3Yg3mAgw9qhASBpjD50osj2AX4IwbkUtyuhhKGyoFU9eZdrbeW6tpnqUnj6yBMtAPm2eGD4BwQuX400g=="], - "@typescript/native-preview-win32-x64": ["@typescript/native-preview-win32-x64@7.0.0-dev.20251126.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript/native-preview-win32-x64/-/native-preview-win32-x64-7.0.0-dev.20251126.1.tgz", { "os": "win32", "cpu": "x64" }, "sha512-k4xenxGU7JhUtgya8VIb5f0+JTIysuuXeSjAQ00ODE0EbYsfnY7hgFyW8OAaHRaZa5FKsujg2jfvYY5nuugj+g=="], + "@verdaccio/loaders": ["@verdaccio/loaders@8.0.0-next-8.6", "", { "dependencies": { "debug": "4.4.0", "lodash": "4.17.21" } }, "sha512-yuqD8uAZJcgzuNHjV6C438UNT5r2Ai9+SnUlO34AHZdWSYcluO3Zj5R3p5uf+C7YPCE31pUD27wBU74xVbUoBw=="], - "@ungap/structured-clone": ["@ungap/structured-clone@1.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", {}, "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g=="], + "@verdaccio/local-storage-legacy": ["@verdaccio/local-storage-legacy@11.0.2", "", { "dependencies": { "@verdaccio/commons-api": "10.2.0", "@verdaccio/file-locking": "10.3.1", "@verdaccio/streams": "10.2.1", "async": "3.2.4", "debug": "4.3.4", "lodash": "4.17.21", "lowdb": "1.0.0", "mkdirp": "1.0.4" } }, "sha512-7AXG7qlcVFmF+Nue2oKaraprGRtaBvrQIOvc/E89+7hAe399V01KnZI6E/ET56u7U9fq0MSlp92HBcdotlpUXg=="], - "@unrs/resolver-binding-android-arm-eabi": ["@unrs/resolver-binding-android-arm-eabi@1.11.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz", { "os": "android", "cpu": "arm" }, "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw=="], + "@verdaccio/logger": ["@verdaccio/logger@8.0.0-next-8.15", "", { "dependencies": { "@verdaccio/logger-commons": "8.0.0-next-8.15", "pino": "9.6.0" } }, "sha512-3gjhqvB87JUNDHFMN3YG4IweS9EgbCpAWZatNYzcoIWOoGiEaFQQBSM592CaFiI0yf8acyqWkNa1V95L1NMbRg=="], - "@unrs/resolver-binding-android-arm64": ["@unrs/resolver-binding-android-arm64@1.11.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.11.1.tgz", { "os": "android", "cpu": "arm64" }, "sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g=="], + "@verdaccio/logger-commons": ["@verdaccio/logger-commons@8.0.0-next-8.15", "", { "dependencies": { "@verdaccio/core": "8.0.0-next-8.15", "@verdaccio/logger-prettify": "8.0.0-next-8.2", "colorette": "2.0.20", "debug": "4.4.0" } }, "sha512-nF7VgBC2cl5ufv+mZEwBHHyZFb1F0+kVkuRMf3Tyk+Qp4lXilC9MRZ0oc+RnzsDbNmJ6IZHgHNbs6aJrNfaRGg=="], - "@unrs/resolver-binding-darwin-arm64": ["@unrs/resolver-binding-darwin-arm64@1.11.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz", { "os": "darwin", "cpu": "arm64" }, "sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g=="], + "@verdaccio/logger-prettify": ["@verdaccio/logger-prettify@8.0.0-next-8.2", "", { "dependencies": { "colorette": "2.0.20", "dayjs": "1.11.13", "lodash": "4.17.21", "pino-abstract-transport": "1.2.0", "sonic-boom": "3.8.1" } }, "sha512-WMXnZPLw5W7GSIQE8UOTp6kRIwiTmnnoJbMmyMlGiNrsRaFKTqk09R5tKUgOyGgd4Lu6yncLbmdm5UjAuwHf1Q=="], - "@unrs/resolver-binding-darwin-x64": ["@unrs/resolver-binding-darwin-x64@1.11.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.11.1.tgz", { "os": "darwin", "cpu": "x64" }, "sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ=="], + "@verdaccio/middleware": ["@verdaccio/middleware@8.0.0-next-8.15", "", { "dependencies": { "@verdaccio/config": "8.0.0-next-8.15", "@verdaccio/core": "8.0.0-next-8.15", "@verdaccio/url": "13.0.0-next-8.15", "@verdaccio/utils": "8.1.0-next-8.15", "debug": "4.4.0", "express": "4.21.2", "express-rate-limit": "5.5.1", "lodash": "4.17.21", "lru-cache": "7.18.3", "mime": "2.6.0" } }, "sha512-xsCLGbnhqcYwE8g/u9wxNLfDcESpr9ptEZ8Ce7frVTphU7kYIL48QCDPMzug7U+AguNtCq4v4zcoY1PaOQ8mgw=="], - "@unrs/resolver-binding-freebsd-x64": ["@unrs/resolver-binding-freebsd-x64@1.11.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.11.1.tgz", { "os": "freebsd", "cpu": "x64" }, "sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw=="], + "@verdaccio/search-indexer": ["@verdaccio/search-indexer@8.0.0-next-8.4", "", {}, "sha512-Oea9m9VDqdlDPyQ9+fpcxZk0sIYH2twVK+YbykHpSYpjZRzz9hJfIr/uUwAgpWq83zAl2YDbz4zR3TjzjrWQig=="], - "@unrs/resolver-binding-linux-arm-gnueabihf": ["@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.11.1.tgz", { "os": "linux", "cpu": "arm" }, "sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw=="], + "@verdaccio/signature": ["@verdaccio/signature@8.0.0-next-8.7", "", { "dependencies": { "@verdaccio/config": "8.0.0-next-8.15", "debug": "4.4.0", "jsonwebtoken": "9.0.2" } }, "sha512-sqP+tNzUtVIwUtt1ZHwYoxsO3roDLK7GW8c8Hj0SNaON+9ele9z4NBhaor+g95zRuLy6xtw/RgOvpyLon/vPrA=="], - "@unrs/resolver-binding-linux-arm-musleabihf": ["@unrs/resolver-binding-linux-arm-musleabihf@1.11.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.11.1.tgz", { "os": "linux", "cpu": "arm" }, "sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw=="], + "@verdaccio/streams": ["@verdaccio/streams@10.2.1", "", {}, "sha512-OojIG/f7UYKxC4dYX8x5ax8QhRx1b8OYUAMz82rUottCuzrssX/4nn5QE7Ank0DUSX3C9l/HPthc4d9uKRJqJQ=="], - "@unrs/resolver-binding-linux-arm64-gnu": ["@unrs/resolver-binding-linux-arm64-gnu@1.11.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.11.1.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ=="], + "@verdaccio/tarball": ["@verdaccio/tarball@13.0.0-next-8.15", "", { "dependencies": { "@verdaccio/core": "8.0.0-next-8.15", "@verdaccio/url": "13.0.0-next-8.15", "@verdaccio/utils": "8.1.0-next-8.15", "debug": "4.4.0", "gunzip-maybe": "^1.4.2", "lodash": "4.17.21", "tar-stream": "^3.1.7" } }, "sha512-oSNmq7zD/iPIC5HpJbOJjW/lb0JV9k3jLwI6sG7kPgm+UIxVAOV4fKQOAD18HpHl/WjkF247NA6zGlAB94Habw=="], - "@unrs/resolver-binding-linux-arm64-musl": ["@unrs/resolver-binding-linux-arm64-musl@1.11.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.11.1.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w=="], + "@verdaccio/ui-theme": ["@verdaccio/ui-theme@8.0.0-next-8.15", "", {}, "sha512-k9BAM7rvbUqB2JPReNgXKUVTzBkdmIrNw0f6/7uyO+9cp7eVuarrPBnVF0oMc7jzVNBZRCpUksrhMZ0KwDZTpw=="], - "@unrs/resolver-binding-linux-ppc64-gnu": ["@unrs/resolver-binding-linux-ppc64-gnu@1.11.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.11.1.tgz", { "os": "linux", "cpu": "ppc64" }, "sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA=="], + "@verdaccio/url": ["@verdaccio/url@13.0.0-next-8.15", "", { "dependencies": { "@verdaccio/core": "8.0.0-next-8.15", "debug": "4.4.0", "lodash": "4.17.21", "validator": "13.12.0" } }, "sha512-1N/dGhw7cZMhupf/Xlm73beiL3oCaAiyo9DTumjF3aTcJnipVcT1hoj6CSj9RIX54824rUK9WVmo83dk0KPnjw=="], - "@unrs/resolver-binding-linux-riscv64-gnu": ["@unrs/resolver-binding-linux-riscv64-gnu@1.11.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.11.1.tgz", { "os": "linux", "cpu": "none" }, "sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ=="], + "@verdaccio/utils": ["@verdaccio/utils@8.1.0-next-8.15", "", { "dependencies": { "@verdaccio/core": "8.0.0-next-8.15", "lodash": "4.17.21", "minimatch": "7.4.6", "semver": "7.7.1" } }, "sha512-efg/bunOUMVXV+MlljJCrpuT+OQRrQS4wJyGL92B3epUGlgZ8DXs+nxN5v59v1a6AocAdSKwHgZS0g9txmBhOg=="], - "@unrs/resolver-binding-linux-riscv64-musl": ["@unrs/resolver-binding-linux-riscv64-musl@1.11.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.11.1.tgz", { "os": "linux", "cpu": "none" }, "sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew=="], + "@vitest/coverage-v8": ["@vitest/coverage-v8@3.2.4", "", { "dependencies": { "@ampproject/remapping": "^2.3.0", "@bcoe/v8-coverage": "^1.0.2", "ast-v8-to-istanbul": "^0.3.3", "debug": "^4.4.1", "istanbul-lib-coverage": "^3.2.2", "istanbul-lib-report": "^3.0.1", "istanbul-lib-source-maps": "^5.0.6", "istanbul-reports": "^3.1.7", "magic-string": "^0.30.17", "magicast": "^0.3.5", "std-env": "^3.9.0", "test-exclude": "^7.0.1", "tinyrainbow": "^2.0.0" }, "peerDependencies": { "@vitest/browser": "3.2.4", "vitest": "3.2.4" }, "optionalPeers": ["@vitest/browser"] }, "sha512-EyF9SXU6kS5Ku/U82E259WSnvg6c8KTjppUncuNdm5QHpe17mwREHnjDzozC8x9MZ0xfBUFSaLkRv4TMA75ALQ=="], - "@unrs/resolver-binding-linux-s390x-gnu": ["@unrs/resolver-binding-linux-s390x-gnu@1.11.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.11.1.tgz", { "os": "linux", "cpu": "s390x" }, "sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg=="], + "@vitest/expect": ["@vitest/expect@3.2.4", "", { "dependencies": { "@types/chai": "^5.2.2", "@vitest/spy": "3.2.4", "@vitest/utils": "3.2.4", "chai": "^5.2.0", "tinyrainbow": "^2.0.0" } }, "sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig=="], - "@unrs/resolver-binding-linux-x64-gnu": ["@unrs/resolver-binding-linux-x64-gnu@1.11.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.11.1.tgz", { "os": "linux", "cpu": "x64" }, "sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w=="], + "@vitest/mocker": ["@vitest/mocker@3.2.4", "", { "dependencies": { "@vitest/spy": "3.2.4", "estree-walker": "^3.0.3", "magic-string": "^0.30.17" }, "peerDependencies": { "msw": "^2.4.9", "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" }, "optionalPeers": ["msw", "vite"] }, "sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ=="], - "@unrs/resolver-binding-linux-x64-musl": ["@unrs/resolver-binding-linux-x64-musl@1.11.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.11.1.tgz", { "os": "linux", "cpu": "x64" }, "sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA=="], + "@vitest/pretty-format": ["@vitest/pretty-format@3.2.4", "", { "dependencies": { "tinyrainbow": "^2.0.0" } }, "sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA=="], - "@unrs/resolver-binding-wasm32-wasi": ["@unrs/resolver-binding-wasm32-wasi@1.11.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.11.1.tgz", { "dependencies": { "@napi-rs/wasm-runtime": "^0.2.11" }, "cpu": "none" }, "sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ=="], + "@vitest/runner": ["@vitest/runner@3.2.4", "", { "dependencies": { "@vitest/utils": "3.2.4", "pathe": "^2.0.3", "strip-literal": "^3.0.0" } }, "sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ=="], - "@unrs/resolver-binding-win32-arm64-msvc": ["@unrs/resolver-binding-win32-arm64-msvc@1.11.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz", { "os": "win32", "cpu": "arm64" }, "sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw=="], + "@vitest/snapshot": ["@vitest/snapshot@3.2.4", "", { "dependencies": { "@vitest/pretty-format": "3.2.4", "magic-string": "^0.30.17", "pathe": "^2.0.3" } }, "sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ=="], - "@unrs/resolver-binding-win32-ia32-msvc": ["@unrs/resolver-binding-win32-ia32-msvc@1.11.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.11.1.tgz", { "os": "win32", "cpu": "ia32" }, "sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ=="], + "@vitest/spy": ["@vitest/spy@3.2.4", "", { "dependencies": { "tinyspy": "^4.0.3" } }, "sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw=="], - "@unrs/resolver-binding-win32-x64-msvc": ["@unrs/resolver-binding-win32-x64-msvc@1.11.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz", { "os": "win32", "cpu": "x64" }, "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g=="], + "@vitest/ui": ["@vitest/ui@3.2.4", "", { "dependencies": { "@vitest/utils": "3.2.4", "fflate": "^0.8.2", "flatted": "^3.3.3", "pathe": "^2.0.3", "sirv": "^3.0.1", "tinyglobby": "^0.2.14", "tinyrainbow": "^2.0.0" }, "peerDependencies": { "vitest": "3.2.4" } }, "sha512-hGISOaP18plkzbWEcP/QvtRW1xDXF2+96HbEX6byqQhAUbiS5oH6/9JwW+QsQCIYON2bI6QZBF+2PvOmrRZ9wA=="], - "@verdaccio/auth": ["@verdaccio/auth@8.0.0-next-8.15", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@verdaccio/auth/-/auth-8.0.0-next-8.15.tgz", { "dependencies": { "@verdaccio/config": "8.0.0-next-8.15", "@verdaccio/core": "8.0.0-next-8.15", "@verdaccio/loaders": "8.0.0-next-8.6", "@verdaccio/signature": "8.0.0-next-8.7", "@verdaccio/utils": "8.1.0-next-8.15", "debug": "4.4.0", "lodash": "4.17.21", "verdaccio-htpasswd": "13.0.0-next-8.15" } }, "sha512-vAfzGOHbPcPXMCI90jqm/qSZ1OUBnOGzudZA3+YtherncdwADekvXbdJlZVclcfmZ0sRbfVG5Xpf88aETiwfcw=="], + "@vitest/utils": ["@vitest/utils@3.2.4", "", { "dependencies": { "@vitest/pretty-format": "3.2.4", "loupe": "^3.1.4", "tinyrainbow": "^2.0.0" } }, "sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA=="], - "@verdaccio/commons-api": ["@verdaccio/commons-api@10.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@verdaccio/commons-api/-/commons-api-10.2.0.tgz", { "dependencies": { "http-errors": "2.0.0", "http-status-codes": "2.2.0" } }, "sha512-F/YZANu4DmpcEV0jronzI7v2fGVWkQ5Mwi+bVmV+ACJ+EzR0c9Jbhtbe5QyLUuzR97t8R5E/Xe53O0cc2LukdQ=="], + "@webassemblyjs/ast": ["@webassemblyjs/ast@1.14.1", "", { "dependencies": { "@webassemblyjs/helper-numbers": "1.13.2", "@webassemblyjs/helper-wasm-bytecode": "1.13.2" } }, "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ=="], - "@verdaccio/config": ["@verdaccio/config@8.0.0-next-8.15", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@verdaccio/config/-/config-8.0.0-next-8.15.tgz", { "dependencies": { "@verdaccio/core": "8.0.0-next-8.15", "@verdaccio/utils": "8.1.0-next-8.15", "debug": "4.4.0", "js-yaml": "4.1.0", "lodash": "4.17.21", "minimatch": "7.4.6" } }, "sha512-oEzQB+xeqaFAy54veMshqpt1hlZCYNkqoKuwkt7O8J43Fo/beiLluKUVneXckzi+pg1yvvGT7lNCbvuUQrxxQg=="], + "@webassemblyjs/floating-point-hex-parser": ["@webassemblyjs/floating-point-hex-parser@1.13.2", "", {}, "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA=="], - "@verdaccio/core": ["@verdaccio/core@8.0.0-next-8.15", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@verdaccio/core/-/core-8.0.0-next-8.15.tgz", { "dependencies": { "ajv": "8.17.1", "core-js": "3.40.0", "http-errors": "2.0.0", "http-status-codes": "2.3.0", "process-warning": "1.0.0", "semver": "7.7.1" } }, "sha512-d5r/ZSkCri7s1hvV35enptquV5LJ81NqMYJnsjuryIUnvwn1yaqLlcdd6zIL08unzCSr7qDdUAdwGRRm6PKzng=="], + "@webassemblyjs/helper-api-error": ["@webassemblyjs/helper-api-error@1.13.2", "", {}, "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ=="], - "@verdaccio/file-locking": ["@verdaccio/file-locking@10.3.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@verdaccio/file-locking/-/file-locking-10.3.1.tgz", { "dependencies": { "lockfile": "1.0.4" } }, "sha512-oqYLfv3Yg3mAgw9qhASBpjD50osj2AX4IwbkUtyuhhKGyoFU9eZdrbeW6tpnqUnj6yBMtAPm2eGD4BwQuX400g=="], + "@webassemblyjs/helper-buffer": ["@webassemblyjs/helper-buffer@1.14.1", "", {}, "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA=="], - "@verdaccio/loaders": ["@verdaccio/loaders@8.0.0-next-8.6", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@verdaccio/loaders/-/loaders-8.0.0-next-8.6.tgz", { "dependencies": { "debug": "4.4.0", "lodash": "4.17.21" } }, "sha512-yuqD8uAZJcgzuNHjV6C438UNT5r2Ai9+SnUlO34AHZdWSYcluO3Zj5R3p5uf+C7YPCE31pUD27wBU74xVbUoBw=="], + "@webassemblyjs/helper-numbers": ["@webassemblyjs/helper-numbers@1.13.2", "", { "dependencies": { "@webassemblyjs/floating-point-hex-parser": "1.13.2", "@webassemblyjs/helper-api-error": "1.13.2", "@xtuc/long": "4.2.2" } }, "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA=="], - "@verdaccio/local-storage-legacy": ["@verdaccio/local-storage-legacy@11.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@verdaccio/local-storage-legacy/-/local-storage-legacy-11.0.2.tgz", { "dependencies": { "@verdaccio/commons-api": "10.2.0", "@verdaccio/file-locking": "10.3.1", "@verdaccio/streams": "10.2.1", "async": "3.2.4", "debug": "4.3.4", "lodash": "4.17.21", "lowdb": "1.0.0", "mkdirp": "1.0.4" } }, "sha512-7AXG7qlcVFmF+Nue2oKaraprGRtaBvrQIOvc/E89+7hAe399V01KnZI6E/ET56u7U9fq0MSlp92HBcdotlpUXg=="], + "@webassemblyjs/helper-wasm-bytecode": ["@webassemblyjs/helper-wasm-bytecode@1.13.2", "", {}, "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA=="], - "@verdaccio/logger": ["@verdaccio/logger@8.0.0-next-8.15", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@verdaccio/logger/-/logger-8.0.0-next-8.15.tgz", { "dependencies": { "@verdaccio/logger-commons": "8.0.0-next-8.15", "pino": "9.6.0" } }, "sha512-3gjhqvB87JUNDHFMN3YG4IweS9EgbCpAWZatNYzcoIWOoGiEaFQQBSM592CaFiI0yf8acyqWkNa1V95L1NMbRg=="], + "@webassemblyjs/helper-wasm-section": ["@webassemblyjs/helper-wasm-section@1.14.1", "", { "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-buffer": "1.14.1", "@webassemblyjs/helper-wasm-bytecode": "1.13.2", "@webassemblyjs/wasm-gen": "1.14.1" } }, "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw=="], - "@verdaccio/logger-commons": ["@verdaccio/logger-commons@8.0.0-next-8.15", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@verdaccio/logger-commons/-/logger-commons-8.0.0-next-8.15.tgz", { "dependencies": { "@verdaccio/core": "8.0.0-next-8.15", "@verdaccio/logger-prettify": "8.0.0-next-8.2", "colorette": "2.0.20", "debug": "4.4.0" } }, "sha512-nF7VgBC2cl5ufv+mZEwBHHyZFb1F0+kVkuRMf3Tyk+Qp4lXilC9MRZ0oc+RnzsDbNmJ6IZHgHNbs6aJrNfaRGg=="], + "@webassemblyjs/ieee754": ["@webassemblyjs/ieee754@1.13.2", "", { "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw=="], - "@verdaccio/logger-prettify": ["@verdaccio/logger-prettify@8.0.0-next-8.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@verdaccio/logger-prettify/-/logger-prettify-8.0.0-next-8.2.tgz", { "dependencies": { "colorette": "2.0.20", "dayjs": "1.11.13", "lodash": "4.17.21", "pino-abstract-transport": "1.2.0", "sonic-boom": "3.8.1" } }, "sha512-WMXnZPLw5W7GSIQE8UOTp6kRIwiTmnnoJbMmyMlGiNrsRaFKTqk09R5tKUgOyGgd4Lu6yncLbmdm5UjAuwHf1Q=="], + "@webassemblyjs/leb128": ["@webassemblyjs/leb128@1.13.2", "", { "dependencies": { "@xtuc/long": "4.2.2" } }, "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw=="], - "@verdaccio/middleware": ["@verdaccio/middleware@8.0.0-next-8.15", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@verdaccio/middleware/-/middleware-8.0.0-next-8.15.tgz", { "dependencies": { "@verdaccio/config": "8.0.0-next-8.15", "@verdaccio/core": "8.0.0-next-8.15", "@verdaccio/url": "13.0.0-next-8.15", "@verdaccio/utils": "8.1.0-next-8.15", "debug": "4.4.0", "express": "4.21.2", "express-rate-limit": "5.5.1", "lodash": "4.17.21", "lru-cache": "7.18.3", "mime": "2.6.0" } }, "sha512-xsCLGbnhqcYwE8g/u9wxNLfDcESpr9ptEZ8Ce7frVTphU7kYIL48QCDPMzug7U+AguNtCq4v4zcoY1PaOQ8mgw=="], + "@webassemblyjs/utf8": ["@webassemblyjs/utf8@1.13.2", "", {}, "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ=="], - "@verdaccio/search-indexer": ["@verdaccio/search-indexer@8.0.0-next-8.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@verdaccio/search-indexer/-/search-indexer-8.0.0-next-8.4.tgz", {}, "sha512-Oea9m9VDqdlDPyQ9+fpcxZk0sIYH2twVK+YbykHpSYpjZRzz9hJfIr/uUwAgpWq83zAl2YDbz4zR3TjzjrWQig=="], + "@webassemblyjs/wasm-edit": ["@webassemblyjs/wasm-edit@1.14.1", "", { "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-buffer": "1.14.1", "@webassemblyjs/helper-wasm-bytecode": "1.13.2", "@webassemblyjs/helper-wasm-section": "1.14.1", "@webassemblyjs/wasm-gen": "1.14.1", "@webassemblyjs/wasm-opt": "1.14.1", "@webassemblyjs/wasm-parser": "1.14.1", "@webassemblyjs/wast-printer": "1.14.1" } }, "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ=="], - "@verdaccio/signature": ["@verdaccio/signature@8.0.0-next-8.7", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@verdaccio/signature/-/signature-8.0.0-next-8.7.tgz", { "dependencies": { "@verdaccio/config": "8.0.0-next-8.15", "debug": "4.4.0", "jsonwebtoken": "9.0.2" } }, "sha512-sqP+tNzUtVIwUtt1ZHwYoxsO3roDLK7GW8c8Hj0SNaON+9ele9z4NBhaor+g95zRuLy6xtw/RgOvpyLon/vPrA=="], + "@webassemblyjs/wasm-gen": ["@webassemblyjs/wasm-gen@1.14.1", "", { "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-wasm-bytecode": "1.13.2", "@webassemblyjs/ieee754": "1.13.2", "@webassemblyjs/leb128": "1.13.2", "@webassemblyjs/utf8": "1.13.2" } }, "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg=="], - "@verdaccio/streams": ["@verdaccio/streams@10.2.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@verdaccio/streams/-/streams-10.2.1.tgz", {}, "sha512-OojIG/f7UYKxC4dYX8x5ax8QhRx1b8OYUAMz82rUottCuzrssX/4nn5QE7Ank0DUSX3C9l/HPthc4d9uKRJqJQ=="], + "@webassemblyjs/wasm-opt": ["@webassemblyjs/wasm-opt@1.14.1", "", { "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-buffer": "1.14.1", "@webassemblyjs/wasm-gen": "1.14.1", "@webassemblyjs/wasm-parser": "1.14.1" } }, "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw=="], - "@verdaccio/tarball": ["@verdaccio/tarball@13.0.0-next-8.15", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@verdaccio/tarball/-/tarball-13.0.0-next-8.15.tgz", { "dependencies": { "@verdaccio/core": "8.0.0-next-8.15", "@verdaccio/url": "13.0.0-next-8.15", "@verdaccio/utils": "8.1.0-next-8.15", "debug": "4.4.0", "gunzip-maybe": "^1.4.2", "lodash": "4.17.21", "tar-stream": "^3.1.7" } }, "sha512-oSNmq7zD/iPIC5HpJbOJjW/lb0JV9k3jLwI6sG7kPgm+UIxVAOV4fKQOAD18HpHl/WjkF247NA6zGlAB94Habw=="], + "@webassemblyjs/wasm-parser": ["@webassemblyjs/wasm-parser@1.14.1", "", { "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-api-error": "1.13.2", "@webassemblyjs/helper-wasm-bytecode": "1.13.2", "@webassemblyjs/ieee754": "1.13.2", "@webassemblyjs/leb128": "1.13.2", "@webassemblyjs/utf8": "1.13.2" } }, "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ=="], - "@verdaccio/ui-theme": ["@verdaccio/ui-theme@8.0.0-next-8.15", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@verdaccio/ui-theme/-/ui-theme-8.0.0-next-8.15.tgz", {}, "sha512-k9BAM7rvbUqB2JPReNgXKUVTzBkdmIrNw0f6/7uyO+9cp7eVuarrPBnVF0oMc7jzVNBZRCpUksrhMZ0KwDZTpw=="], + "@webassemblyjs/wast-printer": ["@webassemblyjs/wast-printer@1.14.1", "", { "dependencies": { "@webassemblyjs/ast": "1.14.1", "@xtuc/long": "4.2.2" } }, "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw=="], - "@verdaccio/url": ["@verdaccio/url@13.0.0-next-8.15", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@verdaccio/url/-/url-13.0.0-next-8.15.tgz", { "dependencies": { "@verdaccio/core": "8.0.0-next-8.15", "debug": "4.4.0", "lodash": "4.17.21", "validator": "13.12.0" } }, "sha512-1N/dGhw7cZMhupf/Xlm73beiL3oCaAiyo9DTumjF3aTcJnipVcT1hoj6CSj9RIX54824rUK9WVmo83dk0KPnjw=="], + "@xhmikosr/archive-type": ["@xhmikosr/archive-type@7.1.0", "", { "dependencies": { "file-type": "^20.5.0" } }, "sha512-xZEpnGplg1sNPyEgFh0zbHxqlw5dtYg6viplmWSxUj12+QjU9SKu3U/2G73a15pEjLaOqTefNSZ1fOPUOT4Xgg=="], - "@verdaccio/utils": ["@verdaccio/utils@8.1.0-next-8.15", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@verdaccio/utils/-/utils-8.1.0-next-8.15.tgz", { "dependencies": { "@verdaccio/core": "8.0.0-next-8.15", "lodash": "4.17.21", "minimatch": "7.4.6", "semver": "7.7.1" } }, "sha512-efg/bunOUMVXV+MlljJCrpuT+OQRrQS4wJyGL92B3epUGlgZ8DXs+nxN5v59v1a6AocAdSKwHgZS0g9txmBhOg=="], + "@xhmikosr/bin-check": ["@xhmikosr/bin-check@7.1.0", "", { "dependencies": { "execa": "^5.1.1", "isexe": "^2.0.0" } }, "sha512-y1O95J4mnl+6MpVmKfMYXec17hMEwE/yeCglFNdx+QvLLtP0yN4rSYcbkXnth+lElBuKKek2NbvOfOGPpUXCvw=="], - "@vitest/coverage-v8": ["@vitest/coverage-v8@3.2.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@vitest/coverage-v8/-/coverage-v8-3.2.4.tgz", { "dependencies": { "@ampproject/remapping": "^2.3.0", "@bcoe/v8-coverage": "^1.0.2", "ast-v8-to-istanbul": "^0.3.3", "debug": "^4.4.1", "istanbul-lib-coverage": "^3.2.2", "istanbul-lib-report": "^3.0.1", "istanbul-lib-source-maps": "^5.0.6", "istanbul-reports": "^3.1.7", "magic-string": "^0.30.17", "magicast": "^0.3.5", "std-env": "^3.9.0", "test-exclude": "^7.0.1", "tinyrainbow": "^2.0.0" }, "peerDependencies": { "@vitest/browser": "3.2.4", "vitest": "3.2.4" }, "optionalPeers": ["@vitest/browser"] }, "sha512-EyF9SXU6kS5Ku/U82E259WSnvg6c8KTjppUncuNdm5QHpe17mwREHnjDzozC8x9MZ0xfBUFSaLkRv4TMA75ALQ=="], + "@xhmikosr/bin-wrapper": ["@xhmikosr/bin-wrapper@13.2.0", "", { "dependencies": { "@xhmikosr/bin-check": "^7.1.0", "@xhmikosr/downloader": "^15.2.0", "@xhmikosr/os-filter-obj": "^3.0.0", "bin-version-check": "^5.1.0" } }, "sha512-t9U9X0sDPRGDk5TGx4dv5xiOvniVJpXnfTuynVKwHgtib95NYEw4MkZdJqhoSiz820D9m0o6PCqOPMXz0N9fIw=="], - "@vitest/expect": ["@vitest/expect@3.2.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@vitest/expect/-/expect-3.2.4.tgz", { "dependencies": { "@types/chai": "^5.2.2", "@vitest/spy": "3.2.4", "@vitest/utils": "3.2.4", "chai": "^5.2.0", "tinyrainbow": "^2.0.0" } }, "sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig=="], + "@xhmikosr/decompress": ["@xhmikosr/decompress@10.2.0", "", { "dependencies": { "@xhmikosr/decompress-tar": "^8.1.0", "@xhmikosr/decompress-tarbz2": "^8.1.0", "@xhmikosr/decompress-targz": "^8.1.0", "@xhmikosr/decompress-unzip": "^7.1.0", "graceful-fs": "^4.2.11", "strip-dirs": "^3.0.0" } }, "sha512-MmDBvu0+GmADyQWHolcZuIWffgfnuTo4xpr2I/Qw5Ox0gt+e1Be7oYqJM4te5ylL6mzlcoicnHVDvP27zft8tg=="], - "@vitest/mocker": ["@vitest/mocker@3.2.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@vitest/mocker/-/mocker-3.2.4.tgz", { "dependencies": { "@vitest/spy": "3.2.4", "estree-walker": "^3.0.3", "magic-string": "^0.30.17" }, "peerDependencies": { "msw": "^2.4.9", "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" }, "optionalPeers": ["msw", "vite"] }, "sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ=="], + "@xhmikosr/decompress-tar": ["@xhmikosr/decompress-tar@8.1.0", "", { "dependencies": { "file-type": "^20.5.0", "is-stream": "^2.0.1", "tar-stream": "^3.1.7" } }, "sha512-m0q8x6lwxenh1CrsTby0Jrjq4vzW/QU1OLhTHMQLEdHpmjR1lgahGz++seZI0bXF3XcZw3U3xHfqZSz+JPP2Gg=="], - "@vitest/pretty-format": ["@vitest/pretty-format@3.2.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@vitest/pretty-format/-/pretty-format-3.2.4.tgz", { "dependencies": { "tinyrainbow": "^2.0.0" } }, "sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA=="], + "@xhmikosr/decompress-tarbz2": ["@xhmikosr/decompress-tarbz2@8.1.0", "", { "dependencies": { "@xhmikosr/decompress-tar": "^8.0.1", "file-type": "^20.5.0", "is-stream": "^2.0.1", "seek-bzip": "^2.0.0", "unbzip2-stream": "^1.4.3" } }, "sha512-aCLfr3A/FWZnOu5eqnJfme1Z1aumai/WRw55pCvBP+hCGnTFrcpsuiaVN5zmWTR53a8umxncY2JuYsD42QQEbw=="], - "@vitest/runner": ["@vitest/runner@3.2.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@vitest/runner/-/runner-3.2.4.tgz", { "dependencies": { "@vitest/utils": "3.2.4", "pathe": "^2.0.3", "strip-literal": "^3.0.0" } }, "sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ=="], + "@xhmikosr/decompress-targz": ["@xhmikosr/decompress-targz@8.1.0", "", { "dependencies": { "@xhmikosr/decompress-tar": "^8.0.1", "file-type": "^20.5.0", "is-stream": "^2.0.1" } }, "sha512-fhClQ2wTmzxzdz2OhSQNo9ExefrAagw93qaG1YggoIz/QpI7atSRa7eOHv4JZkpHWs91XNn8Hry3CwUlBQhfPA=="], - "@vitest/snapshot": ["@vitest/snapshot@3.2.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@vitest/snapshot/-/snapshot-3.2.4.tgz", { "dependencies": { "@vitest/pretty-format": "3.2.4", "magic-string": "^0.30.17", "pathe": "^2.0.3" } }, "sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ=="], + "@xhmikosr/decompress-unzip": ["@xhmikosr/decompress-unzip@7.1.0", "", { "dependencies": { "file-type": "^20.5.0", "get-stream": "^6.0.1", "yauzl": "^3.1.2" } }, "sha512-oqTYAcObqTlg8owulxFTqiaJkfv2SHsxxxz9Wg4krJAHVzGWlZsU8tAB30R6ow+aHrfv4Kub6WQ8u04NWVPUpA=="], - "@vitest/spy": ["@vitest/spy@3.2.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@vitest/spy/-/spy-3.2.4.tgz", { "dependencies": { "tinyspy": "^4.0.3" } }, "sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw=="], + "@xhmikosr/downloader": ["@xhmikosr/downloader@15.2.0", "", { "dependencies": { "@xhmikosr/archive-type": "^7.1.0", "@xhmikosr/decompress": "^10.2.0", "content-disposition": "^0.5.4", "defaults": "^2.0.2", "ext-name": "^5.0.0", "file-type": "^20.5.0", "filenamify": "^6.0.0", "get-stream": "^6.0.1", "got": "^13.0.0" } }, "sha512-lAqbig3uRGTt0sHNIM4vUG9HoM+mRl8K28WuYxyXLCUT6pyzl4Y4i0LZ3jMEsCYZ6zjPZbO9XkG91OSTd4si7g=="], - "@vitest/ui": ["@vitest/ui@3.2.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@vitest/ui/-/ui-3.2.4.tgz", { "dependencies": { "@vitest/utils": "3.2.4", "fflate": "^0.8.2", "flatted": "^3.3.3", "pathe": "^2.0.3", "sirv": "^3.0.1", "tinyglobby": "^0.2.14", "tinyrainbow": "^2.0.0" }, "peerDependencies": { "vitest": "3.2.4" } }, "sha512-hGISOaP18plkzbWEcP/QvtRW1xDXF2+96HbEX6byqQhAUbiS5oH6/9JwW+QsQCIYON2bI6QZBF+2PvOmrRZ9wA=="], + "@xhmikosr/os-filter-obj": ["@xhmikosr/os-filter-obj@3.0.0", "", { "dependencies": { "arch": "^3.0.0" } }, "sha512-siPY6BD5dQ2SZPl3I0OZBHL27ZqZvLEosObsZRQ1NUB8qcxegwt0T9eKtV96JMFQpIz1elhkzqOg4c/Ri6Dp9A=="], - "@vitest/utils": ["@vitest/utils@3.2.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@vitest/utils/-/utils-3.2.4.tgz", { "dependencies": { "@vitest/pretty-format": "3.2.4", "loupe": "^3.1.4", "tinyrainbow": "^2.0.0" } }, "sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA=="], + "@xmldom/xmldom": ["@xmldom/xmldom@0.9.8", "", {}, "sha512-p96FSY54r+WJ50FIOsCOjyj/wavs8921hG5+kVMmZgKcvIKxMXHTrjNJvRgWa/zuX3B6t2lijLNFaOyuxUH+2A=="], - "@webassemblyjs/ast": ["@webassemblyjs/ast@1.14.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@webassemblyjs/ast/-/ast-1.14.1.tgz", { "dependencies": { "@webassemblyjs/helper-numbers": "1.13.2", "@webassemblyjs/helper-wasm-bytecode": "1.13.2" } }, "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ=="], + "@xtuc/ieee754": ["@xtuc/ieee754@1.2.0", "", {}, "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA=="], - "@webassemblyjs/floating-point-hex-parser": ["@webassemblyjs/floating-point-hex-parser@1.13.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", {}, "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA=="], + "@xtuc/long": ["@xtuc/long@4.2.2", "", {}, "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ=="], - "@webassemblyjs/helper-api-error": ["@webassemblyjs/helper-api-error@1.13.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", {}, "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ=="], + "@yarnpkg/lockfile": ["@yarnpkg/lockfile@1.1.0", "", {}, "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ=="], - "@webassemblyjs/helper-buffer": ["@webassemblyjs/helper-buffer@1.14.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", {}, "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA=="], + "@yarnpkg/parsers": ["@yarnpkg/parsers@3.0.2", "", { "dependencies": { "js-yaml": "^3.10.0", "tslib": "^2.4.0" } }, "sha512-/HcYgtUSiJiot/XWGLOlGxPYUG65+/31V8oqk17vZLW1xlCoR4PampyePljOxY2n8/3jz9+tIFzICsyGujJZoA=="], - "@webassemblyjs/helper-numbers": ["@webassemblyjs/helper-numbers@1.13.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", { "dependencies": { "@webassemblyjs/floating-point-hex-parser": "1.13.2", "@webassemblyjs/helper-api-error": "1.13.2", "@xtuc/long": "4.2.2" } }, "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA=="], + "@zkochan/js-yaml": ["@zkochan/js-yaml@0.0.7", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ=="], - "@webassemblyjs/helper-wasm-bytecode": ["@webassemblyjs/helper-wasm-bytecode@1.13.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", {}, "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA=="], + "JSONStream": ["JSONStream@1.3.5", "", { "dependencies": { "jsonparse": "^1.2.0", "through": ">=2.2.7 <3" }, "bin": { "JSONStream": "./bin.js" } }, "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ=="], - "@webassemblyjs/helper-wasm-section": ["@webassemblyjs/helper-wasm-section@1.14.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", { "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-buffer": "1.14.1", "@webassemblyjs/helper-wasm-bytecode": "1.13.2", "@webassemblyjs/wasm-gen": "1.14.1" } }, "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw=="], + "abort-controller": ["abort-controller@3.0.0", "", { "dependencies": { "event-target-shim": "^5.0.0" } }, "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg=="], - "@webassemblyjs/ieee754": ["@webassemblyjs/ieee754@1.13.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", { "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw=="], + "accepts": ["accepts@1.3.8", "", { "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" } }, "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw=="], - "@webassemblyjs/leb128": ["@webassemblyjs/leb128@1.13.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", { "dependencies": { "@xtuc/long": "4.2.2" } }, "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw=="], + "acorn": ["acorn@8.16.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw=="], - "@webassemblyjs/utf8": ["@webassemblyjs/utf8@1.13.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", {}, "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ=="], + "acorn-import-phases": ["acorn-import-phases@1.0.4", "", { "peerDependencies": { "acorn": "^8.14.0" } }, "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ=="], - "@webassemblyjs/wasm-edit": ["@webassemblyjs/wasm-edit@1.14.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", { "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-buffer": "1.14.1", "@webassemblyjs/helper-wasm-bytecode": "1.13.2", "@webassemblyjs/helper-wasm-section": "1.14.1", "@webassemblyjs/wasm-gen": "1.14.1", "@webassemblyjs/wasm-opt": "1.14.1", "@webassemblyjs/wasm-parser": "1.14.1", "@webassemblyjs/wast-printer": "1.14.1" } }, "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ=="], + "acorn-jsx": ["acorn-jsx@5.3.2", "", { "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="], - "@webassemblyjs/wasm-gen": ["@webassemblyjs/wasm-gen@1.14.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", { "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-wasm-bytecode": "1.13.2", "@webassemblyjs/ieee754": "1.13.2", "@webassemblyjs/leb128": "1.13.2", "@webassemblyjs/utf8": "1.13.2" } }, "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg=="], + "acorn-walk": ["acorn-walk@8.3.5", "", { "dependencies": { "acorn": "^8.11.0" } }, "sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw=="], - "@webassemblyjs/wasm-opt": ["@webassemblyjs/wasm-opt@1.14.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", { "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-buffer": "1.14.1", "@webassemblyjs/wasm-gen": "1.14.1", "@webassemblyjs/wasm-parser": "1.14.1" } }, "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw=="], + "address": ["address@1.2.2", "", {}, "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA=="], - "@webassemblyjs/wasm-parser": ["@webassemblyjs/wasm-parser@1.14.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", { "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-api-error": "1.13.2", "@webassemblyjs/helper-wasm-bytecode": "1.13.2", "@webassemblyjs/ieee754": "1.13.2", "@webassemblyjs/leb128": "1.13.2", "@webassemblyjs/utf8": "1.13.2" } }, "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ=="], + "adt-fixtures": ["adt-fixtures@workspace:packages/adt-fixtures"], - "@webassemblyjs/wast-printer": ["@webassemblyjs/wast-printer@1.14.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", { "dependencies": { "@webassemblyjs/ast": "1.14.1", "@xtuc/long": "4.2.2" } }, "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw=="], + "agent-base": ["agent-base@7.1.4", "", {}, "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ=="], - "@xhmikosr/archive-type": ["@xhmikosr/archive-type@7.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@xhmikosr/archive-type/-/archive-type-7.1.0.tgz", { "dependencies": { "file-type": "^20.5.0" } }, "sha512-xZEpnGplg1sNPyEgFh0zbHxqlw5dtYg6viplmWSxUj12+QjU9SKu3U/2G73a15pEjLaOqTefNSZ1fOPUOT4Xgg=="], + "ajv": ["ajv@8.18.0", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A=="], - "@xhmikosr/bin-check": ["@xhmikosr/bin-check@7.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@xhmikosr/bin-check/-/bin-check-7.1.0.tgz", { "dependencies": { "execa": "^5.1.1", "isexe": "^2.0.0" } }, "sha512-y1O95J4mnl+6MpVmKfMYXec17hMEwE/yeCglFNdx+QvLLtP0yN4rSYcbkXnth+lElBuKKek2NbvOfOGPpUXCvw=="], + "ajv-formats": ["ajv-formats@2.1.1", "", { "dependencies": { "ajv": "^8.0.0" } }, "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA=="], - "@xhmikosr/bin-wrapper": ["@xhmikosr/bin-wrapper@13.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@xhmikosr/bin-wrapper/-/bin-wrapper-13.2.0.tgz", { "dependencies": { "@xhmikosr/bin-check": "^7.1.0", "@xhmikosr/downloader": "^15.2.0", "@xhmikosr/os-filter-obj": "^3.0.0", "bin-version-check": "^5.1.0" } }, "sha512-t9U9X0sDPRGDk5TGx4dv5xiOvniVJpXnfTuynVKwHgtib95NYEw4MkZdJqhoSiz820D9m0o6PCqOPMXz0N9fIw=="], + "ajv-keywords": ["ajv-keywords@5.1.0", "", { "dependencies": { "fast-deep-equal": "^3.1.3" }, "peerDependencies": { "ajv": "^8.8.2" } }, "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw=="], - "@xhmikosr/decompress": ["@xhmikosr/decompress@10.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@xhmikosr/decompress/-/decompress-10.2.0.tgz", { "dependencies": { "@xhmikosr/decompress-tar": "^8.1.0", "@xhmikosr/decompress-tarbz2": "^8.1.0", "@xhmikosr/decompress-targz": "^8.1.0", "@xhmikosr/decompress-unzip": "^7.1.0", "graceful-fs": "^4.2.11", "strip-dirs": "^3.0.0" } }, "sha512-MmDBvu0+GmADyQWHolcZuIWffgfnuTo4xpr2I/Qw5Ox0gt+e1Be7oYqJM4te5ylL6mzlcoicnHVDvP27zft8tg=="], + "ansi-colors": ["ansi-colors@4.1.3", "", {}, "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw=="], - "@xhmikosr/decompress-tar": ["@xhmikosr/decompress-tar@8.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@xhmikosr/decompress-tar/-/decompress-tar-8.1.0.tgz", { "dependencies": { "file-type": "^20.5.0", "is-stream": "^2.0.1", "tar-stream": "^3.1.7" } }, "sha512-m0q8x6lwxenh1CrsTby0Jrjq4vzW/QU1OLhTHMQLEdHpmjR1lgahGz++seZI0bXF3XcZw3U3xHfqZSz+JPP2Gg=="], + "ansi-escapes": ["ansi-escapes@7.3.0", "", { "dependencies": { "environment": "^1.0.0" } }, "sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg=="], - "@xhmikosr/decompress-tarbz2": ["@xhmikosr/decompress-tarbz2@8.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@xhmikosr/decompress-tarbz2/-/decompress-tarbz2-8.1.0.tgz", { "dependencies": { "@xhmikosr/decompress-tar": "^8.0.1", "file-type": "^20.5.0", "is-stream": "^2.0.1", "seek-bzip": "^2.0.0", "unbzip2-stream": "^1.4.3" } }, "sha512-aCLfr3A/FWZnOu5eqnJfme1Z1aumai/WRw55pCvBP+hCGnTFrcpsuiaVN5zmWTR53a8umxncY2JuYsD42QQEbw=="], + "ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], - "@xhmikosr/decompress-targz": ["@xhmikosr/decompress-targz@8.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@xhmikosr/decompress-targz/-/decompress-targz-8.1.0.tgz", { "dependencies": { "@xhmikosr/decompress-tar": "^8.0.1", "file-type": "^20.5.0", "is-stream": "^2.0.1" } }, "sha512-fhClQ2wTmzxzdz2OhSQNo9ExefrAagw93qaG1YggoIz/QpI7atSRa7eOHv4JZkpHWs91XNn8Hry3CwUlBQhfPA=="], + "ansi-styles": ["ansi-styles@6.2.3", "", {}, "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg=="], - "@xhmikosr/decompress-unzip": ["@xhmikosr/decompress-unzip@7.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@xhmikosr/decompress-unzip/-/decompress-unzip-7.1.0.tgz", { "dependencies": { "file-type": "^20.5.0", "get-stream": "^6.0.1", "yauzl": "^3.1.2" } }, "sha512-oqTYAcObqTlg8owulxFTqiaJkfv2SHsxxxz9Wg4krJAHVzGWlZsU8tAB30R6ow+aHrfv4Kub6WQ8u04NWVPUpA=="], + "ansis": ["ansis@4.2.0", "", {}, "sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig=="], - "@xhmikosr/downloader": ["@xhmikosr/downloader@15.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@xhmikosr/downloader/-/downloader-15.2.0.tgz", { "dependencies": { "@xhmikosr/archive-type": "^7.1.0", "@xhmikosr/decompress": "^10.2.0", "content-disposition": "^0.5.4", "defaults": "^2.0.2", "ext-name": "^5.0.0", "file-type": "^20.5.0", "filenamify": "^6.0.0", "get-stream": "^6.0.1", "got": "^13.0.0" } }, "sha512-lAqbig3uRGTt0sHNIM4vUG9HoM+mRl8K28WuYxyXLCUT6pyzl4Y4i0LZ3jMEsCYZ6zjPZbO9XkG91OSTd4si7g=="], + "anymatch": ["anymatch@3.1.3", "", { "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw=="], - "@xhmikosr/os-filter-obj": ["@xhmikosr/os-filter-obj@3.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@xhmikosr/os-filter-obj/-/os-filter-obj-3.0.0.tgz", { "dependencies": { "arch": "^3.0.0" } }, "sha512-siPY6BD5dQ2SZPl3I0OZBHL27ZqZvLEosObsZRQ1NUB8qcxegwt0T9eKtV96JMFQpIz1elhkzqOg4c/Ri6Dp9A=="], + "apache-md5": ["apache-md5@1.1.8", "", {}, "sha512-FCAJojipPn0bXjuEpjOOOMN8FZDkxfWWp4JGN9mifU2IhxvKyXZYqpzPHdnTSUpmPDy+tsslB6Z1g+Vg6nVbYA=="], - "@xmldom/xmldom": ["@xmldom/xmldom@0.9.8", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@xmldom/xmldom/-/xmldom-0.9.8.tgz", {}, "sha512-p96FSY54r+WJ50FIOsCOjyj/wavs8921hG5+kVMmZgKcvIKxMXHTrjNJvRgWa/zuX3B6t2lijLNFaOyuxUH+2A=="], + "arch": ["arch@3.0.0", "", {}, "sha512-AmIAC+Wtm2AU8lGfTtHsw0Y9Qtftx2YXEEtiBP10xFUtMOA+sHHx6OAddyL52mUKh1vsXQ6/w1mVDptZCyUt4Q=="], - "@xtuc/ieee754": ["@xtuc/ieee754@1.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@xtuc/ieee754/-/ieee754-1.2.0.tgz", {}, "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA=="], + "arg": ["arg@4.1.3", "", {}, "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA=="], - "@xtuc/long": ["@xtuc/long@4.2.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@xtuc/long/-/long-4.2.2.tgz", {}, "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ=="], + "argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], - "@yarnpkg/lockfile": ["@yarnpkg/lockfile@1.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", {}, "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ=="], + "array-buffer-byte-length": ["array-buffer-byte-length@1.0.2", "", { "dependencies": { "call-bound": "^1.0.3", "is-array-buffer": "^3.0.5" } }, "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw=="], - "@yarnpkg/parsers": ["@yarnpkg/parsers@3.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@yarnpkg/parsers/-/parsers-3.0.2.tgz", { "dependencies": { "js-yaml": "^3.10.0", "tslib": "^2.4.0" } }, "sha512-/HcYgtUSiJiot/XWGLOlGxPYUG65+/31V8oqk17vZLW1xlCoR4PampyePljOxY2n8/3jz9+tIFzICsyGujJZoA=="], + "array-flatten": ["array-flatten@1.1.1", "", {}, "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="], - "@zkochan/js-yaml": ["@zkochan/js-yaml@0.0.7", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@zkochan/js-yaml/-/js-yaml-0.0.7.tgz", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ=="], + "array-includes": ["array-includes@3.1.9", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.4", "define-properties": "^1.2.1", "es-abstract": "^1.24.0", "es-object-atoms": "^1.1.1", "get-intrinsic": "^1.3.0", "is-string": "^1.1.1", "math-intrinsics": "^1.1.0" } }, "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ=="], - "JSONStream": ["JSONStream@1.3.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/JSONStream/-/JSONStream-1.3.5.tgz", { "dependencies": { "jsonparse": "^1.2.0", "through": ">=2.2.7 <3" }, "bin": { "JSONStream": "./bin.js" } }, "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ=="], + "array-union": ["array-union@2.1.0", "", {}, "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw=="], - "abort-controller": ["abort-controller@3.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/abort-controller/-/abort-controller-3.0.0.tgz", { "dependencies": { "event-target-shim": "^5.0.0" } }, "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg=="], + "array.prototype.findlastindex": ["array.prototype.findlastindex@1.2.6", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.4", "define-properties": "^1.2.1", "es-abstract": "^1.23.9", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "es-shim-unscopables": "^1.1.0" } }, "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ=="], - "accepts": ["accepts@1.3.8", "https://jfrog.booking.com:443/artifactory/api/npm/npm/accepts/-/accepts-1.3.8.tgz", { "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" } }, "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw=="], + "array.prototype.flat": ["array.prototype.flat@1.3.3", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-shim-unscopables": "^1.0.2" } }, "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg=="], - "acorn": ["acorn@8.15.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/acorn/-/acorn-8.15.0.tgz", { "bin": { "acorn": "bin/acorn" } }, "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg=="], + "array.prototype.flatmap": ["array.prototype.flatmap@1.3.3", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-shim-unscopables": "^1.0.2" } }, "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg=="], - "acorn-import-phases": ["acorn-import-phases@1.0.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", { "peerDependencies": { "acorn": "^8.14.0" } }, "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ=="], + "arraybuffer.prototype.slice": ["arraybuffer.prototype.slice@1.0.4", "", { "dependencies": { "array-buffer-byte-length": "^1.0.1", "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", "is-array-buffer": "^3.0.4" } }, "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ=="], - "acorn-jsx": ["acorn-jsx@5.3.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/acorn-jsx/-/acorn-jsx-5.3.2.tgz", { "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="], + "asn1": ["asn1@0.2.6", "", { "dependencies": { "safer-buffer": "~2.1.0" } }, "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ=="], - "acorn-walk": ["acorn-walk@8.3.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/acorn-walk/-/acorn-walk-8.3.4.tgz", { "dependencies": { "acorn": "^8.11.0" } }, "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g=="], + "assert-plus": ["assert-plus@1.0.0", "", {}, "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw=="], - "address": ["address@1.2.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/address/-/address-1.2.2.tgz", {}, "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA=="], + "assertion-error": ["assertion-error@2.0.1", "", {}, "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA=="], - "adt-fixtures": ["adt-fixtures@workspace:packages/adt-fixtures"], + "ast-kit": ["ast-kit@2.2.0", "", { "dependencies": { "@babel/parser": "^7.28.5", "pathe": "^2.0.3" } }, "sha512-m1Q/RaVOnTp9JxPX+F+Zn7IcLYMzM8kZofDImfsKZd8MbR+ikdOzTeztStWqfrqIxZnYWryyI9ePm3NGjnZgGw=="], - "agent-base": ["agent-base@7.1.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/agent-base/-/agent-base-7.1.4.tgz", {}, "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ=="], + "ast-types": ["ast-types@0.13.4", "", { "dependencies": { "tslib": "^2.0.1" } }, "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w=="], - "ajv": ["ajv@8.17.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ajv/-/ajv-8.17.1.tgz", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g=="], + "ast-v8-to-istanbul": ["ast-v8-to-istanbul@0.3.12", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.31", "estree-walker": "^3.0.3", "js-tokens": "^10.0.0" } }, "sha512-BRRC8VRZY2R4Z4lFIL35MwNXmwVqBityvOIwETtsCSwvjl0IdgFsy9NhdaA6j74nUdtJJlIypeRhpDam19Wq3g=="], - "ajv-formats": ["ajv-formats@2.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ajv-formats/-/ajv-formats-2.1.1.tgz", { "dependencies": { "ajv": "^8.0.0" } }, "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA=="], + "async": ["async@3.2.6", "", {}, "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA=="], - "ajv-keywords": ["ajv-keywords@5.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ajv-keywords/-/ajv-keywords-5.1.0.tgz", { "dependencies": { "fast-deep-equal": "^3.1.3" }, "peerDependencies": { "ajv": "^8.8.2" } }, "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw=="], + "async-function": ["async-function@1.0.0", "", {}, "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA=="], - "ansi-colors": ["ansi-colors@4.1.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-colors/-/ansi-colors-4.1.3.tgz", {}, "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw=="], + "asynckit": ["asynckit@0.4.0", "", {}, "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="], - "ansi-escapes": ["ansi-escapes@7.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-escapes/-/ansi-escapes-7.2.0.tgz", { "dependencies": { "environment": "^1.0.0" } }, "sha512-g6LhBsl+GBPRWGWsBtutpzBYuIIdBkLEvad5C/va/74Db018+5TZiyA26cZJAr3Rft5lprVqOIPxf5Vid6tqAw=="], + "atomic-sleep": ["atomic-sleep@1.0.0", "", {}, "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ=="], - "ansi-regex": ["ansi-regex@5.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-regex/-/ansi-regex-5.0.1.tgz", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], + "auto-bind": ["auto-bind@5.0.1", "", {}, "sha512-ooviqdwwgfIfNmDwo94wlshcdzfO64XV0Cg6oDsDYBJfITDz1EngD2z7DkbvCWn+XIMsIqW27sEVF6qcpJrRcg=="], - "ansi-styles": ["ansi-styles@6.2.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-6.2.3.tgz", {}, "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg=="], + "autoprefixer": ["autoprefixer@10.4.27", "", { "dependencies": { "browserslist": "^4.28.1", "caniuse-lite": "^1.0.30001774", "fraction.js": "^5.3.4", "picocolors": "^1.1.1", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.1.0" }, "bin": { "autoprefixer": "bin/autoprefixer" } }, "sha512-NP9APE+tO+LuJGn7/9+cohklunJsXWiaWEfV3si4Gi/XHDwVNgkwr1J3RQYFIvPy76GmJ9/bW8vyoU1LcxwKHA=="], - "ansis": ["ansis@4.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansis/-/ansis-4.2.0.tgz", {}, "sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig=="], + "available-typed-arrays": ["available-typed-arrays@1.0.7", "", { "dependencies": { "possible-typed-array-names": "^1.0.0" } }, "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ=="], - "antlr4": ["antlr4@4.9.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/antlr4/-/antlr4-4.9.3.tgz", {}, "sha512-qNy2odgsa0skmNMCuxzXhM4M8J1YDaPv3TI+vCdnOAanu0N982wBrSqziDKRDctEZLZy9VffqIZXc0UGjjSP/g=="], + "aws-sign2": ["aws-sign2@0.7.0", "", {}, "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA=="], - "anymatch": ["anymatch@3.1.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/anymatch/-/anymatch-3.1.3.tgz", { "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw=="], + "aws4": ["aws4@1.13.2", "", {}, "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw=="], - "apache-md5": ["apache-md5@1.1.8", "https://jfrog.booking.com:443/artifactory/api/npm/npm/apache-md5/-/apache-md5-1.1.8.tgz", {}, "sha512-FCAJojipPn0bXjuEpjOOOMN8FZDkxfWWp4JGN9mifU2IhxvKyXZYqpzPHdnTSUpmPDy+tsslB6Z1g+Vg6nVbYA=="], + "axios": ["axios@1.13.5", "", { "dependencies": { "follow-redirects": "^1.15.11", "form-data": "^4.0.5", "proxy-from-env": "^1.1.0" } }, "sha512-cz4ur7Vb0xS4/KUN0tPWe44eqxrIu31me+fbang3ijiNscE129POzipJJA6zniq2C/Z6sJCjMimjS8Lc/GAs8Q=="], - "arch": ["arch@3.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/arch/-/arch-3.0.0.tgz", {}, "sha512-AmIAC+Wtm2AU8lGfTtHsw0Y9Qtftx2YXEEtiBP10xFUtMOA+sHHx6OAddyL52mUKh1vsXQ6/w1mVDptZCyUt4Q=="], + "b4a": ["b4a@1.8.0", "", { "peerDependencies": { "react-native-b4a": "*" }, "optionalPeers": ["react-native-b4a"] }, "sha512-qRuSmNSkGQaHwNbM7J78Wwy+ghLEYF1zNrSeMxj4Kgw6y33O3mXcQ6Ie9fRvfU/YnxWkOchPXbaLb73TkIsfdg=="], - "arg": ["arg@4.1.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/arg/-/arg-4.1.3.tgz", {}, "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA=="], + "babel-jest": ["babel-jest@30.2.0", "", { "dependencies": { "@jest/transform": "30.2.0", "@types/babel__core": "^7.20.5", "babel-plugin-istanbul": "^7.0.1", "babel-preset-jest": "30.2.0", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "slash": "^3.0.0" }, "peerDependencies": { "@babel/core": "^7.11.0 || ^8.0.0-0" } }, "sha512-0YiBEOxWqKkSQWL9nNGGEgndoeL0ZpWrbLMNL5u/Kaxrli3Eaxlt3ZtIDktEvXt4L/R9r3ODr2zKwGM/2BjxVw=="], - "argparse": ["argparse@2.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/argparse/-/argparse-2.0.1.tgz", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], + "babel-plugin-const-enum": ["babel-plugin-const-enum@1.2.0", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/plugin-syntax-typescript": "^7.3.3", "@babel/traverse": "^7.16.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-o1m/6iyyFnp9MRsK1dHF3bneqyf3AlM2q3A/YbgQr2pCat6B6XJVDv2TXqzfY2RYUi4mak6WAksSBPlyYGx9dg=="], - "array-buffer-byte-length": ["array-buffer-byte-length@1.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", { "dependencies": { "call-bound": "^1.0.3", "is-array-buffer": "^3.0.5" } }, "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw=="], + "babel-plugin-istanbul": ["babel-plugin-istanbul@7.0.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", "@istanbuljs/schema": "^0.1.3", "istanbul-lib-instrument": "^6.0.2", "test-exclude": "^6.0.0" } }, "sha512-D8Z6Qm8jCvVXtIRkBnqNHX0zJ37rQcFJ9u8WOS6tkYOsRdHBzypCstaxWiu5ZIlqQtviRYbgnRLSoCEvjqcqbA=="], - "array-flatten": ["array-flatten@1.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/array-flatten/-/array-flatten-1.1.1.tgz", {}, "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="], + "babel-plugin-jest-hoist": ["babel-plugin-jest-hoist@30.2.0", "", { "dependencies": { "@types/babel__core": "^7.20.5" } }, "sha512-ftzhzSGMUnOzcCXd6WHdBGMyuwy15Wnn0iyyWGKgBDLxf9/s5ABuraCSpBX2uG0jUg4rqJnxsLc5+oYBqoxVaA=="], - "array-includes": ["array-includes@3.1.9", "https://jfrog.booking.com:443/artifactory/api/npm/npm/array-includes/-/array-includes-3.1.9.tgz", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.4", "define-properties": "^1.2.1", "es-abstract": "^1.24.0", "es-object-atoms": "^1.1.1", "get-intrinsic": "^1.3.0", "is-string": "^1.1.1", "math-intrinsics": "^1.1.0" } }, "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ=="], + "babel-plugin-macros": ["babel-plugin-macros@3.1.0", "", { "dependencies": { "@babel/runtime": "^7.12.5", "cosmiconfig": "^7.0.0", "resolve": "^1.19.0" } }, "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg=="], - "array-union": ["array-union@2.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/array-union/-/array-union-2.1.0.tgz", {}, "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw=="], + "babel-plugin-polyfill-corejs2": ["babel-plugin-polyfill-corejs2@0.4.15", "", { "dependencies": { "@babel/compat-data": "^7.28.6", "@babel/helper-define-polyfill-provider": "^0.6.6", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "sha512-hR3GwrRwHUfYwGfrisXPIDP3JcYfBrW7wKE7+Au6wDYl7fm/ka1NEII6kORzxNU556JjfidZeBsO10kYvtV1aw=="], - "array.prototype.findlastindex": ["array.prototype.findlastindex@1.2.6", "https://jfrog.booking.com:443/artifactory/api/npm/npm/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.4", "define-properties": "^1.2.1", "es-abstract": "^1.23.9", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "es-shim-unscopables": "^1.1.0" } }, "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ=="], + "babel-plugin-polyfill-corejs3": ["babel-plugin-polyfill-corejs3@0.13.0", "", { "dependencies": { "@babel/helper-define-polyfill-provider": "^0.6.5", "core-js-compat": "^3.43.0" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A=="], - "array.prototype.flat": ["array.prototype.flat@1.3.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-shim-unscopables": "^1.0.2" } }, "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg=="], + "babel-plugin-polyfill-regenerator": ["babel-plugin-polyfill-regenerator@0.6.6", "", { "dependencies": { "@babel/helper-define-polyfill-provider": "^0.6.6" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "sha512-hYm+XLYRMvupxiQzrvXUj7YyvFFVfv5gI0R71AJzudg1g2AI2vyCPPIFEBjk162/wFzti3inBHo7isWFuEVS/A=="], - "array.prototype.flatmap": ["array.prototype.flatmap@1.3.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-shim-unscopables": "^1.0.2" } }, "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg=="], + "babel-plugin-transform-typescript-metadata": ["babel-plugin-transform-typescript-metadata@0.3.2", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.0.0" } }, "sha512-mWEvCQTgXQf48yDqgN7CH50waTyYBeP2Lpqx4nNWab9sxEpdXVeKgfj1qYI2/TgUPQtNFZ85i3PemRtnXVYYJg=="], - "arraybuffer.prototype.slice": ["arraybuffer.prototype.slice@1.0.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", { "dependencies": { "array-buffer-byte-length": "^1.0.1", "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", "is-array-buffer": "^3.0.4" } }, "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ=="], + "babel-preset-current-node-syntax": ["babel-preset-current-node-syntax@1.2.0", "", { "dependencies": { "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-bigint": "^7.8.3", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-import-attributes": "^7.24.7", "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", "@babel/plugin-syntax-numeric-separator": "^7.10.4", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5" }, "peerDependencies": { "@babel/core": "^7.0.0 || ^8.0.0-0" } }, "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg=="], - "asn1": ["asn1@0.2.6", "https://jfrog.booking.com:443/artifactory/api/npm/npm/asn1/-/asn1-0.2.6.tgz", { "dependencies": { "safer-buffer": "~2.1.0" } }, "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ=="], + "babel-preset-jest": ["babel-preset-jest@30.2.0", "", { "dependencies": { "babel-plugin-jest-hoist": "30.2.0", "babel-preset-current-node-syntax": "^1.2.0" }, "peerDependencies": { "@babel/core": "^7.11.0 || ^8.0.0-beta.1" } }, "sha512-US4Z3NOieAQumwFnYdUWKvUKh8+YSnS/gB3t6YBiz0bskpu7Pine8pPCheNxlPEW4wnUkma2a94YuW2q3guvCQ=="], - "assert-plus": ["assert-plus@1.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/assert-plus/-/assert-plus-1.0.0.tgz", {}, "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw=="], + "balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], - "assertion-error": ["assertion-error@2.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/assertion-error/-/assertion-error-2.0.1.tgz", {}, "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA=="], + "bare-events": ["bare-events@2.8.2", "", { "peerDependencies": { "bare-abort-controller": "*" }, "optionalPeers": ["bare-abort-controller"] }, "sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ=="], - "ast-kit": ["ast-kit@2.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ast-kit/-/ast-kit-2.2.0.tgz", { "dependencies": { "@babel/parser": "^7.28.5", "pathe": "^2.0.3" } }, "sha512-m1Q/RaVOnTp9JxPX+F+Zn7IcLYMzM8kZofDImfsKZd8MbR+ikdOzTeztStWqfrqIxZnYWryyI9ePm3NGjnZgGw=="], + "bare-fs": ["bare-fs@4.5.5", "", { "dependencies": { "bare-events": "^2.5.4", "bare-path": "^3.0.0", "bare-stream": "^2.6.4", "bare-url": "^2.2.2", "fast-fifo": "^1.3.2" }, "peerDependencies": { "bare-buffer": "*" }, "optionalPeers": ["bare-buffer"] }, "sha512-XvwYM6VZqKoqDll8BmSww5luA5eflDzY0uEFfBJtFKe4PAAtxBjU3YIxzIBzhyaEQBy1VXEQBto4cpN5RZJw+w=="], - "ast-types": ["ast-types@0.13.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ast-types/-/ast-types-0.13.4.tgz", { "dependencies": { "tslib": "^2.0.1" } }, "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w=="], + "bare-os": ["bare-os@3.7.0", "", {}, "sha512-64Rcwj8qlnTZU8Ps6JJEdSmxBEUGgI7g8l+lMtsJLl4IsfTcHMTfJ188u2iGV6P6YPRZrtv72B2kjn+hp+Yv3g=="], - "ast-v8-to-istanbul": ["ast-v8-to-istanbul@0.3.8", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ast-v8-to-istanbul/-/ast-v8-to-istanbul-0.3.8.tgz", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.31", "estree-walker": "^3.0.3", "js-tokens": "^9.0.1" } }, "sha512-szgSZqUxI5T8mLKvS7WTjF9is+MVbOeLADU73IseOcrqhxr/VAvy6wfoVE39KnKzA7JRhjF5eUagNlHwvZPlKQ=="], + "bare-path": ["bare-path@3.0.0", "", { "dependencies": { "bare-os": "^3.0.1" } }, "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw=="], - "async": ["async@3.2.6", "https://jfrog.booking.com:443/artifactory/api/npm/npm/async/-/async-3.2.6.tgz", {}, "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA=="], + "bare-stream": ["bare-stream@2.8.0", "", { "dependencies": { "streamx": "^2.21.0", "teex": "^1.0.1" }, "peerDependencies": { "bare-buffer": "*", "bare-events": "*" }, "optionalPeers": ["bare-buffer", "bare-events"] }, "sha512-reUN0M2sHRqCdG4lUK3Fw8w98eeUIZHL5c3H7Mbhk2yVBL+oofgaIp0ieLfD5QXwPCypBpmEEKU2WZKzbAk8GA=="], - "async-function": ["async-function@1.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/async-function/-/async-function-1.0.0.tgz", {}, "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA=="], + "bare-url": ["bare-url@2.3.2", "", { "dependencies": { "bare-path": "^3.0.0" } }, "sha512-ZMq4gd9ngV5aTMa5p9+UfY0b3skwhHELaDkhEHetMdX0LRkW9kzaym4oo/Eh+Ghm0CCDuMTsRIGM/ytUc1ZYmw=="], - "asynckit": ["asynckit@0.4.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/asynckit/-/asynckit-0.4.0.tgz", {}, "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="], + "base64-js": ["base64-js@1.5.1", "", {}, "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="], - "atomic-sleep": ["atomic-sleep@1.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/atomic-sleep/-/atomic-sleep-1.0.0.tgz", {}, "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ=="], + "baseline-browser-mapping": ["baseline-browser-mapping@2.10.0", "", { "bin": { "baseline-browser-mapping": "dist/cli.cjs" } }, "sha512-lIyg0szRfYbiy67j9KN8IyeD7q7hcmqnJ1ddWmNt19ItGpNN64mnllmxUNFIOdOm6by97jlL6wfpTTJrmnjWAA=="], - "auto-bind": ["auto-bind@5.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/auto-bind/-/auto-bind-5.0.1.tgz", {}, "sha512-ooviqdwwgfIfNmDwo94wlshcdzfO64XV0Cg6oDsDYBJfITDz1EngD2z7DkbvCWn+XIMsIqW27sEVF6qcpJrRcg=="], + "basic-auth": ["basic-auth@2.0.1", "", { "dependencies": { "safe-buffer": "5.1.2" } }, "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg=="], - "autoprefixer": ["autoprefixer@10.4.21", "https://jfrog.booking.com:443/artifactory/api/npm/npm/autoprefixer/-/autoprefixer-10.4.21.tgz", { "dependencies": { "browserslist": "^4.24.4", "caniuse-lite": "^1.0.30001702", "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", "picocolors": "^1.1.1", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.1.0" }, "bin": { "autoprefixer": "bin/autoprefixer" } }, "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ=="], + "basic-ftp": ["basic-ftp@5.2.0", "", {}, "sha512-VoMINM2rqJwJgfdHq6RiUudKt2BV+FY5ZFezP/ypmwayk68+NzzAQy4XXLlqsGD4MCzq3DrmNFD/uUmBJuGoXw=="], - "available-typed-arrays": ["available-typed-arrays@1.0.7", "https://jfrog.booking.com:443/artifactory/api/npm/npm/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", { "dependencies": { "possible-typed-array-names": "^1.0.0" } }, "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ=="], + "bcrypt-pbkdf": ["bcrypt-pbkdf@1.0.2", "", { "dependencies": { "tweetnacl": "^0.14.3" } }, "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w=="], - "aws-sign2": ["aws-sign2@0.7.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/aws-sign2/-/aws-sign2-0.7.0.tgz", {}, "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA=="], + "bcryptjs": ["bcryptjs@2.4.3", "", {}, "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ=="], - "aws4": ["aws4@1.13.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/aws4/-/aws4-1.13.2.tgz", {}, "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw=="], + "big.js": ["big.js@5.2.2", "", {}, "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ=="], - "axios": ["axios@1.13.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/axios/-/axios-1.13.2.tgz", { "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.4", "proxy-from-env": "^1.1.0" } }, "sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA=="], + "bin-version": ["bin-version@6.0.0", "", { "dependencies": { "execa": "^5.0.0", "find-versions": "^5.0.0" } }, "sha512-nk5wEsP4RiKjG+vF+uG8lFsEn4d7Y6FVDamzzftSunXOoOcOOkzcWdKVlGgFFwlUQCj63SgnUkLLGF8v7lufhw=="], - "b4a": ["b4a@1.7.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/b4a/-/b4a-1.7.3.tgz", { "peerDependencies": { "react-native-b4a": "*" }, "optionalPeers": ["react-native-b4a"] }, "sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q=="], + "bin-version-check": ["bin-version-check@5.1.0", "", { "dependencies": { "bin-version": "^6.0.0", "semver": "^7.5.3", "semver-truncate": "^3.0.0" } }, "sha512-bYsvMqJ8yNGILLz1KP9zKLzQ6YpljV3ln1gqhuLkUtyfGi3qXKGuK2p+U4NAvjVFzDFiBBtOpCOSFNuYYEGZ5g=="], - "babel-jest": ["babel-jest@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/babel-jest/-/babel-jest-30.2.0.tgz", { "dependencies": { "@jest/transform": "30.2.0", "@types/babel__core": "^7.20.5", "babel-plugin-istanbul": "^7.0.1", "babel-preset-jest": "30.2.0", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "slash": "^3.0.0" }, "peerDependencies": { "@babel/core": "^7.11.0 || ^8.0.0-0" } }, "sha512-0YiBEOxWqKkSQWL9nNGGEgndoeL0ZpWrbLMNL5u/Kaxrli3Eaxlt3ZtIDktEvXt4L/R9r3ODr2zKwGM/2BjxVw=="], + "birpc": ["birpc@4.0.0", "", {}, "sha512-LShSxJP0KTmd101b6DRyGBj57LZxSDYWKitQNW/mi8GRMvZb078Uf9+pveax1DrVL89vm7mWe+TovdI/UDOuPw=="], - "babel-plugin-const-enum": ["babel-plugin-const-enum@1.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/babel-plugin-const-enum/-/babel-plugin-const-enum-1.2.0.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/plugin-syntax-typescript": "^7.3.3", "@babel/traverse": "^7.16.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-o1m/6iyyFnp9MRsK1dHF3bneqyf3AlM2q3A/YbgQr2pCat6B6XJVDv2TXqzfY2RYUi4mak6WAksSBPlyYGx9dg=="], + "bl": ["bl@4.1.0", "", { "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", "readable-stream": "^3.4.0" } }, "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w=="], - "babel-plugin-istanbul": ["babel-plugin-istanbul@7.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/babel-plugin-istanbul/-/babel-plugin-istanbul-7.0.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", "@istanbuljs/schema": "^0.1.3", "istanbul-lib-instrument": "^6.0.2", "test-exclude": "^6.0.0" } }, "sha512-D8Z6Qm8jCvVXtIRkBnqNHX0zJ37rQcFJ9u8WOS6tkYOsRdHBzypCstaxWiu5ZIlqQtviRYbgnRLSoCEvjqcqbA=="], + "body-parser": ["body-parser@1.20.3", "", { "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.5", "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", "qs": "6.13.0", "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" } }, "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g=="], - "babel-plugin-jest-hoist": ["babel-plugin-jest-hoist@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.2.0.tgz", { "dependencies": { "@types/babel__core": "^7.20.5" } }, "sha512-ftzhzSGMUnOzcCXd6WHdBGMyuwy15Wnn0iyyWGKgBDLxf9/s5ABuraCSpBX2uG0jUg4rqJnxsLc5+oYBqoxVaA=="], + "boolbase": ["boolbase@1.0.0", "", {}, "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="], - "babel-plugin-macros": ["babel-plugin-macros@3.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", { "dependencies": { "@babel/runtime": "^7.12.5", "cosmiconfig": "^7.0.0", "resolve": "^1.19.0" } }, "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg=="], + "brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], - "babel-plugin-polyfill-corejs2": ["babel-plugin-polyfill-corejs2@0.4.14", "https://jfrog.booking.com:443/artifactory/api/npm/npm/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz", { "dependencies": { "@babel/compat-data": "^7.27.7", "@babel/helper-define-polyfill-provider": "^0.6.5", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg=="], + "braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="], - "babel-plugin-polyfill-corejs3": ["babel-plugin-polyfill-corejs3@0.13.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", { "dependencies": { "@babel/helper-define-polyfill-provider": "^0.6.5", "core-js-compat": "^3.43.0" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A=="], + "browserify-zlib": ["browserify-zlib@0.1.4", "", { "dependencies": { "pako": "~0.2.0" } }, "sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ=="], - "babel-plugin-polyfill-regenerator": ["babel-plugin-polyfill-regenerator@0.6.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz", { "dependencies": { "@babel/helper-define-polyfill-provider": "^0.6.5" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg=="], + "browserslist": ["browserslist@4.28.1", "", { "dependencies": { "baseline-browser-mapping": "^2.9.0", "caniuse-lite": "^1.0.30001759", "electron-to-chromium": "^1.5.263", "node-releases": "^2.0.27", "update-browserslist-db": "^1.2.0" }, "bin": { "browserslist": "cli.js" } }, "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA=="], - "babel-plugin-transform-typescript-metadata": ["babel-plugin-transform-typescript-metadata@0.3.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/babel-plugin-transform-typescript-metadata/-/babel-plugin-transform-typescript-metadata-0.3.2.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.0.0" } }, "sha512-mWEvCQTgXQf48yDqgN7CH50waTyYBeP2Lpqx4nNWab9sxEpdXVeKgfj1qYI2/TgUPQtNFZ85i3PemRtnXVYYJg=="], + "bs-logger": ["bs-logger@0.2.6", "", { "dependencies": { "fast-json-stable-stringify": "2.x" } }, "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog=="], - "babel-preset-current-node-syntax": ["babel-preset-current-node-syntax@1.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz", { "dependencies": { "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-bigint": "^7.8.3", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-import-attributes": "^7.24.7", "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", "@babel/plugin-syntax-numeric-separator": "^7.10.4", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5" }, "peerDependencies": { "@babel/core": "^7.0.0 || ^8.0.0-0" } }, "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg=="], + "bser": ["bser@2.1.1", "", { "dependencies": { "node-int64": "^0.4.0" } }, "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ=="], - "babel-preset-jest": ["babel-preset-jest@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/babel-preset-jest/-/babel-preset-jest-30.2.0.tgz", { "dependencies": { "babel-plugin-jest-hoist": "30.2.0", "babel-preset-current-node-syntax": "^1.2.0" }, "peerDependencies": { "@babel/core": "^7.11.0 || ^8.0.0-beta.1" } }, "sha512-US4Z3NOieAQumwFnYdUWKvUKh8+YSnS/gB3t6YBiz0bskpu7Pine8pPCheNxlPEW4wnUkma2a94YuW2q3guvCQ=="], + "buffer": ["buffer@6.0.3", "", { "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" } }, "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA=="], - "balanced-match": ["balanced-match@1.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/balanced-match/-/balanced-match-1.0.2.tgz", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], + "buffer-crc32": ["buffer-crc32@0.2.13", "", {}, "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ=="], - "bare-events": ["bare-events@2.8.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/bare-events/-/bare-events-2.8.1.tgz", { "peerDependencies": { "bare-abort-controller": "*" }, "optionalPeers": ["bare-abort-controller"] }, "sha512-oxSAxTS1hRfnyit2CL5QpAOS5ixfBjj6ex3yTNvXyY/kE719jQ/IjuESJBK2w5v4wwQRAHGseVJXx9QBYOtFGQ=="], + "buffer-equal-constant-time": ["buffer-equal-constant-time@1.0.1", "", {}, "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA=="], - "bare-fs": ["bare-fs@4.5.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/bare-fs/-/bare-fs-4.5.1.tgz", { "dependencies": { "bare-events": "^2.5.4", "bare-path": "^3.0.0", "bare-stream": "^2.6.4", "bare-url": "^2.2.2", "fast-fifo": "^1.3.2" }, "peerDependencies": { "bare-buffer": "*" }, "optionalPeers": ["bare-buffer"] }, "sha512-zGUCsm3yv/ePt2PHNbVxjjn0nNB1MkIaR4wOCxJ2ig5pCf5cCVAYJXVhQg/3OhhJV6DB1ts7Hv0oUaElc2TPQg=="], + "buffer-from": ["buffer-from@1.1.2", "", {}, "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="], - "bare-os": ["bare-os@3.6.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/bare-os/-/bare-os-3.6.2.tgz", {}, "sha512-T+V1+1srU2qYNBmJCXZkUY5vQ0B4FSlL3QDROnKQYOqeiQR8UbjNHlPa+TIbM4cuidiN9GaTaOZgSEgsvPbh5A=="], + "bundle-name": ["bundle-name@4.1.0", "", { "dependencies": { "run-applescript": "^7.0.0" } }, "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q=="], - "bare-path": ["bare-path@3.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/bare-path/-/bare-path-3.0.0.tgz", { "dependencies": { "bare-os": "^3.0.1" } }, "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw=="], + "bytes": ["bytes@3.1.2", "", {}, "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="], - "bare-stream": ["bare-stream@2.7.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/bare-stream/-/bare-stream-2.7.0.tgz", { "dependencies": { "streamx": "^2.21.0" }, "peerDependencies": { "bare-buffer": "*", "bare-events": "*" }, "optionalPeers": ["bare-buffer", "bare-events"] }, "sha512-oyXQNicV1y8nc2aKffH+BUHFRXmx6VrPzlnaEvMhram0nPBrKcEdcyBg5r08D0i8VxngHFAiVyn1QKXpSG0B8A=="], + "cac": ["cac@6.7.14", "", {}, "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ=="], - "bare-url": ["bare-url@2.3.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/bare-url/-/bare-url-2.3.2.tgz", { "dependencies": { "bare-path": "^3.0.0" } }, "sha512-ZMq4gd9ngV5aTMa5p9+UfY0b3skwhHELaDkhEHetMdX0LRkW9kzaym4oo/Eh+Ghm0CCDuMTsRIGM/ytUc1ZYmw=="], + "cacheable-lookup": ["cacheable-lookup@7.0.0", "", {}, "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w=="], - "base64-js": ["base64-js@1.5.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/base64-js/-/base64-js-1.5.1.tgz", {}, "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="], + "cacheable-request": ["cacheable-request@10.2.14", "", { "dependencies": { "@types/http-cache-semantics": "^4.0.2", "get-stream": "^6.0.1", "http-cache-semantics": "^4.1.1", "keyv": "^4.5.3", "mimic-response": "^4.0.0", "normalize-url": "^8.0.0", "responselike": "^3.0.0" } }, "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ=="], - "baseline-browser-mapping": ["baseline-browser-mapping@2.8.31", "https://jfrog.booking.com:443/artifactory/api/npm/npm/baseline-browser-mapping/-/baseline-browser-mapping-2.8.31.tgz", { "bin": { "baseline-browser-mapping": "dist/cli.js" } }, "sha512-a28v2eWrrRWPpJSzxc+mKwm0ZtVx/G8SepdQZDArnXYU/XS+IF6mp8aB/4E+hH1tyGCoDo3KlUCdlSxGDsRkAw=="], + "call-bind": ["call-bind@1.0.8", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.0", "es-define-property": "^1.0.0", "get-intrinsic": "^1.2.4", "set-function-length": "^1.2.2" } }, "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww=="], - "basic-auth": ["basic-auth@2.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/basic-auth/-/basic-auth-2.0.1.tgz", { "dependencies": { "safe-buffer": "5.1.2" } }, "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg=="], + "call-bind-apply-helpers": ["call-bind-apply-helpers@1.0.2", "", { "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" } }, "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ=="], - "basic-ftp": ["basic-ftp@5.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/basic-ftp/-/basic-ftp-5.0.5.tgz", {}, "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg=="], + "call-bound": ["call-bound@1.0.4", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "get-intrinsic": "^1.3.0" } }, "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg=="], - "bcrypt-pbkdf": ["bcrypt-pbkdf@1.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", { "dependencies": { "tweetnacl": "^0.14.3" } }, "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w=="], + "callsites": ["callsites@3.1.0", "", {}, "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="], - "bcryptjs": ["bcryptjs@2.4.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/bcryptjs/-/bcryptjs-2.4.3.tgz", {}, "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ=="], + "camelcase": ["camelcase@6.3.0", "", {}, "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA=="], - "better-sqlite3": ["better-sqlite3@11.10.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/better-sqlite3/-/better-sqlite3-11.10.0.tgz", { "dependencies": { "bindings": "^1.5.0", "prebuild-install": "^7.1.1" } }, "sha512-EwhOpyXiOEL/lKzHz9AW1msWFNzGc/z+LzeB3/jnFJpxu+th2yqvzsSWas1v9jgs9+xiXJcD5A8CJxAG2TaghQ=="], + "caniuse-api": ["caniuse-api@3.0.0", "", { "dependencies": { "browserslist": "^4.0.0", "caniuse-lite": "^1.0.0", "lodash.memoize": "^4.1.2", "lodash.uniq": "^4.5.0" } }, "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw=="], - "big.js": ["big.js@5.2.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/big.js/-/big.js-5.2.2.tgz", {}, "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ=="], + "caniuse-lite": ["caniuse-lite@1.0.30001774", "", {}, "sha512-DDdwPGz99nmIEv216hKSgLD+D4ikHQHjBC/seF98N9CPqRX4M5mSxT9eTV6oyisnJcuzxtZy4n17yKKQYmYQOA=="], - "bin-version": ["bin-version@6.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/bin-version/-/bin-version-6.0.0.tgz", { "dependencies": { "execa": "^5.0.0", "find-versions": "^5.0.0" } }, "sha512-nk5wEsP4RiKjG+vF+uG8lFsEn4d7Y6FVDamzzftSunXOoOcOOkzcWdKVlGgFFwlUQCj63SgnUkLLGF8v7lufhw=="], + "caseless": ["caseless@0.12.0", "", {}, "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw=="], - "bin-version-check": ["bin-version-check@5.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/bin-version-check/-/bin-version-check-5.1.0.tgz", { "dependencies": { "bin-version": "^6.0.0", "semver": "^7.5.3", "semver-truncate": "^3.0.0" } }, "sha512-bYsvMqJ8yNGILLz1KP9zKLzQ6YpljV3ln1gqhuLkUtyfGi3qXKGuK2p+U4NAvjVFzDFiBBtOpCOSFNuYYEGZ5g=="], + "chai": ["chai@5.3.3", "", { "dependencies": { "assertion-error": "^2.0.1", "check-error": "^2.1.1", "deep-eql": "^5.0.1", "loupe": "^3.1.0", "pathval": "^2.0.0" } }, "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw=="], - "bindings": ["bindings@1.5.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/bindings/-/bindings-1.5.0.tgz", { "dependencies": { "file-uri-to-path": "1.0.0" } }, "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ=="], + "chalk": ["chalk@5.6.2", "", {}, "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA=="], - "birpc": ["birpc@2.8.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/birpc/-/birpc-2.8.0.tgz", {}, "sha512-Bz2a4qD/5GRhiHSwj30c/8kC8QGj12nNDwz3D4ErQ4Xhy35dsSDvF+RA/tWpjyU0pdGtSDiEk6B5fBGE1qNVhw=="], + "char-regex": ["char-regex@1.0.2", "", {}, "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw=="], - "bl": ["bl@4.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/bl/-/bl-4.1.0.tgz", { "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", "readable-stream": "^3.4.0" } }, "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w=="], + "chardet": ["chardet@2.1.1", "", {}, "sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ=="], - "body-parser": ["body-parser@1.20.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/body-parser/-/body-parser-1.20.3.tgz", { "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.5", "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", "qs": "6.13.0", "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" } }, "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g=="], + "check-error": ["check-error@2.1.3", "", {}, "sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA=="], - "boolbase": ["boolbase@1.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/boolbase/-/boolbase-1.0.0.tgz", {}, "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="], + "chrome-trace-event": ["chrome-trace-event@1.0.4", "", {}, "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ=="], - "brace-expansion": ["brace-expansion@2.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/brace-expansion/-/brace-expansion-2.0.2.tgz", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], + "chromium-bidi": ["chromium-bidi@14.0.0", "", { "dependencies": { "mitt": "^3.0.1", "zod": "^3.24.1" }, "peerDependencies": { "devtools-protocol": "*" } }, "sha512-9gYlLtS6tStdRWzrtXaTMnqcM4dudNegMXJxkR0I/CXObHalYeYcAMPrL19eroNZHtJ8DQmu1E+ZNOYu/IXMXw=="], - "braces": ["braces@3.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/braces/-/braces-3.0.3.tgz", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="], + "ci-info": ["ci-info@4.4.0", "", {}, "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg=="], - "browserify-zlib": ["browserify-zlib@0.1.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/browserify-zlib/-/browserify-zlib-0.1.4.tgz", { "dependencies": { "pako": "~0.2.0" } }, "sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ=="], + "cjs-module-lexer": ["cjs-module-lexer@2.2.0", "", {}, "sha512-4bHTS2YuzUvtoLjdy+98ykbNB5jS0+07EvFNXerqZQJ89F7DI6ET7OQo/HJuW6K0aVsKA9hj9/RVb2kQVOrPDQ=="], - "browserslist": ["browserslist@4.27.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/browserslist/-/browserslist-4.27.0.tgz", { "dependencies": { "baseline-browser-mapping": "^2.8.19", "caniuse-lite": "^1.0.30001751", "electron-to-chromium": "^1.5.238", "node-releases": "^2.0.26", "update-browserslist-db": "^1.1.4" }, "bin": { "browserslist": "cli.js" } }, "sha512-AXVQwdhot1eqLihwasPElhX2tAZiBjWdJ9i/Zcj2S6QYIjkx62OKSfnobkriB81C3l4w0rVy3Nt4jaTBltYEpw=="], + "cli-boxes": ["cli-boxes@3.0.0", "", {}, "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g=="], - "bs-logger": ["bs-logger@0.2.6", "https://jfrog.booking.com:443/artifactory/api/npm/npm/bs-logger/-/bs-logger-0.2.6.tgz", { "dependencies": { "fast-json-stable-stringify": "2.x" } }, "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog=="], + "cli-cursor": ["cli-cursor@3.1.0", "", { "dependencies": { "restore-cursor": "^3.1.0" } }, "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw=="], - "bser": ["bser@2.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/bser/-/bser-2.1.1.tgz", { "dependencies": { "node-int64": "^0.4.0" } }, "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ=="], + "cli-spinners": ["cli-spinners@2.6.1", "", {}, "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g=="], - "buffer": ["buffer@6.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/buffer/-/buffer-6.0.3.tgz", { "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" } }, "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA=="], + "cli-truncate": ["cli-truncate@4.0.0", "", { "dependencies": { "slice-ansi": "^5.0.0", "string-width": "^7.0.0" } }, "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA=="], - "buffer-crc32": ["buffer-crc32@0.2.13", "https://jfrog.booking.com:443/artifactory/api/npm/npm/buffer-crc32/-/buffer-crc32-0.2.13.tgz", {}, "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ=="], + "cli-width": ["cli-width@4.1.0", "", {}, "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ=="], - "buffer-equal-constant-time": ["buffer-equal-constant-time@1.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", {}, "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA=="], + "clipanion": ["clipanion@4.0.0-rc.4", "", { "dependencies": { "typanion": "^3.8.0" } }, "sha512-CXkMQxU6s9GklO/1f714dkKBMu1lopS1WFF0B8o4AxPykR1hpozxSiUZ5ZUeBjfPgCWqbcNOtZVFhB8Lkfp1+Q=="], - "buffer-from": ["buffer-from@1.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/buffer-from/-/buffer-from-1.1.2.tgz", {}, "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="], + "cliui": ["cliui@8.0.1", "", { "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" } }, "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ=="], - "bundle-name": ["bundle-name@4.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/bundle-name/-/bundle-name-4.1.0.tgz", { "dependencies": { "run-applescript": "^7.0.0" } }, "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q=="], + "clone": ["clone@1.0.4", "", {}, "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg=="], - "bytes": ["bytes@3.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/bytes/-/bytes-3.1.2.tgz", {}, "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="], + "co": ["co@4.6.0", "", {}, "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ=="], - "cac": ["cac@6.7.14", "https://jfrog.booking.com:443/artifactory/api/npm/npm/cac/-/cac-6.7.14.tgz", {}, "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ=="], + "code-block-writer": ["code-block-writer@13.0.3", "", {}, "sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg=="], - "cacheable-lookup": ["cacheable-lookup@7.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", {}, "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w=="], + "code-excerpt": ["code-excerpt@4.0.0", "", { "dependencies": { "convert-to-spaces": "^2.0.1" } }, "sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA=="], - "cacheable-request": ["cacheable-request@10.2.14", "https://jfrog.booking.com:443/artifactory/api/npm/npm/cacheable-request/-/cacheable-request-10.2.14.tgz", { "dependencies": { "@types/http-cache-semantics": "^4.0.2", "get-stream": "^6.0.1", "http-cache-semantics": "^4.1.1", "keyv": "^4.5.3", "mimic-response": "^4.0.0", "normalize-url": "^8.0.0", "responselike": "^3.0.0" } }, "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ=="], + "collect-v8-coverage": ["collect-v8-coverage@1.0.3", "", {}, "sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw=="], - "call-bind": ["call-bind@1.0.8", "https://jfrog.booking.com:443/artifactory/api/npm/npm/call-bind/-/call-bind-1.0.8.tgz", { "dependencies": { "call-bind-apply-helpers": "^1.0.0", "es-define-property": "^1.0.0", "get-intrinsic": "^1.2.4", "set-function-length": "^1.2.2" } }, "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww=="], + "color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="], - "call-bind-apply-helpers": ["call-bind-apply-helpers@1.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", { "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" } }, "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ=="], + "color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="], - "call-bound": ["call-bound@1.0.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/call-bound/-/call-bound-1.0.4.tgz", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "get-intrinsic": "^1.3.0" } }, "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg=="], + "colord": ["colord@2.9.3", "", {}, "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw=="], - "callsites": ["callsites@3.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/callsites/-/callsites-3.1.0.tgz", {}, "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="], + "colorette": ["colorette@2.0.20", "", {}, "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w=="], - "camelcase": ["camelcase@6.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/camelcase/-/camelcase-6.3.0.tgz", {}, "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA=="], + "columnify": ["columnify@1.6.0", "", { "dependencies": { "strip-ansi": "^6.0.1", "wcwidth": "^1.0.0" } }, "sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q=="], - "caniuse-api": ["caniuse-api@3.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/caniuse-api/-/caniuse-api-3.0.0.tgz", { "dependencies": { "browserslist": "^4.0.0", "caniuse-lite": "^1.0.0", "lodash.memoize": "^4.1.2", "lodash.uniq": "^4.5.0" } }, "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw=="], + "combined-stream": ["combined-stream@1.0.8", "", { "dependencies": { "delayed-stream": "~1.0.0" } }, "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="], - "caniuse-lite": ["caniuse-lite@1.0.30001756", "https://jfrog.booking.com:443/artifactory/api/npm/npm/caniuse-lite/-/caniuse-lite-1.0.30001756.tgz", {}, "sha512-4HnCNKbMLkLdhJz3TToeVWHSnfJvPaq6vu/eRP0Ahub/07n484XHhBF5AJoSGHdVrS8tKFauUQz8Bp9P7LVx7A=="], + "commander": ["commander@12.1.0", "", {}, "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA=="], - "caseless": ["caseless@0.12.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/caseless/-/caseless-0.12.0.tgz", {}, "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw=="], + "commondir": ["commondir@1.0.1", "", {}, "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg=="], - "chai": ["chai@5.3.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chai/-/chai-5.3.3.tgz", { "dependencies": { "assertion-error": "^2.0.1", "check-error": "^2.1.1", "deep-eql": "^5.0.1", "loupe": "^3.1.0", "pathval": "^2.0.0" } }, "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw=="], + "compressible": ["compressible@2.0.18", "", { "dependencies": { "mime-db": ">= 1.43.0 < 2" } }, "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg=="], - "chalk": ["chalk@5.6.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-5.6.2.tgz", {}, "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA=="], + "compression": ["compression@1.8.0", "", { "dependencies": { "bytes": "3.1.2", "compressible": "~2.0.18", "debug": "2.6.9", "negotiator": "~0.6.4", "on-headers": "~1.0.2", "safe-buffer": "5.2.1", "vary": "~1.1.2" } }, "sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA=="], - "char-regex": ["char-regex@1.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/char-regex/-/char-regex-1.0.2.tgz", {}, "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw=="], + "concat-map": ["concat-map@0.0.1", "", {}, "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="], - "chardet": ["chardet@2.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chardet/-/chardet-2.1.1.tgz", {}, "sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ=="], + "concat-with-sourcemaps": ["concat-with-sourcemaps@1.1.0", "", { "dependencies": { "source-map": "^0.6.1" } }, "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg=="], - "check-error": ["check-error@2.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/check-error/-/check-error-2.1.1.tgz", {}, "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw=="], + "confusing-browser-globals": ["confusing-browser-globals@1.0.11", "", {}, "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA=="], - "chokidar": ["chokidar@4.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chokidar/-/chokidar-4.0.3.tgz", { "dependencies": { "readdirp": "^4.0.1" } }, "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA=="], + "content-disposition": ["content-disposition@0.5.4", "", { "dependencies": { "safe-buffer": "5.2.1" } }, "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ=="], - "chownr": ["chownr@1.1.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chownr/-/chownr-1.1.4.tgz", {}, "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="], + "content-type": ["content-type@1.0.5", "", {}, "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA=="], - "chrome-trace-event": ["chrome-trace-event@1.0.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", {}, "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ=="], + "convert-source-map": ["convert-source-map@2.0.0", "", {}, "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="], - "chromium-bidi": ["chromium-bidi@11.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chromium-bidi/-/chromium-bidi-11.0.0.tgz", { "dependencies": { "mitt": "^3.0.1", "zod": "^3.24.1" }, "peerDependencies": { "devtools-protocol": "*" } }, "sha512-cM3DI+OOb89T3wO8cpPSro80Q9eKYJ7hGVXoGS3GkDPxnYSqiv+6xwpIf6XERyJ9Tdsl09hmNmY94BkgZdVekw=="], + "convert-to-spaces": ["convert-to-spaces@2.0.1", "", {}, "sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ=="], - "ci-info": ["ci-info@4.3.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ci-info/-/ci-info-4.3.1.tgz", {}, "sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA=="], + "cookie": ["cookie@0.7.1", "", {}, "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w=="], - "cjs-module-lexer": ["cjs-module-lexer@2.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/cjs-module-lexer/-/cjs-module-lexer-2.1.0.tgz", {}, "sha512-UX0OwmYRYQQetfrLEZeewIFFI+wSTofC+pMBLNuH3RUuu/xzG1oz84UCEDOSoQlN3fZ4+AzmV50ZYvGqkMh9yA=="], + "cookie-signature": ["cookie-signature@1.0.6", "", {}, "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="], - "cli-boxes": ["cli-boxes@3.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/cli-boxes/-/cli-boxes-3.0.0.tgz", {}, "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g=="], + "core-js": ["core-js@3.40.0", "", {}, "sha512-7vsMc/Lty6AGnn7uFpYT56QesI5D2Y/UkgKounk87OP9Z2H9Z8kj6jzcSGAxFmUtDOS0ntK6lbQz+Nsa0Jj6mQ=="], - "cli-cursor": ["cli-cursor@3.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/cli-cursor/-/cli-cursor-3.1.0.tgz", { "dependencies": { "restore-cursor": "^3.1.0" } }, "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw=="], + "core-js-compat": ["core-js-compat@3.48.0", "", { "dependencies": { "browserslist": "^4.28.1" } }, "sha512-OM4cAF3D6VtH/WkLtWvyNC56EZVXsZdU3iqaMG2B4WvYrlqU831pc4UtG5yp0sE9z8Y02wVN7PjW5Zf9Gt0f1Q=="], - "cli-spinners": ["cli-spinners@2.6.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/cli-spinners/-/cli-spinners-2.6.1.tgz", {}, "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g=="], + "core-util-is": ["core-util-is@1.0.2", "", {}, "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ=="], - "cli-truncate": ["cli-truncate@4.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/cli-truncate/-/cli-truncate-4.0.0.tgz", { "dependencies": { "slice-ansi": "^5.0.0", "string-width": "^7.0.0" } }, "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA=="], + "cors": ["cors@2.8.5", "", { "dependencies": { "object-assign": "^4", "vary": "^1" } }, "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g=="], - "cli-width": ["cli-width@4.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/cli-width/-/cli-width-4.1.0.tgz", {}, "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ=="], + "corser": ["corser@2.0.1", "", {}, "sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ=="], - "clipanion": ["clipanion@4.0.0-rc.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/clipanion/-/clipanion-4.0.0-rc.4.tgz", { "dependencies": { "typanion": "^3.8.0" } }, "sha512-CXkMQxU6s9GklO/1f714dkKBMu1lopS1WFF0B8o4AxPykR1hpozxSiUZ5ZUeBjfPgCWqbcNOtZVFhB8Lkfp1+Q=="], + "cosmiconfig": ["cosmiconfig@9.0.0", "", { "dependencies": { "env-paths": "^2.2.1", "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", "parse-json": "^5.2.0" }, "peerDependencies": { "typescript": ">=4.9.5" }, "optionalPeers": ["typescript"] }, "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg=="], - "cliui": ["cliui@8.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/cliui/-/cliui-8.0.1.tgz", { "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" } }, "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ=="], + "create-require": ["create-require@1.1.1", "", {}, "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ=="], - "clone": ["clone@2.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/clone/-/clone-2.1.2.tgz", {}, "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w=="], + "cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="], - "co": ["co@4.6.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/co/-/co-4.6.0.tgz", {}, "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ=="], + "css-declaration-sorter": ["css-declaration-sorter@6.4.1", "", { "peerDependencies": { "postcss": "^8.0.9" } }, "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g=="], - "code-block-writer": ["code-block-writer@13.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/code-block-writer/-/code-block-writer-13.0.3.tgz", {}, "sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg=="], + "css-select": ["css-select@4.3.0", "", { "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.0.1", "domhandler": "^4.3.1", "domutils": "^2.8.0", "nth-check": "^2.0.1" } }, "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ=="], - "code-excerpt": ["code-excerpt@4.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/code-excerpt/-/code-excerpt-4.0.0.tgz", { "dependencies": { "convert-to-spaces": "^2.0.1" } }, "sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA=="], + "css-tree": ["css-tree@1.1.3", "", { "dependencies": { "mdn-data": "2.0.14", "source-map": "^0.6.1" } }, "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q=="], - "collect-v8-coverage": ["collect-v8-coverage@1.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz", {}, "sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw=="], + "css-what": ["css-what@6.2.2", "", {}, "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA=="], - "color-convert": ["color-convert@2.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/color-convert/-/color-convert-2.0.1.tgz", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="], + "cssesc": ["cssesc@3.0.0", "", { "bin": { "cssesc": "bin/cssesc" } }, "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="], - "color-name": ["color-name@1.1.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/color-name/-/color-name-1.1.4.tgz", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="], + "cssnano": ["cssnano@5.1.15", "", { "dependencies": { "cssnano-preset-default": "^5.2.14", "lilconfig": "^2.0.3", "yaml": "^1.10.2" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw=="], - "colord": ["colord@2.9.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/colord/-/colord-2.9.3.tgz", {}, "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw=="], + "cssnano-preset-default": ["cssnano-preset-default@5.2.14", "", { "dependencies": { "css-declaration-sorter": "^6.3.1", "cssnano-utils": "^3.1.0", "postcss-calc": "^8.2.3", "postcss-colormin": "^5.3.1", "postcss-convert-values": "^5.1.3", "postcss-discard-comments": "^5.1.2", "postcss-discard-duplicates": "^5.1.0", "postcss-discard-empty": "^5.1.1", "postcss-discard-overridden": "^5.1.0", "postcss-merge-longhand": "^5.1.7", "postcss-merge-rules": "^5.1.4", "postcss-minify-font-values": "^5.1.0", "postcss-minify-gradients": "^5.1.1", "postcss-minify-params": "^5.1.4", "postcss-minify-selectors": "^5.2.1", "postcss-normalize-charset": "^5.1.0", "postcss-normalize-display-values": "^5.1.0", "postcss-normalize-positions": "^5.1.1", "postcss-normalize-repeat-style": "^5.1.1", "postcss-normalize-string": "^5.1.0", "postcss-normalize-timing-functions": "^5.1.0", "postcss-normalize-unicode": "^5.1.1", "postcss-normalize-url": "^5.1.0", "postcss-normalize-whitespace": "^5.1.1", "postcss-ordered-values": "^5.1.3", "postcss-reduce-initial": "^5.1.2", "postcss-reduce-transforms": "^5.1.0", "postcss-svgo": "^5.1.0", "postcss-unique-selectors": "^5.1.1" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A=="], - "colorette": ["colorette@2.0.20", "https://jfrog.booking.com:443/artifactory/api/npm/npm/colorette/-/colorette-2.0.20.tgz", {}, "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w=="], + "cssnano-utils": ["cssnano-utils@3.1.0", "", { "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA=="], - "columnify": ["columnify@1.6.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/columnify/-/columnify-1.6.0.tgz", { "dependencies": { "strip-ansi": "^6.0.1", "wcwidth": "^1.0.0" } }, "sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q=="], + "csso": ["csso@4.2.0", "", { "dependencies": { "css-tree": "^1.1.2" } }, "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA=="], - "combined-stream": ["combined-stream@1.0.8", "https://jfrog.booking.com:443/artifactory/api/npm/npm/combined-stream/-/combined-stream-1.0.8.tgz", { "dependencies": { "delayed-stream": "~1.0.0" } }, "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="], + "cssstyle": ["cssstyle@4.6.0", "", { "dependencies": { "@asamuzakjp/css-color": "^3.2.0", "rrweb-cssom": "^0.8.0" } }, "sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg=="], - "commander": ["commander@12.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/commander/-/commander-12.1.0.tgz", {}, "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA=="], + "csstype": ["csstype@3.2.3", "", {}, "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="], - "commondir": ["commondir@1.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/commondir/-/commondir-1.0.1.tgz", {}, "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg=="], + "dashdash": ["dashdash@1.14.1", "", { "dependencies": { "assert-plus": "^1.0.0" } }, "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g=="], - "compressible": ["compressible@2.0.18", "https://jfrog.booking.com:443/artifactory/api/npm/npm/compressible/-/compressible-2.0.18.tgz", { "dependencies": { "mime-db": ">= 1.43.0 < 2" } }, "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg=="], + "data-uri-to-buffer": ["data-uri-to-buffer@6.0.2", "", {}, "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw=="], - "compression": ["compression@1.8.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/compression/-/compression-1.8.0.tgz", { "dependencies": { "bytes": "3.1.2", "compressible": "~2.0.18", "debug": "2.6.9", "negotiator": "~0.6.4", "on-headers": "~1.0.2", "safe-buffer": "5.2.1", "vary": "~1.1.2" } }, "sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA=="], + "data-urls": ["data-urls@5.0.0", "", { "dependencies": { "whatwg-mimetype": "^4.0.0", "whatwg-url": "^14.0.0" } }, "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg=="], - "concat-map": ["concat-map@0.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/concat-map/-/concat-map-0.0.1.tgz", {}, "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="], + "data-view-buffer": ["data-view-buffer@1.0.2", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "is-data-view": "^1.0.2" } }, "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ=="], - "concat-with-sourcemaps": ["concat-with-sourcemaps@1.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", { "dependencies": { "source-map": "^0.6.1" } }, "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg=="], + "data-view-byte-length": ["data-view-byte-length@1.0.2", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "is-data-view": "^1.0.2" } }, "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ=="], - "confusing-browser-globals": ["confusing-browser-globals@1.0.11", "https://jfrog.booking.com:443/artifactory/api/npm/npm/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", {}, "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA=="], + "data-view-byte-offset": ["data-view-byte-offset@1.0.1", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-data-view": "^1.0.1" } }, "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ=="], - "content-disposition": ["content-disposition@0.5.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/content-disposition/-/content-disposition-0.5.4.tgz", { "dependencies": { "safe-buffer": "5.2.1" } }, "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ=="], + "dateformat": ["dateformat@4.6.3", "", {}, "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA=="], - "content-type": ["content-type@1.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/content-type/-/content-type-1.0.5.tgz", {}, "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA=="], + "dayjs": ["dayjs@1.11.13", "", {}, "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg=="], - "convert-source-map": ["convert-source-map@2.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/convert-source-map/-/convert-source-map-2.0.0.tgz", {}, "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="], + "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], - "convert-to-spaces": ["convert-to-spaces@2.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/convert-to-spaces/-/convert-to-spaces-2.0.1.tgz", {}, "sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ=="], + "decimal.js": ["decimal.js@10.6.0", "", {}, "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg=="], - "cookie": ["cookie@0.7.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/cookie/-/cookie-0.7.1.tgz", {}, "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w=="], + "decompress-response": ["decompress-response@6.0.0", "", { "dependencies": { "mimic-response": "^3.1.0" } }, "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ=="], - "cookie-signature": ["cookie-signature@1.0.6", "https://jfrog.booking.com:443/artifactory/api/npm/npm/cookie-signature/-/cookie-signature-1.0.6.tgz", {}, "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="], + "dedent": ["dedent@1.7.1", "", { "peerDependencies": { "babel-plugin-macros": "^3.1.0" }, "optionalPeers": ["babel-plugin-macros"] }, "sha512-9JmrhGZpOlEgOLdQgSm0zxFaYoQon408V1v49aqTWuXENVlnCuY9JBZcXZiCsZQWDjTm5Qf/nIvAy77mXDAjEg=="], - "core-js": ["core-js@3.40.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/core-js/-/core-js-3.40.0.tgz", {}, "sha512-7vsMc/Lty6AGnn7uFpYT56QesI5D2Y/UkgKounk87OP9Z2H9Z8kj6jzcSGAxFmUtDOS0ntK6lbQz+Nsa0Jj6mQ=="], + "deep-eql": ["deep-eql@5.0.2", "", {}, "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q=="], - "core-js-compat": ["core-js-compat@3.46.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/core-js-compat/-/core-js-compat-3.46.0.tgz", { "dependencies": { "browserslist": "^4.26.3" } }, "sha512-p9hObIIEENxSV8xIu+V68JjSeARg6UVMG5mR+JEUguG3sI6MsiS1njz2jHmyJDvA+8jX/sytkBHup6kxhM9law=="], + "deep-is": ["deep-is@0.1.4", "", {}, "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="], - "core-util-is": ["core-util-is@1.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/core-util-is/-/core-util-is-1.0.2.tgz", {}, "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ=="], + "deepmerge": ["deepmerge@4.3.1", "", {}, "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A=="], - "cors": ["cors@2.8.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/cors/-/cors-2.8.5.tgz", { "dependencies": { "object-assign": "^4", "vary": "^1" } }, "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g=="], + "default-browser": ["default-browser@5.5.0", "", { "dependencies": { "bundle-name": "^4.1.0", "default-browser-id": "^5.0.0" } }, "sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw=="], - "corser": ["corser@2.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/corser/-/corser-2.0.1.tgz", {}, "sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ=="], + "default-browser-id": ["default-browser-id@5.0.1", "", {}, "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q=="], - "cosmiconfig": ["cosmiconfig@9.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/cosmiconfig/-/cosmiconfig-9.0.0.tgz", { "dependencies": { "env-paths": "^2.2.1", "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", "parse-json": "^5.2.0" }, "peerDependencies": { "typescript": ">=4.9.5" }, "optionalPeers": ["typescript"] }, "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg=="], + "defaults": ["defaults@1.0.4", "", { "dependencies": { "clone": "^1.0.2" } }, "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A=="], - "create-require": ["create-require@1.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/create-require/-/create-require-1.1.1.tgz", {}, "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ=="], + "defer-to-connect": ["defer-to-connect@2.0.1", "", {}, "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg=="], - "cross-spawn": ["cross-spawn@7.0.6", "https://jfrog.booking.com:443/artifactory/api/npm/npm/cross-spawn/-/cross-spawn-7.0.6.tgz", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="], + "define-data-property": ["define-data-property@1.1.4", "", { "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", "gopd": "^1.0.1" } }, "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A=="], - "css-declaration-sorter": ["css-declaration-sorter@6.4.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", { "peerDependencies": { "postcss": "^8.0.9" } }, "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g=="], + "define-lazy-prop": ["define-lazy-prop@3.0.0", "", {}, "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg=="], - "css-select": ["css-select@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/css-select/-/css-select-4.3.0.tgz", { "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.0.1", "domhandler": "^4.3.1", "domutils": "^2.8.0", "nth-check": "^2.0.1" } }, "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ=="], + "define-properties": ["define-properties@1.2.1", "", { "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" } }, "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg=="], - "css-tree": ["css-tree@1.1.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/css-tree/-/css-tree-1.1.3.tgz", { "dependencies": { "mdn-data": "2.0.14", "source-map": "^0.6.1" } }, "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q=="], + "defu": ["defu@6.1.4", "", {}, "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg=="], - "css-what": ["css-what@6.2.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/css-what/-/css-what-6.2.2.tgz", {}, "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA=="], + "degenerator": ["degenerator@5.0.1", "", { "dependencies": { "ast-types": "^0.13.4", "escodegen": "^2.1.0", "esprima": "^4.0.1" } }, "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ=="], - "cssesc": ["cssesc@3.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/cssesc/-/cssesc-3.0.0.tgz", { "bin": { "cssesc": "bin/cssesc" } }, "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="], + "delayed-stream": ["delayed-stream@1.0.0", "", {}, "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="], - "cssnano": ["cssnano@5.1.15", "https://jfrog.booking.com:443/artifactory/api/npm/npm/cssnano/-/cssnano-5.1.15.tgz", { "dependencies": { "cssnano-preset-default": "^5.2.14", "lilconfig": "^2.0.3", "yaml": "^1.10.2" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw=="], + "depd": ["depd@2.0.0", "", {}, "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="], - "cssnano-preset-default": ["cssnano-preset-default@5.2.14", "https://jfrog.booking.com:443/artifactory/api/npm/npm/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", { "dependencies": { "css-declaration-sorter": "^6.3.1", "cssnano-utils": "^3.1.0", "postcss-calc": "^8.2.3", "postcss-colormin": "^5.3.1", "postcss-convert-values": "^5.1.3", "postcss-discard-comments": "^5.1.2", "postcss-discard-duplicates": "^5.1.0", "postcss-discard-empty": "^5.1.1", "postcss-discard-overridden": "^5.1.0", "postcss-merge-longhand": "^5.1.7", "postcss-merge-rules": "^5.1.4", "postcss-minify-font-values": "^5.1.0", "postcss-minify-gradients": "^5.1.1", "postcss-minify-params": "^5.1.4", "postcss-minify-selectors": "^5.2.1", "postcss-normalize-charset": "^5.1.0", "postcss-normalize-display-values": "^5.1.0", "postcss-normalize-positions": "^5.1.1", "postcss-normalize-repeat-style": "^5.1.1", "postcss-normalize-string": "^5.1.0", "postcss-normalize-timing-functions": "^5.1.0", "postcss-normalize-unicode": "^5.1.1", "postcss-normalize-url": "^5.1.0", "postcss-normalize-whitespace": "^5.1.1", "postcss-ordered-values": "^5.1.3", "postcss-reduce-initial": "^5.1.2", "postcss-reduce-transforms": "^5.1.0", "postcss-svgo": "^5.1.0", "postcss-unique-selectors": "^5.1.1" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A=="], + "destroy": ["destroy@1.2.0", "", {}, "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="], - "cssnano-utils": ["cssnano-utils@3.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/cssnano-utils/-/cssnano-utils-3.1.0.tgz", { "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA=="], + "detect-newline": ["detect-newline@3.1.0", "", {}, "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA=="], - "csso": ["csso@4.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/csso/-/csso-4.2.0.tgz", { "dependencies": { "css-tree": "^1.1.2" } }, "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA=="], + "detect-port": ["detect-port@1.6.1", "", { "dependencies": { "address": "^1.0.1", "debug": "4" }, "bin": { "detect": "bin/detect-port.js", "detect-port": "bin/detect-port.js" } }, "sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q=="], - "cssstyle": ["cssstyle@4.6.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/cssstyle/-/cssstyle-4.6.0.tgz", { "dependencies": { "@asamuzakjp/css-color": "^3.2.0", "rrweb-cssom": "^0.8.0" } }, "sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg=="], + "devtools-protocol": ["devtools-protocol@0.0.1566079", "", {}, "sha512-MJfAEA1UfVhSs7fbSQOG4czavUp1ajfg6prlAN0+cmfa2zNjaIbvq8VneP7do1WAQQIvgNJWSMeP6UyI90gIlQ=="], - "csstype": ["csstype@3.2.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/csstype/-/csstype-3.2.1.tgz", {}, "sha512-98XGutrXoh75MlgLihlNxAGbUuFQc7l1cqcnEZlLNKc0UrVdPndgmaDmYTDDh929VS/eqTZV0rozmhu2qqT1/g=="], + "diff": ["diff@4.0.4", "", {}, "sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ=="], - "dashdash": ["dashdash@1.14.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/dashdash/-/dashdash-1.14.1.tgz", { "dependencies": { "assert-plus": "^1.0.0" } }, "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g=="], + "dir-glob": ["dir-glob@3.0.1", "", { "dependencies": { "path-type": "^4.0.0" } }, "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA=="], - "data-uri-to-buffer": ["data-uri-to-buffer@6.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", {}, "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw=="], + "doctrine": ["doctrine@2.1.0", "", { "dependencies": { "esutils": "^2.0.2" } }, "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw=="], - "data-urls": ["data-urls@5.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/data-urls/-/data-urls-5.0.0.tgz", { "dependencies": { "whatwg-mimetype": "^4.0.0", "whatwg-url": "^14.0.0" } }, "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg=="], + "dom-serializer": ["dom-serializer@1.4.1", "", { "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", "entities": "^2.0.0" } }, "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag=="], - "data-view-buffer": ["data-view-buffer@1.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/data-view-buffer/-/data-view-buffer-1.0.2.tgz", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "is-data-view": "^1.0.2" } }, "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ=="], + "domelementtype": ["domelementtype@2.3.0", "", {}, "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="], - "data-view-byte-length": ["data-view-byte-length@1.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "is-data-view": "^1.0.2" } }, "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ=="], + "domhandler": ["domhandler@4.3.1", "", { "dependencies": { "domelementtype": "^2.2.0" } }, "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ=="], - "data-view-byte-offset": ["data-view-byte-offset@1.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-data-view": "^1.0.1" } }, "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ=="], + "domutils": ["domutils@2.8.0", "", { "dependencies": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", "domhandler": "^4.2.0" } }, "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A=="], - "dateformat": ["dateformat@4.6.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/dateformat/-/dateformat-4.6.3.tgz", {}, "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA=="], + "dotenv": ["dotenv@16.4.7", "", {}, "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ=="], - "dayjs": ["dayjs@1.11.13", "https://jfrog.booking.com:443/artifactory/api/npm/npm/dayjs/-/dayjs-1.11.13.tgz", {}, "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg=="], + "dotenv-expand": ["dotenv-expand@11.0.7", "", { "dependencies": { "dotenv": "^16.4.5" } }, "sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA=="], - "debug": ["debug@4.4.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/debug/-/debug-4.4.3.tgz", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + "dset": ["dset@3.1.4", "", {}, "sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA=="], - "decimal.js": ["decimal.js@10.6.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/decimal.js/-/decimal.js-10.6.0.tgz", {}, "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg=="], + "dts-resolver": ["dts-resolver@2.1.3", "", { "peerDependencies": { "oxc-resolver": ">=11.0.0" }, "optionalPeers": ["oxc-resolver"] }, "sha512-bihc7jPC90VrosXNzK0LTE2cuLP6jr0Ro8jk+kMugHReJVLIpHz/xadeq3MhuwyO4TD4OA3L1Q8pBBFRc08Tsw=="], - "decompress-response": ["decompress-response@6.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/decompress-response/-/decompress-response-6.0.0.tgz", { "dependencies": { "mimic-response": "^3.1.0" } }, "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ=="], + "dunder-proto": ["dunder-proto@1.0.1", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" } }, "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="], - "dedent": ["dedent@1.7.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/dedent/-/dedent-1.7.0.tgz", { "peerDependencies": { "babel-plugin-macros": "^3.1.0" }, "optionalPeers": ["babel-plugin-macros"] }, "sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ=="], + "duplexify": ["duplexify@3.7.1", "", { "dependencies": { "end-of-stream": "^1.0.0", "inherits": "^2.0.1", "readable-stream": "^2.0.0", "stream-shift": "^1.0.0" } }, "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g=="], - "deep-eql": ["deep-eql@5.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/deep-eql/-/deep-eql-5.0.2.tgz", {}, "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q=="], + "eastasianwidth": ["eastasianwidth@0.2.0", "", {}, "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="], - "deep-extend": ["deep-extend@0.6.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/deep-extend/-/deep-extend-0.6.0.tgz", {}, "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="], + "ecc-jsbn": ["ecc-jsbn@0.1.2", "", { "dependencies": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" } }, "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw=="], - "deep-is": ["deep-is@0.1.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/deep-is/-/deep-is-0.1.4.tgz", {}, "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="], + "ecdsa-sig-formatter": ["ecdsa-sig-formatter@1.0.11", "", { "dependencies": { "safe-buffer": "^5.0.1" } }, "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ=="], - "deepmerge": ["deepmerge@4.3.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/deepmerge/-/deepmerge-4.3.1.tgz", {}, "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A=="], + "ee-first": ["ee-first@1.1.1", "", {}, "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="], - "default-browser": ["default-browser@5.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/default-browser/-/default-browser-5.3.0.tgz", { "dependencies": { "bundle-name": "^4.1.0", "default-browser-id": "^5.0.0" } }, "sha512-Qq68+VkJlc8tjnPV1i7HtbIn7ohmjZa88qUvHMIK0ZKUXMCuV45cT7cEXALPUmeXCe0q1DWQkQTemHVaLIFSrg=="], + "ejs": ["ejs@3.1.10", "", { "dependencies": { "jake": "^10.8.5" }, "bin": { "ejs": "bin/cli.js" } }, "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA=="], - "default-browser-id": ["default-browser-id@5.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/default-browser-id/-/default-browser-id-5.0.0.tgz", {}, "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA=="], + "electron-to-chromium": ["electron-to-chromium@1.5.302", "", {}, "sha512-sM6HAN2LyK82IyPBpznDRqlTQAtuSaO+ShzFiWTvoMJLHyZ+Y39r8VMfHzwbU8MVBzQ4Wdn85+wlZl2TLGIlwg=="], - "defaults": ["defaults@1.0.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/defaults/-/defaults-1.0.4.tgz", { "dependencies": { "clone": "^1.0.2" } }, "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A=="], + "emittery": ["emittery@0.13.1", "", {}, "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ=="], - "defer-to-connect": ["defer-to-connect@2.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/defer-to-connect/-/defer-to-connect-2.0.1.tgz", {}, "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg=="], + "emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], - "define-data-property": ["define-data-property@1.1.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/define-data-property/-/define-data-property-1.1.4.tgz", { "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", "gopd": "^1.0.1" } }, "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A=="], + "emojis-list": ["emojis-list@3.0.0", "", {}, "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q=="], - "define-lazy-prop": ["define-lazy-prop@3.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", {}, "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg=="], + "empathic": ["empathic@2.0.0", "", {}, "sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA=="], - "define-properties": ["define-properties@1.2.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/define-properties/-/define-properties-1.2.1.tgz", { "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" } }, "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg=="], + "encodeurl": ["encodeurl@2.0.0", "", {}, "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg=="], - "degenerator": ["degenerator@5.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/degenerator/-/degenerator-5.0.1.tgz", { "dependencies": { "ast-types": "^0.13.4", "escodegen": "^2.1.0", "esprima": "^4.0.1" } }, "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ=="], + "end-of-stream": ["end-of-stream@1.4.5", "", { "dependencies": { "once": "^1.4.0" } }, "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg=="], - "delayed-stream": ["delayed-stream@1.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/delayed-stream/-/delayed-stream-1.0.0.tgz", {}, "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="], + "enhanced-resolve": ["enhanced-resolve@5.19.0", "", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.3.0" } }, "sha512-phv3E1Xl4tQOShqSte26C7Fl84EwUdZsyOuSSk9qtAGyyQs2s3jJzComh+Abf4g187lUUAvH+H26omrqia2aGg=="], - "depd": ["depd@2.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/depd/-/depd-2.0.0.tgz", {}, "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="], + "enquirer": ["enquirer@2.3.6", "", { "dependencies": { "ansi-colors": "^4.1.1" } }, "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg=="], - "destroy": ["destroy@1.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/destroy/-/destroy-1.2.0.tgz", {}, "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="], + "entities": ["entities@6.0.1", "", {}, "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g=="], - "detect-libc": ["detect-libc@2.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/detect-libc/-/detect-libc-2.1.2.tgz", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="], + "env-paths": ["env-paths@2.2.1", "", {}, "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A=="], - "detect-newline": ["detect-newline@3.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/detect-newline/-/detect-newline-3.1.0.tgz", {}, "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA=="], + "envinfo": ["envinfo@7.14.0", "", { "bin": { "envinfo": "dist/cli.js" } }, "sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg=="], - "detect-port": ["detect-port@1.6.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/detect-port/-/detect-port-1.6.1.tgz", { "dependencies": { "address": "^1.0.1", "debug": "4" }, "bin": { "detect": "bin/detect-port.js", "detect-port": "bin/detect-port.js" } }, "sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q=="], + "environment": ["environment@1.1.0", "", {}, "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q=="], - "devtools-protocol": ["devtools-protocol@0.0.1521046", "https://jfrog.booking.com:443/artifactory/api/npm/npm/devtools-protocol/-/devtools-protocol-0.0.1521046.tgz", {}, "sha512-vhE6eymDQSKWUXwwA37NtTTVEzjtGVfDr3pRbsWEQ5onH/Snp2c+2xZHWJJawG/0hCCJLRGt4xVtEVUVILol4w=="], + "error-ex": ["error-ex@1.3.4", "", { "dependencies": { "is-arrayish": "^0.2.1" } }, "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ=="], - "diff": ["diff@4.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/diff/-/diff-4.0.2.tgz", {}, "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A=="], + "es-abstract": ["es-abstract@1.24.1", "", { "dependencies": { "array-buffer-byte-length": "^1.0.2", "arraybuffer.prototype.slice": "^1.0.4", "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "call-bound": "^1.0.4", "data-view-buffer": "^1.0.2", "data-view-byte-length": "^1.0.2", "data-view-byte-offset": "^1.0.1", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "es-set-tostringtag": "^2.1.0", "es-to-primitive": "^1.3.0", "function.prototype.name": "^1.1.8", "get-intrinsic": "^1.3.0", "get-proto": "^1.0.1", "get-symbol-description": "^1.1.0", "globalthis": "^1.0.4", "gopd": "^1.2.0", "has-property-descriptors": "^1.0.2", "has-proto": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "internal-slot": "^1.1.0", "is-array-buffer": "^3.0.5", "is-callable": "^1.2.7", "is-data-view": "^1.0.2", "is-negative-zero": "^2.0.3", "is-regex": "^1.2.1", "is-set": "^2.0.3", "is-shared-array-buffer": "^1.0.4", "is-string": "^1.1.1", "is-typed-array": "^1.1.15", "is-weakref": "^1.1.1", "math-intrinsics": "^1.1.0", "object-inspect": "^1.13.4", "object-keys": "^1.1.1", "object.assign": "^4.1.7", "own-keys": "^1.0.1", "regexp.prototype.flags": "^1.5.4", "safe-array-concat": "^1.1.3", "safe-push-apply": "^1.0.0", "safe-regex-test": "^1.1.0", "set-proto": "^1.0.0", "stop-iteration-iterator": "^1.1.0", "string.prototype.trim": "^1.2.10", "string.prototype.trimend": "^1.0.9", "string.prototype.trimstart": "^1.0.8", "typed-array-buffer": "^1.0.3", "typed-array-byte-length": "^1.0.3", "typed-array-byte-offset": "^1.0.4", "typed-array-length": "^1.0.7", "unbox-primitive": "^1.1.0", "which-typed-array": "^1.1.19" } }, "sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw=="], - "dir-glob": ["dir-glob@3.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/dir-glob/-/dir-glob-3.0.1.tgz", { "dependencies": { "path-type": "^4.0.0" } }, "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA=="], + "es-define-property": ["es-define-property@1.0.1", "", {}, "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="], - "doctrine": ["doctrine@2.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/doctrine/-/doctrine-2.1.0.tgz", { "dependencies": { "esutils": "^2.0.2" } }, "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw=="], + "es-errors": ["es-errors@1.3.0", "", {}, "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="], - "dom-serializer": ["dom-serializer@1.4.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/dom-serializer/-/dom-serializer-1.4.1.tgz", { "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", "entities": "^2.0.0" } }, "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag=="], + "es-module-lexer": ["es-module-lexer@2.0.0", "", {}, "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw=="], - "domelementtype": ["domelementtype@2.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/domelementtype/-/domelementtype-2.3.0.tgz", {}, "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="], + "es-object-atoms": ["es-object-atoms@1.1.1", "", { "dependencies": { "es-errors": "^1.3.0" } }, "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA=="], - "domhandler": ["domhandler@4.3.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/domhandler/-/domhandler-4.3.1.tgz", { "dependencies": { "domelementtype": "^2.2.0" } }, "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ=="], + "es-set-tostringtag": ["es-set-tostringtag@2.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA=="], - "domutils": ["domutils@2.8.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/domutils/-/domutils-2.8.0.tgz", { "dependencies": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", "domhandler": "^4.2.0" } }, "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A=="], + "es-shim-unscopables": ["es-shim-unscopables@1.1.0", "", { "dependencies": { "hasown": "^2.0.2" } }, "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw=="], - "dotenv": ["dotenv@16.4.7", "https://jfrog.booking.com:443/artifactory/api/npm/npm/dotenv/-/dotenv-16.4.7.tgz", {}, "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ=="], + "es-to-primitive": ["es-to-primitive@1.3.0", "", { "dependencies": { "is-callable": "^1.2.7", "is-date-object": "^1.0.5", "is-symbol": "^1.0.4" } }, "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g=="], - "dotenv-expand": ["dotenv-expand@11.0.7", "https://jfrog.booking.com:443/artifactory/api/npm/npm/dotenv-expand/-/dotenv-expand-11.0.7.tgz", { "dependencies": { "dotenv": "^16.4.5" } }, "sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA=="], + "es-toolkit": ["es-toolkit@1.44.0", "", {}, "sha512-6penXeZalaV88MM3cGkFZZfOoLGWshWWfdy0tWw/RlVVyhvMaWSBTOvXNeiW3e5FwdS5ePW0LGEu17zT139ktg=="], - "dset": ["dset@3.1.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/dset/-/dset-3.1.4.tgz", {}, "sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA=="], + "esbuild": ["esbuild@0.27.3", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.27.3", "@esbuild/android-arm": "0.27.3", "@esbuild/android-arm64": "0.27.3", "@esbuild/android-x64": "0.27.3", "@esbuild/darwin-arm64": "0.27.3", "@esbuild/darwin-x64": "0.27.3", "@esbuild/freebsd-arm64": "0.27.3", "@esbuild/freebsd-x64": "0.27.3", "@esbuild/linux-arm": "0.27.3", "@esbuild/linux-arm64": "0.27.3", "@esbuild/linux-ia32": "0.27.3", "@esbuild/linux-loong64": "0.27.3", "@esbuild/linux-mips64el": "0.27.3", "@esbuild/linux-ppc64": "0.27.3", "@esbuild/linux-riscv64": "0.27.3", "@esbuild/linux-s390x": "0.27.3", "@esbuild/linux-x64": "0.27.3", "@esbuild/netbsd-arm64": "0.27.3", "@esbuild/netbsd-x64": "0.27.3", "@esbuild/openbsd-arm64": "0.27.3", "@esbuild/openbsd-x64": "0.27.3", "@esbuild/openharmony-arm64": "0.27.3", "@esbuild/sunos-x64": "0.27.3", "@esbuild/win32-arm64": "0.27.3", "@esbuild/win32-ia32": "0.27.3", "@esbuild/win32-x64": "0.27.3" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg=="], - "dts-resolver": ["dts-resolver@2.1.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/dts-resolver/-/dts-resolver-2.1.3.tgz", { "peerDependencies": { "oxc-resolver": ">=11.0.0" }, "optionalPeers": ["oxc-resolver"] }, "sha512-bihc7jPC90VrosXNzK0LTE2cuLP6jr0Ro8jk+kMugHReJVLIpHz/xadeq3MhuwyO4TD4OA3L1Q8pBBFRc08Tsw=="], + "escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="], - "dunder-proto": ["dunder-proto@1.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/dunder-proto/-/dunder-proto-1.0.1.tgz", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" } }, "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="], + "escape-html": ["escape-html@1.0.3", "", {}, "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="], - "duplexify": ["duplexify@3.7.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/duplexify/-/duplexify-3.7.1.tgz", { "dependencies": { "end-of-stream": "^1.0.0", "inherits": "^2.0.1", "readable-stream": "^2.0.0", "stream-shift": "^1.0.0" } }, "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g=="], + "escape-string-regexp": ["escape-string-regexp@4.0.0", "", {}, "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="], - "eastasianwidth": ["eastasianwidth@0.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/eastasianwidth/-/eastasianwidth-0.2.0.tgz", {}, "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="], + "escodegen": ["escodegen@2.1.0", "", { "dependencies": { "esprima": "^4.0.1", "estraverse": "^5.2.0", "esutils": "^2.0.2" }, "optionalDependencies": { "source-map": "~0.6.1" }, "bin": { "esgenerate": "bin/esgenerate.js", "escodegen": "bin/escodegen.js" } }, "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w=="], - "ecc-jsbn": ["ecc-jsbn@0.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", { "dependencies": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" } }, "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw=="], + "eslint": ["eslint@9.39.3", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.21.1", "@eslint/config-helpers": "^0.4.2", "@eslint/core": "^0.17.0", "@eslint/eslintrc": "^3.3.1", "@eslint/js": "9.39.3", "@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", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^8.4.0", "eslint-visitor-keys": "^4.2.1", "espree": "^10.4.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, "peerDependencies": { "jiti": "*" }, "optionalPeers": ["jiti"], "bin": { "eslint": "bin/eslint.js" } }, "sha512-VmQ+sifHUbI/IcSopBCF/HO3YiHQx/AVd3UVyYL6weuwW+HvON9VYn5l6Zl1WZzPWXPNZrSQpxwkkZ/VuvJZzg=="], - "ecdsa-sig-formatter": ["ecdsa-sig-formatter@1.0.11", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", { "dependencies": { "safe-buffer": "^5.0.1" } }, "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ=="], + "eslint-config-prettier": ["eslint-config-prettier@10.1.5", "", { "peerDependencies": { "eslint": ">=7.0.0" }, "bin": { "eslint-config-prettier": "bin/cli.js" } }, "sha512-zc1UmCpNltmVY34vuLRV61r1K27sWuX39E+uyUnY8xS2Bex88VV9cugG+UZbRSRGtGyFboj+D8JODyme1plMpw=="], - "ee-first": ["ee-first@1.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ee-first/-/ee-first-1.1.1.tgz", {}, "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="], + "eslint-import-context": ["eslint-import-context@0.1.9", "", { "dependencies": { "get-tsconfig": "^4.10.1", "stable-hash-x": "^0.2.0" }, "peerDependencies": { "unrs-resolver": "^1.0.0" }, "optionalPeers": ["unrs-resolver"] }, "sha512-K9Hb+yRaGAGUbwjhFNHvSmmkZs9+zbuoe3kFQ4V1wYjrepUFYM2dZAfNtjbbj3qsPfUfsA68Bx/ICWQMi+C8Eg=="], - "ejs": ["ejs@3.1.10", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ejs/-/ejs-3.1.10.tgz", { "dependencies": { "jake": "^10.8.5" }, "bin": { "ejs": "bin/cli.js" } }, "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA=="], + "eslint-import-resolver-node": ["eslint-import-resolver-node@0.3.9", "", { "dependencies": { "debug": "^3.2.7", "is-core-module": "^2.13.0", "resolve": "^1.22.4" } }, "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g=="], - "electron-to-chromium": ["electron-to-chromium@1.5.260", "https://jfrog.booking.com:443/artifactory/api/npm/npm/electron-to-chromium/-/electron-to-chromium-1.5.260.tgz", {}, "sha512-ov8rBoOBhVawpzdre+Cmz4FB+y66Eqrk6Gwqd8NGxuhv99GQ8XqMAr351KEkOt7gukXWDg6gJWEMKgL2RLMPtA=="], + "eslint-import-resolver-typescript": ["eslint-import-resolver-typescript@4.4.4", "", { "dependencies": { "debug": "^4.4.1", "eslint-import-context": "^0.1.8", "get-tsconfig": "^4.10.1", "is-bun-module": "^2.0.0", "stable-hash-x": "^0.2.0", "tinyglobby": "^0.2.14", "unrs-resolver": "^1.7.11" }, "peerDependencies": { "eslint": "*", "eslint-plugin-import": "*", "eslint-plugin-import-x": "*" }, "optionalPeers": ["eslint-plugin-import", "eslint-plugin-import-x"] }, "sha512-1iM2zeBvrYmUNTj2vSC/90JTHDth+dfOfiNKkxApWRsTJYNrc8rOdxxIf5vazX+BiAXTeOT0UvWpGI/7qIWQOw=="], - "emittery": ["emittery@0.13.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/emittery/-/emittery-0.13.1.tgz", {}, "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ=="], + "eslint-module-utils": ["eslint-module-utils@2.12.1", "", { "dependencies": { "debug": "^3.2.7" } }, "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw=="], - "emoji-regex": ["emoji-regex@8.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/emoji-regex/-/emoji-regex-8.0.0.tgz", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], + "eslint-plugin-import": ["eslint-plugin-import@2.32.0", "", { "dependencies": { "@rtsao/scc": "^1.1.0", "array-includes": "^3.1.9", "array.prototype.findlastindex": "^1.2.6", "array.prototype.flat": "^1.3.3", "array.prototype.flatmap": "^1.3.3", "debug": "^3.2.7", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.9", "eslint-module-utils": "^2.12.1", "hasown": "^2.0.2", "is-core-module": "^2.16.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", "object.fromentries": "^2.0.8", "object.groupby": "^1.0.3", "object.values": "^1.2.1", "semver": "^6.3.1", "string.prototype.trimend": "^1.0.9", "tsconfig-paths": "^3.15.0" }, "peerDependencies": { "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" } }, "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA=="], - "emojis-list": ["emojis-list@3.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/emojis-list/-/emojis-list-3.0.0.tgz", {}, "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q=="], + "eslint-plugin-unused-imports": ["eslint-plugin-unused-imports@4.4.1", "", { "peerDependencies": { "@typescript-eslint/eslint-plugin": "^8.0.0-0 || ^7.0.0 || ^6.0.0 || ^5.0.0", "eslint": "^10.0.0 || ^9.0.0 || ^8.0.0" }, "optionalPeers": ["@typescript-eslint/eslint-plugin"] }, "sha512-oZGYUz1X3sRMGUB+0cZyK2VcvRX5lm/vB56PgNNcU+7ficUCKm66oZWKUubXWnOuPjQ8PvmXtCViXBMONPe7tQ=="], - "empathic": ["empathic@2.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/empathic/-/empathic-2.0.0.tgz", {}, "sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA=="], + "eslint-scope": ["eslint-scope@8.4.0", "", { "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" } }, "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg=="], - "encodeurl": ["encodeurl@2.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/encodeurl/-/encodeurl-2.0.0.tgz", {}, "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg=="], + "eslint-visitor-keys": ["eslint-visitor-keys@4.2.1", "", {}, "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ=="], - "end-of-stream": ["end-of-stream@1.4.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/end-of-stream/-/end-of-stream-1.4.5.tgz", { "dependencies": { "once": "^1.4.0" } }, "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg=="], + "espree": ["espree@10.4.0", "", { "dependencies": { "acorn": "^8.15.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^4.2.1" } }, "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ=="], - "enhanced-resolve": ["enhanced-resolve@5.18.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" } }, "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww=="], + "esprima": ["esprima@4.0.1", "", { "bin": { "esparse": "./bin/esparse.js", "esvalidate": "./bin/esvalidate.js" } }, "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="], - "enquirer": ["enquirer@2.3.6", "https://jfrog.booking.com:443/artifactory/api/npm/npm/enquirer/-/enquirer-2.3.6.tgz", { "dependencies": { "ansi-colors": "^4.1.1" } }, "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg=="], + "esquery": ["esquery@1.7.0", "", { "dependencies": { "estraverse": "^5.1.0" } }, "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g=="], - "entities": ["entities@6.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/entities/-/entities-6.0.1.tgz", {}, "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g=="], + "esrecurse": ["esrecurse@4.3.0", "", { "dependencies": { "estraverse": "^5.2.0" } }, "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag=="], - "env-paths": ["env-paths@2.2.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/env-paths/-/env-paths-2.2.1.tgz", {}, "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A=="], + "estraverse": ["estraverse@5.3.0", "", {}, "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="], - "envinfo": ["envinfo@7.14.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/envinfo/-/envinfo-7.14.0.tgz", { "bin": { "envinfo": "dist/cli.js" } }, "sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg=="], + "estree-walker": ["estree-walker@2.0.2", "", {}, "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="], - "environment": ["environment@1.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/environment/-/environment-1.1.0.tgz", {}, "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q=="], + "esutils": ["esutils@2.0.3", "", {}, "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="], - "error-ex": ["error-ex@1.3.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/error-ex/-/error-ex-1.3.4.tgz", { "dependencies": { "is-arrayish": "^0.2.1" } }, "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ=="], + "etag": ["etag@1.8.1", "", {}, "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="], - "es-abstract": ["es-abstract@1.24.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/es-abstract/-/es-abstract-1.24.0.tgz", { "dependencies": { "array-buffer-byte-length": "^1.0.2", "arraybuffer.prototype.slice": "^1.0.4", "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "call-bound": "^1.0.4", "data-view-buffer": "^1.0.2", "data-view-byte-length": "^1.0.2", "data-view-byte-offset": "^1.0.1", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "es-set-tostringtag": "^2.1.0", "es-to-primitive": "^1.3.0", "function.prototype.name": "^1.1.8", "get-intrinsic": "^1.3.0", "get-proto": "^1.0.1", "get-symbol-description": "^1.1.0", "globalthis": "^1.0.4", "gopd": "^1.2.0", "has-property-descriptors": "^1.0.2", "has-proto": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "internal-slot": "^1.1.0", "is-array-buffer": "^3.0.5", "is-callable": "^1.2.7", "is-data-view": "^1.0.2", "is-negative-zero": "^2.0.3", "is-regex": "^1.2.1", "is-set": "^2.0.3", "is-shared-array-buffer": "^1.0.4", "is-string": "^1.1.1", "is-typed-array": "^1.1.15", "is-weakref": "^1.1.1", "math-intrinsics": "^1.1.0", "object-inspect": "^1.13.4", "object-keys": "^1.1.1", "object.assign": "^4.1.7", "own-keys": "^1.0.1", "regexp.prototype.flags": "^1.5.4", "safe-array-concat": "^1.1.3", "safe-push-apply": "^1.0.0", "safe-regex-test": "^1.1.0", "set-proto": "^1.0.0", "stop-iteration-iterator": "^1.1.0", "string.prototype.trim": "^1.2.10", "string.prototype.trimend": "^1.0.9", "string.prototype.trimstart": "^1.0.8", "typed-array-buffer": "^1.0.3", "typed-array-byte-length": "^1.0.3", "typed-array-byte-offset": "^1.0.4", "typed-array-length": "^1.0.7", "unbox-primitive": "^1.1.0", "which-typed-array": "^1.1.19" } }, "sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg=="], + "event-target-shim": ["event-target-shim@5.0.1", "", {}, "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ=="], - "es-define-property": ["es-define-property@1.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/es-define-property/-/es-define-property-1.0.1.tgz", {}, "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="], + "eventemitter3": ["eventemitter3@4.0.7", "", {}, "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="], - "es-errors": ["es-errors@1.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/es-errors/-/es-errors-1.3.0.tgz", {}, "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="], + "events": ["events@3.3.0", "", {}, "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q=="], - "es-module-lexer": ["es-module-lexer@1.7.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/es-module-lexer/-/es-module-lexer-1.7.0.tgz", {}, "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA=="], + "events-universal": ["events-universal@1.0.1", "", { "dependencies": { "bare-events": "^2.7.0" } }, "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw=="], - "es-object-atoms": ["es-object-atoms@1.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/es-object-atoms/-/es-object-atoms-1.1.1.tgz", { "dependencies": { "es-errors": "^1.3.0" } }, "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA=="], + "execa": ["execa@5.1.1", "", { "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", "human-signals": "^2.1.0", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^4.0.1", "onetime": "^5.1.2", "signal-exit": "^3.0.3", "strip-final-newline": "^2.0.0" } }, "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg=="], - "es-set-tostringtag": ["es-set-tostringtag@2.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", { "dependencies": { "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA=="], + "exit-x": ["exit-x@0.2.2", "", {}, "sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ=="], - "es-shim-unscopables": ["es-shim-unscopables@1.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", { "dependencies": { "hasown": "^2.0.2" } }, "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw=="], + "expect": ["expect@30.2.0", "", { "dependencies": { "@jest/expect-utils": "30.2.0", "@jest/get-type": "30.1.0", "jest-matcher-utils": "30.2.0", "jest-message-util": "30.2.0", "jest-mock": "30.2.0", "jest-util": "30.2.0" } }, "sha512-u/feCi0GPsI+988gU2FLcsHyAHTU0MX1Wg68NhAnN7z/+C5wqG+CY8J53N9ioe8RXgaoz0nBR/TYMf3AycUuPw=="], - "es-to-primitive": ["es-to-primitive@1.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/es-to-primitive/-/es-to-primitive-1.3.0.tgz", { "dependencies": { "is-callable": "^1.2.7", "is-date-object": "^1.0.5", "is-symbol": "^1.0.4" } }, "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g=="], + "expect-type": ["expect-type@1.3.0", "", {}, "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA=="], - "es-toolkit": ["es-toolkit@1.42.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/es-toolkit/-/es-toolkit-1.42.0.tgz", {}, "sha512-SLHIyY7VfDJBM8clz4+T2oquwTQxEzu263AyhVK4jREOAwJ+8eebaa4wM3nlvnAqhDrMm2EsA6hWHaQsMPQ1nA=="], + "express": ["express@4.21.2", "", { "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", "cookie": "0.7.1", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", "finalhandler": "1.3.1", "fresh": "0.5.2", "http-errors": "2.0.0", "merge-descriptors": "1.0.3", "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", "path-to-regexp": "0.1.12", "proxy-addr": "~2.0.7", "qs": "6.13.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", "send": "0.19.0", "serve-static": "1.16.2", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" } }, "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA=="], - "esbuild": ["esbuild@0.25.12", "https://jfrog.booking.com:443/artifactory/api/npm/npm/esbuild/-/esbuild-0.25.12.tgz", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.12", "@esbuild/android-arm": "0.25.12", "@esbuild/android-arm64": "0.25.12", "@esbuild/android-x64": "0.25.12", "@esbuild/darwin-arm64": "0.25.12", "@esbuild/darwin-x64": "0.25.12", "@esbuild/freebsd-arm64": "0.25.12", "@esbuild/freebsd-x64": "0.25.12", "@esbuild/linux-arm": "0.25.12", "@esbuild/linux-arm64": "0.25.12", "@esbuild/linux-ia32": "0.25.12", "@esbuild/linux-loong64": "0.25.12", "@esbuild/linux-mips64el": "0.25.12", "@esbuild/linux-ppc64": "0.25.12", "@esbuild/linux-riscv64": "0.25.12", "@esbuild/linux-s390x": "0.25.12", "@esbuild/linux-x64": "0.25.12", "@esbuild/netbsd-arm64": "0.25.12", "@esbuild/netbsd-x64": "0.25.12", "@esbuild/openbsd-arm64": "0.25.12", "@esbuild/openbsd-x64": "0.25.12", "@esbuild/openharmony-arm64": "0.25.12", "@esbuild/sunos-x64": "0.25.12", "@esbuild/win32-arm64": "0.25.12", "@esbuild/win32-ia32": "0.25.12", "@esbuild/win32-x64": "0.25.12" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg=="], + "express-rate-limit": ["express-rate-limit@5.5.1", "", {}, "sha512-MTjE2eIbHv5DyfuFz4zLYWxpqVhEhkTiwFGuB74Q9CSou2WHO52nlE5y3Zlg6SIsiYUIPj6ifFxnkPz6O3sIUg=="], - "escalade": ["escalade@3.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/escalade/-/escalade-3.2.0.tgz", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="], + "ext-list": ["ext-list@2.2.2", "", { "dependencies": { "mime-db": "^1.28.0" } }, "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA=="], - "escape-html": ["escape-html@1.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/escape-html/-/escape-html-1.0.3.tgz", {}, "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="], + "ext-name": ["ext-name@5.0.0", "", { "dependencies": { "ext-list": "^2.0.0", "sort-keys-length": "^1.0.0" } }, "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ=="], - "escape-string-regexp": ["escape-string-regexp@4.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", {}, "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="], + "extend": ["extend@3.0.2", "", {}, "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="], - "escodegen": ["escodegen@2.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/escodegen/-/escodegen-2.1.0.tgz", { "dependencies": { "esprima": "^4.0.1", "estraverse": "^5.2.0", "esutils": "^2.0.2" }, "optionalDependencies": { "source-map": "~0.6.1" }, "bin": { "esgenerate": "bin/esgenerate.js", "escodegen": "bin/escodegen.js" } }, "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w=="], + "extract-zip": ["extract-zip@2.0.1", "", { "dependencies": { "debug": "^4.1.1", "get-stream": "^5.1.0", "yauzl": "^2.10.0" }, "optionalDependencies": { "@types/yauzl": "^2.9.1" }, "bin": { "extract-zip": "cli.js" } }, "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg=="], - "eslint": ["eslint@9.39.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/eslint/-/eslint-9.39.1.tgz", { "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.21.1", "@eslint/config-helpers": "^0.4.2", "@eslint/core": "^0.17.0", "@eslint/eslintrc": "^3.3.1", "@eslint/js": "9.39.1", "@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", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^8.4.0", "eslint-visitor-keys": "^4.2.1", "espree": "^10.4.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, "peerDependencies": { "jiti": "*" }, "optionalPeers": ["jiti"], "bin": { "eslint": "bin/eslint.js" } }, "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g=="], + "extsprintf": ["extsprintf@1.3.0", "", {}, "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g=="], - "eslint-config-prettier": ["eslint-config-prettier@10.1.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/eslint-config-prettier/-/eslint-config-prettier-10.1.5.tgz", { "peerDependencies": { "eslint": ">=7.0.0" }, "bin": { "eslint-config-prettier": "bin/cli.js" } }, "sha512-zc1UmCpNltmVY34vuLRV61r1K27sWuX39E+uyUnY8xS2Bex88VV9cugG+UZbRSRGtGyFboj+D8JODyme1plMpw=="], + "fast-copy": ["fast-copy@3.0.2", "", {}, "sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ=="], - "eslint-import-context": ["eslint-import-context@0.1.9", "https://jfrog.booking.com:443/artifactory/api/npm/npm/eslint-import-context/-/eslint-import-context-0.1.9.tgz", { "dependencies": { "get-tsconfig": "^4.10.1", "stable-hash-x": "^0.2.0" }, "peerDependencies": { "unrs-resolver": "^1.0.0" }, "optionalPeers": ["unrs-resolver"] }, "sha512-K9Hb+yRaGAGUbwjhFNHvSmmkZs9+zbuoe3kFQ4V1wYjrepUFYM2dZAfNtjbbj3qsPfUfsA68Bx/ICWQMi+C8Eg=="], + "fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="], - "eslint-import-resolver-node": ["eslint-import-resolver-node@0.3.9", "https://jfrog.booking.com:443/artifactory/api/npm/npm/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", { "dependencies": { "debug": "^3.2.7", "is-core-module": "^2.13.0", "resolve": "^1.22.4" } }, "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g=="], + "fast-fifo": ["fast-fifo@1.3.2", "", {}, "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ=="], - "eslint-import-resolver-typescript": ["eslint-import-resolver-typescript@4.4.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-4.4.4.tgz", { "dependencies": { "debug": "^4.4.1", "eslint-import-context": "^0.1.8", "get-tsconfig": "^4.10.1", "is-bun-module": "^2.0.0", "stable-hash-x": "^0.2.0", "tinyglobby": "^0.2.14", "unrs-resolver": "^1.7.11" }, "peerDependencies": { "eslint": "*", "eslint-plugin-import": "*", "eslint-plugin-import-x": "*" }, "optionalPeers": ["eslint-plugin-import", "eslint-plugin-import-x"] }, "sha512-1iM2zeBvrYmUNTj2vSC/90JTHDth+dfOfiNKkxApWRsTJYNrc8rOdxxIf5vazX+BiAXTeOT0UvWpGI/7qIWQOw=="], + "fast-glob": ["fast-glob@3.3.3", "", { "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.8" } }, "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg=="], - "eslint-module-utils": ["eslint-module-utils@2.12.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz", { "dependencies": { "debug": "^3.2.7" } }, "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw=="], + "fast-json-stable-stringify": ["fast-json-stable-stringify@2.1.0", "", {}, "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="], - "eslint-plugin-import": ["eslint-plugin-import@2.32.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", { "dependencies": { "@rtsao/scc": "^1.1.0", "array-includes": "^3.1.9", "array.prototype.findlastindex": "^1.2.6", "array.prototype.flat": "^1.3.3", "array.prototype.flatmap": "^1.3.3", "debug": "^3.2.7", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.9", "eslint-module-utils": "^2.12.1", "hasown": "^2.0.2", "is-core-module": "^2.16.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", "object.fromentries": "^2.0.8", "object.groupby": "^1.0.3", "object.values": "^1.2.1", "semver": "^6.3.1", "string.prototype.trimend": "^1.0.9", "tsconfig-paths": "^3.15.0" }, "peerDependencies": { "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" } }, "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA=="], + "fast-levenshtein": ["fast-levenshtein@2.0.6", "", {}, "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="], - "eslint-plugin-unused-imports": ["eslint-plugin-unused-imports@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-4.3.0.tgz", { "peerDependencies": { "@typescript-eslint/eslint-plugin": "^8.0.0-0 || ^7.0.0 || ^6.0.0 || ^5.0.0", "eslint": "^9.0.0 || ^8.0.0" }, "optionalPeers": ["@typescript-eslint/eslint-plugin"] }, "sha512-ZFBmXMGBYfHttdRtOG9nFFpmUvMtbHSjsKrS20vdWdbfiVYsO3yA2SGYy9i9XmZJDfMGBflZGBCm70SEnFQtOA=="], + "fast-redact": ["fast-redact@3.5.0", "", {}, "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A=="], - "eslint-scope": ["eslint-scope@8.4.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/eslint-scope/-/eslint-scope-8.4.0.tgz", { "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" } }, "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg=="], + "fast-safe-stringify": ["fast-safe-stringify@2.1.1", "", {}, "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA=="], - "eslint-visitor-keys": ["eslint-visitor-keys@4.2.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", {}, "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ=="], + "fast-uri": ["fast-uri@3.1.0", "", {}, "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA=="], - "espree": ["espree@10.4.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/espree/-/espree-10.4.0.tgz", { "dependencies": { "acorn": "^8.15.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^4.2.1" } }, "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ=="], + "fast-xml-builder": ["fast-xml-builder@1.0.0", "", {}, "sha512-fpZuDogrAgnyt9oDDz+5DBz0zgPdPZz6D4IR7iESxRXElrlGTRkHJ9eEt+SACRJwT0FNFrt71DFQIUFBJfX/uQ=="], - "esprima": ["esprima@4.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/esprima/-/esprima-4.0.1.tgz", { "bin": { "esparse": "./bin/esparse.js", "esvalidate": "./bin/esvalidate.js" } }, "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="], + "fast-xml-parser": ["fast-xml-parser@5.4.1", "", { "dependencies": { "fast-xml-builder": "^1.0.0", "strnum": "^2.1.2" }, "bin": { "fxparser": "src/cli/cli.js" } }, "sha512-BQ30U1mKkvXQXXkAGcuyUA/GA26oEB7NzOtsxCDtyu62sjGw5QraKFhx2Em3WQNjPw9PG6MQ9yuIIgkSDfGu5A=="], - "esquery": ["esquery@1.6.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/esquery/-/esquery-1.6.0.tgz", { "dependencies": { "estraverse": "^5.1.0" } }, "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg=="], + "fastq": ["fastq@1.20.1", "", { "dependencies": { "reusify": "^1.0.4" } }, "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw=="], - "esrecurse": ["esrecurse@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/esrecurse/-/esrecurse-4.3.0.tgz", { "dependencies": { "estraverse": "^5.2.0" } }, "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag=="], + "fb-watchman": ["fb-watchman@2.0.2", "", { "dependencies": { "bser": "2.1.1" } }, "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA=="], - "estraverse": ["estraverse@5.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/estraverse/-/estraverse-5.3.0.tgz", {}, "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="], + "fd-package-json": ["fd-package-json@2.0.0", "", { "dependencies": { "walk-up-path": "^4.0.0" } }, "sha512-jKmm9YtsNXN789RS/0mSzOC1NUq9mkVd65vbSSVsKdjGvYXBuE4oWe2QOEoFeRmJg+lPuZxpmrfFclNhoRMneQ=="], - "estree-walker": ["estree-walker@2.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/estree-walker/-/estree-walker-2.0.2.tgz", {}, "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="], + "fd-slicer": ["fd-slicer@1.1.0", "", { "dependencies": { "pend": "~1.2.0" } }, "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g=="], - "esutils": ["esutils@2.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/esutils/-/esutils-2.0.3.tgz", {}, "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="], + "fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="], - "etag": ["etag@1.8.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/etag/-/etag-1.8.1.tgz", {}, "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="], + "fflate": ["fflate@0.8.2", "", {}, "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A=="], - "event-target-shim": ["event-target-shim@5.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/event-target-shim/-/event-target-shim-5.0.1.tgz", {}, "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ=="], + "figures": ["figures@3.2.0", "", { "dependencies": { "escape-string-regexp": "^1.0.5" } }, "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg=="], - "eventemitter3": ["eventemitter3@4.0.7", "https://jfrog.booking.com:443/artifactory/api/npm/npm/eventemitter3/-/eventemitter3-4.0.7.tgz", {}, "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="], + "file-entry-cache": ["file-entry-cache@8.0.0", "", { "dependencies": { "flat-cache": "^4.0.0" } }, "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ=="], - "events": ["events@3.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/events/-/events-3.3.0.tgz", {}, "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q=="], + "file-type": ["file-type@20.5.0", "", { "dependencies": { "@tokenizer/inflate": "^0.2.6", "strtok3": "^10.2.0", "token-types": "^6.0.0", "uint8array-extras": "^1.4.0" } }, "sha512-BfHZtG/l9iMm4Ecianu7P8HRD2tBHLtjXinm4X62XBOYzi7CYA7jyqfJzOvXHqzVrVPYqBo2/GvbARMaaJkKVg=="], - "events-universal": ["events-universal@1.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/events-universal/-/events-universal-1.0.1.tgz", { "dependencies": { "bare-events": "^2.7.0" } }, "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw=="], + "filelist": ["filelist@1.0.6", "", { "dependencies": { "minimatch": "^5.0.1" } }, "sha512-5giy2PkLYY1cP39p17Ech+2xlpTRL9HLspOfEgm0L6CwBXBTgsK5ou0JtzYuepxkaQ/tvhCFIJ5uXo0OrM2DxA=="], - "execa": ["execa@5.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/execa/-/execa-5.1.1.tgz", { "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", "human-signals": "^2.1.0", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^4.0.1", "onetime": "^5.1.2", "signal-exit": "^3.0.3", "strip-final-newline": "^2.0.0" } }, "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg=="], + "filename-reserved-regex": ["filename-reserved-regex@3.0.0", "", {}, "sha512-hn4cQfU6GOT/7cFHXBqeBg2TbrMBgdD0kcjLhvSQYYwm3s4B6cjvBfb7nBALJLAXqmU5xajSa7X2NnUud/VCdw=="], - "exit-x": ["exit-x@0.2.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/exit-x/-/exit-x-0.2.2.tgz", {}, "sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ=="], + "filenamify": ["filenamify@6.0.0", "", { "dependencies": { "filename-reserved-regex": "^3.0.0" } }, "sha512-vqIlNogKeyD3yzrm0yhRMQg8hOVwYcYRfjEoODd49iCprMn4HL85gK3HcykQE53EPIpX3HcAbGA5ELQv216dAQ=="], - "expand-template": ["expand-template@2.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/expand-template/-/expand-template-2.0.3.tgz", {}, "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg=="], + "fill-range": ["fill-range@7.1.1", "", { "dependencies": { "to-regex-range": "^5.0.1" } }, "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg=="], - "expect": ["expect@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/expect/-/expect-30.2.0.tgz", { "dependencies": { "@jest/expect-utils": "30.2.0", "@jest/get-type": "30.1.0", "jest-matcher-utils": "30.2.0", "jest-message-util": "30.2.0", "jest-mock": "30.2.0", "jest-util": "30.2.0" } }, "sha512-u/feCi0GPsI+988gU2FLcsHyAHTU0MX1Wg68NhAnN7z/+C5wqG+CY8J53N9ioe8RXgaoz0nBR/TYMf3AycUuPw=="], + "finalhandler": ["finalhandler@1.3.1", "", { "dependencies": { "debug": "2.6.9", "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "on-finished": "2.4.1", "parseurl": "~1.3.3", "statuses": "2.0.1", "unpipe": "~1.0.0" } }, "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ=="], - "expect-type": ["expect-type@1.2.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/expect-type/-/expect-type-1.2.2.tgz", {}, "sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA=="], + "find-cache-dir": ["find-cache-dir@3.3.2", "", { "dependencies": { "commondir": "^1.0.1", "make-dir": "^3.0.2", "pkg-dir": "^4.1.0" } }, "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig=="], - "express": ["express@4.21.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/express/-/express-4.21.2.tgz", { "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", "cookie": "0.7.1", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", "finalhandler": "1.3.1", "fresh": "0.5.2", "http-errors": "2.0.0", "merge-descriptors": "1.0.3", "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", "path-to-regexp": "0.1.12", "proxy-addr": "~2.0.7", "qs": "6.13.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", "send": "0.19.0", "serve-static": "1.16.2", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" } }, "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA=="], + "find-up": ["find-up@5.0.0", "", { "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" } }, "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng=="], - "express-rate-limit": ["express-rate-limit@5.5.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/express-rate-limit/-/express-rate-limit-5.5.1.tgz", {}, "sha512-MTjE2eIbHv5DyfuFz4zLYWxpqVhEhkTiwFGuB74Q9CSou2WHO52nlE5y3Zlg6SIsiYUIPj6ifFxnkPz6O3sIUg=="], + "find-versions": ["find-versions@5.1.0", "", { "dependencies": { "semver-regex": "^4.0.5" } }, "sha512-+iwzCJ7C5v5KgcBuueqVoNiHVoQpwiUK5XFLjf0affFTep+Wcw93tPvmb8tqujDNmzhBDPddnWV/qgWSXgq+Hg=="], - "ext-list": ["ext-list@2.2.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ext-list/-/ext-list-2.2.2.tgz", { "dependencies": { "mime-db": "^1.28.0" } }, "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA=="], + "flat": ["flat@5.0.2", "", { "bin": { "flat": "cli.js" } }, "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ=="], - "ext-name": ["ext-name@5.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ext-name/-/ext-name-5.0.0.tgz", { "dependencies": { "ext-list": "^2.0.0", "sort-keys-length": "^1.0.0" } }, "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ=="], + "flat-cache": ["flat-cache@4.0.1", "", { "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.4" } }, "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw=="], - "extend": ["extend@3.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/extend/-/extend-3.0.2.tgz", {}, "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="], + "flatted": ["flatted@3.3.3", "", {}, "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg=="], - "extract-zip": ["extract-zip@2.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/extract-zip/-/extract-zip-2.0.1.tgz", { "dependencies": { "debug": "^4.1.1", "get-stream": "^5.1.0", "yauzl": "^2.10.0" }, "optionalDependencies": { "@types/yauzl": "^2.9.1" }, "bin": { "extract-zip": "cli.js" } }, "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg=="], + "follow-redirects": ["follow-redirects@1.15.11", "", {}, "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ=="], - "extsprintf": ["extsprintf@1.4.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/extsprintf/-/extsprintf-1.4.1.tgz", {}, "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA=="], + "for-each": ["for-each@0.3.5", "", { "dependencies": { "is-callable": "^1.2.7" } }, "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg=="], - "fast-copy": ["fast-copy@3.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/fast-copy/-/fast-copy-3.0.2.tgz", {}, "sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ=="], + "foreground-child": ["foreground-child@3.3.1", "", { "dependencies": { "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" } }, "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw=="], - "fast-deep-equal": ["fast-deep-equal@3.1.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="], + "forever-agent": ["forever-agent@0.6.1", "", {}, "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw=="], - "fast-fifo": ["fast-fifo@1.3.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/fast-fifo/-/fast-fifo-1.3.2.tgz", {}, "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ=="], + "form-data": ["form-data@4.0.5", "", { "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", "hasown": "^2.0.2", "mime-types": "^2.1.12" } }, "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w=="], - "fast-glob": ["fast-glob@3.3.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/fast-glob/-/fast-glob-3.3.3.tgz", { "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.8" } }, "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg=="], + "form-data-encoder": ["form-data-encoder@2.1.4", "", {}, "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw=="], - "fast-json-stable-stringify": ["fast-json-stable-stringify@2.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", {}, "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="], + "formatly": ["formatly@0.3.0", "", { "dependencies": { "fd-package-json": "^2.0.0" }, "bin": { "formatly": "bin/index.mjs" } }, "sha512-9XNj/o4wrRFyhSMJOvsuyMwy8aUfBaZ1VrqHVfohyXf0Sw0e+yfKG+xZaY3arGCOMdwFsqObtzVOc1gU9KiT9w=="], - "fast-levenshtein": ["fast-levenshtein@2.0.6", "https://jfrog.booking.com:443/artifactory/api/npm/npm/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", {}, "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="], + "forwarded": ["forwarded@0.2.0", "", {}, "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="], - "fast-redact": ["fast-redact@3.5.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/fast-redact/-/fast-redact-3.5.0.tgz", {}, "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A=="], + "fraction.js": ["fraction.js@5.3.4", "", {}, "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ=="], - "fast-safe-stringify": ["fast-safe-stringify@2.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", {}, "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA=="], + "fresh": ["fresh@0.5.2", "", {}, "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="], - "fast-uri": ["fast-uri@3.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/fast-uri/-/fast-uri-3.1.0.tgz", {}, "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA=="], + "front-matter": ["front-matter@4.0.2", "", { "dependencies": { "js-yaml": "^3.13.1" } }, "sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg=="], - "fast-xml-parser": ["fast-xml-parser@5.3.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/fast-xml-parser/-/fast-xml-parser-5.3.1.tgz", { "dependencies": { "strnum": "^2.1.0" }, "bin": { "fxparser": "src/cli/cli.js" } }, "sha512-jbNkWiv2Ec1A7wuuxk0br0d0aTMUtQ4IkL+l/i1r9PRf6pLXjDgsBsWwO+UyczmQlnehi4Tbc8/KIvxGQe+I/A=="], + "fs-constants": ["fs-constants@1.0.0", "", {}, "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="], - "fastq": ["fastq@1.19.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/fastq/-/fastq-1.19.1.tgz", { "dependencies": { "reusify": "^1.0.4" } }, "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ=="], + "fs-extra": ["fs-extra@8.1.0", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", "universalify": "^0.1.0" } }, "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g=="], - "fb-watchman": ["fb-watchman@2.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/fb-watchman/-/fb-watchman-2.0.2.tgz", { "dependencies": { "bser": "2.1.1" } }, "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA=="], + "fs.realpath": ["fs.realpath@1.0.0", "", {}, "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="], - "fd-package-json": ["fd-package-json@2.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/fd-package-json/-/fd-package-json-2.0.0.tgz", { "dependencies": { "walk-up-path": "^4.0.0" } }, "sha512-jKmm9YtsNXN789RS/0mSzOC1NUq9mkVd65vbSSVsKdjGvYXBuE4oWe2QOEoFeRmJg+lPuZxpmrfFclNhoRMneQ=="], + "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], - "fd-slicer": ["fd-slicer@1.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/fd-slicer/-/fd-slicer-1.1.0.tgz", { "dependencies": { "pend": "~1.2.0" } }, "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g=="], + "function-bind": ["function-bind@1.1.2", "", {}, "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="], - "fdir": ["fdir@6.5.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/fdir/-/fdir-6.5.0.tgz", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="], + "function.prototype.name": ["function.prototype.name@1.1.8", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "functions-have-names": "^1.2.3", "hasown": "^2.0.2", "is-callable": "^1.2.7" } }, "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q=="], - "fflate": ["fflate@0.8.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/fflate/-/fflate-0.8.2.tgz", {}, "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A=="], + "functions-have-names": ["functions-have-names@1.2.3", "", {}, "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ=="], - "figures": ["figures@3.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/figures/-/figures-3.2.0.tgz", { "dependencies": { "escape-string-regexp": "^1.0.5" } }, "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg=="], + "fxmlp": ["fxmlp@1.0.7", "", {}, "sha512-Fqjs6oVzfAabr966QFDah8YLvdv4jAUwlCxQG+4IKnNgra2e/UgosCI929pm39p35P2chI6ZUaQNHCOgd5EFcQ=="], - "file-entry-cache": ["file-entry-cache@8.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/file-entry-cache/-/file-entry-cache-8.0.0.tgz", { "dependencies": { "flat-cache": "^4.0.0" } }, "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ=="], + "generator-function": ["generator-function@2.0.1", "", {}, "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g=="], - "file-type": ["file-type@20.5.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/file-type/-/file-type-20.5.0.tgz", { "dependencies": { "@tokenizer/inflate": "^0.2.6", "strtok3": "^10.2.0", "token-types": "^6.0.0", "uint8array-extras": "^1.4.0" } }, "sha512-BfHZtG/l9iMm4Ecianu7P8HRD2tBHLtjXinm4X62XBOYzi7CYA7jyqfJzOvXHqzVrVPYqBo2/GvbARMaaJkKVg=="], + "generic-names": ["generic-names@4.0.0", "", { "dependencies": { "loader-utils": "^3.2.0" } }, "sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A=="], - "file-uri-to-path": ["file-uri-to-path@1.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", {}, "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="], + "gensync": ["gensync@1.0.0-beta.2", "", {}, "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="], - "filelist": ["filelist@1.0.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/filelist/-/filelist-1.0.4.tgz", { "dependencies": { "minimatch": "^5.0.1" } }, "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q=="], + "get-caller-file": ["get-caller-file@2.0.5", "", {}, "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="], - "filename-reserved-regex": ["filename-reserved-regex@3.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/filename-reserved-regex/-/filename-reserved-regex-3.0.0.tgz", {}, "sha512-hn4cQfU6GOT/7cFHXBqeBg2TbrMBgdD0kcjLhvSQYYwm3s4B6cjvBfb7nBALJLAXqmU5xajSa7X2NnUud/VCdw=="], + "get-east-asian-width": ["get-east-asian-width@1.5.0", "", {}, "sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA=="], - "filenamify": ["filenamify@6.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/filenamify/-/filenamify-6.0.0.tgz", { "dependencies": { "filename-reserved-regex": "^3.0.0" } }, "sha512-vqIlNogKeyD3yzrm0yhRMQg8hOVwYcYRfjEoODd49iCprMn4HL85gK3HcykQE53EPIpX3HcAbGA5ELQv216dAQ=="], + "get-intrinsic": ["get-intrinsic@1.3.0", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "math-intrinsics": "^1.1.0" } }, "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ=="], - "fill-range": ["fill-range@7.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/fill-range/-/fill-range-7.1.1.tgz", { "dependencies": { "to-regex-range": "^5.0.1" } }, "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg=="], + "get-package-type": ["get-package-type@0.1.0", "", {}, "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q=="], - "finalhandler": ["finalhandler@1.3.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/finalhandler/-/finalhandler-1.3.1.tgz", { "dependencies": { "debug": "2.6.9", "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "on-finished": "2.4.1", "parseurl": "~1.3.3", "statuses": "2.0.1", "unpipe": "~1.0.0" } }, "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ=="], + "get-proto": ["get-proto@1.0.1", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" } }, "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g=="], - "find-cache-dir": ["find-cache-dir@3.3.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/find-cache-dir/-/find-cache-dir-3.3.2.tgz", { "dependencies": { "commondir": "^1.0.1", "make-dir": "^3.0.2", "pkg-dir": "^4.1.0" } }, "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig=="], + "get-stream": ["get-stream@6.0.1", "", {}, "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg=="], - "find-up": ["find-up@5.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/find-up/-/find-up-5.0.0.tgz", { "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" } }, "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng=="], + "get-symbol-description": ["get-symbol-description@1.1.0", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6" } }, "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg=="], - "find-versions": ["find-versions@5.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/find-versions/-/find-versions-5.1.0.tgz", { "dependencies": { "semver-regex": "^4.0.5" } }, "sha512-+iwzCJ7C5v5KgcBuueqVoNiHVoQpwiUK5XFLjf0affFTep+Wcw93tPvmb8tqujDNmzhBDPddnWV/qgWSXgq+Hg=="], + "get-them-args": ["get-them-args@1.3.2", "", {}, "sha512-LRn8Jlk+DwZE4GTlDbT3Hikd1wSHgLMme/+7ddlqKd7ldwR6LjJgTVWzBnR01wnYGe4KgrXjg287RaI22UHmAw=="], - "flat": ["flat@5.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/flat/-/flat-5.0.2.tgz", { "bin": { "flat": "cli.js" } }, "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ=="], + "get-tsconfig": ["get-tsconfig@4.13.6", "", { "dependencies": { "resolve-pkg-maps": "^1.0.0" } }, "sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw=="], - "flat-cache": ["flat-cache@4.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/flat-cache/-/flat-cache-4.0.1.tgz", { "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.4" } }, "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw=="], + "get-uri": ["get-uri@6.0.5", "", { "dependencies": { "basic-ftp": "^5.0.2", "data-uri-to-buffer": "^6.0.2", "debug": "^4.3.4" } }, "sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg=="], - "flatted": ["flatted@3.3.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/flatted/-/flatted-3.3.3.tgz", {}, "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg=="], + "getpass": ["getpass@0.1.7", "", { "dependencies": { "assert-plus": "^1.0.0" } }, "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng=="], - "follow-redirects": ["follow-redirects@1.15.11", "https://jfrog.booking.com:443/artifactory/api/npm/npm/follow-redirects/-/follow-redirects-1.15.11.tgz", {}, "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ=="], + "glob": ["glob@10.5.0", "", { "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", "minimatch": "^9.0.4", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg=="], - "for-each": ["for-each@0.3.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/for-each/-/for-each-0.3.5.tgz", { "dependencies": { "is-callable": "^1.2.7" } }, "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg=="], + "glob-parent": ["glob-parent@6.0.2", "", { "dependencies": { "is-glob": "^4.0.3" } }, "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="], - "foreground-child": ["foreground-child@3.3.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/foreground-child/-/foreground-child-3.3.1.tgz", { "dependencies": { "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" } }, "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw=="], + "glob-to-regexp": ["glob-to-regexp@0.4.1", "", {}, "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw=="], - "forever-agent": ["forever-agent@0.6.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/forever-agent/-/forever-agent-0.6.1.tgz", {}, "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw=="], + "globals": ["globals@15.15.0", "", {}, "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg=="], - "form-data": ["form-data@4.0.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/form-data/-/form-data-4.0.4.tgz", { "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", "hasown": "^2.0.2", "mime-types": "^2.1.12" } }, "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow=="], + "globalthis": ["globalthis@1.0.4", "", { "dependencies": { "define-properties": "^1.2.1", "gopd": "^1.0.1" } }, "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ=="], - "form-data-encoder": ["form-data-encoder@2.1.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/form-data-encoder/-/form-data-encoder-2.1.4.tgz", {}, "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw=="], + "globby": ["globby@10.0.1", "", { "dependencies": { "@types/glob": "^7.1.1", "array-union": "^2.1.0", "dir-glob": "^3.0.1", "fast-glob": "^3.0.3", "glob": "^7.1.3", "ignore": "^5.1.1", "merge2": "^1.2.3", "slash": "^3.0.0" } }, "sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A=="], - "formatly": ["formatly@0.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/formatly/-/formatly-0.3.0.tgz", { "dependencies": { "fd-package-json": "^2.0.0" }, "bin": { "formatly": "bin/index.mjs" } }, "sha512-9XNj/o4wrRFyhSMJOvsuyMwy8aUfBaZ1VrqHVfohyXf0Sw0e+yfKG+xZaY3arGCOMdwFsqObtzVOc1gU9KiT9w=="], + "gopd": ["gopd@1.2.0", "", {}, "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="], - "forwarded": ["forwarded@0.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/forwarded/-/forwarded-0.2.0.tgz", {}, "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="], + "got": ["got@13.0.0", "", { "dependencies": { "@sindresorhus/is": "^5.2.0", "@szmarczak/http-timer": "^5.0.1", "cacheable-lookup": "^7.0.0", "cacheable-request": "^10.2.8", "decompress-response": "^6.0.0", "form-data-encoder": "^2.1.2", "get-stream": "^6.0.1", "http2-wrapper": "^2.1.10", "lowercase-keys": "^3.0.0", "p-cancelable": "^3.0.0", "responselike": "^3.0.0" } }, "sha512-XfBk1CxOOScDcMr9O1yKkNaQyy865NbYs+F7dr4H0LZMVgCj2Le59k6PqbNHoL5ToeaEQUYh6c6yMfVcc6SJxA=="], - "fraction.js": ["fraction.js@4.3.7", "https://jfrog.booking.com:443/artifactory/api/npm/npm/fraction.js/-/fraction.js-4.3.7.tgz", {}, "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew=="], + "graceful-fs": ["graceful-fs@4.2.11", "", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="], - "fresh": ["fresh@0.5.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/fresh/-/fresh-0.5.2.tgz", {}, "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="], + "graphemer": ["graphemer@1.4.0", "", {}, "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag=="], - "front-matter": ["front-matter@4.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/front-matter/-/front-matter-4.0.2.tgz", { "dependencies": { "js-yaml": "^3.13.1" } }, "sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg=="], + "gunzip-maybe": ["gunzip-maybe@1.4.2", "", { "dependencies": { "browserify-zlib": "^0.1.4", "is-deflate": "^1.0.0", "is-gzip": "^1.0.0", "peek-stream": "^1.1.0", "pumpify": "^1.3.3", "through2": "^2.0.3" }, "bin": { "gunzip-maybe": "bin.js" } }, "sha512-4haO1M4mLO91PW57BMsDFf75UmwoRX0GkdD+Faw+Lr+r/OZrOCS0pIBwOL1xCKQqnQzbNFGgK2V2CpBUPeFNTw=="], - "fs-constants": ["fs-constants@1.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/fs-constants/-/fs-constants-1.0.0.tgz", {}, "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="], + "handlebars": ["handlebars@4.7.8", "", { "dependencies": { "minimist": "^1.2.5", "neo-async": "^2.6.2", "source-map": "^0.6.1", "wordwrap": "^1.0.0" }, "optionalDependencies": { "uglify-js": "^3.1.4" }, "bin": { "handlebars": "bin/handlebars" } }, "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ=="], - "fs-extra": ["fs-extra@8.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/fs-extra/-/fs-extra-8.1.0.tgz", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", "universalify": "^0.1.0" } }, "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g=="], + "harmony-reflect": ["harmony-reflect@1.6.2", "", {}, "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g=="], - "fs.realpath": ["fs.realpath@1.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/fs.realpath/-/fs.realpath-1.0.0.tgz", {}, "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="], + "has-bigints": ["has-bigints@1.1.0", "", {}, "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg=="], - "fsevents": ["fsevents@2.3.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/fsevents/-/fsevents-2.3.3.tgz", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], + "has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="], - "function-bind": ["function-bind@1.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/function-bind/-/function-bind-1.1.2.tgz", {}, "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="], + "has-property-descriptors": ["has-property-descriptors@1.0.2", "", { "dependencies": { "es-define-property": "^1.0.0" } }, "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg=="], - "function.prototype.name": ["function.prototype.name@1.1.8", "https://jfrog.booking.com:443/artifactory/api/npm/npm/function.prototype.name/-/function.prototype.name-1.1.8.tgz", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "functions-have-names": "^1.2.3", "hasown": "^2.0.2", "is-callable": "^1.2.7" } }, "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q=="], + "has-proto": ["has-proto@1.2.0", "", { "dependencies": { "dunder-proto": "^1.0.0" } }, "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ=="], - "functions-have-names": ["functions-have-names@1.2.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/functions-have-names/-/functions-have-names-1.2.3.tgz", {}, "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ=="], + "has-symbols": ["has-symbols@1.1.0", "", {}, "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="], - "fxmlp": ["fxmlp@1.0.7", "https://jfrog.booking.com:443/artifactory/api/npm/npm/fxmlp/-/fxmlp-1.0.7.tgz", {}, "sha512-Fqjs6oVzfAabr966QFDah8YLvdv4jAUwlCxQG+4IKnNgra2e/UgosCI929pm39p35P2chI6ZUaQNHCOgd5EFcQ=="], + "has-tostringtag": ["has-tostringtag@1.0.2", "", { "dependencies": { "has-symbols": "^1.0.3" } }, "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw=="], - "generator-function": ["generator-function@2.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/generator-function/-/generator-function-2.0.1.tgz", {}, "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g=="], + "hasown": ["hasown@2.0.2", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="], - "generic-names": ["generic-names@4.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/generic-names/-/generic-names-4.0.0.tgz", { "dependencies": { "loader-utils": "^3.2.0" } }, "sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A=="], + "he": ["he@1.2.0", "", { "bin": { "he": "bin/he" } }, "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="], - "generic-pool": ["generic-pool@3.9.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/generic-pool/-/generic-pool-3.9.0.tgz", {}, "sha512-hymDOu5B53XvN4QT9dBmZxPX4CWhBPPLguTZ9MMFeFa/Kg0xWVfylOVNlJji/E7yTZWFd/q9GO5TxDLq156D7g=="], + "help-me": ["help-me@5.0.0", "", {}, "sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg=="], - "gensync": ["gensync@1.0.0-beta.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/gensync/-/gensync-1.0.0-beta.2.tgz", {}, "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="], + "hookable": ["hookable@6.0.1", "", {}, "sha512-uKGyY8BuzN/a5gvzvA+3FVWo0+wUjgtfSdnmjtrOVwQCZPHpHDH2WRO3VZSOeluYrHoDCiXFffZXs8Dj1ULWtw=="], - "get-caller-file": ["get-caller-file@2.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/get-caller-file/-/get-caller-file-2.0.5.tgz", {}, "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="], + "hosted-git-info": ["hosted-git-info@7.0.2", "", { "dependencies": { "lru-cache": "^10.0.1" } }, "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w=="], - "get-east-asian-width": ["get-east-asian-width@1.4.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/get-east-asian-width/-/get-east-asian-width-1.4.0.tgz", {}, "sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q=="], + "html-encoding-sniffer": ["html-encoding-sniffer@3.0.0", "", { "dependencies": { "whatwg-encoding": "^2.0.0" } }, "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA=="], - "get-intrinsic": ["get-intrinsic@1.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/get-intrinsic/-/get-intrinsic-1.3.0.tgz", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "math-intrinsics": "^1.1.0" } }, "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ=="], + "html-escaper": ["html-escaper@2.0.2", "", {}, "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg=="], - "get-package-type": ["get-package-type@0.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/get-package-type/-/get-package-type-0.1.0.tgz", {}, "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q=="], + "http-cache-semantics": ["http-cache-semantics@4.2.0", "", {}, "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ=="], - "get-proto": ["get-proto@1.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/get-proto/-/get-proto-1.0.1.tgz", { "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" } }, "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g=="], + "http-errors": ["http-errors@2.0.0", "", { "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", "setprototypeof": "1.2.0", "statuses": "2.0.1", "toidentifier": "1.0.1" } }, "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ=="], - "get-stream": ["get-stream@6.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/get-stream/-/get-stream-6.0.1.tgz", {}, "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg=="], + "http-proxy": ["http-proxy@1.18.1", "", { "dependencies": { "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", "requires-port": "^1.0.0" } }, "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ=="], - "get-symbol-description": ["get-symbol-description@1.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/get-symbol-description/-/get-symbol-description-1.1.0.tgz", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6" } }, "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg=="], + "http-proxy-agent": ["http-proxy-agent@7.0.2", "", { "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" } }, "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig=="], - "get-them-args": ["get-them-args@1.3.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/get-them-args/-/get-them-args-1.3.2.tgz", {}, "sha512-LRn8Jlk+DwZE4GTlDbT3Hikd1wSHgLMme/+7ddlqKd7ldwR6LjJgTVWzBnR01wnYGe4KgrXjg287RaI22UHmAw=="], + "http-server": ["http-server@14.1.1", "", { "dependencies": { "basic-auth": "^2.0.1", "chalk": "^4.1.2", "corser": "^2.0.1", "he": "^1.2.0", "html-encoding-sniffer": "^3.0.0", "http-proxy": "^1.18.1", "mime": "^1.6.0", "minimist": "^1.2.6", "opener": "^1.5.1", "portfinder": "^1.0.28", "secure-compare": "3.0.1", "union": "~0.5.0", "url-join": "^4.0.1" }, "bin": { "http-server": "bin/http-server" } }, "sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A=="], - "get-tsconfig": ["get-tsconfig@4.13.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/get-tsconfig/-/get-tsconfig-4.13.0.tgz", { "dependencies": { "resolve-pkg-maps": "^1.0.0" } }, "sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ=="], + "http-signature": ["http-signature@1.4.0", "", { "dependencies": { "assert-plus": "^1.0.0", "jsprim": "^2.0.2", "sshpk": "^1.18.0" } }, "sha512-G5akfn7eKbpDN+8nPS/cb57YeA1jLTVxjpCj7tmm3QKPdyDy7T+qSC40e9ptydSWvkwjSXw1VbkpyEm39ukeAg=="], - "get-uri": ["get-uri@6.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/get-uri/-/get-uri-6.0.5.tgz", { "dependencies": { "basic-ftp": "^5.0.2", "data-uri-to-buffer": "^6.0.2", "debug": "^4.3.4" } }, "sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg=="], + "http-status-codes": ["http-status-codes@2.3.0", "", {}, "sha512-RJ8XvFvpPM/Dmc5SV+dC4y5PCeOhT3x1Hq0NU3rjGeg5a/CqlhZ7uudknPwZFz4aeAXDcbAyaeP7GAo9lvngtA=="], - "getpass": ["getpass@0.1.7", "https://jfrog.booking.com:443/artifactory/api/npm/npm/getpass/-/getpass-0.1.7.tgz", { "dependencies": { "assert-plus": "^1.0.0" } }, "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng=="], + "http2-wrapper": ["http2-wrapper@2.2.1", "", { "dependencies": { "quick-lru": "^5.1.1", "resolve-alpn": "^1.2.0" } }, "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ=="], - "github-from-package": ["github-from-package@0.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/github-from-package/-/github-from-package-0.0.0.tgz", {}, "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw=="], + "https-proxy-agent": ["https-proxy-agent@7.0.6", "", { "dependencies": { "agent-base": "^7.1.2", "debug": "4" } }, "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw=="], - "glob": ["glob@10.5.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/glob/-/glob-10.5.0.tgz", { "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", "minimatch": "^9.0.4", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg=="], + "human-signals": ["human-signals@2.1.0", "", {}, "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw=="], - "glob-parent": ["glob-parent@6.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/glob-parent/-/glob-parent-6.0.2.tgz", { "dependencies": { "is-glob": "^4.0.3" } }, "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="], + "husky": ["husky@9.1.7", "", { "bin": { "husky": "bin.js" } }, "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA=="], - "glob-to-regexp": ["glob-to-regexp@0.4.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", {}, "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw=="], + "iconv-lite": ["iconv-lite@0.6.3", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw=="], - "globals": ["globals@15.15.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/globals/-/globals-15.15.0.tgz", {}, "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg=="], + "icss-replace-symbols": ["icss-replace-symbols@1.1.0", "", {}, "sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg=="], - "globalthis": ["globalthis@1.0.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/globalthis/-/globalthis-1.0.4.tgz", { "dependencies": { "define-properties": "^1.2.1", "gopd": "^1.0.1" } }, "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ=="], + "icss-utils": ["icss-utils@5.1.0", "", { "peerDependencies": { "postcss": "^8.1.0" } }, "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA=="], - "globby": ["globby@10.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/globby/-/globby-10.0.1.tgz", { "dependencies": { "@types/glob": "^7.1.1", "array-union": "^2.1.0", "dir-glob": "^3.0.1", "fast-glob": "^3.0.3", "glob": "^7.1.3", "ignore": "^5.1.1", "merge2": "^1.2.3", "slash": "^3.0.0" } }, "sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A=="], + "identity-obj-proxy": ["identity-obj-proxy@3.0.0", "", { "dependencies": { "harmony-reflect": "^1.4.6" } }, "sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA=="], - "gopd": ["gopd@1.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/gopd/-/gopd-1.2.0.tgz", {}, "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="], + "ieee754": ["ieee754@1.2.1", "", {}, "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="], - "got": ["got@13.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/got/-/got-13.0.0.tgz", { "dependencies": { "@sindresorhus/is": "^5.2.0", "@szmarczak/http-timer": "^5.0.1", "cacheable-lookup": "^7.0.0", "cacheable-request": "^10.2.8", "decompress-response": "^6.0.0", "form-data-encoder": "^2.1.2", "get-stream": "^6.0.1", "http2-wrapper": "^2.1.10", "lowercase-keys": "^3.0.0", "p-cancelable": "^3.0.0", "responselike": "^3.0.0" } }, "sha512-XfBk1CxOOScDcMr9O1yKkNaQyy865NbYs+F7dr4H0LZMVgCj2Le59k6PqbNHoL5ToeaEQUYh6c6yMfVcc6SJxA=="], + "ignore": ["ignore@5.3.2", "", {}, "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="], - "graceful-fs": ["graceful-fs@4.2.11", "https://jfrog.booking.com:443/artifactory/api/npm/npm/graceful-fs/-/graceful-fs-4.2.11.tgz", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="], + "import-cwd": ["import-cwd@3.0.0", "", { "dependencies": { "import-from": "^3.0.0" } }, "sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg=="], - "graphemer": ["graphemer@1.4.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/graphemer/-/graphemer-1.4.0.tgz", {}, "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag=="], + "import-fresh": ["import-fresh@3.3.1", "", { "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" } }, "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ=="], - "gunzip-maybe": ["gunzip-maybe@1.4.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/gunzip-maybe/-/gunzip-maybe-1.4.2.tgz", { "dependencies": { "browserify-zlib": "^0.1.4", "is-deflate": "^1.0.0", "is-gzip": "^1.0.0", "peek-stream": "^1.1.0", "pumpify": "^1.3.3", "through2": "^2.0.3" }, "bin": { "gunzip-maybe": "bin.js" } }, "sha512-4haO1M4mLO91PW57BMsDFf75UmwoRX0GkdD+Faw+Lr+r/OZrOCS0pIBwOL1xCKQqnQzbNFGgK2V2CpBUPeFNTw=="], + "import-from": ["import-from@3.0.0", "", { "dependencies": { "resolve-from": "^5.0.0" } }, "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ=="], - "handlebars": ["handlebars@4.7.8", "https://jfrog.booking.com:443/artifactory/api/npm/npm/handlebars/-/handlebars-4.7.8.tgz", { "dependencies": { "minimist": "^1.2.5", "neo-async": "^2.6.2", "source-map": "^0.6.1", "wordwrap": "^1.0.0" }, "optionalDependencies": { "uglify-js": "^3.1.4" }, "bin": { "handlebars": "bin/handlebars" } }, "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ=="], + "import-local": ["import-local@3.2.0", "", { "dependencies": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" }, "bin": { "import-local-fixture": "fixtures/cli.js" } }, "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA=="], - "harmony-reflect": ["harmony-reflect@1.6.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/harmony-reflect/-/harmony-reflect-1.6.2.tgz", {}, "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g=="], + "import-without-cache": ["import-without-cache@0.2.5", "", {}, "sha512-B6Lc2s6yApwnD2/pMzFh/d5AVjdsDXjgkeJ766FmFuJELIGHNycKRj+l3A39yZPM4CchqNCB4RITEAYB1KUM6A=="], - "has-bigints": ["has-bigints@1.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/has-bigints/-/has-bigints-1.1.0.tgz", {}, "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg=="], + "imurmurhash": ["imurmurhash@0.1.4", "", {}, "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="], - "has-flag": ["has-flag@4.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/has-flag/-/has-flag-4.0.0.tgz", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="], + "indent-string": ["indent-string@5.0.0", "", {}, "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg=="], - "has-property-descriptors": ["has-property-descriptors@1.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", { "dependencies": { "es-define-property": "^1.0.0" } }, "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg=="], + "inflight": ["inflight@1.0.6", "", { "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA=="], - "has-proto": ["has-proto@1.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/has-proto/-/has-proto-1.2.0.tgz", { "dependencies": { "dunder-proto": "^1.0.0" } }, "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ=="], + "inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="], - "has-symbols": ["has-symbols@1.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/has-symbols/-/has-symbols-1.1.0.tgz", {}, "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="], + "ink": ["ink@5.1.0", "", { "dependencies": { "@alcalzone/ansi-tokenize": "^0.1.3", "ansi-escapes": "^7.0.0", "ansi-styles": "^6.2.1", "auto-bind": "^5.0.1", "chalk": "^5.3.0", "cli-boxes": "^3.0.0", "cli-cursor": "^4.0.0", "cli-truncate": "^4.0.0", "code-excerpt": "^4.0.0", "es-toolkit": "^1.22.0", "indent-string": "^5.0.0", "is-in-ci": "^1.0.0", "patch-console": "^2.0.0", "react-reconciler": "^0.29.0", "scheduler": "^0.23.0", "signal-exit": "^3.0.7", "slice-ansi": "^7.1.0", "stack-utils": "^2.0.6", "string-width": "^7.2.0", "type-fest": "^4.27.0", "widest-line": "^5.0.0", "wrap-ansi": "^9.0.0", "ws": "^8.18.0", "yoga-wasm-web": "~0.3.3" }, "peerDependencies": { "@types/react": ">=18.0.0", "react": ">=18.0.0", "react-devtools-core": "^4.19.1" }, "optionalPeers": ["@types/react", "react-devtools-core"] }, "sha512-3vIO+CU4uSg167/dZrg4wHy75llUINYXxN4OsdaCkE40q4zyOTPwNc2VEpLnnWsIvIQeo6x6lilAhuaSt+rIsA=="], - "has-tostringtag": ["has-tostringtag@1.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/has-tostringtag/-/has-tostringtag-1.0.2.tgz", { "dependencies": { "has-symbols": "^1.0.3" } }, "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw=="], + "ink-select-input": ["ink-select-input@6.2.0", "", { "dependencies": { "figures": "^6.1.0", "to-rotated": "^1.0.0" }, "peerDependencies": { "ink": ">=5.0.0", "react": ">=18.0.0" } }, "sha512-304fZXxkpYxJ9si5lxRCaX01GNlmPBgOZumXXRnPYbHW/iI31cgQynqk2tRypGLOF1cMIwPUzL2LSm6q4I5rQQ=="], - "hasown": ["hasown@2.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/hasown/-/hasown-2.0.2.tgz", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="], + "ink-spinner": ["ink-spinner@5.0.0", "", { "dependencies": { "cli-spinners": "^2.7.0" }, "peerDependencies": { "ink": ">=4.0.0", "react": ">=18.0.0" } }, "sha512-EYEasbEjkqLGyPOUc8hBJZNuC5GvXGMLu0w5gdTNskPc7Izc5vO3tdQEYnzvshucyGCBXc86ig0ujXPMWaQCdA=="], - "hdb": ["hdb@0.19.12", "https://jfrog.booking.com:443/artifactory/api/npm/npm/hdb/-/hdb-0.19.12.tgz", { "dependencies": { "iconv-lite": "^0.4.18" } }, "sha512-vv+cjmvr6fNH/s0Q2zOZc4sEjMpSC0KuacFn8dp3L38qM3RA2LLeX70wWhZLESpwvwUf1pQkRfUhZeooFSmv3A=="], + "ink-text-input": ["ink-text-input@6.0.0", "", { "dependencies": { "chalk": "^5.3.0", "type-fest": "^4.18.2" }, "peerDependencies": { "ink": ">=5", "react": ">=18" } }, "sha512-Fw64n7Yha5deb1rHY137zHTAbSTNelUKuB5Kkk2HACXEtwIHBCf9OH2tP/LQ9fRYTl1F0dZgbW0zPnZk6FA9Lw=="], - "he": ["he@1.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/he/-/he-1.2.0.tgz", { "bin": { "he": "bin/he" } }, "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="], + "inspect-with-kind": ["inspect-with-kind@1.0.5", "", { "dependencies": { "kind-of": "^6.0.2" } }, "sha512-MAQUJuIo7Xqk8EVNP+6d3CKq9c80hi4tjIbIAT6lmGW9W6WzlHiu9PS8uSuUYU+Do+j1baiFp3H25XEVxDIG2g=="], - "help-me": ["help-me@5.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/help-me/-/help-me-5.0.0.tgz", {}, "sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg=="], + "internal-slot": ["internal-slot@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "hasown": "^2.0.2", "side-channel": "^1.1.0" } }, "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw=="], - "hookable": ["hookable@5.5.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/hookable/-/hookable-5.5.3.tgz", {}, "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ=="], + "ip-address": ["ip-address@10.1.0", "", {}, "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q=="], - "hosted-git-info": ["hosted-git-info@7.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/hosted-git-info/-/hosted-git-info-7.0.2.tgz", { "dependencies": { "lru-cache": "^10.0.1" } }, "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w=="], + "ip-regex": ["ip-regex@4.3.0", "", {}, "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q=="], - "html-encoding-sniffer": ["html-encoding-sniffer@3.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", { "dependencies": { "whatwg-encoding": "^2.0.0" } }, "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA=="], + "ipaddr.js": ["ipaddr.js@1.9.1", "", {}, "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="], - "html-escaper": ["html-escaper@2.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/html-escaper/-/html-escaper-2.0.2.tgz", {}, "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg=="], + "is-array-buffer": ["is-array-buffer@3.0.5", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "get-intrinsic": "^1.2.6" } }, "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A=="], - "http-cache-semantics": ["http-cache-semantics@4.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", {}, "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ=="], + "is-arrayish": ["is-arrayish@0.2.1", "", {}, "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="], - "http-errors": ["http-errors@2.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/http-errors/-/http-errors-2.0.0.tgz", { "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", "setprototypeof": "1.2.0", "statuses": "2.0.1", "toidentifier": "1.0.1" } }, "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ=="], + "is-async-function": ["is-async-function@2.1.1", "", { "dependencies": { "async-function": "^1.0.0", "call-bound": "^1.0.3", "get-proto": "^1.0.1", "has-tostringtag": "^1.0.2", "safe-regex-test": "^1.1.0" } }, "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ=="], - "http-proxy": ["http-proxy@1.18.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/http-proxy/-/http-proxy-1.18.1.tgz", { "dependencies": { "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", "requires-port": "^1.0.0" } }, "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ=="], + "is-bigint": ["is-bigint@1.1.0", "", { "dependencies": { "has-bigints": "^1.0.2" } }, "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ=="], - "http-proxy-agent": ["http-proxy-agent@7.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", { "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" } }, "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig=="], + "is-boolean-object": ["is-boolean-object@1.2.2", "", { "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" } }, "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A=="], - "http-server": ["http-server@14.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/http-server/-/http-server-14.1.1.tgz", { "dependencies": { "basic-auth": "^2.0.1", "chalk": "^4.1.2", "corser": "^2.0.1", "he": "^1.2.0", "html-encoding-sniffer": "^3.0.0", "http-proxy": "^1.18.1", "mime": "^1.6.0", "minimist": "^1.2.6", "opener": "^1.5.1", "portfinder": "^1.0.28", "secure-compare": "3.0.1", "union": "~0.5.0", "url-join": "^4.0.1" }, "bin": { "http-server": "bin/http-server" } }, "sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A=="], + "is-bun-module": ["is-bun-module@2.0.0", "", { "dependencies": { "semver": "^7.7.1" } }, "sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ=="], - "http-signature": ["http-signature@1.4.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/http-signature/-/http-signature-1.4.0.tgz", { "dependencies": { "assert-plus": "^1.0.0", "jsprim": "^2.0.2", "sshpk": "^1.18.0" } }, "sha512-G5akfn7eKbpDN+8nPS/cb57YeA1jLTVxjpCj7tmm3QKPdyDy7T+qSC40e9ptydSWvkwjSXw1VbkpyEm39ukeAg=="], + "is-callable": ["is-callable@1.2.7", "", {}, "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA=="], - "http-status-codes": ["http-status-codes@2.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/http-status-codes/-/http-status-codes-2.3.0.tgz", {}, "sha512-RJ8XvFvpPM/Dmc5SV+dC4y5PCeOhT3x1Hq0NU3rjGeg5a/CqlhZ7uudknPwZFz4aeAXDcbAyaeP7GAo9lvngtA=="], + "is-core-module": ["is-core-module@2.16.1", "", { "dependencies": { "hasown": "^2.0.2" } }, "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w=="], - "http2-wrapper": ["http2-wrapper@2.2.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/http2-wrapper/-/http2-wrapper-2.2.1.tgz", { "dependencies": { "quick-lru": "^5.1.1", "resolve-alpn": "^1.2.0" } }, "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ=="], + "is-data-view": ["is-data-view@1.0.2", "", { "dependencies": { "call-bound": "^1.0.2", "get-intrinsic": "^1.2.6", "is-typed-array": "^1.1.13" } }, "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw=="], - "https-proxy-agent": ["https-proxy-agent@7.0.6", "https://jfrog.booking.com:443/artifactory/api/npm/npm/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", { "dependencies": { "agent-base": "^7.1.2", "debug": "4" } }, "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw=="], + "is-date-object": ["is-date-object@1.1.0", "", { "dependencies": { "call-bound": "^1.0.2", "has-tostringtag": "^1.0.2" } }, "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg=="], - "human-signals": ["human-signals@2.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/human-signals/-/human-signals-2.1.0.tgz", {}, "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw=="], + "is-deflate": ["is-deflate@1.0.0", "", {}, "sha512-YDoFpuZWu1VRXlsnlYMzKyVRITXj7Ej/V9gXQ2/pAe7X1J7M/RNOqaIYi6qUn+B7nGyB9pDXrv02dsB58d2ZAQ=="], - "husky": ["husky@9.1.7", "https://jfrog.booking.com:443/artifactory/api/npm/npm/husky/-/husky-9.1.7.tgz", { "bin": { "husky": "bin.js" } }, "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA=="], + "is-docker": ["is-docker@2.2.1", "", { "bin": { "is-docker": "cli.js" } }, "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ=="], - "iconv-lite": ["iconv-lite@0.4.24", "https://jfrog.booking.com:443/artifactory/api/npm/npm/iconv-lite/-/iconv-lite-0.4.24.tgz", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3" } }, "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA=="], + "is-extglob": ["is-extglob@2.1.1", "", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="], - "icss-replace-symbols": ["icss-replace-symbols@1.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", {}, "sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg=="], + "is-finalizationregistry": ["is-finalizationregistry@1.1.1", "", { "dependencies": { "call-bound": "^1.0.3" } }, "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg=="], - "icss-utils": ["icss-utils@5.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/icss-utils/-/icss-utils-5.1.0.tgz", { "peerDependencies": { "postcss": "^8.1.0" } }, "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA=="], + "is-fullwidth-code-point": ["is-fullwidth-code-point@3.0.0", "", {}, "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="], - "identity-obj-proxy": ["identity-obj-proxy@3.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", { "dependencies": { "harmony-reflect": "^1.4.6" } }, "sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA=="], + "is-generator-fn": ["is-generator-fn@2.1.0", "", {}, "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ=="], - "ieee754": ["ieee754@1.2.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ieee754/-/ieee754-1.2.1.tgz", {}, "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="], + "is-generator-function": ["is-generator-function@1.1.2", "", { "dependencies": { "call-bound": "^1.0.4", "generator-function": "^2.0.0", "get-proto": "^1.0.1", "has-tostringtag": "^1.0.2", "safe-regex-test": "^1.1.0" } }, "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA=="], - "ignore": ["ignore@5.3.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ignore/-/ignore-5.3.2.tgz", {}, "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="], + "is-glob": ["is-glob@4.0.3", "", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="], - "import-cwd": ["import-cwd@3.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/import-cwd/-/import-cwd-3.0.0.tgz", { "dependencies": { "import-from": "^3.0.0" } }, "sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg=="], + "is-gzip": ["is-gzip@1.0.0", "", {}, "sha512-rcfALRIb1YewtnksfRIHGcIY93QnK8BIQ/2c9yDYcG/Y6+vRoJuTWBmmSEbyLLYtXm7q35pHOHbZFQBaLrhlWQ=="], - "import-fresh": ["import-fresh@3.3.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/import-fresh/-/import-fresh-3.3.1.tgz", { "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" } }, "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ=="], + "is-in-ci": ["is-in-ci@1.0.0", "", { "bin": { "is-in-ci": "cli.js" } }, "sha512-eUuAjybVTHMYWm/U+vBO1sY/JOCgoPCXRxzdju0K+K0BiGW0SChEL1MLC0PoCIR1OlPo5YAp8HuQoUlsWEICwg=="], - "import-from": ["import-from@3.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/import-from/-/import-from-3.0.0.tgz", { "dependencies": { "resolve-from": "^5.0.0" } }, "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ=="], + "is-inside-container": ["is-inside-container@1.0.0", "", { "dependencies": { "is-docker": "^3.0.0" }, "bin": { "is-inside-container": "cli.js" } }, "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA=="], - "import-local": ["import-local@3.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/import-local/-/import-local-3.2.0.tgz", { "dependencies": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" }, "bin": { "import-local-fixture": "fixtures/cli.js" } }, "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA=="], + "is-interactive": ["is-interactive@1.0.0", "", {}, "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w=="], - "imurmurhash": ["imurmurhash@0.1.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/imurmurhash/-/imurmurhash-0.1.4.tgz", {}, "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="], + "is-map": ["is-map@2.0.3", "", {}, "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw=="], - "indent-string": ["indent-string@5.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/indent-string/-/indent-string-5.0.0.tgz", {}, "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg=="], + "is-module": ["is-module@1.0.0", "", {}, "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g=="], - "inflight": ["inflight@1.0.6", "https://jfrog.booking.com:443/artifactory/api/npm/npm/inflight/-/inflight-1.0.6.tgz", { "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA=="], + "is-negative-zero": ["is-negative-zero@2.0.3", "", {}, "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw=="], - "inherits": ["inherits@2.0.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/inherits/-/inherits-2.0.4.tgz", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="], + "is-number": ["is-number@7.0.0", "", {}, "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="], - "ini": ["ini@1.3.8", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ini/-/ini-1.3.8.tgz", {}, "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="], + "is-number-object": ["is-number-object@1.1.1", "", { "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" } }, "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw=="], - "ink": ["ink@5.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ink/-/ink-5.1.0.tgz", { "dependencies": { "@alcalzone/ansi-tokenize": "^0.1.3", "ansi-escapes": "^7.0.0", "ansi-styles": "^6.2.1", "auto-bind": "^5.0.1", "chalk": "^5.3.0", "cli-boxes": "^3.0.0", "cli-cursor": "^4.0.0", "cli-truncate": "^4.0.0", "code-excerpt": "^4.0.0", "es-toolkit": "^1.22.0", "indent-string": "^5.0.0", "is-in-ci": "^1.0.0", "patch-console": "^2.0.0", "react-reconciler": "^0.29.0", "scheduler": "^0.23.0", "signal-exit": "^3.0.7", "slice-ansi": "^7.1.0", "stack-utils": "^2.0.6", "string-width": "^7.2.0", "type-fest": "^4.27.0", "widest-line": "^5.0.0", "wrap-ansi": "^9.0.0", "ws": "^8.18.0", "yoga-wasm-web": "~0.3.3" }, "peerDependencies": { "@types/react": ">=18.0.0", "react": ">=18.0.0", "react-devtools-core": "^4.19.1" }, "optionalPeers": ["@types/react", "react-devtools-core"] }, "sha512-3vIO+CU4uSg167/dZrg4wHy75llUINYXxN4OsdaCkE40q4zyOTPwNc2VEpLnnWsIvIQeo6x6lilAhuaSt+rIsA=="], + "is-plain-obj": ["is-plain-obj@1.1.0", "", {}, "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg=="], - "ink-select-input": ["ink-select-input@6.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ink-select-input/-/ink-select-input-6.2.0.tgz", { "dependencies": { "figures": "^6.1.0", "to-rotated": "^1.0.0" }, "peerDependencies": { "ink": ">=5.0.0", "react": ">=18.0.0" } }, "sha512-304fZXxkpYxJ9si5lxRCaX01GNlmPBgOZumXXRnPYbHW/iI31cgQynqk2tRypGLOF1cMIwPUzL2LSm6q4I5rQQ=="], + "is-plain-object": ["is-plain-object@3.0.1", "", {}, "sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g=="], - "ink-spinner": ["ink-spinner@5.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ink-spinner/-/ink-spinner-5.0.0.tgz", { "dependencies": { "cli-spinners": "^2.7.0" }, "peerDependencies": { "ink": ">=4.0.0", "react": ">=18.0.0" } }, "sha512-EYEasbEjkqLGyPOUc8hBJZNuC5GvXGMLu0w5gdTNskPc7Izc5vO3tdQEYnzvshucyGCBXc86ig0ujXPMWaQCdA=="], + "is-potential-custom-element-name": ["is-potential-custom-element-name@1.0.1", "", {}, "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ=="], - "ink-text-input": ["ink-text-input@6.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ink-text-input/-/ink-text-input-6.0.0.tgz", { "dependencies": { "chalk": "^5.3.0", "type-fest": "^4.18.2" }, "peerDependencies": { "ink": ">=5", "react": ">=18" } }, "sha512-Fw64n7Yha5deb1rHY137zHTAbSTNelUKuB5Kkk2HACXEtwIHBCf9OH2tP/LQ9fRYTl1F0dZgbW0zPnZk6FA9Lw=="], + "is-promise": ["is-promise@2.2.2", "", {}, "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ=="], - "inspect-with-kind": ["inspect-with-kind@1.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/inspect-with-kind/-/inspect-with-kind-1.0.5.tgz", { "dependencies": { "kind-of": "^6.0.2" } }, "sha512-MAQUJuIo7Xqk8EVNP+6d3CKq9c80hi4tjIbIAT6lmGW9W6WzlHiu9PS8uSuUYU+Do+j1baiFp3H25XEVxDIG2g=="], + "is-reference": ["is-reference@1.2.1", "", { "dependencies": { "@types/estree": "*" } }, "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ=="], - "internal-slot": ["internal-slot@1.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/internal-slot/-/internal-slot-1.1.0.tgz", { "dependencies": { "es-errors": "^1.3.0", "hasown": "^2.0.2", "side-channel": "^1.1.0" } }, "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw=="], + "is-regex": ["is-regex@1.2.1", "", { "dependencies": { "call-bound": "^1.0.2", "gopd": "^1.2.0", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g=="], - "ip-address": ["ip-address@10.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ip-address/-/ip-address-10.0.1.tgz", {}, "sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA=="], + "is-set": ["is-set@2.0.3", "", {}, "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg=="], - "ip-regex": ["ip-regex@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ip-regex/-/ip-regex-4.3.0.tgz", {}, "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q=="], + "is-shared-array-buffer": ["is-shared-array-buffer@1.0.4", "", { "dependencies": { "call-bound": "^1.0.3" } }, "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A=="], - "ipaddr.js": ["ipaddr.js@1.9.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ipaddr.js/-/ipaddr.js-1.9.1.tgz", {}, "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="], + "is-stream": ["is-stream@2.0.1", "", {}, "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="], - "is-array-buffer": ["is-array-buffer@3.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-array-buffer/-/is-array-buffer-3.0.5.tgz", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "get-intrinsic": "^1.2.6" } }, "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A=="], + "is-string": ["is-string@1.1.1", "", { "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" } }, "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA=="], - "is-arrayish": ["is-arrayish@0.2.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-arrayish/-/is-arrayish-0.2.1.tgz", {}, "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="], + "is-symbol": ["is-symbol@1.1.1", "", { "dependencies": { "call-bound": "^1.0.2", "has-symbols": "^1.1.0", "safe-regex-test": "^1.1.0" } }, "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w=="], - "is-async-function": ["is-async-function@2.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-async-function/-/is-async-function-2.1.1.tgz", { "dependencies": { "async-function": "^1.0.0", "call-bound": "^1.0.3", "get-proto": "^1.0.1", "has-tostringtag": "^1.0.2", "safe-regex-test": "^1.1.0" } }, "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ=="], + "is-typed-array": ["is-typed-array@1.1.15", "", { "dependencies": { "which-typed-array": "^1.1.16" } }, "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ=="], - "is-bigint": ["is-bigint@1.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-bigint/-/is-bigint-1.1.0.tgz", { "dependencies": { "has-bigints": "^1.0.2" } }, "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ=="], + "is-typedarray": ["is-typedarray@1.0.0", "", {}, "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="], - "is-boolean-object": ["is-boolean-object@1.2.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-boolean-object/-/is-boolean-object-1.2.2.tgz", { "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" } }, "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A=="], + "is-unicode-supported": ["is-unicode-supported@2.1.0", "", {}, "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ=="], - "is-bun-module": ["is-bun-module@2.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-bun-module/-/is-bun-module-2.0.0.tgz", { "dependencies": { "semver": "^7.7.1" } }, "sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ=="], + "is-url": ["is-url@1.2.4", "", {}, "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww=="], - "is-callable": ["is-callable@1.2.7", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-callable/-/is-callable-1.2.7.tgz", {}, "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA=="], + "is-weakmap": ["is-weakmap@2.0.2", "", {}, "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w=="], - "is-core-module": ["is-core-module@2.16.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-core-module/-/is-core-module-2.16.1.tgz", { "dependencies": { "hasown": "^2.0.2" } }, "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w=="], + "is-weakref": ["is-weakref@1.1.1", "", { "dependencies": { "call-bound": "^1.0.3" } }, "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew=="], - "is-data-view": ["is-data-view@1.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-data-view/-/is-data-view-1.0.2.tgz", { "dependencies": { "call-bound": "^1.0.2", "get-intrinsic": "^1.2.6", "is-typed-array": "^1.1.13" } }, "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw=="], + "is-weakset": ["is-weakset@2.0.4", "", { "dependencies": { "call-bound": "^1.0.3", "get-intrinsic": "^1.2.6" } }, "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ=="], - "is-date-object": ["is-date-object@1.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-date-object/-/is-date-object-1.1.0.tgz", { "dependencies": { "call-bound": "^1.0.2", "has-tostringtag": "^1.0.2" } }, "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg=="], + "is-wsl": ["is-wsl@2.2.0", "", { "dependencies": { "is-docker": "^2.0.0" } }, "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww=="], - "is-deflate": ["is-deflate@1.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-deflate/-/is-deflate-1.0.0.tgz", {}, "sha512-YDoFpuZWu1VRXlsnlYMzKyVRITXj7Ej/V9gXQ2/pAe7X1J7M/RNOqaIYi6qUn+B7nGyB9pDXrv02dsB58d2ZAQ=="], + "is2": ["is2@2.0.9", "", { "dependencies": { "deep-is": "^0.1.3", "ip-regex": "^4.1.0", "is-url": "^1.2.4" } }, "sha512-rZkHeBn9Zzq52sd9IUIV3a5mfwBY+o2HePMh0wkGBM4z4qjvy2GwVxQ6nNXSfw6MmVP6gf1QIlWjiOavhM3x5g=="], - "is-docker": ["is-docker@2.2.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-docker/-/is-docker-2.2.1.tgz", { "bin": { "is-docker": "cli.js" } }, "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ=="], + "isarray": ["isarray@2.0.5", "", {}, "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="], - "is-extglob": ["is-extglob@2.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-extglob/-/is-extglob-2.1.1.tgz", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="], + "isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], - "is-finalizationregistry": ["is-finalizationregistry@1.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", { "dependencies": { "call-bound": "^1.0.3" } }, "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg=="], + "isstream": ["isstream@0.1.2", "", {}, "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g=="], - "is-fullwidth-code-point": ["is-fullwidth-code-point@3.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", {}, "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="], + "istanbul-lib-coverage": ["istanbul-lib-coverage@3.2.2", "", {}, "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg=="], - "is-generator-fn": ["is-generator-fn@2.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-generator-fn/-/is-generator-fn-2.1.0.tgz", {}, "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ=="], + "istanbul-lib-instrument": ["istanbul-lib-instrument@6.0.3", "", { "dependencies": { "@babel/core": "^7.23.9", "@babel/parser": "^7.23.9", "@istanbuljs/schema": "^0.1.3", "istanbul-lib-coverage": "^3.2.0", "semver": "^7.5.4" } }, "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q=="], - "is-generator-function": ["is-generator-function@1.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-generator-function/-/is-generator-function-1.1.2.tgz", { "dependencies": { "call-bound": "^1.0.4", "generator-function": "^2.0.0", "get-proto": "^1.0.1", "has-tostringtag": "^1.0.2", "safe-regex-test": "^1.1.0" } }, "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA=="], + "istanbul-lib-report": ["istanbul-lib-report@3.0.1", "", { "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^4.0.0", "supports-color": "^7.1.0" } }, "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw=="], - "is-glob": ["is-glob@4.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-glob/-/is-glob-4.0.3.tgz", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="], + "istanbul-lib-source-maps": ["istanbul-lib-source-maps@5.0.6", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.23", "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0" } }, "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A=="], - "is-gzip": ["is-gzip@1.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-gzip/-/is-gzip-1.0.0.tgz", {}, "sha512-rcfALRIb1YewtnksfRIHGcIY93QnK8BIQ/2c9yDYcG/Y6+vRoJuTWBmmSEbyLLYtXm7q35pHOHbZFQBaLrhlWQ=="], + "istanbul-reports": ["istanbul-reports@3.2.0", "", { "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" } }, "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA=="], - "is-in-ci": ["is-in-ci@1.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-in-ci/-/is-in-ci-1.0.0.tgz", { "bin": { "is-in-ci": "cli.js" } }, "sha512-eUuAjybVTHMYWm/U+vBO1sY/JOCgoPCXRxzdju0K+K0BiGW0SChEL1MLC0PoCIR1OlPo5YAp8HuQoUlsWEICwg=="], + "jackspeak": ["jackspeak@3.4.3", "", { "dependencies": { "@isaacs/cliui": "^8.0.2" }, "optionalDependencies": { "@pkgjs/parseargs": "^0.11.0" } }, "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw=="], - "is-inside-container": ["is-inside-container@1.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-inside-container/-/is-inside-container-1.0.0.tgz", { "dependencies": { "is-docker": "^3.0.0" }, "bin": { "is-inside-container": "cli.js" } }, "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA=="], + "jake": ["jake@10.9.4", "", { "dependencies": { "async": "^3.2.6", "filelist": "^1.0.4", "picocolors": "^1.1.1" }, "bin": { "jake": "bin/cli.js" } }, "sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA=="], - "is-interactive": ["is-interactive@1.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-interactive/-/is-interactive-1.0.0.tgz", {}, "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w=="], + "jest": ["jest@30.0.5", "", { "dependencies": { "@jest/core": "30.0.5", "@jest/types": "30.0.5", "import-local": "^3.2.0", "jest-cli": "30.0.5" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "optionalPeers": ["node-notifier"], "bin": "./bin/jest.js" }, "sha512-y2mfcJywuTUkvLm2Lp1/pFX8kTgMO5yyQGq/Sk/n2mN7XWYp4JsCZ/QXW34M8YScgk8bPZlREH04f6blPnoHnQ=="], - "is-map": ["is-map@2.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-map/-/is-map-2.0.3.tgz", {}, "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw=="], + "jest-changed-files": ["jest-changed-files@30.0.5", "", { "dependencies": { "execa": "^5.1.1", "jest-util": "30.0.5", "p-limit": "^3.1.0" } }, "sha512-bGl2Ntdx0eAwXuGpdLdVYVr5YQHnSZlQ0y9HVDu565lCUAe9sj6JOtBbMmBBikGIegne9piDDIOeiLVoqTkz4A=="], - "is-module": ["is-module@1.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-module/-/is-module-1.0.0.tgz", {}, "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g=="], + "jest-circus": ["jest-circus@30.2.0", "", { "dependencies": { "@jest/environment": "30.2.0", "@jest/expect": "30.2.0", "@jest/test-result": "30.2.0", "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "co": "^4.6.0", "dedent": "^1.6.0", "is-generator-fn": "^2.1.0", "jest-each": "30.2.0", "jest-matcher-utils": "30.2.0", "jest-message-util": "30.2.0", "jest-runtime": "30.2.0", "jest-snapshot": "30.2.0", "jest-util": "30.2.0", "p-limit": "^3.1.0", "pretty-format": "30.2.0", "pure-rand": "^7.0.0", "slash": "^3.0.0", "stack-utils": "^2.0.6" } }, "sha512-Fh0096NC3ZkFx05EP2OXCxJAREVxj1BcW/i6EWqqymcgYKWjyyDpral3fMxVcHXg6oZM7iULer9wGRFvfpl+Tg=="], - "is-negative-zero": ["is-negative-zero@2.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-negative-zero/-/is-negative-zero-2.0.3.tgz", {}, "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw=="], + "jest-cli": ["jest-cli@30.0.5", "", { "dependencies": { "@jest/core": "30.0.5", "@jest/test-result": "30.0.5", "@jest/types": "30.0.5", "chalk": "^4.1.2", "exit-x": "^0.2.2", "import-local": "^3.2.0", "jest-config": "30.0.5", "jest-util": "30.0.5", "jest-validate": "30.0.5", "yargs": "^17.7.2" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "optionalPeers": ["node-notifier"], "bin": { "jest": "./bin/jest.js" } }, "sha512-Sa45PGMkBZzF94HMrlX4kUyPOwUpdZasaliKN3mifvDmkhLYqLLg8HQTzn6gq7vJGahFYMQjXgyJWfYImKZzOw=="], - "is-number": ["is-number@7.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-number/-/is-number-7.0.0.tgz", {}, "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="], + "jest-config": ["jest-config@30.2.0", "", { "dependencies": { "@babel/core": "^7.27.4", "@jest/get-type": "30.1.0", "@jest/pattern": "30.0.1", "@jest/test-sequencer": "30.2.0", "@jest/types": "30.2.0", "babel-jest": "30.2.0", "chalk": "^4.1.2", "ci-info": "^4.2.0", "deepmerge": "^4.3.1", "glob": "^10.3.10", "graceful-fs": "^4.2.11", "jest-circus": "30.2.0", "jest-docblock": "30.2.0", "jest-environment-node": "30.2.0", "jest-regex-util": "30.0.1", "jest-resolve": "30.2.0", "jest-runner": "30.2.0", "jest-util": "30.2.0", "jest-validate": "30.2.0", "micromatch": "^4.0.8", "parse-json": "^5.2.0", "pretty-format": "30.2.0", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, "peerDependencies": { "@types/node": "*", "esbuild-register": ">=3.4.0", "ts-node": ">=9.0.0" }, "optionalPeers": ["@types/node", "esbuild-register", "ts-node"] }, "sha512-g4WkyzFQVWHtu6uqGmQR4CQxz/CH3yDSlhzXMWzNjDx843gYjReZnMRanjRCq5XZFuQrGDxgUaiYWE8BRfVckA=="], - "is-number-object": ["is-number-object@1.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-number-object/-/is-number-object-1.1.1.tgz", { "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" } }, "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw=="], + "jest-diff": ["jest-diff@30.2.0", "", { "dependencies": { "@jest/diff-sequences": "30.0.1", "@jest/get-type": "30.1.0", "chalk": "^4.1.2", "pretty-format": "30.2.0" } }, "sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A=="], - "is-plain-obj": ["is-plain-obj@1.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-plain-obj/-/is-plain-obj-1.1.0.tgz", {}, "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg=="], + "jest-docblock": ["jest-docblock@30.2.0", "", { "dependencies": { "detect-newline": "^3.1.0" } }, "sha512-tR/FFgZKS1CXluOQzZvNH3+0z9jXr3ldGSD8bhyuxvlVUwbeLOGynkunvlTMxchC5urrKndYiwCFC0DLVjpOCA=="], - "is-plain-object": ["is-plain-object@3.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-plain-object/-/is-plain-object-3.0.1.tgz", {}, "sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g=="], + "jest-each": ["jest-each@30.2.0", "", { "dependencies": { "@jest/get-type": "30.1.0", "@jest/types": "30.2.0", "chalk": "^4.1.2", "jest-util": "30.2.0", "pretty-format": "30.2.0" } }, "sha512-lpWlJlM7bCUf1mfmuqTA8+j2lNURW9eNafOy99knBM01i5CQeY5UH1vZjgT9071nDJac1M4XsbyI44oNOdhlDQ=="], - "is-potential-custom-element-name": ["is-potential-custom-element-name@1.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", {}, "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ=="], + "jest-environment-jsdom": ["jest-environment-jsdom@30.0.5", "", { "dependencies": { "@jest/environment": "30.0.5", "@jest/environment-jsdom-abstract": "30.0.5", "@types/jsdom": "^21.1.7", "@types/node": "*", "jsdom": "^26.1.0" }, "peerDependencies": { "canvas": "^3.0.0" }, "optionalPeers": ["canvas"] }, "sha512-BmnDEoAH+jEjkPrvE9DTKS2r3jYSJWlN/r46h0/DBUxKrkgt2jAZ5Nj4wXLAcV1KWkRpcFqA5zri9SWzJZ1cCg=="], - "is-promise": ["is-promise@2.2.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-promise/-/is-promise-2.2.2.tgz", {}, "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ=="], + "jest-environment-node": ["jest-environment-node@30.2.0", "", { "dependencies": { "@jest/environment": "30.2.0", "@jest/fake-timers": "30.2.0", "@jest/types": "30.2.0", "@types/node": "*", "jest-mock": "30.2.0", "jest-util": "30.2.0", "jest-validate": "30.2.0" } }, "sha512-ElU8v92QJ9UrYsKrxDIKCxu6PfNj4Hdcktcn0JX12zqNdqWHB0N+hwOnnBBXvjLd2vApZtuLUGs1QSY+MsXoNA=="], - "is-reference": ["is-reference@1.2.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-reference/-/is-reference-1.2.1.tgz", { "dependencies": { "@types/estree": "*" } }, "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ=="], + "jest-haste-map": ["jest-haste-map@30.2.0", "", { "dependencies": { "@jest/types": "30.2.0", "@types/node": "*", "anymatch": "^3.1.3", "fb-watchman": "^2.0.2", "graceful-fs": "^4.2.11", "jest-regex-util": "30.0.1", "jest-util": "30.2.0", "jest-worker": "30.2.0", "micromatch": "^4.0.8", "walker": "^1.0.8" }, "optionalDependencies": { "fsevents": "^2.3.3" } }, "sha512-sQA/jCb9kNt+neM0anSj6eZhLZUIhQgwDt7cPGjumgLM4rXsfb9kpnlacmvZz3Q5tb80nS+oG/if+NBKrHC+Xw=="], - "is-regex": ["is-regex@1.2.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-regex/-/is-regex-1.2.1.tgz", { "dependencies": { "call-bound": "^1.0.2", "gopd": "^1.2.0", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g=="], + "jest-leak-detector": ["jest-leak-detector@30.2.0", "", { "dependencies": { "@jest/get-type": "30.1.0", "pretty-format": "30.2.0" } }, "sha512-M6jKAjyzjHG0SrQgwhgZGy9hFazcudwCNovY/9HPIicmNSBuockPSedAP9vlPK6ONFJ1zfyH/M2/YYJxOz5cdQ=="], - "is-set": ["is-set@2.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-set/-/is-set-2.0.3.tgz", {}, "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg=="], + "jest-matcher-utils": ["jest-matcher-utils@30.2.0", "", { "dependencies": { "@jest/get-type": "30.1.0", "chalk": "^4.1.2", "jest-diff": "30.2.0", "pretty-format": "30.2.0" } }, "sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg=="], - "is-shared-array-buffer": ["is-shared-array-buffer@1.0.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", { "dependencies": { "call-bound": "^1.0.3" } }, "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A=="], + "jest-message-util": ["jest-message-util@30.2.0", "", { "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.2.0", "@types/stack-utils": "^2.0.3", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "micromatch": "^4.0.8", "pretty-format": "30.2.0", "slash": "^3.0.0", "stack-utils": "^2.0.6" } }, "sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw=="], - "is-stream": ["is-stream@2.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-stream/-/is-stream-2.0.1.tgz", {}, "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="], + "jest-mock": ["jest-mock@30.2.0", "", { "dependencies": { "@jest/types": "30.2.0", "@types/node": "*", "jest-util": "30.2.0" } }, "sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw=="], - "is-string": ["is-string@1.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-string/-/is-string-1.1.1.tgz", { "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" } }, "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA=="], + "jest-pnp-resolver": ["jest-pnp-resolver@1.2.3", "", { "peerDependencies": { "jest-resolve": "*" }, "optionalPeers": ["jest-resolve"] }, "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w=="], - "is-symbol": ["is-symbol@1.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-symbol/-/is-symbol-1.1.1.tgz", { "dependencies": { "call-bound": "^1.0.2", "has-symbols": "^1.1.0", "safe-regex-test": "^1.1.0" } }, "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w=="], + "jest-regex-util": ["jest-regex-util@30.0.1", "", {}, "sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA=="], - "is-typed-array": ["is-typed-array@1.1.15", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-typed-array/-/is-typed-array-1.1.15.tgz", { "dependencies": { "which-typed-array": "^1.1.16" } }, "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ=="], + "jest-resolve": ["jest-resolve@30.2.0", "", { "dependencies": { "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "jest-haste-map": "30.2.0", "jest-pnp-resolver": "^1.2.3", "jest-util": "30.2.0", "jest-validate": "30.2.0", "slash": "^3.0.0", "unrs-resolver": "^1.7.11" } }, "sha512-TCrHSxPlx3tBY3hWNtRQKbtgLhsXa1WmbJEqBlTBrGafd5fiQFByy2GNCEoGR+Tns8d15GaL9cxEzKOO3GEb2A=="], - "is-typedarray": ["is-typedarray@1.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-typedarray/-/is-typedarray-1.0.0.tgz", {}, "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="], + "jest-resolve-dependencies": ["jest-resolve-dependencies@30.0.5", "", { "dependencies": { "jest-regex-util": "30.0.1", "jest-snapshot": "30.0.5" } }, "sha512-/xMvBR4MpwkrHW4ikZIWRttBBRZgWK4d6xt3xW1iRDSKt4tXzYkMkyPfBnSCgv96cpkrctfXs6gexeqMYqdEpw=="], - "is-unicode-supported": ["is-unicode-supported@2.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", {}, "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ=="], + "jest-runner": ["jest-runner@30.2.0", "", { "dependencies": { "@jest/console": "30.2.0", "@jest/environment": "30.2.0", "@jest/test-result": "30.2.0", "@jest/transform": "30.2.0", "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "emittery": "^0.13.1", "exit-x": "^0.2.2", "graceful-fs": "^4.2.11", "jest-docblock": "30.2.0", "jest-environment-node": "30.2.0", "jest-haste-map": "30.2.0", "jest-leak-detector": "30.2.0", "jest-message-util": "30.2.0", "jest-resolve": "30.2.0", "jest-runtime": "30.2.0", "jest-util": "30.2.0", "jest-watcher": "30.2.0", "jest-worker": "30.2.0", "p-limit": "^3.1.0", "source-map-support": "0.5.13" } }, "sha512-PqvZ2B2XEyPEbclp+gV6KO/F1FIFSbIwewRgmROCMBo/aZ6J1w8Qypoj2pEOcg3G2HzLlaP6VUtvwCI8dM3oqQ=="], - "is-url": ["is-url@1.2.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-url/-/is-url-1.2.4.tgz", {}, "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww=="], + "jest-runtime": ["jest-runtime@30.0.5", "", { "dependencies": { "@jest/environment": "30.0.5", "@jest/fake-timers": "30.0.5", "@jest/globals": "30.0.5", "@jest/source-map": "30.0.1", "@jest/test-result": "30.0.5", "@jest/transform": "30.0.5", "@jest/types": "30.0.5", "@types/node": "*", "chalk": "^4.1.2", "cjs-module-lexer": "^2.1.0", "collect-v8-coverage": "^1.0.2", "glob": "^10.3.10", "graceful-fs": "^4.2.11", "jest-haste-map": "30.0.5", "jest-message-util": "30.0.5", "jest-mock": "30.0.5", "jest-regex-util": "30.0.1", "jest-resolve": "30.0.5", "jest-snapshot": "30.0.5", "jest-util": "30.0.5", "slash": "^3.0.0", "strip-bom": "^4.0.0" } }, "sha512-7oySNDkqpe4xpX5PPiJTe5vEa+Ak/NnNz2bGYZrA1ftG3RL3EFlHaUkA1Cjx+R8IhK0Vg43RML5mJedGTPNz3A=="], - "is-weakmap": ["is-weakmap@2.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-weakmap/-/is-weakmap-2.0.2.tgz", {}, "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w=="], + "jest-snapshot": ["jest-snapshot@30.0.5", "", { "dependencies": { "@babel/core": "^7.27.4", "@babel/generator": "^7.27.5", "@babel/plugin-syntax-jsx": "^7.27.1", "@babel/plugin-syntax-typescript": "^7.27.1", "@babel/types": "^7.27.3", "@jest/expect-utils": "30.0.5", "@jest/get-type": "30.0.1", "@jest/snapshot-utils": "30.0.5", "@jest/transform": "30.0.5", "@jest/types": "30.0.5", "babel-preset-current-node-syntax": "^1.1.0", "chalk": "^4.1.2", "expect": "30.0.5", "graceful-fs": "^4.2.11", "jest-diff": "30.0.5", "jest-matcher-utils": "30.0.5", "jest-message-util": "30.0.5", "jest-util": "30.0.5", "pretty-format": "30.0.5", "semver": "^7.7.2", "synckit": "^0.11.8" } }, "sha512-T00dWU/Ek3LqTp4+DcW6PraVxjk28WY5Ua/s+3zUKSERZSNyxTqhDXCWKG5p2HAJ+crVQ3WJ2P9YVHpj1tkW+g=="], - "is-weakref": ["is-weakref@1.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-weakref/-/is-weakref-1.1.1.tgz", { "dependencies": { "call-bound": "^1.0.3" } }, "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew=="], + "jest-util": ["jest-util@30.0.5", "", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", "picomatch": "^4.0.2" } }, "sha512-pvyPWssDZR0FlfMxCBoc0tvM8iUEskaRFALUtGQYzVEAqisAztmy+R8LnU14KT4XA0H/a5HMVTXat1jLne010g=="], - "is-weakset": ["is-weakset@2.0.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-weakset/-/is-weakset-2.0.4.tgz", { "dependencies": { "call-bound": "^1.0.3", "get-intrinsic": "^1.2.6" } }, "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ=="], + "jest-validate": ["jest-validate@30.2.0", "", { "dependencies": { "@jest/get-type": "30.1.0", "@jest/types": "30.2.0", "camelcase": "^6.3.0", "chalk": "^4.1.2", "leven": "^3.1.0", "pretty-format": "30.2.0" } }, "sha512-FBGWi7dP2hpdi8nBoWxSsLvBFewKAg0+uSQwBaof4Y4DPgBabXgpSYC5/lR7VmnIlSpASmCi/ntRWPbv7089Pw=="], - "is-wsl": ["is-wsl@2.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-wsl/-/is-wsl-2.2.0.tgz", { "dependencies": { "is-docker": "^2.0.0" } }, "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww=="], + "jest-watcher": ["jest-watcher@30.0.5", "", { "dependencies": { "@jest/test-result": "30.0.5", "@jest/types": "30.0.5", "@types/node": "*", "ansi-escapes": "^4.3.2", "chalk": "^4.1.2", "emittery": "^0.13.1", "jest-util": "30.0.5", "string-length": "^4.0.2" } }, "sha512-z9slj/0vOwBDBjN3L4z4ZYaA+pG56d6p3kTUhFRYGvXbXMWhXmb/FIxREZCD06DYUwDKKnj2T80+Pb71CQ0KEg=="], - "is2": ["is2@2.0.9", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is2/-/is2-2.0.9.tgz", { "dependencies": { "deep-is": "^0.1.3", "ip-regex": "^4.1.0", "is-url": "^1.2.4" } }, "sha512-rZkHeBn9Zzq52sd9IUIV3a5mfwBY+o2HePMh0wkGBM4z4qjvy2GwVxQ6nNXSfw6MmVP6gf1QIlWjiOavhM3x5g=="], + "jest-worker": ["jest-worker@30.2.0", "", { "dependencies": { "@types/node": "*", "@ungap/structured-clone": "^1.3.0", "jest-util": "30.2.0", "merge-stream": "^2.0.0", "supports-color": "^8.1.1" } }, "sha512-0Q4Uk8WF7BUwqXHuAjc23vmopWJw5WH7w2tqBoUOZpOjW/ZnR44GXXd1r82RvnmI2GZge3ivrYXk/BE2+VtW2g=="], - "isarray": ["isarray@2.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/isarray/-/isarray-2.0.5.tgz", {}, "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="], + "jiti": ["jiti@2.4.2", "", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A=="], - "isexe": ["isexe@2.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/isexe/-/isexe-2.0.0.tgz", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], + "jose": ["jose@6.1.3", "", {}, "sha512-0TpaTfihd4QMNwrz/ob2Bp7X04yuxJkjRGi4aKmOqwhov54i6u79oCv7T+C7lo70MKH6BesI3vscD1yb/yzKXQ=="], - "isstream": ["isstream@0.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/isstream/-/isstream-0.1.2.tgz", {}, "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g=="], + "joycon": ["joycon@3.1.1", "", {}, "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw=="], - "istanbul-lib-coverage": ["istanbul-lib-coverage@3.2.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", {}, "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg=="], + "js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], - "istanbul-lib-instrument": ["istanbul-lib-instrument@6.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", { "dependencies": { "@babel/core": "^7.23.9", "@babel/parser": "^7.23.9", "@istanbuljs/schema": "^0.1.3", "istanbul-lib-coverage": "^3.2.0", "semver": "^7.5.4" } }, "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q=="], + "js-yaml": ["js-yaml@4.1.1", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA=="], - "istanbul-lib-report": ["istanbul-lib-report@3.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", { "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^4.0.0", "supports-color": "^7.1.0" } }, "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw=="], + "jsbn": ["jsbn@0.1.1", "", {}, "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg=="], - "istanbul-lib-source-maps": ["istanbul-lib-source-maps@5.0.6", "https://jfrog.booking.com:443/artifactory/api/npm/npm/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.23", "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0" } }, "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A=="], + "jsdom": ["jsdom@26.1.0", "", { "dependencies": { "cssstyle": "^4.2.1", "data-urls": "^5.0.0", "decimal.js": "^10.5.0", "html-encoding-sniffer": "^4.0.0", "http-proxy-agent": "^7.0.2", "https-proxy-agent": "^7.0.6", "is-potential-custom-element-name": "^1.0.1", "nwsapi": "^2.2.16", "parse5": "^7.2.1", "rrweb-cssom": "^0.8.0", "saxes": "^6.0.0", "symbol-tree": "^3.2.4", "tough-cookie": "^5.1.1", "w3c-xmlserializer": "^5.0.0", "webidl-conversions": "^7.0.0", "whatwg-encoding": "^3.1.1", "whatwg-mimetype": "^4.0.0", "whatwg-url": "^14.1.1", "ws": "^8.18.0", "xml-name-validator": "^5.0.0" }, "peerDependencies": { "canvas": "^3.0.0" }, "optionalPeers": ["canvas"] }, "sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg=="], - "istanbul-reports": ["istanbul-reports@3.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/istanbul-reports/-/istanbul-reports-3.2.0.tgz", { "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" } }, "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA=="], + "jsesc": ["jsesc@3.1.0", "", { "bin": { "jsesc": "bin/jsesc" } }, "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA=="], - "jackspeak": ["jackspeak@3.4.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jackspeak/-/jackspeak-3.4.3.tgz", { "dependencies": { "@isaacs/cliui": "^8.0.2" }, "optionalDependencies": { "@pkgjs/parseargs": "^0.11.0" } }, "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw=="], + "json-buffer": ["json-buffer@3.0.1", "", {}, "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="], - "jake": ["jake@10.9.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jake/-/jake-10.9.4.tgz", { "dependencies": { "async": "^3.2.6", "filelist": "^1.0.4", "picocolors": "^1.1.1" }, "bin": { "jake": "bin/cli.js" } }, "sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA=="], + "json-parse-even-better-errors": ["json-parse-even-better-errors@2.3.1", "", {}, "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="], - "jest": ["jest@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest/-/jest-30.0.5.tgz", { "dependencies": { "@jest/core": "30.0.5", "@jest/types": "30.0.5", "import-local": "^3.2.0", "jest-cli": "30.0.5" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "optionalPeers": ["node-notifier"], "bin": "./bin/jest.js" }, "sha512-y2mfcJywuTUkvLm2Lp1/pFX8kTgMO5yyQGq/Sk/n2mN7XWYp4JsCZ/QXW34M8YScgk8bPZlREH04f6blPnoHnQ=="], + "json-schema": ["json-schema@0.4.0", "", {}, "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA=="], - "jest-changed-files": ["jest-changed-files@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-changed-files/-/jest-changed-files-30.0.5.tgz", { "dependencies": { "execa": "^5.1.1", "jest-util": "30.0.5", "p-limit": "^3.1.0" } }, "sha512-bGl2Ntdx0eAwXuGpdLdVYVr5YQHnSZlQ0y9HVDu565lCUAe9sj6JOtBbMmBBikGIegne9piDDIOeiLVoqTkz4A=="], + "json-schema-traverse": ["json-schema-traverse@1.0.0", "", {}, "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="], - "jest-circus": ["jest-circus@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-circus/-/jest-circus-30.2.0.tgz", { "dependencies": { "@jest/environment": "30.2.0", "@jest/expect": "30.2.0", "@jest/test-result": "30.2.0", "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "co": "^4.6.0", "dedent": "^1.6.0", "is-generator-fn": "^2.1.0", "jest-each": "30.2.0", "jest-matcher-utils": "30.2.0", "jest-message-util": "30.2.0", "jest-runtime": "30.2.0", "jest-snapshot": "30.2.0", "jest-util": "30.2.0", "p-limit": "^3.1.0", "pretty-format": "30.2.0", "pure-rand": "^7.0.0", "slash": "^3.0.0", "stack-utils": "^2.0.6" } }, "sha512-Fh0096NC3ZkFx05EP2OXCxJAREVxj1BcW/i6EWqqymcgYKWjyyDpral3fMxVcHXg6oZM7iULer9wGRFvfpl+Tg=="], + "json-stable-stringify-without-jsonify": ["json-stable-stringify-without-jsonify@1.0.1", "", {}, "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="], - "jest-cli": ["jest-cli@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-cli/-/jest-cli-30.0.5.tgz", { "dependencies": { "@jest/core": "30.0.5", "@jest/test-result": "30.0.5", "@jest/types": "30.0.5", "chalk": "^4.1.2", "exit-x": "^0.2.2", "import-local": "^3.2.0", "jest-config": "30.0.5", "jest-util": "30.0.5", "jest-validate": "30.0.5", "yargs": "^17.7.2" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "optionalPeers": ["node-notifier"], "bin": { "jest": "./bin/jest.js" } }, "sha512-Sa45PGMkBZzF94HMrlX4kUyPOwUpdZasaliKN3mifvDmkhLYqLLg8HQTzn6gq7vJGahFYMQjXgyJWfYImKZzOw=="], + "json-stringify-safe": ["json-stringify-safe@5.0.1", "", {}, "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="], - "jest-config": ["jest-config@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-config/-/jest-config-30.2.0.tgz", { "dependencies": { "@babel/core": "^7.27.4", "@jest/get-type": "30.1.0", "@jest/pattern": "30.0.1", "@jest/test-sequencer": "30.2.0", "@jest/types": "30.2.0", "babel-jest": "30.2.0", "chalk": "^4.1.2", "ci-info": "^4.2.0", "deepmerge": "^4.3.1", "glob": "^10.3.10", "graceful-fs": "^4.2.11", "jest-circus": "30.2.0", "jest-docblock": "30.2.0", "jest-environment-node": "30.2.0", "jest-regex-util": "30.0.1", "jest-resolve": "30.2.0", "jest-runner": "30.2.0", "jest-util": "30.2.0", "jest-validate": "30.2.0", "micromatch": "^4.0.8", "parse-json": "^5.2.0", "pretty-format": "30.2.0", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, "peerDependencies": { "@types/node": "*", "esbuild-register": ">=3.4.0", "ts-node": ">=9.0.0" }, "optionalPeers": ["@types/node", "esbuild-register", "ts-node"] }, "sha512-g4WkyzFQVWHtu6uqGmQR4CQxz/CH3yDSlhzXMWzNjDx843gYjReZnMRanjRCq5XZFuQrGDxgUaiYWE8BRfVckA=="], + "json5": ["json5@2.2.3", "", { "bin": { "json5": "lib/cli.js" } }, "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="], - "jest-diff": ["jest-diff@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-diff/-/jest-diff-30.2.0.tgz", { "dependencies": { "@jest/diff-sequences": "30.0.1", "@jest/get-type": "30.1.0", "chalk": "^4.1.2", "pretty-format": "30.2.0" } }, "sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A=="], + "jsonc-eslint-parser": ["jsonc-eslint-parser@2.4.2", "", { "dependencies": { "acorn": "^8.5.0", "eslint-visitor-keys": "^3.0.0", "espree": "^9.0.0", "semver": "^7.3.5" } }, "sha512-1e4qoRgnn448pRuMvKGsFFymUCquZV0mpGgOyIKNgD3JVDTsVJyRBGH/Fm0tBb8WsWGgmB1mDe6/yJMQM37DUA=="], - "jest-docblock": ["jest-docblock@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-docblock/-/jest-docblock-30.2.0.tgz", { "dependencies": { "detect-newline": "^3.1.0" } }, "sha512-tR/FFgZKS1CXluOQzZvNH3+0z9jXr3ldGSD8bhyuxvlVUwbeLOGynkunvlTMxchC5urrKndYiwCFC0DLVjpOCA=="], + "jsonc-parser": ["jsonc-parser@3.2.0", "", {}, "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w=="], - "jest-each": ["jest-each@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-each/-/jest-each-30.2.0.tgz", { "dependencies": { "@jest/get-type": "30.1.0", "@jest/types": "30.2.0", "chalk": "^4.1.2", "jest-util": "30.2.0", "pretty-format": "30.2.0" } }, "sha512-lpWlJlM7bCUf1mfmuqTA8+j2lNURW9eNafOy99knBM01i5CQeY5UH1vZjgT9071nDJac1M4XsbyI44oNOdhlDQ=="], + "jsonfile": ["jsonfile@4.0.0", "", { "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg=="], - "jest-environment-jsdom": ["jest-environment-jsdom@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-environment-jsdom/-/jest-environment-jsdom-30.0.5.tgz", { "dependencies": { "@jest/environment": "30.0.5", "@jest/environment-jsdom-abstract": "30.0.5", "@types/jsdom": "^21.1.7", "@types/node": "*", "jsdom": "^26.1.0" }, "peerDependencies": { "canvas": "^3.0.0" }, "optionalPeers": ["canvas"] }, "sha512-BmnDEoAH+jEjkPrvE9DTKS2r3jYSJWlN/r46h0/DBUxKrkgt2jAZ5Nj4wXLAcV1KWkRpcFqA5zri9SWzJZ1cCg=="], + "jsonparse": ["jsonparse@1.3.1", "", {}, "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg=="], - "jest-environment-node": ["jest-environment-node@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-environment-node/-/jest-environment-node-30.2.0.tgz", { "dependencies": { "@jest/environment": "30.2.0", "@jest/fake-timers": "30.2.0", "@jest/types": "30.2.0", "@types/node": "*", "jest-mock": "30.2.0", "jest-util": "30.2.0", "jest-validate": "30.2.0" } }, "sha512-ElU8v92QJ9UrYsKrxDIKCxu6PfNj4Hdcktcn0JX12zqNdqWHB0N+hwOnnBBXvjLd2vApZtuLUGs1QSY+MsXoNA=="], + "jsonwebtoken": ["jsonwebtoken@9.0.2", "", { "dependencies": { "jws": "^3.2.2", "lodash.includes": "^4.3.0", "lodash.isboolean": "^3.0.3", "lodash.isinteger": "^4.0.4", "lodash.isnumber": "^3.0.3", "lodash.isplainobject": "^4.0.6", "lodash.isstring": "^4.0.1", "lodash.once": "^4.0.0", "ms": "^2.1.1", "semver": "^7.5.4" } }, "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ=="], - "jest-haste-map": ["jest-haste-map@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-haste-map/-/jest-haste-map-30.2.0.tgz", { "dependencies": { "@jest/types": "30.2.0", "@types/node": "*", "anymatch": "^3.1.3", "fb-watchman": "^2.0.2", "graceful-fs": "^4.2.11", "jest-regex-util": "30.0.1", "jest-util": "30.2.0", "jest-worker": "30.2.0", "micromatch": "^4.0.8", "walker": "^1.0.8" }, "optionalDependencies": { "fsevents": "^2.3.3" } }, "sha512-sQA/jCb9kNt+neM0anSj6eZhLZUIhQgwDt7cPGjumgLM4rXsfb9kpnlacmvZz3Q5tb80nS+oG/if+NBKrHC+Xw=="], + "jsprim": ["jsprim@2.0.2", "", { "dependencies": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", "json-schema": "0.4.0", "verror": "1.10.0" } }, "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ=="], - "jest-leak-detector": ["jest-leak-detector@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-leak-detector/-/jest-leak-detector-30.2.0.tgz", { "dependencies": { "@jest/get-type": "30.1.0", "pretty-format": "30.2.0" } }, "sha512-M6jKAjyzjHG0SrQgwhgZGy9hFazcudwCNovY/9HPIicmNSBuockPSedAP9vlPK6ONFJ1zfyH/M2/YYJxOz5cdQ=="], + "jwa": ["jwa@1.4.2", "", { "dependencies": { "buffer-equal-constant-time": "^1.0.1", "ecdsa-sig-formatter": "1.0.11", "safe-buffer": "^5.0.1" } }, "sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw=="], - "jest-matcher-utils": ["jest-matcher-utils@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-matcher-utils/-/jest-matcher-utils-30.2.0.tgz", { "dependencies": { "@jest/get-type": "30.1.0", "chalk": "^4.1.2", "jest-diff": "30.2.0", "pretty-format": "30.2.0" } }, "sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg=="], + "jws": ["jws@3.2.3", "", { "dependencies": { "jwa": "^1.4.2", "safe-buffer": "^5.0.1" } }, "sha512-byiJ0FLRdLdSVSReO/U4E7RoEyOCKnEnEPMjq3HxWtvzLsV08/i5RQKsFVNkCldrCaPr2vDNAOMsfs8T/Hze7g=="], - "jest-message-util": ["jest-message-util@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-message-util/-/jest-message-util-30.2.0.tgz", { "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.2.0", "@types/stack-utils": "^2.0.3", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "micromatch": "^4.0.8", "pretty-format": "30.2.0", "slash": "^3.0.0", "stack-utils": "^2.0.6" } }, "sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw=="], + "keyv": ["keyv@4.5.4", "", { "dependencies": { "json-buffer": "3.0.1" } }, "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw=="], - "jest-mock": ["jest-mock@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-mock/-/jest-mock-30.2.0.tgz", { "dependencies": { "@jest/types": "30.2.0", "@types/node": "*", "jest-util": "30.2.0" } }, "sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw=="], + "kill-port": ["kill-port@1.6.1", "", { "dependencies": { "get-them-args": "1.3.2", "shell-exec": "1.0.2" }, "bin": { "kill-port": "cli.js" } }, "sha512-un0Y55cOM7JKGaLnGja28T38tDDop0AQ8N0KlAdyh+B1nmMoX8AnNmqPNZbS3mUMgiST51DCVqmbFT1gNJpVNw=="], - "jest-pnp-resolver": ["jest-pnp-resolver@1.2.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", { "peerDependencies": { "jest-resolve": "*" }, "optionalPeers": ["jest-resolve"] }, "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w=="], + "kind-of": ["kind-of@6.0.3", "", {}, "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="], - "jest-regex-util": ["jest-regex-util@30.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-regex-util/-/jest-regex-util-30.0.1.tgz", {}, "sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA=="], + "knip": ["knip@5.85.0", "", { "dependencies": { "@nodelib/fs.walk": "^1.2.3", "fast-glob": "^3.3.3", "formatly": "^0.3.0", "jiti": "^2.6.0", "js-yaml": "^4.1.1", "minimist": "^1.2.8", "oxc-resolver": "^11.15.0", "picocolors": "^1.1.1", "picomatch": "^4.0.1", "smol-toml": "^1.5.2", "strip-json-comments": "5.0.3", "zod": "^4.1.11" }, "peerDependencies": { "@types/node": ">=18", "typescript": ">=5.0.4 <7" }, "bin": { "knip": "bin/knip.js", "knip-bun": "bin/knip-bun.js" } }, "sha512-V2kyON+DZiYdNNdY6GALseiNCwX7dYdpz9Pv85AUn69Gk0UKCts+glOKWfe5KmaMByRjM9q17Mzj/KinTVOyxg=="], - "jest-resolve": ["jest-resolve@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-resolve/-/jest-resolve-30.2.0.tgz", { "dependencies": { "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "jest-haste-map": "30.2.0", "jest-pnp-resolver": "^1.2.3", "jest-util": "30.2.0", "jest-validate": "30.2.0", "slash": "^3.0.0", "unrs-resolver": "^1.7.11" } }, "sha512-TCrHSxPlx3tBY3hWNtRQKbtgLhsXa1WmbJEqBlTBrGafd5fiQFByy2GNCEoGR+Tns8d15GaL9cxEzKOO3GEb2A=="], + "leven": ["leven@3.1.0", "", {}, "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A=="], - "jest-resolve-dependencies": ["jest-resolve-dependencies@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-resolve-dependencies/-/jest-resolve-dependencies-30.0.5.tgz", { "dependencies": { "jest-regex-util": "30.0.1", "jest-snapshot": "30.0.5" } }, "sha512-/xMvBR4MpwkrHW4ikZIWRttBBRZgWK4d6xt3xW1iRDSKt4tXzYkMkyPfBnSCgv96cpkrctfXs6gexeqMYqdEpw=="], + "levn": ["levn@0.4.1", "", { "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" } }, "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ=="], - "jest-runner": ["jest-runner@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-runner/-/jest-runner-30.2.0.tgz", { "dependencies": { "@jest/console": "30.2.0", "@jest/environment": "30.2.0", "@jest/test-result": "30.2.0", "@jest/transform": "30.2.0", "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "emittery": "^0.13.1", "exit-x": "^0.2.2", "graceful-fs": "^4.2.11", "jest-docblock": "30.2.0", "jest-environment-node": "30.2.0", "jest-haste-map": "30.2.0", "jest-leak-detector": "30.2.0", "jest-message-util": "30.2.0", "jest-resolve": "30.2.0", "jest-runtime": "30.2.0", "jest-util": "30.2.0", "jest-watcher": "30.2.0", "jest-worker": "30.2.0", "p-limit": "^3.1.0", "source-map-support": "0.5.13" } }, "sha512-PqvZ2B2XEyPEbclp+gV6KO/F1FIFSbIwewRgmROCMBo/aZ6J1w8Qypoj2pEOcg3G2HzLlaP6VUtvwCI8dM3oqQ=="], + "lilconfig": ["lilconfig@2.1.0", "", {}, "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ=="], - "jest-runtime": ["jest-runtime@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-runtime/-/jest-runtime-30.0.5.tgz", { "dependencies": { "@jest/environment": "30.0.5", "@jest/fake-timers": "30.0.5", "@jest/globals": "30.0.5", "@jest/source-map": "30.0.1", "@jest/test-result": "30.0.5", "@jest/transform": "30.0.5", "@jest/types": "30.0.5", "@types/node": "*", "chalk": "^4.1.2", "cjs-module-lexer": "^2.1.0", "collect-v8-coverage": "^1.0.2", "glob": "^10.3.10", "graceful-fs": "^4.2.11", "jest-haste-map": "30.0.5", "jest-message-util": "30.0.5", "jest-mock": "30.0.5", "jest-regex-util": "30.0.1", "jest-resolve": "30.0.5", "jest-snapshot": "30.0.5", "jest-util": "30.0.5", "slash": "^3.0.0", "strip-bom": "^4.0.0" } }, "sha512-7oySNDkqpe4xpX5PPiJTe5vEa+Ak/NnNz2bGYZrA1ftG3RL3EFlHaUkA1Cjx+R8IhK0Vg43RML5mJedGTPNz3A=="], + "lines-and-columns": ["lines-and-columns@2.0.3", "", {}, "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w=="], - "jest-snapshot": ["jest-snapshot@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-snapshot/-/jest-snapshot-30.0.5.tgz", { "dependencies": { "@babel/core": "^7.27.4", "@babel/generator": "^7.27.5", "@babel/plugin-syntax-jsx": "^7.27.1", "@babel/plugin-syntax-typescript": "^7.27.1", "@babel/types": "^7.27.3", "@jest/expect-utils": "30.0.5", "@jest/get-type": "30.0.1", "@jest/snapshot-utils": "30.0.5", "@jest/transform": "30.0.5", "@jest/types": "30.0.5", "babel-preset-current-node-syntax": "^1.1.0", "chalk": "^4.1.2", "expect": "30.0.5", "graceful-fs": "^4.2.11", "jest-diff": "30.0.5", "jest-matcher-utils": "30.0.5", "jest-message-util": "30.0.5", "jest-util": "30.0.5", "pretty-format": "30.0.5", "semver": "^7.7.2", "synckit": "^0.11.8" } }, "sha512-T00dWU/Ek3LqTp4+DcW6PraVxjk28WY5Ua/s+3zUKSERZSNyxTqhDXCWKG5p2HAJ+crVQ3WJ2P9YVHpj1tkW+g=="], + "loader-runner": ["loader-runner@4.3.1", "", {}, "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q=="], - "jest-util": ["jest-util@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-util/-/jest-util-30.0.5.tgz", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", "picomatch": "^4.0.2" } }, "sha512-pvyPWssDZR0FlfMxCBoc0tvM8iUEskaRFALUtGQYzVEAqisAztmy+R8LnU14KT4XA0H/a5HMVTXat1jLne010g=="], + "loader-utils": ["loader-utils@2.0.4", "", { "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", "json5": "^2.1.2" } }, "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw=="], - "jest-validate": ["jest-validate@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-validate/-/jest-validate-30.2.0.tgz", { "dependencies": { "@jest/get-type": "30.1.0", "@jest/types": "30.2.0", "camelcase": "^6.3.0", "chalk": "^4.1.2", "leven": "^3.1.0", "pretty-format": "30.2.0" } }, "sha512-FBGWi7dP2hpdi8nBoWxSsLvBFewKAg0+uSQwBaof4Y4DPgBabXgpSYC5/lR7VmnIlSpASmCi/ntRWPbv7089Pw=="], + "locate-path": ["locate-path@6.0.0", "", { "dependencies": { "p-locate": "^5.0.0" } }, "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw=="], - "jest-watcher": ["jest-watcher@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-watcher/-/jest-watcher-30.0.5.tgz", { "dependencies": { "@jest/test-result": "30.0.5", "@jest/types": "30.0.5", "@types/node": "*", "ansi-escapes": "^4.3.2", "chalk": "^4.1.2", "emittery": "^0.13.1", "jest-util": "30.0.5", "string-length": "^4.0.2" } }, "sha512-z9slj/0vOwBDBjN3L4z4ZYaA+pG56d6p3kTUhFRYGvXbXMWhXmb/FIxREZCD06DYUwDKKnj2T80+Pb71CQ0KEg=="], + "lockfile": ["lockfile@1.0.4", "", { "dependencies": { "signal-exit": "^3.0.2" } }, "sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA=="], - "jest-worker": ["jest-worker@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-worker/-/jest-worker-30.2.0.tgz", { "dependencies": { "@types/node": "*", "@ungap/structured-clone": "^1.3.0", "jest-util": "30.2.0", "merge-stream": "^2.0.0", "supports-color": "^8.1.1" } }, "sha512-0Q4Uk8WF7BUwqXHuAjc23vmopWJw5WH7w2tqBoUOZpOjW/ZnR44GXXd1r82RvnmI2GZge3ivrYXk/BE2+VtW2g=="], + "lodash": ["lodash@4.17.21", "", {}, "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="], - "jiti": ["jiti@2.4.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jiti/-/jiti-2.4.2.tgz", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A=="], + "lodash.camelcase": ["lodash.camelcase@4.3.0", "", {}, "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA=="], - "jose": ["jose@6.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jose/-/jose-6.1.1.tgz", {}, "sha512-GWSqjfOPf4cWOkBzw5THBjtGPhXKqYnfRBzh4Ni+ArTrQQ9unvmsA3oFLqaYKoKe5sjWmGu5wVKg9Ft1i+LQfg=="], + "lodash.debounce": ["lodash.debounce@4.0.8", "", {}, "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow=="], - "joycon": ["joycon@3.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/joycon/-/joycon-3.1.1.tgz", {}, "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw=="], + "lodash.includes": ["lodash.includes@4.3.0", "", {}, "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w=="], - "js-tokens": ["js-tokens@4.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/js-tokens/-/js-tokens-4.0.0.tgz", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], + "lodash.isboolean": ["lodash.isboolean@3.0.3", "", {}, "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg=="], - "js-yaml": ["js-yaml@4.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/js-yaml/-/js-yaml-4.1.1.tgz", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA=="], + "lodash.isinteger": ["lodash.isinteger@4.0.4", "", {}, "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA=="], - "jsbn": ["jsbn@0.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jsbn/-/jsbn-0.1.1.tgz", {}, "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg=="], + "lodash.isnumber": ["lodash.isnumber@3.0.3", "", {}, "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw=="], - "jsdom": ["jsdom@26.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jsdom/-/jsdom-26.1.0.tgz", { "dependencies": { "cssstyle": "^4.2.1", "data-urls": "^5.0.0", "decimal.js": "^10.5.0", "html-encoding-sniffer": "^4.0.0", "http-proxy-agent": "^7.0.2", "https-proxy-agent": "^7.0.6", "is-potential-custom-element-name": "^1.0.1", "nwsapi": "^2.2.16", "parse5": "^7.2.1", "rrweb-cssom": "^0.8.0", "saxes": "^6.0.0", "symbol-tree": "^3.2.4", "tough-cookie": "^5.1.1", "w3c-xmlserializer": "^5.0.0", "webidl-conversions": "^7.0.0", "whatwg-encoding": "^3.1.1", "whatwg-mimetype": "^4.0.0", "whatwg-url": "^14.1.1", "ws": "^8.18.0", "xml-name-validator": "^5.0.0" }, "peerDependencies": { "canvas": "^3.0.0" }, "optionalPeers": ["canvas"] }, "sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg=="], + "lodash.isplainobject": ["lodash.isplainobject@4.0.6", "", {}, "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA=="], - "jsesc": ["jsesc@3.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jsesc/-/jsesc-3.1.0.tgz", { "bin": { "jsesc": "bin/jsesc" } }, "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA=="], + "lodash.isstring": ["lodash.isstring@4.0.1", "", {}, "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw=="], - "json-buffer": ["json-buffer@3.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/json-buffer/-/json-buffer-3.0.1.tgz", {}, "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="], + "lodash.memoize": ["lodash.memoize@4.1.2", "", {}, "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag=="], - "json-parse-even-better-errors": ["json-parse-even-better-errors@2.3.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", {}, "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="], + "lodash.merge": ["lodash.merge@4.6.2", "", {}, "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="], - "json-schema": ["json-schema@0.4.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/json-schema/-/json-schema-0.4.0.tgz", {}, "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA=="], + "lodash.once": ["lodash.once@4.1.1", "", {}, "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg=="], - "json-schema-traverse": ["json-schema-traverse@1.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", {}, "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="], + "lodash.uniq": ["lodash.uniq@4.5.0", "", {}, "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ=="], - "json-stable-stringify-without-jsonify": ["json-stable-stringify-without-jsonify@1.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", {}, "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="], + "log-symbols": ["log-symbols@4.1.0", "", { "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" } }, "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg=="], - "json-stringify-safe": ["json-stringify-safe@5.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", {}, "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="], + "loose-envify": ["loose-envify@1.4.0", "", { "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, "bin": { "loose-envify": "cli.js" } }, "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="], - "json5": ["json5@2.2.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/json5/-/json5-2.2.3.tgz", { "bin": { "json5": "lib/cli.js" } }, "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="], + "loupe": ["loupe@3.2.1", "", {}, "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ=="], - "jsonc-eslint-parser": ["jsonc-eslint-parser@2.4.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jsonc-eslint-parser/-/jsonc-eslint-parser-2.4.1.tgz", { "dependencies": { "acorn": "^8.5.0", "eslint-visitor-keys": "^3.0.0", "espree": "^9.0.0", "semver": "^7.3.5" } }, "sha512-uuPNLJkKN8NXAlZlQ6kmUF9qO+T6Kyd7oV4+/7yy8Jz6+MZNyhPq8EdLpdfnPVzUC8qSf1b4j1azKaGnFsjmsw=="], + "lowdb": ["lowdb@1.0.0", "", { "dependencies": { "graceful-fs": "^4.1.3", "is-promise": "^2.1.0", "lodash": "4", "pify": "^3.0.0", "steno": "^0.4.1" } }, "sha512-2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ=="], - "jsonc-parser": ["jsonc-parser@3.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jsonc-parser/-/jsonc-parser-3.2.0.tgz", {}, "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w=="], + "lowercase-keys": ["lowercase-keys@3.0.0", "", {}, "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ=="], - "jsonfile": ["jsonfile@4.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jsonfile/-/jsonfile-4.0.0.tgz", { "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg=="], + "lru-cache": ["lru-cache@7.18.3", "", {}, "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA=="], - "jsonparse": ["jsonparse@1.3.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jsonparse/-/jsonparse-1.3.1.tgz", {}, "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg=="], + "magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], - "jsonwebtoken": ["jsonwebtoken@9.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", { "dependencies": { "jws": "^3.2.2", "lodash.includes": "^4.3.0", "lodash.isboolean": "^3.0.3", "lodash.isinteger": "^4.0.4", "lodash.isnumber": "^3.0.3", "lodash.isplainobject": "^4.0.6", "lodash.isstring": "^4.0.1", "lodash.once": "^4.0.0", "ms": "^2.1.1", "semver": "^7.5.4" } }, "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ=="], + "magicast": ["magicast@0.3.5", "", { "dependencies": { "@babel/parser": "^7.25.4", "@babel/types": "^7.25.4", "source-map-js": "^1.2.0" } }, "sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ=="], - "jsprim": ["jsprim@2.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jsprim/-/jsprim-2.0.2.tgz", { "dependencies": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", "json-schema": "0.4.0", "verror": "1.10.0" } }, "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ=="], + "make-dir": ["make-dir@4.0.0", "", { "dependencies": { "semver": "^7.5.3" } }, "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw=="], - "jwa": ["jwa@1.4.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jwa/-/jwa-1.4.2.tgz", { "dependencies": { "buffer-equal-constant-time": "^1.0.1", "ecdsa-sig-formatter": "1.0.11", "safe-buffer": "^5.0.1" } }, "sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw=="], + "make-error": ["make-error@1.3.6", "", {}, "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw=="], - "jws": ["jws@3.2.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jws/-/jws-3.2.2.tgz", { "dependencies": { "jwa": "^1.4.1", "safe-buffer": "^5.0.1" } }, "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA=="], + "makeerror": ["makeerror@1.0.12", "", { "dependencies": { "tmpl": "1.0.5" } }, "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg=="], - "keyv": ["keyv@4.5.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/keyv/-/keyv-4.5.4.tgz", { "dependencies": { "json-buffer": "3.0.1" } }, "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw=="], + "math-intrinsics": ["math-intrinsics@1.1.0", "", {}, "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="], - "kill-port": ["kill-port@1.6.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/kill-port/-/kill-port-1.6.1.tgz", { "dependencies": { "get-them-args": "1.3.2", "shell-exec": "1.0.2" }, "bin": { "kill-port": "cli.js" } }, "sha512-un0Y55cOM7JKGaLnGja28T38tDDop0AQ8N0KlAdyh+B1nmMoX8AnNmqPNZbS3mUMgiST51DCVqmbFT1gNJpVNw=="], + "mdn-data": ["mdn-data@2.0.14", "", {}, "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow=="], - "kind-of": ["kind-of@6.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/kind-of/-/kind-of-6.0.3.tgz", {}, "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="], + "media-typer": ["media-typer@0.3.0", "", {}, "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ=="], - "knip": ["knip@5.71.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/knip/-/knip-5.71.0.tgz", { "dependencies": { "@nodelib/fs.walk": "^1.2.3", "fast-glob": "^3.3.3", "formatly": "^0.3.0", "jiti": "^2.6.0", "js-yaml": "^4.1.1", "minimist": "^1.2.8", "oxc-resolver": "^11.13.2", "picocolors": "^1.1.1", "picomatch": "^4.0.1", "smol-toml": "^1.5.2", "strip-json-comments": "5.0.3", "zod": "^4.1.11" }, "peerDependencies": { "@types/node": ">=18", "typescript": ">=5.0.4 <7" }, "bin": { "knip": "bin/knip.js", "knip-bun": "bin/knip-bun.js" } }, "sha512-hwgdqEJ+7DNJ5jE8BCPu7b57TY7vUwP6MzWYgCgPpg6iPCee/jKPShDNIlFER2koti4oz5xF88VJbKCb4Wl71g=="], + "merge-descriptors": ["merge-descriptors@1.0.3", "", {}, "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ=="], - "leven": ["leven@3.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/leven/-/leven-3.1.0.tgz", {}, "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A=="], + "merge-stream": ["merge-stream@2.0.0", "", {}, "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="], - "levn": ["levn@0.4.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/levn/-/levn-0.4.1.tgz", { "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" } }, "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ=="], + "merge2": ["merge2@1.4.1", "", {}, "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="], - "lilconfig": ["lilconfig@2.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/lilconfig/-/lilconfig-2.1.0.tgz", {}, "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ=="], + "methods": ["methods@1.1.2", "", {}, "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w=="], - "lines-and-columns": ["lines-and-columns@2.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/lines-and-columns/-/lines-and-columns-2.0.3.tgz", {}, "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w=="], + "micromatch": ["micromatch@4.0.8", "", { "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" } }, "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="], - "livereload-js": ["livereload-js@4.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/livereload-js/-/livereload-js-4.0.2.tgz", {}, "sha512-Fy7VwgQNiOkynYyNBTo3v9hQUhcW5pFAheJN148+DTgpShjsy/22pLHKKwDK5v0kOsZsJBK+6q1PMgLvRmrwFQ=="], + "mime": ["mime@3.0.0", "", { "bin": { "mime": "cli.js" } }, "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A=="], - "loader-runner": ["loader-runner@4.3.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/loader-runner/-/loader-runner-4.3.1.tgz", {}, "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q=="], + "mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="], - "loader-utils": ["loader-utils@2.0.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/loader-utils/-/loader-utils-2.0.4.tgz", { "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", "json5": "^2.1.2" } }, "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw=="], + "mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="], - "locate-path": ["locate-path@6.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/locate-path/-/locate-path-6.0.0.tgz", { "dependencies": { "p-locate": "^5.0.0" } }, "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw=="], + "mimic-fn": ["mimic-fn@2.1.0", "", {}, "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="], - "lockfile": ["lockfile@1.0.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/lockfile/-/lockfile-1.0.4.tgz", { "dependencies": { "signal-exit": "^3.0.2" } }, "sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA=="], + "mimic-response": ["mimic-response@4.0.0", "", {}, "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg=="], - "lodash": ["lodash@4.17.21", "https://jfrog.booking.com:443/artifactory/api/npm/npm/lodash/-/lodash-4.17.21.tgz", {}, "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="], + "mini-svg-data-uri": ["mini-svg-data-uri@1.4.4", "", { "bin": { "mini-svg-data-uri": "cli.js" } }, "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg=="], - "lodash.camelcase": ["lodash.camelcase@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", {}, "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA=="], + "minimatch": ["minimatch@9.0.3", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg=="], - "lodash.debounce": ["lodash.debounce@4.0.8", "https://jfrog.booking.com:443/artifactory/api/npm/npm/lodash.debounce/-/lodash.debounce-4.0.8.tgz", {}, "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow=="], + "minimist": ["minimist@1.2.8", "", {}, "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="], - "lodash.includes": ["lodash.includes@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/lodash.includes/-/lodash.includes-4.3.0.tgz", {}, "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w=="], + "minipass": ["minipass@7.1.3", "", {}, "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A=="], - "lodash.isboolean": ["lodash.isboolean@3.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", {}, "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg=="], + "mitt": ["mitt@3.0.1", "", {}, "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw=="], - "lodash.isinteger": ["lodash.isinteger@4.0.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", {}, "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA=="], + "mkdirp": ["mkdirp@1.0.4", "", { "bin": { "mkdirp": "bin/cmd.js" } }, "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="], - "lodash.isnumber": ["lodash.isnumber@3.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", {}, "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw=="], + "mrmime": ["mrmime@2.0.1", "", {}, "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ=="], - "lodash.isplainobject": ["lodash.isplainobject@4.0.6", "https://jfrog.booking.com:443/artifactory/api/npm/npm/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", {}, "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA=="], + "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], - "lodash.isstring": ["lodash.isstring@4.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/lodash.isstring/-/lodash.isstring-4.0.1.tgz", {}, "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw=="], + "mute-stream": ["mute-stream@2.0.0", "", {}, "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA=="], - "lodash.memoize": ["lodash.memoize@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/lodash.memoize/-/lodash.memoize-4.1.2.tgz", {}, "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag=="], + "nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="], - "lodash.merge": ["lodash.merge@4.6.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/lodash.merge/-/lodash.merge-4.6.2.tgz", {}, "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="], + "napi-postinstall": ["napi-postinstall@0.3.4", "", { "bin": { "napi-postinstall": "lib/cli.js" } }, "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ=="], - "lodash.once": ["lodash.once@4.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/lodash.once/-/lodash.once-4.1.1.tgz", {}, "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg=="], + "natural-compare": ["natural-compare@1.4.0", "", {}, "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="], - "lodash.uniq": ["lodash.uniq@4.5.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/lodash.uniq/-/lodash.uniq-4.5.0.tgz", {}, "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ=="], + "negotiator": ["negotiator@0.6.4", "", {}, "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w=="], - "log-symbols": ["log-symbols@4.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/log-symbols/-/log-symbols-4.1.0.tgz", { "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" } }, "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg=="], + "neo-async": ["neo-async@2.6.2", "", {}, "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="], - "loose-envify": ["loose-envify@1.4.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/loose-envify/-/loose-envify-1.4.0.tgz", { "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, "bin": { "loose-envify": "cli.js" } }, "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="], + "netmask": ["netmask@2.0.2", "", {}, "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg=="], - "loupe": ["loupe@3.2.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/loupe/-/loupe-3.2.1.tgz", {}, "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ=="], + "node-fetch": ["node-fetch@2.6.7", "", { "dependencies": { "whatwg-url": "^5.0.0" }, "peerDependencies": { "encoding": "^0.1.0" }, "optionalPeers": ["encoding"] }, "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ=="], - "lowdb": ["lowdb@1.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/lowdb/-/lowdb-1.0.0.tgz", { "dependencies": { "graceful-fs": "^4.1.3", "is-promise": "^2.1.0", "lodash": "4", "pify": "^3.0.0", "steno": "^0.4.1" } }, "sha512-2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ=="], + "node-int64": ["node-int64@0.4.0", "", {}, "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw=="], - "lowercase-keys": ["lowercase-keys@3.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/lowercase-keys/-/lowercase-keys-3.0.0.tgz", {}, "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ=="], + "node-machine-id": ["node-machine-id@1.1.12", "", {}, "sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ=="], - "lru-cache": ["lru-cache@7.18.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/lru-cache/-/lru-cache-7.18.3.tgz", {}, "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA=="], + "node-releases": ["node-releases@2.0.27", "", {}, "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA=="], - "magic-string": ["magic-string@0.30.21", "https://jfrog.booking.com:443/artifactory/api/npm/npm/magic-string/-/magic-string-0.30.21.tgz", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], + "normalize-path": ["normalize-path@3.0.0", "", {}, "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="], - "magicast": ["magicast@0.3.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/magicast/-/magicast-0.3.5.tgz", { "dependencies": { "@babel/parser": "^7.25.4", "@babel/types": "^7.25.4", "source-map-js": "^1.2.0" } }, "sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ=="], + "normalize-url": ["normalize-url@6.1.0", "", {}, "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A=="], - "make-dir": ["make-dir@4.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/make-dir/-/make-dir-4.0.0.tgz", { "dependencies": { "semver": "^7.5.3" } }, "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw=="], + "npm-package-arg": ["npm-package-arg@11.0.1", "", { "dependencies": { "hosted-git-info": "^7.0.0", "proc-log": "^3.0.0", "semver": "^7.3.5", "validate-npm-package-name": "^5.0.0" } }, "sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ=="], - "make-error": ["make-error@1.3.6", "https://jfrog.booking.com:443/artifactory/api/npm/npm/make-error/-/make-error-1.3.6.tgz", {}, "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw=="], + "npm-run-path": ["npm-run-path@4.0.1", "", { "dependencies": { "path-key": "^3.0.0" } }, "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw=="], - "makeerror": ["makeerror@1.0.12", "https://jfrog.booking.com:443/artifactory/api/npm/npm/makeerror/-/makeerror-1.0.12.tgz", { "dependencies": { "tmpl": "1.0.5" } }, "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg=="], + "nth-check": ["nth-check@2.1.1", "", { "dependencies": { "boolbase": "^1.0.0" } }, "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w=="], - "math-intrinsics": ["math-intrinsics@1.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/math-intrinsics/-/math-intrinsics-1.1.0.tgz", {}, "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="], + "nwsapi": ["nwsapi@2.2.23", "", {}, "sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ=="], - "mdn-data": ["mdn-data@2.0.14", "https://jfrog.booking.com:443/artifactory/api/npm/npm/mdn-data/-/mdn-data-2.0.14.tgz", {}, "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow=="], + "nx": ["nx@22.1.1", "", { "dependencies": { "@napi-rs/wasm-runtime": "0.2.4", "@yarnpkg/lockfile": "^1.1.0", "@yarnpkg/parsers": "3.0.2", "@zkochan/js-yaml": "0.0.7", "axios": "^1.12.0", "chalk": "^4.1.0", "cli-cursor": "3.1.0", "cli-spinners": "2.6.1", "cliui": "^8.0.1", "dotenv": "~16.4.5", "dotenv-expand": "~11.0.6", "enquirer": "~2.3.6", "figures": "3.2.0", "flat": "^5.0.2", "front-matter": "^4.0.2", "ignore": "^7.0.5", "jest-diff": "^30.0.2", "jsonc-parser": "3.2.0", "lines-and-columns": "2.0.3", "minimatch": "9.0.3", "node-machine-id": "1.1.12", "npm-run-path": "^4.0.1", "open": "^8.4.0", "ora": "5.3.0", "resolve.exports": "2.0.3", "semver": "^7.6.3", "string-width": "^4.2.3", "tar-stream": "~2.2.0", "tmp": "~0.2.1", "tree-kill": "^1.2.2", "tsconfig-paths": "^4.1.2", "tslib": "^2.3.0", "yaml": "^2.6.0", "yargs": "^17.6.2", "yargs-parser": "21.1.1" }, "optionalDependencies": { "@nx/nx-darwin-arm64": "22.1.1", "@nx/nx-darwin-x64": "22.1.1", "@nx/nx-freebsd-x64": "22.1.1", "@nx/nx-linux-arm-gnueabihf": "22.1.1", "@nx/nx-linux-arm64-gnu": "22.1.1", "@nx/nx-linux-arm64-musl": "22.1.1", "@nx/nx-linux-x64-gnu": "22.1.1", "@nx/nx-linux-x64-musl": "22.1.1", "@nx/nx-win32-arm64-msvc": "22.1.1", "@nx/nx-win32-x64-msvc": "22.1.1" }, "peerDependencies": { "@swc-node/register": "^1.8.0", "@swc/core": "^1.3.85" }, "optionalPeers": ["@swc-node/register", "@swc/core"], "bin": { "nx": "bin/nx.js", "nx-cloud": "bin/nx-cloud.js" } }, "sha512-D4lHv44aPQ0wtCaM14wwRK4NNJVT+J+RqW1x6kovNYNJm5oUk0Skg1ggB2OZL7ZAr8igiRG1X7wLrwmYFdPeqA=="], - "media-typer": ["media-typer@0.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/media-typer/-/media-typer-0.3.0.tgz", {}, "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ=="], + "nx-mcp": ["nx-mcp@0.6.12", "", { "bin": { "nx-mcp": "main.js" } }, "sha512-zN+3HHZfi0qjue78Z1aHcyrrpaDDy4Q4aE/ETCM1al7S5XHE2kRssOgOgvgNF/swugdEyMKesnGb5X2DsxPDBw=="], - "merge-descriptors": ["merge-descriptors@1.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/merge-descriptors/-/merge-descriptors-1.0.3.tgz", {}, "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ=="], + "nx-sync": ["nx-sync@workspace:tools/nx-sync"], - "merge-stream": ["merge-stream@2.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/merge-stream/-/merge-stream-2.0.0.tgz", {}, "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="], + "nx-tsdown": ["nx-tsdown@workspace:tools/nx-tsdown"], - "merge2": ["merge2@1.4.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/merge2/-/merge2-1.4.1.tgz", {}, "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="], + "nx-typecheck": ["nx-typecheck@workspace:tools/nx-typecheck"], - "methods": ["methods@1.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/methods/-/methods-1.1.2.tgz", {}, "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w=="], + "nx-vitest": ["nx-vitest@workspace:tools/nx-vitest"], - "micromatch": ["micromatch@4.0.8", "https://jfrog.booking.com:443/artifactory/api/npm/npm/micromatch/-/micromatch-4.0.8.tgz", { "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" } }, "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="], + "oauth4webapi": ["oauth4webapi@3.8.5", "", {}, "sha512-A8jmyUckVhRJj5lspguklcl90Ydqk61H3dcU0oLhH3Yv13KpAliKTt5hknpGGPZSSfOwGyraNEFmofDYH+1kSg=="], - "mime": ["mime@3.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/mime/-/mime-3.0.0.tgz", { "bin": { "mime": "cli.js" } }, "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A=="], + "object-assign": ["object-assign@4.1.1", "", {}, "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="], - "mime-db": ["mime-db@1.52.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/mime-db/-/mime-db-1.52.0.tgz", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="], + "object-inspect": ["object-inspect@1.13.4", "", {}, "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew=="], - "mime-types": ["mime-types@2.1.35", "https://jfrog.booking.com:443/artifactory/api/npm/npm/mime-types/-/mime-types-2.1.35.tgz", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="], + "object-keys": ["object-keys@1.1.1", "", {}, "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="], - "mimic-fn": ["mimic-fn@2.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/mimic-fn/-/mimic-fn-2.1.0.tgz", {}, "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="], + "object.assign": ["object.assign@4.1.7", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0", "has-symbols": "^1.1.0", "object-keys": "^1.1.1" } }, "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw=="], - "mimic-response": ["mimic-response@4.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/mimic-response/-/mimic-response-4.0.0.tgz", {}, "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg=="], + "object.fromentries": ["object.fromentries@2.0.8", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2", "es-object-atoms": "^1.0.0" } }, "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ=="], - "mini-svg-data-uri": ["mini-svg-data-uri@1.4.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", { "bin": { "mini-svg-data-uri": "cli.js" } }, "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg=="], + "object.groupby": ["object.groupby@1.0.3", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2" } }, "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ=="], - "minimatch": ["minimatch@9.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/minimatch/-/minimatch-9.0.3.tgz", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg=="], + "object.values": ["object.values@1.2.1", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" } }, "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA=="], - "minimist": ["minimist@1.2.8", "https://jfrog.booking.com:443/artifactory/api/npm/npm/minimist/-/minimist-1.2.8.tgz", {}, "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="], + "obug": ["obug@2.1.1", "", {}, "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ=="], - "minipass": ["minipass@7.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/minipass/-/minipass-7.1.2.tgz", {}, "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw=="], + "on-exit-leak-free": ["on-exit-leak-free@2.1.2", "", {}, "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA=="], - "mitt": ["mitt@3.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/mitt/-/mitt-3.0.1.tgz", {}, "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw=="], + "on-finished": ["on-finished@2.4.1", "", { "dependencies": { "ee-first": "1.1.1" } }, "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg=="], - "mkdirp": ["mkdirp@1.0.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/mkdirp/-/mkdirp-1.0.4.tgz", { "bin": { "mkdirp": "bin/cmd.js" } }, "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="], + "on-headers": ["on-headers@1.0.2", "", {}, "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="], - "mkdirp-classic": ["mkdirp-classic@0.5.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", {}, "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A=="], + "once": ["once@1.4.0", "", { "dependencies": { "wrappy": "1" } }, "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="], - "mrmime": ["mrmime@2.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/mrmime/-/mrmime-2.0.1.tgz", {}, "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ=="], + "onetime": ["onetime@5.1.2", "", { "dependencies": { "mimic-fn": "^2.1.0" } }, "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg=="], - "ms": ["ms@2.1.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ms/-/ms-2.1.3.tgz", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + "open": ["open@10.2.0", "", { "dependencies": { "default-browser": "^5.2.1", "define-lazy-prop": "^3.0.0", "is-inside-container": "^1.0.0", "wsl-utils": "^0.1.0" } }, "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA=="], - "mustache": ["mustache@4.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/mustache/-/mustache-4.2.0.tgz", { "bin": { "mustache": "bin/mustache" } }, "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ=="], + "opener": ["opener@1.5.2", "", { "bin": { "opener": "bin/opener-bin.js" } }, "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A=="], - "mute-stream": ["mute-stream@2.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/mute-stream/-/mute-stream-2.0.0.tgz", {}, "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA=="], + "openid-client": ["openid-client@6.8.2", "", { "dependencies": { "jose": "^6.1.3", "oauth4webapi": "^3.8.4" } }, "sha512-uOvTCndr4udZsKihJ68H9bUICrriHdUVJ6Az+4Ns6cW55rwM5h0bjVIzDz2SxgOI84LKjFyjOFvERLzdTUROGA=="], - "nanoid": ["nanoid@3.3.11", "https://jfrog.booking.com:443/artifactory/api/npm/npm/nanoid/-/nanoid-3.3.11.tgz", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="], + "optionator": ["optionator@0.9.4", "", { "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.5" } }, "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g=="], - "napi-build-utils": ["napi-build-utils@2.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/napi-build-utils/-/napi-build-utils-2.0.0.tgz", {}, "sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA=="], + "ora": ["ora@5.3.0", "", { "dependencies": { "bl": "^4.0.3", "chalk": "^4.1.0", "cli-cursor": "^3.1.0", "cli-spinners": "^2.5.0", "is-interactive": "^1.0.0", "log-symbols": "^4.0.0", "strip-ansi": "^6.0.0", "wcwidth": "^1.0.1" } }, "sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g=="], - "napi-postinstall": ["napi-postinstall@0.3.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/napi-postinstall/-/napi-postinstall-0.3.4.tgz", { "bin": { "napi-postinstall": "lib/cli.js" } }, "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ=="], + "own-keys": ["own-keys@1.0.1", "", { "dependencies": { "get-intrinsic": "^1.2.6", "object-keys": "^1.1.1", "safe-push-apply": "^1.0.0" } }, "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg=="], - "natural-compare": ["natural-compare@1.4.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/natural-compare/-/natural-compare-1.4.0.tgz", {}, "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="], + "oxc-resolver": ["oxc-resolver@11.19.0", "", { "optionalDependencies": { "@oxc-resolver/binding-android-arm-eabi": "11.19.0", "@oxc-resolver/binding-android-arm64": "11.19.0", "@oxc-resolver/binding-darwin-arm64": "11.19.0", "@oxc-resolver/binding-darwin-x64": "11.19.0", "@oxc-resolver/binding-freebsd-x64": "11.19.0", "@oxc-resolver/binding-linux-arm-gnueabihf": "11.19.0", "@oxc-resolver/binding-linux-arm-musleabihf": "11.19.0", "@oxc-resolver/binding-linux-arm64-gnu": "11.19.0", "@oxc-resolver/binding-linux-arm64-musl": "11.19.0", "@oxc-resolver/binding-linux-ppc64-gnu": "11.19.0", "@oxc-resolver/binding-linux-riscv64-gnu": "11.19.0", "@oxc-resolver/binding-linux-riscv64-musl": "11.19.0", "@oxc-resolver/binding-linux-s390x-gnu": "11.19.0", "@oxc-resolver/binding-linux-x64-gnu": "11.19.0", "@oxc-resolver/binding-linux-x64-musl": "11.19.0", "@oxc-resolver/binding-openharmony-arm64": "11.19.0", "@oxc-resolver/binding-wasm32-wasi": "11.19.0", "@oxc-resolver/binding-win32-arm64-msvc": "11.19.0", "@oxc-resolver/binding-win32-ia32-msvc": "11.19.0", "@oxc-resolver/binding-win32-x64-msvc": "11.19.0" } }, "sha512-oEe42WEoZc2T5sCQqgaRBx8huzP4cJvrnm+BfNTJESdtM633Tqs6iowkpsMTXgnb7SLwU6N6D9bqwW/PULjo6A=="], - "negotiator": ["negotiator@0.6.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/negotiator/-/negotiator-0.6.4.tgz", {}, "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w=="], + "p-cancelable": ["p-cancelable@3.0.0", "", {}, "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw=="], - "neo-async": ["neo-async@2.6.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/neo-async/-/neo-async-2.6.2.tgz", {}, "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="], + "p-finally": ["p-finally@1.0.0", "", {}, "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow=="], - "netmask": ["netmask@2.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/netmask/-/netmask-2.0.2.tgz", {}, "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg=="], + "p-limit": ["p-limit@3.1.0", "", { "dependencies": { "yocto-queue": "^0.1.0" } }, "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="], - "node-abi": ["node-abi@3.80.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/node-abi/-/node-abi-3.80.0.tgz", { "dependencies": { "semver": "^7.3.5" } }, "sha512-LyPuZJcI9HVwzXK1GPxWNzrr+vr8Hp/3UqlmWxxh8p54U1ZbclOqbSog9lWHaCX+dBaiGi6n/hIX+mKu74GmPA=="], + "p-locate": ["p-locate@5.0.0", "", { "dependencies": { "p-limit": "^3.0.2" } }, "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw=="], - "node-cache": ["node-cache@5.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/node-cache/-/node-cache-5.1.2.tgz", { "dependencies": { "clone": "2.x" } }, "sha512-t1QzWwnk4sjLWaQAS8CHgOJ+RAfmHpxFWmc36IWTiWHQfs0w5JDMBS1b1ZxQteo0vVVuWJvIUKHDkkeK7vIGCg=="], + "p-queue": ["p-queue@6.6.2", "", { "dependencies": { "eventemitter3": "^4.0.4", "p-timeout": "^3.2.0" } }, "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ=="], - "node-fetch": ["node-fetch@2.6.7", "https://jfrog.booking.com:443/artifactory/api/npm/npm/node-fetch/-/node-fetch-2.6.7.tgz", { "dependencies": { "whatwg-url": "^5.0.0" }, "peerDependencies": { "encoding": "^0.1.0" }, "optionalPeers": ["encoding"] }, "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ=="], + "p-timeout": ["p-timeout@3.2.0", "", { "dependencies": { "p-finally": "^1.0.0" } }, "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg=="], - "node-int64": ["node-int64@0.4.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/node-int64/-/node-int64-0.4.0.tgz", {}, "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw=="], + "p-try": ["p-try@2.2.0", "", {}, "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="], - "node-machine-id": ["node-machine-id@1.1.12", "https://jfrog.booking.com:443/artifactory/api/npm/npm/node-machine-id/-/node-machine-id-1.1.12.tgz", {}, "sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ=="], + "p2-cli": ["p2-cli@workspace:tools/p2-cli"], - "node-releases": ["node-releases@2.0.27", "https://jfrog.booking.com:443/artifactory/api/npm/npm/node-releases/-/node-releases-2.0.27.tgz", {}, "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA=="], + "pac-proxy-agent": ["pac-proxy-agent@7.2.0", "", { "dependencies": { "@tootallnate/quickjs-emscripten": "^0.23.0", "agent-base": "^7.1.2", "debug": "^4.3.4", "get-uri": "^6.0.1", "http-proxy-agent": "^7.0.0", "https-proxy-agent": "^7.0.6", "pac-resolver": "^7.0.1", "socks-proxy-agent": "^8.0.5" } }, "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA=="], - "node-watch": ["node-watch@0.7.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/node-watch/-/node-watch-0.7.4.tgz", {}, "sha512-RinNxoz4W1cep1b928fuFhvAQ5ag/+1UlMDV7rbyGthBIgsiEouS4kvRayvvboxii4m8eolKOIBo3OjDqbc+uQ=="], + "pac-resolver": ["pac-resolver@7.0.1", "", { "dependencies": { "degenerator": "^5.0.0", "netmask": "^2.0.2" } }, "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg=="], - "normalize-path": ["normalize-path@3.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/normalize-path/-/normalize-path-3.0.0.tgz", {}, "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="], + "package-json-from-dist": ["package-json-from-dist@1.0.1", "", {}, "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw=="], - "normalize-range": ["normalize-range@0.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/normalize-range/-/normalize-range-0.1.2.tgz", {}, "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA=="], + "pako": ["pako@0.2.9", "", {}, "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA=="], - "normalize-url": ["normalize-url@6.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/normalize-url/-/normalize-url-6.1.0.tgz", {}, "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A=="], + "parent-module": ["parent-module@1.0.1", "", { "dependencies": { "callsites": "^3.0.0" } }, "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="], - "npm-package-arg": ["npm-package-arg@11.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/npm-package-arg/-/npm-package-arg-11.0.1.tgz", { "dependencies": { "hosted-git-info": "^7.0.0", "proc-log": "^3.0.0", "semver": "^7.3.5", "validate-npm-package-name": "^5.0.0" } }, "sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ=="], + "parse-json": ["parse-json@5.2.0", "", { "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", "json-parse-even-better-errors": "^2.3.0", "lines-and-columns": "^1.1.6" } }, "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg=="], - "npm-run-path": ["npm-run-path@4.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/npm-run-path/-/npm-run-path-4.0.1.tgz", { "dependencies": { "path-key": "^3.0.0" } }, "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw=="], + "parse5": ["parse5@7.3.0", "", { "dependencies": { "entities": "^6.0.0" } }, "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw=="], - "nth-check": ["nth-check@2.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/nth-check/-/nth-check-2.1.1.tgz", { "dependencies": { "boolbase": "^1.0.0" } }, "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w=="], + "parseurl": ["parseurl@1.3.3", "", {}, "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="], - "nwsapi": ["nwsapi@2.2.22", "https://jfrog.booking.com:443/artifactory/api/npm/npm/nwsapi/-/nwsapi-2.2.22.tgz", {}, "sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ=="], + "patch-console": ["patch-console@2.0.0", "", {}, "sha512-0YNdUceMdaQwoKce1gatDScmMo5pu/tfABfnzEqeG0gtTmd7mh/WcwgUjtAeOU7N8nFFlbQBnFK2gXW5fGvmMA=="], - "nx": ["nx@22.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/nx/-/nx-22.1.1.tgz", { "dependencies": { "@napi-rs/wasm-runtime": "0.2.4", "@yarnpkg/lockfile": "^1.1.0", "@yarnpkg/parsers": "3.0.2", "@zkochan/js-yaml": "0.0.7", "axios": "^1.12.0", "chalk": "^4.1.0", "cli-cursor": "3.1.0", "cli-spinners": "2.6.1", "cliui": "^8.0.1", "dotenv": "~16.4.5", "dotenv-expand": "~11.0.6", "enquirer": "~2.3.6", "figures": "3.2.0", "flat": "^5.0.2", "front-matter": "^4.0.2", "ignore": "^7.0.5", "jest-diff": "^30.0.2", "jsonc-parser": "3.2.0", "lines-and-columns": "2.0.3", "minimatch": "9.0.3", "node-machine-id": "1.1.12", "npm-run-path": "^4.0.1", "open": "^8.4.0", "ora": "5.3.0", "resolve.exports": "2.0.3", "semver": "^7.6.3", "string-width": "^4.2.3", "tar-stream": "~2.2.0", "tmp": "~0.2.1", "tree-kill": "^1.2.2", "tsconfig-paths": "^4.1.2", "tslib": "^2.3.0", "yaml": "^2.6.0", "yargs": "^17.6.2", "yargs-parser": "21.1.1" }, "optionalDependencies": { "@nx/nx-darwin-arm64": "22.1.1", "@nx/nx-darwin-x64": "22.1.1", "@nx/nx-freebsd-x64": "22.1.1", "@nx/nx-linux-arm-gnueabihf": "22.1.1", "@nx/nx-linux-arm64-gnu": "22.1.1", "@nx/nx-linux-arm64-musl": "22.1.1", "@nx/nx-linux-x64-gnu": "22.1.1", "@nx/nx-linux-x64-musl": "22.1.1", "@nx/nx-win32-arm64-msvc": "22.1.1", "@nx/nx-win32-x64-msvc": "22.1.1" }, "peerDependencies": { "@swc-node/register": "^1.8.0", "@swc/core": "^1.3.85" }, "optionalPeers": ["@swc-node/register", "@swc/core"], "bin": { "nx": "bin/nx.js", "nx-cloud": "bin/nx-cloud.js" } }, "sha512-D4lHv44aPQ0wtCaM14wwRK4NNJVT+J+RqW1x6kovNYNJm5oUk0Skg1ggB2OZL7ZAr8igiRG1X7wLrwmYFdPeqA=="], + "path-browserify": ["path-browserify@1.0.1", "", {}, "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g=="], - "nx-mcp": ["nx-mcp@0.6.12", "https://jfrog.booking.com:443/artifactory/api/npm/npm/nx-mcp/-/nx-mcp-0.6.12.tgz", { "bin": { "nx-mcp": "main.js" } }, "sha512-zN+3HHZfi0qjue78Z1aHcyrrpaDDy4Q4aE/ETCM1al7S5XHE2kRssOgOgvgNF/swugdEyMKesnGb5X2DsxPDBw=="], + "path-exists": ["path-exists@4.0.0", "", {}, "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="], - "nx-sync": ["nx-sync@workspace:tools/nx-sync"], + "path-is-absolute": ["path-is-absolute@1.0.1", "", {}, "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="], - "nx-tsdown": ["nx-tsdown@workspace:tools/nx-tsdown"], + "path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="], - "nx-typecheck": ["nx-typecheck@workspace:tools/nx-typecheck"], + "path-parse": ["path-parse@1.0.7", "", {}, "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="], - "nx-vitest": ["nx-vitest@workspace:tools/nx-vitest"], + "path-scurry": ["path-scurry@1.11.1", "", { "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" } }, "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA=="], - "oauth4webapi": ["oauth4webapi@3.8.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/oauth4webapi/-/oauth4webapi-3.8.2.tgz", {}, "sha512-FzZZ+bht5X0FKe7Mwz3DAVAmlH1BV5blSak/lHMBKz0/EBMhX6B10GlQYI51+oRp8ObJaX0g6pXrAxZh5s8rjw=="], + "path-to-regexp": ["path-to-regexp@0.1.12", "", {}, "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ=="], - "object-assign": ["object-assign@4.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/object-assign/-/object-assign-4.1.1.tgz", {}, "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="], + "path-type": ["path-type@4.0.0", "", {}, "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="], - "object-inspect": ["object-inspect@1.13.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/object-inspect/-/object-inspect-1.13.4.tgz", {}, "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew=="], + "pathe": ["pathe@2.0.3", "", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="], - "object-keys": ["object-keys@1.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/object-keys/-/object-keys-1.1.1.tgz", {}, "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="], + "pathval": ["pathval@2.0.1", "", {}, "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ=="], - "object.assign": ["object.assign@4.1.7", "https://jfrog.booking.com:443/artifactory/api/npm/npm/object.assign/-/object.assign-4.1.7.tgz", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0", "has-symbols": "^1.1.0", "object-keys": "^1.1.1" } }, "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw=="], + "peek-stream": ["peek-stream@1.1.3", "", { "dependencies": { "buffer-from": "^1.0.0", "duplexify": "^3.5.0", "through2": "^2.0.3" } }, "sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA=="], - "object.fromentries": ["object.fromentries@2.0.8", "https://jfrog.booking.com:443/artifactory/api/npm/npm/object.fromentries/-/object.fromentries-2.0.8.tgz", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2", "es-object-atoms": "^1.0.0" } }, "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ=="], + "pend": ["pend@1.2.0", "", {}, "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg=="], - "object.groupby": ["object.groupby@1.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/object.groupby/-/object.groupby-1.0.3.tgz", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2" } }, "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ=="], + "performance-now": ["performance-now@2.1.0", "", {}, "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow=="], - "object.values": ["object.values@1.2.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/object.values/-/object.values-1.2.1.tgz", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" } }, "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA=="], + "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], - "obug": ["obug@2.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/obug/-/obug-2.1.1.tgz", {}, "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ=="], + "picomatch": ["picomatch@4.0.2", "", {}, "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg=="], - "on-exit-leak-free": ["on-exit-leak-free@2.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz", {}, "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA=="], + "pify": ["pify@5.0.0", "", {}, "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA=="], - "on-finished": ["on-finished@2.4.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/on-finished/-/on-finished-2.4.1.tgz", { "dependencies": { "ee-first": "1.1.1" } }, "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg=="], + "pino": ["pino@8.21.0", "", { "dependencies": { "atomic-sleep": "^1.0.0", "fast-redact": "^3.1.1", "on-exit-leak-free": "^2.1.0", "pino-abstract-transport": "^1.2.0", "pino-std-serializers": "^6.0.0", "process-warning": "^3.0.0", "quick-format-unescaped": "^4.0.3", "real-require": "^0.2.0", "safe-stable-stringify": "^2.3.1", "sonic-boom": "^3.7.0", "thread-stream": "^2.6.0" }, "bin": { "pino": "bin.js" } }, "sha512-ip4qdzjkAyDDZklUaZkcRFb2iA118H9SgRh8yzTkSQK8HilsOJF7rSY8HoW5+I0M46AZgX/pxbprf2vvzQCE0Q=="], - "on-headers": ["on-headers@1.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/on-headers/-/on-headers-1.0.2.tgz", {}, "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="], + "pino-abstract-transport": ["pino-abstract-transport@1.2.0", "", { "dependencies": { "readable-stream": "^4.0.0", "split2": "^4.0.0" } }, "sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q=="], - "once": ["once@1.4.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/once/-/once-1.4.0.tgz", { "dependencies": { "wrappy": "1" } }, "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="], + "pino-pretty": ["pino-pretty@10.3.1", "", { "dependencies": { "colorette": "^2.0.7", "dateformat": "^4.6.3", "fast-copy": "^3.0.0", "fast-safe-stringify": "^2.1.1", "help-me": "^5.0.0", "joycon": "^3.1.1", "minimist": "^1.2.6", "on-exit-leak-free": "^2.1.0", "pino-abstract-transport": "^1.0.0", "pump": "^3.0.0", "readable-stream": "^4.0.0", "secure-json-parse": "^2.4.0", "sonic-boom": "^3.0.0", "strip-json-comments": "^3.1.1" }, "bin": { "pino-pretty": "bin.js" } }, "sha512-az8JbIYeN/1iLj2t0jR9DV48/LQ3RC6hZPpapKPkb84Q+yTidMCpgWxIT3N0flnBDilyBQ1luWNpOeJptjdp/g=="], - "onetime": ["onetime@5.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/onetime/-/onetime-5.1.2.tgz", { "dependencies": { "mimic-fn": "^2.1.0" } }, "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg=="], + "pino-std-serializers": ["pino-std-serializers@6.2.2", "", {}, "sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA=="], - "open": ["open@10.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/open/-/open-10.2.0.tgz", { "dependencies": { "default-browser": "^5.2.1", "define-lazy-prop": "^3.0.0", "is-inside-container": "^1.0.0", "wsl-utils": "^0.1.0" } }, "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA=="], + "pirates": ["pirates@4.0.7", "", {}, "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA=="], - "opener": ["opener@1.5.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/opener/-/opener-1.5.2.tgz", { "bin": { "opener": "bin/opener-bin.js" } }, "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A=="], + "piscina": ["piscina@4.9.2", "", { "optionalDependencies": { "@napi-rs/nice": "^1.0.1" } }, "sha512-Fq0FERJWFEUpB4eSY59wSNwXD4RYqR+nR/WiEVcZW8IWfVBxJJafcgTEZDQo8k3w0sUarJ8RyVbbUF4GQ2LGbQ=="], - "openid-client": ["openid-client@6.8.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/openid-client/-/openid-client-6.8.1.tgz", { "dependencies": { "jose": "^6.1.0", "oauth4webapi": "^3.8.2" } }, "sha512-VoYT6enBo6Vj2j3Q5Ec0AezS+9YGzQo1f5Xc42lreMGlfP4ljiXPKVDvCADh+XHCV/bqPu/wWSiCVXbJKvrODw=="], + "pkg-dir": ["pkg-dir@4.2.0", "", { "dependencies": { "find-up": "^4.0.0" } }, "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ=="], - "optionator": ["optionator@0.9.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/optionator/-/optionator-0.9.4.tgz", { "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.5" } }, "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g=="], + "pkginfo": ["pkginfo@0.4.1", "", {}, "sha512-8xCNE/aT/EXKenuMDZ+xTVwkT8gsoHN2z/Q29l80u0ppGEXVvsKRzNMbtKhg8LS8k1tJLAHHylf6p4VFmP6XUQ=="], - "ora": ["ora@5.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ora/-/ora-5.3.0.tgz", { "dependencies": { "bl": "^4.0.3", "chalk": "^4.1.0", "cli-cursor": "^3.1.0", "cli-spinners": "^2.5.0", "is-interactive": "^1.0.0", "log-symbols": "^4.0.0", "strip-ansi": "^6.0.0", "wcwidth": "^1.0.1" } }, "sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g=="], + "playwright": ["playwright@1.58.2", "", { "dependencies": { "playwright-core": "1.58.2" }, "optionalDependencies": { "fsevents": "2.3.2" }, "bin": { "playwright": "cli.js" } }, "sha512-vA30H8Nvkq/cPBnNw4Q8TWz1EJyqgpuinBcHET0YVJVFldr8JDNiU9LaWAE1KqSkRYazuaBhTpB5ZzShOezQ6A=="], - "own-keys": ["own-keys@1.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/own-keys/-/own-keys-1.0.1.tgz", { "dependencies": { "get-intrinsic": "^1.2.6", "object-keys": "^1.1.1", "safe-push-apply": "^1.0.0" } }, "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg=="], + "playwright-core": ["playwright-core@1.58.2", "", { "bin": { "playwright-core": "cli.js" } }, "sha512-yZkEtftgwS8CsfYo7nm0KE8jsvm6i/PTgVtB8DL726wNf6H2IMsDuxCpJj59KDaxCtSnrWan2AeDqM7JBaultg=="], - "oxc-resolver": ["oxc-resolver@11.14.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/oxc-resolver/-/oxc-resolver-11.14.0.tgz", { "optionalDependencies": { "@oxc-resolver/binding-android-arm-eabi": "11.14.0", "@oxc-resolver/binding-android-arm64": "11.14.0", "@oxc-resolver/binding-darwin-arm64": "11.14.0", "@oxc-resolver/binding-darwin-x64": "11.14.0", "@oxc-resolver/binding-freebsd-x64": "11.14.0", "@oxc-resolver/binding-linux-arm-gnueabihf": "11.14.0", "@oxc-resolver/binding-linux-arm-musleabihf": "11.14.0", "@oxc-resolver/binding-linux-arm64-gnu": "11.14.0", "@oxc-resolver/binding-linux-arm64-musl": "11.14.0", "@oxc-resolver/binding-linux-ppc64-gnu": "11.14.0", "@oxc-resolver/binding-linux-riscv64-gnu": "11.14.0", "@oxc-resolver/binding-linux-riscv64-musl": "11.14.0", "@oxc-resolver/binding-linux-s390x-gnu": "11.14.0", "@oxc-resolver/binding-linux-x64-gnu": "11.14.0", "@oxc-resolver/binding-linux-x64-musl": "11.14.0", "@oxc-resolver/binding-wasm32-wasi": "11.14.0", "@oxc-resolver/binding-win32-arm64-msvc": "11.14.0", "@oxc-resolver/binding-win32-ia32-msvc": "11.14.0", "@oxc-resolver/binding-win32-x64-msvc": "11.14.0" } }, "sha512-i4wNrqhOd+4YdHJfHglHtFiqqSxXuzFA+RUqmmWN1aMD3r1HqUSrIhw17tSO4jwKfhLs9uw1wzFPmvMsWacStg=="], + "portfinder": ["portfinder@1.0.38", "", { "dependencies": { "async": "^3.2.6", "debug": "^4.3.6" } }, "sha512-rEwq/ZHlJIKw++XtLAO8PPuOQA/zaPJOZJ37BVuN97nLpMJeuDVLVGRwbFoBgLudgdTMP2hdRJP++H+8QOA3vg=="], - "p-cancelable": ["p-cancelable@3.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/p-cancelable/-/p-cancelable-3.0.0.tgz", {}, "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw=="], + "possible-typed-array-names": ["possible-typed-array-names@1.1.0", "", {}, "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg=="], - "p-finally": ["p-finally@1.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/p-finally/-/p-finally-1.0.0.tgz", {}, "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow=="], + "postcss": ["postcss@8.5.6", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg=="], - "p-limit": ["p-limit@3.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/p-limit/-/p-limit-3.1.0.tgz", { "dependencies": { "yocto-queue": "^0.1.0" } }, "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="], + "postcss-calc": ["postcss-calc@8.2.4", "", { "dependencies": { "postcss-selector-parser": "^6.0.9", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.2" } }, "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q=="], - "p-locate": ["p-locate@5.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/p-locate/-/p-locate-5.0.0.tgz", { "dependencies": { "p-limit": "^3.0.2" } }, "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw=="], + "postcss-colormin": ["postcss-colormin@5.3.1", "", { "dependencies": { "browserslist": "^4.21.4", "caniuse-api": "^3.0.0", "colord": "^2.9.1", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ=="], - "p-queue": ["p-queue@6.6.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/p-queue/-/p-queue-6.6.2.tgz", { "dependencies": { "eventemitter3": "^4.0.4", "p-timeout": "^3.2.0" } }, "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ=="], + "postcss-convert-values": ["postcss-convert-values@5.1.3", "", { "dependencies": { "browserslist": "^4.21.4", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA=="], - "p-timeout": ["p-timeout@3.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/p-timeout/-/p-timeout-3.2.0.tgz", { "dependencies": { "p-finally": "^1.0.0" } }, "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg=="], + "postcss-discard-comments": ["postcss-discard-comments@5.1.2", "", { "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ=="], - "p-try": ["p-try@2.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/p-try/-/p-try-2.2.0.tgz", {}, "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="], + "postcss-discard-duplicates": ["postcss-discard-duplicates@5.1.0", "", { "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw=="], - "p2-cli": ["p2-cli@workspace:tools/p2-cli"], + "postcss-discard-empty": ["postcss-discard-empty@5.1.1", "", { "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A=="], - "pac-proxy-agent": ["pac-proxy-agent@7.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz", { "dependencies": { "@tootallnate/quickjs-emscripten": "^0.23.0", "agent-base": "^7.1.2", "debug": "^4.3.4", "get-uri": "^6.0.1", "http-proxy-agent": "^7.0.0", "https-proxy-agent": "^7.0.6", "pac-resolver": "^7.0.1", "socks-proxy-agent": "^8.0.5" } }, "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA=="], + "postcss-discard-overridden": ["postcss-discard-overridden@5.1.0", "", { "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw=="], - "pac-resolver": ["pac-resolver@7.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/pac-resolver/-/pac-resolver-7.0.1.tgz", { "dependencies": { "degenerator": "^5.0.0", "netmask": "^2.0.2" } }, "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg=="], + "postcss-load-config": ["postcss-load-config@3.1.4", "", { "dependencies": { "lilconfig": "^2.0.5", "yaml": "^1.10.2" }, "peerDependencies": { "postcss": ">=8.0.9", "ts-node": ">=9.0.0" }, "optionalPeers": ["postcss", "ts-node"] }, "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg=="], - "package-json-from-dist": ["package-json-from-dist@1.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", {}, "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw=="], + "postcss-merge-longhand": ["postcss-merge-longhand@5.1.7", "", { "dependencies": { "postcss-value-parser": "^4.2.0", "stylehacks": "^5.1.1" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ=="], - "pako": ["pako@0.2.9", "https://jfrog.booking.com:443/artifactory/api/npm/npm/pako/-/pako-0.2.9.tgz", {}, "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA=="], + "postcss-merge-rules": ["postcss-merge-rules@5.1.4", "", { "dependencies": { "browserslist": "^4.21.4", "caniuse-api": "^3.0.0", "cssnano-utils": "^3.1.0", "postcss-selector-parser": "^6.0.5" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g=="], - "parent-module": ["parent-module@1.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/parent-module/-/parent-module-1.0.1.tgz", { "dependencies": { "callsites": "^3.0.0" } }, "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="], + "postcss-minify-font-values": ["postcss-minify-font-values@5.1.0", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA=="], - "parse-json": ["parse-json@5.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/parse-json/-/parse-json-5.2.0.tgz", { "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", "json-parse-even-better-errors": "^2.3.0", "lines-and-columns": "^1.1.6" } }, "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg=="], + "postcss-minify-gradients": ["postcss-minify-gradients@5.1.1", "", { "dependencies": { "colord": "^2.9.1", "cssnano-utils": "^3.1.0", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw=="], - "parse5": ["parse5@7.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/parse5/-/parse5-7.3.0.tgz", { "dependencies": { "entities": "^6.0.0" } }, "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw=="], + "postcss-minify-params": ["postcss-minify-params@5.1.4", "", { "dependencies": { "browserslist": "^4.21.4", "cssnano-utils": "^3.1.0", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw=="], - "parseurl": ["parseurl@1.3.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/parseurl/-/parseurl-1.3.3.tgz", {}, "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="], + "postcss-minify-selectors": ["postcss-minify-selectors@5.2.1", "", { "dependencies": { "postcss-selector-parser": "^6.0.5" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg=="], - "patch-console": ["patch-console@2.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/patch-console/-/patch-console-2.0.0.tgz", {}, "sha512-0YNdUceMdaQwoKce1gatDScmMo5pu/tfABfnzEqeG0gtTmd7mh/WcwgUjtAeOU7N8nFFlbQBnFK2gXW5fGvmMA=="], + "postcss-modules": ["postcss-modules@4.3.1", "", { "dependencies": { "generic-names": "^4.0.0", "icss-replace-symbols": "^1.1.0", "lodash.camelcase": "^4.3.0", "postcss-modules-extract-imports": "^3.0.0", "postcss-modules-local-by-default": "^4.0.0", "postcss-modules-scope": "^3.0.0", "postcss-modules-values": "^4.0.0", "string-hash": "^1.1.1" }, "peerDependencies": { "postcss": "^8.0.0" } }, "sha512-ItUhSUxBBdNamkT3KzIZwYNNRFKmkJrofvC2nWab3CPKhYBQ1f27XXh1PAPE27Psx58jeelPsxWB/+og+KEH0Q=="], - "path-browserify": ["path-browserify@1.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/path-browserify/-/path-browserify-1.0.1.tgz", {}, "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g=="], + "postcss-modules-extract-imports": ["postcss-modules-extract-imports@3.1.0", "", { "peerDependencies": { "postcss": "^8.1.0" } }, "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q=="], - "path-exists": ["path-exists@4.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/path-exists/-/path-exists-4.0.0.tgz", {}, "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="], + "postcss-modules-local-by-default": ["postcss-modules-local-by-default@4.2.0", "", { "dependencies": { "icss-utils": "^5.0.0", "postcss-selector-parser": "^7.0.0", "postcss-value-parser": "^4.1.0" }, "peerDependencies": { "postcss": "^8.1.0" } }, "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw=="], - "path-is-absolute": ["path-is-absolute@1.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/path-is-absolute/-/path-is-absolute-1.0.1.tgz", {}, "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="], + "postcss-modules-scope": ["postcss-modules-scope@3.2.1", "", { "dependencies": { "postcss-selector-parser": "^7.0.0" }, "peerDependencies": { "postcss": "^8.1.0" } }, "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA=="], - "path-key": ["path-key@3.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/path-key/-/path-key-3.1.1.tgz", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="], + "postcss-modules-values": ["postcss-modules-values@4.0.0", "", { "dependencies": { "icss-utils": "^5.0.0" }, "peerDependencies": { "postcss": "^8.1.0" } }, "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ=="], - "path-parse": ["path-parse@1.0.7", "https://jfrog.booking.com:443/artifactory/api/npm/npm/path-parse/-/path-parse-1.0.7.tgz", {}, "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="], + "postcss-normalize-charset": ["postcss-normalize-charset@5.1.0", "", { "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg=="], - "path-scurry": ["path-scurry@1.11.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/path-scurry/-/path-scurry-1.11.1.tgz", { "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" } }, "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA=="], + "postcss-normalize-display-values": ["postcss-normalize-display-values@5.1.0", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA=="], - "path-to-regexp": ["path-to-regexp@0.1.12", "https://jfrog.booking.com:443/artifactory/api/npm/npm/path-to-regexp/-/path-to-regexp-0.1.12.tgz", {}, "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ=="], + "postcss-normalize-positions": ["postcss-normalize-positions@5.1.1", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg=="], - "path-type": ["path-type@4.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/path-type/-/path-type-4.0.0.tgz", {}, "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="], + "postcss-normalize-repeat-style": ["postcss-normalize-repeat-style@5.1.1", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g=="], - "pathe": ["pathe@2.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/pathe/-/pathe-2.0.3.tgz", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="], + "postcss-normalize-string": ["postcss-normalize-string@5.1.0", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w=="], - "pathval": ["pathval@2.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/pathval/-/pathval-2.0.1.tgz", {}, "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ=="], + "postcss-normalize-timing-functions": ["postcss-normalize-timing-functions@5.1.0", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg=="], - "peek-stream": ["peek-stream@1.1.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/peek-stream/-/peek-stream-1.1.3.tgz", { "dependencies": { "buffer-from": "^1.0.0", "duplexify": "^3.5.0", "through2": "^2.0.3" } }, "sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA=="], + "postcss-normalize-unicode": ["postcss-normalize-unicode@5.1.1", "", { "dependencies": { "browserslist": "^4.21.4", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA=="], - "pend": ["pend@1.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/pend/-/pend-1.2.0.tgz", {}, "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg=="], + "postcss-normalize-url": ["postcss-normalize-url@5.1.0", "", { "dependencies": { "normalize-url": "^6.0.1", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew=="], - "performance-now": ["performance-now@2.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/performance-now/-/performance-now-2.1.0.tgz", {}, "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow=="], + "postcss-normalize-whitespace": ["postcss-normalize-whitespace@5.1.1", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA=="], - "picocolors": ["picocolors@1.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/picocolors/-/picocolors-1.1.1.tgz", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], + "postcss-ordered-values": ["postcss-ordered-values@5.1.3", "", { "dependencies": { "cssnano-utils": "^3.1.0", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ=="], - "picomatch": ["picomatch@4.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/picomatch/-/picomatch-4.0.2.tgz", {}, "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg=="], + "postcss-reduce-initial": ["postcss-reduce-initial@5.1.2", "", { "dependencies": { "browserslist": "^4.21.4", "caniuse-api": "^3.0.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg=="], - "pify": ["pify@5.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/pify/-/pify-5.0.0.tgz", {}, "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA=="], + "postcss-reduce-transforms": ["postcss-reduce-transforms@5.1.0", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ=="], - "pino": ["pino@8.21.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/pino/-/pino-8.21.0.tgz", { "dependencies": { "atomic-sleep": "^1.0.0", "fast-redact": "^3.1.1", "on-exit-leak-free": "^2.1.0", "pino-abstract-transport": "^1.2.0", "pino-std-serializers": "^6.0.0", "process-warning": "^3.0.0", "quick-format-unescaped": "^4.0.3", "real-require": "^0.2.0", "safe-stable-stringify": "^2.3.1", "sonic-boom": "^3.7.0", "thread-stream": "^2.6.0" }, "bin": { "pino": "bin.js" } }, "sha512-ip4qdzjkAyDDZklUaZkcRFb2iA118H9SgRh8yzTkSQK8HilsOJF7rSY8HoW5+I0M46AZgX/pxbprf2vvzQCE0Q=="], + "postcss-selector-parser": ["postcss-selector-parser@7.1.1", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg=="], - "pino-abstract-transport": ["pino-abstract-transport@1.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/pino-abstract-transport/-/pino-abstract-transport-1.2.0.tgz", { "dependencies": { "readable-stream": "^4.0.0", "split2": "^4.0.0" } }, "sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q=="], + "postcss-svgo": ["postcss-svgo@5.1.0", "", { "dependencies": { "postcss-value-parser": "^4.2.0", "svgo": "^2.7.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA=="], - "pino-pretty": ["pino-pretty@10.3.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/pino-pretty/-/pino-pretty-10.3.1.tgz", { "dependencies": { "colorette": "^2.0.7", "dateformat": "^4.6.3", "fast-copy": "^3.0.0", "fast-safe-stringify": "^2.1.1", "help-me": "^5.0.0", "joycon": "^3.1.1", "minimist": "^1.2.6", "on-exit-leak-free": "^2.1.0", "pino-abstract-transport": "^1.0.0", "pump": "^3.0.0", "readable-stream": "^4.0.0", "secure-json-parse": "^2.4.0", "sonic-boom": "^3.0.0", "strip-json-comments": "^3.1.1" }, "bin": { "pino-pretty": "bin.js" } }, "sha512-az8JbIYeN/1iLj2t0jR9DV48/LQ3RC6hZPpapKPkb84Q+yTidMCpgWxIT3N0flnBDilyBQ1luWNpOeJptjdp/g=="], + "postcss-unique-selectors": ["postcss-unique-selectors@5.1.1", "", { "dependencies": { "postcss-selector-parser": "^6.0.5" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA=="], - "pino-std-serializers": ["pino-std-serializers@6.2.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz", {}, "sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA=="], + "postcss-value-parser": ["postcss-value-parser@4.2.0", "", {}, "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="], - "pirates": ["pirates@4.0.7", "https://jfrog.booking.com:443/artifactory/api/npm/npm/pirates/-/pirates-4.0.7.tgz", {}, "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA=="], + "prelude-ls": ["prelude-ls@1.2.1", "", {}, "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="], - "piscina": ["piscina@4.9.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/piscina/-/piscina-4.9.2.tgz", { "optionalDependencies": { "@napi-rs/nice": "^1.0.1" } }, "sha512-Fq0FERJWFEUpB4eSY59wSNwXD4RYqR+nR/WiEVcZW8IWfVBxJJafcgTEZDQo8k3w0sUarJ8RyVbbUF4GQ2LGbQ=="], + "prettier": ["prettier@3.8.1", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg=="], - "pkg-dir": ["pkg-dir@4.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/pkg-dir/-/pkg-dir-4.2.0.tgz", { "dependencies": { "find-up": "^4.0.0" } }, "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ=="], + "pretty-format": ["pretty-format@30.2.0", "", { "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", "react-is": "^18.3.1" } }, "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA=="], - "pkginfo": ["pkginfo@0.4.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/pkginfo/-/pkginfo-0.4.1.tgz", {}, "sha512-8xCNE/aT/EXKenuMDZ+xTVwkT8gsoHN2z/Q29l80u0ppGEXVvsKRzNMbtKhg8LS8k1tJLAHHylf6p4VFmP6XUQ=="], + "proc-log": ["proc-log@3.0.0", "", {}, "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A=="], - "playwright": ["playwright@1.57.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/playwright/-/playwright-1.57.0.tgz", { "dependencies": { "playwright-core": "1.57.0" }, "optionalDependencies": { "fsevents": "2.3.2" }, "bin": { "playwright": "cli.js" } }, "sha512-ilYQj1s8sr2ppEJ2YVadYBN0Mb3mdo9J0wQ+UuDhzYqURwSoW4n1Xs5vs7ORwgDGmyEh33tRMeS8KhdkMoLXQw=="], + "process": ["process@0.11.10", "", {}, "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A=="], - "playwright-core": ["playwright-core@1.57.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/playwright-core/-/playwright-core-1.57.0.tgz", { "bin": { "playwright-core": "cli.js" } }, "sha512-agTcKlMw/mjBWOnD6kFZttAAGHgi/Nw0CZ2o6JqWSbMlI219lAFLZZCyqByTsvVAJq5XA5H8cA6PrvBRpBWEuQ=="], + "process-nextick-args": ["process-nextick-args@2.0.1", "", {}, "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="], - "pluralize": ["pluralize@8.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/pluralize/-/pluralize-8.0.0.tgz", {}, "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA=="], + "process-warning": ["process-warning@3.0.0", "", {}, "sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ=="], - "portfinder": ["portfinder@1.0.38", "https://jfrog.booking.com:443/artifactory/api/npm/npm/portfinder/-/portfinder-1.0.38.tgz", { "dependencies": { "async": "^3.2.6", "debug": "^4.3.6" } }, "sha512-rEwq/ZHlJIKw++XtLAO8PPuOQA/zaPJOZJ37BVuN97nLpMJeuDVLVGRwbFoBgLudgdTMP2hdRJP++H+8QOA3vg=="], + "progress": ["progress@2.0.3", "", {}, "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA=="], - "possible-typed-array-names": ["possible-typed-array-names@1.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", {}, "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg=="], + "promise.series": ["promise.series@0.2.0", "", {}, "sha512-VWQJyU2bcDTgZw8kpfBpB/ejZASlCrzwz5f2hjb/zlujOEB4oeiAhHygAWq8ubsX2GVkD4kCU5V2dwOTaCY5EQ=="], - "postcss": ["postcss@8.5.6", "https://jfrog.booking.com:443/artifactory/api/npm/npm/postcss/-/postcss-8.5.6.tgz", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg=="], + "proxy-addr": ["proxy-addr@2.0.7", "", { "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" } }, "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg=="], - "postcss-calc": ["postcss-calc@8.2.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/postcss-calc/-/postcss-calc-8.2.4.tgz", { "dependencies": { "postcss-selector-parser": "^6.0.9", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.2" } }, "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q=="], + "proxy-agent": ["proxy-agent@6.5.0", "", { "dependencies": { "agent-base": "^7.1.2", "debug": "^4.3.4", "http-proxy-agent": "^7.0.1", "https-proxy-agent": "^7.0.6", "lru-cache": "^7.14.1", "pac-proxy-agent": "^7.1.0", "proxy-from-env": "^1.1.0", "socks-proxy-agent": "^8.0.5" } }, "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A=="], - "postcss-colormin": ["postcss-colormin@5.3.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/postcss-colormin/-/postcss-colormin-5.3.1.tgz", { "dependencies": { "browserslist": "^4.21.4", "caniuse-api": "^3.0.0", "colord": "^2.9.1", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ=="], + "proxy-from-env": ["proxy-from-env@1.1.0", "", {}, "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="], - "postcss-convert-values": ["postcss-convert-values@5.1.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", { "dependencies": { "browserslist": "^4.21.4", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA=="], + "pump": ["pump@3.0.3", "", { "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA=="], - "postcss-discard-comments": ["postcss-discard-comments@5.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", { "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ=="], + "pumpify": ["pumpify@1.5.1", "", { "dependencies": { "duplexify": "^3.6.0", "inherits": "^2.0.3", "pump": "^2.0.0" } }, "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ=="], - "postcss-discard-duplicates": ["postcss-discard-duplicates@5.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", { "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw=="], + "punycode": ["punycode@2.3.1", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="], - "postcss-discard-empty": ["postcss-discard-empty@5.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", { "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A=="], + "puppeteer": ["puppeteer@24.37.5", "", { "dependencies": { "@puppeteer/browsers": "2.13.0", "chromium-bidi": "14.0.0", "cosmiconfig": "^9.0.0", "devtools-protocol": "0.0.1566079", "puppeteer-core": "24.37.5", "typed-query-selector": "^2.12.0" }, "bin": { "puppeteer": "lib/cjs/puppeteer/node/cli.js" } }, "sha512-3PAOIQLceyEmn1Fi76GkGO2EVxztv5OtdlB1m8hMUZL3f8KDHnlvXbvCXv+Ls7KzF1R0KdKBqLuT/Hhrok12hQ=="], - "postcss-discard-overridden": ["postcss-discard-overridden@5.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", { "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw=="], + "puppeteer-core": ["puppeteer-core@24.37.5", "", { "dependencies": { "@puppeteer/browsers": "2.13.0", "chromium-bidi": "14.0.0", "debug": "^4.4.3", "devtools-protocol": "0.0.1566079", "typed-query-selector": "^2.12.0", "webdriver-bidi-protocol": "0.4.1", "ws": "^8.19.0" } }, "sha512-ybL7iE78YPN4T6J+sPLO7r0lSByp/0NN6PvfBEql219cOnttoTFzCWKiBOjstXSqi/OKpwae623DWAsL7cn2MQ=="], - "postcss-load-config": ["postcss-load-config@3.1.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/postcss-load-config/-/postcss-load-config-3.1.4.tgz", { "dependencies": { "lilconfig": "^2.0.5", "yaml": "^1.10.2" }, "peerDependencies": { "postcss": ">=8.0.9", "ts-node": ">=9.0.0" }, "optionalPeers": ["postcss", "ts-node"] }, "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg=="], + "pure-rand": ["pure-rand@7.0.1", "", {}, "sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ=="], - "postcss-merge-longhand": ["postcss-merge-longhand@5.1.7", "https://jfrog.booking.com:443/artifactory/api/npm/npm/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", { "dependencies": { "postcss-value-parser": "^4.2.0", "stylehacks": "^5.1.1" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ=="], + "qs": ["qs@6.15.0", "", { "dependencies": { "side-channel": "^1.1.0" } }, "sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ=="], - "postcss-merge-rules": ["postcss-merge-rules@5.1.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", { "dependencies": { "browserslist": "^4.21.4", "caniuse-api": "^3.0.0", "cssnano-utils": "^3.1.0", "postcss-selector-parser": "^6.0.5" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g=="], + "quansync": ["quansync@1.0.0", "", {}, "sha512-5xZacEEufv3HSTPQuchrvV6soaiACMFnq1H8wkVioctoH3TRha9Sz66lOxRwPK/qZj7HPiSveih9yAyh98gvqA=="], - "postcss-minify-font-values": ["postcss-minify-font-values@5.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA=="], + "queue-microtask": ["queue-microtask@1.2.3", "", {}, "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="], - "postcss-minify-gradients": ["postcss-minify-gradients@5.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", { "dependencies": { "colord": "^2.9.1", "cssnano-utils": "^3.1.0", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw=="], + "quick-format-unescaped": ["quick-format-unescaped@4.0.4", "", {}, "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg=="], - "postcss-minify-params": ["postcss-minify-params@5.1.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", { "dependencies": { "browserslist": "^4.21.4", "cssnano-utils": "^3.1.0", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw=="], + "quick-lru": ["quick-lru@5.1.1", "", {}, "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA=="], - "postcss-minify-selectors": ["postcss-minify-selectors@5.2.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", { "dependencies": { "postcss-selector-parser": "^6.0.5" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg=="], + "randombytes": ["randombytes@2.1.0", "", { "dependencies": { "safe-buffer": "^5.1.0" } }, "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ=="], - "postcss-modules": ["postcss-modules@4.3.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/postcss-modules/-/postcss-modules-4.3.1.tgz", { "dependencies": { "generic-names": "^4.0.0", "icss-replace-symbols": "^1.1.0", "lodash.camelcase": "^4.3.0", "postcss-modules-extract-imports": "^3.0.0", "postcss-modules-local-by-default": "^4.0.0", "postcss-modules-scope": "^3.0.0", "postcss-modules-values": "^4.0.0", "string-hash": "^1.1.1" }, "peerDependencies": { "postcss": "^8.0.0" } }, "sha512-ItUhSUxBBdNamkT3KzIZwYNNRFKmkJrofvC2nWab3CPKhYBQ1f27XXh1PAPE27Psx58jeelPsxWB/+og+KEH0Q=="], + "range-parser": ["range-parser@1.2.1", "", {}, "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="], - "postcss-modules-extract-imports": ["postcss-modules-extract-imports@3.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", { "peerDependencies": { "postcss": "^8.1.0" } }, "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q=="], + "raw-body": ["raw-body@2.5.2", "", { "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" } }, "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA=="], - "postcss-modules-local-by-default": ["postcss-modules-local-by-default@4.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", { "dependencies": { "icss-utils": "^5.0.0", "postcss-selector-parser": "^7.0.0", "postcss-value-parser": "^4.1.0" }, "peerDependencies": { "postcss": "^8.1.0" } }, "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw=="], + "react": ["react@18.3.1", "", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ=="], - "postcss-modules-scope": ["postcss-modules-scope@3.2.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", { "dependencies": { "postcss-selector-parser": "^7.0.0" }, "peerDependencies": { "postcss": "^8.1.0" } }, "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA=="], + "react-is": ["react-is@18.3.1", "", {}, "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="], - "postcss-modules-values": ["postcss-modules-values@4.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", { "dependencies": { "icss-utils": "^5.0.0" }, "peerDependencies": { "postcss": "^8.1.0" } }, "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ=="], + "react-reconciler": ["react-reconciler@0.29.2", "", { "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" }, "peerDependencies": { "react": "^18.3.1" } }, "sha512-zZQqIiYgDCTP/f1N/mAR10nJGrPD2ZR+jDSEsKWJHYC7Cm2wodlwbR3upZRdC3cjIjSlTLNVyO7Iu0Yy7t2AYg=="], - "postcss-normalize-charset": ["postcss-normalize-charset@5.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", { "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg=="], + "readable-stream": ["readable-stream@4.7.0", "", { "dependencies": { "abort-controller": "^3.0.0", "buffer": "^6.0.3", "events": "^3.3.0", "process": "^0.11.10", "string_decoder": "^1.3.0" } }, "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg=="], - "postcss-normalize-display-values": ["postcss-normalize-display-values@5.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA=="], + "real-require": ["real-require@0.2.0", "", {}, "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg=="], - "postcss-normalize-positions": ["postcss-normalize-positions@5.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg=="], + "reflect-metadata": ["reflect-metadata@0.2.2", "", {}, "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q=="], - "postcss-normalize-repeat-style": ["postcss-normalize-repeat-style@5.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g=="], + "reflect.getprototypeof": ["reflect.getprototypeof@1.0.10", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.9", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.7", "get-proto": "^1.0.1", "which-builtin-type": "^1.2.1" } }, "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw=="], - "postcss-normalize-string": ["postcss-normalize-string@5.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w=="], + "regenerate": ["regenerate@1.4.2", "", {}, "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A=="], - "postcss-normalize-timing-functions": ["postcss-normalize-timing-functions@5.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg=="], + "regenerate-unicode-properties": ["regenerate-unicode-properties@10.2.2", "", { "dependencies": { "regenerate": "^1.4.2" } }, "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g=="], - "postcss-normalize-unicode": ["postcss-normalize-unicode@5.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", { "dependencies": { "browserslist": "^4.21.4", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA=="], + "regexp.prototype.flags": ["regexp.prototype.flags@1.5.4", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-errors": "^1.3.0", "get-proto": "^1.0.1", "gopd": "^1.2.0", "set-function-name": "^2.0.2" } }, "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA=="], - "postcss-normalize-url": ["postcss-normalize-url@5.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", { "dependencies": { "normalize-url": "^6.0.1", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew=="], + "regexpu-core": ["regexpu-core@6.4.0", "", { "dependencies": { "regenerate": "^1.4.2", "regenerate-unicode-properties": "^10.2.2", "regjsgen": "^0.8.0", "regjsparser": "^0.13.0", "unicode-match-property-ecmascript": "^2.0.0", "unicode-match-property-value-ecmascript": "^2.2.1" } }, "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA=="], - "postcss-normalize-whitespace": ["postcss-normalize-whitespace@5.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA=="], + "regjsgen": ["regjsgen@0.8.0", "", {}, "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q=="], - "postcss-ordered-values": ["postcss-ordered-values@5.1.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", { "dependencies": { "cssnano-utils": "^3.1.0", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ=="], + "regjsparser": ["regjsparser@0.13.0", "", { "dependencies": { "jsesc": "~3.1.0" }, "bin": { "regjsparser": "bin/parser" } }, "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q=="], - "postcss-reduce-initial": ["postcss-reduce-initial@5.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", { "dependencies": { "browserslist": "^4.21.4", "caniuse-api": "^3.0.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg=="], + "require-directory": ["require-directory@2.1.1", "", {}, "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="], - "postcss-reduce-transforms": ["postcss-reduce-transforms@5.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ=="], + "require-from-string": ["require-from-string@2.0.2", "", {}, "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="], - "postcss-selector-parser": ["postcss-selector-parser@7.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA=="], + "requires-port": ["requires-port@1.0.0", "", {}, "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="], - "postcss-svgo": ["postcss-svgo@5.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/postcss-svgo/-/postcss-svgo-5.1.0.tgz", { "dependencies": { "postcss-value-parser": "^4.2.0", "svgo": "^2.7.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA=="], + "resolve": ["resolve@1.22.11", "", { "dependencies": { "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ=="], - "postcss-unique-selectors": ["postcss-unique-selectors@5.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", { "dependencies": { "postcss-selector-parser": "^6.0.5" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA=="], + "resolve-alpn": ["resolve-alpn@1.2.1", "", {}, "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g=="], - "postcss-value-parser": ["postcss-value-parser@4.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", {}, "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="], + "resolve-cwd": ["resolve-cwd@3.0.0", "", { "dependencies": { "resolve-from": "^5.0.0" } }, "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg=="], - "prebuild-install": ["prebuild-install@7.1.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/prebuild-install/-/prebuild-install-7.1.3.tgz", { "dependencies": { "detect-libc": "^2.0.0", "expand-template": "^2.0.3", "github-from-package": "0.0.0", "minimist": "^1.2.3", "mkdirp-classic": "^0.5.3", "napi-build-utils": "^2.0.0", "node-abi": "^3.3.0", "pump": "^3.0.0", "rc": "^1.2.7", "simple-get": "^4.0.0", "tar-fs": "^2.0.0", "tunnel-agent": "^0.6.0" }, "bin": { "prebuild-install": "bin.js" } }, "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug=="], + "resolve-from": ["resolve-from@4.0.0", "", {}, "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="], - "prelude-ls": ["prelude-ls@1.2.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/prelude-ls/-/prelude-ls-1.2.1.tgz", {}, "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="], + "resolve-pkg-maps": ["resolve-pkg-maps@1.0.0", "", {}, "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw=="], - "prettier": ["prettier@2.8.8", "https://jfrog.booking.com:443/artifactory/api/npm/npm/prettier/-/prettier-2.8.8.tgz", { "bin": { "prettier": "bin-prettier.js" } }, "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q=="], + "resolve.exports": ["resolve.exports@2.0.3", "", {}, "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A=="], - "pretty-format": ["pretty-format@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/pretty-format/-/pretty-format-30.2.0.tgz", { "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", "react-is": "^18.3.1" } }, "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA=="], + "responselike": ["responselike@3.0.0", "", { "dependencies": { "lowercase-keys": "^3.0.0" } }, "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg=="], - "proc-log": ["proc-log@3.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/proc-log/-/proc-log-3.0.0.tgz", {}, "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A=="], + "restore-cursor": ["restore-cursor@3.1.0", "", { "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" } }, "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA=="], - "process": ["process@0.11.10", "https://jfrog.booking.com:443/artifactory/api/npm/npm/process/-/process-0.11.10.tgz", {}, "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A=="], + "reusify": ["reusify@1.1.0", "", {}, "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw=="], - "process-nextick-args": ["process-nextick-args@2.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/process-nextick-args/-/process-nextick-args-2.0.1.tgz", {}, "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="], + "rolldown": ["rolldown@1.0.0-beta.57", "", { "dependencies": { "@oxc-project/types": "=0.103.0", "@rolldown/pluginutils": "1.0.0-beta.57" }, "optionalDependencies": { "@rolldown/binding-android-arm64": "1.0.0-beta.57", "@rolldown/binding-darwin-arm64": "1.0.0-beta.57", "@rolldown/binding-darwin-x64": "1.0.0-beta.57", "@rolldown/binding-freebsd-x64": "1.0.0-beta.57", "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-beta.57", "@rolldown/binding-linux-arm64-gnu": "1.0.0-beta.57", "@rolldown/binding-linux-arm64-musl": "1.0.0-beta.57", "@rolldown/binding-linux-x64-gnu": "1.0.0-beta.57", "@rolldown/binding-linux-x64-musl": "1.0.0-beta.57", "@rolldown/binding-openharmony-arm64": "1.0.0-beta.57", "@rolldown/binding-wasm32-wasi": "1.0.0-beta.57", "@rolldown/binding-win32-arm64-msvc": "1.0.0-beta.57", "@rolldown/binding-win32-x64-msvc": "1.0.0-beta.57" }, "bin": { "rolldown": "bin/cli.mjs" } }, "sha512-lMMxcNN71GMsSko8RyeTaFoATHkCh4IWU7pYF73ziMYjhHZWfVesC6GQ+iaJCvZmVjvgSks9Ks1aaqEkBd8udg=="], - "process-warning": ["process-warning@3.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/process-warning/-/process-warning-3.0.0.tgz", {}, "sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ=="], + "rolldown-plugin-dts": ["rolldown-plugin-dts@0.20.0", "", { "dependencies": { "@babel/generator": "^7.28.5", "@babel/parser": "^7.28.5", "@babel/types": "^7.28.5", "ast-kit": "^2.2.0", "birpc": "^4.0.0", "dts-resolver": "^2.1.3", "get-tsconfig": "^4.13.0", "obug": "^2.1.1" }, "peerDependencies": { "@ts-macro/tsc": "^0.3.6", "@typescript/native-preview": ">=7.0.0-dev.20250601.1", "rolldown": "^1.0.0-beta.57", "typescript": "^5.0.0", "vue-tsc": "~3.2.0" }, "optionalPeers": ["@ts-macro/tsc", "@typescript/native-preview", "typescript", "vue-tsc"] }, "sha512-cLAY1kN2ilTYMfZcFlGWbXnu6Nb+8uwUBsi+Mjbh4uIx7IN8uMOmJ7RxrrRgPsO4H7eSz3E+JwGoL1gyugiyUA=="], - "progress": ["progress@2.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/progress/-/progress-2.0.3.tgz", {}, "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA=="], + "rollup": ["rollup@4.59.0", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.59.0", "@rollup/rollup-android-arm64": "4.59.0", "@rollup/rollup-darwin-arm64": "4.59.0", "@rollup/rollup-darwin-x64": "4.59.0", "@rollup/rollup-freebsd-arm64": "4.59.0", "@rollup/rollup-freebsd-x64": "4.59.0", "@rollup/rollup-linux-arm-gnueabihf": "4.59.0", "@rollup/rollup-linux-arm-musleabihf": "4.59.0", "@rollup/rollup-linux-arm64-gnu": "4.59.0", "@rollup/rollup-linux-arm64-musl": "4.59.0", "@rollup/rollup-linux-loong64-gnu": "4.59.0", "@rollup/rollup-linux-loong64-musl": "4.59.0", "@rollup/rollup-linux-ppc64-gnu": "4.59.0", "@rollup/rollup-linux-ppc64-musl": "4.59.0", "@rollup/rollup-linux-riscv64-gnu": "4.59.0", "@rollup/rollup-linux-riscv64-musl": "4.59.0", "@rollup/rollup-linux-s390x-gnu": "4.59.0", "@rollup/rollup-linux-x64-gnu": "4.59.0", "@rollup/rollup-linux-x64-musl": "4.59.0", "@rollup/rollup-openbsd-x64": "4.59.0", "@rollup/rollup-openharmony-arm64": "4.59.0", "@rollup/rollup-win32-arm64-msvc": "4.59.0", "@rollup/rollup-win32-ia32-msvc": "4.59.0", "@rollup/rollup-win32-x64-gnu": "4.59.0", "@rollup/rollup-win32-x64-msvc": "4.59.0", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg=="], - "promise.series": ["promise.series@0.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/promise.series/-/promise.series-0.2.0.tgz", {}, "sha512-VWQJyU2bcDTgZw8kpfBpB/ejZASlCrzwz5f2hjb/zlujOEB4oeiAhHygAWq8ubsX2GVkD4kCU5V2dwOTaCY5EQ=="], + "rollup-plugin-copy": ["rollup-plugin-copy@3.5.0", "", { "dependencies": { "@types/fs-extra": "^8.0.1", "colorette": "^1.1.0", "fs-extra": "^8.1.0", "globby": "10.0.1", "is-plain-object": "^3.0.0" } }, "sha512-wI8D5dvYovRMx/YYKtUNt3Yxaw4ORC9xo6Gt9t22kveWz1enG9QrhVlagzwrxSC455xD1dHMKhIJkbsQ7d48BA=="], - "proxy-addr": ["proxy-addr@2.0.7", "https://jfrog.booking.com:443/artifactory/api/npm/npm/proxy-addr/-/proxy-addr-2.0.7.tgz", { "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" } }, "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg=="], + "rollup-plugin-postcss": ["rollup-plugin-postcss@4.0.2", "", { "dependencies": { "chalk": "^4.1.0", "concat-with-sourcemaps": "^1.1.0", "cssnano": "^5.0.1", "import-cwd": "^3.0.0", "p-queue": "^6.6.2", "pify": "^5.0.0", "postcss-load-config": "^3.0.0", "postcss-modules": "^4.0.0", "promise.series": "^0.2.0", "resolve": "^1.19.0", "rollup-pluginutils": "^2.8.2", "safe-identifier": "^0.4.2", "style-inject": "^0.3.0" }, "peerDependencies": { "postcss": "8.x" } }, "sha512-05EaY6zvZdmvPUDi3uCcAQoESDcYnv8ogJJQRp6V5kZ6J6P7uAVJlrTZcaaA20wTH527YTnKfkAoPxWI/jPp4w=="], - "proxy-agent": ["proxy-agent@6.5.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/proxy-agent/-/proxy-agent-6.5.0.tgz", { "dependencies": { "agent-base": "^7.1.2", "debug": "^4.3.4", "http-proxy-agent": "^7.0.1", "https-proxy-agent": "^7.0.6", "lru-cache": "^7.14.1", "pac-proxy-agent": "^7.1.0", "proxy-from-env": "^1.1.0", "socks-proxy-agent": "^8.0.5" } }, "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A=="], + "rollup-plugin-typescript2": ["rollup-plugin-typescript2@0.36.0", "", { "dependencies": { "@rollup/pluginutils": "^4.1.2", "find-cache-dir": "^3.3.2", "fs-extra": "^10.0.0", "semver": "^7.5.4", "tslib": "^2.6.2" }, "peerDependencies": { "rollup": ">=1.26.3", "typescript": ">=2.4.0" } }, "sha512-NB2CSQDxSe9+Oe2ahZbf+B4bh7pHwjV5L+RSYpCu7Q5ROuN94F9b6ioWwKfz3ueL3KTtmX4o2MUH2cgHDIEUsw=="], - "proxy-from-env": ["proxy-from-env@1.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/proxy-from-env/-/proxy-from-env-1.1.0.tgz", {}, "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="], + "rollup-pluginutils": ["rollup-pluginutils@2.8.2", "", { "dependencies": { "estree-walker": "^0.6.1" } }, "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ=="], - "pump": ["pump@3.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/pump/-/pump-3.0.3.tgz", { "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA=="], + "rrweb-cssom": ["rrweb-cssom@0.8.0", "", {}, "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw=="], - "pumpify": ["pumpify@1.5.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/pumpify/-/pumpify-1.5.1.tgz", { "dependencies": { "duplexify": "^3.6.0", "inherits": "^2.0.3", "pump": "^2.0.0" } }, "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ=="], + "run-applescript": ["run-applescript@7.1.0", "", {}, "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q=="], - "punycode": ["punycode@2.3.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/punycode/-/punycode-2.3.1.tgz", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="], + "run-parallel": ["run-parallel@1.2.0", "", { "dependencies": { "queue-microtask": "^1.2.2" } }, "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="], - "puppeteer": ["puppeteer@24.30.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/puppeteer/-/puppeteer-24.30.0.tgz", { "dependencies": { "@puppeteer/browsers": "2.10.13", "chromium-bidi": "11.0.0", "cosmiconfig": "^9.0.0", "devtools-protocol": "0.0.1521046", "puppeteer-core": "24.30.0", "typed-query-selector": "^2.12.0" }, "bin": { "puppeteer": "lib/cjs/puppeteer/node/cli.js" } }, "sha512-A5OtCi9WpiXBQgJ2vQiZHSyrAzQmO/WDsvghqlN4kgw21PhxA5knHUaUQq/N3EMt8CcvSS0RM+kmYLJmedR3TQ=="], + "safe-array-concat": ["safe-array-concat@1.1.3", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", "get-intrinsic": "^1.2.6", "has-symbols": "^1.1.0", "isarray": "^2.0.5" } }, "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q=="], - "puppeteer-core": ["puppeteer-core@24.30.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/puppeteer-core/-/puppeteer-core-24.30.0.tgz", { "dependencies": { "@puppeteer/browsers": "2.10.13", "chromium-bidi": "11.0.0", "debug": "^4.4.3", "devtools-protocol": "0.0.1521046", "typed-query-selector": "^2.12.0", "webdriver-bidi-protocol": "0.3.8", "ws": "^8.18.3" } }, "sha512-2S3Smy0t0W4wJnNvDe7W0bE7wDmZjfZ3ljfMgJd6hn2Hq/f0jgN+x9PULZo2U3fu5UUIJ+JP8cNUGllu8P91Pg=="], + "safe-buffer": ["safe-buffer@5.1.2", "", {}, "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="], - "pure-rand": ["pure-rand@7.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/pure-rand/-/pure-rand-7.0.1.tgz", {}, "sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ=="], + "safe-identifier": ["safe-identifier@0.4.2", "", {}, "sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w=="], - "qs": ["qs@6.14.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/qs/-/qs-6.14.0.tgz", { "dependencies": { "side-channel": "^1.1.0" } }, "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w=="], + "safe-push-apply": ["safe-push-apply@1.0.0", "", { "dependencies": { "es-errors": "^1.3.0", "isarray": "^2.0.5" } }, "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA=="], - "quansync": ["quansync@0.2.11", "https://jfrog.booking.com:443/artifactory/api/npm/npm/quansync/-/quansync-0.2.11.tgz", {}, "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA=="], + "safe-regex-test": ["safe-regex-test@1.1.0", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-regex": "^1.2.1" } }, "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw=="], - "queue-microtask": ["queue-microtask@1.2.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/queue-microtask/-/queue-microtask-1.2.3.tgz", {}, "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="], + "safe-stable-stringify": ["safe-stable-stringify@2.5.0", "", {}, "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA=="], - "quick-format-unescaped": ["quick-format-unescaped@4.0.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", {}, "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg=="], + "safer-buffer": ["safer-buffer@2.1.2", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="], - "quick-lru": ["quick-lru@5.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/quick-lru/-/quick-lru-5.1.1.tgz", {}, "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA=="], + "sample-tsdown": ["sample-tsdown@workspace:samples/sample-tsdown"], - "randombytes": ["randombytes@2.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/randombytes/-/randombytes-2.1.0.tgz", { "dependencies": { "safe-buffer": "^5.1.0" } }, "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ=="], + "saxes": ["saxes@6.0.0", "", { "dependencies": { "xmlchars": "^2.2.0" } }, "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA=="], - "range-parser": ["range-parser@1.2.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/range-parser/-/range-parser-1.2.1.tgz", {}, "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="], + "scheduler": ["scheduler@0.23.2", "", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ=="], - "raw-body": ["raw-body@2.5.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/raw-body/-/raw-body-2.5.2.tgz", { "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" } }, "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA=="], + "schema-utils": ["schema-utils@4.3.3", "", { "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", "ajv-formats": "^2.1.1", "ajv-keywords": "^5.1.0" } }, "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA=="], - "rc": ["rc@1.2.8", "https://jfrog.booking.com:443/artifactory/api/npm/npm/rc/-/rc-1.2.8.tgz", { "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" }, "bin": { "rc": "./cli.js" } }, "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw=="], + "secure-compare": ["secure-compare@3.0.1", "", {}, "sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw=="], - "react": ["react@18.3.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/react/-/react-18.3.1.tgz", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ=="], + "secure-json-parse": ["secure-json-parse@2.7.0", "", {}, "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw=="], - "react-is": ["react-is@18.3.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/react-is/-/react-is-18.3.1.tgz", {}, "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="], + "seek-bzip": ["seek-bzip@2.0.0", "", { "dependencies": { "commander": "^6.0.0" }, "bin": { "seek-bunzip": "bin/seek-bunzip", "seek-table": "bin/seek-bzip-table" } }, "sha512-SMguiTnYrhpLdk3PwfzHeotrcwi8bNV4iemL9tx9poR/yeaMYwB9VzR1w7b57DuWpuqR8n6oZboi0hj3AxZxQg=="], - "react-reconciler": ["react-reconciler@0.29.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/react-reconciler/-/react-reconciler-0.29.2.tgz", { "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" }, "peerDependencies": { "react": "^18.3.1" } }, "sha512-zZQqIiYgDCTP/f1N/mAR10nJGrPD2ZR+jDSEsKWJHYC7Cm2wodlwbR3upZRdC3cjIjSlTLNVyO7Iu0Yy7t2AYg=="], + "semver": ["semver@7.7.4", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA=="], - "readable-stream": ["readable-stream@4.7.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/readable-stream/-/readable-stream-4.7.0.tgz", { "dependencies": { "abort-controller": "^3.0.0", "buffer": "^6.0.3", "events": "^3.3.0", "process": "^0.11.10", "string_decoder": "^1.3.0" } }, "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg=="], + "semver-regex": ["semver-regex@4.0.5", "", {}, "sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw=="], - "readdirp": ["readdirp@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/readdirp/-/readdirp-4.1.2.tgz", {}, "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg=="], + "semver-truncate": ["semver-truncate@3.0.0", "", { "dependencies": { "semver": "^7.3.5" } }, "sha512-LJWA9kSvMolR51oDE6PN3kALBNaUdkxzAGcexw8gjMA8xr5zUqK0JiR3CgARSqanYF3Z1YHvsErb1KDgh+v7Rg=="], - "real-require": ["real-require@0.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/real-require/-/real-require-0.2.0.tgz", {}, "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg=="], + "send": ["send@0.19.0", "", { "dependencies": { "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", "http-errors": "2.0.0", "mime": "1.6.0", "ms": "2.1.3", "on-finished": "2.4.1", "range-parser": "~1.2.1", "statuses": "2.0.1" } }, "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw=="], - "reflect-metadata": ["reflect-metadata@0.2.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/reflect-metadata/-/reflect-metadata-0.2.2.tgz", {}, "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q=="], + "serialize-javascript": ["serialize-javascript@6.0.2", "", { "dependencies": { "randombytes": "^2.1.0" } }, "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g=="], - "reflect.getprototypeof": ["reflect.getprototypeof@1.0.10", "https://jfrog.booking.com:443/artifactory/api/npm/npm/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.9", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.7", "get-proto": "^1.0.1", "which-builtin-type": "^1.2.1" } }, "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw=="], + "serve-static": ["serve-static@1.16.2", "", { "dependencies": { "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", "send": "0.19.0" } }, "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw=="], - "regenerate": ["regenerate@1.4.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/regenerate/-/regenerate-1.4.2.tgz", {}, "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A=="], + "set-function-length": ["set-function-length@1.2.2", "", { "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", "has-property-descriptors": "^1.0.2" } }, "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg=="], - "regenerate-unicode-properties": ["regenerate-unicode-properties@10.2.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz", { "dependencies": { "regenerate": "^1.4.2" } }, "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g=="], + "set-function-name": ["set-function-name@2.0.2", "", { "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "functions-have-names": "^1.2.3", "has-property-descriptors": "^1.0.2" } }, "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ=="], - "regexp.prototype.flags": ["regexp.prototype.flags@1.5.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-errors": "^1.3.0", "get-proto": "^1.0.1", "gopd": "^1.2.0", "set-function-name": "^2.0.2" } }, "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA=="], + "set-proto": ["set-proto@1.0.0", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0" } }, "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw=="], - "regexpu-core": ["regexpu-core@6.4.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/regexpu-core/-/regexpu-core-6.4.0.tgz", { "dependencies": { "regenerate": "^1.4.2", "regenerate-unicode-properties": "^10.2.2", "regjsgen": "^0.8.0", "regjsparser": "^0.13.0", "unicode-match-property-ecmascript": "^2.0.0", "unicode-match-property-value-ecmascript": "^2.2.1" } }, "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA=="], + "setprototypeof": ["setprototypeof@1.2.0", "", {}, "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="], - "regjsgen": ["regjsgen@0.8.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/regjsgen/-/regjsgen-0.8.0.tgz", {}, "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q=="], + "shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="], - "regjsparser": ["regjsparser@0.13.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/regjsparser/-/regjsparser-0.13.0.tgz", { "dependencies": { "jsesc": "~3.1.0" }, "bin": { "regjsparser": "bin/parser" } }, "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q=="], + "shebang-regex": ["shebang-regex@3.0.0", "", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="], - "require-directory": ["require-directory@2.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/require-directory/-/require-directory-2.1.1.tgz", {}, "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="], + "shell-exec": ["shell-exec@1.0.2", "", {}, "sha512-jyVd+kU2X+mWKMmGhx4fpWbPsjvD53k9ivqetutVW/BQ+WIZoDoP4d8vUMGezV6saZsiNoW2f9GIhg9Dondohg=="], - "require-from-string": ["require-from-string@2.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/require-from-string/-/require-from-string-2.0.2.tgz", {}, "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="], + "side-channel": ["side-channel@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3", "side-channel-list": "^1.0.0", "side-channel-map": "^1.0.1", "side-channel-weakmap": "^1.0.2" } }, "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw=="], - "requires-port": ["requires-port@1.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/requires-port/-/requires-port-1.0.0.tgz", {}, "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="], + "side-channel-list": ["side-channel-list@1.0.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3" } }, "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA=="], - "resolve": ["resolve@1.22.11", "https://jfrog.booking.com:443/artifactory/api/npm/npm/resolve/-/resolve-1.22.11.tgz", { "dependencies": { "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ=="], + "side-channel-map": ["side-channel-map@1.0.1", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.5", "object-inspect": "^1.13.3" } }, "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA=="], - "resolve-alpn": ["resolve-alpn@1.2.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/resolve-alpn/-/resolve-alpn-1.2.1.tgz", {}, "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g=="], + "side-channel-weakmap": ["side-channel-weakmap@1.0.2", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.5", "object-inspect": "^1.13.3", "side-channel-map": "^1.0.1" } }, "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A=="], - "resolve-cwd": ["resolve-cwd@3.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/resolve-cwd/-/resolve-cwd-3.0.0.tgz", { "dependencies": { "resolve-from": "^5.0.0" } }, "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg=="], + "siginfo": ["siginfo@2.0.0", "", {}, "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g=="], - "resolve-from": ["resolve-from@4.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/resolve-from/-/resolve-from-4.0.0.tgz", {}, "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="], + "signal-exit": ["signal-exit@3.0.7", "", {}, "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="], - "resolve-pkg-maps": ["resolve-pkg-maps@1.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", {}, "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw=="], + "sirv": ["sirv@3.0.2", "", { "dependencies": { "@polka/url": "^1.0.0-next.24", "mrmime": "^2.0.0", "totalist": "^3.0.0" } }, "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g=="], - "resolve.exports": ["resolve.exports@2.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/resolve.exports/-/resolve.exports-2.0.3.tgz", {}, "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A=="], + "slash": ["slash@3.0.0", "", {}, "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="], - "responselike": ["responselike@3.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/responselike/-/responselike-3.0.0.tgz", { "dependencies": { "lowercase-keys": "^3.0.0" } }, "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg=="], + "slice-ansi": ["slice-ansi@7.1.2", "", { "dependencies": { "ansi-styles": "^6.2.1", "is-fullwidth-code-point": "^5.0.0" } }, "sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w=="], - "restore-cursor": ["restore-cursor@3.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/restore-cursor/-/restore-cursor-3.1.0.tgz", { "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" } }, "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA=="], + "smart-buffer": ["smart-buffer@4.2.0", "", {}, "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg=="], - "reusify": ["reusify@1.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/reusify/-/reusify-1.1.0.tgz", {}, "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw=="], + "smol-toml": ["smol-toml@1.6.0", "", {}, "sha512-4zemZi0HvTnYwLfrpk/CF9LOd9Lt87kAt50GnqhMpyF9U3poDAP2+iukq2bZsO/ufegbYehBkqINbsWxj4l4cw=="], - "rolldown": ["rolldown@1.0.0-beta.51", "https://jfrog.booking.com:443/artifactory/api/npm/npm/rolldown/-/rolldown-1.0.0-beta.51.tgz", { "dependencies": { "@oxc-project/types": "=0.98.0", "@rolldown/pluginutils": "1.0.0-beta.51" }, "optionalDependencies": { "@rolldown/binding-android-arm64": "1.0.0-beta.51", "@rolldown/binding-darwin-arm64": "1.0.0-beta.51", "@rolldown/binding-darwin-x64": "1.0.0-beta.51", "@rolldown/binding-freebsd-x64": "1.0.0-beta.51", "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-beta.51", "@rolldown/binding-linux-arm64-gnu": "1.0.0-beta.51", "@rolldown/binding-linux-arm64-musl": "1.0.0-beta.51", "@rolldown/binding-linux-x64-gnu": "1.0.0-beta.51", "@rolldown/binding-linux-x64-musl": "1.0.0-beta.51", "@rolldown/binding-openharmony-arm64": "1.0.0-beta.51", "@rolldown/binding-wasm32-wasi": "1.0.0-beta.51", "@rolldown/binding-win32-arm64-msvc": "1.0.0-beta.51", "@rolldown/binding-win32-ia32-msvc": "1.0.0-beta.51", "@rolldown/binding-win32-x64-msvc": "1.0.0-beta.51" }, "bin": { "rolldown": "bin/cli.mjs" } }, "sha512-ZRLgPlS91l4JztLYEZnmMcd3Umcla1hkXJgiEiR4HloRJBBoeaX8qogTu5Jfu36rRMVLndzqYv0h+M5gJAkUfg=="], + "socks": ["socks@2.8.7", "", { "dependencies": { "ip-address": "^10.0.1", "smart-buffer": "^4.2.0" } }, "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A=="], - "rolldown-plugin-dts": ["rolldown-plugin-dts@0.18.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/rolldown-plugin-dts/-/rolldown-plugin-dts-0.18.1.tgz", { "dependencies": { "@babel/generator": "^7.28.5", "@babel/parser": "^7.28.5", "@babel/types": "^7.28.5", "ast-kit": "^2.2.0", "birpc": "^2.8.0", "dts-resolver": "^2.1.3", "get-tsconfig": "^4.13.0", "magic-string": "^0.30.21", "obug": "^2.1.1" }, "peerDependencies": { "@ts-macro/tsc": "^0.3.6", "@typescript/native-preview": ">=7.0.0-dev.20250601.1", "rolldown": "^1.0.0-beta.51", "typescript": "^5.0.0", "vue-tsc": "~3.1.0" }, "optionalPeers": ["@ts-macro/tsc", "@typescript/native-preview", "typescript", "vue-tsc"] }, "sha512-uIgNMix6OI+6bSkw0nw6O+G/ydPRCWKwvvcEyL6gWkVkSFVGWWO23DX4ZYVOqC7w5u2c8uPY9Q74U0QCKvegFA=="], + "socks-proxy-agent": ["socks-proxy-agent@8.0.5", "", { "dependencies": { "agent-base": "^7.1.2", "debug": "^4.3.4", "socks": "^2.8.3" } }, "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw=="], - "rollup": ["rollup@4.53.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/rollup/-/rollup-4.53.2.tgz", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.53.2", "@rollup/rollup-android-arm64": "4.53.2", "@rollup/rollup-darwin-arm64": "4.53.2", "@rollup/rollup-darwin-x64": "4.53.2", "@rollup/rollup-freebsd-arm64": "4.53.2", "@rollup/rollup-freebsd-x64": "4.53.2", "@rollup/rollup-linux-arm-gnueabihf": "4.53.2", "@rollup/rollup-linux-arm-musleabihf": "4.53.2", "@rollup/rollup-linux-arm64-gnu": "4.53.2", "@rollup/rollup-linux-arm64-musl": "4.53.2", "@rollup/rollup-linux-loong64-gnu": "4.53.2", "@rollup/rollup-linux-ppc64-gnu": "4.53.2", "@rollup/rollup-linux-riscv64-gnu": "4.53.2", "@rollup/rollup-linux-riscv64-musl": "4.53.2", "@rollup/rollup-linux-s390x-gnu": "4.53.2", "@rollup/rollup-linux-x64-gnu": "4.53.2", "@rollup/rollup-linux-x64-musl": "4.53.2", "@rollup/rollup-openharmony-arm64": "4.53.2", "@rollup/rollup-win32-arm64-msvc": "4.53.2", "@rollup/rollup-win32-ia32-msvc": "4.53.2", "@rollup/rollup-win32-x64-gnu": "4.53.2", "@rollup/rollup-win32-x64-msvc": "4.53.2", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-MHngMYwGJVi6Fmnk6ISmnk7JAHRNF0UkuucA0CUW3N3a4KnONPEZz+vUanQP/ZC/iY1Qkf3bwPWzyY84wEks1g=="], + "sonic-boom": ["sonic-boom@3.8.1", "", { "dependencies": { "atomic-sleep": "^1.0.0" } }, "sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg=="], - "rollup-plugin-copy": ["rollup-plugin-copy@3.5.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/rollup-plugin-copy/-/rollup-plugin-copy-3.5.0.tgz", { "dependencies": { "@types/fs-extra": "^8.0.1", "colorette": "^1.1.0", "fs-extra": "^8.1.0", "globby": "10.0.1", "is-plain-object": "^3.0.0" } }, "sha512-wI8D5dvYovRMx/YYKtUNt3Yxaw4ORC9xo6Gt9t22kveWz1enG9QrhVlagzwrxSC455xD1dHMKhIJkbsQ7d48BA=="], + "sort-keys": ["sort-keys@1.1.2", "", { "dependencies": { "is-plain-obj": "^1.0.0" } }, "sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg=="], - "rollup-plugin-postcss": ["rollup-plugin-postcss@4.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/rollup-plugin-postcss/-/rollup-plugin-postcss-4.0.2.tgz", { "dependencies": { "chalk": "^4.1.0", "concat-with-sourcemaps": "^1.1.0", "cssnano": "^5.0.1", "import-cwd": "^3.0.0", "p-queue": "^6.6.2", "pify": "^5.0.0", "postcss-load-config": "^3.0.0", "postcss-modules": "^4.0.0", "promise.series": "^0.2.0", "resolve": "^1.19.0", "rollup-pluginutils": "^2.8.2", "safe-identifier": "^0.4.2", "style-inject": "^0.3.0" }, "peerDependencies": { "postcss": "8.x" } }, "sha512-05EaY6zvZdmvPUDi3uCcAQoESDcYnv8ogJJQRp6V5kZ6J6P7uAVJlrTZcaaA20wTH527YTnKfkAoPxWI/jPp4w=="], + "sort-keys-length": ["sort-keys-length@1.0.1", "", { "dependencies": { "sort-keys": "^1.0.0" } }, "sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw=="], - "rollup-plugin-typescript2": ["rollup-plugin-typescript2@0.36.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.36.0.tgz", { "dependencies": { "@rollup/pluginutils": "^4.1.2", "find-cache-dir": "^3.3.2", "fs-extra": "^10.0.0", "semver": "^7.5.4", "tslib": "^2.6.2" }, "peerDependencies": { "rollup": ">=1.26.3", "typescript": ">=2.4.0" } }, "sha512-NB2CSQDxSe9+Oe2ahZbf+B4bh7pHwjV5L+RSYpCu7Q5ROuN94F9b6ioWwKfz3ueL3KTtmX4o2MUH2cgHDIEUsw=="], + "source-map": ["source-map@0.7.6", "", {}, "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ=="], - "rollup-pluginutils": ["rollup-pluginutils@2.8.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", { "dependencies": { "estree-walker": "^0.6.1" } }, "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ=="], + "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], - "rrweb-cssom": ["rrweb-cssom@0.8.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz", {}, "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw=="], + "source-map-support": ["source-map-support@0.5.19", "", { "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw=="], - "run-applescript": ["run-applescript@7.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/run-applescript/-/run-applescript-7.1.0.tgz", {}, "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q=="], + "speci": ["speci@workspace:packages/speci"], - "run-parallel": ["run-parallel@1.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/run-parallel/-/run-parallel-1.2.0.tgz", { "dependencies": { "queue-microtask": "^1.2.2" } }, "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="], + "split2": ["split2@4.2.0", "", {}, "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg=="], - "safe-array-concat": ["safe-array-concat@1.1.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/safe-array-concat/-/safe-array-concat-1.1.3.tgz", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", "get-intrinsic": "^1.2.6", "has-symbols": "^1.1.0", "isarray": "^2.0.5" } }, "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q=="], + "sprintf-js": ["sprintf-js@1.0.3", "", {}, "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="], - "safe-buffer": ["safe-buffer@5.2.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/safe-buffer/-/safe-buffer-5.2.1.tgz", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="], + "sshpk": ["sshpk@1.18.0", "", { "dependencies": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", "bcrypt-pbkdf": "^1.0.0", "dashdash": "^1.12.0", "ecc-jsbn": "~0.1.1", "getpass": "^0.1.1", "jsbn": "~0.1.0", "safer-buffer": "^2.0.2", "tweetnacl": "~0.14.0" }, "bin": { "sshpk-conv": "bin/sshpk-conv", "sshpk-sign": "bin/sshpk-sign", "sshpk-verify": "bin/sshpk-verify" } }, "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ=="], - "safe-identifier": ["safe-identifier@0.4.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/safe-identifier/-/safe-identifier-0.4.2.tgz", {}, "sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w=="], + "stable": ["stable@0.1.8", "", {}, "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w=="], - "safe-push-apply": ["safe-push-apply@1.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/safe-push-apply/-/safe-push-apply-1.0.0.tgz", { "dependencies": { "es-errors": "^1.3.0", "isarray": "^2.0.5" } }, "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA=="], + "stable-hash-x": ["stable-hash-x@0.2.0", "", {}, "sha512-o3yWv49B/o4QZk5ZcsALc6t0+eCelPc44zZsLtCQnZPDwFpDYSWcDnrv2TtMmMbQ7uKo3J0HTURCqckw23czNQ=="], - "safe-regex-test": ["safe-regex-test@1.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/safe-regex-test/-/safe-regex-test-1.1.0.tgz", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-regex": "^1.2.1" } }, "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw=="], + "stack-utils": ["stack-utils@2.0.6", "", { "dependencies": { "escape-string-regexp": "^2.0.0" } }, "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ=="], - "safe-stable-stringify": ["safe-stable-stringify@2.5.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", {}, "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA=="], + "stackback": ["stackback@0.0.2", "", {}, "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw=="], - "safer-buffer": ["safer-buffer@2.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/safer-buffer/-/safer-buffer-2.1.2.tgz", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="], + "statuses": ["statuses@2.0.1", "", {}, "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="], - "sample-tsdown": ["sample-tsdown@workspace:samples/sample-tsdown"], + "std-env": ["std-env@3.10.0", "", {}, "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg=="], - "sax": ["sax@1.4.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/sax/-/sax-1.4.3.tgz", {}, "sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ=="], + "steno": ["steno@0.4.4", "", { "dependencies": { "graceful-fs": "^4.1.3" } }, "sha512-EEHMVYHNXFHfGtgjNITnka0aHhiAlo93F7z2/Pwd+g0teG9CnM3JIINM7hVVB5/rhw9voufD7Wukwgtw2uqh6w=="], - "saxes": ["saxes@6.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/saxes/-/saxes-6.0.0.tgz", { "dependencies": { "xmlchars": "^2.2.0" } }, "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA=="], + "stop-iteration-iterator": ["stop-iteration-iterator@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "internal-slot": "^1.1.0" } }, "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ=="], - "scheduler": ["scheduler@0.23.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/scheduler/-/scheduler-0.23.2.tgz", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ=="], + "stream-shift": ["stream-shift@1.0.3", "", {}, "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ=="], - "schema-utils": ["schema-utils@4.3.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/schema-utils/-/schema-utils-4.3.3.tgz", { "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", "ajv-formats": "^2.1.1", "ajv-keywords": "^5.1.0" } }, "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA=="], + "streamx": ["streamx@2.23.0", "", { "dependencies": { "events-universal": "^1.0.0", "fast-fifo": "^1.3.2", "text-decoder": "^1.1.0" } }, "sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg=="], - "secure-compare": ["secure-compare@3.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/secure-compare/-/secure-compare-3.0.1.tgz", {}, "sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw=="], + "string-hash": ["string-hash@1.1.3", "", {}, "sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A=="], - "secure-json-parse": ["secure-json-parse@2.7.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/secure-json-parse/-/secure-json-parse-2.7.0.tgz", {}, "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw=="], + "string-length": ["string-length@4.0.2", "", { "dependencies": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" } }, "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ=="], - "seek-bzip": ["seek-bzip@2.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/seek-bzip/-/seek-bzip-2.0.0.tgz", { "dependencies": { "commander": "^6.0.0" }, "bin": { "seek-bunzip": "bin/seek-bunzip", "seek-table": "bin/seek-bzip-table" } }, "sha512-SMguiTnYrhpLdk3PwfzHeotrcwi8bNV4iemL9tx9poR/yeaMYwB9VzR1w7b57DuWpuqR8n6oZboi0hj3AxZxQg=="], + "string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], - "semver": ["semver@7.7.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/semver/-/semver-7.7.3.tgz", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], + "string-width-cjs": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], - "semver-regex": ["semver-regex@4.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/semver-regex/-/semver-regex-4.0.5.tgz", {}, "sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw=="], + "string.prototype.trim": ["string.prototype.trim@1.2.10", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", "define-data-property": "^1.1.4", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-object-atoms": "^1.0.0", "has-property-descriptors": "^1.0.2" } }, "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA=="], - "semver-truncate": ["semver-truncate@3.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/semver-truncate/-/semver-truncate-3.0.0.tgz", { "dependencies": { "semver": "^7.3.5" } }, "sha512-LJWA9kSvMolR51oDE6PN3kALBNaUdkxzAGcexw8gjMA8xr5zUqK0JiR3CgARSqanYF3Z1YHvsErb1KDgh+v7Rg=="], + "string.prototype.trimend": ["string.prototype.trimend@1.0.9", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" } }, "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ=="], - "send": ["send@0.19.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/send/-/send-0.19.0.tgz", { "dependencies": { "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", "http-errors": "2.0.0", "mime": "1.6.0", "ms": "2.1.3", "on-finished": "2.4.1", "range-parser": "~1.2.1", "statuses": "2.0.1" } }, "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw=="], + "string.prototype.trimstart": ["string.prototype.trimstart@1.0.8", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" } }, "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg=="], - "serialize-javascript": ["serialize-javascript@6.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/serialize-javascript/-/serialize-javascript-6.0.2.tgz", { "dependencies": { "randombytes": "^2.1.0" } }, "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g=="], + "string_decoder": ["string_decoder@1.3.0", "", { "dependencies": { "safe-buffer": "~5.2.0" } }, "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA=="], - "serve-static": ["serve-static@1.16.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/serve-static/-/serve-static-1.16.2.tgz", { "dependencies": { "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", "send": "0.19.0" } }, "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw=="], + "strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], - "set-function-length": ["set-function-length@1.2.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/set-function-length/-/set-function-length-1.2.2.tgz", { "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", "has-property-descriptors": "^1.0.2" } }, "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg=="], + "strip-ansi-cjs": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], - "set-function-name": ["set-function-name@2.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/set-function-name/-/set-function-name-2.0.2.tgz", { "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "functions-have-names": "^1.2.3", "has-property-descriptors": "^1.0.2" } }, "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ=="], + "strip-bom": ["strip-bom@3.0.0", "", {}, "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA=="], - "set-proto": ["set-proto@1.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/set-proto/-/set-proto-1.0.0.tgz", { "dependencies": { "dunder-proto": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0" } }, "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw=="], + "strip-dirs": ["strip-dirs@3.0.0", "", { "dependencies": { "inspect-with-kind": "^1.0.5", "is-plain-obj": "^1.1.0" } }, "sha512-I0sdgcFTfKQlUPZyAqPJmSG3HLO9rWDFnxonnIbskYNM3DwFOeTNB5KzVq3dA1GdRAc/25b5Y7UO2TQfKWw4aQ=="], - "setprototypeof": ["setprototypeof@1.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/setprototypeof/-/setprototypeof-1.2.0.tgz", {}, "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="], + "strip-final-newline": ["strip-final-newline@2.0.0", "", {}, "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA=="], - "shebang-command": ["shebang-command@2.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/shebang-command/-/shebang-command-2.0.0.tgz", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="], + "strip-json-comments": ["strip-json-comments@5.0.3", "", {}, "sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw=="], - "shebang-regex": ["shebang-regex@3.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/shebang-regex/-/shebang-regex-3.0.0.tgz", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="], + "strip-literal": ["strip-literal@3.1.0", "", { "dependencies": { "js-tokens": "^9.0.1" } }, "sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg=="], - "shell-exec": ["shell-exec@1.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/shell-exec/-/shell-exec-1.0.2.tgz", {}, "sha512-jyVd+kU2X+mWKMmGhx4fpWbPsjvD53k9ivqetutVW/BQ+WIZoDoP4d8vUMGezV6saZsiNoW2f9GIhg9Dondohg=="], + "strnum": ["strnum@2.1.2", "", {}, "sha512-l63NF9y/cLROq/yqKXSLtcMeeyOfnSQlfMSlzFt/K73oIaD8DGaQWd7Z34X9GPiKqP5rbSh84Hl4bOlLcjiSrQ=="], - "side-channel": ["side-channel@1.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/side-channel/-/side-channel-1.1.0.tgz", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3", "side-channel-list": "^1.0.0", "side-channel-map": "^1.0.1", "side-channel-weakmap": "^1.0.2" } }, "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw=="], + "strtok3": ["strtok3@10.3.4", "", { "dependencies": { "@tokenizer/token": "^0.3.0" } }, "sha512-KIy5nylvC5le1OdaaoCJ07L+8iQzJHGH6pWDuzS+d07Cu7n1MZ2x26P8ZKIWfbK02+XIL8Mp4RkWeqdUCrDMfg=="], - "side-channel-list": ["side-channel-list@1.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/side-channel-list/-/side-channel-list-1.0.0.tgz", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3" } }, "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA=="], + "style-inject": ["style-inject@0.3.0", "", {}, "sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw=="], - "side-channel-map": ["side-channel-map@1.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/side-channel-map/-/side-channel-map-1.0.1.tgz", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.5", "object-inspect": "^1.13.3" } }, "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA=="], + "stylehacks": ["stylehacks@5.1.1", "", { "dependencies": { "browserslist": "^4.21.4", "postcss-selector-parser": "^6.0.4" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw=="], - "side-channel-weakmap": ["side-channel-weakmap@1.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.5", "object-inspect": "^1.13.3", "side-channel-map": "^1.0.1" } }, "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A=="], + "supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="], - "siginfo": ["siginfo@2.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/siginfo/-/siginfo-2.0.0.tgz", {}, "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g=="], + "supports-preserve-symlinks-flag": ["supports-preserve-symlinks-flag@1.0.0", "", {}, "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="], - "signal-exit": ["signal-exit@3.0.7", "https://jfrog.booking.com:443/artifactory/api/npm/npm/signal-exit/-/signal-exit-3.0.7.tgz", {}, "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="], + "svgo": ["svgo@2.8.0", "", { "dependencies": { "@trysound/sax": "0.2.0", "commander": "^7.2.0", "css-select": "^4.1.3", "css-tree": "^1.1.3", "csso": "^4.2.0", "picocolors": "^1.0.0", "stable": "^0.1.8" }, "bin": { "svgo": "bin/svgo" } }, "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg=="], - "simple-concat": ["simple-concat@1.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/simple-concat/-/simple-concat-1.0.1.tgz", {}, "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q=="], + "swc-loader": ["swc-loader@0.1.15", "", { "dependencies": { "loader-utils": "^2.0.0" }, "peerDependencies": { "@swc/core": "^1.2.52", "webpack": ">=2" } }, "sha512-cn1WPIeQJvXM4bbo3OwdEIapsQ4uUGOfyFj0h2+2+brT0k76DCGnZXDE2KmcqTd2JSQ+b61z2NPMib7eEwMYYw=="], - "simple-get": ["simple-get@4.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/simple-get/-/simple-get-4.0.1.tgz", { "dependencies": { "decompress-response": "^6.0.0", "once": "^1.3.1", "simple-concat": "^1.0.0" } }, "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA=="], + "symbol-tree": ["symbol-tree@3.2.4", "", {}, "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="], - "sirv": ["sirv@3.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/sirv/-/sirv-3.0.2.tgz", { "dependencies": { "@polka/url": "^1.0.0-next.24", "mrmime": "^2.0.0", "totalist": "^3.0.0" } }, "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g=="], + "synckit": ["synckit@0.11.12", "", { "dependencies": { "@pkgr/core": "^0.2.9" } }, "sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ=="], - "slash": ["slash@3.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/slash/-/slash-3.0.0.tgz", {}, "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="], + "tapable": ["tapable@2.3.0", "", {}, "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg=="], - "slice-ansi": ["slice-ansi@7.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/slice-ansi/-/slice-ansi-7.1.2.tgz", { "dependencies": { "ansi-styles": "^6.2.1", "is-fullwidth-code-point": "^5.0.0" } }, "sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w=="], + "tar-fs": ["tar-fs@3.1.1", "", { "dependencies": { "pump": "^3.0.0", "tar-stream": "^3.1.5" }, "optionalDependencies": { "bare-fs": "^4.0.1", "bare-path": "^3.0.0" } }, "sha512-LZA0oaPOc2fVo82Txf3gw+AkEd38szODlptMYejQUhndHMLQ9M059uXR+AfS7DNo0NpINvSqDsvyaCrBVkptWg=="], - "smart-buffer": ["smart-buffer@4.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/smart-buffer/-/smart-buffer-4.2.0.tgz", {}, "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg=="], + "tar-stream": ["tar-stream@2.2.0", "", { "dependencies": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", "fs-constants": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^3.1.1" } }, "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ=="], - "smol-toml": ["smol-toml@1.5.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/smol-toml/-/smol-toml-1.5.2.tgz", {}, "sha512-QlaZEqcAH3/RtNyet1IPIYPsEWAaYyXXv1Krsi+1L/QHppjX4Ifm8MQsBISz9vE8cHicIq3clogsheili5vhaQ=="], + "tcp-port-used": ["tcp-port-used@1.0.2", "", { "dependencies": { "debug": "4.3.1", "is2": "^2.0.6" } }, "sha512-l7ar8lLUD3XS1V2lfoJlCBaeoaWo/2xfYt81hM7VlvR4RrMVFqfmzfhLVk40hAb368uitje5gPtBRL1m/DGvLA=="], - "socks": ["socks@2.8.7", "https://jfrog.booking.com:443/artifactory/api/npm/npm/socks/-/socks-2.8.7.tgz", { "dependencies": { "ip-address": "^10.0.1", "smart-buffer": "^4.2.0" } }, "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A=="], + "teex": ["teex@1.0.1", "", { "dependencies": { "streamx": "^2.12.5" } }, "sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg=="], - "socks-proxy-agent": ["socks-proxy-agent@8.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", { "dependencies": { "agent-base": "^7.1.2", "debug": "^4.3.4", "socks": "^2.8.3" } }, "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw=="], + "terser": ["terser@5.46.0", "", { "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.15.0", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, "bin": { "terser": "bin/terser" } }, "sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg=="], - "sonic-boom": ["sonic-boom@3.8.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/sonic-boom/-/sonic-boom-3.8.1.tgz", { "dependencies": { "atomic-sleep": "^1.0.0" } }, "sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg=="], + "terser-webpack-plugin": ["terser-webpack-plugin@5.3.16", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", "schema-utils": "^4.3.0", "serialize-javascript": "^6.0.2", "terser": "^5.31.1" }, "peerDependencies": { "webpack": "^5.1.0" } }, "sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q=="], - "sort-keys": ["sort-keys@1.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/sort-keys/-/sort-keys-1.1.2.tgz", { "dependencies": { "is-plain-obj": "^1.0.0" } }, "sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg=="], + "test-exclude": ["test-exclude@7.0.2", "", { "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^10.4.1", "minimatch": "^10.2.2" } }, "sha512-u9E6A+ZDYdp7a4WnarkXPZOx8Ilz46+kby6p1yZ8zsGTz9gYa6FIS7lj2oezzNKmtdyyJNNmmXDppga5GB7kSw=="], - "sort-keys-length": ["sort-keys-length@1.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/sort-keys-length/-/sort-keys-length-1.0.1.tgz", { "dependencies": { "sort-keys": "^1.0.0" } }, "sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw=="], + "text-decoder": ["text-decoder@1.2.7", "", { "dependencies": { "b4a": "^1.6.4" } }, "sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ=="], - "source-map": ["source-map@0.7.6", "https://jfrog.booking.com:443/artifactory/api/npm/npm/source-map/-/source-map-0.7.6.tgz", {}, "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ=="], + "thread-stream": ["thread-stream@2.7.0", "", { "dependencies": { "real-require": "^0.2.0" } }, "sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw=="], - "source-map-js": ["source-map-js@1.2.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/source-map-js/-/source-map-js-1.2.1.tgz", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], + "through": ["through@2.3.8", "", {}, "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg=="], - "source-map-support": ["source-map-support@0.5.19", "https://jfrog.booking.com:443/artifactory/api/npm/npm/source-map-support/-/source-map-support-0.5.19.tgz", { "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw=="], + "through2": ["through2@2.0.5", "", { "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" } }, "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ=="], - "speci": ["speci@workspace:packages/speci"], + "tinybench": ["tinybench@2.9.0", "", {}, "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg=="], - "split2": ["split2@4.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/split2/-/split2-4.2.0.tgz", {}, "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg=="], + "tinyexec": ["tinyexec@1.0.2", "", {}, "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg=="], - "sprintf-js": ["sprintf-js@1.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/sprintf-js/-/sprintf-js-1.0.3.tgz", {}, "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="], + "tinyglobby": ["tinyglobby@0.2.15", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.3" } }, "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ=="], - "sshpk": ["sshpk@1.18.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/sshpk/-/sshpk-1.18.0.tgz", { "dependencies": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", "bcrypt-pbkdf": "^1.0.0", "dashdash": "^1.12.0", "ecc-jsbn": "~0.1.1", "getpass": "^0.1.1", "jsbn": "~0.1.0", "safer-buffer": "^2.0.2", "tweetnacl": "~0.14.0" }, "bin": { "sshpk-conv": "bin/sshpk-conv", "sshpk-sign": "bin/sshpk-sign", "sshpk-verify": "bin/sshpk-verify" } }, "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ=="], + "tinypool": ["tinypool@1.1.1", "", {}, "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg=="], - "stable": ["stable@0.1.8", "https://jfrog.booking.com:443/artifactory/api/npm/npm/stable/-/stable-0.1.8.tgz", {}, "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w=="], + "tinyrainbow": ["tinyrainbow@2.0.0", "", {}, "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw=="], - "stable-hash-x": ["stable-hash-x@0.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/stable-hash-x/-/stable-hash-x-0.2.0.tgz", {}, "sha512-o3yWv49B/o4QZk5ZcsALc6t0+eCelPc44zZsLtCQnZPDwFpDYSWcDnrv2TtMmMbQ7uKo3J0HTURCqckw23czNQ=="], + "tinyspy": ["tinyspy@4.0.4", "", {}, "sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q=="], - "stack-utils": ["stack-utils@2.0.6", "https://jfrog.booking.com:443/artifactory/api/npm/npm/stack-utils/-/stack-utils-2.0.6.tgz", { "dependencies": { "escape-string-regexp": "^2.0.0" } }, "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ=="], + "tldts": ["tldts@6.1.86", "", { "dependencies": { "tldts-core": "^6.1.86" }, "bin": { "tldts": "bin/cli.js" } }, "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ=="], - "stackback": ["stackback@0.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/stackback/-/stackback-0.0.2.tgz", {}, "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw=="], + "tldts-core": ["tldts-core@6.1.86", "", {}, "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA=="], - "statuses": ["statuses@2.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/statuses/-/statuses-2.0.1.tgz", {}, "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="], + "tmp": ["tmp@0.2.5", "", {}, "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow=="], - "std-env": ["std-env@3.10.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/std-env/-/std-env-3.10.0.tgz", {}, "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg=="], + "tmpl": ["tmpl@1.0.5", "", {}, "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw=="], - "steno": ["steno@0.4.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/steno/-/steno-0.4.4.tgz", { "dependencies": { "graceful-fs": "^4.1.3" } }, "sha512-EEHMVYHNXFHfGtgjNITnka0aHhiAlo93F7z2/Pwd+g0teG9CnM3JIINM7hVVB5/rhw9voufD7Wukwgtw2uqh6w=="], + "to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="], - "stop-iteration-iterator": ["stop-iteration-iterator@1.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", { "dependencies": { "es-errors": "^1.3.0", "internal-slot": "^1.1.0" } }, "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ=="], + "to-rotated": ["to-rotated@1.0.0", "", {}, "sha512-KsEID8AfgUy+pxVRLsWp0VzCa69wxzUDZnzGbyIST/bcgcrMvTYoFBX/QORH4YApoD89EDuUovx4BTdpOn319Q=="], - "stream-shift": ["stream-shift@1.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/stream-shift/-/stream-shift-1.0.3.tgz", {}, "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ=="], + "toidentifier": ["toidentifier@1.0.1", "", {}, "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="], - "streamx": ["streamx@2.23.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/streamx/-/streamx-2.23.0.tgz", { "dependencies": { "events-universal": "^1.0.0", "fast-fifo": "^1.3.2", "text-decoder": "^1.1.0" } }, "sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg=="], + "token-types": ["token-types@6.1.2", "", { "dependencies": { "@borewit/text-codec": "^0.2.1", "@tokenizer/token": "^0.3.0", "ieee754": "^1.2.1" } }, "sha512-dRXchy+C0IgK8WPC6xvCHFRIWYUbqqdEIKPaKo/AcTUNzwLTK6AH7RjdLWsEZcAN/TBdtfUw3PYEgPr5VPr6ww=="], - "string-hash": ["string-hash@1.1.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/string-hash/-/string-hash-1.1.3.tgz", {}, "sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A=="], + "totalist": ["totalist@3.0.1", "", {}, "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ=="], - "string-length": ["string-length@4.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/string-length/-/string-length-4.0.2.tgz", { "dependencies": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" } }, "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ=="], + "tough-cookie": ["tough-cookie@5.1.2", "", { "dependencies": { "tldts": "^6.1.32" } }, "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A=="], - "string-width": ["string-width@4.2.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/string-width/-/string-width-4.2.3.tgz", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], + "tr46": ["tr46@5.1.1", "", { "dependencies": { "punycode": "^2.3.1" } }, "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw=="], - "string-width-cjs": ["string-width@4.2.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/string-width/-/string-width-4.2.3.tgz", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], + "tree-kill": ["tree-kill@1.2.2", "", { "bin": { "tree-kill": "cli.js" } }, "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A=="], - "string.prototype.trim": ["string.prototype.trim@1.2.10", "https://jfrog.booking.com:443/artifactory/api/npm/npm/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", "define-data-property": "^1.1.4", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-object-atoms": "^1.0.0", "has-property-descriptors": "^1.0.2" } }, "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA=="], + "ts-api-utils": ["ts-api-utils@2.4.0", "", { "peerDependencies": { "typescript": ">=4.8.4" } }, "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA=="], - "string.prototype.trimend": ["string.prototype.trimend@1.0.9", "https://jfrog.booking.com:443/artifactory/api/npm/npm/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" } }, "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ=="], + "ts-jest": ["ts-jest@29.4.1", "", { "dependencies": { "bs-logger": "^0.2.6", "fast-json-stable-stringify": "^2.1.0", "handlebars": "^4.7.8", "json5": "^2.2.3", "lodash.memoize": "^4.1.2", "make-error": "^1.3.6", "semver": "^7.7.2", "type-fest": "^4.41.0", "yargs-parser": "^21.1.1" }, "peerDependencies": { "@babel/core": ">=7.0.0-beta.0 <8", "@jest/transform": "^29.0.0 || ^30.0.0", "@jest/types": "^29.0.0 || ^30.0.0", "babel-jest": "^29.0.0 || ^30.0.0", "jest": "^29.0.0 || ^30.0.0", "jest-util": "^29.0.0 || ^30.0.0", "typescript": ">=4.3 <6" }, "optionalPeers": ["@babel/core", "@jest/transform", "@jest/types", "babel-jest", "jest-util"], "bin": { "ts-jest": "cli.js" } }, "sha512-SaeUtjfpg9Uqu8IbeDKtdaS0g8lS6FT6OzM3ezrDfErPJPHNDo/Ey+VFGP1bQIDfagYDLyRpd7O15XpG1Es2Uw=="], - "string.prototype.trimstart": ["string.prototype.trimstart@1.0.8", "https://jfrog.booking.com:443/artifactory/api/npm/npm/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" } }, "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg=="], + "ts-morph": ["ts-morph@27.0.2", "", { "dependencies": { "@ts-morph/common": "~0.28.1", "code-block-writer": "^13.0.3" } }, "sha512-fhUhgeljcrdZ+9DZND1De1029PrE+cMkIP7ooqkLRTrRLTqcki2AstsyJm0vRNbTbVCNJ0idGlbBrfqc7/nA8w=="], - "string_decoder": ["string_decoder@1.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/string_decoder/-/string_decoder-1.3.0.tgz", { "dependencies": { "safe-buffer": "~5.2.0" } }, "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA=="], + "ts-node": ["ts-node@10.9.1", "", { "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", "@tsconfig/node12": "^1.0.7", "@tsconfig/node14": "^1.0.0", "@tsconfig/node16": "^1.0.2", "acorn": "^8.4.1", "acorn-walk": "^8.1.1", "arg": "^4.1.0", "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", "v8-compile-cache-lib": "^3.0.1", "yn": "3.1.1" }, "peerDependencies": { "@swc/core": ">=1.2.50", "@swc/wasm": ">=1.2.50", "@types/node": "*", "typescript": ">=2.7" }, "optionalPeers": ["@swc/core", "@swc/wasm"], "bin": { "ts-node": "dist/bin.js", "ts-script": "dist/bin-script-deprecated.js", "ts-node-cwd": "dist/bin-cwd.js", "ts-node-esm": "dist/bin-esm.js", "ts-node-script": "dist/bin-script.js", "ts-node-transpile-only": "dist/bin-transpile.js" } }, "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw=="], - "strip-ansi": ["strip-ansi@6.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/strip-ansi/-/strip-ansi-6.0.1.tgz", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], + "ts-xsd": ["ts-xsd@workspace:packages/ts-xsd"], - "strip-ansi-cjs": ["strip-ansi@6.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/strip-ansi/-/strip-ansi-6.0.1.tgz", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], + "tsconfig-paths": ["tsconfig-paths@4.2.0", "", { "dependencies": { "json5": "^2.2.2", "minimist": "^1.2.6", "strip-bom": "^3.0.0" } }, "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg=="], - "strip-bom": ["strip-bom@3.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/strip-bom/-/strip-bom-3.0.0.tgz", {}, "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA=="], + "tsdown": ["tsdown@0.18.4", "", { "dependencies": { "ansis": "^4.2.0", "cac": "^6.7.14", "defu": "^6.1.4", "empathic": "^2.0.0", "hookable": "^6.0.1", "import-without-cache": "^0.2.5", "obug": "^2.1.1", "picomatch": "^4.0.3", "rolldown": "1.0.0-beta.57", "rolldown-plugin-dts": "^0.20.0", "semver": "^7.7.3", "tinyexec": "^1.0.2", "tinyglobby": "^0.2.15", "tree-kill": "^1.2.2", "unconfig-core": "^7.4.2", "unrun": "^0.2.21" }, "peerDependencies": { "@arethetypeswrong/core": "^0.18.1", "@vitejs/devtools": "*", "publint": "^0.3.0", "typescript": "^5.0.0", "unplugin-lightningcss": "^0.4.0", "unplugin-unused": "^0.5.0" }, "optionalPeers": ["@arethetypeswrong/core", "@vitejs/devtools", "publint", "typescript", "unplugin-lightningcss", "unplugin-unused"], "bin": { "tsdown": "dist/run.mjs" } }, "sha512-J/tRS6hsZTkvqmt4+xdELUCkQYDuUCXgBv0fw3ImV09WPGbEKfsPD65E+WUjSu3E7Z6tji9XZ1iWs8rbGqB/ZA=="], - "strip-dirs": ["strip-dirs@3.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/strip-dirs/-/strip-dirs-3.0.0.tgz", { "dependencies": { "inspect-with-kind": "^1.0.5", "is-plain-obj": "^1.1.0" } }, "sha512-I0sdgcFTfKQlUPZyAqPJmSG3HLO9rWDFnxonnIbskYNM3DwFOeTNB5KzVq3dA1GdRAc/25b5Y7UO2TQfKWw4aQ=="], + "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], - "strip-final-newline": ["strip-final-newline@2.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/strip-final-newline/-/strip-final-newline-2.0.0.tgz", {}, "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA=="], + "tsx": ["tsx@4.21.0", "", { "dependencies": { "esbuild": "~0.27.0", "get-tsconfig": "^4.7.5" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "bin": { "tsx": "dist/cli.mjs" } }, "sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw=="], - "strip-json-comments": ["strip-json-comments@5.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/strip-json-comments/-/strip-json-comments-5.0.3.tgz", {}, "sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw=="], + "tunnel-agent": ["tunnel-agent@0.6.0", "", { "dependencies": { "safe-buffer": "^5.0.1" } }, "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w=="], - "strip-literal": ["strip-literal@3.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/strip-literal/-/strip-literal-3.1.0.tgz", { "dependencies": { "js-tokens": "^9.0.1" } }, "sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg=="], + "tweetnacl": ["tweetnacl@0.14.5", "", {}, "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA=="], - "strnum": ["strnum@2.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/strnum/-/strnum-2.1.1.tgz", {}, "sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw=="], + "typanion": ["typanion@3.14.0", "", {}, "sha512-ZW/lVMRabETuYCd9O9ZvMhAh8GslSqaUjxmK/JLPCh6l73CvLBiuXswj/+7LdnWOgYsQ130FqLzFz5aGT4I3Ug=="], - "strtok3": ["strtok3@10.3.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/strtok3/-/strtok3-10.3.4.tgz", { "dependencies": { "@tokenizer/token": "^0.3.0" } }, "sha512-KIy5nylvC5le1OdaaoCJ07L+8iQzJHGH6pWDuzS+d07Cu7n1MZ2x26P8ZKIWfbK02+XIL8Mp4RkWeqdUCrDMfg=="], + "type-check": ["type-check@0.4.0", "", { "dependencies": { "prelude-ls": "^1.2.1" } }, "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew=="], - "style-inject": ["style-inject@0.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/style-inject/-/style-inject-0.3.0.tgz", {}, "sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw=="], + "type-detect": ["type-detect@4.0.8", "", {}, "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g=="], - "stylehacks": ["stylehacks@5.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/stylehacks/-/stylehacks-5.1.1.tgz", { "dependencies": { "browserslist": "^4.21.4", "postcss-selector-parser": "^6.0.4" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw=="], + "type-fest": ["type-fest@4.41.0", "", {}, "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA=="], - "supports-color": ["supports-color@7.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/supports-color/-/supports-color-7.2.0.tgz", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="], + "type-is": ["type-is@1.6.18", "", { "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" } }, "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g=="], - "supports-preserve-symlinks-flag": ["supports-preserve-symlinks-flag@1.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", {}, "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="], + "typed-array-buffer": ["typed-array-buffer@1.0.3", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "is-typed-array": "^1.1.14" } }, "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw=="], - "svgo": ["svgo@2.8.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/svgo/-/svgo-2.8.0.tgz", { "dependencies": { "@trysound/sax": "0.2.0", "commander": "^7.2.0", "css-select": "^4.1.3", "css-tree": "^1.1.3", "csso": "^4.2.0", "picocolors": "^1.0.0", "stable": "^0.1.8" }, "bin": { "svgo": "bin/svgo" } }, "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg=="], + "typed-array-byte-length": ["typed-array-byte-length@1.0.3", "", { "dependencies": { "call-bind": "^1.0.8", "for-each": "^0.3.3", "gopd": "^1.2.0", "has-proto": "^1.2.0", "is-typed-array": "^1.1.14" } }, "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg=="], - "swc-loader": ["swc-loader@0.1.15", "https://jfrog.booking.com:443/artifactory/api/npm/npm/swc-loader/-/swc-loader-0.1.15.tgz", { "dependencies": { "loader-utils": "^2.0.0" }, "peerDependencies": { "@swc/core": "^1.2.52", "webpack": ">=2" } }, "sha512-cn1WPIeQJvXM4bbo3OwdEIapsQ4uUGOfyFj0h2+2+brT0k76DCGnZXDE2KmcqTd2JSQ+b61z2NPMib7eEwMYYw=="], + "typed-array-byte-offset": ["typed-array-byte-offset@1.0.4", "", { "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "for-each": "^0.3.3", "gopd": "^1.2.0", "has-proto": "^1.2.0", "is-typed-array": "^1.1.15", "reflect.getprototypeof": "^1.0.9" } }, "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ=="], - "symbol-tree": ["symbol-tree@3.2.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/symbol-tree/-/symbol-tree-3.2.4.tgz", {}, "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="], + "typed-array-length": ["typed-array-length@1.0.7", "", { "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", "is-typed-array": "^1.1.13", "possible-typed-array-names": "^1.0.0", "reflect.getprototypeof": "^1.0.6" } }, "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg=="], - "synckit": ["synckit@0.11.11", "https://jfrog.booking.com:443/artifactory/api/npm/npm/synckit/-/synckit-0.11.11.tgz", { "dependencies": { "@pkgr/core": "^0.2.9" } }, "sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw=="], + "typed-query-selector": ["typed-query-selector@2.12.1", "", {}, "sha512-uzR+FzI8qrUEIu96oaeBJmd9E7CFEiQ3goA5qCVgc4s5llSubcfGHq9yUstZx/k4s9dXHVKsE35YWoFyvEqEHA=="], - "tapable": ["tapable@2.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/tapable/-/tapable-2.3.0.tgz", {}, "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg=="], + "typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], - "tar-fs": ["tar-fs@3.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/tar-fs/-/tar-fs-3.1.1.tgz", { "dependencies": { "pump": "^3.0.0", "tar-stream": "^3.1.5" }, "optionalDependencies": { "bare-fs": "^4.0.1", "bare-path": "^3.0.0" } }, "sha512-LZA0oaPOc2fVo82Txf3gw+AkEd38szODlptMYejQUhndHMLQ9M059uXR+AfS7DNo0NpINvSqDsvyaCrBVkptWg=="], + "typescript-eslint": ["typescript-eslint@8.43.0", "", { "dependencies": { "@typescript-eslint/eslint-plugin": "8.43.0", "@typescript-eslint/parser": "8.43.0", "@typescript-eslint/typescript-estree": "8.43.0", "@typescript-eslint/utils": "8.43.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-FyRGJKUGvcFekRRcBKFBlAhnp4Ng8rhe8tuvvkR9OiU0gfd4vyvTRQHEckO6VDlH57jbeUQem2IpqPq9kLJH+w=="], - "tar-stream": ["tar-stream@2.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/tar-stream/-/tar-stream-2.2.0.tgz", { "dependencies": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", "fs-constants": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^3.1.1" } }, "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ=="], + "uglify-js": ["uglify-js@3.19.3", "", { "bin": { "uglifyjs": "bin/uglifyjs" } }, "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ=="], - "tcp-port-used": ["tcp-port-used@1.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/tcp-port-used/-/tcp-port-used-1.0.2.tgz", { "dependencies": { "debug": "4.3.1", "is2": "^2.0.6" } }, "sha512-l7ar8lLUD3XS1V2lfoJlCBaeoaWo/2xfYt81hM7VlvR4RrMVFqfmzfhLVk40hAb368uitje5gPtBRL1m/DGvLA=="], + "uint8array-extras": ["uint8array-extras@1.5.0", "", {}, "sha512-rvKSBiC5zqCCiDZ9kAOszZcDvdAHwwIKJG33Ykj43OKcWsnmcBRL09YTU4nOeHZ8Y2a7l1MgTd08SBe9A8Qj6A=="], - "terser": ["terser@5.44.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/terser/-/terser-5.44.1.tgz", { "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.15.0", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, "bin": { "terser": "bin/terser" } }, "sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw=="], + "unbox-primitive": ["unbox-primitive@1.1.0", "", { "dependencies": { "call-bound": "^1.0.3", "has-bigints": "^1.0.2", "has-symbols": "^1.1.0", "which-boxed-primitive": "^1.1.1" } }, "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw=="], - "terser-webpack-plugin": ["terser-webpack-plugin@5.3.14", "https://jfrog.booking.com:443/artifactory/api/npm/npm/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", "schema-utils": "^4.3.0", "serialize-javascript": "^6.0.2", "terser": "^5.31.1" }, "peerDependencies": { "webpack": "^5.1.0" } }, "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw=="], + "unbzip2-stream": ["unbzip2-stream@1.4.3", "", { "dependencies": { "buffer": "^5.2.1", "through": "^2.3.8" } }, "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg=="], - "test-exclude": ["test-exclude@7.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/test-exclude/-/test-exclude-7.0.1.tgz", { "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^10.4.1", "minimatch": "^9.0.4" } }, "sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg=="], + "unconfig-core": ["unconfig-core@7.5.0", "", { "dependencies": { "@quansync/fs": "^1.0.0", "quansync": "^1.0.0" } }, "sha512-Su3FauozOGP44ZmKdHy2oE6LPjk51M/TRRjHv2HNCWiDvfvCoxC2lno6jevMA91MYAdCdwP05QnWdWpSbncX/w=="], - "text-decoder": ["text-decoder@1.2.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/text-decoder/-/text-decoder-1.2.3.tgz", { "dependencies": { "b4a": "^1.6.4" } }, "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA=="], + "undici-types": ["undici-types@6.21.0", "", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="], - "thread-stream": ["thread-stream@2.7.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/thread-stream/-/thread-stream-2.7.0.tgz", { "dependencies": { "real-require": "^0.2.0" } }, "sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw=="], + "unicode-canonical-property-names-ecmascript": ["unicode-canonical-property-names-ecmascript@2.0.1", "", {}, "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg=="], - "through": ["through@2.3.8", "https://jfrog.booking.com:443/artifactory/api/npm/npm/through/-/through-2.3.8.tgz", {}, "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg=="], + "unicode-match-property-ecmascript": ["unicode-match-property-ecmascript@2.0.0", "", { "dependencies": { "unicode-canonical-property-names-ecmascript": "^2.0.0", "unicode-property-aliases-ecmascript": "^2.0.0" } }, "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q=="], - "through2": ["through2@2.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/through2/-/through2-2.0.5.tgz", { "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" } }, "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ=="], + "unicode-match-property-value-ecmascript": ["unicode-match-property-value-ecmascript@2.2.1", "", {}, "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg=="], - "tinybench": ["tinybench@2.9.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/tinybench/-/tinybench-2.9.0.tgz", {}, "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg=="], + "unicode-property-aliases-ecmascript": ["unicode-property-aliases-ecmascript@2.2.0", "", {}, "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ=="], - "tinyexec": ["tinyexec@1.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/tinyexec/-/tinyexec-1.0.2.tgz", {}, "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg=="], + "union": ["union@0.5.0", "", { "dependencies": { "qs": "^6.4.0" } }, "sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA=="], - "tinyglobby": ["tinyglobby@0.2.15", "https://jfrog.booking.com:443/artifactory/api/npm/npm/tinyglobby/-/tinyglobby-0.2.15.tgz", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.3" } }, "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ=="], + "universalify": ["universalify@0.1.2", "", {}, "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="], - "tinypool": ["tinypool@1.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/tinypool/-/tinypool-1.1.1.tgz", {}, "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg=="], + "unix-crypt-td-js": ["unix-crypt-td-js@1.1.4", "", {}, "sha512-8rMeVYWSIyccIJscb9NdCfZKSRBKYTeVnwmiRYT2ulE3qd1RaDQ0xQDP+rI3ccIWbhu/zuo5cgN8z73belNZgw=="], - "tinyrainbow": ["tinyrainbow@2.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/tinyrainbow/-/tinyrainbow-2.0.0.tgz", {}, "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw=="], + "unpipe": ["unpipe@1.0.0", "", {}, "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="], - "tinyspy": ["tinyspy@4.0.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/tinyspy/-/tinyspy-4.0.4.tgz", {}, "sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q=="], + "unrs-resolver": ["unrs-resolver@1.11.1", "", { "dependencies": { "napi-postinstall": "^0.3.0" }, "optionalDependencies": { "@unrs/resolver-binding-android-arm-eabi": "1.11.1", "@unrs/resolver-binding-android-arm64": "1.11.1", "@unrs/resolver-binding-darwin-arm64": "1.11.1", "@unrs/resolver-binding-darwin-x64": "1.11.1", "@unrs/resolver-binding-freebsd-x64": "1.11.1", "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1", "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1", "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1", "@unrs/resolver-binding-linux-arm64-musl": "1.11.1", "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1", "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1", "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1", "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1", "@unrs/resolver-binding-linux-x64-gnu": "1.11.1", "@unrs/resolver-binding-linux-x64-musl": "1.11.1", "@unrs/resolver-binding-wasm32-wasi": "1.11.1", "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1", "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1", "@unrs/resolver-binding-win32-x64-msvc": "1.11.1" } }, "sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg=="], - "tldts": ["tldts@6.1.86", "https://jfrog.booking.com:443/artifactory/api/npm/npm/tldts/-/tldts-6.1.86.tgz", { "dependencies": { "tldts-core": "^6.1.86" }, "bin": { "tldts": "bin/cli.js" } }, "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ=="], + "unrun": ["unrun@0.2.28", "", { "dependencies": { "rolldown": "1.0.0-rc.5" }, "peerDependencies": { "synckit": "^0.11.11" }, "optionalPeers": ["synckit"], "bin": { "unrun": "dist/cli.mjs" } }, "sha512-LqMrI3ZEUMZ2476aCsbUTfy95CHByqez05nju4AQv4XFPkxh5yai7Di1/Qb0FoELHEEPDWhQi23EJeFyrBV0Og=="], - "tldts-core": ["tldts-core@6.1.86", "https://jfrog.booking.com:443/artifactory/api/npm/npm/tldts-core/-/tldts-core-6.1.86.tgz", {}, "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA=="], + "update-browserslist-db": ["update-browserslist-db@1.2.3", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w=="], - "tmp": ["tmp@0.2.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/tmp/-/tmp-0.2.5.tgz", {}, "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow=="], + "uri-js": ["uri-js@4.4.1", "", { "dependencies": { "punycode": "^2.1.0" } }, "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="], - "tmpl": ["tmpl@1.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/tmpl/-/tmpl-1.0.5.tgz", {}, "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw=="], + "url-join": ["url-join@4.0.1", "", {}, "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA=="], - "to-regex-range": ["to-regex-range@5.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/to-regex-range/-/to-regex-range-5.0.1.tgz", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="], + "util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="], - "to-rotated": ["to-rotated@1.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/to-rotated/-/to-rotated-1.0.0.tgz", {}, "sha512-KsEID8AfgUy+pxVRLsWp0VzCa69wxzUDZnzGbyIST/bcgcrMvTYoFBX/QORH4YApoD89EDuUovx4BTdpOn319Q=="], + "utils-merge": ["utils-merge@1.0.1", "", {}, "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA=="], - "toidentifier": ["toidentifier@1.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/toidentifier/-/toidentifier-1.0.1.tgz", {}, "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="], + "uuid": ["uuid@8.3.2", "", { "bin": { "uuid": "dist/bin/uuid" } }, "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="], - "token-types": ["token-types@6.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/token-types/-/token-types-6.1.1.tgz", { "dependencies": { "@borewit/text-codec": "^0.1.0", "@tokenizer/token": "^0.3.0", "ieee754": "^1.2.1" } }, "sha512-kh9LVIWH5CnL63Ipf0jhlBIy0UsrMj/NJDfpsy1SqOXlLKEVyXXYrnFxFT1yOOYVGBSApeVnjPw/sBz5BfEjAQ=="], + "v8-compile-cache-lib": ["v8-compile-cache-lib@3.0.1", "", {}, "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg=="], - "totalist": ["totalist@3.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/totalist/-/totalist-3.0.1.tgz", {}, "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ=="], + "v8-to-istanbul": ["v8-to-istanbul@9.3.0", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", "convert-source-map": "^2.0.0" } }, "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA=="], - "tough-cookie": ["tough-cookie@5.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/tough-cookie/-/tough-cookie-5.1.2.tgz", { "dependencies": { "tldts": "^6.1.32" } }, "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A=="], + "validate-npm-package-name": ["validate-npm-package-name@5.0.1", "", {}, "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ=="], - "tr46": ["tr46@5.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/tr46/-/tr46-5.1.1.tgz", { "dependencies": { "punycode": "^2.3.1" } }, "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw=="], + "validator": ["validator@13.12.0", "", {}, "sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg=="], - "tree-kill": ["tree-kill@1.2.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/tree-kill/-/tree-kill-1.2.2.tgz", { "bin": { "tree-kill": "cli.js" } }, "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A=="], + "vary": ["vary@1.1.2", "", {}, "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="], - "ts-api-utils": ["ts-api-utils@2.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ts-api-utils/-/ts-api-utils-2.1.0.tgz", { "peerDependencies": { "typescript": ">=4.8.4" } }, "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ=="], + "verdaccio": ["verdaccio@6.1.2", "", { "dependencies": { "@cypress/request": "3.0.8", "@verdaccio/auth": "8.0.0-next-8.15", "@verdaccio/config": "8.0.0-next-8.15", "@verdaccio/core": "8.0.0-next-8.15", "@verdaccio/loaders": "8.0.0-next-8.6", "@verdaccio/local-storage-legacy": "11.0.2", "@verdaccio/logger": "8.0.0-next-8.15", "@verdaccio/middleware": "8.0.0-next-8.15", "@verdaccio/search-indexer": "8.0.0-next-8.4", "@verdaccio/signature": "8.0.0-next-8.7", "@verdaccio/streams": "10.2.1", "@verdaccio/tarball": "13.0.0-next-8.15", "@verdaccio/ui-theme": "8.0.0-next-8.15", "@verdaccio/url": "13.0.0-next-8.15", "@verdaccio/utils": "8.1.0-next-8.15", "JSONStream": "1.3.5", "async": "3.2.6", "clipanion": "4.0.0-rc.4", "compression": "1.8.0", "cors": "2.8.5", "debug": "4.4.0", "envinfo": "7.14.0", "express": "4.21.2", "handlebars": "4.7.8", "lodash": "4.17.21", "lru-cache": "7.18.3", "mime": "3.0.0", "mkdirp": "1.0.4", "pkginfo": "0.4.1", "semver": "7.6.3", "verdaccio-audit": "13.0.0-next-8.15", "verdaccio-htpasswd": "13.0.0-next-8.15" }, "bin": { "verdaccio": "bin/verdaccio" } }, "sha512-HQCquycSQkA+tKRVqMjIVRzmhzTciLfScvKIhhiwZZ9Qd13e2KJQTOdB7QrSacfJuPpl94TA5EZ7XmVRQKk3ag=="], - "ts-jest": ["ts-jest@29.4.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ts-jest/-/ts-jest-29.4.1.tgz", { "dependencies": { "bs-logger": "^0.2.6", "fast-json-stable-stringify": "^2.1.0", "handlebars": "^4.7.8", "json5": "^2.2.3", "lodash.memoize": "^4.1.2", "make-error": "^1.3.6", "semver": "^7.7.2", "type-fest": "^4.41.0", "yargs-parser": "^21.1.1" }, "peerDependencies": { "@babel/core": ">=7.0.0-beta.0 <8", "@jest/transform": "^29.0.0 || ^30.0.0", "@jest/types": "^29.0.0 || ^30.0.0", "babel-jest": "^29.0.0 || ^30.0.0", "jest": "^29.0.0 || ^30.0.0", "jest-util": "^29.0.0 || ^30.0.0", "typescript": ">=4.3 <6" }, "optionalPeers": ["@babel/core", "@jest/transform", "@jest/types", "babel-jest", "jest-util"], "bin": { "ts-jest": "cli.js" } }, "sha512-SaeUtjfpg9Uqu8IbeDKtdaS0g8lS6FT6OzM3ezrDfErPJPHNDo/Ey+VFGP1bQIDfagYDLyRpd7O15XpG1Es2Uw=="], + "verdaccio-audit": ["verdaccio-audit@13.0.0-next-8.15", "", { "dependencies": { "@verdaccio/config": "8.0.0-next-8.15", "@verdaccio/core": "8.0.0-next-8.15", "express": "4.21.2", "https-proxy-agent": "5.0.1", "node-fetch": "cjs" } }, "sha512-Aeau0u0fi5l4PoSDyOV6glz2FDO9+ofvogJIELV4H6fhDXhgPc2MnoKuaUgOT//khESLle/a6YfcLY2/KNLs6g=="], - "ts-morph": ["ts-morph@27.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ts-morph/-/ts-morph-27.0.2.tgz", { "dependencies": { "@ts-morph/common": "~0.28.1", "code-block-writer": "^13.0.3" } }, "sha512-fhUhgeljcrdZ+9DZND1De1029PrE+cMkIP7ooqkLRTrRLTqcki2AstsyJm0vRNbTbVCNJ0idGlbBrfqc7/nA8w=="], + "verdaccio-htpasswd": ["verdaccio-htpasswd@13.0.0-next-8.15", "", { "dependencies": { "@verdaccio/core": "8.0.0-next-8.15", "@verdaccio/file-locking": "13.0.0-next-8.3", "apache-md5": "1.1.8", "bcryptjs": "2.4.3", "core-js": "3.40.0", "debug": "4.4.0", "http-errors": "2.0.0", "unix-crypt-td-js": "1.1.4" } }, "sha512-rQg5oZ/rReDAM4g4W68hvtzReTbM6vduvVtobHsQxhbtbotEuUjP6O8uaROYtgZ60giGva5Tub2SOm2T9Ln9Dw=="], - "ts-node": ["ts-node@10.9.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ts-node/-/ts-node-10.9.1.tgz", { "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", "@tsconfig/node12": "^1.0.7", "@tsconfig/node14": "^1.0.0", "@tsconfig/node16": "^1.0.2", "acorn": "^8.4.1", "acorn-walk": "^8.1.1", "arg": "^4.1.0", "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", "v8-compile-cache-lib": "^3.0.1", "yn": "3.1.1" }, "peerDependencies": { "@swc/core": ">=1.2.50", "@swc/wasm": ">=1.2.50", "@types/node": "*", "typescript": ">=2.7" }, "optionalPeers": ["@swc/core", "@swc/wasm"], "bin": { "ts-node": "dist/bin.js", "ts-script": "dist/bin-script-deprecated.js", "ts-node-cwd": "dist/bin-cwd.js", "ts-node-esm": "dist/bin-esm.js", "ts-node-script": "dist/bin-script.js", "ts-node-transpile-only": "dist/bin-transpile.js" } }, "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw=="], + "verror": ["verror@1.10.0", "", { "dependencies": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", "extsprintf": "^1.2.0" } }, "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw=="], - "ts-xsd": ["ts-xsd@workspace:packages/ts-xsd"], + "vite": ["vite@7.1.5", "", { "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", "rollup": "^4.43.0", "tinyglobby": "^0.2.15" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "jiti": ">=1.21.0", "less": "^4.0.0", "lightningcss": "^1.21.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-4cKBO9wR75r0BeIWWWId9XK9Lj6La5X846Zw9dFfzMRw38IlTk2iCcUt6hsyiDRcPidc55ZParFYDXi0nXOeLQ=="], + + "vite-node": ["vite-node@3.2.4", "", { "dependencies": { "cac": "^6.7.14", "debug": "^4.4.1", "es-module-lexer": "^1.7.0", "pathe": "^2.0.3", "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" }, "bin": { "vite-node": "vite-node.mjs" } }, "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg=="], + + "vitest": ["vitest@3.2.4", "", { "dependencies": { "@types/chai": "^5.2.2", "@vitest/expect": "3.2.4", "@vitest/mocker": "3.2.4", "@vitest/pretty-format": "^3.2.4", "@vitest/runner": "3.2.4", "@vitest/snapshot": "3.2.4", "@vitest/spy": "3.2.4", "@vitest/utils": "3.2.4", "chai": "^5.2.0", "debug": "^4.4.1", "expect-type": "^1.2.1", "magic-string": "^0.30.17", "pathe": "^2.0.3", "picomatch": "^4.0.2", "std-env": "^3.9.0", "tinybench": "^2.9.0", "tinyexec": "^0.3.2", "tinyglobby": "^0.2.14", "tinypool": "^1.1.1", "tinyrainbow": "^2.0.0", "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0", "vite-node": "3.2.4", "why-is-node-running": "^2.3.0" }, "peerDependencies": { "@edge-runtime/vm": "*", "@types/debug": "^4.1.12", "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", "@vitest/browser": "3.2.4", "@vitest/ui": "3.2.4", "happy-dom": "*", "jsdom": "*" }, "optionalPeers": ["@edge-runtime/vm", "@types/debug", "@types/node", "@vitest/browser", "@vitest/ui", "happy-dom", "jsdom"], "bin": { "vitest": "vitest.mjs" } }, "sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A=="], + + "w3c-xmlserializer": ["w3c-xmlserializer@5.0.0", "", { "dependencies": { "xml-name-validator": "^5.0.0" } }, "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA=="], + + "walk-up-path": ["walk-up-path@4.0.0", "", {}, "sha512-3hu+tD8YzSLGuFYtPRb48vdhKMi0KQV5sn+uWr8+7dMEq/2G/dtLrdDinkLjqq5TIbIBjYJ4Ax/n3YiaW7QM8A=="], + + "walker": ["walker@1.0.8", "", { "dependencies": { "makeerror": "1.0.12" } }, "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ=="], + + "watchpack": ["watchpack@2.5.1", "", { "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" } }, "sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg=="], - "tsconfig-paths": ["tsconfig-paths@4.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", { "dependencies": { "json5": "^2.2.2", "minimist": "^1.2.6", "strip-bom": "^3.0.0" } }, "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg=="], + "wcwidth": ["wcwidth@1.0.1", "", { "dependencies": { "defaults": "^1.0.3" } }, "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg=="], - "tsdown": ["tsdown@0.16.7", "https://jfrog.booking.com:443/artifactory/api/npm/npm/tsdown/-/tsdown-0.16.7.tgz", { "dependencies": { "ansis": "^4.2.0", "cac": "^6.7.14", "chokidar": "^4.0.3", "diff": "^8.0.2", "empathic": "^2.0.0", "hookable": "^5.5.3", "obug": "^2.1.1", "rolldown": "1.0.0-beta.51", "rolldown-plugin-dts": "^0.18.1", "semver": "^7.7.3", "tinyexec": "^1.0.2", "tinyglobby": "^0.2.15", "tree-kill": "^1.2.2", "unconfig-core": "^7.4.1", "unrun": "^0.2.11" }, "peerDependencies": { "@arethetypeswrong/core": "^0.18.1", "@vitejs/devtools": "^0.0.0-alpha.18", "publint": "^0.3.0", "typescript": "^5.0.0", "unplugin-lightningcss": "^0.4.0", "unplugin-unused": "^0.5.0" }, "optionalPeers": ["@arethetypeswrong/core", "@vitejs/devtools", "publint", "typescript", "unplugin-lightningcss", "unplugin-unused"], "bin": { "tsdown": "dist/run.mjs" } }, "sha512-3rGG74MGc16rJ70ID7WyKnJBM5TIqGX5uYbmUCdiFIc2c3+KXka4nCeji3RRxhBw/hL7Xbs8pCY8x2cn0J+O0w=="], + "webdriver-bidi-protocol": ["webdriver-bidi-protocol@0.4.1", "", {}, "sha512-ARrjNjtWRRs2w4Tk7nqrf2gBI0QXWuOmMCx2hU+1jUt6d00MjMxURrhxhGbrsoiZKJrhTSTzbIrc554iKI10qw=="], - "tslib": ["tslib@2.8.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/tslib/-/tslib-2.8.1.tgz", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + "webidl-conversions": ["webidl-conversions@7.0.0", "", {}, "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g=="], - "tsx": ["tsx@4.20.6", "https://jfrog.booking.com:443/artifactory/api/npm/npm/tsx/-/tsx-4.20.6.tgz", { "dependencies": { "esbuild": "~0.25.0", "get-tsconfig": "^4.7.5" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "bin": { "tsx": "dist/cli.mjs" } }, "sha512-ytQKuwgmrrkDTFP4LjR0ToE2nqgy886GpvRSpU0JAnrdBYppuY5rLkRUYPU1yCryb24SsKBTL/hlDQAEFVwtZg=="], + "webpack": ["webpack@5.105.3", "", { "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.8", "@types/json-schema": "^7.0.15", "@webassemblyjs/ast": "^1.14.1", "@webassemblyjs/wasm-edit": "^1.14.1", "@webassemblyjs/wasm-parser": "^1.14.1", "acorn": "^8.16.0", "acorn-import-phases": "^1.0.3", "browserslist": "^4.28.1", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.19.0", "es-module-lexer": "^2.0.0", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.11", "json-parse-even-better-errors": "^2.3.1", "loader-runner": "^4.3.1", "mime-types": "^2.1.27", "neo-async": "^2.6.2", "schema-utils": "^4.3.3", "tapable": "^2.3.0", "terser-webpack-plugin": "^5.3.16", "watchpack": "^2.5.1", "webpack-sources": "^3.3.4" }, "bin": { "webpack": "bin/webpack.js" } }, "sha512-LLBBA4oLmT7sZdHiYE/PeVuifOxYyE2uL/V+9VQP7YSYdJU7bSf7H8bZRRxW8kEPMkmVjnrXmoR3oejIdX0xbg=="], - "tunnel-agent": ["tunnel-agent@0.6.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/tunnel-agent/-/tunnel-agent-0.6.0.tgz", { "dependencies": { "safe-buffer": "^5.0.1" } }, "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w=="], + "webpack-sources": ["webpack-sources@3.3.4", "", {}, "sha512-7tP1PdV4vF+lYPnkMR0jMY5/la2ub5Fc/8VQrrU+lXkiM6C4TjVfGw7iKfyhnTQOsD+6Q/iKw0eFciziRgD58Q=="], - "tweetnacl": ["tweetnacl@0.14.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/tweetnacl/-/tweetnacl-0.14.5.tgz", {}, "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA=="], + "whatwg-encoding": ["whatwg-encoding@3.1.1", "", { "dependencies": { "iconv-lite": "0.6.3" } }, "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ=="], - "typanion": ["typanion@3.14.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/typanion/-/typanion-3.14.0.tgz", {}, "sha512-ZW/lVMRabETuYCd9O9ZvMhAh8GslSqaUjxmK/JLPCh6l73CvLBiuXswj/+7LdnWOgYsQ130FqLzFz5aGT4I3Ug=="], + "whatwg-mimetype": ["whatwg-mimetype@4.0.0", "", {}, "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg=="], - "type-check": ["type-check@0.4.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/type-check/-/type-check-0.4.0.tgz", { "dependencies": { "prelude-ls": "^1.2.1" } }, "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew=="], + "whatwg-url": ["whatwg-url@14.2.0", "", { "dependencies": { "tr46": "^5.1.0", "webidl-conversions": "^7.0.0" } }, "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw=="], - "type-detect": ["type-detect@4.0.8", "https://jfrog.booking.com:443/artifactory/api/npm/npm/type-detect/-/type-detect-4.0.8.tgz", {}, "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g=="], + "which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], - "type-fest": ["type-fest@4.41.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/type-fest/-/type-fest-4.41.0.tgz", {}, "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA=="], + "which-boxed-primitive": ["which-boxed-primitive@1.1.1", "", { "dependencies": { "is-bigint": "^1.1.0", "is-boolean-object": "^1.2.1", "is-number-object": "^1.1.1", "is-string": "^1.1.1", "is-symbol": "^1.1.1" } }, "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA=="], - "type-is": ["type-is@1.6.18", "https://jfrog.booking.com:443/artifactory/api/npm/npm/type-is/-/type-is-1.6.18.tgz", { "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" } }, "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g=="], + "which-builtin-type": ["which-builtin-type@1.2.1", "", { "dependencies": { "call-bound": "^1.0.2", "function.prototype.name": "^1.1.6", "has-tostringtag": "^1.0.2", "is-async-function": "^2.0.0", "is-date-object": "^1.1.0", "is-finalizationregistry": "^1.1.0", "is-generator-function": "^1.0.10", "is-regex": "^1.2.1", "is-weakref": "^1.0.2", "isarray": "^2.0.5", "which-boxed-primitive": "^1.1.0", "which-collection": "^1.0.2", "which-typed-array": "^1.1.16" } }, "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q=="], - "typed-array-buffer": ["typed-array-buffer@1.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "is-typed-array": "^1.1.14" } }, "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw=="], + "which-collection": ["which-collection@1.0.2", "", { "dependencies": { "is-map": "^2.0.3", "is-set": "^2.0.3", "is-weakmap": "^2.0.2", "is-weakset": "^2.0.3" } }, "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw=="], - "typed-array-byte-length": ["typed-array-byte-length@1.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", { "dependencies": { "call-bind": "^1.0.8", "for-each": "^0.3.3", "gopd": "^1.2.0", "has-proto": "^1.2.0", "is-typed-array": "^1.1.14" } }, "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg=="], + "which-typed-array": ["which-typed-array@1.1.20", "", { "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "call-bound": "^1.0.4", "for-each": "^0.3.5", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-tostringtag": "^1.0.2" } }, "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg=="], - "typed-array-byte-offset": ["typed-array-byte-offset@1.0.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", { "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "for-each": "^0.3.3", "gopd": "^1.2.0", "has-proto": "^1.2.0", "is-typed-array": "^1.1.15", "reflect.getprototypeof": "^1.0.9" } }, "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ=="], + "why-is-node-running": ["why-is-node-running@2.3.0", "", { "dependencies": { "siginfo": "^2.0.0", "stackback": "0.0.2" }, "bin": { "why-is-node-running": "cli.js" } }, "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w=="], - "typed-array-length": ["typed-array-length@1.0.7", "https://jfrog.booking.com:443/artifactory/api/npm/npm/typed-array-length/-/typed-array-length-1.0.7.tgz", { "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", "is-typed-array": "^1.1.13", "possible-typed-array-names": "^1.0.0", "reflect.getprototypeof": "^1.0.6" } }, "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg=="], + "widest-line": ["widest-line@5.0.0", "", { "dependencies": { "string-width": "^7.0.0" } }, "sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA=="], - "typed-query-selector": ["typed-query-selector@2.12.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/typed-query-selector/-/typed-query-selector-2.12.0.tgz", {}, "sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg=="], + "word-wrap": ["word-wrap@1.2.5", "", {}, "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA=="], - "typescript": ["typescript@5.9.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/typescript/-/typescript-5.9.3.tgz", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], + "wordwrap": ["wordwrap@1.0.0", "", {}, "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q=="], - "typescript-eslint": ["typescript-eslint@8.43.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/typescript-eslint/-/typescript-eslint-8.43.0.tgz", { "dependencies": { "@typescript-eslint/eslint-plugin": "8.43.0", "@typescript-eslint/parser": "8.43.0", "@typescript-eslint/typescript-estree": "8.43.0", "@typescript-eslint/utils": "8.43.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-FyRGJKUGvcFekRRcBKFBlAhnp4Ng8rhe8tuvvkR9OiU0gfd4vyvTRQHEckO6VDlH57jbeUQem2IpqPq9kLJH+w=="], + "wrap-ansi": ["wrap-ansi@9.0.2", "", { "dependencies": { "ansi-styles": "^6.2.1", "string-width": "^7.0.0", "strip-ansi": "^7.1.0" } }, "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww=="], - "uglify-js": ["uglify-js@3.19.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/uglify-js/-/uglify-js-3.19.3.tgz", { "bin": { "uglifyjs": "bin/uglifyjs" } }, "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ=="], + "wrap-ansi-cjs": ["wrap-ansi@7.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="], - "uint8array-extras": ["uint8array-extras@1.5.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/uint8array-extras/-/uint8array-extras-1.5.0.tgz", {}, "sha512-rvKSBiC5zqCCiDZ9kAOszZcDvdAHwwIKJG33Ykj43OKcWsnmcBRL09YTU4nOeHZ8Y2a7l1MgTd08SBe9A8Qj6A=="], + "wrappy": ["wrappy@1.0.2", "", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="], - "unbox-primitive": ["unbox-primitive@1.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/unbox-primitive/-/unbox-primitive-1.1.0.tgz", { "dependencies": { "call-bound": "^1.0.3", "has-bigints": "^1.0.2", "has-symbols": "^1.1.0", "which-boxed-primitive": "^1.1.1" } }, "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw=="], + "write-file-atomic": ["write-file-atomic@5.0.1", "", { "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^4.0.1" } }, "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw=="], - "unbzip2-stream": ["unbzip2-stream@1.4.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", { "dependencies": { "buffer": "^5.2.1", "through": "^2.3.8" } }, "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg=="], + "ws": ["ws@8.19.0", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg=="], - "unconfig-core": ["unconfig-core@7.4.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/unconfig-core/-/unconfig-core-7.4.1.tgz", { "dependencies": { "@quansync/fs": "^0.1.5", "quansync": "^0.2.11" } }, "sha512-Bp/bPZjV2Vl/fofoA2OYLSnw1Z0MOhCX7zHnVCYrazpfZvseBbGhwcNQMxsg185Mqh7VZQqK3C8hFG/Dyng+yA=="], + "wsl-utils": ["wsl-utils@0.1.0", "", { "dependencies": { "is-wsl": "^3.1.0" } }, "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw=="], - "undici-types": ["undici-types@6.21.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/undici-types/-/undici-types-6.21.0.tgz", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="], + "xml-name-validator": ["xml-name-validator@5.0.0", "", {}, "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg=="], - "unicode-canonical-property-names-ecmascript": ["unicode-canonical-property-names-ecmascript@2.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", {}, "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg=="], + "xmlchars": ["xmlchars@2.2.0", "", {}, "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw=="], - "unicode-match-property-ecmascript": ["unicode-match-property-ecmascript@2.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", { "dependencies": { "unicode-canonical-property-names-ecmascript": "^2.0.0", "unicode-property-aliases-ecmascript": "^2.0.0" } }, "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q=="], + "xtend": ["xtend@4.0.2", "", {}, "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="], - "unicode-match-property-value-ecmascript": ["unicode-match-property-value-ecmascript@2.2.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz", {}, "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg=="], + "y18n": ["y18n@5.0.8", "", {}, "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="], - "unicode-property-aliases-ecmascript": ["unicode-property-aliases-ecmascript@2.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz", {}, "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ=="], + "yallist": ["yallist@3.1.1", "", {}, "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="], - "union": ["union@0.5.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/union/-/union-0.5.0.tgz", { "dependencies": { "qs": "^6.4.0" } }, "sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA=="], + "yaml": ["yaml@2.8.2", "", { "bin": { "yaml": "bin.mjs" } }, "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A=="], - "universalify": ["universalify@0.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/universalify/-/universalify-0.1.2.tgz", {}, "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="], + "yargs": ["yargs@17.7.2", "", { "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.3", "y18n": "^5.0.5", "yargs-parser": "^21.1.1" } }, "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w=="], - "unix-crypt-td-js": ["unix-crypt-td-js@1.1.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/unix-crypt-td-js/-/unix-crypt-td-js-1.1.4.tgz", {}, "sha512-8rMeVYWSIyccIJscb9NdCfZKSRBKYTeVnwmiRYT2ulE3qd1RaDQ0xQDP+rI3ccIWbhu/zuo5cgN8z73belNZgw=="], + "yargs-parser": ["yargs-parser@21.1.1", "", {}, "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw=="], - "unpipe": ["unpipe@1.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/unpipe/-/unpipe-1.0.0.tgz", {}, "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="], + "yauzl": ["yauzl@2.10.0", "", { "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" } }, "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g=="], - "unrs-resolver": ["unrs-resolver@1.11.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/unrs-resolver/-/unrs-resolver-1.11.1.tgz", { "dependencies": { "napi-postinstall": "^0.3.0" }, "optionalDependencies": { "@unrs/resolver-binding-android-arm-eabi": "1.11.1", "@unrs/resolver-binding-android-arm64": "1.11.1", "@unrs/resolver-binding-darwin-arm64": "1.11.1", "@unrs/resolver-binding-darwin-x64": "1.11.1", "@unrs/resolver-binding-freebsd-x64": "1.11.1", "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1", "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1", "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1", "@unrs/resolver-binding-linux-arm64-musl": "1.11.1", "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1", "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1", "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1", "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1", "@unrs/resolver-binding-linux-x64-gnu": "1.11.1", "@unrs/resolver-binding-linux-x64-musl": "1.11.1", "@unrs/resolver-binding-wasm32-wasi": "1.11.1", "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1", "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1", "@unrs/resolver-binding-win32-x64-msvc": "1.11.1" } }, "sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg=="], + "yn": ["yn@3.1.1", "", {}, "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q=="], - "unrun": ["unrun@0.2.11", "https://jfrog.booking.com:443/artifactory/api/npm/npm/unrun/-/unrun-0.2.11.tgz", { "dependencies": { "@oxc-project/runtime": "^0.96.0", "rolldown": "1.0.0-beta.51" }, "peerDependencies": { "synckit": "^0.11.11" }, "optionalPeers": ["synckit"], "bin": { "unrun": "dist/cli.mjs" } }, "sha512-HjUuNLRGfRxMvxkwOuO/CpkSzdizTPPApbarLplsTzUm8Kex+nS9eomKU1qgVus6WGWkDYhtf/mgNxGEpyTR6A=="], + "yocto-queue": ["yocto-queue@0.1.0", "", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="], - "update-browserslist-db": ["update-browserslist-db@1.1.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/update-browserslist-db/-/update-browserslist-db-1.1.4.tgz", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A=="], + "yoctocolors-cjs": ["yoctocolors-cjs@2.1.3", "", {}, "sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw=="], - "uri-js": ["uri-js@4.4.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/uri-js/-/uri-js-4.4.1.tgz", { "dependencies": { "punycode": "^2.1.0" } }, "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="], + "yoga-wasm-web": ["yoga-wasm-web@0.3.3", "", {}, "sha512-N+d4UJSJbt/R3wqY7Coqs5pcV0aUj2j9IaQ3rNj9bVCLld8tTGKRa2USARjnvZJWVx1NDmQev8EknoczaOQDOA=="], - "url-join": ["url-join@4.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/url-join/-/url-join-4.0.1.tgz", {}, "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA=="], + "zod": ["zod@4.3.6", "", {}, "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg=="], - "util-deprecate": ["util-deprecate@1.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/util-deprecate/-/util-deprecate-1.0.2.tgz", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="], + "@abapify/adt-codegen/commander": ["commander@11.1.0", "", {}, "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ=="], - "utils-merge": ["utils-merge@1.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/utils-merge/-/utils-merge-1.0.1.tgz", {}, "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA=="], + "@abapify/adt-codegen/fast-xml-parser": ["fast-xml-parser@4.5.4", "", { "dependencies": { "strnum": "^1.0.5" }, "bin": { "fxparser": "src/cli/cli.js" } }, "sha512-jE8ugADnYOBsu1uaoayVl1tVKAMNOXyjwvv2U6udEA2ORBhDooJDWoGxTkhd4Qn4yh59JVVt/pKXtjPwx9OguQ=="], - "uuid": ["uuid@8.3.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/uuid/-/uuid-8.3.2.tgz", { "bin": { "uuid": "dist/bin/uuid" } }, "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="], + "@abapify/asjson-parser/@nx/rollup": ["@nx/rollup@21.5.1", "", { "dependencies": { "@nx/devkit": "21.5.1", "@nx/js": "21.5.1", "@rollup/plugin-babel": "^6.0.4", "@rollup/plugin-commonjs": "^25.0.7", "@rollup/plugin-image": "^3.0.3", "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-typescript": "^12.1.0", "autoprefixer": "^10.4.9", "picocolors": "^1.1.0", "picomatch": "4.0.2", "postcss": "^8.4.38", "rollup": "^4.14.0", "rollup-plugin-copy": "^3.5.0", "rollup-plugin-postcss": "^4.0.2", "rollup-plugin-typescript2": "^0.36.0", "tslib": "^2.3.0" } }, "sha512-nZiqjErGyiMn06+k5GdB9g8ryJOrLc4gsRqEvJSVkUUa9xCl7uR7qCuKJ5eJ47j/zENGMw7YDFMZyCqtzbVDFw=="], - "v8-compile-cache-lib": ["v8-compile-cache-lib@3.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", {}, "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg=="], + "@alcalzone/ansi-tokenize/is-fullwidth-code-point": ["is-fullwidth-code-point@4.0.0", "", {}, "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ=="], - "v8-to-istanbul": ["v8-to-istanbul@9.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", "convert-source-map": "^2.0.0" } }, "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA=="], + "@asamuzakjp/css-color/lru-cache": ["lru-cache@10.4.3", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="], - "validate-npm-package-name": ["validate-npm-package-name@5.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", {}, "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ=="], + "@babel/core/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - "validator": ["validator@13.12.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/validator/-/validator-13.12.0.tgz", {}, "sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg=="], + "@babel/helper-compilation-targets/lru-cache": ["lru-cache@5.1.1", "", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="], - "vary": ["vary@1.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/vary/-/vary-1.1.2.tgz", {}, "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="], + "@babel/helper-compilation-targets/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - "verdaccio": ["verdaccio@6.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/verdaccio/-/verdaccio-6.1.2.tgz", { "dependencies": { "@cypress/request": "3.0.8", "@verdaccio/auth": "8.0.0-next-8.15", "@verdaccio/config": "8.0.0-next-8.15", "@verdaccio/core": "8.0.0-next-8.15", "@verdaccio/loaders": "8.0.0-next-8.6", "@verdaccio/local-storage-legacy": "11.0.2", "@verdaccio/logger": "8.0.0-next-8.15", "@verdaccio/middleware": "8.0.0-next-8.15", "@verdaccio/search-indexer": "8.0.0-next-8.4", "@verdaccio/signature": "8.0.0-next-8.7", "@verdaccio/streams": "10.2.1", "@verdaccio/tarball": "13.0.0-next-8.15", "@verdaccio/ui-theme": "8.0.0-next-8.15", "@verdaccio/url": "13.0.0-next-8.15", "@verdaccio/utils": "8.1.0-next-8.15", "JSONStream": "1.3.5", "async": "3.2.6", "clipanion": "4.0.0-rc.4", "compression": "1.8.0", "cors": "2.8.5", "debug": "4.4.0", "envinfo": "7.14.0", "express": "4.21.2", "handlebars": "4.7.8", "lodash": "4.17.21", "lru-cache": "7.18.3", "mime": "3.0.0", "mkdirp": "1.0.4", "pkginfo": "0.4.1", "semver": "7.6.3", "verdaccio-audit": "13.0.0-next-8.15", "verdaccio-htpasswd": "13.0.0-next-8.15" }, "bin": { "verdaccio": "bin/verdaccio" } }, "sha512-HQCquycSQkA+tKRVqMjIVRzmhzTciLfScvKIhhiwZZ9Qd13e2KJQTOdB7QrSacfJuPpl94TA5EZ7XmVRQKk3ag=="], + "@babel/helper-create-class-features-plugin/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - "verdaccio-audit": ["verdaccio-audit@13.0.0-next-8.15", "https://jfrog.booking.com:443/artifactory/api/npm/npm/verdaccio-audit/-/verdaccio-audit-13.0.0-next-8.15.tgz", { "dependencies": { "@verdaccio/config": "8.0.0-next-8.15", "@verdaccio/core": "8.0.0-next-8.15", "express": "4.21.2", "https-proxy-agent": "5.0.1", "node-fetch": "cjs" } }, "sha512-Aeau0u0fi5l4PoSDyOV6glz2FDO9+ofvogJIELV4H6fhDXhgPc2MnoKuaUgOT//khESLle/a6YfcLY2/KNLs6g=="], + "@babel/helper-create-regexp-features-plugin/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - "verdaccio-htpasswd": ["verdaccio-htpasswd@13.0.0-next-8.15", "https://jfrog.booking.com:443/artifactory/api/npm/npm/verdaccio-htpasswd/-/verdaccio-htpasswd-13.0.0-next-8.15.tgz", { "dependencies": { "@verdaccio/core": "8.0.0-next-8.15", "@verdaccio/file-locking": "13.0.0-next-8.3", "apache-md5": "1.1.8", "bcryptjs": "2.4.3", "core-js": "3.40.0", "debug": "4.4.0", "http-errors": "2.0.0", "unix-crypt-td-js": "1.1.4" } }, "sha512-rQg5oZ/rReDAM4g4W68hvtzReTbM6vduvVtobHsQxhbtbotEuUjP6O8uaROYtgZ60giGva5Tub2SOm2T9Ln9Dw=="], + "@babel/plugin-transform-runtime/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - "verror": ["verror@1.10.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/verror/-/verror-1.10.1.tgz", { "dependencies": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", "extsprintf": "^1.2.0" } }, "sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg=="], + "@babel/preset-env/babel-plugin-polyfill-corejs3": ["babel-plugin-polyfill-corejs3@0.14.0", "", { "dependencies": { "@babel/helper-define-polyfill-provider": "^0.6.6", "core-js-compat": "^3.48.0" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "sha512-AvDcMxJ34W4Wgy4KBIIePQTAOP1Ie2WFwkQp3dB7FQ/f0lI5+nM96zUnYEOE1P9sEg0es5VCP0HxiWu5fUHZAQ=="], - "vite": ["vite@7.1.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/vite/-/vite-7.1.5.tgz", { "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", "rollup": "^4.43.0", "tinyglobby": "^0.2.15" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "jiti": ">=1.21.0", "less": "^4.0.0", "lightningcss": "^1.21.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-4cKBO9wR75r0BeIWWWId9XK9Lj6La5X846Zw9dFfzMRw38IlTk2iCcUt6hsyiDRcPidc55ZParFYDXi0nXOeLQ=="], + "@babel/preset-env/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - "vite-node": ["vite-node@3.2.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/vite-node/-/vite-node-3.2.4.tgz", { "dependencies": { "cac": "^6.7.14", "debug": "^4.4.1", "es-module-lexer": "^1.7.0", "pathe": "^2.0.3", "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" }, "bin": { "vite-node": "vite-node.mjs" } }, "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg=="], + "@cspotcode/source-map-support/@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.9", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" } }, "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ=="], - "vitest": ["vitest@3.2.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/vitest/-/vitest-3.2.4.tgz", { "dependencies": { "@types/chai": "^5.2.2", "@vitest/expect": "3.2.4", "@vitest/mocker": "3.2.4", "@vitest/pretty-format": "^3.2.4", "@vitest/runner": "3.2.4", "@vitest/snapshot": "3.2.4", "@vitest/spy": "3.2.4", "@vitest/utils": "3.2.4", "chai": "^5.2.0", "debug": "^4.4.1", "expect-type": "^1.2.1", "magic-string": "^0.30.17", "pathe": "^2.0.3", "picomatch": "^4.0.2", "std-env": "^3.9.0", "tinybench": "^2.9.0", "tinyexec": "^0.3.2", "tinyglobby": "^0.2.14", "tinypool": "^1.1.1", "tinyrainbow": "^2.0.0", "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0", "vite-node": "3.2.4", "why-is-node-running": "^2.3.0" }, "peerDependencies": { "@edge-runtime/vm": "*", "@types/debug": "^4.1.12", "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", "@vitest/browser": "3.2.4", "@vitest/ui": "3.2.4", "happy-dom": "*", "jsdom": "*" }, "optionalPeers": ["@edge-runtime/vm", "@types/debug", "@types/node", "@vitest/browser", "@vitest/ui", "happy-dom", "jsdom"], "bin": { "vitest": "vitest.mjs" } }, "sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A=="], + "@cypress/request/qs": ["qs@6.14.0", "", { "dependencies": { "side-channel": "^1.1.0" } }, "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w=="], - "w3c-xmlserializer": ["w3c-xmlserializer@5.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", { "dependencies": { "xml-name-validator": "^5.0.0" } }, "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA=="], + "@eslint-community/eslint-utils/eslint-visitor-keys": ["eslint-visitor-keys@3.4.3", "", {}, "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="], - "walk-up-path": ["walk-up-path@4.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/walk-up-path/-/walk-up-path-4.0.0.tgz", {}, "sha512-3hu+tD8YzSLGuFYtPRb48vdhKMi0KQV5sn+uWr8+7dMEq/2G/dtLrdDinkLjqq5TIbIBjYJ4Ax/n3YiaW7QM8A=="], + "@eslint/config-array/minimatch": ["minimatch@3.1.5", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w=="], - "walker": ["walker@1.0.8", "https://jfrog.booking.com:443/artifactory/api/npm/npm/walker/-/walker-1.0.8.tgz", { "dependencies": { "makeerror": "1.0.12" } }, "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ=="], + "@eslint/eslintrc/ajv": ["ajv@6.14.0", "", { "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw=="], - "watchpack": ["watchpack@2.4.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/watchpack/-/watchpack-2.4.4.tgz", { "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" } }, "sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA=="], + "@eslint/eslintrc/globals": ["globals@14.0.0", "", {}, "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ=="], - "wcwidth": ["wcwidth@1.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/wcwidth/-/wcwidth-1.0.1.tgz", { "dependencies": { "defaults": "^1.0.3" } }, "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg=="], + "@eslint/eslintrc/minimatch": ["minimatch@3.1.5", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w=="], - "webdriver-bidi-protocol": ["webdriver-bidi-protocol@0.3.8", "https://jfrog.booking.com:443/artifactory/api/npm/npm/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.3.8.tgz", {}, "sha512-21Yi2GhGntMc671vNBCjiAeEVknXjVRoyu+k+9xOMShu+ZQfpGQwnBqbNz/Sv4GXZ6JmutlPAi2nIJcrymAWuQ=="], + "@eslint/eslintrc/strip-json-comments": ["strip-json-comments@3.1.1", "", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="], - "webidl-conversions": ["webidl-conversions@7.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/webidl-conversions/-/webidl-conversions-7.0.0.tgz", {}, "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g=="], + "@inquirer/core/signal-exit": ["signal-exit@4.1.0", "", {}, "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="], - "webpack": ["webpack@5.102.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/webpack/-/webpack-5.102.1.tgz", { "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.8", "@types/json-schema": "^7.0.15", "@webassemblyjs/ast": "^1.14.1", "@webassemblyjs/wasm-edit": "^1.14.1", "@webassemblyjs/wasm-parser": "^1.14.1", "acorn": "^8.15.0", "acorn-import-phases": "^1.0.3", "browserslist": "^4.26.3", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.17.3", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.11", "json-parse-even-better-errors": "^2.3.1", "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", "schema-utils": "^4.3.3", "tapable": "^2.3.0", "terser-webpack-plugin": "^5.3.11", "watchpack": "^2.4.4", "webpack-sources": "^3.3.3" }, "bin": { "webpack": "bin/webpack.js" } }, "sha512-7h/weGm9d/ywQ6qzJ+Xy+r9n/3qgp/thalBbpOi5i223dPXKi04IBtqPN9nTd+jBc7QKfvDbaBnFipYp4sJAUQ=="], + "@inquirer/core/wrap-ansi": ["wrap-ansi@6.2.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA=="], - "webpack-sources": ["webpack-sources@3.3.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/webpack-sources/-/webpack-sources-3.3.3.tgz", {}, "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg=="], + "@inquirer/external-editor/iconv-lite": ["iconv-lite@0.7.2", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw=="], - "whatwg-encoding": ["whatwg-encoding@3.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", { "dependencies": { "iconv-lite": "0.6.3" } }, "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ=="], + "@isaacs/cliui/string-width": ["string-width@5.1.2", "", { "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", "strip-ansi": "^7.0.1" } }, "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA=="], - "whatwg-mimetype": ["whatwg-mimetype@4.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", {}, "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg=="], + "@isaacs/cliui/strip-ansi": ["strip-ansi@7.2.0", "", { "dependencies": { "ansi-regex": "^6.2.2" } }, "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w=="], - "whatwg-url": ["whatwg-url@14.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/whatwg-url/-/whatwg-url-14.2.0.tgz", { "dependencies": { "tr46": "^5.1.0", "webidl-conversions": "^7.0.0" } }, "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw=="], + "@isaacs/cliui/wrap-ansi": ["wrap-ansi@8.1.0", "", { "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", "strip-ansi": "^7.0.1" } }, "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ=="], - "which": ["which@2.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/which/-/which-2.0.2.tgz", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], + "@istanbuljs/load-nyc-config/camelcase": ["camelcase@5.3.1", "", {}, "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="], - "which-boxed-primitive": ["which-boxed-primitive@1.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", { "dependencies": { "is-bigint": "^1.1.0", "is-boolean-object": "^1.2.1", "is-number-object": "^1.1.1", "is-string": "^1.1.1", "is-symbol": "^1.1.1" } }, "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA=="], + "@istanbuljs/load-nyc-config/find-up": ["find-up@4.1.0", "", { "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" } }, "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw=="], - "which-builtin-type": ["which-builtin-type@1.2.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/which-builtin-type/-/which-builtin-type-1.2.1.tgz", { "dependencies": { "call-bound": "^1.0.2", "function.prototype.name": "^1.1.6", "has-tostringtag": "^1.0.2", "is-async-function": "^2.0.0", "is-date-object": "^1.1.0", "is-finalizationregistry": "^1.1.0", "is-generator-function": "^1.0.10", "is-regex": "^1.2.1", "is-weakref": "^1.0.2", "isarray": "^2.0.5", "which-boxed-primitive": "^1.1.0", "which-collection": "^1.0.2", "which-typed-array": "^1.1.16" } }, "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q=="], + "@istanbuljs/load-nyc-config/js-yaml": ["js-yaml@3.14.2", "", { "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg=="], - "which-collection": ["which-collection@1.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/which-collection/-/which-collection-1.0.2.tgz", { "dependencies": { "is-map": "^2.0.3", "is-set": "^2.0.3", "is-weakmap": "^2.0.2", "is-weakset": "^2.0.3" } }, "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw=="], + "@istanbuljs/load-nyc-config/resolve-from": ["resolve-from@5.0.0", "", {}, "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw=="], - "which-typed-array": ["which-typed-array@1.1.19", "https://jfrog.booking.com:443/artifactory/api/npm/npm/which-typed-array/-/which-typed-array-1.1.19.tgz", { "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "call-bound": "^1.0.4", "for-each": "^0.3.5", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-tostringtag": "^1.0.2" } }, "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw=="], + "@jest/console/@jest/types": ["@jest/types@30.2.0", "", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg=="], - "why-is-node-running": ["why-is-node-running@2.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/why-is-node-running/-/why-is-node-running-2.3.0.tgz", { "dependencies": { "siginfo": "^2.0.0", "stackback": "0.0.2" }, "bin": { "why-is-node-running": "cli.js" } }, "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w=="], + "@jest/console/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "widest-line": ["widest-line@5.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/widest-line/-/widest-line-5.0.0.tgz", { "dependencies": { "string-width": "^7.0.0" } }, "sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA=="], + "@jest/console/jest-util": ["jest-util@30.2.0", "", { "dependencies": { "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", "picomatch": "^4.0.2" } }, "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA=="], - "word-wrap": ["word-wrap@1.2.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/word-wrap/-/word-wrap-1.2.5.tgz", {}, "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA=="], + "@jest/core/@jest/console": ["@jest/console@30.0.5", "", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "chalk": "^4.1.2", "jest-message-util": "30.0.5", "jest-util": "30.0.5", "slash": "^3.0.0" } }, "sha512-xY6b0XiL0Nav3ReresUarwl2oIz1gTnxGbGpho9/rbUWsLH0f1OD/VT84xs8c7VmH7MChnLb0pag6PhZhAdDiA=="], - "wordwrap": ["wordwrap@1.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/wordwrap/-/wordwrap-1.0.0.tgz", {}, "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q=="], + "@jest/core/@jest/reporters": ["@jest/reporters@30.0.5", "", { "dependencies": { "@bcoe/v8-coverage": "^0.2.3", "@jest/console": "30.0.5", "@jest/test-result": "30.0.5", "@jest/transform": "30.0.5", "@jest/types": "30.0.5", "@jridgewell/trace-mapping": "^0.3.25", "@types/node": "*", "chalk": "^4.1.2", "collect-v8-coverage": "^1.0.2", "exit-x": "^0.2.2", "glob": "^10.3.10", "graceful-fs": "^4.2.11", "istanbul-lib-coverage": "^3.0.0", "istanbul-lib-instrument": "^6.0.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^5.0.0", "istanbul-reports": "^3.1.3", "jest-message-util": "30.0.5", "jest-util": "30.0.5", "jest-worker": "30.0.5", "slash": "^3.0.0", "string-length": "^4.0.2", "v8-to-istanbul": "^9.0.1" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "optionalPeers": ["node-notifier"] }, "sha512-mafft7VBX4jzED1FwGC1o/9QUM2xebzavImZMeqnsklgcyxBto8mV4HzNSzUrryJ+8R9MFOM3HgYuDradWR+4g=="], - "wrap-ansi": ["wrap-ansi@9.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/wrap-ansi/-/wrap-ansi-9.0.2.tgz", { "dependencies": { "ansi-styles": "^6.2.1", "string-width": "^7.0.0", "strip-ansi": "^7.1.0" } }, "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww=="], + "@jest/core/@jest/test-result": ["@jest/test-result@30.0.5", "", { "dependencies": { "@jest/console": "30.0.5", "@jest/types": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "collect-v8-coverage": "^1.0.2" } }, "sha512-wPyztnK0gbDMQAJZ43tdMro+qblDHH1Ru/ylzUo21TBKqt88ZqnKKK2m30LKmLLoKtR2lxdpCC/P3g1vfKcawQ=="], - "wrap-ansi-cjs": ["wrap-ansi@7.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/wrap-ansi/-/wrap-ansi-7.0.0.tgz", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="], + "@jest/core/@jest/transform": ["@jest/transform@30.0.5", "", { "dependencies": { "@babel/core": "^7.27.4", "@jest/types": "30.0.5", "@jridgewell/trace-mapping": "^0.3.25", "babel-plugin-istanbul": "^7.0.0", "chalk": "^4.1.2", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.11", "jest-haste-map": "30.0.5", "jest-regex-util": "30.0.1", "jest-util": "30.0.5", "micromatch": "^4.0.8", "pirates": "^4.0.7", "slash": "^3.0.0", "write-file-atomic": "^5.0.1" } }, "sha512-Vk8amLQCmuZyy6GbBht1Jfo9RSdBtg7Lks+B0PecnjI8J+PCLQPGh7uI8Q/2wwpW2gLdiAfiHNsmekKlywULqg=="], - "wrappy": ["wrappy@1.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/wrappy/-/wrappy-1.0.2.tgz", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="], + "@jest/core/ansi-escapes": ["ansi-escapes@4.3.2", "", { "dependencies": { "type-fest": "^0.21.3" } }, "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ=="], - "write-file-atomic": ["write-file-atomic@5.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/write-file-atomic/-/write-file-atomic-5.0.1.tgz", { "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^4.0.1" } }, "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw=="], + "@jest/core/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "ws": ["ws@8.18.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ws/-/ws-8.18.3.tgz", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg=="], + "@jest/core/jest-config": ["jest-config@30.0.5", "", { "dependencies": { "@babel/core": "^7.27.4", "@jest/get-type": "30.0.1", "@jest/pattern": "30.0.1", "@jest/test-sequencer": "30.0.5", "@jest/types": "30.0.5", "babel-jest": "30.0.5", "chalk": "^4.1.2", "ci-info": "^4.2.0", "deepmerge": "^4.3.1", "glob": "^10.3.10", "graceful-fs": "^4.2.11", "jest-circus": "30.0.5", "jest-docblock": "30.0.1", "jest-environment-node": "30.0.5", "jest-regex-util": "30.0.1", "jest-resolve": "30.0.5", "jest-runner": "30.0.5", "jest-util": "30.0.5", "jest-validate": "30.0.5", "micromatch": "^4.0.8", "parse-json": "^5.2.0", "pretty-format": "30.0.5", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, "peerDependencies": { "@types/node": "*", "esbuild-register": ">=3.4.0", "ts-node": ">=9.0.0" }, "optionalPeers": ["@types/node", "esbuild-register", "ts-node"] }, "sha512-aIVh+JNOOpzUgzUnPn5FLtyVnqc3TQHVMupYtyeURSb//iLColiMIR8TxCIDKyx9ZgjKnXGucuW68hCxgbrwmA=="], - "wsl-utils": ["wsl-utils@0.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/wsl-utils/-/wsl-utils-0.1.0.tgz", { "dependencies": { "is-wsl": "^3.1.0" } }, "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw=="], + "@jest/core/jest-haste-map": ["jest-haste-map@30.0.5", "", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "anymatch": "^3.1.3", "fb-watchman": "^2.0.2", "graceful-fs": "^4.2.11", "jest-regex-util": "30.0.1", "jest-util": "30.0.5", "jest-worker": "30.0.5", "micromatch": "^4.0.8", "walker": "^1.0.8" }, "optionalDependencies": { "fsevents": "^2.3.3" } }, "sha512-dkmlWNlsTSR0nH3nRfW5BKbqHefLZv0/6LCccG0xFCTWcJu8TuEwG+5Cm75iBfjVoockmO6J35o5gxtFSn5xeg=="], - "xml-js": ["xml-js@1.6.11", "https://jfrog.booking.com:443/artifactory/api/npm/npm/xml-js/-/xml-js-1.6.11.tgz", { "dependencies": { "sax": "^1.2.4" }, "bin": { "xml-js": "./bin/cli.js" } }, "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g=="], + "@jest/core/jest-message-util": ["jest-message-util@30.0.5", "", { "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.0.5", "@types/stack-utils": "^2.0.3", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "micromatch": "^4.0.8", "pretty-format": "30.0.5", "slash": "^3.0.0", "stack-utils": "^2.0.6" } }, "sha512-NAiDOhsK3V7RU0Aa/HnrQo+E4JlbarbmI3q6Pi4KcxicdtjV82gcIUrejOtczChtVQR4kddu1E1EJlW6EN9IyA=="], - "xml-name-validator": ["xml-name-validator@5.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/xml-name-validator/-/xml-name-validator-5.0.0.tgz", {}, "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg=="], + "@jest/core/jest-resolve": ["jest-resolve@30.0.5", "", { "dependencies": { "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "jest-haste-map": "30.0.5", "jest-pnp-resolver": "^1.2.3", "jest-util": "30.0.5", "jest-validate": "30.0.5", "slash": "^3.0.0", "unrs-resolver": "^1.7.11" } }, "sha512-d+DjBQ1tIhdz91B79mywH5yYu76bZuE96sSbxj8MkjWVx5WNdt1deEFRONVL4UkKLSrAbMkdhb24XN691yDRHg=="], - "xmlbuilder": ["xmlbuilder@15.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/xmlbuilder/-/xmlbuilder-15.1.1.tgz", {}, "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg=="], + "@jest/core/jest-runner": ["jest-runner@30.0.5", "", { "dependencies": { "@jest/console": "30.0.5", "@jest/environment": "30.0.5", "@jest/test-result": "30.0.5", "@jest/transform": "30.0.5", "@jest/types": "30.0.5", "@types/node": "*", "chalk": "^4.1.2", "emittery": "^0.13.1", "exit-x": "^0.2.2", "graceful-fs": "^4.2.11", "jest-docblock": "30.0.1", "jest-environment-node": "30.0.5", "jest-haste-map": "30.0.5", "jest-leak-detector": "30.0.5", "jest-message-util": "30.0.5", "jest-resolve": "30.0.5", "jest-runtime": "30.0.5", "jest-util": "30.0.5", "jest-watcher": "30.0.5", "jest-worker": "30.0.5", "p-limit": "^3.1.0", "source-map-support": "0.5.13" } }, "sha512-JcCOucZmgp+YuGgLAXHNy7ualBx4wYSgJVWrYMRBnb79j9PD0Jxh0EHvR5Cx/r0Ce+ZBC4hCdz2AzFFLl9hCiw=="], - "xmlchars": ["xmlchars@2.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/xmlchars/-/xmlchars-2.2.0.tgz", {}, "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw=="], + "@jest/core/jest-validate": ["jest-validate@30.0.5", "", { "dependencies": { "@jest/get-type": "30.0.1", "@jest/types": "30.0.5", "camelcase": "^6.3.0", "chalk": "^4.1.2", "leven": "^3.1.0", "pretty-format": "30.0.5" } }, "sha512-ouTm6VFHaS2boyl+k4u+Qip4TSH7Uld5tyD8psQ8abGgt2uYYB8VwVfAHWHjHc0NWmGGbwO5h0sCPOGHHevefw=="], - "xtend": ["xtend@4.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/xtend/-/xtend-4.0.2.tgz", {}, "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="], + "@jest/core/pretty-format": ["pretty-format@30.0.5", "", { "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", "react-is": "^18.3.1" } }, "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw=="], - "y18n": ["y18n@5.0.8", "https://jfrog.booking.com:443/artifactory/api/npm/npm/y18n/-/y18n-5.0.8.tgz", {}, "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="], + "@jest/create-cache-key-function/@jest/types": ["@jest/types@30.2.0", "", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg=="], - "yallist": ["yallist@3.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/yallist/-/yallist-3.1.1.tgz", {}, "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="], + "@jest/environment/@jest/fake-timers": ["@jest/fake-timers@30.0.5", "", { "dependencies": { "@jest/types": "30.0.5", "@sinonjs/fake-timers": "^13.0.0", "@types/node": "*", "jest-message-util": "30.0.5", "jest-mock": "30.0.5", "jest-util": "30.0.5" } }, "sha512-ZO5DHfNV+kgEAeP3gK3XlpJLL4U3Sz6ebl/n68Uwt64qFFs5bv4bfEEjyRGK5uM0C90ewooNgFuKMdkbEoMEXw=="], - "yaml": ["yaml@2.8.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/yaml/-/yaml-2.8.1.tgz", { "bin": { "yaml": "bin.mjs" } }, "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw=="], + "@jest/environment/jest-mock": ["jest-mock@30.0.5", "", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "jest-util": "30.0.5" } }, "sha512-Od7TyasAAQX/6S+QCbN6vZoWOMwlTtzzGuxJku1GhGanAjz9y+QsQkpScDmETvdc9aSXyJ/Op4rhpMYBWW91wQ=="], - "yargs": ["yargs@17.7.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/yargs/-/yargs-17.7.2.tgz", { "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.3", "y18n": "^5.0.5", "yargs-parser": "^21.1.1" } }, "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w=="], + "@jest/environment-jsdom-abstract/@jest/fake-timers": ["@jest/fake-timers@30.0.5", "", { "dependencies": { "@jest/types": "30.0.5", "@sinonjs/fake-timers": "^13.0.0", "@types/node": "*", "jest-message-util": "30.0.5", "jest-mock": "30.0.5", "jest-util": "30.0.5" } }, "sha512-ZO5DHfNV+kgEAeP3gK3XlpJLL4U3Sz6ebl/n68Uwt64qFFs5bv4bfEEjyRGK5uM0C90ewooNgFuKMdkbEoMEXw=="], - "yargs-parser": ["yargs-parser@21.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/yargs-parser/-/yargs-parser-21.1.1.tgz", {}, "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw=="], + "@jest/environment-jsdom-abstract/jest-mock": ["jest-mock@30.0.5", "", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "jest-util": "30.0.5" } }, "sha512-Od7TyasAAQX/6S+QCbN6vZoWOMwlTtzzGuxJku1GhGanAjz9y+QsQkpScDmETvdc9aSXyJ/Op4rhpMYBWW91wQ=="], - "yauzl": ["yauzl@2.10.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/yauzl/-/yauzl-2.10.0.tgz", { "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" } }, "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g=="], + "@jest/expect/jest-snapshot": ["jest-snapshot@30.2.0", "", { "dependencies": { "@babel/core": "^7.27.4", "@babel/generator": "^7.27.5", "@babel/plugin-syntax-jsx": "^7.27.1", "@babel/plugin-syntax-typescript": "^7.27.1", "@babel/types": "^7.27.3", "@jest/expect-utils": "30.2.0", "@jest/get-type": "30.1.0", "@jest/snapshot-utils": "30.2.0", "@jest/transform": "30.2.0", "@jest/types": "30.2.0", "babel-preset-current-node-syntax": "^1.2.0", "chalk": "^4.1.2", "expect": "30.2.0", "graceful-fs": "^4.2.11", "jest-diff": "30.2.0", "jest-matcher-utils": "30.2.0", "jest-message-util": "30.2.0", "jest-util": "30.2.0", "pretty-format": "30.2.0", "semver": "^7.7.2", "synckit": "^0.11.8" } }, "sha512-5WEtTy2jXPFypadKNpbNkZ72puZCa6UjSr/7djeecHWOu7iYhSXSnHScT8wBz3Rn8Ena5d5RYRcsyKIeqG1IyA=="], - "yn": ["yn@3.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/yn/-/yn-3.1.1.tgz", {}, "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q=="], + "@jest/fake-timers/@jest/types": ["@jest/types@30.2.0", "", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg=="], - "yocto-queue": ["yocto-queue@0.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/yocto-queue/-/yocto-queue-0.1.0.tgz", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="], + "@jest/fake-timers/jest-util": ["jest-util@30.2.0", "", { "dependencies": { "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", "picomatch": "^4.0.2" } }, "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA=="], - "yoctocolors-cjs": ["yoctocolors-cjs@2.1.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/yoctocolors-cjs/-/yoctocolors-cjs-2.1.3.tgz", {}, "sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw=="], + "@jest/globals/@jest/expect": ["@jest/expect@30.0.5", "", { "dependencies": { "expect": "30.0.5", "jest-snapshot": "30.0.5" } }, "sha512-6udac8KKrtTtC+AXZ2iUN/R7dp7Ydry+Fo6FPFnDG54wjVMnb6vW/XNlf7Xj8UDjAE3aAVAsR4KFyKk3TCXmTA=="], - "yoga-wasm-web": ["yoga-wasm-web@0.3.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/yoga-wasm-web/-/yoga-wasm-web-0.3.3.tgz", {}, "sha512-N+d4UJSJbt/R3wqY7Coqs5pcV0aUj2j9IaQ3rNj9bVCLld8tTGKRa2USARjnvZJWVx1NDmQev8EknoczaOQDOA=="], + "@jest/globals/jest-mock": ["jest-mock@30.0.5", "", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "jest-util": "30.0.5" } }, "sha512-Od7TyasAAQX/6S+QCbN6vZoWOMwlTtzzGuxJku1GhGanAjz9y+QsQkpScDmETvdc9aSXyJ/Op4rhpMYBWW91wQ=="], - "zod": ["zod@4.1.13", "https://jfrog.booking.com:443/artifactory/api/npm/npm/zod/-/zod-4.1.13.tgz", {}, "sha512-AvvthqfqrAhNH9dnfmrfKzX5upOdjUVJYFqNSlkmGf64gRaTzlPwz99IHYnVs28qYAybvAlBV+H7pn0saFY4Ig=="], + "@jest/reporters/@bcoe/v8-coverage": ["@bcoe/v8-coverage@0.2.3", "", {}, "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw=="], - "@abapify/adt-codegen/commander": ["commander@11.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/commander/-/commander-11.1.0.tgz", {}, "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ=="], + "@jest/reporters/@jest/types": ["@jest/types@30.2.0", "", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg=="], - "@abapify/adt-codegen/fast-xml-parser": ["fast-xml-parser@4.5.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/fast-xml-parser/-/fast-xml-parser-4.5.3.tgz", { "dependencies": { "strnum": "^1.1.1" }, "bin": { "fxparser": "src/cli/cli.js" } }, "sha512-RKihhV+SHsIUGXObeVy9AXiBbFwkVk7Syp8XgwN5U3JV416+Gwp/GO9i0JYKmikykgz/UHRrrV4ROuZEo/T0ig=="], + "@jest/reporters/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "@abapify/asjson-parser/@nx/rollup": ["@nx/rollup@21.5.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@nx/rollup/-/rollup-21.5.1.tgz", { "dependencies": { "@nx/devkit": "21.5.1", "@nx/js": "21.5.1", "@rollup/plugin-babel": "^6.0.4", "@rollup/plugin-commonjs": "^25.0.7", "@rollup/plugin-image": "^3.0.3", "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-typescript": "^12.1.0", "autoprefixer": "^10.4.9", "picocolors": "^1.1.0", "picomatch": "4.0.2", "postcss": "^8.4.38", "rollup": "^4.14.0", "rollup-plugin-copy": "^3.5.0", "rollup-plugin-postcss": "^4.0.2", "rollup-plugin-typescript2": "^0.36.0", "tslib": "^2.3.0" } }, "sha512-nZiqjErGyiMn06+k5GdB9g8ryJOrLc4gsRqEvJSVkUUa9xCl7uR7qCuKJ5eJ47j/zENGMw7YDFMZyCqtzbVDFw=="], + "@jest/reporters/jest-util": ["jest-util@30.2.0", "", { "dependencies": { "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", "picomatch": "^4.0.2" } }, "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA=="], - "@alcalzone/ansi-tokenize/is-fullwidth-code-point": ["is-fullwidth-code-point@4.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", {}, "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ=="], + "@jest/snapshot-utils/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "@asamuzakjp/css-color/lru-cache": ["lru-cache@10.4.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/lru-cache/-/lru-cache-10.4.3.tgz", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="], + "@jest/test-result/@jest/types": ["@jest/types@30.2.0", "", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg=="], - "@babel/core/debug": ["debug@4.4.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/debug/-/debug-4.4.0.tgz", { "dependencies": { "ms": "^2.1.3" } }, "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA=="], + "@jest/transform/@jest/types": ["@jest/types@30.2.0", "", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg=="], - "@babel/core/semver": ["semver@6.3.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/semver/-/semver-6.3.1.tgz", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + "@jest/transform/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "@babel/helper-compilation-targets/lru-cache": ["lru-cache@5.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/lru-cache/-/lru-cache-5.1.1.tgz", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="], + "@jest/transform/jest-util": ["jest-util@30.2.0", "", { "dependencies": { "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", "picomatch": "^4.0.2" } }, "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA=="], - "@babel/helper-compilation-targets/semver": ["semver@6.3.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/semver/-/semver-6.3.1.tgz", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + "@jest/types/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "@babel/helper-create-class-features-plugin/semver": ["semver@6.3.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/semver/-/semver-6.3.1.tgz", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + "@nx/eslint-plugin/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "@babel/helper-create-regexp-features-plugin/semver": ["semver@6.3.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/semver/-/semver-6.3.1.tgz", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + "@nx/jest/jest-util": ["jest-util@30.2.0", "", { "dependencies": { "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", "picomatch": "^4.0.2" } }, "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA=="], - "@babel/plugin-transform-runtime/semver": ["semver@6.3.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/semver/-/semver-6.3.1.tgz", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + "@nx/js/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "@babel/preset-env/semver": ["semver@6.3.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/semver/-/semver-6.3.1.tgz", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + "@nx/workspace/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "@cspotcode/source-map-support/@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.9", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", { "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" } }, "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ=="], + "@oxc-resolver/binding-wasm32-wasi/@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.1.1", "", { "dependencies": { "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1", "@tybys/wasm-util": "^0.10.1" } }, "sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A=="], - "@cypress/request/form-data": ["form-data@4.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/form-data/-/form-data-4.0.0.tgz", { "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "mime-types": "^2.1.12" } }, "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww=="], + "@rolldown/binding-wasm32-wasi/@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.1.1", "", { "dependencies": { "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1", "@tybys/wasm-util": "^0.10.1" } }, "sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A=="], - "@eslint-community/eslint-utils/eslint-visitor-keys": ["eslint-visitor-keys@3.4.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", {}, "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="], + "@rollup/plugin-commonjs/glob": ["glob@8.1.0", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^5.0.1", "once": "^1.3.0" } }, "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ=="], - "@eslint/config-array/minimatch": ["minimatch@3.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/minimatch/-/minimatch-3.1.2.tgz", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], + "@rollup/pluginutils/picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], - "@eslint/eslintrc/ajv": ["ajv@6.12.6", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ajv/-/ajv-6.12.6.tgz", { "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="], + "@swc-node/sourcemap-support/source-map-support": ["source-map-support@0.5.21", "", { "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w=="], - "@eslint/eslintrc/globals": ["globals@14.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/globals/-/globals-14.0.0.tgz", {}, "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ=="], + "@swc/cli/commander": ["commander@8.3.0", "", {}, "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww=="], - "@eslint/eslintrc/minimatch": ["minimatch@3.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/minimatch/-/minimatch-3.1.2.tgz", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], + "@swc/cli/minimatch": ["minimatch@9.0.9", "", { "dependencies": { "brace-expansion": "^2.0.2" } }, "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg=="], - "@eslint/eslintrc/strip-json-comments": ["strip-json-comments@3.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/strip-json-comments/-/strip-json-comments-3.1.1.tgz", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="], + "@ts-morph/common/minimatch": ["minimatch@10.2.4", "", { "dependencies": { "brace-expansion": "^5.0.2" } }, "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg=="], - "@inquirer/core/signal-exit": ["signal-exit@4.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/signal-exit/-/signal-exit-4.1.0.tgz", {}, "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="], + "@types/minimatch/minimatch": ["minimatch@10.2.4", "", { "dependencies": { "brace-expansion": "^5.0.2" } }, "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg=="], - "@inquirer/core/wrap-ansi": ["wrap-ansi@6.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/wrap-ansi/-/wrap-ansi-6.2.0.tgz", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA=="], + "@typescript-eslint/eslint-plugin/@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.43.0", "", { "dependencies": { "@typescript-eslint/types": "8.43.0", "@typescript-eslint/visitor-keys": "8.43.0" } }, "sha512-daSWlQ87ZhsjrbMLvpuuMAt3y4ba57AuvadcR7f3nl8eS3BjRc8L9VLxFLk92RL5xdXOg6IQ+qKjjqNEimGuAg=="], - "@inquirer/external-editor/iconv-lite": ["iconv-lite@0.7.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/iconv-lite/-/iconv-lite-0.7.0.tgz", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ=="], + "@typescript-eslint/eslint-plugin/@typescript-eslint/type-utils": ["@typescript-eslint/type-utils@8.43.0", "", { "dependencies": { "@typescript-eslint/types": "8.43.0", "@typescript-eslint/typescript-estree": "8.43.0", "@typescript-eslint/utils": "8.43.0", "debug": "^4.3.4", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-qaH1uLBpBuBBuRf8c1mLJ6swOfzCXryhKND04Igr4pckzSEW9JX5Aw9AgW00kwfjWJF0kk0ps9ExKTfvXfw4Qg=="], - "@isaacs/cliui/string-width": ["string-width@5.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/string-width/-/string-width-5.1.2.tgz", { "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", "strip-ansi": "^7.0.1" } }, "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA=="], + "@typescript-eslint/eslint-plugin/@typescript-eslint/utils": ["@typescript-eslint/utils@8.43.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", "@typescript-eslint/scope-manager": "8.43.0", "@typescript-eslint/types": "8.43.0", "@typescript-eslint/typescript-estree": "8.43.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-S1/tEmkUeeswxd0GGcnwuVQPFWo8NzZTOMxCvw8BX7OMxnNae+i8Tm7REQen/SwUIPoPqfKn7EaZ+YLpiB3k9g=="], - "@isaacs/cliui/strip-ansi": ["strip-ansi@7.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/strip-ansi/-/strip-ansi-7.1.2.tgz", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA=="], + "@typescript-eslint/eslint-plugin/@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.43.0", "", { "dependencies": { "@typescript-eslint/types": "8.43.0", "eslint-visitor-keys": "^4.2.1" } }, "sha512-T+S1KqRD4sg/bHfLwrpF/K3gQLBM1n7Rp7OjjikjTEssI2YJzQpi5WXoynOaQ93ERIuq3O8RBTOUYDKszUCEHw=="], - "@isaacs/cliui/wrap-ansi": ["wrap-ansi@8.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/wrap-ansi/-/wrap-ansi-8.1.0.tgz", { "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", "strip-ansi": "^7.0.1" } }, "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ=="], + "@typescript-eslint/eslint-plugin/ignore": ["ignore@7.0.5", "", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="], - "@istanbuljs/load-nyc-config/camelcase": ["camelcase@5.3.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/camelcase/-/camelcase-5.3.1.tgz", {}, "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="], + "@typescript-eslint/typescript-estree/minimatch": ["minimatch@10.2.4", "", { "dependencies": { "brace-expansion": "^5.0.2" } }, "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg=="], - "@istanbuljs/load-nyc-config/find-up": ["find-up@4.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/find-up/-/find-up-4.1.0.tgz", { "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" } }, "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw=="], + "@typescript-eslint/visitor-keys/eslint-visitor-keys": ["eslint-visitor-keys@5.0.1", "", {}, "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA=="], - "@istanbuljs/load-nyc-config/js-yaml": ["js-yaml@3.14.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/js-yaml/-/js-yaml-3.14.1.tgz", { "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g=="], + "@unrs/resolver-binding-wasm32-wasi/@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@0.2.12", "", { "dependencies": { "@emnapi/core": "^1.4.3", "@emnapi/runtime": "^1.4.3", "@tybys/wasm-util": "^0.10.0" } }, "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ=="], - "@istanbuljs/load-nyc-config/resolve-from": ["resolve-from@5.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/resolve-from/-/resolve-from-5.0.0.tgz", {}, "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw=="], + "@verdaccio/auth/debug": ["debug@4.4.0", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA=="], - "@jest/console/@jest/types": ["@jest/types@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/types/-/types-30.2.0.tgz", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg=="], + "@verdaccio/commons-api/http-status-codes": ["http-status-codes@2.2.0", "", {}, "sha512-feERVo9iWxvnejp3SEfm/+oNG517npqL2/PIA8ORjyOZjGC7TwCRQsZylciLS64i6pJ0wRYz3rkXLRwbtFa8Ng=="], - "@jest/console/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "@verdaccio/config/debug": ["debug@4.4.0", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA=="], - "@jest/console/jest-util": ["jest-util@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-util/-/jest-util-30.2.0.tgz", { "dependencies": { "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", "picomatch": "^4.0.2" } }, "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA=="], + "@verdaccio/config/js-yaml": ["js-yaml@4.1.0", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA=="], - "@jest/core/@jest/console": ["@jest/console@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/console/-/console-30.0.5.tgz", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "chalk": "^4.1.2", "jest-message-util": "30.0.5", "jest-util": "30.0.5", "slash": "^3.0.0" } }, "sha512-xY6b0XiL0Nav3ReresUarwl2oIz1gTnxGbGpho9/rbUWsLH0f1OD/VT84xs8c7VmH7MChnLb0pag6PhZhAdDiA=="], + "@verdaccio/config/minimatch": ["minimatch@7.4.6", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw=="], - "@jest/core/@jest/reporters": ["@jest/reporters@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/reporters/-/reporters-30.0.5.tgz", { "dependencies": { "@bcoe/v8-coverage": "^0.2.3", "@jest/console": "30.0.5", "@jest/test-result": "30.0.5", "@jest/transform": "30.0.5", "@jest/types": "30.0.5", "@jridgewell/trace-mapping": "^0.3.25", "@types/node": "*", "chalk": "^4.1.2", "collect-v8-coverage": "^1.0.2", "exit-x": "^0.2.2", "glob": "^10.3.10", "graceful-fs": "^4.2.11", "istanbul-lib-coverage": "^3.0.0", "istanbul-lib-instrument": "^6.0.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^5.0.0", "istanbul-reports": "^3.1.3", "jest-message-util": "30.0.5", "jest-util": "30.0.5", "jest-worker": "30.0.5", "slash": "^3.0.0", "string-length": "^4.0.2", "v8-to-istanbul": "^9.0.1" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "optionalPeers": ["node-notifier"] }, "sha512-mafft7VBX4jzED1FwGC1o/9QUM2xebzavImZMeqnsklgcyxBto8mV4HzNSzUrryJ+8R9MFOM3HgYuDradWR+4g=="], + "@verdaccio/core/ajv": ["ajv@8.17.1", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g=="], - "@jest/core/@jest/test-result": ["@jest/test-result@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/test-result/-/test-result-30.0.5.tgz", { "dependencies": { "@jest/console": "30.0.5", "@jest/types": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "collect-v8-coverage": "^1.0.2" } }, "sha512-wPyztnK0gbDMQAJZ43tdMro+qblDHH1Ru/ylzUo21TBKqt88ZqnKKK2m30LKmLLoKtR2lxdpCC/P3g1vfKcawQ=="], + "@verdaccio/core/process-warning": ["process-warning@1.0.0", "", {}, "sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q=="], - "@jest/core/@jest/transform": ["@jest/transform@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/transform/-/transform-30.0.5.tgz", { "dependencies": { "@babel/core": "^7.27.4", "@jest/types": "30.0.5", "@jridgewell/trace-mapping": "^0.3.25", "babel-plugin-istanbul": "^7.0.0", "chalk": "^4.1.2", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.11", "jest-haste-map": "30.0.5", "jest-regex-util": "30.0.1", "jest-util": "30.0.5", "micromatch": "^4.0.8", "pirates": "^4.0.7", "slash": "^3.0.0", "write-file-atomic": "^5.0.1" } }, "sha512-Vk8amLQCmuZyy6GbBht1Jfo9RSdBtg7Lks+B0PecnjI8J+PCLQPGh7uI8Q/2wwpW2gLdiAfiHNsmekKlywULqg=="], + "@verdaccio/core/semver": ["semver@7.7.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA=="], - "@jest/core/ansi-escapes": ["ansi-escapes@4.3.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-escapes/-/ansi-escapes-4.3.2.tgz", { "dependencies": { "type-fest": "^0.21.3" } }, "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ=="], + "@verdaccio/loaders/debug": ["debug@4.4.0", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA=="], - "@jest/core/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "@verdaccio/local-storage-legacy/async": ["async@3.2.4", "", {}, "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ=="], - "@jest/core/jest-config": ["jest-config@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-config/-/jest-config-30.0.5.tgz", { "dependencies": { "@babel/core": "^7.27.4", "@jest/get-type": "30.0.1", "@jest/pattern": "30.0.1", "@jest/test-sequencer": "30.0.5", "@jest/types": "30.0.5", "babel-jest": "30.0.5", "chalk": "^4.1.2", "ci-info": "^4.2.0", "deepmerge": "^4.3.1", "glob": "^10.3.10", "graceful-fs": "^4.2.11", "jest-circus": "30.0.5", "jest-docblock": "30.0.1", "jest-environment-node": "30.0.5", "jest-regex-util": "30.0.1", "jest-resolve": "30.0.5", "jest-runner": "30.0.5", "jest-util": "30.0.5", "jest-validate": "30.0.5", "micromatch": "^4.0.8", "parse-json": "^5.2.0", "pretty-format": "30.0.5", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, "peerDependencies": { "@types/node": "*", "esbuild-register": ">=3.4.0", "ts-node": ">=9.0.0" }, "optionalPeers": ["@types/node", "esbuild-register", "ts-node"] }, "sha512-aIVh+JNOOpzUgzUnPn5FLtyVnqc3TQHVMupYtyeURSb//iLColiMIR8TxCIDKyx9ZgjKnXGucuW68hCxgbrwmA=="], + "@verdaccio/local-storage-legacy/debug": ["debug@4.3.4", "", { "dependencies": { "ms": "2.1.2" } }, "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ=="], - "@jest/core/jest-haste-map": ["jest-haste-map@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-haste-map/-/jest-haste-map-30.0.5.tgz", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "anymatch": "^3.1.3", "fb-watchman": "^2.0.2", "graceful-fs": "^4.2.11", "jest-regex-util": "30.0.1", "jest-util": "30.0.5", "jest-worker": "30.0.5", "micromatch": "^4.0.8", "walker": "^1.0.8" }, "optionalDependencies": { "fsevents": "^2.3.3" } }, "sha512-dkmlWNlsTSR0nH3nRfW5BKbqHefLZv0/6LCccG0xFCTWcJu8TuEwG+5Cm75iBfjVoockmO6J35o5gxtFSn5xeg=="], + "@verdaccio/logger/pino": ["pino@9.6.0", "", { "dependencies": { "atomic-sleep": "^1.0.0", "fast-redact": "^3.1.1", "on-exit-leak-free": "^2.1.0", "pino-abstract-transport": "^2.0.0", "pino-std-serializers": "^7.0.0", "process-warning": "^4.0.0", "quick-format-unescaped": "^4.0.3", "real-require": "^0.2.0", "safe-stable-stringify": "^2.3.1", "sonic-boom": "^4.0.1", "thread-stream": "^3.0.0" }, "bin": { "pino": "bin.js" } }, "sha512-i85pKRCt4qMjZ1+L7sy2Ag4t1atFcdbEt76+7iRJn1g2BvsnRMGu9p8pivl9fs63M2kF/A0OacFZhTub+m/qMg=="], - "@jest/core/jest-message-util": ["jest-message-util@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-message-util/-/jest-message-util-30.0.5.tgz", { "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.0.5", "@types/stack-utils": "^2.0.3", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "micromatch": "^4.0.8", "pretty-format": "30.0.5", "slash": "^3.0.0", "stack-utils": "^2.0.6" } }, "sha512-NAiDOhsK3V7RU0Aa/HnrQo+E4JlbarbmI3q6Pi4KcxicdtjV82gcIUrejOtczChtVQR4kddu1E1EJlW6EN9IyA=="], + "@verdaccio/logger-commons/debug": ["debug@4.4.0", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA=="], - "@jest/core/jest-resolve": ["jest-resolve@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-resolve/-/jest-resolve-30.0.5.tgz", { "dependencies": { "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "jest-haste-map": "30.0.5", "jest-pnp-resolver": "^1.2.3", "jest-util": "30.0.5", "jest-validate": "30.0.5", "slash": "^3.0.0", "unrs-resolver": "^1.7.11" } }, "sha512-d+DjBQ1tIhdz91B79mywH5yYu76bZuE96sSbxj8MkjWVx5WNdt1deEFRONVL4UkKLSrAbMkdhb24XN691yDRHg=="], + "@verdaccio/middleware/debug": ["debug@4.4.0", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA=="], - "@jest/core/jest-runner": ["jest-runner@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-runner/-/jest-runner-30.0.5.tgz", { "dependencies": { "@jest/console": "30.0.5", "@jest/environment": "30.0.5", "@jest/test-result": "30.0.5", "@jest/transform": "30.0.5", "@jest/types": "30.0.5", "@types/node": "*", "chalk": "^4.1.2", "emittery": "^0.13.1", "exit-x": "^0.2.2", "graceful-fs": "^4.2.11", "jest-docblock": "30.0.1", "jest-environment-node": "30.0.5", "jest-haste-map": "30.0.5", "jest-leak-detector": "30.0.5", "jest-message-util": "30.0.5", "jest-resolve": "30.0.5", "jest-runtime": "30.0.5", "jest-util": "30.0.5", "jest-watcher": "30.0.5", "jest-worker": "30.0.5", "p-limit": "^3.1.0", "source-map-support": "0.5.13" } }, "sha512-JcCOucZmgp+YuGgLAXHNy7ualBx4wYSgJVWrYMRBnb79j9PD0Jxh0EHvR5Cx/r0Ce+ZBC4hCdz2AzFFLl9hCiw=="], + "@verdaccio/middleware/mime": ["mime@2.6.0", "", { "bin": { "mime": "cli.js" } }, "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg=="], - "@jest/core/jest-validate": ["jest-validate@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-validate/-/jest-validate-30.0.5.tgz", { "dependencies": { "@jest/get-type": "30.0.1", "@jest/types": "30.0.5", "camelcase": "^6.3.0", "chalk": "^4.1.2", "leven": "^3.1.0", "pretty-format": "30.0.5" } }, "sha512-ouTm6VFHaS2boyl+k4u+Qip4TSH7Uld5tyD8psQ8abGgt2uYYB8VwVfAHWHjHc0NWmGGbwO5h0sCPOGHHevefw=="], + "@verdaccio/signature/debug": ["debug@4.4.0", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA=="], - "@jest/core/pretty-format": ["pretty-format@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/pretty-format/-/pretty-format-30.0.5.tgz", { "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", "react-is": "^18.3.1" } }, "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw=="], + "@verdaccio/tarball/debug": ["debug@4.4.0", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA=="], - "@jest/create-cache-key-function/@jest/types": ["@jest/types@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/types/-/types-30.2.0.tgz", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg=="], + "@verdaccio/tarball/tar-stream": ["tar-stream@3.1.7", "", { "dependencies": { "b4a": "^1.6.4", "fast-fifo": "^1.2.0", "streamx": "^2.15.0" } }, "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ=="], - "@jest/environment/@jest/fake-timers": ["@jest/fake-timers@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/fake-timers/-/fake-timers-30.0.5.tgz", { "dependencies": { "@jest/types": "30.0.5", "@sinonjs/fake-timers": "^13.0.0", "@types/node": "*", "jest-message-util": "30.0.5", "jest-mock": "30.0.5", "jest-util": "30.0.5" } }, "sha512-ZO5DHfNV+kgEAeP3gK3XlpJLL4U3Sz6ebl/n68Uwt64qFFs5bv4bfEEjyRGK5uM0C90ewooNgFuKMdkbEoMEXw=="], + "@verdaccio/url/debug": ["debug@4.4.0", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA=="], - "@jest/environment/jest-mock": ["jest-mock@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-mock/-/jest-mock-30.0.5.tgz", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "jest-util": "30.0.5" } }, "sha512-Od7TyasAAQX/6S+QCbN6vZoWOMwlTtzzGuxJku1GhGanAjz9y+QsQkpScDmETvdc9aSXyJ/Op4rhpMYBWW91wQ=="], + "@verdaccio/utils/minimatch": ["minimatch@7.4.6", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw=="], - "@jest/environment-jsdom-abstract/@jest/fake-timers": ["@jest/fake-timers@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/fake-timers/-/fake-timers-30.0.5.tgz", { "dependencies": { "@jest/types": "30.0.5", "@sinonjs/fake-timers": "^13.0.0", "@types/node": "*", "jest-message-util": "30.0.5", "jest-mock": "30.0.5", "jest-util": "30.0.5" } }, "sha512-ZO5DHfNV+kgEAeP3gK3XlpJLL4U3Sz6ebl/n68Uwt64qFFs5bv4bfEEjyRGK5uM0C90ewooNgFuKMdkbEoMEXw=="], + "@verdaccio/utils/semver": ["semver@7.7.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA=="], - "@jest/environment-jsdom-abstract/jest-mock": ["jest-mock@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-mock/-/jest-mock-30.0.5.tgz", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "jest-util": "30.0.5" } }, "sha512-Od7TyasAAQX/6S+QCbN6vZoWOMwlTtzzGuxJku1GhGanAjz9y+QsQkpScDmETvdc9aSXyJ/Op4rhpMYBWW91wQ=="], + "@vitest/mocker/estree-walker": ["estree-walker@3.0.3", "", { "dependencies": { "@types/estree": "^1.0.0" } }, "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g=="], - "@jest/expect/jest-snapshot": ["jest-snapshot@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-snapshot/-/jest-snapshot-30.2.0.tgz", { "dependencies": { "@babel/core": "^7.27.4", "@babel/generator": "^7.27.5", "@babel/plugin-syntax-jsx": "^7.27.1", "@babel/plugin-syntax-typescript": "^7.27.1", "@babel/types": "^7.27.3", "@jest/expect-utils": "30.2.0", "@jest/get-type": "30.1.0", "@jest/snapshot-utils": "30.2.0", "@jest/transform": "30.2.0", "@jest/types": "30.2.0", "babel-preset-current-node-syntax": "^1.2.0", "chalk": "^4.1.2", "expect": "30.2.0", "graceful-fs": "^4.2.11", "jest-diff": "30.2.0", "jest-matcher-utils": "30.2.0", "jest-message-util": "30.2.0", "jest-util": "30.2.0", "pretty-format": "30.2.0", "semver": "^7.7.2", "synckit": "^0.11.8" } }, "sha512-5WEtTy2jXPFypadKNpbNkZ72puZCa6UjSr/7djeecHWOu7iYhSXSnHScT8wBz3Rn8Ena5d5RYRcsyKIeqG1IyA=="], + "@xhmikosr/decompress-tar/tar-stream": ["tar-stream@3.1.7", "", { "dependencies": { "b4a": "^1.6.4", "fast-fifo": "^1.2.0", "streamx": "^2.15.0" } }, "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ=="], - "@jest/fake-timers/@jest/types": ["@jest/types@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/types/-/types-30.2.0.tgz", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg=="], + "@xhmikosr/decompress-unzip/yauzl": ["yauzl@3.2.0", "", { "dependencies": { "buffer-crc32": "~0.2.3", "pend": "~1.2.0" } }, "sha512-Ow9nuGZE+qp1u4JIPvg+uCiUr7xGQWdff7JQSk5VGYTAZMDe2q8lxJ10ygv10qmSj031Ty/6FNJpLO4o1Sgc+w=="], - "@jest/fake-timers/jest-util": ["jest-util@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-util/-/jest-util-30.2.0.tgz", { "dependencies": { "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", "picomatch": "^4.0.2" } }, "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA=="], + "@xhmikosr/downloader/defaults": ["defaults@2.0.2", "", {}, "sha512-cuIw0PImdp76AOfgkjbW4VhQODRmNNcKR73vdCH5cLd/ifj7aamfoXvYgfGkEAjNJZ3ozMIy9Gu2LutUkGEPbA=="], - "@jest/globals/@jest/expect": ["@jest/expect@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/expect/-/expect-30.0.5.tgz", { "dependencies": { "expect": "30.0.5", "jest-snapshot": "30.0.5" } }, "sha512-6udac8KKrtTtC+AXZ2iUN/R7dp7Ydry+Fo6FPFnDG54wjVMnb6vW/XNlf7Xj8UDjAE3aAVAsR4KFyKk3TCXmTA=="], + "@yarnpkg/parsers/js-yaml": ["js-yaml@3.14.2", "", { "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg=="], - "@jest/globals/jest-mock": ["jest-mock@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-mock/-/jest-mock-30.0.5.tgz", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "jest-util": "30.0.5" } }, "sha512-Od7TyasAAQX/6S+QCbN6vZoWOMwlTtzzGuxJku1GhGanAjz9y+QsQkpScDmETvdc9aSXyJ/Op4rhpMYBWW91wQ=="], + "accepts/negotiator": ["negotiator@0.6.3", "", {}, "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="], - "@jest/reporters/@bcoe/v8-coverage": ["@bcoe/v8-coverage@0.2.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", {}, "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw=="], + "anymatch/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], - "@jest/reporters/@jest/types": ["@jest/types@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/types/-/types-30.2.0.tgz", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg=="], + "ast-v8-to-istanbul/estree-walker": ["estree-walker@3.0.3", "", { "dependencies": { "@types/estree": "^1.0.0" } }, "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g=="], - "@jest/reporters/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "ast-v8-to-istanbul/js-tokens": ["js-tokens@10.0.0", "", {}, "sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q=="], - "@jest/reporters/jest-util": ["jest-util@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-util/-/jest-util-30.2.0.tgz", { "dependencies": { "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", "picomatch": "^4.0.2" } }, "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA=="], + "babel-jest/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "@jest/snapshot-utils/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "babel-plugin-istanbul/test-exclude": ["test-exclude@6.0.0", "", { "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", "minimatch": "^3.0.4" } }, "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w=="], - "@jest/test-result/@jest/types": ["@jest/types@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/types/-/types-30.2.0.tgz", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg=="], + "babel-plugin-macros/cosmiconfig": ["cosmiconfig@7.1.0", "", { "dependencies": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", "parse-json": "^5.0.0", "path-type": "^4.0.0", "yaml": "^1.10.0" } }, "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA=="], - "@jest/transform/@jest/types": ["@jest/types@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/types/-/types-30.2.0.tgz", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg=="], + "babel-plugin-polyfill-corejs2/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - "@jest/transform/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "bl/buffer": ["buffer@5.7.1", "", { "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ=="], - "@jest/transform/jest-util": ["jest-util@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-util/-/jest-util-30.2.0.tgz", { "dependencies": { "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", "picomatch": "^4.0.2" } }, "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA=="], + "bl/readable-stream": ["readable-stream@3.6.2", "", { "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="], - "@jest/types/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "body-parser/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], - "@nx/eslint/typescript": ["typescript@5.9.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/typescript/-/typescript-5.9.2.tgz", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A=="], + "body-parser/iconv-lite": ["iconv-lite@0.4.24", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3" } }, "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA=="], - "@nx/eslint-plugin/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "body-parser/qs": ["qs@6.13.0", "", { "dependencies": { "side-channel": "^1.0.6" } }, "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg=="], - "@nx/jest/jest-util": ["jest-util@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-util/-/jest-util-30.2.0.tgz", { "dependencies": { "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", "picomatch": "^4.0.2" } }, "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA=="], + "cacheable-request/normalize-url": ["normalize-url@8.1.1", "", {}, "sha512-JYc0DPlpGWB40kH5g07gGTrYuMqV653k3uBKY6uITPWds3M0ov3GaWGp9lbE3Bzngx8+XkfzgvASb9vk9JDFXQ=="], - "@nx/js/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "chromium-bidi/zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], - "@nx/workspace/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "cli-truncate/slice-ansi": ["slice-ansi@5.0.0", "", { "dependencies": { "ansi-styles": "^6.0.0", "is-fullwidth-code-point": "^4.0.0" } }, "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ=="], - "@oxc-resolver/binding-wasm32-wasi/@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.0.7", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@napi-rs/wasm-runtime/-/wasm-runtime-1.0.7.tgz", { "dependencies": { "@emnapi/core": "^1.5.0", "@emnapi/runtime": "^1.5.0", "@tybys/wasm-util": "^0.10.1" } }, "sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw=="], + "cli-truncate/string-width": ["string-width@7.2.0", "", { "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", "strip-ansi": "^7.1.0" } }, "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ=="], - "@rolldown/binding-wasm32-wasi/@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.0.7", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@napi-rs/wasm-runtime/-/wasm-runtime-1.0.7.tgz", { "dependencies": { "@emnapi/core": "^1.5.0", "@emnapi/runtime": "^1.5.0", "@tybys/wasm-util": "^0.10.1" } }, "sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw=="], + "cliui/wrap-ansi": ["wrap-ansi@7.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="], - "@rollup/plugin-commonjs/glob": ["glob@8.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/glob/-/glob-8.1.0.tgz", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^5.0.1", "once": "^1.3.0" } }, "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ=="], + "compression/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], - "@rollup/pluginutils/picomatch": ["picomatch@4.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/picomatch/-/picomatch-4.0.3.tgz", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], + "compression/safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="], - "@sap/cds-foss/big.js": ["big.js@6.2.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/big.js/-/big.js-6.2.2.tgz", {}, "sha512-y/ie+Faknx7sZA5MfGA2xKlu0GDv8RWrXGsmlteyJQ2lvoKv9GBK/fpRMc2qlSoBAgNxrixICFCBefIq8WCQpQ=="], + "concat-with-sourcemaps/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], - "@sap/xsenv/debug": ["debug@4.4.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/debug/-/debug-4.4.0.tgz", { "dependencies": { "ms": "^2.1.3" } }, "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA=="], + "content-disposition/safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="], - "@swc-node/sourcemap-support/source-map-support": ["source-map-support@0.5.21", "https://jfrog.booking.com:443/artifactory/api/npm/npm/source-map-support/-/source-map-support-0.5.21.tgz", { "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w=="], + "css-tree/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], - "@swc/cli/commander": ["commander@8.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/commander/-/commander-8.3.0.tgz", {}, "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww=="], + "cssnano/yaml": ["yaml@1.10.2", "", {}, "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg=="], - "@ts-morph/common/minimatch": ["minimatch@10.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/minimatch/-/minimatch-10.1.1.tgz", { "dependencies": { "@isaacs/brace-expansion": "^5.0.0" } }, "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ=="], + "decompress-response/mimic-response": ["mimic-response@3.1.0", "", {}, "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ=="], - "@types/minimatch/minimatch": ["minimatch@9.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/minimatch/-/minimatch-9.0.5.tgz", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], + "dom-serializer/entities": ["entities@2.2.0", "", {}, "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A=="], - "@types/serve-static/@types/send": ["@types/send@0.17.6", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@types/send/-/send-0.17.6.tgz", { "dependencies": { "@types/mime": "^1", "@types/node": "*" } }, "sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og=="], + "duplexify/readable-stream": ["readable-stream@2.3.8", "", { "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA=="], - "@typescript-eslint/eslint-plugin/@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.43.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript-eslint/scope-manager/-/scope-manager-8.43.0.tgz", { "dependencies": { "@typescript-eslint/types": "8.43.0", "@typescript-eslint/visitor-keys": "8.43.0" } }, "sha512-daSWlQ87ZhsjrbMLvpuuMAt3y4ba57AuvadcR7f3nl8eS3BjRc8L9VLxFLk92RL5xdXOg6IQ+qKjjqNEimGuAg=="], + "ecdsa-sig-formatter/safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="], - "@typescript-eslint/eslint-plugin/@typescript-eslint/type-utils": ["@typescript-eslint/type-utils@8.43.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript-eslint/type-utils/-/type-utils-8.43.0.tgz", { "dependencies": { "@typescript-eslint/types": "8.43.0", "@typescript-eslint/typescript-estree": "8.43.0", "@typescript-eslint/utils": "8.43.0", "debug": "^4.3.4", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-qaH1uLBpBuBBuRf8c1mLJ6swOfzCXryhKND04Igr4pckzSEW9JX5Aw9AgW00kwfjWJF0kk0ps9ExKTfvXfw4Qg=="], + "escodegen/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], - "@typescript-eslint/eslint-plugin/@typescript-eslint/utils": ["@typescript-eslint/utils@8.43.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript-eslint/utils/-/utils-8.43.0.tgz", { "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", "@typescript-eslint/scope-manager": "8.43.0", "@typescript-eslint/types": "8.43.0", "@typescript-eslint/typescript-estree": "8.43.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-S1/tEmkUeeswxd0GGcnwuVQPFWo8NzZTOMxCvw8BX7OMxnNae+i8Tm7REQen/SwUIPoPqfKn7EaZ+YLpiB3k9g=="], + "eslint/ajv": ["ajv@6.14.0", "", { "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw=="], - "@typescript-eslint/eslint-plugin/@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.43.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript-eslint/visitor-keys/-/visitor-keys-8.43.0.tgz", { "dependencies": { "@typescript-eslint/types": "8.43.0", "eslint-visitor-keys": "^4.2.1" } }, "sha512-T+S1KqRD4sg/bHfLwrpF/K3gQLBM1n7Rp7OjjikjTEssI2YJzQpi5WXoynOaQ93ERIuq3O8RBTOUYDKszUCEHw=="], + "eslint/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "@typescript-eslint/eslint-plugin/ignore": ["ignore@7.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ignore/-/ignore-7.0.5.tgz", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="], + "eslint/minimatch": ["minimatch@3.1.5", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w=="], - "@typescript-eslint/typescript-estree/minimatch": ["minimatch@9.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/minimatch/-/minimatch-9.0.5.tgz", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], + "eslint-import-resolver-node/debug": ["debug@3.2.7", "", { "dependencies": { "ms": "^2.1.1" } }, "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="], - "@unrs/resolver-binding-wasm32-wasi/@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@0.2.12", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz", { "dependencies": { "@emnapi/core": "^1.4.3", "@emnapi/runtime": "^1.4.3", "@tybys/wasm-util": "^0.10.0" } }, "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ=="], + "eslint-module-utils/debug": ["debug@3.2.7", "", { "dependencies": { "ms": "^2.1.1" } }, "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="], - "@verdaccio/auth/debug": ["debug@4.4.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/debug/-/debug-4.4.0.tgz", { "dependencies": { "ms": "^2.1.3" } }, "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA=="], + "eslint-plugin-import/debug": ["debug@3.2.7", "", { "dependencies": { "ms": "^2.1.1" } }, "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="], - "@verdaccio/commons-api/http-status-codes": ["http-status-codes@2.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/http-status-codes/-/http-status-codes-2.2.0.tgz", {}, "sha512-feERVo9iWxvnejp3SEfm/+oNG517npqL2/PIA8ORjyOZjGC7TwCRQsZylciLS64i6pJ0wRYz3rkXLRwbtFa8Ng=="], + "eslint-plugin-import/minimatch": ["minimatch@3.1.5", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w=="], - "@verdaccio/config/debug": ["debug@4.4.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/debug/-/debug-4.4.0.tgz", { "dependencies": { "ms": "^2.1.3" } }, "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA=="], + "eslint-plugin-import/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - "@verdaccio/config/js-yaml": ["js-yaml@4.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/js-yaml/-/js-yaml-4.1.0.tgz", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA=="], + "eslint-plugin-import/tsconfig-paths": ["tsconfig-paths@3.15.0", "", { "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", "minimist": "^1.2.6", "strip-bom": "^3.0.0" } }, "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg=="], - "@verdaccio/config/minimatch": ["minimatch@7.4.6", "https://jfrog.booking.com:443/artifactory/api/npm/npm/minimatch/-/minimatch-7.4.6.tgz", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw=="], + "expect/jest-util": ["jest-util@30.2.0", "", { "dependencies": { "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", "picomatch": "^4.0.2" } }, "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA=="], - "@verdaccio/core/process-warning": ["process-warning@1.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/process-warning/-/process-warning-1.0.0.tgz", {}, "sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q=="], + "express/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], - "@verdaccio/core/semver": ["semver@7.7.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/semver/-/semver-7.7.1.tgz", { "bin": { "semver": "bin/semver.js" } }, "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA=="], + "express/qs": ["qs@6.13.0", "", { "dependencies": { "side-channel": "^1.0.6" } }, "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg=="], - "@verdaccio/loaders/debug": ["debug@4.4.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/debug/-/debug-4.4.0.tgz", { "dependencies": { "ms": "^2.1.3" } }, "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA=="], + "express/safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="], - "@verdaccio/local-storage-legacy/async": ["async@3.2.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/async/-/async-3.2.4.tgz", {}, "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ=="], + "extract-zip/get-stream": ["get-stream@5.2.0", "", { "dependencies": { "pump": "^3.0.0" } }, "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA=="], - "@verdaccio/local-storage-legacy/debug": ["debug@4.3.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/debug/-/debug-4.3.4.tgz", { "dependencies": { "ms": "2.1.2" } }, "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ=="], + "fast-glob/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], - "@verdaccio/logger/pino": ["pino@9.6.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/pino/-/pino-9.6.0.tgz", { "dependencies": { "atomic-sleep": "^1.0.0", "fast-redact": "^3.1.1", "on-exit-leak-free": "^2.1.0", "pino-abstract-transport": "^2.0.0", "pino-std-serializers": "^7.0.0", "process-warning": "^4.0.0", "quick-format-unescaped": "^4.0.3", "real-require": "^0.2.0", "safe-stable-stringify": "^2.3.1", "sonic-boom": "^4.0.1", "thread-stream": "^3.0.0" }, "bin": { "pino": "bin.js" } }, "sha512-i85pKRCt4qMjZ1+L7sy2Ag4t1atFcdbEt76+7iRJn1g2BvsnRMGu9p8pivl9fs63M2kF/A0OacFZhTub+m/qMg=="], + "figures/escape-string-regexp": ["escape-string-regexp@1.0.5", "", {}, "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="], - "@verdaccio/logger-commons/debug": ["debug@4.4.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/debug/-/debug-4.4.0.tgz", { "dependencies": { "ms": "^2.1.3" } }, "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA=="], + "filelist/minimatch": ["minimatch@5.1.9", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw=="], - "@verdaccio/middleware/debug": ["debug@4.4.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/debug/-/debug-4.4.0.tgz", { "dependencies": { "ms": "^2.1.3" } }, "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA=="], + "finalhandler/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], - "@verdaccio/middleware/mime": ["mime@2.6.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/mime/-/mime-2.6.0.tgz", { "bin": { "mime": "cli.js" } }, "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg=="], + "find-cache-dir/make-dir": ["make-dir@3.1.0", "", { "dependencies": { "semver": "^6.0.0" } }, "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw=="], - "@verdaccio/signature/debug": ["debug@4.4.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/debug/-/debug-4.4.0.tgz", { "dependencies": { "ms": "^2.1.3" } }, "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA=="], + "foreground-child/signal-exit": ["signal-exit@4.1.0", "", {}, "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="], - "@verdaccio/tarball/debug": ["debug@4.4.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/debug/-/debug-4.4.0.tgz", { "dependencies": { "ms": "^2.1.3" } }, "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA=="], + "front-matter/js-yaml": ["js-yaml@3.14.2", "", { "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg=="], - "@verdaccio/tarball/tar-stream": ["tar-stream@3.1.7", "https://jfrog.booking.com:443/artifactory/api/npm/npm/tar-stream/-/tar-stream-3.1.7.tgz", { "dependencies": { "b4a": "^1.6.4", "fast-fifo": "^1.2.0", "streamx": "^2.15.0" } }, "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ=="], + "generic-names/loader-utils": ["loader-utils@3.3.1", "", {}, "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg=="], - "@verdaccio/url/debug": ["debug@4.4.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/debug/-/debug-4.4.0.tgz", { "dependencies": { "ms": "^2.1.3" } }, "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA=="], + "glob/minimatch": ["minimatch@9.0.9", "", { "dependencies": { "brace-expansion": "^2.0.2" } }, "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg=="], - "@verdaccio/utils/minimatch": ["minimatch@7.4.6", "https://jfrog.booking.com:443/artifactory/api/npm/npm/minimatch/-/minimatch-7.4.6.tgz", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw=="], + "globby/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="], - "@verdaccio/utils/semver": ["semver@7.7.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/semver/-/semver-7.7.1.tgz", { "bin": { "semver": "bin/semver.js" } }, "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA=="], + "handlebars/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], - "@vitest/mocker/estree-walker": ["estree-walker@3.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/estree-walker/-/estree-walker-3.0.3.tgz", { "dependencies": { "@types/estree": "^1.0.0" } }, "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g=="], + "hosted-git-info/lru-cache": ["lru-cache@10.4.3", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="], - "@xhmikosr/decompress-tar/tar-stream": ["tar-stream@3.1.7", "https://jfrog.booking.com:443/artifactory/api/npm/npm/tar-stream/-/tar-stream-3.1.7.tgz", { "dependencies": { "b4a": "^1.6.4", "fast-fifo": "^1.2.0", "streamx": "^2.15.0" } }, "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ=="], + "html-encoding-sniffer/whatwg-encoding": ["whatwg-encoding@2.0.0", "", { "dependencies": { "iconv-lite": "0.6.3" } }, "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg=="], - "@xhmikosr/decompress-unzip/yauzl": ["yauzl@3.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/yauzl/-/yauzl-3.2.0.tgz", { "dependencies": { "buffer-crc32": "~0.2.3", "pend": "~1.2.0" } }, "sha512-Ow9nuGZE+qp1u4JIPvg+uCiUr7xGQWdff7JQSk5VGYTAZMDe2q8lxJ10ygv10qmSj031Ty/6FNJpLO4o1Sgc+w=="], + "http-server/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "@xhmikosr/downloader/defaults": ["defaults@2.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/defaults/-/defaults-2.0.2.tgz", {}, "sha512-cuIw0PImdp76AOfgkjbW4VhQODRmNNcKR73vdCH5cLd/ifj7aamfoXvYgfGkEAjNJZ3ozMIy9Gu2LutUkGEPbA=="], + "http-server/mime": ["mime@1.6.0", "", { "bin": { "mime": "cli.js" } }, "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="], - "@yarnpkg/parsers/js-yaml": ["js-yaml@3.14.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/js-yaml/-/js-yaml-3.14.1.tgz", { "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g=="], + "import-from/resolve-from": ["resolve-from@5.0.0", "", {}, "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw=="], - "accepts/negotiator": ["negotiator@0.6.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/negotiator/-/negotiator-0.6.3.tgz", {}, "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="], + "ink/cli-cursor": ["cli-cursor@4.0.0", "", { "dependencies": { "restore-cursor": "^4.0.0" } }, "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg=="], - "anymatch/picomatch": ["picomatch@2.3.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/picomatch/-/picomatch-2.3.1.tgz", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], + "ink/string-width": ["string-width@7.2.0", "", { "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", "strip-ansi": "^7.1.0" } }, "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ=="], - "ast-v8-to-istanbul/estree-walker": ["estree-walker@3.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/estree-walker/-/estree-walker-3.0.3.tgz", { "dependencies": { "@types/estree": "^1.0.0" } }, "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g=="], + "ink-select-input/figures": ["figures@6.1.0", "", { "dependencies": { "is-unicode-supported": "^2.0.0" } }, "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg=="], - "ast-v8-to-istanbul/js-tokens": ["js-tokens@9.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/js-tokens/-/js-tokens-9.0.1.tgz", {}, "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ=="], + "ink-spinner/cli-spinners": ["cli-spinners@2.9.2", "", {}, "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg=="], - "babel-jest/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "is-inside-container/is-docker": ["is-docker@3.0.0", "", { "bin": { "is-docker": "cli.js" } }, "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ=="], - "babel-plugin-istanbul/test-exclude": ["test-exclude@6.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/test-exclude/-/test-exclude-6.0.0.tgz", { "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", "minimatch": "^3.0.4" } }, "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w=="], + "jest-circus/@jest/environment": ["@jest/environment@30.2.0", "", { "dependencies": { "@jest/fake-timers": "30.2.0", "@jest/types": "30.2.0", "@types/node": "*", "jest-mock": "30.2.0" } }, "sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g=="], - "babel-plugin-macros/cosmiconfig": ["cosmiconfig@7.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/cosmiconfig/-/cosmiconfig-7.1.0.tgz", { "dependencies": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", "parse-json": "^5.0.0", "path-type": "^4.0.0", "yaml": "^1.10.0" } }, "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA=="], + "jest-circus/@jest/types": ["@jest/types@30.2.0", "", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg=="], - "babel-plugin-polyfill-corejs2/semver": ["semver@6.3.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/semver/-/semver-6.3.1.tgz", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + "jest-circus/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "basic-auth/safe-buffer": ["safe-buffer@5.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/safe-buffer/-/safe-buffer-5.1.2.tgz", {}, "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="], + "jest-circus/jest-runtime": ["jest-runtime@30.2.0", "", { "dependencies": { "@jest/environment": "30.2.0", "@jest/fake-timers": "30.2.0", "@jest/globals": "30.2.0", "@jest/source-map": "30.0.1", "@jest/test-result": "30.2.0", "@jest/transform": "30.2.0", "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "cjs-module-lexer": "^2.1.0", "collect-v8-coverage": "^1.0.2", "glob": "^10.3.10", "graceful-fs": "^4.2.11", "jest-haste-map": "30.2.0", "jest-message-util": "30.2.0", "jest-mock": "30.2.0", "jest-regex-util": "30.0.1", "jest-resolve": "30.2.0", "jest-snapshot": "30.2.0", "jest-util": "30.2.0", "slash": "^3.0.0", "strip-bom": "^4.0.0" } }, "sha512-p1+GVX/PJqTucvsmERPMgCPvQJpFt4hFbM+VN3n8TMo47decMUcJbt+rgzwrEme0MQUA/R+1de2axftTHkKckg=="], - "bl/buffer": ["buffer@5.7.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/buffer/-/buffer-5.7.1.tgz", { "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ=="], + "jest-circus/jest-snapshot": ["jest-snapshot@30.2.0", "", { "dependencies": { "@babel/core": "^7.27.4", "@babel/generator": "^7.27.5", "@babel/plugin-syntax-jsx": "^7.27.1", "@babel/plugin-syntax-typescript": "^7.27.1", "@babel/types": "^7.27.3", "@jest/expect-utils": "30.2.0", "@jest/get-type": "30.1.0", "@jest/snapshot-utils": "30.2.0", "@jest/transform": "30.2.0", "@jest/types": "30.2.0", "babel-preset-current-node-syntax": "^1.2.0", "chalk": "^4.1.2", "expect": "30.2.0", "graceful-fs": "^4.2.11", "jest-diff": "30.2.0", "jest-matcher-utils": "30.2.0", "jest-message-util": "30.2.0", "jest-util": "30.2.0", "pretty-format": "30.2.0", "semver": "^7.7.2", "synckit": "^0.11.8" } }, "sha512-5WEtTy2jXPFypadKNpbNkZ72puZCa6UjSr/7djeecHWOu7iYhSXSnHScT8wBz3Rn8Ena5d5RYRcsyKIeqG1IyA=="], - "bl/readable-stream": ["readable-stream@3.6.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/readable-stream/-/readable-stream-3.6.2.tgz", { "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="], + "jest-circus/jest-util": ["jest-util@30.2.0", "", { "dependencies": { "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", "picomatch": "^4.0.2" } }, "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA=="], - "body-parser/debug": ["debug@2.6.9", "https://jfrog.booking.com:443/artifactory/api/npm/npm/debug/-/debug-2.6.9.tgz", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], + "jest-cli/@jest/test-result": ["@jest/test-result@30.0.5", "", { "dependencies": { "@jest/console": "30.0.5", "@jest/types": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "collect-v8-coverage": "^1.0.2" } }, "sha512-wPyztnK0gbDMQAJZ43tdMro+qblDHH1Ru/ylzUo21TBKqt88ZqnKKK2m30LKmLLoKtR2lxdpCC/P3g1vfKcawQ=="], - "body-parser/qs": ["qs@6.13.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/qs/-/qs-6.13.0.tgz", { "dependencies": { "side-channel": "^1.0.6" } }, "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg=="], + "jest-cli/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "cacheable-request/normalize-url": ["normalize-url@8.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/normalize-url/-/normalize-url-8.1.0.tgz", {}, "sha512-X06Mfd/5aKsRHc0O0J5CUedwnPmnDtLF2+nq+KN9KSDlJHkPuh0JUviWjEWMe0SW/9TDdSLVPuk7L5gGTIA1/w=="], + "jest-cli/jest-config": ["jest-config@30.0.5", "", { "dependencies": { "@babel/core": "^7.27.4", "@jest/get-type": "30.0.1", "@jest/pattern": "30.0.1", "@jest/test-sequencer": "30.0.5", "@jest/types": "30.0.5", "babel-jest": "30.0.5", "chalk": "^4.1.2", "ci-info": "^4.2.0", "deepmerge": "^4.3.1", "glob": "^10.3.10", "graceful-fs": "^4.2.11", "jest-circus": "30.0.5", "jest-docblock": "30.0.1", "jest-environment-node": "30.0.5", "jest-regex-util": "30.0.1", "jest-resolve": "30.0.5", "jest-runner": "30.0.5", "jest-util": "30.0.5", "jest-validate": "30.0.5", "micromatch": "^4.0.8", "parse-json": "^5.2.0", "pretty-format": "30.0.5", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, "peerDependencies": { "@types/node": "*", "esbuild-register": ">=3.4.0", "ts-node": ">=9.0.0" }, "optionalPeers": ["@types/node", "esbuild-register", "ts-node"] }, "sha512-aIVh+JNOOpzUgzUnPn5FLtyVnqc3TQHVMupYtyeURSb//iLColiMIR8TxCIDKyx9ZgjKnXGucuW68hCxgbrwmA=="], - "chromium-bidi/zod": ["zod@3.25.76", "https://jfrog.booking.com:443/artifactory/api/npm/npm/zod/-/zod-3.25.76.tgz", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], + "jest-cli/jest-validate": ["jest-validate@30.0.5", "", { "dependencies": { "@jest/get-type": "30.0.1", "@jest/types": "30.0.5", "camelcase": "^6.3.0", "chalk": "^4.1.2", "leven": "^3.1.0", "pretty-format": "30.0.5" } }, "sha512-ouTm6VFHaS2boyl+k4u+Qip4TSH7Uld5tyD8psQ8abGgt2uYYB8VwVfAHWHjHc0NWmGGbwO5h0sCPOGHHevefw=="], - "cli-truncate/slice-ansi": ["slice-ansi@5.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/slice-ansi/-/slice-ansi-5.0.0.tgz", { "dependencies": { "ansi-styles": "^6.0.0", "is-fullwidth-code-point": "^4.0.0" } }, "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ=="], + "jest-config/@jest/types": ["@jest/types@30.2.0", "", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg=="], - "cli-truncate/string-width": ["string-width@7.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/string-width/-/string-width-7.2.0.tgz", { "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", "strip-ansi": "^7.1.0" } }, "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ=="], + "jest-config/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "cliui/wrap-ansi": ["wrap-ansi@7.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/wrap-ansi/-/wrap-ansi-7.0.0.tgz", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="], + "jest-config/jest-util": ["jest-util@30.2.0", "", { "dependencies": { "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", "picomatch": "^4.0.2" } }, "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA=="], - "compression/debug": ["debug@2.6.9", "https://jfrog.booking.com:443/artifactory/api/npm/npm/debug/-/debug-2.6.9.tgz", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], + "jest-config/strip-json-comments": ["strip-json-comments@3.1.1", "", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="], - "concat-with-sourcemaps/source-map": ["source-map@0.6.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/source-map/-/source-map-0.6.1.tgz", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], + "jest-diff/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "css-tree/source-map": ["source-map@0.6.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/source-map/-/source-map-0.6.1.tgz", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], + "jest-each/@jest/types": ["@jest/types@30.2.0", "", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg=="], - "cssnano/yaml": ["yaml@1.10.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/yaml/-/yaml-1.10.2.tgz", {}, "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg=="], + "jest-each/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "decompress-response/mimic-response": ["mimic-response@3.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/mimic-response/-/mimic-response-3.1.0.tgz", {}, "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ=="], + "jest-each/jest-util": ["jest-util@30.2.0", "", { "dependencies": { "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", "picomatch": "^4.0.2" } }, "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA=="], - "defaults/clone": ["clone@1.0.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/clone/-/clone-1.0.4.tgz", {}, "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg=="], + "jest-environment-node/@jest/environment": ["@jest/environment@30.2.0", "", { "dependencies": { "@jest/fake-timers": "30.2.0", "@jest/types": "30.2.0", "@types/node": "*", "jest-mock": "30.2.0" } }, "sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g=="], - "dom-serializer/entities": ["entities@2.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/entities/-/entities-2.2.0.tgz", {}, "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A=="], + "jest-environment-node/@jest/types": ["@jest/types@30.2.0", "", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg=="], - "duplexify/readable-stream": ["readable-stream@2.3.8", "https://jfrog.booking.com:443/artifactory/api/npm/npm/readable-stream/-/readable-stream-2.3.8.tgz", { "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA=="], + "jest-environment-node/jest-util": ["jest-util@30.2.0", "", { "dependencies": { "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", "picomatch": "^4.0.2" } }, "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA=="], - "escodegen/source-map": ["source-map@0.6.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/source-map/-/source-map-0.6.1.tgz", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], + "jest-haste-map/@jest/types": ["@jest/types@30.2.0", "", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg=="], - "eslint/ajv": ["ajv@6.12.6", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ajv/-/ajv-6.12.6.tgz", { "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="], + "jest-haste-map/jest-util": ["jest-util@30.2.0", "", { "dependencies": { "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", "picomatch": "^4.0.2" } }, "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA=="], - "eslint/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "jest-matcher-utils/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "eslint/minimatch": ["minimatch@3.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/minimatch/-/minimatch-3.1.2.tgz", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], + "jest-message-util/@jest/types": ["@jest/types@30.2.0", "", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg=="], - "eslint-import-resolver-node/debug": ["debug@3.2.7", "https://jfrog.booking.com:443/artifactory/api/npm/npm/debug/-/debug-3.2.7.tgz", { "dependencies": { "ms": "^2.1.1" } }, "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="], + "jest-message-util/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "eslint-module-utils/debug": ["debug@3.2.7", "https://jfrog.booking.com:443/artifactory/api/npm/npm/debug/-/debug-3.2.7.tgz", { "dependencies": { "ms": "^2.1.1" } }, "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="], + "jest-mock/@jest/types": ["@jest/types@30.2.0", "", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg=="], - "eslint-plugin-import/debug": ["debug@3.2.7", "https://jfrog.booking.com:443/artifactory/api/npm/npm/debug/-/debug-3.2.7.tgz", { "dependencies": { "ms": "^2.1.1" } }, "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="], + "jest-mock/jest-util": ["jest-util@30.2.0", "", { "dependencies": { "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", "picomatch": "^4.0.2" } }, "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA=="], - "eslint-plugin-import/minimatch": ["minimatch@3.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/minimatch/-/minimatch-3.1.2.tgz", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], + "jest-resolve/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "eslint-plugin-import/semver": ["semver@6.3.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/semver/-/semver-6.3.1.tgz", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + "jest-resolve/jest-util": ["jest-util@30.2.0", "", { "dependencies": { "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", "picomatch": "^4.0.2" } }, "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA=="], - "eslint-plugin-import/tsconfig-paths": ["tsconfig-paths@3.15.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", { "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", "minimist": "^1.2.6", "strip-bom": "^3.0.0" } }, "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg=="], + "jest-runner/@jest/environment": ["@jest/environment@30.2.0", "", { "dependencies": { "@jest/fake-timers": "30.2.0", "@jest/types": "30.2.0", "@types/node": "*", "jest-mock": "30.2.0" } }, "sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g=="], - "expect/jest-util": ["jest-util@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-util/-/jest-util-30.2.0.tgz", { "dependencies": { "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", "picomatch": "^4.0.2" } }, "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA=="], + "jest-runner/@jest/types": ["@jest/types@30.2.0", "", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg=="], - "express/debug": ["debug@2.6.9", "https://jfrog.booking.com:443/artifactory/api/npm/npm/debug/-/debug-2.6.9.tgz", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], + "jest-runner/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "express/qs": ["qs@6.13.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/qs/-/qs-6.13.0.tgz", { "dependencies": { "side-channel": "^1.0.6" } }, "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg=="], + "jest-runner/jest-runtime": ["jest-runtime@30.2.0", "", { "dependencies": { "@jest/environment": "30.2.0", "@jest/fake-timers": "30.2.0", "@jest/globals": "30.2.0", "@jest/source-map": "30.0.1", "@jest/test-result": "30.2.0", "@jest/transform": "30.2.0", "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "cjs-module-lexer": "^2.1.0", "collect-v8-coverage": "^1.0.2", "glob": "^10.3.10", "graceful-fs": "^4.2.11", "jest-haste-map": "30.2.0", "jest-message-util": "30.2.0", "jest-mock": "30.2.0", "jest-regex-util": "30.0.1", "jest-resolve": "30.2.0", "jest-snapshot": "30.2.0", "jest-util": "30.2.0", "slash": "^3.0.0", "strip-bom": "^4.0.0" } }, "sha512-p1+GVX/PJqTucvsmERPMgCPvQJpFt4hFbM+VN3n8TMo47decMUcJbt+rgzwrEme0MQUA/R+1de2axftTHkKckg=="], - "extract-zip/get-stream": ["get-stream@5.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/get-stream/-/get-stream-5.2.0.tgz", { "dependencies": { "pump": "^3.0.0" } }, "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA=="], + "jest-runner/jest-util": ["jest-util@30.2.0", "", { "dependencies": { "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", "picomatch": "^4.0.2" } }, "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA=="], - "fast-glob/glob-parent": ["glob-parent@5.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/glob-parent/-/glob-parent-5.1.2.tgz", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], + "jest-runner/jest-watcher": ["jest-watcher@30.2.0", "", { "dependencies": { "@jest/test-result": "30.2.0", "@jest/types": "30.2.0", "@types/node": "*", "ansi-escapes": "^4.3.2", "chalk": "^4.1.2", "emittery": "^0.13.1", "jest-util": "30.2.0", "string-length": "^4.0.2" } }, "sha512-PYxa28dxJ9g777pGm/7PrbnMeA0Jr7osHP9bS7eJy9DuAjMgdGtxgf0uKMyoIsTWAkIbUW5hSDdJ3urmgXBqxg=="], - "figures/escape-string-regexp": ["escape-string-regexp@1.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", {}, "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="], + "jest-runner/source-map-support": ["source-map-support@0.5.13", "", { "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w=="], - "filelist/minimatch": ["minimatch@5.1.6", "https://jfrog.booking.com:443/artifactory/api/npm/npm/minimatch/-/minimatch-5.1.6.tgz", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g=="], + "jest-runtime/@jest/fake-timers": ["@jest/fake-timers@30.0.5", "", { "dependencies": { "@jest/types": "30.0.5", "@sinonjs/fake-timers": "^13.0.0", "@types/node": "*", "jest-message-util": "30.0.5", "jest-mock": "30.0.5", "jest-util": "30.0.5" } }, "sha512-ZO5DHfNV+kgEAeP3gK3XlpJLL4U3Sz6ebl/n68Uwt64qFFs5bv4bfEEjyRGK5uM0C90ewooNgFuKMdkbEoMEXw=="], - "finalhandler/debug": ["debug@2.6.9", "https://jfrog.booking.com:443/artifactory/api/npm/npm/debug/-/debug-2.6.9.tgz", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], + "jest-runtime/@jest/test-result": ["@jest/test-result@30.0.5", "", { "dependencies": { "@jest/console": "30.0.5", "@jest/types": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "collect-v8-coverage": "^1.0.2" } }, "sha512-wPyztnK0gbDMQAJZ43tdMro+qblDHH1Ru/ylzUo21TBKqt88ZqnKKK2m30LKmLLoKtR2lxdpCC/P3g1vfKcawQ=="], - "find-cache-dir/make-dir": ["make-dir@3.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/make-dir/-/make-dir-3.1.0.tgz", { "dependencies": { "semver": "^6.0.0" } }, "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw=="], + "jest-runtime/@jest/transform": ["@jest/transform@30.0.5", "", { "dependencies": { "@babel/core": "^7.27.4", "@jest/types": "30.0.5", "@jridgewell/trace-mapping": "^0.3.25", "babel-plugin-istanbul": "^7.0.0", "chalk": "^4.1.2", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.11", "jest-haste-map": "30.0.5", "jest-regex-util": "30.0.1", "jest-util": "30.0.5", "micromatch": "^4.0.8", "pirates": "^4.0.7", "slash": "^3.0.0", "write-file-atomic": "^5.0.1" } }, "sha512-Vk8amLQCmuZyy6GbBht1Jfo9RSdBtg7Lks+B0PecnjI8J+PCLQPGh7uI8Q/2wwpW2gLdiAfiHNsmekKlywULqg=="], - "foreground-child/signal-exit": ["signal-exit@4.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/signal-exit/-/signal-exit-4.1.0.tgz", {}, "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="], + "jest-runtime/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "front-matter/js-yaml": ["js-yaml@3.14.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/js-yaml/-/js-yaml-3.14.1.tgz", { "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g=="], + "jest-runtime/jest-haste-map": ["jest-haste-map@30.0.5", "", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "anymatch": "^3.1.3", "fb-watchman": "^2.0.2", "graceful-fs": "^4.2.11", "jest-regex-util": "30.0.1", "jest-util": "30.0.5", "jest-worker": "30.0.5", "micromatch": "^4.0.8", "walker": "^1.0.8" }, "optionalDependencies": { "fsevents": "^2.3.3" } }, "sha512-dkmlWNlsTSR0nH3nRfW5BKbqHefLZv0/6LCccG0xFCTWcJu8TuEwG+5Cm75iBfjVoockmO6J35o5gxtFSn5xeg=="], - "generic-names/loader-utils": ["loader-utils@3.3.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/loader-utils/-/loader-utils-3.3.1.tgz", {}, "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg=="], + "jest-runtime/jest-message-util": ["jest-message-util@30.0.5", "", { "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.0.5", "@types/stack-utils": "^2.0.3", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "micromatch": "^4.0.8", "pretty-format": "30.0.5", "slash": "^3.0.0", "stack-utils": "^2.0.6" } }, "sha512-NAiDOhsK3V7RU0Aa/HnrQo+E4JlbarbmI3q6Pi4KcxicdtjV82gcIUrejOtczChtVQR4kddu1E1EJlW6EN9IyA=="], - "glob/minimatch": ["minimatch@9.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/minimatch/-/minimatch-9.0.5.tgz", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], + "jest-runtime/jest-mock": ["jest-mock@30.0.5", "", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "jest-util": "30.0.5" } }, "sha512-Od7TyasAAQX/6S+QCbN6vZoWOMwlTtzzGuxJku1GhGanAjz9y+QsQkpScDmETvdc9aSXyJ/Op4rhpMYBWW91wQ=="], - "globby/glob": ["glob@7.2.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/glob/-/glob-7.2.3.tgz", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="], + "jest-runtime/jest-resolve": ["jest-resolve@30.0.5", "", { "dependencies": { "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "jest-haste-map": "30.0.5", "jest-pnp-resolver": "^1.2.3", "jest-util": "30.0.5", "jest-validate": "30.0.5", "slash": "^3.0.0", "unrs-resolver": "^1.7.11" } }, "sha512-d+DjBQ1tIhdz91B79mywH5yYu76bZuE96sSbxj8MkjWVx5WNdt1deEFRONVL4UkKLSrAbMkdhb24XN691yDRHg=="], - "handlebars/source-map": ["source-map@0.6.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/source-map/-/source-map-0.6.1.tgz", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], + "jest-runtime/strip-bom": ["strip-bom@4.0.0", "", {}, "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w=="], - "hosted-git-info/lru-cache": ["lru-cache@10.4.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/lru-cache/-/lru-cache-10.4.3.tgz", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="], + "jest-snapshot/@jest/expect-utils": ["@jest/expect-utils@30.0.5", "", { "dependencies": { "@jest/get-type": "30.0.1" } }, "sha512-F3lmTT7CXWYywoVUGTCmom0vXq3HTTkaZyTAzIy+bXSBizB7o5qzlC9VCtq0arOa8GqmNsbg/cE9C6HLn7Szew=="], - "html-encoding-sniffer/whatwg-encoding": ["whatwg-encoding@2.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", { "dependencies": { "iconv-lite": "0.6.3" } }, "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg=="], + "jest-snapshot/@jest/get-type": ["@jest/get-type@30.0.1", "", {}, "sha512-AyYdemXCptSRFirI5EPazNxyPwAL0jXt3zceFjaj8NFiKP9pOi0bfXonf6qkf82z2t3QWPeLCWWw4stPBzctLw=="], - "http-server/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "jest-snapshot/@jest/transform": ["@jest/transform@30.0.5", "", { "dependencies": { "@babel/core": "^7.27.4", "@jest/types": "30.0.5", "@jridgewell/trace-mapping": "^0.3.25", "babel-plugin-istanbul": "^7.0.0", "chalk": "^4.1.2", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.11", "jest-haste-map": "30.0.5", "jest-regex-util": "30.0.1", "jest-util": "30.0.5", "micromatch": "^4.0.8", "pirates": "^4.0.7", "slash": "^3.0.0", "write-file-atomic": "^5.0.1" } }, "sha512-Vk8amLQCmuZyy6GbBht1Jfo9RSdBtg7Lks+B0PecnjI8J+PCLQPGh7uI8Q/2wwpW2gLdiAfiHNsmekKlywULqg=="], - "http-server/mime": ["mime@1.6.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/mime/-/mime-1.6.0.tgz", { "bin": { "mime": "cli.js" } }, "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="], + "jest-snapshot/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "import-from/resolve-from": ["resolve-from@5.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/resolve-from/-/resolve-from-5.0.0.tgz", {}, "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw=="], + "jest-snapshot/expect": ["expect@30.0.5", "", { "dependencies": { "@jest/expect-utils": "30.0.5", "@jest/get-type": "30.0.1", "jest-matcher-utils": "30.0.5", "jest-message-util": "30.0.5", "jest-mock": "30.0.5", "jest-util": "30.0.5" } }, "sha512-P0te2pt+hHI5qLJkIR+iMvS+lYUZml8rKKsohVHAGY+uClp9XVbdyYNJOIjSRpHVp8s8YqxJCiHUkSYZGr8rtQ=="], - "ink/cli-cursor": ["cli-cursor@4.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/cli-cursor/-/cli-cursor-4.0.0.tgz", { "dependencies": { "restore-cursor": "^4.0.0" } }, "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg=="], + "jest-snapshot/jest-diff": ["jest-diff@30.0.5", "", { "dependencies": { "@jest/diff-sequences": "30.0.1", "@jest/get-type": "30.0.1", "chalk": "^4.1.2", "pretty-format": "30.0.5" } }, "sha512-1UIqE9PoEKaHcIKvq2vbibrCog4Y8G0zmOxgQUVEiTqwR5hJVMCoDsN1vFvI5JvwD37hjueZ1C4l2FyGnfpE0A=="], - "ink/string-width": ["string-width@7.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/string-width/-/string-width-7.2.0.tgz", { "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", "strip-ansi": "^7.1.0" } }, "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ=="], + "jest-snapshot/jest-matcher-utils": ["jest-matcher-utils@30.0.5", "", { "dependencies": { "@jest/get-type": "30.0.1", "chalk": "^4.1.2", "jest-diff": "30.0.5", "pretty-format": "30.0.5" } }, "sha512-uQgGWt7GOrRLP1P7IwNWwK1WAQbq+m//ZY0yXygyfWp0rJlksMSLQAA4wYQC3b6wl3zfnchyTx+k3HZ5aPtCbQ=="], - "ink-select-input/figures": ["figures@6.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/figures/-/figures-6.1.0.tgz", { "dependencies": { "is-unicode-supported": "^2.0.0" } }, "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg=="], + "jest-snapshot/jest-message-util": ["jest-message-util@30.0.5", "", { "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.0.5", "@types/stack-utils": "^2.0.3", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "micromatch": "^4.0.8", "pretty-format": "30.0.5", "slash": "^3.0.0", "stack-utils": "^2.0.6" } }, "sha512-NAiDOhsK3V7RU0Aa/HnrQo+E4JlbarbmI3q6Pi4KcxicdtjV82gcIUrejOtczChtVQR4kddu1E1EJlW6EN9IyA=="], - "ink-spinner/cli-spinners": ["cli-spinners@2.9.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/cli-spinners/-/cli-spinners-2.9.2.tgz", {}, "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg=="], + "jest-snapshot/pretty-format": ["pretty-format@30.0.5", "", { "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", "react-is": "^18.3.1" } }, "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw=="], - "is-inside-container/is-docker": ["is-docker@3.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-docker/-/is-docker-3.0.0.tgz", { "bin": { "is-docker": "cli.js" } }, "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ=="], + "jest-util/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "jest-circus/@jest/environment": ["@jest/environment@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/environment/-/environment-30.2.0.tgz", { "dependencies": { "@jest/fake-timers": "30.2.0", "@jest/types": "30.2.0", "@types/node": "*", "jest-mock": "30.2.0" } }, "sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g=="], + "jest-util/picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], - "jest-circus/@jest/types": ["@jest/types@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/types/-/types-30.2.0.tgz", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg=="], + "jest-validate/@jest/types": ["@jest/types@30.2.0", "", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg=="], - "jest-circus/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "jest-validate/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "jest-circus/jest-runtime": ["jest-runtime@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-runtime/-/jest-runtime-30.2.0.tgz", { "dependencies": { "@jest/environment": "30.2.0", "@jest/fake-timers": "30.2.0", "@jest/globals": "30.2.0", "@jest/source-map": "30.0.1", "@jest/test-result": "30.2.0", "@jest/transform": "30.2.0", "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "cjs-module-lexer": "^2.1.0", "collect-v8-coverage": "^1.0.2", "glob": "^10.3.10", "graceful-fs": "^4.2.11", "jest-haste-map": "30.2.0", "jest-message-util": "30.2.0", "jest-mock": "30.2.0", "jest-regex-util": "30.0.1", "jest-resolve": "30.2.0", "jest-snapshot": "30.2.0", "jest-util": "30.2.0", "slash": "^3.0.0", "strip-bom": "^4.0.0" } }, "sha512-p1+GVX/PJqTucvsmERPMgCPvQJpFt4hFbM+VN3n8TMo47decMUcJbt+rgzwrEme0MQUA/R+1de2axftTHkKckg=="], + "jest-watcher/@jest/test-result": ["@jest/test-result@30.0.5", "", { "dependencies": { "@jest/console": "30.0.5", "@jest/types": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "collect-v8-coverage": "^1.0.2" } }, "sha512-wPyztnK0gbDMQAJZ43tdMro+qblDHH1Ru/ylzUo21TBKqt88ZqnKKK2m30LKmLLoKtR2lxdpCC/P3g1vfKcawQ=="], - "jest-circus/jest-snapshot": ["jest-snapshot@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-snapshot/-/jest-snapshot-30.2.0.tgz", { "dependencies": { "@babel/core": "^7.27.4", "@babel/generator": "^7.27.5", "@babel/plugin-syntax-jsx": "^7.27.1", "@babel/plugin-syntax-typescript": "^7.27.1", "@babel/types": "^7.27.3", "@jest/expect-utils": "30.2.0", "@jest/get-type": "30.1.0", "@jest/snapshot-utils": "30.2.0", "@jest/transform": "30.2.0", "@jest/types": "30.2.0", "babel-preset-current-node-syntax": "^1.2.0", "chalk": "^4.1.2", "expect": "30.2.0", "graceful-fs": "^4.2.11", "jest-diff": "30.2.0", "jest-matcher-utils": "30.2.0", "jest-message-util": "30.2.0", "jest-util": "30.2.0", "pretty-format": "30.2.0", "semver": "^7.7.2", "synckit": "^0.11.8" } }, "sha512-5WEtTy2jXPFypadKNpbNkZ72puZCa6UjSr/7djeecHWOu7iYhSXSnHScT8wBz3Rn8Ena5d5RYRcsyKIeqG1IyA=="], + "jest-watcher/ansi-escapes": ["ansi-escapes@4.3.2", "", { "dependencies": { "type-fest": "^0.21.3" } }, "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ=="], - "jest-circus/jest-util": ["jest-util@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-util/-/jest-util-30.2.0.tgz", { "dependencies": { "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", "picomatch": "^4.0.2" } }, "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA=="], + "jest-watcher/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "jest-cli/@jest/test-result": ["@jest/test-result@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/test-result/-/test-result-30.0.5.tgz", { "dependencies": { "@jest/console": "30.0.5", "@jest/types": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "collect-v8-coverage": "^1.0.2" } }, "sha512-wPyztnK0gbDMQAJZ43tdMro+qblDHH1Ru/ylzUo21TBKqt88ZqnKKK2m30LKmLLoKtR2lxdpCC/P3g1vfKcawQ=="], + "jest-worker/jest-util": ["jest-util@30.2.0", "", { "dependencies": { "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", "picomatch": "^4.0.2" } }, "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA=="], - "jest-cli/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "jest-worker/supports-color": ["supports-color@8.1.1", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], - "jest-cli/jest-config": ["jest-config@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-config/-/jest-config-30.0.5.tgz", { "dependencies": { "@babel/core": "^7.27.4", "@jest/get-type": "30.0.1", "@jest/pattern": "30.0.1", "@jest/test-sequencer": "30.0.5", "@jest/types": "30.0.5", "babel-jest": "30.0.5", "chalk": "^4.1.2", "ci-info": "^4.2.0", "deepmerge": "^4.3.1", "glob": "^10.3.10", "graceful-fs": "^4.2.11", "jest-circus": "30.0.5", "jest-docblock": "30.0.1", "jest-environment-node": "30.0.5", "jest-regex-util": "30.0.1", "jest-resolve": "30.0.5", "jest-runner": "30.0.5", "jest-util": "30.0.5", "jest-validate": "30.0.5", "micromatch": "^4.0.8", "parse-json": "^5.2.0", "pretty-format": "30.0.5", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, "peerDependencies": { "@types/node": "*", "esbuild-register": ">=3.4.0", "ts-node": ">=9.0.0" }, "optionalPeers": ["@types/node", "esbuild-register", "ts-node"] }, "sha512-aIVh+JNOOpzUgzUnPn5FLtyVnqc3TQHVMupYtyeURSb//iLColiMIR8TxCIDKyx9ZgjKnXGucuW68hCxgbrwmA=="], + "jsdom/html-encoding-sniffer": ["html-encoding-sniffer@4.0.0", "", { "dependencies": { "whatwg-encoding": "^3.1.1" } }, "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ=="], - "jest-cli/jest-validate": ["jest-validate@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-validate/-/jest-validate-30.0.5.tgz", { "dependencies": { "@jest/get-type": "30.0.1", "@jest/types": "30.0.5", "camelcase": "^6.3.0", "chalk": "^4.1.2", "leven": "^3.1.0", "pretty-format": "30.0.5" } }, "sha512-ouTm6VFHaS2boyl+k4u+Qip4TSH7Uld5tyD8psQ8abGgt2uYYB8VwVfAHWHjHc0NWmGGbwO5h0sCPOGHHevefw=="], + "jsonc-eslint-parser/eslint-visitor-keys": ["eslint-visitor-keys@3.4.3", "", {}, "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="], - "jest-config/@jest/types": ["@jest/types@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/types/-/types-30.2.0.tgz", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg=="], + "jsonc-eslint-parser/espree": ["espree@9.6.1", "", { "dependencies": { "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.4.1" } }, "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ=="], - "jest-config/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "jwa/safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="], - "jest-config/jest-util": ["jest-util@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-util/-/jest-util-30.2.0.tgz", { "dependencies": { "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", "picomatch": "^4.0.2" } }, "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA=="], + "jws/safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="], - "jest-config/strip-json-comments": ["strip-json-comments@3.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/strip-json-comments/-/strip-json-comments-3.1.1.tgz", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="], + "knip/jiti": ["jiti@2.6.1", "", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ=="], - "jest-diff/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "knip/picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], - "jest-each/@jest/types": ["@jest/types@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/types/-/types-30.2.0.tgz", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg=="], + "log-symbols/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "jest-each/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "log-symbols/is-unicode-supported": ["is-unicode-supported@0.1.0", "", {}, "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw=="], - "jest-each/jest-util": ["jest-util@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-util/-/jest-util-30.2.0.tgz", { "dependencies": { "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", "picomatch": "^4.0.2" } }, "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA=="], + "lowdb/pify": ["pify@3.0.0", "", {}, "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg=="], - "jest-environment-node/@jest/environment": ["@jest/environment@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/environment/-/environment-30.2.0.tgz", { "dependencies": { "@jest/fake-timers": "30.2.0", "@jest/types": "30.2.0", "@types/node": "*", "jest-mock": "30.2.0" } }, "sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g=="], + "micromatch/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], - "jest-environment-node/@jest/types": ["@jest/types@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/types/-/types-30.2.0.tgz", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg=="], + "node-fetch/whatwg-url": ["whatwg-url@5.0.0", "", { "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw=="], - "jest-environment-node/jest-util": ["jest-util@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-util/-/jest-util-30.2.0.tgz", { "dependencies": { "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", "picomatch": "^4.0.2" } }, "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA=="], + "nx/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "jest-haste-map/@jest/types": ["@jest/types@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/types/-/types-30.2.0.tgz", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg=="], + "nx/ignore": ["ignore@7.0.5", "", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="], - "jest-haste-map/jest-util": ["jest-util@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-util/-/jest-util-30.2.0.tgz", { "dependencies": { "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", "picomatch": "^4.0.2" } }, "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA=="], + "nx/open": ["open@8.4.2", "", { "dependencies": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", "is-wsl": "^2.2.0" } }, "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ=="], - "jest-matcher-utils/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "ora/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "jest-message-util/@jest/types": ["@jest/types@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/types/-/types-30.2.0.tgz", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg=="], + "ora/cli-spinners": ["cli-spinners@2.9.2", "", {}, "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg=="], - "jest-message-util/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "parse-json/lines-and-columns": ["lines-and-columns@1.2.4", "", {}, "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="], - "jest-mock/@jest/types": ["@jest/types@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/types/-/types-30.2.0.tgz", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg=="], + "path-scurry/lru-cache": ["lru-cache@10.4.3", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="], - "jest-mock/jest-util": ["jest-util@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-util/-/jest-util-30.2.0.tgz", { "dependencies": { "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", "picomatch": "^4.0.2" } }, "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA=="], + "pino-pretty/strip-json-comments": ["strip-json-comments@3.1.1", "", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="], - "jest-resolve/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "pkg-dir/find-up": ["find-up@4.1.0", "", { "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" } }, "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw=="], - "jest-resolve/jest-util": ["jest-util@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-util/-/jest-util-30.2.0.tgz", { "dependencies": { "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", "picomatch": "^4.0.2" } }, "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA=="], + "playwright/fsevents": ["fsevents@2.3.2", "", { "os": "darwin" }, "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA=="], - "jest-runner/@jest/environment": ["@jest/environment@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/environment/-/environment-30.2.0.tgz", { "dependencies": { "@jest/fake-timers": "30.2.0", "@jest/types": "30.2.0", "@types/node": "*", "jest-mock": "30.2.0" } }, "sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g=="], + "postcss-calc/postcss-selector-parser": ["postcss-selector-parser@6.1.2", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg=="], - "jest-runner/@jest/types": ["@jest/types@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/types/-/types-30.2.0.tgz", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg=="], + "postcss-load-config/yaml": ["yaml@1.10.2", "", {}, "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg=="], - "jest-runner/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "postcss-merge-rules/postcss-selector-parser": ["postcss-selector-parser@6.1.2", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg=="], - "jest-runner/jest-runtime": ["jest-runtime@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-runtime/-/jest-runtime-30.2.0.tgz", { "dependencies": { "@jest/environment": "30.2.0", "@jest/fake-timers": "30.2.0", "@jest/globals": "30.2.0", "@jest/source-map": "30.0.1", "@jest/test-result": "30.2.0", "@jest/transform": "30.2.0", "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "cjs-module-lexer": "^2.1.0", "collect-v8-coverage": "^1.0.2", "glob": "^10.3.10", "graceful-fs": "^4.2.11", "jest-haste-map": "30.2.0", "jest-message-util": "30.2.0", "jest-mock": "30.2.0", "jest-regex-util": "30.0.1", "jest-resolve": "30.2.0", "jest-snapshot": "30.2.0", "jest-util": "30.2.0", "slash": "^3.0.0", "strip-bom": "^4.0.0" } }, "sha512-p1+GVX/PJqTucvsmERPMgCPvQJpFt4hFbM+VN3n8TMo47decMUcJbt+rgzwrEme0MQUA/R+1de2axftTHkKckg=="], + "postcss-minify-selectors/postcss-selector-parser": ["postcss-selector-parser@6.1.2", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg=="], - "jest-runner/jest-util": ["jest-util@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-util/-/jest-util-30.2.0.tgz", { "dependencies": { "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", "picomatch": "^4.0.2" } }, "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA=="], + "postcss-unique-selectors/postcss-selector-parser": ["postcss-selector-parser@6.1.2", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg=="], - "jest-runner/jest-watcher": ["jest-watcher@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-watcher/-/jest-watcher-30.2.0.tgz", { "dependencies": { "@jest/test-result": "30.2.0", "@jest/types": "30.2.0", "@types/node": "*", "ansi-escapes": "^4.3.2", "chalk": "^4.1.2", "emittery": "^0.13.1", "jest-util": "30.2.0", "string-length": "^4.0.2" } }, "sha512-PYxa28dxJ9g777pGm/7PrbnMeA0Jr7osHP9bS7eJy9DuAjMgdGtxgf0uKMyoIsTWAkIbUW5hSDdJ3urmgXBqxg=="], + "pretty-format/ansi-styles": ["ansi-styles@5.2.0", "", {}, "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="], - "jest-runner/source-map-support": ["source-map-support@0.5.13", "https://jfrog.booking.com:443/artifactory/api/npm/npm/source-map-support/-/source-map-support-0.5.13.tgz", { "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w=="], + "pumpify/pump": ["pump@2.0.1", "", { "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA=="], - "jest-runtime/@jest/fake-timers": ["@jest/fake-timers@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/fake-timers/-/fake-timers-30.0.5.tgz", { "dependencies": { "@jest/types": "30.0.5", "@sinonjs/fake-timers": "^13.0.0", "@types/node": "*", "jest-message-util": "30.0.5", "jest-mock": "30.0.5", "jest-util": "30.0.5" } }, "sha512-ZO5DHfNV+kgEAeP3gK3XlpJLL4U3Sz6ebl/n68Uwt64qFFs5bv4bfEEjyRGK5uM0C90ewooNgFuKMdkbEoMEXw=="], + "randombytes/safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="], - "jest-runtime/@jest/test-result": ["@jest/test-result@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/test-result/-/test-result-30.0.5.tgz", { "dependencies": { "@jest/console": "30.0.5", "@jest/types": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "collect-v8-coverage": "^1.0.2" } }, "sha512-wPyztnK0gbDMQAJZ43tdMro+qblDHH1Ru/ylzUo21TBKqt88ZqnKKK2m30LKmLLoKtR2lxdpCC/P3g1vfKcawQ=="], + "raw-body/iconv-lite": ["iconv-lite@0.4.24", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3" } }, "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA=="], - "jest-runtime/@jest/transform": ["@jest/transform@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/transform/-/transform-30.0.5.tgz", { "dependencies": { "@babel/core": "^7.27.4", "@jest/types": "30.0.5", "@jridgewell/trace-mapping": "^0.3.25", "babel-plugin-istanbul": "^7.0.0", "chalk": "^4.1.2", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.11", "jest-haste-map": "30.0.5", "jest-regex-util": "30.0.1", "jest-util": "30.0.5", "micromatch": "^4.0.8", "pirates": "^4.0.7", "slash": "^3.0.0", "write-file-atomic": "^5.0.1" } }, "sha512-Vk8amLQCmuZyy6GbBht1Jfo9RSdBtg7Lks+B0PecnjI8J+PCLQPGh7uI8Q/2wwpW2gLdiAfiHNsmekKlywULqg=="], + "resolve-cwd/resolve-from": ["resolve-from@5.0.0", "", {}, "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw=="], - "jest-runtime/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "rollup-plugin-copy/colorette": ["colorette@1.4.0", "", {}, "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g=="], - "jest-runtime/jest-haste-map": ["jest-haste-map@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-haste-map/-/jest-haste-map-30.0.5.tgz", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "anymatch": "^3.1.3", "fb-watchman": "^2.0.2", "graceful-fs": "^4.2.11", "jest-regex-util": "30.0.1", "jest-util": "30.0.5", "jest-worker": "30.0.5", "micromatch": "^4.0.8", "walker": "^1.0.8" }, "optionalDependencies": { "fsevents": "^2.3.3" } }, "sha512-dkmlWNlsTSR0nH3nRfW5BKbqHefLZv0/6LCccG0xFCTWcJu8TuEwG+5Cm75iBfjVoockmO6J35o5gxtFSn5xeg=="], + "rollup-plugin-postcss/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "jest-runtime/jest-message-util": ["jest-message-util@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-message-util/-/jest-message-util-30.0.5.tgz", { "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.0.5", "@types/stack-utils": "^2.0.3", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "micromatch": "^4.0.8", "pretty-format": "30.0.5", "slash": "^3.0.0", "stack-utils": "^2.0.6" } }, "sha512-NAiDOhsK3V7RU0Aa/HnrQo+E4JlbarbmI3q6Pi4KcxicdtjV82gcIUrejOtczChtVQR4kddu1E1EJlW6EN9IyA=="], + "rollup-plugin-typescript2/@rollup/pluginutils": ["@rollup/pluginutils@4.2.1", "", { "dependencies": { "estree-walker": "^2.0.1", "picomatch": "^2.2.2" } }, "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ=="], - "jest-runtime/jest-mock": ["jest-mock@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-mock/-/jest-mock-30.0.5.tgz", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "jest-util": "30.0.5" } }, "sha512-Od7TyasAAQX/6S+QCbN6vZoWOMwlTtzzGuxJku1GhGanAjz9y+QsQkpScDmETvdc9aSXyJ/Op4rhpMYBWW91wQ=="], + "rollup-plugin-typescript2/fs-extra": ["fs-extra@10.1.0", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ=="], - "jest-runtime/jest-resolve": ["jest-resolve@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-resolve/-/jest-resolve-30.0.5.tgz", { "dependencies": { "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "jest-haste-map": "30.0.5", "jest-pnp-resolver": "^1.2.3", "jest-util": "30.0.5", "jest-validate": "30.0.5", "slash": "^3.0.0", "unrs-resolver": "^1.7.11" } }, "sha512-d+DjBQ1tIhdz91B79mywH5yYu76bZuE96sSbxj8MkjWVx5WNdt1deEFRONVL4UkKLSrAbMkdhb24XN691yDRHg=="], + "rollup-pluginutils/estree-walker": ["estree-walker@0.6.1", "", {}, "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w=="], - "jest-runtime/strip-bom": ["strip-bom@4.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/strip-bom/-/strip-bom-4.0.0.tgz", {}, "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w=="], + "seek-bzip/commander": ["commander@6.2.1", "", {}, "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA=="], - "jest-snapshot/@jest/expect-utils": ["@jest/expect-utils@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/expect-utils/-/expect-utils-30.0.5.tgz", { "dependencies": { "@jest/get-type": "30.0.1" } }, "sha512-F3lmTT7CXWYywoVUGTCmom0vXq3HTTkaZyTAzIy+bXSBizB7o5qzlC9VCtq0arOa8GqmNsbg/cE9C6HLn7Szew=="], + "send/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], - "jest-snapshot/@jest/get-type": ["@jest/get-type@30.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/get-type/-/get-type-30.0.1.tgz", {}, "sha512-AyYdemXCptSRFirI5EPazNxyPwAL0jXt3zceFjaj8NFiKP9pOi0bfXonf6qkf82z2t3QWPeLCWWw4stPBzctLw=="], + "send/encodeurl": ["encodeurl@1.0.2", "", {}, "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="], - "jest-snapshot/@jest/transform": ["@jest/transform@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/transform/-/transform-30.0.5.tgz", { "dependencies": { "@babel/core": "^7.27.4", "@jest/types": "30.0.5", "@jridgewell/trace-mapping": "^0.3.25", "babel-plugin-istanbul": "^7.0.0", "chalk": "^4.1.2", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.11", "jest-haste-map": "30.0.5", "jest-regex-util": "30.0.1", "jest-util": "30.0.5", "micromatch": "^4.0.8", "pirates": "^4.0.7", "slash": "^3.0.0", "write-file-atomic": "^5.0.1" } }, "sha512-Vk8amLQCmuZyy6GbBht1Jfo9RSdBtg7Lks+B0PecnjI8J+PCLQPGh7uI8Q/2wwpW2gLdiAfiHNsmekKlywULqg=="], + "send/mime": ["mime@1.6.0", "", { "bin": { "mime": "cli.js" } }, "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="], - "jest-snapshot/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "slice-ansi/is-fullwidth-code-point": ["is-fullwidth-code-point@5.1.0", "", { "dependencies": { "get-east-asian-width": "^1.3.1" } }, "sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ=="], - "jest-snapshot/expect": ["expect@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/expect/-/expect-30.0.5.tgz", { "dependencies": { "@jest/expect-utils": "30.0.5", "@jest/get-type": "30.0.1", "jest-matcher-utils": "30.0.5", "jest-message-util": "30.0.5", "jest-mock": "30.0.5", "jest-util": "30.0.5" } }, "sha512-P0te2pt+hHI5qLJkIR+iMvS+lYUZml8rKKsohVHAGY+uClp9XVbdyYNJOIjSRpHVp8s8YqxJCiHUkSYZGr8rtQ=="], + "source-map-support/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], - "jest-snapshot/jest-diff": ["jest-diff@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-diff/-/jest-diff-30.0.5.tgz", { "dependencies": { "@jest/diff-sequences": "30.0.1", "@jest/get-type": "30.0.1", "chalk": "^4.1.2", "pretty-format": "30.0.5" } }, "sha512-1UIqE9PoEKaHcIKvq2vbibrCog4Y8G0zmOxgQUVEiTqwR5hJVMCoDsN1vFvI5JvwD37hjueZ1C4l2FyGnfpE0A=="], + "stack-utils/escape-string-regexp": ["escape-string-regexp@2.0.0", "", {}, "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w=="], - "jest-snapshot/jest-matcher-utils": ["jest-matcher-utils@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-matcher-utils/-/jest-matcher-utils-30.0.5.tgz", { "dependencies": { "@jest/get-type": "30.0.1", "chalk": "^4.1.2", "jest-diff": "30.0.5", "pretty-format": "30.0.5" } }, "sha512-uQgGWt7GOrRLP1P7IwNWwK1WAQbq+m//ZY0yXygyfWp0rJlksMSLQAA4wYQC3b6wl3zfnchyTx+k3HZ5aPtCbQ=="], + "string_decoder/safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="], - "jest-snapshot/jest-message-util": ["jest-message-util@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-message-util/-/jest-message-util-30.0.5.tgz", { "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.0.5", "@types/stack-utils": "^2.0.3", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "micromatch": "^4.0.8", "pretty-format": "30.0.5", "slash": "^3.0.0", "stack-utils": "^2.0.6" } }, "sha512-NAiDOhsK3V7RU0Aa/HnrQo+E4JlbarbmI3q6Pi4KcxicdtjV82gcIUrejOtczChtVQR4kddu1E1EJlW6EN9IyA=="], + "strip-literal/js-tokens": ["js-tokens@9.0.1", "", {}, "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ=="], - "jest-snapshot/pretty-format": ["pretty-format@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/pretty-format/-/pretty-format-30.0.5.tgz", { "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", "react-is": "^18.3.1" } }, "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw=="], + "stylehacks/postcss-selector-parser": ["postcss-selector-parser@6.1.2", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg=="], - "jest-util/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "svgo/commander": ["commander@7.2.0", "", {}, "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw=="], - "jest-validate/@jest/types": ["@jest/types@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/types/-/types-30.2.0.tgz", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg=="], + "tar-fs/tar-stream": ["tar-stream@3.1.7", "", { "dependencies": { "b4a": "^1.6.4", "fast-fifo": "^1.2.0", "streamx": "^2.15.0" } }, "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ=="], - "jest-validate/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "tar-stream/readable-stream": ["readable-stream@3.6.2", "", { "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="], - "jest-watcher/@jest/test-result": ["@jest/test-result@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/test-result/-/test-result-30.0.5.tgz", { "dependencies": { "@jest/console": "30.0.5", "@jest/types": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "collect-v8-coverage": "^1.0.2" } }, "sha512-wPyztnK0gbDMQAJZ43tdMro+qblDHH1Ru/ylzUo21TBKqt88ZqnKKK2m30LKmLLoKtR2lxdpCC/P3g1vfKcawQ=="], + "tcp-port-used/debug": ["debug@4.3.1", "", { "dependencies": { "ms": "2.1.2" } }, "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ=="], - "jest-watcher/ansi-escapes": ["ansi-escapes@4.3.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-escapes/-/ansi-escapes-4.3.2.tgz", { "dependencies": { "type-fest": "^0.21.3" } }, "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ=="], + "terser/commander": ["commander@2.20.3", "", {}, "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="], - "jest-watcher/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "terser/source-map-support": ["source-map-support@0.5.21", "", { "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w=="], - "jest-worker/jest-util": ["jest-util@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-util/-/jest-util-30.2.0.tgz", { "dependencies": { "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", "picomatch": "^4.0.2" } }, "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA=="], + "terser-webpack-plugin/jest-worker": ["jest-worker@27.5.1", "", { "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" } }, "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg=="], - "jest-worker/supports-color": ["supports-color@8.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/supports-color/-/supports-color-8.1.1.tgz", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], + "test-exclude/minimatch": ["minimatch@10.2.4", "", { "dependencies": { "brace-expansion": "^5.0.2" } }, "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg=="], - "jsdom/html-encoding-sniffer": ["html-encoding-sniffer@4.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", { "dependencies": { "whatwg-encoding": "^3.1.1" } }, "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ=="], + "through2/readable-stream": ["readable-stream@2.3.8", "", { "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA=="], - "jsonc-eslint-parser/eslint-visitor-keys": ["eslint-visitor-keys@3.4.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", {}, "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="], + "tinyglobby/picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], - "jsonc-eslint-parser/espree": ["espree@9.6.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/espree/-/espree-9.6.1.tgz", { "dependencies": { "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.4.1" } }, "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ=="], + "tsdown/picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], - "jsprim/extsprintf": ["extsprintf@1.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/extsprintf/-/extsprintf-1.3.0.tgz", {}, "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g=="], + "tunnel-agent/safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="], - "jsprim/verror": ["verror@1.10.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/verror/-/verror-1.10.0.tgz", { "dependencies": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", "extsprintf": "^1.2.0" } }, "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw=="], + "typescript-eslint/@typescript-eslint/parser": ["@typescript-eslint/parser@8.43.0", "", { "dependencies": { "@typescript-eslint/scope-manager": "8.43.0", "@typescript-eslint/types": "8.43.0", "@typescript-eslint/typescript-estree": "8.43.0", "@typescript-eslint/visitor-keys": "8.43.0", "debug": "^4.3.4" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-B7RIQiTsCBBmY+yW4+ILd6mF5h1FUwJsVvpqkrgpszYifetQ2Ke+Z4u6aZh0CblkUGIdR59iYVyXqqZGkZ3aBw=="], - "knip/jiti": ["jiti@2.6.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jiti/-/jiti-2.6.1.tgz", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ=="], + "typescript-eslint/@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.43.0", "", { "dependencies": { "@typescript-eslint/project-service": "8.43.0", "@typescript-eslint/tsconfig-utils": "8.43.0", "@typescript-eslint/types": "8.43.0", "@typescript-eslint/visitor-keys": "8.43.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-7Vv6zlAhPb+cvEpP06WXXy/ZByph9iL6BQRBDj4kmBsW98AqEeQHlj/13X+sZOrKSo9/rNKH4Ul4f6EICREFdw=="], - "knip/picomatch": ["picomatch@4.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/picomatch/-/picomatch-4.0.3.tgz", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], + "typescript-eslint/@typescript-eslint/utils": ["@typescript-eslint/utils@8.43.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", "@typescript-eslint/scope-manager": "8.43.0", "@typescript-eslint/types": "8.43.0", "@typescript-eslint/typescript-estree": "8.43.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-S1/tEmkUeeswxd0GGcnwuVQPFWo8NzZTOMxCvw8BX7OMxnNae+i8Tm7REQen/SwUIPoPqfKn7EaZ+YLpiB3k9g=="], - "log-symbols/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "unbzip2-stream/buffer": ["buffer@5.7.1", "", { "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ=="], - "log-symbols/is-unicode-supported": ["is-unicode-supported@0.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", {}, "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw=="], + "unrun/rolldown": ["rolldown@1.0.0-rc.5", "", { "dependencies": { "@oxc-project/types": "=0.114.0", "@rolldown/pluginutils": "1.0.0-rc.5" }, "optionalDependencies": { "@rolldown/binding-android-arm64": "1.0.0-rc.5", "@rolldown/binding-darwin-arm64": "1.0.0-rc.5", "@rolldown/binding-darwin-x64": "1.0.0-rc.5", "@rolldown/binding-freebsd-x64": "1.0.0-rc.5", "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.5", "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.5", "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.5", "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.5", "@rolldown/binding-linux-x64-musl": "1.0.0-rc.5", "@rolldown/binding-openharmony-arm64": "1.0.0-rc.5", "@rolldown/binding-wasm32-wasi": "1.0.0-rc.5", "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.5", "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.5" }, "bin": { "rolldown": "bin/cli.mjs" } }, "sha512-0AdalTs6hNTioaCYIkAa7+xsmHBfU5hCNclZnM/lp7lGGDuUOb6N4BVNtwiomybbencDjq/waKjTImqiGCs5sw=="], - "lowdb/pify": ["pify@3.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/pify/-/pify-3.0.0.tgz", {}, "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg=="], + "verdaccio/debug": ["debug@4.4.0", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA=="], - "micromatch/picomatch": ["picomatch@2.3.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/picomatch/-/picomatch-2.3.1.tgz", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], + "verdaccio/semver": ["semver@7.6.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A=="], - "node-fetch/whatwg-url": ["whatwg-url@5.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/whatwg-url/-/whatwg-url-5.0.0.tgz", { "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw=="], + "verdaccio-audit/https-proxy-agent": ["https-proxy-agent@5.0.1", "", { "dependencies": { "agent-base": "6", "debug": "4" } }, "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA=="], - "nx/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "verdaccio-htpasswd/@verdaccio/file-locking": ["@verdaccio/file-locking@13.0.0-next-8.3", "", { "dependencies": { "lockfile": "1.0.4" } }, "sha512-Sugx6XYp8nEJ9SmBoEOExEIQQ0T0q8fcyc/afWdiSNDGWviqqSx2IriCvtMwKZrE4XG0BQo6bXO+A8AOOoo7KQ=="], - "nx/ignore": ["ignore@7.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ignore/-/ignore-7.0.5.tgz", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="], + "verdaccio-htpasswd/debug": ["debug@4.4.0", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA=="], - "nx/open": ["open@8.4.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/open/-/open-8.4.2.tgz", { "dependencies": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", "is-wsl": "^2.2.0" } }, "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ=="], + "vite/esbuild": ["esbuild@0.25.12", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.12", "@esbuild/android-arm": "0.25.12", "@esbuild/android-arm64": "0.25.12", "@esbuild/android-x64": "0.25.12", "@esbuild/darwin-arm64": "0.25.12", "@esbuild/darwin-x64": "0.25.12", "@esbuild/freebsd-arm64": "0.25.12", "@esbuild/freebsd-x64": "0.25.12", "@esbuild/linux-arm": "0.25.12", "@esbuild/linux-arm64": "0.25.12", "@esbuild/linux-ia32": "0.25.12", "@esbuild/linux-loong64": "0.25.12", "@esbuild/linux-mips64el": "0.25.12", "@esbuild/linux-ppc64": "0.25.12", "@esbuild/linux-riscv64": "0.25.12", "@esbuild/linux-s390x": "0.25.12", "@esbuild/linux-x64": "0.25.12", "@esbuild/netbsd-arm64": "0.25.12", "@esbuild/netbsd-x64": "0.25.12", "@esbuild/openbsd-arm64": "0.25.12", "@esbuild/openbsd-x64": "0.25.12", "@esbuild/openharmony-arm64": "0.25.12", "@esbuild/sunos-x64": "0.25.12", "@esbuild/win32-arm64": "0.25.12", "@esbuild/win32-ia32": "0.25.12", "@esbuild/win32-x64": "0.25.12" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg=="], - "ora/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "vite/picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], - "parse-json/lines-and-columns": ["lines-and-columns@1.2.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/lines-and-columns/-/lines-and-columns-1.2.4.tgz", {}, "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="], + "vite-node/es-module-lexer": ["es-module-lexer@1.7.0", "", {}, "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA=="], - "path-scurry/lru-cache": ["lru-cache@10.4.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/lru-cache/-/lru-cache-10.4.3.tgz", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="], + "vitest/picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], - "pino-pretty/strip-json-comments": ["strip-json-comments@3.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/strip-json-comments/-/strip-json-comments-3.1.1.tgz", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="], + "vitest/tinyexec": ["tinyexec@0.3.2", "", {}, "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA=="], - "pkg-dir/find-up": ["find-up@4.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/find-up/-/find-up-4.1.0.tgz", { "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" } }, "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw=="], + "webpack/eslint-scope": ["eslint-scope@5.1.1", "", { "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" } }, "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw=="], - "playwright/fsevents": ["fsevents@2.3.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/fsevents/-/fsevents-2.3.2.tgz", { "os": "darwin" }, "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA=="], + "widest-line/string-width": ["string-width@7.2.0", "", { "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", "strip-ansi": "^7.1.0" } }, "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ=="], - "postcss-calc/postcss-selector-parser": ["postcss-selector-parser@6.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg=="], + "wrap-ansi/string-width": ["string-width@7.2.0", "", { "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", "strip-ansi": "^7.1.0" } }, "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ=="], - "postcss-load-config/yaml": ["yaml@1.10.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/yaml/-/yaml-1.10.2.tgz", {}, "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg=="], + "wrap-ansi/strip-ansi": ["strip-ansi@7.2.0", "", { "dependencies": { "ansi-regex": "^6.2.2" } }, "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w=="], - "postcss-merge-rules/postcss-selector-parser": ["postcss-selector-parser@6.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg=="], + "wrap-ansi-cjs/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "postcss-minify-selectors/postcss-selector-parser": ["postcss-selector-parser@6.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg=="], + "write-file-atomic/signal-exit": ["signal-exit@4.1.0", "", {}, "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="], - "postcss-unique-selectors/postcss-selector-parser": ["postcss-selector-parser@6.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg=="], + "wsl-utils/is-wsl": ["is-wsl@3.1.1", "", { "dependencies": { "is-inside-container": "^1.0.0" } }, "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw=="], - "prebuild-install/tar-fs": ["tar-fs@2.1.4", "https://jfrog.booking.com:443/artifactory/api/npm/npm/tar-fs/-/tar-fs-2.1.4.tgz", { "dependencies": { "chownr": "^1.1.1", "mkdirp-classic": "^0.5.2", "pump": "^3.0.0", "tar-stream": "^2.1.4" } }, "sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ=="], + "@abapify/adt-codegen/fast-xml-parser/strnum": ["strnum@1.1.2", "", {}, "sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA=="], - "pretty-format/ansi-styles": ["ansi-styles@5.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-5.2.0.tgz", {}, "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="], + "@abapify/asjson-parser/@nx/rollup/@nx/devkit": ["@nx/devkit@21.5.1", "", { "dependencies": { "ejs": "^3.1.7", "enquirer": "~2.3.6", "ignore": "^5.0.4", "minimatch": "9.0.3", "semver": "^7.5.3", "tmp": "~0.2.1", "tslib": "^2.3.0", "yargs-parser": "21.1.1" }, "peerDependencies": { "nx": ">= 20 <= 22" } }, "sha512-eVFFLMUcxO/holHdWo0YabyUs6H3wNvnovt/0LddIRGoiMHWpbFZLB/KThiyUWvuFVuqqyDzRmS0XRo/M2kOqQ=="], - "pumpify/pump": ["pump@2.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/pump/-/pump-2.0.1.tgz", { "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA=="], + "@abapify/asjson-parser/@nx/rollup/@nx/js": ["@nx/js@21.5.1", "", { "dependencies": { "@babel/core": "^7.23.2", "@babel/plugin-proposal-decorators": "^7.22.7", "@babel/plugin-transform-class-properties": "^7.22.5", "@babel/plugin-transform-runtime": "^7.23.2", "@babel/preset-env": "^7.23.2", "@babel/preset-typescript": "^7.22.5", "@babel/runtime": "^7.22.6", "@nx/devkit": "21.5.1", "@nx/workspace": "21.5.1", "@zkochan/js-yaml": "0.0.7", "babel-plugin-const-enum": "^1.0.1", "babel-plugin-macros": "^3.1.0", "babel-plugin-transform-typescript-metadata": "^0.3.1", "chalk": "^4.1.0", "columnify": "^1.6.0", "detect-port": "^1.5.1", "enquirer": "~2.3.6", "ignore": "^5.0.4", "js-tokens": "^4.0.0", "jsonc-parser": "3.2.0", "npm-package-arg": "11.0.1", "npm-run-path": "^4.0.1", "ora": "5.3.0", "picocolors": "^1.1.0", "picomatch": "4.0.2", "semver": "^7.5.3", "source-map-support": "0.5.19", "tinyglobby": "^0.2.12", "tslib": "^2.3.0" }, "peerDependencies": { "verdaccio": "^6.0.5" }, "optionalPeers": ["verdaccio"] }, "sha512-1bmmIztTZvsZ8g5c1Vg1OHcpdJfUbmbANJAWAEmKw22X8Bdwhzi4Vfg8oYtTn1YvFpePV7GRxaFsG7sLI0VrYw=="], - "rc/strip-json-comments": ["strip-json-comments@2.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/strip-json-comments/-/strip-json-comments-2.0.1.tgz", {}, "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ=="], + "@eslint/config-array/minimatch/brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], - "resolve-cwd/resolve-from": ["resolve-from@5.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/resolve-from/-/resolve-from-5.0.0.tgz", {}, "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw=="], + "@eslint/eslintrc/ajv/json-schema-traverse": ["json-schema-traverse@0.4.1", "", {}, "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="], - "rollup-plugin-copy/colorette": ["colorette@1.4.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/colorette/-/colorette-1.4.0.tgz", {}, "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g=="], + "@eslint/eslintrc/minimatch/brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], - "rollup-plugin-postcss/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "@inquirer/core/wrap-ansi/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "rollup-plugin-typescript2/@rollup/pluginutils": ["@rollup/pluginutils@4.2.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", { "dependencies": { "estree-walker": "^2.0.1", "picomatch": "^2.2.2" } }, "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ=="], + "@isaacs/cliui/string-width/emoji-regex": ["emoji-regex@9.2.2", "", {}, "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="], - "rollup-plugin-typescript2/fs-extra": ["fs-extra@10.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/fs-extra/-/fs-extra-10.1.0.tgz", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ=="], + "@isaacs/cliui/strip-ansi/ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], - "rollup-pluginutils/estree-walker": ["estree-walker@0.6.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/estree-walker/-/estree-walker-0.6.1.tgz", {}, "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w=="], + "@istanbuljs/load-nyc-config/find-up/locate-path": ["locate-path@5.0.0", "", { "dependencies": { "p-locate": "^4.1.0" } }, "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g=="], - "seek-bzip/commander": ["commander@6.2.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/commander/-/commander-6.2.1.tgz", {}, "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA=="], + "@istanbuljs/load-nyc-config/js-yaml/argparse": ["argparse@1.0.10", "", { "dependencies": { "sprintf-js": "~1.0.2" } }, "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="], - "send/debug": ["debug@2.6.9", "https://jfrog.booking.com:443/artifactory/api/npm/npm/debug/-/debug-2.6.9.tgz", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], + "@jest/console/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "send/encodeurl": ["encodeurl@1.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/encodeurl/-/encodeurl-1.0.2.tgz", {}, "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="], + "@jest/console/jest-util/picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], - "send/mime": ["mime@1.6.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/mime/-/mime-1.6.0.tgz", { "bin": { "mime": "cli.js" } }, "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="], + "@jest/core/@jest/reporters/@bcoe/v8-coverage": ["@bcoe/v8-coverage@0.2.3", "", {}, "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw=="], - "slice-ansi/is-fullwidth-code-point": ["is-fullwidth-code-point@5.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-fullwidth-code-point/-/is-fullwidth-code-point-5.1.0.tgz", { "dependencies": { "get-east-asian-width": "^1.3.1" } }, "sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ=="], + "@jest/core/@jest/reporters/jest-worker": ["jest-worker@30.0.5", "", { "dependencies": { "@types/node": "*", "@ungap/structured-clone": "^1.3.0", "jest-util": "30.0.5", "merge-stream": "^2.0.0", "supports-color": "^8.1.1" } }, "sha512-ojRXsWzEP16NdUuBw/4H/zkZdHOa7MMYCk4E430l+8fELeLg/mqmMlRhjL7UNZvQrDmnovWZV4DxX03fZF48fQ=="], - "source-map-support/source-map": ["source-map@0.6.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/source-map/-/source-map-0.6.1.tgz", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], + "@jest/core/ansi-escapes/type-fest": ["type-fest@0.21.3", "", {}, "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w=="], - "stack-utils/escape-string-regexp": ["escape-string-regexp@2.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", {}, "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w=="], + "@jest/core/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "strip-literal/js-tokens": ["js-tokens@9.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/js-tokens/-/js-tokens-9.0.1.tgz", {}, "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ=="], + "@jest/core/jest-config/@jest/get-type": ["@jest/get-type@30.0.1", "", {}, "sha512-AyYdemXCptSRFirI5EPazNxyPwAL0jXt3zceFjaj8NFiKP9pOi0bfXonf6qkf82z2t3QWPeLCWWw4stPBzctLw=="], - "stylehacks/postcss-selector-parser": ["postcss-selector-parser@6.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg=="], + "@jest/core/jest-config/@jest/test-sequencer": ["@jest/test-sequencer@30.0.5", "", { "dependencies": { "@jest/test-result": "30.0.5", "graceful-fs": "^4.2.11", "jest-haste-map": "30.0.5", "slash": "^3.0.0" } }, "sha512-Aea/G1egWoIIozmDD7PBXUOxkekXl7ueGzrsGGi1SbeKgQqCYCIf+wfbflEbf2LiPxL8j2JZGLyrzZagjvW4YQ=="], - "svgo/commander": ["commander@7.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/commander/-/commander-7.2.0.tgz", {}, "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw=="], + "@jest/core/jest-config/babel-jest": ["babel-jest@30.0.5", "", { "dependencies": { "@jest/transform": "30.0.5", "@types/babel__core": "^7.20.5", "babel-plugin-istanbul": "^7.0.0", "babel-preset-jest": "30.0.1", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "slash": "^3.0.0" }, "peerDependencies": { "@babel/core": "^7.11.0" } }, "sha512-mRijnKimhGDMsizTvBTWotwNpzrkHr+VvZUQBof2AufXKB8NXrL1W69TG20EvOz7aevx6FTJIaBuBkYxS8zolg=="], - "tar-fs/tar-stream": ["tar-stream@3.1.7", "https://jfrog.booking.com:443/artifactory/api/npm/npm/tar-stream/-/tar-stream-3.1.7.tgz", { "dependencies": { "b4a": "^1.6.4", "fast-fifo": "^1.2.0", "streamx": "^2.15.0" } }, "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ=="], + "@jest/core/jest-config/jest-circus": ["jest-circus@30.0.5", "", { "dependencies": { "@jest/environment": "30.0.5", "@jest/expect": "30.0.5", "@jest/test-result": "30.0.5", "@jest/types": "30.0.5", "@types/node": "*", "chalk": "^4.1.2", "co": "^4.6.0", "dedent": "^1.6.0", "is-generator-fn": "^2.1.0", "jest-each": "30.0.5", "jest-matcher-utils": "30.0.5", "jest-message-util": "30.0.5", "jest-runtime": "30.0.5", "jest-snapshot": "30.0.5", "jest-util": "30.0.5", "p-limit": "^3.1.0", "pretty-format": "30.0.5", "pure-rand": "^7.0.0", "slash": "^3.0.0", "stack-utils": "^2.0.6" } }, "sha512-h/sjXEs4GS+NFFfqBDYT7y5Msfxh04EwWLhQi0F8kuWpe+J/7tICSlswU8qvBqumR3kFgHbfu7vU6qruWWBPug=="], - "tar-stream/readable-stream": ["readable-stream@3.6.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/readable-stream/-/readable-stream-3.6.2.tgz", { "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="], + "@jest/core/jest-config/jest-docblock": ["jest-docblock@30.0.1", "", { "dependencies": { "detect-newline": "^3.1.0" } }, "sha512-/vF78qn3DYphAaIc3jy4gA7XSAz167n9Bm/wn/1XhTLW7tTBIzXtCJpb/vcmc73NIIeeohCbdL94JasyXUZsGA=="], - "tcp-port-used/debug": ["debug@4.3.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/debug/-/debug-4.3.1.tgz", { "dependencies": { "ms": "2.1.2" } }, "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ=="], + "@jest/core/jest-config/jest-environment-node": ["jest-environment-node@30.0.5", "", { "dependencies": { "@jest/environment": "30.0.5", "@jest/fake-timers": "30.0.5", "@jest/types": "30.0.5", "@types/node": "*", "jest-mock": "30.0.5", "jest-util": "30.0.5", "jest-validate": "30.0.5" } }, "sha512-ppYizXdLMSvciGsRsMEnv/5EFpvOdXBaXRBzFUDPWrsfmog4kYrOGWXarLllz6AXan6ZAA/kYokgDWuos1IKDA=="], - "terser/commander": ["commander@2.20.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/commander/-/commander-2.20.3.tgz", {}, "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="], + "@jest/core/jest-config/strip-json-comments": ["strip-json-comments@3.1.1", "", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="], - "terser/source-map-support": ["source-map-support@0.5.21", "https://jfrog.booking.com:443/artifactory/api/npm/npm/source-map-support/-/source-map-support-0.5.21.tgz", { "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w=="], + "@jest/core/jest-haste-map/jest-worker": ["jest-worker@30.0.5", "", { "dependencies": { "@types/node": "*", "@ungap/structured-clone": "^1.3.0", "jest-util": "30.0.5", "merge-stream": "^2.0.0", "supports-color": "^8.1.1" } }, "sha512-ojRXsWzEP16NdUuBw/4H/zkZdHOa7MMYCk4E430l+8fELeLg/mqmMlRhjL7UNZvQrDmnovWZV4DxX03fZF48fQ=="], - "terser-webpack-plugin/jest-worker": ["jest-worker@27.5.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-worker/-/jest-worker-27.5.1.tgz", { "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" } }, "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg=="], + "@jest/core/jest-runner/jest-docblock": ["jest-docblock@30.0.1", "", { "dependencies": { "detect-newline": "^3.1.0" } }, "sha512-/vF78qn3DYphAaIc3jy4gA7XSAz167n9Bm/wn/1XhTLW7tTBIzXtCJpb/vcmc73NIIeeohCbdL94JasyXUZsGA=="], - "test-exclude/minimatch": ["minimatch@9.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/minimatch/-/minimatch-9.0.5.tgz", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], + "@jest/core/jest-runner/jest-environment-node": ["jest-environment-node@30.0.5", "", { "dependencies": { "@jest/environment": "30.0.5", "@jest/fake-timers": "30.0.5", "@jest/types": "30.0.5", "@types/node": "*", "jest-mock": "30.0.5", "jest-util": "30.0.5", "jest-validate": "30.0.5" } }, "sha512-ppYizXdLMSvciGsRsMEnv/5EFpvOdXBaXRBzFUDPWrsfmog4kYrOGWXarLllz6AXan6ZAA/kYokgDWuos1IKDA=="], - "through2/readable-stream": ["readable-stream@2.3.8", "https://jfrog.booking.com:443/artifactory/api/npm/npm/readable-stream/-/readable-stream-2.3.8.tgz", { "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA=="], + "@jest/core/jest-runner/jest-leak-detector": ["jest-leak-detector@30.0.5", "", { "dependencies": { "@jest/get-type": "30.0.1", "pretty-format": "30.0.5" } }, "sha512-3Uxr5uP8jmHMcsOtYMRB/zf1gXN3yUIc+iPorhNETG54gErFIiUhLvyY/OggYpSMOEYqsmRxmuU4ZOoX5jpRFg=="], - "tinyglobby/picomatch": ["picomatch@4.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/picomatch/-/picomatch-4.0.3.tgz", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], + "@jest/core/jest-runner/jest-worker": ["jest-worker@30.0.5", "", { "dependencies": { "@types/node": "*", "@ungap/structured-clone": "^1.3.0", "jest-util": "30.0.5", "merge-stream": "^2.0.0", "supports-color": "^8.1.1" } }, "sha512-ojRXsWzEP16NdUuBw/4H/zkZdHOa7MMYCk4E430l+8fELeLg/mqmMlRhjL7UNZvQrDmnovWZV4DxX03fZF48fQ=="], - "tsdown/diff": ["diff@8.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/diff/-/diff-8.0.2.tgz", {}, "sha512-sSuxWU5j5SR9QQji/o2qMvqRNYRDOcBTgsJ/DeCf4iSN4gW+gNMXM7wFIP+fdXZxoNiAnHUTGjCr+TSWXdRDKg=="], + "@jest/core/jest-runner/source-map-support": ["source-map-support@0.5.13", "", { "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w=="], - "typescript-eslint/@typescript-eslint/parser": ["@typescript-eslint/parser@8.43.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript-eslint/parser/-/parser-8.43.0.tgz", { "dependencies": { "@typescript-eslint/scope-manager": "8.43.0", "@typescript-eslint/types": "8.43.0", "@typescript-eslint/typescript-estree": "8.43.0", "@typescript-eslint/visitor-keys": "8.43.0", "debug": "^4.3.4" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-B7RIQiTsCBBmY+yW4+ILd6mF5h1FUwJsVvpqkrgpszYifetQ2Ke+Z4u6aZh0CblkUGIdR59iYVyXqqZGkZ3aBw=="], + "@jest/core/jest-validate/@jest/get-type": ["@jest/get-type@30.0.1", "", {}, "sha512-AyYdemXCptSRFirI5EPazNxyPwAL0jXt3zceFjaj8NFiKP9pOi0bfXonf6qkf82z2t3QWPeLCWWw4stPBzctLw=="], - "typescript-eslint/@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.43.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript-eslint/typescript-estree/-/typescript-estree-8.43.0.tgz", { "dependencies": { "@typescript-eslint/project-service": "8.43.0", "@typescript-eslint/tsconfig-utils": "8.43.0", "@typescript-eslint/types": "8.43.0", "@typescript-eslint/visitor-keys": "8.43.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-7Vv6zlAhPb+cvEpP06WXXy/ZByph9iL6BQRBDj4kmBsW98AqEeQHlj/13X+sZOrKSo9/rNKH4Ul4f6EICREFdw=="], + "@jest/core/pretty-format/ansi-styles": ["ansi-styles@5.2.0", "", {}, "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="], - "typescript-eslint/@typescript-eslint/utils": ["@typescript-eslint/utils@8.43.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript-eslint/utils/-/utils-8.43.0.tgz", { "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", "@typescript-eslint/scope-manager": "8.43.0", "@typescript-eslint/types": "8.43.0", "@typescript-eslint/typescript-estree": "8.43.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-S1/tEmkUeeswxd0GGcnwuVQPFWo8NzZTOMxCvw8BX7OMxnNae+i8Tm7REQen/SwUIPoPqfKn7EaZ+YLpiB3k9g=="], + "@jest/create-cache-key-function/@jest/types/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "unbzip2-stream/buffer": ["buffer@5.7.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/buffer/-/buffer-5.7.1.tgz", { "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ=="], + "@jest/environment-jsdom-abstract/@jest/fake-timers/jest-message-util": ["jest-message-util@30.0.5", "", { "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.0.5", "@types/stack-utils": "^2.0.3", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "micromatch": "^4.0.8", "pretty-format": "30.0.5", "slash": "^3.0.0", "stack-utils": "^2.0.6" } }, "sha512-NAiDOhsK3V7RU0Aa/HnrQo+E4JlbarbmI3q6Pi4KcxicdtjV82gcIUrejOtczChtVQR4kddu1E1EJlW6EN9IyA=="], - "verdaccio/debug": ["debug@4.4.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/debug/-/debug-4.4.0.tgz", { "dependencies": { "ms": "^2.1.3" } }, "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA=="], + "@jest/environment/@jest/fake-timers/jest-message-util": ["jest-message-util@30.0.5", "", { "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.0.5", "@types/stack-utils": "^2.0.3", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "micromatch": "^4.0.8", "pretty-format": "30.0.5", "slash": "^3.0.0", "stack-utils": "^2.0.6" } }, "sha512-NAiDOhsK3V7RU0Aa/HnrQo+E4JlbarbmI3q6Pi4KcxicdtjV82gcIUrejOtczChtVQR4kddu1E1EJlW6EN9IyA=="], - "verdaccio/semver": ["semver@7.6.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/semver/-/semver-7.6.3.tgz", { "bin": { "semver": "bin/semver.js" } }, "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A=="], + "@jest/expect/jest-snapshot/@jest/snapshot-utils": ["@jest/snapshot-utils@30.2.0", "", { "dependencies": { "@jest/types": "30.2.0", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "natural-compare": "^1.4.0" } }, "sha512-0aVxM3RH6DaiLcjj/b0KrIBZhSX1373Xci4l3cW5xiUWPctZ59zQ7jj4rqcJQ/Z8JuN/4wX3FpJSa3RssVvCug=="], - "verdaccio-audit/https-proxy-agent": ["https-proxy-agent@5.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", { "dependencies": { "agent-base": "6", "debug": "4" } }, "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA=="], + "@jest/expect/jest-snapshot/@jest/types": ["@jest/types@30.2.0", "", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg=="], - "verdaccio-htpasswd/@verdaccio/file-locking": ["@verdaccio/file-locking@13.0.0-next-8.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@verdaccio/file-locking/-/file-locking-13.0.0-next-8.3.tgz", { "dependencies": { "lockfile": "1.0.4" } }, "sha512-Sugx6XYp8nEJ9SmBoEOExEIQQ0T0q8fcyc/afWdiSNDGWviqqSx2IriCvtMwKZrE4XG0BQo6bXO+A8AOOoo7KQ=="], + "@jest/expect/jest-snapshot/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "verdaccio-htpasswd/debug": ["debug@4.4.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/debug/-/debug-4.4.0.tgz", { "dependencies": { "ms": "^2.1.3" } }, "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA=="], + "@jest/expect/jest-snapshot/jest-util": ["jest-util@30.2.0", "", { "dependencies": { "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", "picomatch": "^4.0.2" } }, "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA=="], - "vite/picomatch": ["picomatch@4.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/picomatch/-/picomatch-4.0.3.tgz", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], + "@jest/fake-timers/@jest/types/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "vitest/picomatch": ["picomatch@4.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/picomatch/-/picomatch-4.0.3.tgz", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], + "@jest/fake-timers/jest-util/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "vitest/tinyexec": ["tinyexec@0.3.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/tinyexec/-/tinyexec-0.3.2.tgz", {}, "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA=="], + "@jest/fake-timers/jest-util/picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], - "webpack/eslint-scope": ["eslint-scope@5.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/eslint-scope/-/eslint-scope-5.1.1.tgz", { "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" } }, "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw=="], + "@jest/globals/@jest/expect/expect": ["expect@30.0.5", "", { "dependencies": { "@jest/expect-utils": "30.0.5", "@jest/get-type": "30.0.1", "jest-matcher-utils": "30.0.5", "jest-message-util": "30.0.5", "jest-mock": "30.0.5", "jest-util": "30.0.5" } }, "sha512-P0te2pt+hHI5qLJkIR+iMvS+lYUZml8rKKsohVHAGY+uClp9XVbdyYNJOIjSRpHVp8s8YqxJCiHUkSYZGr8rtQ=="], - "whatwg-encoding/iconv-lite": ["iconv-lite@0.6.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/iconv-lite/-/iconv-lite-0.6.3.tgz", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw=="], + "@jest/reporters/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "widest-line/string-width": ["string-width@7.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/string-width/-/string-width-7.2.0.tgz", { "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", "strip-ansi": "^7.1.0" } }, "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ=="], + "@jest/reporters/jest-util/picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], - "wrap-ansi/string-width": ["string-width@7.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/string-width/-/string-width-7.2.0.tgz", { "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", "strip-ansi": "^7.1.0" } }, "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ=="], + "@jest/snapshot-utils/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "wrap-ansi/strip-ansi": ["strip-ansi@7.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/strip-ansi/-/strip-ansi-7.1.2.tgz", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA=="], + "@jest/test-result/@jest/types/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "wrap-ansi-cjs/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "@jest/transform/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "write-file-atomic/signal-exit": ["signal-exit@4.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/signal-exit/-/signal-exit-4.1.0.tgz", {}, "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="], + "@jest/transform/jest-util/picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], - "wsl-utils/is-wsl": ["is-wsl@3.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-wsl/-/is-wsl-3.1.0.tgz", { "dependencies": { "is-inside-container": "^1.0.0" } }, "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw=="], + "@jest/types/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "@abapify/adt-codegen/fast-xml-parser/strnum": ["strnum@1.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/strnum/-/strnum-1.1.2.tgz", {}, "sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA=="], + "@nx/eslint-plugin/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "@abapify/asjson-parser/@nx/rollup/@nx/devkit": ["@nx/devkit@21.5.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@nx/devkit/-/devkit-21.5.1.tgz", { "dependencies": { "ejs": "^3.1.7", "enquirer": "~2.3.6", "ignore": "^5.0.4", "minimatch": "9.0.3", "semver": "^7.5.3", "tmp": "~0.2.1", "tslib": "^2.3.0", "yargs-parser": "21.1.1" }, "peerDependencies": { "nx": ">= 20 <= 22" } }, "sha512-eVFFLMUcxO/holHdWo0YabyUs6H3wNvnovt/0LddIRGoiMHWpbFZLB/KThiyUWvuFVuqqyDzRmS0XRo/M2kOqQ=="], + "@nx/jest/jest-util/@jest/types": ["@jest/types@30.2.0", "", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg=="], - "@abapify/asjson-parser/@nx/rollup/@nx/js": ["@nx/js@21.5.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@nx/js/-/js-21.5.1.tgz", { "dependencies": { "@babel/core": "^7.23.2", "@babel/plugin-proposal-decorators": "^7.22.7", "@babel/plugin-transform-class-properties": "^7.22.5", "@babel/plugin-transform-runtime": "^7.23.2", "@babel/preset-env": "^7.23.2", "@babel/preset-typescript": "^7.22.5", "@babel/runtime": "^7.22.6", "@nx/devkit": "21.5.1", "@nx/workspace": "21.5.1", "@zkochan/js-yaml": "0.0.7", "babel-plugin-const-enum": "^1.0.1", "babel-plugin-macros": "^3.1.0", "babel-plugin-transform-typescript-metadata": "^0.3.1", "chalk": "^4.1.0", "columnify": "^1.6.0", "detect-port": "^1.5.1", "enquirer": "~2.3.6", "ignore": "^5.0.4", "js-tokens": "^4.0.0", "jsonc-parser": "3.2.0", "npm-package-arg": "11.0.1", "npm-run-path": "^4.0.1", "ora": "5.3.0", "picocolors": "^1.1.0", "picomatch": "4.0.2", "semver": "^7.5.3", "source-map-support": "0.5.19", "tinyglobby": "^0.2.12", "tslib": "^2.3.0" }, "peerDependencies": { "verdaccio": "^6.0.5" }, "optionalPeers": ["verdaccio"] }, "sha512-1bmmIztTZvsZ8g5c1Vg1OHcpdJfUbmbANJAWAEmKw22X8Bdwhzi4Vfg8oYtTn1YvFpePV7GRxaFsG7sLI0VrYw=="], + "@nx/jest/jest-util/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "@eslint/config-array/minimatch/brace-expansion": ["brace-expansion@1.1.12", "https://jfrog.booking.com:443/artifactory/api/npm/npm/brace-expansion/-/brace-expansion-1.1.12.tgz", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], + "@nx/jest/jest-util/picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], - "@eslint/eslintrc/ajv/json-schema-traverse": ["json-schema-traverse@0.4.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", {}, "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="], + "@nx/js/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "@eslint/eslintrc/minimatch/brace-expansion": ["brace-expansion@1.1.12", "https://jfrog.booking.com:443/artifactory/api/npm/npm/brace-expansion/-/brace-expansion-1.1.12.tgz", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], + "@nx/workspace/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "@inquirer/core/wrap-ansi/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "@oxc-resolver/binding-wasm32-wasi/@napi-rs/wasm-runtime/@tybys/wasm-util": ["@tybys/wasm-util@0.10.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg=="], - "@isaacs/cliui/string-width/emoji-regex": ["emoji-regex@9.2.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/emoji-regex/-/emoji-regex-9.2.2.tgz", {}, "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="], + "@rolldown/binding-wasm32-wasi/@napi-rs/wasm-runtime/@tybys/wasm-util": ["@tybys/wasm-util@0.10.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg=="], - "@isaacs/cliui/strip-ansi/ansi-regex": ["ansi-regex@6.2.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-regex/-/ansi-regex-6.2.2.tgz", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], + "@rollup/plugin-commonjs/glob/minimatch": ["minimatch@5.1.9", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw=="], - "@istanbuljs/load-nyc-config/find-up/locate-path": ["locate-path@5.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/locate-path/-/locate-path-5.0.0.tgz", { "dependencies": { "p-locate": "^4.1.0" } }, "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g=="], + "@swc-node/sourcemap-support/source-map-support/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], - "@istanbuljs/load-nyc-config/js-yaml/argparse": ["argparse@1.0.10", "https://jfrog.booking.com:443/artifactory/api/npm/npm/argparse/-/argparse-1.0.10.tgz", { "dependencies": { "sprintf-js": "~1.0.2" } }, "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="], + "@ts-morph/common/minimatch/brace-expansion": ["brace-expansion@5.0.4", "", { "dependencies": { "balanced-match": "^4.0.2" } }, "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg=="], - "@jest/console/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "@types/minimatch/minimatch/brace-expansion": ["brace-expansion@5.0.4", "", { "dependencies": { "balanced-match": "^4.0.2" } }, "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg=="], - "@jest/console/jest-util/picomatch": ["picomatch@4.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/picomatch/-/picomatch-4.0.3.tgz", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], + "@typescript-eslint/eslint-plugin/@typescript-eslint/scope-manager/@typescript-eslint/types": ["@typescript-eslint/types@8.43.0", "", {}, "sha512-vQ2FZaxJpydjSZJKiSW/LJsabFFvV7KgLC5DiLhkBcykhQj8iK9BOaDmQt74nnKdLvceM5xmhaTF+pLekrxEkw=="], - "@jest/core/@jest/reporters/@bcoe/v8-coverage": ["@bcoe/v8-coverage@0.2.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", {}, "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw=="], + "@typescript-eslint/eslint-plugin/@typescript-eslint/type-utils/@typescript-eslint/types": ["@typescript-eslint/types@8.43.0", "", {}, "sha512-vQ2FZaxJpydjSZJKiSW/LJsabFFvV7KgLC5DiLhkBcykhQj8iK9BOaDmQt74nnKdLvceM5xmhaTF+pLekrxEkw=="], - "@jest/core/@jest/reporters/jest-worker": ["jest-worker@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-worker/-/jest-worker-30.0.5.tgz", { "dependencies": { "@types/node": "*", "@ungap/structured-clone": "^1.3.0", "jest-util": "30.0.5", "merge-stream": "^2.0.0", "supports-color": "^8.1.1" } }, "sha512-ojRXsWzEP16NdUuBw/4H/zkZdHOa7MMYCk4E430l+8fELeLg/mqmMlRhjL7UNZvQrDmnovWZV4DxX03fZF48fQ=="], + "@typescript-eslint/eslint-plugin/@typescript-eslint/type-utils/@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.43.0", "", { "dependencies": { "@typescript-eslint/project-service": "8.43.0", "@typescript-eslint/tsconfig-utils": "8.43.0", "@typescript-eslint/types": "8.43.0", "@typescript-eslint/visitor-keys": "8.43.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-7Vv6zlAhPb+cvEpP06WXXy/ZByph9iL6BQRBDj4kmBsW98AqEeQHlj/13X+sZOrKSo9/rNKH4Ul4f6EICREFdw=="], - "@jest/core/ansi-escapes/type-fest": ["type-fest@0.21.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/type-fest/-/type-fest-0.21.3.tgz", {}, "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w=="], + "@typescript-eslint/eslint-plugin/@typescript-eslint/utils/@typescript-eslint/types": ["@typescript-eslint/types@8.43.0", "", {}, "sha512-vQ2FZaxJpydjSZJKiSW/LJsabFFvV7KgLC5DiLhkBcykhQj8iK9BOaDmQt74nnKdLvceM5xmhaTF+pLekrxEkw=="], - "@jest/core/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "@typescript-eslint/eslint-plugin/@typescript-eslint/utils/@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.43.0", "", { "dependencies": { "@typescript-eslint/project-service": "8.43.0", "@typescript-eslint/tsconfig-utils": "8.43.0", "@typescript-eslint/types": "8.43.0", "@typescript-eslint/visitor-keys": "8.43.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-7Vv6zlAhPb+cvEpP06WXXy/ZByph9iL6BQRBDj4kmBsW98AqEeQHlj/13X+sZOrKSo9/rNKH4Ul4f6EICREFdw=="], - "@jest/core/jest-config/@jest/get-type": ["@jest/get-type@30.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/get-type/-/get-type-30.0.1.tgz", {}, "sha512-AyYdemXCptSRFirI5EPazNxyPwAL0jXt3zceFjaj8NFiKP9pOi0bfXonf6qkf82z2t3QWPeLCWWw4stPBzctLw=="], + "@typescript-eslint/eslint-plugin/@typescript-eslint/visitor-keys/@typescript-eslint/types": ["@typescript-eslint/types@8.43.0", "", {}, "sha512-vQ2FZaxJpydjSZJKiSW/LJsabFFvV7KgLC5DiLhkBcykhQj8iK9BOaDmQt74nnKdLvceM5xmhaTF+pLekrxEkw=="], - "@jest/core/jest-config/@jest/test-sequencer": ["@jest/test-sequencer@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/test-sequencer/-/test-sequencer-30.0.5.tgz", { "dependencies": { "@jest/test-result": "30.0.5", "graceful-fs": "^4.2.11", "jest-haste-map": "30.0.5", "slash": "^3.0.0" } }, "sha512-Aea/G1egWoIIozmDD7PBXUOxkekXl7ueGzrsGGi1SbeKgQqCYCIf+wfbflEbf2LiPxL8j2JZGLyrzZagjvW4YQ=="], + "@typescript-eslint/typescript-estree/minimatch/brace-expansion": ["brace-expansion@5.0.4", "", { "dependencies": { "balanced-match": "^4.0.2" } }, "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg=="], - "@jest/core/jest-config/babel-jest": ["babel-jest@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/babel-jest/-/babel-jest-30.0.5.tgz", { "dependencies": { "@jest/transform": "30.0.5", "@types/babel__core": "^7.20.5", "babel-plugin-istanbul": "^7.0.0", "babel-preset-jest": "30.0.1", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "slash": "^3.0.0" }, "peerDependencies": { "@babel/core": "^7.11.0" } }, "sha512-mRijnKimhGDMsizTvBTWotwNpzrkHr+VvZUQBof2AufXKB8NXrL1W69TG20EvOz7aevx6FTJIaBuBkYxS8zolg=="], + "@unrs/resolver-binding-wasm32-wasi/@napi-rs/wasm-runtime/@tybys/wasm-util": ["@tybys/wasm-util@0.10.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg=="], - "@jest/core/jest-config/jest-circus": ["jest-circus@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-circus/-/jest-circus-30.0.5.tgz", { "dependencies": { "@jest/environment": "30.0.5", "@jest/expect": "30.0.5", "@jest/test-result": "30.0.5", "@jest/types": "30.0.5", "@types/node": "*", "chalk": "^4.1.2", "co": "^4.6.0", "dedent": "^1.6.0", "is-generator-fn": "^2.1.0", "jest-each": "30.0.5", "jest-matcher-utils": "30.0.5", "jest-message-util": "30.0.5", "jest-runtime": "30.0.5", "jest-snapshot": "30.0.5", "jest-util": "30.0.5", "p-limit": "^3.1.0", "pretty-format": "30.0.5", "pure-rand": "^7.0.0", "slash": "^3.0.0", "stack-utils": "^2.0.6" } }, "sha512-h/sjXEs4GS+NFFfqBDYT7y5Msfxh04EwWLhQi0F8kuWpe+J/7tICSlswU8qvBqumR3kFgHbfu7vU6qruWWBPug=="], + "@verdaccio/local-storage-legacy/debug/ms": ["ms@2.1.2", "", {}, "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="], - "@jest/core/jest-config/jest-docblock": ["jest-docblock@30.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-docblock/-/jest-docblock-30.0.1.tgz", { "dependencies": { "detect-newline": "^3.1.0" } }, "sha512-/vF78qn3DYphAaIc3jy4gA7XSAz167n9Bm/wn/1XhTLW7tTBIzXtCJpb/vcmc73NIIeeohCbdL94JasyXUZsGA=="], + "@verdaccio/logger/pino/pino-abstract-transport": ["pino-abstract-transport@2.0.0", "", { "dependencies": { "split2": "^4.0.0" } }, "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw=="], - "@jest/core/jest-config/jest-environment-node": ["jest-environment-node@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-environment-node/-/jest-environment-node-30.0.5.tgz", { "dependencies": { "@jest/environment": "30.0.5", "@jest/fake-timers": "30.0.5", "@jest/types": "30.0.5", "@types/node": "*", "jest-mock": "30.0.5", "jest-util": "30.0.5", "jest-validate": "30.0.5" } }, "sha512-ppYizXdLMSvciGsRsMEnv/5EFpvOdXBaXRBzFUDPWrsfmog4kYrOGWXarLllz6AXan6ZAA/kYokgDWuos1IKDA=="], + "@verdaccio/logger/pino/pino-std-serializers": ["pino-std-serializers@7.1.0", "", {}, "sha512-BndPH67/JxGExRgiX1dX0w1FvZck5Wa4aal9198SrRhZjH3GxKQUKIBnYJTdj2HDN3UQAS06HlfcSbQj2OHmaw=="], - "@jest/core/jest-config/strip-json-comments": ["strip-json-comments@3.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/strip-json-comments/-/strip-json-comments-3.1.1.tgz", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="], + "@verdaccio/logger/pino/process-warning": ["process-warning@4.0.1", "", {}, "sha512-3c2LzQ3rY9d0hc1emcsHhfT9Jwz0cChib/QN89oME2R451w5fy3f0afAhERFZAwrbDU43wk12d0ORBpDVME50Q=="], - "@jest/core/jest-haste-map/jest-worker": ["jest-worker@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-worker/-/jest-worker-30.0.5.tgz", { "dependencies": { "@types/node": "*", "@ungap/structured-clone": "^1.3.0", "jest-util": "30.0.5", "merge-stream": "^2.0.0", "supports-color": "^8.1.1" } }, "sha512-ojRXsWzEP16NdUuBw/4H/zkZdHOa7MMYCk4E430l+8fELeLg/mqmMlRhjL7UNZvQrDmnovWZV4DxX03fZF48fQ=="], + "@verdaccio/logger/pino/sonic-boom": ["sonic-boom@4.2.1", "", { "dependencies": { "atomic-sleep": "^1.0.0" } }, "sha512-w6AxtubXa2wTXAUsZMMWERrsIRAdrK0Sc+FUytWvYAhBJLyuI4llrMIC1DtlNSdI99EI86KZum2MMq3EAZlF9Q=="], - "@jest/core/jest-runner/jest-docblock": ["jest-docblock@30.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-docblock/-/jest-docblock-30.0.1.tgz", { "dependencies": { "detect-newline": "^3.1.0" } }, "sha512-/vF78qn3DYphAaIc3jy4gA7XSAz167n9Bm/wn/1XhTLW7tTBIzXtCJpb/vcmc73NIIeeohCbdL94JasyXUZsGA=="], + "@verdaccio/logger/pino/thread-stream": ["thread-stream@3.1.0", "", { "dependencies": { "real-require": "^0.2.0" } }, "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A=="], - "@jest/core/jest-runner/jest-environment-node": ["jest-environment-node@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-environment-node/-/jest-environment-node-30.0.5.tgz", { "dependencies": { "@jest/environment": "30.0.5", "@jest/fake-timers": "30.0.5", "@jest/types": "30.0.5", "@types/node": "*", "jest-mock": "30.0.5", "jest-util": "30.0.5", "jest-validate": "30.0.5" } }, "sha512-ppYizXdLMSvciGsRsMEnv/5EFpvOdXBaXRBzFUDPWrsfmog4kYrOGWXarLllz6AXan6ZAA/kYokgDWuos1IKDA=="], + "@yarnpkg/parsers/js-yaml/argparse": ["argparse@1.0.10", "", { "dependencies": { "sprintf-js": "~1.0.2" } }, "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="], - "@jest/core/jest-runner/jest-leak-detector": ["jest-leak-detector@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-leak-detector/-/jest-leak-detector-30.0.5.tgz", { "dependencies": { "@jest/get-type": "30.0.1", "pretty-format": "30.0.5" } }, "sha512-3Uxr5uP8jmHMcsOtYMRB/zf1gXN3yUIc+iPorhNETG54gErFIiUhLvyY/OggYpSMOEYqsmRxmuU4ZOoX5jpRFg=="], + "babel-jest/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "@jest/core/jest-runner/jest-worker": ["jest-worker@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-worker/-/jest-worker-30.0.5.tgz", { "dependencies": { "@types/node": "*", "@ungap/structured-clone": "^1.3.0", "jest-util": "30.0.5", "merge-stream": "^2.0.0", "supports-color": "^8.1.1" } }, "sha512-ojRXsWzEP16NdUuBw/4H/zkZdHOa7MMYCk4E430l+8fELeLg/mqmMlRhjL7UNZvQrDmnovWZV4DxX03fZF48fQ=="], + "babel-plugin-istanbul/test-exclude/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="], - "@jest/core/jest-runner/source-map-support": ["source-map-support@0.5.13", "https://jfrog.booking.com:443/artifactory/api/npm/npm/source-map-support/-/source-map-support-0.5.13.tgz", { "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w=="], + "babel-plugin-istanbul/test-exclude/minimatch": ["minimatch@3.1.5", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w=="], - "@jest/core/jest-validate/@jest/get-type": ["@jest/get-type@30.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/get-type/-/get-type-30.0.1.tgz", {}, "sha512-AyYdemXCptSRFirI5EPazNxyPwAL0jXt3zceFjaj8NFiKP9pOi0bfXonf6qkf82z2t3QWPeLCWWw4stPBzctLw=="], + "babel-plugin-macros/cosmiconfig/yaml": ["yaml@1.10.2", "", {}, "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg=="], - "@jest/core/pretty-format/ansi-styles": ["ansi-styles@5.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-5.2.0.tgz", {}, "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="], + "body-parser/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], - "@jest/create-cache-key-function/@jest/types/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "cli-truncate/slice-ansi/is-fullwidth-code-point": ["is-fullwidth-code-point@4.0.0", "", {}, "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ=="], - "@jest/environment-jsdom-abstract/@jest/fake-timers/jest-message-util": ["jest-message-util@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-message-util/-/jest-message-util-30.0.5.tgz", { "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.0.5", "@types/stack-utils": "^2.0.3", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "micromatch": "^4.0.8", "pretty-format": "30.0.5", "slash": "^3.0.0", "stack-utils": "^2.0.6" } }, "sha512-NAiDOhsK3V7RU0Aa/HnrQo+E4JlbarbmI3q6Pi4KcxicdtjV82gcIUrejOtczChtVQR4kddu1E1EJlW6EN9IyA=="], + "cli-truncate/string-width/emoji-regex": ["emoji-regex@10.6.0", "", {}, "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A=="], - "@jest/environment/@jest/fake-timers/jest-message-util": ["jest-message-util@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-message-util/-/jest-message-util-30.0.5.tgz", { "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.0.5", "@types/stack-utils": "^2.0.3", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "micromatch": "^4.0.8", "pretty-format": "30.0.5", "slash": "^3.0.0", "stack-utils": "^2.0.6" } }, "sha512-NAiDOhsK3V7RU0Aa/HnrQo+E4JlbarbmI3q6Pi4KcxicdtjV82gcIUrejOtczChtVQR4kddu1E1EJlW6EN9IyA=="], + "cli-truncate/string-width/strip-ansi": ["strip-ansi@7.2.0", "", { "dependencies": { "ansi-regex": "^6.2.2" } }, "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w=="], - "@jest/expect/jest-snapshot/@jest/snapshot-utils": ["@jest/snapshot-utils@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/snapshot-utils/-/snapshot-utils-30.2.0.tgz", { "dependencies": { "@jest/types": "30.2.0", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "natural-compare": "^1.4.0" } }, "sha512-0aVxM3RH6DaiLcjj/b0KrIBZhSX1373Xci4l3cW5xiUWPctZ59zQ7jj4rqcJQ/Z8JuN/4wX3FpJSa3RssVvCug=="], + "cliui/wrap-ansi/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "@jest/expect/jest-snapshot/@jest/types": ["@jest/types@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/types/-/types-30.2.0.tgz", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg=="], + "compression/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], - "@jest/expect/jest-snapshot/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "duplexify/readable-stream/core-util-is": ["core-util-is@1.0.3", "", {}, "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="], - "@jest/expect/jest-snapshot/jest-util": ["jest-util@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-util/-/jest-util-30.2.0.tgz", { "dependencies": { "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", "picomatch": "^4.0.2" } }, "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA=="], + "duplexify/readable-stream/isarray": ["isarray@1.0.0", "", {}, "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="], - "@jest/fake-timers/@jest/types/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "duplexify/readable-stream/string_decoder": ["string_decoder@1.1.1", "", { "dependencies": { "safe-buffer": "~5.1.0" } }, "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="], - "@jest/fake-timers/jest-util/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "eslint-plugin-import/minimatch/brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], - "@jest/fake-timers/jest-util/picomatch": ["picomatch@4.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/picomatch/-/picomatch-4.0.3.tgz", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], + "eslint-plugin-import/tsconfig-paths/json5": ["json5@1.0.2", "", { "dependencies": { "minimist": "^1.2.0" }, "bin": { "json5": "lib/cli.js" } }, "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA=="], - "@jest/globals/@jest/expect/expect": ["expect@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/expect/-/expect-30.0.5.tgz", { "dependencies": { "@jest/expect-utils": "30.0.5", "@jest/get-type": "30.0.1", "jest-matcher-utils": "30.0.5", "jest-message-util": "30.0.5", "jest-mock": "30.0.5", "jest-util": "30.0.5" } }, "sha512-P0te2pt+hHI5qLJkIR+iMvS+lYUZml8rKKsohVHAGY+uClp9XVbdyYNJOIjSRpHVp8s8YqxJCiHUkSYZGr8rtQ=="], + "eslint/ajv/json-schema-traverse": ["json-schema-traverse@0.4.1", "", {}, "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="], - "@jest/reporters/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "eslint/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "@jest/reporters/jest-util/picomatch": ["picomatch@4.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/picomatch/-/picomatch-4.0.3.tgz", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], + "eslint/minimatch/brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], - "@jest/snapshot-utils/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "expect/jest-util/@jest/types": ["@jest/types@30.2.0", "", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg=="], - "@jest/test-result/@jest/types/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "expect/jest-util/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "@jest/transform/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "expect/jest-util/picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], - "@jest/transform/jest-util/picomatch": ["picomatch@4.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/picomatch/-/picomatch-4.0.3.tgz", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], + "express/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], - "@jest/types/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "finalhandler/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], - "@nx/eslint-plugin/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "find-cache-dir/make-dir/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - "@nx/jest/jest-util/@jest/types": ["@jest/types@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/types/-/types-30.2.0.tgz", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg=="], + "front-matter/js-yaml/argparse": ["argparse@1.0.10", "", { "dependencies": { "sprintf-js": "~1.0.2" } }, "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="], - "@nx/jest/jest-util/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "globby/glob/minimatch": ["minimatch@3.1.5", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w=="], - "@nx/jest/jest-util/picomatch": ["picomatch@4.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/picomatch/-/picomatch-4.0.3.tgz", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], + "http-server/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "@nx/js/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "ink/cli-cursor/restore-cursor": ["restore-cursor@4.0.0", "", { "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" } }, "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg=="], - "@nx/workspace/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "ink/string-width/emoji-regex": ["emoji-regex@10.6.0", "", {}, "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A=="], - "@oxc-resolver/binding-wasm32-wasi/@napi-rs/wasm-runtime/@tybys/wasm-util": ["@tybys/wasm-util@0.10.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg=="], + "ink/string-width/strip-ansi": ["strip-ansi@7.2.0", "", { "dependencies": { "ansi-regex": "^6.2.2" } }, "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w=="], - "@rolldown/binding-wasm32-wasi/@napi-rs/wasm-runtime/@tybys/wasm-util": ["@tybys/wasm-util@0.10.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg=="], + "jest-circus/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "@rollup/plugin-commonjs/glob/minimatch": ["minimatch@5.1.6", "https://jfrog.booking.com:443/artifactory/api/npm/npm/minimatch/-/minimatch-5.1.6.tgz", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g=="], + "jest-circus/jest-runtime/@jest/globals": ["@jest/globals@30.2.0", "", { "dependencies": { "@jest/environment": "30.2.0", "@jest/expect": "30.2.0", "@jest/types": "30.2.0", "jest-mock": "30.2.0" } }, "sha512-b63wmnKPaK+6ZZfpYhz9K61oybvbI1aMcIs80++JI1O1rR1vaxHUCNqo3ITu6NU0d4V34yZFoHMn/uoKr/Rwfw=="], - "@swc-node/sourcemap-support/source-map-support/source-map": ["source-map@0.6.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/source-map/-/source-map-0.6.1.tgz", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], + "jest-circus/jest-runtime/strip-bom": ["strip-bom@4.0.0", "", {}, "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w=="], - "@typescript-eslint/eslint-plugin/@typescript-eslint/scope-manager/@typescript-eslint/types": ["@typescript-eslint/types@8.43.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript-eslint/types/-/types-8.43.0.tgz", {}, "sha512-vQ2FZaxJpydjSZJKiSW/LJsabFFvV7KgLC5DiLhkBcykhQj8iK9BOaDmQt74nnKdLvceM5xmhaTF+pLekrxEkw=="], + "jest-circus/jest-snapshot/@jest/snapshot-utils": ["@jest/snapshot-utils@30.2.0", "", { "dependencies": { "@jest/types": "30.2.0", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "natural-compare": "^1.4.0" } }, "sha512-0aVxM3RH6DaiLcjj/b0KrIBZhSX1373Xci4l3cW5xiUWPctZ59zQ7jj4rqcJQ/Z8JuN/4wX3FpJSa3RssVvCug=="], - "@typescript-eslint/eslint-plugin/@typescript-eslint/type-utils/@typescript-eslint/types": ["@typescript-eslint/types@8.43.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript-eslint/types/-/types-8.43.0.tgz", {}, "sha512-vQ2FZaxJpydjSZJKiSW/LJsabFFvV7KgLC5DiLhkBcykhQj8iK9BOaDmQt74nnKdLvceM5xmhaTF+pLekrxEkw=="], + "jest-circus/jest-util/picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], - "@typescript-eslint/eslint-plugin/@typescript-eslint/type-utils/@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.43.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript-eslint/typescript-estree/-/typescript-estree-8.43.0.tgz", { "dependencies": { "@typescript-eslint/project-service": "8.43.0", "@typescript-eslint/tsconfig-utils": "8.43.0", "@typescript-eslint/types": "8.43.0", "@typescript-eslint/visitor-keys": "8.43.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-7Vv6zlAhPb+cvEpP06WXXy/ZByph9iL6BQRBDj4kmBsW98AqEeQHlj/13X+sZOrKSo9/rNKH4Ul4f6EICREFdw=="], + "jest-cli/@jest/test-result/@jest/console": ["@jest/console@30.0.5", "", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "chalk": "^4.1.2", "jest-message-util": "30.0.5", "jest-util": "30.0.5", "slash": "^3.0.0" } }, "sha512-xY6b0XiL0Nav3ReresUarwl2oIz1gTnxGbGpho9/rbUWsLH0f1OD/VT84xs8c7VmH7MChnLb0pag6PhZhAdDiA=="], - "@typescript-eslint/eslint-plugin/@typescript-eslint/utils/@typescript-eslint/types": ["@typescript-eslint/types@8.43.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript-eslint/types/-/types-8.43.0.tgz", {}, "sha512-vQ2FZaxJpydjSZJKiSW/LJsabFFvV7KgLC5DiLhkBcykhQj8iK9BOaDmQt74nnKdLvceM5xmhaTF+pLekrxEkw=="], + "jest-cli/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "@typescript-eslint/eslint-plugin/@typescript-eslint/utils/@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.43.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript-eslint/typescript-estree/-/typescript-estree-8.43.0.tgz", { "dependencies": { "@typescript-eslint/project-service": "8.43.0", "@typescript-eslint/tsconfig-utils": "8.43.0", "@typescript-eslint/types": "8.43.0", "@typescript-eslint/visitor-keys": "8.43.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-7Vv6zlAhPb+cvEpP06WXXy/ZByph9iL6BQRBDj4kmBsW98AqEeQHlj/13X+sZOrKSo9/rNKH4Ul4f6EICREFdw=="], + "jest-cli/jest-config/@jest/get-type": ["@jest/get-type@30.0.1", "", {}, "sha512-AyYdemXCptSRFirI5EPazNxyPwAL0jXt3zceFjaj8NFiKP9pOi0bfXonf6qkf82z2t3QWPeLCWWw4stPBzctLw=="], - "@typescript-eslint/eslint-plugin/@typescript-eslint/visitor-keys/@typescript-eslint/types": ["@typescript-eslint/types@8.43.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript-eslint/types/-/types-8.43.0.tgz", {}, "sha512-vQ2FZaxJpydjSZJKiSW/LJsabFFvV7KgLC5DiLhkBcykhQj8iK9BOaDmQt74nnKdLvceM5xmhaTF+pLekrxEkw=="], + "jest-cli/jest-config/@jest/test-sequencer": ["@jest/test-sequencer@30.0.5", "", { "dependencies": { "@jest/test-result": "30.0.5", "graceful-fs": "^4.2.11", "jest-haste-map": "30.0.5", "slash": "^3.0.0" } }, "sha512-Aea/G1egWoIIozmDD7PBXUOxkekXl7ueGzrsGGi1SbeKgQqCYCIf+wfbflEbf2LiPxL8j2JZGLyrzZagjvW4YQ=="], - "@unrs/resolver-binding-wasm32-wasi/@napi-rs/wasm-runtime/@tybys/wasm-util": ["@tybys/wasm-util@0.10.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg=="], + "jest-cli/jest-config/babel-jest": ["babel-jest@30.0.5", "", { "dependencies": { "@jest/transform": "30.0.5", "@types/babel__core": "^7.20.5", "babel-plugin-istanbul": "^7.0.0", "babel-preset-jest": "30.0.1", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "slash": "^3.0.0" }, "peerDependencies": { "@babel/core": "^7.11.0" } }, "sha512-mRijnKimhGDMsizTvBTWotwNpzrkHr+VvZUQBof2AufXKB8NXrL1W69TG20EvOz7aevx6FTJIaBuBkYxS8zolg=="], - "@verdaccio/local-storage-legacy/debug/ms": ["ms@2.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ms/-/ms-2.1.2.tgz", {}, "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="], + "jest-cli/jest-config/jest-circus": ["jest-circus@30.0.5", "", { "dependencies": { "@jest/environment": "30.0.5", "@jest/expect": "30.0.5", "@jest/test-result": "30.0.5", "@jest/types": "30.0.5", "@types/node": "*", "chalk": "^4.1.2", "co": "^4.6.0", "dedent": "^1.6.0", "is-generator-fn": "^2.1.0", "jest-each": "30.0.5", "jest-matcher-utils": "30.0.5", "jest-message-util": "30.0.5", "jest-runtime": "30.0.5", "jest-snapshot": "30.0.5", "jest-util": "30.0.5", "p-limit": "^3.1.0", "pretty-format": "30.0.5", "pure-rand": "^7.0.0", "slash": "^3.0.0", "stack-utils": "^2.0.6" } }, "sha512-h/sjXEs4GS+NFFfqBDYT7y5Msfxh04EwWLhQi0F8kuWpe+J/7tICSlswU8qvBqumR3kFgHbfu7vU6qruWWBPug=="], - "@verdaccio/logger/pino/pino-abstract-transport": ["pino-abstract-transport@2.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz", { "dependencies": { "split2": "^4.0.0" } }, "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw=="], + "jest-cli/jest-config/jest-docblock": ["jest-docblock@30.0.1", "", { "dependencies": { "detect-newline": "^3.1.0" } }, "sha512-/vF78qn3DYphAaIc3jy4gA7XSAz167n9Bm/wn/1XhTLW7tTBIzXtCJpb/vcmc73NIIeeohCbdL94JasyXUZsGA=="], - "@verdaccio/logger/pino/pino-std-serializers": ["pino-std-serializers@7.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz", {}, "sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA=="], + "jest-cli/jest-config/jest-environment-node": ["jest-environment-node@30.0.5", "", { "dependencies": { "@jest/environment": "30.0.5", "@jest/fake-timers": "30.0.5", "@jest/types": "30.0.5", "@types/node": "*", "jest-mock": "30.0.5", "jest-util": "30.0.5", "jest-validate": "30.0.5" } }, "sha512-ppYizXdLMSvciGsRsMEnv/5EFpvOdXBaXRBzFUDPWrsfmog4kYrOGWXarLllz6AXan6ZAA/kYokgDWuos1IKDA=="], - "@verdaccio/logger/pino/process-warning": ["process-warning@4.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/process-warning/-/process-warning-4.0.1.tgz", {}, "sha512-3c2LzQ3rY9d0hc1emcsHhfT9Jwz0cChib/QN89oME2R451w5fy3f0afAhERFZAwrbDU43wk12d0ORBpDVME50Q=="], + "jest-cli/jest-config/jest-resolve": ["jest-resolve@30.0.5", "", { "dependencies": { "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "jest-haste-map": "30.0.5", "jest-pnp-resolver": "^1.2.3", "jest-util": "30.0.5", "jest-validate": "30.0.5", "slash": "^3.0.0", "unrs-resolver": "^1.7.11" } }, "sha512-d+DjBQ1tIhdz91B79mywH5yYu76bZuE96sSbxj8MkjWVx5WNdt1deEFRONVL4UkKLSrAbMkdhb24XN691yDRHg=="], - "@verdaccio/logger/pino/sonic-boom": ["sonic-boom@4.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/sonic-boom/-/sonic-boom-4.2.0.tgz", { "dependencies": { "atomic-sleep": "^1.0.0" } }, "sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww=="], + "jest-cli/jest-config/jest-runner": ["jest-runner@30.0.5", "", { "dependencies": { "@jest/console": "30.0.5", "@jest/environment": "30.0.5", "@jest/test-result": "30.0.5", "@jest/transform": "30.0.5", "@jest/types": "30.0.5", "@types/node": "*", "chalk": "^4.1.2", "emittery": "^0.13.1", "exit-x": "^0.2.2", "graceful-fs": "^4.2.11", "jest-docblock": "30.0.1", "jest-environment-node": "30.0.5", "jest-haste-map": "30.0.5", "jest-leak-detector": "30.0.5", "jest-message-util": "30.0.5", "jest-resolve": "30.0.5", "jest-runtime": "30.0.5", "jest-util": "30.0.5", "jest-watcher": "30.0.5", "jest-worker": "30.0.5", "p-limit": "^3.1.0", "source-map-support": "0.5.13" } }, "sha512-JcCOucZmgp+YuGgLAXHNy7ualBx4wYSgJVWrYMRBnb79j9PD0Jxh0EHvR5Cx/r0Ce+ZBC4hCdz2AzFFLl9hCiw=="], - "@verdaccio/logger/pino/thread-stream": ["thread-stream@3.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/thread-stream/-/thread-stream-3.1.0.tgz", { "dependencies": { "real-require": "^0.2.0" } }, "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A=="], + "jest-cli/jest-config/pretty-format": ["pretty-format@30.0.5", "", { "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", "react-is": "^18.3.1" } }, "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw=="], - "@yarnpkg/parsers/js-yaml/argparse": ["argparse@1.0.10", "https://jfrog.booking.com:443/artifactory/api/npm/npm/argparse/-/argparse-1.0.10.tgz", { "dependencies": { "sprintf-js": "~1.0.2" } }, "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="], + "jest-cli/jest-config/strip-json-comments": ["strip-json-comments@3.1.1", "", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="], - "babel-jest/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "jest-cli/jest-validate/@jest/get-type": ["@jest/get-type@30.0.1", "", {}, "sha512-AyYdemXCptSRFirI5EPazNxyPwAL0jXt3zceFjaj8NFiKP9pOi0bfXonf6qkf82z2t3QWPeLCWWw4stPBzctLw=="], - "babel-plugin-istanbul/test-exclude/glob": ["glob@7.2.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/glob/-/glob-7.2.3.tgz", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="], + "jest-cli/jest-validate/pretty-format": ["pretty-format@30.0.5", "", { "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", "react-is": "^18.3.1" } }, "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw=="], - "babel-plugin-istanbul/test-exclude/minimatch": ["minimatch@3.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/minimatch/-/minimatch-3.1.2.tgz", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], + "jest-config/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "babel-plugin-macros/cosmiconfig/yaml": ["yaml@1.10.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/yaml/-/yaml-1.10.2.tgz", {}, "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg=="], + "jest-config/jest-util/picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], - "body-parser/debug/ms": ["ms@2.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ms/-/ms-2.0.0.tgz", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], + "jest-diff/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "cli-truncate/slice-ansi/is-fullwidth-code-point": ["is-fullwidth-code-point@4.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", {}, "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ=="], + "jest-each/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "cli-truncate/string-width/emoji-regex": ["emoji-regex@10.6.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/emoji-regex/-/emoji-regex-10.6.0.tgz", {}, "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A=="], + "jest-each/jest-util/picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], - "cli-truncate/string-width/strip-ansi": ["strip-ansi@7.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/strip-ansi/-/strip-ansi-7.1.2.tgz", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA=="], + "jest-environment-node/@jest/types/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "cliui/wrap-ansi/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "jest-environment-node/jest-util/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "compression/debug/ms": ["ms@2.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ms/-/ms-2.0.0.tgz", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], + "jest-environment-node/jest-util/picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], - "duplexify/readable-stream/isarray": ["isarray@1.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/isarray/-/isarray-1.0.0.tgz", {}, "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="], + "jest-haste-map/@jest/types/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "duplexify/readable-stream/safe-buffer": ["safe-buffer@5.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/safe-buffer/-/safe-buffer-5.1.2.tgz", {}, "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="], + "jest-haste-map/jest-util/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "duplexify/readable-stream/string_decoder": ["string_decoder@1.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/string_decoder/-/string_decoder-1.1.1.tgz", { "dependencies": { "safe-buffer": "~5.1.0" } }, "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="], + "jest-haste-map/jest-util/picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], - "eslint-plugin-import/minimatch/brace-expansion": ["brace-expansion@1.1.12", "https://jfrog.booking.com:443/artifactory/api/npm/npm/brace-expansion/-/brace-expansion-1.1.12.tgz", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], + "jest-matcher-utils/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "eslint-plugin-import/tsconfig-paths/json5": ["json5@1.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/json5/-/json5-1.0.2.tgz", { "dependencies": { "minimist": "^1.2.0" }, "bin": { "json5": "lib/cli.js" } }, "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA=="], + "jest-message-util/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "eslint/ajv/json-schema-traverse": ["json-schema-traverse@0.4.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", {}, "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="], + "jest-mock/@jest/types/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "eslint/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "jest-mock/jest-util/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "eslint/minimatch/brace-expansion": ["brace-expansion@1.1.12", "https://jfrog.booking.com:443/artifactory/api/npm/npm/brace-expansion/-/brace-expansion-1.1.12.tgz", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], + "jest-mock/jest-util/picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], - "expect/jest-util/@jest/types": ["@jest/types@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/types/-/types-30.2.0.tgz", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg=="], + "jest-resolve/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "expect/jest-util/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "jest-resolve/jest-util/@jest/types": ["@jest/types@30.2.0", "", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg=="], - "expect/jest-util/picomatch": ["picomatch@4.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/picomatch/-/picomatch-4.0.3.tgz", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], + "jest-resolve/jest-util/picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], - "express/debug/ms": ["ms@2.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ms/-/ms-2.0.0.tgz", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], + "jest-runner/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "finalhandler/debug/ms": ["ms@2.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ms/-/ms-2.0.0.tgz", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], + "jest-runner/jest-runtime/@jest/globals": ["@jest/globals@30.2.0", "", { "dependencies": { "@jest/environment": "30.2.0", "@jest/expect": "30.2.0", "@jest/types": "30.2.0", "jest-mock": "30.2.0" } }, "sha512-b63wmnKPaK+6ZZfpYhz9K61oybvbI1aMcIs80++JI1O1rR1vaxHUCNqo3ITu6NU0d4V34yZFoHMn/uoKr/Rwfw=="], - "find-cache-dir/make-dir/semver": ["semver@6.3.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/semver/-/semver-6.3.1.tgz", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + "jest-runner/jest-runtime/jest-snapshot": ["jest-snapshot@30.2.0", "", { "dependencies": { "@babel/core": "^7.27.4", "@babel/generator": "^7.27.5", "@babel/plugin-syntax-jsx": "^7.27.1", "@babel/plugin-syntax-typescript": "^7.27.1", "@babel/types": "^7.27.3", "@jest/expect-utils": "30.2.0", "@jest/get-type": "30.1.0", "@jest/snapshot-utils": "30.2.0", "@jest/transform": "30.2.0", "@jest/types": "30.2.0", "babel-preset-current-node-syntax": "^1.2.0", "chalk": "^4.1.2", "expect": "30.2.0", "graceful-fs": "^4.2.11", "jest-diff": "30.2.0", "jest-matcher-utils": "30.2.0", "jest-message-util": "30.2.0", "jest-util": "30.2.0", "pretty-format": "30.2.0", "semver": "^7.7.2", "synckit": "^0.11.8" } }, "sha512-5WEtTy2jXPFypadKNpbNkZ72puZCa6UjSr/7djeecHWOu7iYhSXSnHScT8wBz3Rn8Ena5d5RYRcsyKIeqG1IyA=="], - "front-matter/js-yaml/argparse": ["argparse@1.0.10", "https://jfrog.booking.com:443/artifactory/api/npm/npm/argparse/-/argparse-1.0.10.tgz", { "dependencies": { "sprintf-js": "~1.0.2" } }, "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="], + "jest-runner/jest-runtime/strip-bom": ["strip-bom@4.0.0", "", {}, "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w=="], - "globby/glob/minimatch": ["minimatch@3.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/minimatch/-/minimatch-3.1.2.tgz", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], + "jest-runner/jest-util/picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], - "html-encoding-sniffer/whatwg-encoding/iconv-lite": ["iconv-lite@0.6.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/iconv-lite/-/iconv-lite-0.6.3.tgz", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw=="], + "jest-runner/jest-watcher/ansi-escapes": ["ansi-escapes@4.3.2", "", { "dependencies": { "type-fest": "^0.21.3" } }, "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ=="], - "http-server/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "jest-runner/source-map-support/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], - "ink/cli-cursor/restore-cursor": ["restore-cursor@4.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/restore-cursor/-/restore-cursor-4.0.0.tgz", { "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" } }, "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg=="], + "jest-runtime/@jest/test-result/@jest/console": ["@jest/console@30.0.5", "", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "chalk": "^4.1.2", "jest-message-util": "30.0.5", "jest-util": "30.0.5", "slash": "^3.0.0" } }, "sha512-xY6b0XiL0Nav3ReresUarwl2oIz1gTnxGbGpho9/rbUWsLH0f1OD/VT84xs8c7VmH7MChnLb0pag6PhZhAdDiA=="], - "ink/string-width/emoji-regex": ["emoji-regex@10.6.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/emoji-regex/-/emoji-regex-10.6.0.tgz", {}, "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A=="], + "jest-runtime/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "ink/string-width/strip-ansi": ["strip-ansi@7.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/strip-ansi/-/strip-ansi-7.1.2.tgz", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA=="], + "jest-runtime/jest-haste-map/jest-worker": ["jest-worker@30.0.5", "", { "dependencies": { "@types/node": "*", "@ungap/structured-clone": "^1.3.0", "jest-util": "30.0.5", "merge-stream": "^2.0.0", "supports-color": "^8.1.1" } }, "sha512-ojRXsWzEP16NdUuBw/4H/zkZdHOa7MMYCk4E430l+8fELeLg/mqmMlRhjL7UNZvQrDmnovWZV4DxX03fZF48fQ=="], - "jest-circus/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "jest-runtime/jest-message-util/pretty-format": ["pretty-format@30.0.5", "", { "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", "react-is": "^18.3.1" } }, "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw=="], - "jest-circus/jest-runtime/@jest/globals": ["@jest/globals@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/globals/-/globals-30.2.0.tgz", { "dependencies": { "@jest/environment": "30.2.0", "@jest/expect": "30.2.0", "@jest/types": "30.2.0", "jest-mock": "30.2.0" } }, "sha512-b63wmnKPaK+6ZZfpYhz9K61oybvbI1aMcIs80++JI1O1rR1vaxHUCNqo3ITu6NU0d4V34yZFoHMn/uoKr/Rwfw=="], + "jest-runtime/jest-resolve/jest-validate": ["jest-validate@30.0.5", "", { "dependencies": { "@jest/get-type": "30.0.1", "@jest/types": "30.0.5", "camelcase": "^6.3.0", "chalk": "^4.1.2", "leven": "^3.1.0", "pretty-format": "30.0.5" } }, "sha512-ouTm6VFHaS2boyl+k4u+Qip4TSH7Uld5tyD8psQ8abGgt2uYYB8VwVfAHWHjHc0NWmGGbwO5h0sCPOGHHevefw=="], - "jest-circus/jest-runtime/strip-bom": ["strip-bom@4.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/strip-bom/-/strip-bom-4.0.0.tgz", {}, "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w=="], + "jest-snapshot/@jest/transform/jest-haste-map": ["jest-haste-map@30.0.5", "", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "anymatch": "^3.1.3", "fb-watchman": "^2.0.2", "graceful-fs": "^4.2.11", "jest-regex-util": "30.0.1", "jest-util": "30.0.5", "jest-worker": "30.0.5", "micromatch": "^4.0.8", "walker": "^1.0.8" }, "optionalDependencies": { "fsevents": "^2.3.3" } }, "sha512-dkmlWNlsTSR0nH3nRfW5BKbqHefLZv0/6LCccG0xFCTWcJu8TuEwG+5Cm75iBfjVoockmO6J35o5gxtFSn5xeg=="], - "jest-circus/jest-snapshot/@jest/snapshot-utils": ["@jest/snapshot-utils@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/snapshot-utils/-/snapshot-utils-30.2.0.tgz", { "dependencies": { "@jest/types": "30.2.0", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "natural-compare": "^1.4.0" } }, "sha512-0aVxM3RH6DaiLcjj/b0KrIBZhSX1373Xci4l3cW5xiUWPctZ59zQ7jj4rqcJQ/Z8JuN/4wX3FpJSa3RssVvCug=="], + "jest-snapshot/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "jest-circus/jest-util/picomatch": ["picomatch@4.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/picomatch/-/picomatch-4.0.3.tgz", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], + "jest-snapshot/expect/jest-mock": ["jest-mock@30.0.5", "", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "jest-util": "30.0.5" } }, "sha512-Od7TyasAAQX/6S+QCbN6vZoWOMwlTtzzGuxJku1GhGanAjz9y+QsQkpScDmETvdc9aSXyJ/Op4rhpMYBWW91wQ=="], - "jest-cli/@jest/test-result/@jest/console": ["@jest/console@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/console/-/console-30.0.5.tgz", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "chalk": "^4.1.2", "jest-message-util": "30.0.5", "jest-util": "30.0.5", "slash": "^3.0.0" } }, "sha512-xY6b0XiL0Nav3ReresUarwl2oIz1gTnxGbGpho9/rbUWsLH0f1OD/VT84xs8c7VmH7MChnLb0pag6PhZhAdDiA=="], + "jest-snapshot/pretty-format/ansi-styles": ["ansi-styles@5.2.0", "", {}, "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="], - "jest-cli/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "jest-util/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "jest-cli/jest-config/@jest/get-type": ["@jest/get-type@30.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/get-type/-/get-type-30.0.1.tgz", {}, "sha512-AyYdemXCptSRFirI5EPazNxyPwAL0jXt3zceFjaj8NFiKP9pOi0bfXonf6qkf82z2t3QWPeLCWWw4stPBzctLw=="], + "jest-validate/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "jest-cli/jest-config/@jest/test-sequencer": ["@jest/test-sequencer@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/test-sequencer/-/test-sequencer-30.0.5.tgz", { "dependencies": { "@jest/test-result": "30.0.5", "graceful-fs": "^4.2.11", "jest-haste-map": "30.0.5", "slash": "^3.0.0" } }, "sha512-Aea/G1egWoIIozmDD7PBXUOxkekXl7ueGzrsGGi1SbeKgQqCYCIf+wfbflEbf2LiPxL8j2JZGLyrzZagjvW4YQ=="], + "jest-watcher/@jest/test-result/@jest/console": ["@jest/console@30.0.5", "", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "chalk": "^4.1.2", "jest-message-util": "30.0.5", "jest-util": "30.0.5", "slash": "^3.0.0" } }, "sha512-xY6b0XiL0Nav3ReresUarwl2oIz1gTnxGbGpho9/rbUWsLH0f1OD/VT84xs8c7VmH7MChnLb0pag6PhZhAdDiA=="], - "jest-cli/jest-config/babel-jest": ["babel-jest@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/babel-jest/-/babel-jest-30.0.5.tgz", { "dependencies": { "@jest/transform": "30.0.5", "@types/babel__core": "^7.20.5", "babel-plugin-istanbul": "^7.0.0", "babel-preset-jest": "30.0.1", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "slash": "^3.0.0" }, "peerDependencies": { "@babel/core": "^7.11.0" } }, "sha512-mRijnKimhGDMsizTvBTWotwNpzrkHr+VvZUQBof2AufXKB8NXrL1W69TG20EvOz7aevx6FTJIaBuBkYxS8zolg=="], + "jest-watcher/ansi-escapes/type-fest": ["type-fest@0.21.3", "", {}, "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w=="], - "jest-cli/jest-config/jest-circus": ["jest-circus@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-circus/-/jest-circus-30.0.5.tgz", { "dependencies": { "@jest/environment": "30.0.5", "@jest/expect": "30.0.5", "@jest/test-result": "30.0.5", "@jest/types": "30.0.5", "@types/node": "*", "chalk": "^4.1.2", "co": "^4.6.0", "dedent": "^1.6.0", "is-generator-fn": "^2.1.0", "jest-each": "30.0.5", "jest-matcher-utils": "30.0.5", "jest-message-util": "30.0.5", "jest-runtime": "30.0.5", "jest-snapshot": "30.0.5", "jest-util": "30.0.5", "p-limit": "^3.1.0", "pretty-format": "30.0.5", "pure-rand": "^7.0.0", "slash": "^3.0.0", "stack-utils": "^2.0.6" } }, "sha512-h/sjXEs4GS+NFFfqBDYT7y5Msfxh04EwWLhQi0F8kuWpe+J/7tICSlswU8qvBqumR3kFgHbfu7vU6qruWWBPug=="], + "jest-watcher/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "jest-cli/jest-config/jest-docblock": ["jest-docblock@30.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-docblock/-/jest-docblock-30.0.1.tgz", { "dependencies": { "detect-newline": "^3.1.0" } }, "sha512-/vF78qn3DYphAaIc3jy4gA7XSAz167n9Bm/wn/1XhTLW7tTBIzXtCJpb/vcmc73NIIeeohCbdL94JasyXUZsGA=="], + "jest-worker/jest-util/@jest/types": ["@jest/types@30.2.0", "", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg=="], - "jest-cli/jest-config/jest-environment-node": ["jest-environment-node@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-environment-node/-/jest-environment-node-30.0.5.tgz", { "dependencies": { "@jest/environment": "30.0.5", "@jest/fake-timers": "30.0.5", "@jest/types": "30.0.5", "@types/node": "*", "jest-mock": "30.0.5", "jest-util": "30.0.5", "jest-validate": "30.0.5" } }, "sha512-ppYizXdLMSvciGsRsMEnv/5EFpvOdXBaXRBzFUDPWrsfmog4kYrOGWXarLllz6AXan6ZAA/kYokgDWuos1IKDA=="], + "jest-worker/jest-util/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "jest-cli/jest-config/jest-resolve": ["jest-resolve@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-resolve/-/jest-resolve-30.0.5.tgz", { "dependencies": { "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "jest-haste-map": "30.0.5", "jest-pnp-resolver": "^1.2.3", "jest-util": "30.0.5", "jest-validate": "30.0.5", "slash": "^3.0.0", "unrs-resolver": "^1.7.11" } }, "sha512-d+DjBQ1tIhdz91B79mywH5yYu76bZuE96sSbxj8MkjWVx5WNdt1deEFRONVL4UkKLSrAbMkdhb24XN691yDRHg=="], + "jest-worker/jest-util/picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], - "jest-cli/jest-config/jest-runner": ["jest-runner@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-runner/-/jest-runner-30.0.5.tgz", { "dependencies": { "@jest/console": "30.0.5", "@jest/environment": "30.0.5", "@jest/test-result": "30.0.5", "@jest/transform": "30.0.5", "@jest/types": "30.0.5", "@types/node": "*", "chalk": "^4.1.2", "emittery": "^0.13.1", "exit-x": "^0.2.2", "graceful-fs": "^4.2.11", "jest-docblock": "30.0.1", "jest-environment-node": "30.0.5", "jest-haste-map": "30.0.5", "jest-leak-detector": "30.0.5", "jest-message-util": "30.0.5", "jest-resolve": "30.0.5", "jest-runtime": "30.0.5", "jest-util": "30.0.5", "jest-watcher": "30.0.5", "jest-worker": "30.0.5", "p-limit": "^3.1.0", "source-map-support": "0.5.13" } }, "sha512-JcCOucZmgp+YuGgLAXHNy7ualBx4wYSgJVWrYMRBnb79j9PD0Jxh0EHvR5Cx/r0Ce+ZBC4hCdz2AzFFLl9hCiw=="], + "log-symbols/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "jest-cli/jest-config/pretty-format": ["pretty-format@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/pretty-format/-/pretty-format-30.0.5.tgz", { "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", "react-is": "^18.3.1" } }, "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw=="], + "node-fetch/whatwg-url/tr46": ["tr46@0.0.3", "", {}, "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="], - "jest-cli/jest-config/strip-json-comments": ["strip-json-comments@3.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/strip-json-comments/-/strip-json-comments-3.1.1.tgz", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="], + "node-fetch/whatwg-url/webidl-conversions": ["webidl-conversions@3.0.1", "", {}, "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="], - "jest-cli/jest-validate/@jest/get-type": ["@jest/get-type@30.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/get-type/-/get-type-30.0.1.tgz", {}, "sha512-AyYdemXCptSRFirI5EPazNxyPwAL0jXt3zceFjaj8NFiKP9pOi0bfXonf6qkf82z2t3QWPeLCWWw4stPBzctLw=="], + "nx/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "jest-cli/jest-validate/pretty-format": ["pretty-format@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/pretty-format/-/pretty-format-30.0.5.tgz", { "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", "react-is": "^18.3.1" } }, "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw=="], + "nx/open/define-lazy-prop": ["define-lazy-prop@2.0.0", "", {}, "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og=="], - "jest-config/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "ora/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "jest-config/jest-util/picomatch": ["picomatch@4.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/picomatch/-/picomatch-4.0.3.tgz", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], + "pkg-dir/find-up/locate-path": ["locate-path@5.0.0", "", { "dependencies": { "p-locate": "^4.1.0" } }, "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g=="], - "jest-diff/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "rollup-plugin-postcss/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "jest-each/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "rollup-plugin-typescript2/@rollup/pluginutils/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], - "jest-each/jest-util/picomatch": ["picomatch@4.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/picomatch/-/picomatch-4.0.3.tgz", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], + "rollup-plugin-typescript2/fs-extra/jsonfile": ["jsonfile@6.2.0", "", { "dependencies": { "universalify": "^2.0.0" }, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg=="], - "jest-environment-node/@jest/types/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "rollup-plugin-typescript2/fs-extra/universalify": ["universalify@2.0.1", "", {}, "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw=="], - "jest-environment-node/jest-util/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "send/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], - "jest-environment-node/jest-util/picomatch": ["picomatch@4.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/picomatch/-/picomatch-4.0.3.tgz", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], + "tcp-port-used/debug/ms": ["ms@2.1.2", "", {}, "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="], - "jest-haste-map/@jest/types/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "terser-webpack-plugin/jest-worker/supports-color": ["supports-color@8.1.1", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], - "jest-haste-map/jest-util/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "terser/source-map-support/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], - "jest-haste-map/jest-util/picomatch": ["picomatch@4.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/picomatch/-/picomatch-4.0.3.tgz", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], + "test-exclude/minimatch/brace-expansion": ["brace-expansion@5.0.4", "", { "dependencies": { "balanced-match": "^4.0.2" } }, "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg=="], - "jest-matcher-utils/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "through2/readable-stream/core-util-is": ["core-util-is@1.0.3", "", {}, "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="], - "jest-message-util/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "through2/readable-stream/isarray": ["isarray@1.0.0", "", {}, "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="], - "jest-mock/@jest/types/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "through2/readable-stream/string_decoder": ["string_decoder@1.1.1", "", { "dependencies": { "safe-buffer": "~5.1.0" } }, "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="], - "jest-mock/jest-util/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "typescript-eslint/@typescript-eslint/parser/@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.43.0", "", { "dependencies": { "@typescript-eslint/types": "8.43.0", "@typescript-eslint/visitor-keys": "8.43.0" } }, "sha512-daSWlQ87ZhsjrbMLvpuuMAt3y4ba57AuvadcR7f3nl8eS3BjRc8L9VLxFLk92RL5xdXOg6IQ+qKjjqNEimGuAg=="], - "jest-mock/jest-util/picomatch": ["picomatch@4.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/picomatch/-/picomatch-4.0.3.tgz", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], + "typescript-eslint/@typescript-eslint/parser/@typescript-eslint/types": ["@typescript-eslint/types@8.43.0", "", {}, "sha512-vQ2FZaxJpydjSZJKiSW/LJsabFFvV7KgLC5DiLhkBcykhQj8iK9BOaDmQt74nnKdLvceM5xmhaTF+pLekrxEkw=="], - "jest-resolve/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "typescript-eslint/@typescript-eslint/parser/@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.43.0", "", { "dependencies": { "@typescript-eslint/types": "8.43.0", "eslint-visitor-keys": "^4.2.1" } }, "sha512-T+S1KqRD4sg/bHfLwrpF/K3gQLBM1n7Rp7OjjikjTEssI2YJzQpi5WXoynOaQ93ERIuq3O8RBTOUYDKszUCEHw=="], - "jest-resolve/jest-util/@jest/types": ["@jest/types@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/types/-/types-30.2.0.tgz", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg=="], + "typescript-eslint/@typescript-eslint/typescript-estree/@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.43.0", "", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.43.0", "@typescript-eslint/types": "^8.43.0", "debug": "^4.3.4" }, "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-htB/+D/BIGoNTQYffZw4uM4NzzuolCoaA/BusuSIcC8YjmBYQioew5VUZAYdAETPjeed0hqCaW7EHg+Robq8uw=="], - "jest-resolve/jest-util/picomatch": ["picomatch@4.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/picomatch/-/picomatch-4.0.3.tgz", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], + "typescript-eslint/@typescript-eslint/typescript-estree/@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.43.0", "", { "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-ALC2prjZcj2YqqL5X/bwWQmHA2em6/94GcbB/KKu5SX3EBDOsqztmmX1kMkvAJHzxk7TazKzJfFiEIagNV3qEA=="], - "jest-runner/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "typescript-eslint/@typescript-eslint/typescript-estree/@typescript-eslint/types": ["@typescript-eslint/types@8.43.0", "", {}, "sha512-vQ2FZaxJpydjSZJKiSW/LJsabFFvV7KgLC5DiLhkBcykhQj8iK9BOaDmQt74nnKdLvceM5xmhaTF+pLekrxEkw=="], - "jest-runner/jest-runtime/@jest/globals": ["@jest/globals@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/globals/-/globals-30.2.0.tgz", { "dependencies": { "@jest/environment": "30.2.0", "@jest/expect": "30.2.0", "@jest/types": "30.2.0", "jest-mock": "30.2.0" } }, "sha512-b63wmnKPaK+6ZZfpYhz9K61oybvbI1aMcIs80++JI1O1rR1vaxHUCNqo3ITu6NU0d4V34yZFoHMn/uoKr/Rwfw=="], + "typescript-eslint/@typescript-eslint/typescript-estree/@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.43.0", "", { "dependencies": { "@typescript-eslint/types": "8.43.0", "eslint-visitor-keys": "^4.2.1" } }, "sha512-T+S1KqRD4sg/bHfLwrpF/K3gQLBM1n7Rp7OjjikjTEssI2YJzQpi5WXoynOaQ93ERIuq3O8RBTOUYDKszUCEHw=="], - "jest-runner/jest-runtime/jest-snapshot": ["jest-snapshot@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-snapshot/-/jest-snapshot-30.2.0.tgz", { "dependencies": { "@babel/core": "^7.27.4", "@babel/generator": "^7.27.5", "@babel/plugin-syntax-jsx": "^7.27.1", "@babel/plugin-syntax-typescript": "^7.27.1", "@babel/types": "^7.27.3", "@jest/expect-utils": "30.2.0", "@jest/get-type": "30.1.0", "@jest/snapshot-utils": "30.2.0", "@jest/transform": "30.2.0", "@jest/types": "30.2.0", "babel-preset-current-node-syntax": "^1.2.0", "chalk": "^4.1.2", "expect": "30.2.0", "graceful-fs": "^4.2.11", "jest-diff": "30.2.0", "jest-matcher-utils": "30.2.0", "jest-message-util": "30.2.0", "jest-util": "30.2.0", "pretty-format": "30.2.0", "semver": "^7.7.2", "synckit": "^0.11.8" } }, "sha512-5WEtTy2jXPFypadKNpbNkZ72puZCa6UjSr/7djeecHWOu7iYhSXSnHScT8wBz3Rn8Ena5d5RYRcsyKIeqG1IyA=="], + "typescript-eslint/@typescript-eslint/typescript-estree/minimatch": ["minimatch@9.0.9", "", { "dependencies": { "brace-expansion": "^2.0.2" } }, "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg=="], - "jest-runner/jest-runtime/strip-bom": ["strip-bom@4.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/strip-bom/-/strip-bom-4.0.0.tgz", {}, "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w=="], + "typescript-eslint/@typescript-eslint/utils/@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.43.0", "", { "dependencies": { "@typescript-eslint/types": "8.43.0", "@typescript-eslint/visitor-keys": "8.43.0" } }, "sha512-daSWlQ87ZhsjrbMLvpuuMAt3y4ba57AuvadcR7f3nl8eS3BjRc8L9VLxFLk92RL5xdXOg6IQ+qKjjqNEimGuAg=="], - "jest-runner/jest-util/picomatch": ["picomatch@4.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/picomatch/-/picomatch-4.0.3.tgz", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], + "typescript-eslint/@typescript-eslint/utils/@typescript-eslint/types": ["@typescript-eslint/types@8.43.0", "", {}, "sha512-vQ2FZaxJpydjSZJKiSW/LJsabFFvV7KgLC5DiLhkBcykhQj8iK9BOaDmQt74nnKdLvceM5xmhaTF+pLekrxEkw=="], - "jest-runner/jest-watcher/ansi-escapes": ["ansi-escapes@4.3.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-escapes/-/ansi-escapes-4.3.2.tgz", { "dependencies": { "type-fest": "^0.21.3" } }, "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ=="], + "unrun/rolldown/@oxc-project/types": ["@oxc-project/types@0.114.0", "", {}, "sha512-//nBfbzHQHvJs8oFIjv6coZ6uxQ4alLfiPe6D5vit6c4pmxATHHlVwgB1k+Hv4yoAMyncdxgRBF5K4BYWUCzvA=="], - "jest-runner/source-map-support/source-map": ["source-map@0.6.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/source-map/-/source-map-0.6.1.tgz", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], + "unrun/rolldown/@rolldown/binding-android-arm64": ["@rolldown/binding-android-arm64@1.0.0-rc.5", "", { "os": "android", "cpu": "arm64" }, "sha512-zCEmUrt1bggwgBgeKLxNj217J1OrChrp3jJt24VK9jAharSTeVaHODNL+LpcQVhRz+FktYWfT9cjo5oZ99ZLpg=="], - "jest-runtime/@jest/test-result/@jest/console": ["@jest/console@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/console/-/console-30.0.5.tgz", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "chalk": "^4.1.2", "jest-message-util": "30.0.5", "jest-util": "30.0.5", "slash": "^3.0.0" } }, "sha512-xY6b0XiL0Nav3ReresUarwl2oIz1gTnxGbGpho9/rbUWsLH0f1OD/VT84xs8c7VmH7MChnLb0pag6PhZhAdDiA=="], + "unrun/rolldown/@rolldown/binding-darwin-arm64": ["@rolldown/binding-darwin-arm64@1.0.0-rc.5", "", { "os": "darwin", "cpu": "arm64" }, "sha512-ZP9xb9lPAex36pvkNWCjSEJW/Gfdm9I3ssiqOFLmpZ/vosPXgpoGxCmh+dX1Qs+/bWQE6toNFXWWL8vYoKoK9Q=="], - "jest-runtime/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "unrun/rolldown/@rolldown/binding-darwin-x64": ["@rolldown/binding-darwin-x64@1.0.0-rc.5", "", { "os": "darwin", "cpu": "x64" }, "sha512-7IdrPunf6dp9mywMgTOKMMGDnMHQ6+h5gRl6LW8rhD8WK2kXX0IwzcM5Zc0B5J7xQs8QWOlKjv8BJsU/1CD3pg=="], - "jest-runtime/jest-haste-map/jest-worker": ["jest-worker@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-worker/-/jest-worker-30.0.5.tgz", { "dependencies": { "@types/node": "*", "@ungap/structured-clone": "^1.3.0", "jest-util": "30.0.5", "merge-stream": "^2.0.0", "supports-color": "^8.1.1" } }, "sha512-ojRXsWzEP16NdUuBw/4H/zkZdHOa7MMYCk4E430l+8fELeLg/mqmMlRhjL7UNZvQrDmnovWZV4DxX03fZF48fQ=="], + "unrun/rolldown/@rolldown/binding-freebsd-x64": ["@rolldown/binding-freebsd-x64@1.0.0-rc.5", "", { "os": "freebsd", "cpu": "x64" }, "sha512-o/JCk+dL0IN68EBhZ4DqfsfvxPfMeoM6cJtxORC1YYoxGHZyth2Kb2maXDb4oddw2wu8iIbnYXYPEzBtAF5CAg=="], - "jest-runtime/jest-message-util/pretty-format": ["pretty-format@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/pretty-format/-/pretty-format-30.0.5.tgz", { "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", "react-is": "^18.3.1" } }, "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw=="], + "unrun/rolldown/@rolldown/binding-linux-arm-gnueabihf": ["@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.5", "", { "os": "linux", "cpu": "arm" }, "sha512-IIBwTtA6VwxQLcEgq2mfrUgam7VvPZjhd/jxmeS1npM+edWsrrpRLHUdze+sk4rhb8/xpP3flemgcZXXUW6ukw=="], - "jest-runtime/jest-resolve/jest-validate": ["jest-validate@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-validate/-/jest-validate-30.0.5.tgz", { "dependencies": { "@jest/get-type": "30.0.1", "@jest/types": "30.0.5", "camelcase": "^6.3.0", "chalk": "^4.1.2", "leven": "^3.1.0", "pretty-format": "30.0.5" } }, "sha512-ouTm6VFHaS2boyl+k4u+Qip4TSH7Uld5tyD8psQ8abGgt2uYYB8VwVfAHWHjHc0NWmGGbwO5h0sCPOGHHevefw=="], + "unrun/rolldown/@rolldown/binding-linux-arm64-gnu": ["@rolldown/binding-linux-arm64-gnu@1.0.0-rc.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-KSol1De1spMZL+Xg7K5IBWXIvRWv7+pveaxFWXpezezAG7CS6ojzRjtCGCiLxQricutTAi/LkNWKMsd2wNhMKQ=="], - "jest-snapshot/@jest/transform/jest-haste-map": ["jest-haste-map@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-haste-map/-/jest-haste-map-30.0.5.tgz", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "anymatch": "^3.1.3", "fb-watchman": "^2.0.2", "graceful-fs": "^4.2.11", "jest-regex-util": "30.0.1", "jest-util": "30.0.5", "jest-worker": "30.0.5", "micromatch": "^4.0.8", "walker": "^1.0.8" }, "optionalDependencies": { "fsevents": "^2.3.3" } }, "sha512-dkmlWNlsTSR0nH3nRfW5BKbqHefLZv0/6LCccG0xFCTWcJu8TuEwG+5Cm75iBfjVoockmO6J35o5gxtFSn5xeg=="], + "unrun/rolldown/@rolldown/binding-linux-arm64-musl": ["@rolldown/binding-linux-arm64-musl@1.0.0-rc.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-WFljyDkxtXRlWxMjxeegf7xMYXxUr8u7JdXlOEWKYgDqEgxUnSEsVDxBiNWQ1D5kQKwf8Wo4sVKEYPRhCdsjwA=="], - "jest-snapshot/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "unrun/rolldown/@rolldown/binding-linux-x64-gnu": ["@rolldown/binding-linux-x64-gnu@1.0.0-rc.5", "", { "os": "linux", "cpu": "x64" }, "sha512-CUlplTujmbDWp2gamvrqVKi2Or8lmngXT1WxsizJfts7JrvfGhZObciaY/+CbdbS9qNnskvwMZNEhTPrn7b+WA=="], - "jest-snapshot/expect/jest-mock": ["jest-mock@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-mock/-/jest-mock-30.0.5.tgz", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "jest-util": "30.0.5" } }, "sha512-Od7TyasAAQX/6S+QCbN6vZoWOMwlTtzzGuxJku1GhGanAjz9y+QsQkpScDmETvdc9aSXyJ/Op4rhpMYBWW91wQ=="], + "unrun/rolldown/@rolldown/binding-linux-x64-musl": ["@rolldown/binding-linux-x64-musl@1.0.0-rc.5", "", { "os": "linux", "cpu": "x64" }, "sha512-wdf7g9NbVZCeAo2iGhsjJb7I8ZFfs6X8bumfrWg82VK+8P6AlLXwk48a1ASiJQDTS7Svq2xVzZg3sGO2aXpHRA=="], - "jest-snapshot/pretty-format/ansi-styles": ["ansi-styles@5.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-5.2.0.tgz", {}, "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="], + "unrun/rolldown/@rolldown/binding-openharmony-arm64": ["@rolldown/binding-openharmony-arm64@1.0.0-rc.5", "", { "os": "none", "cpu": "arm64" }, "sha512-0CWY7ubu12nhzz+tkpHjoG3IRSTlWYe0wrfJRf4qqjqQSGtAYgoL9kwzdvlhaFdZ5ffVeyYw9qLsChcjUMEloQ=="], - "jest-util/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "unrun/rolldown/@rolldown/binding-wasm32-wasi": ["@rolldown/binding-wasm32-wasi@1.0.0-rc.5", "", { "dependencies": { "@napi-rs/wasm-runtime": "^1.1.1" }, "cpu": "none" }, "sha512-LztXnGzv6t2u830mnZrFLRVqT/DPJ9DL4ZTz/y93rqUVkeHjMMYIYaFj+BUthiYxbVH9dH0SZYufETspKY/NhA=="], - "jest-validate/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "unrun/rolldown/@rolldown/binding-win32-arm64-msvc": ["@rolldown/binding-win32-arm64-msvc@1.0.0-rc.5", "", { "os": "win32", "cpu": "arm64" }, "sha512-jUct1XVeGtyjqJXEAfvdFa8xoigYZ2rge7nYEm70ppQxpfH9ze2fbIrpHmP2tNM2vL/F6Dd0CpXhpjPbC6bSxQ=="], - "jest-watcher/@jest/test-result/@jest/console": ["@jest/console@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/console/-/console-30.0.5.tgz", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "chalk": "^4.1.2", "jest-message-util": "30.0.5", "jest-util": "30.0.5", "slash": "^3.0.0" } }, "sha512-xY6b0XiL0Nav3ReresUarwl2oIz1gTnxGbGpho9/rbUWsLH0f1OD/VT84xs8c7VmH7MChnLb0pag6PhZhAdDiA=="], + "unrun/rolldown/@rolldown/binding-win32-x64-msvc": ["@rolldown/binding-win32-x64-msvc@1.0.0-rc.5", "", { "os": "win32", "cpu": "x64" }, "sha512-VQ8F9ld5gw29epjnVGdrx8ugiLTe8BMqmhDYy7nGbdeDo4HAt4bgdZvLbViEhg7DZyHLpiEUlO5/jPSUrIuxRQ=="], - "jest-watcher/ansi-escapes/type-fest": ["type-fest@0.21.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/type-fest/-/type-fest-0.21.3.tgz", {}, "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w=="], + "unrun/rolldown/@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.0-rc.5", "", {}, "sha512-RxlLX/DPoarZ9PtxVrQgZhPoor987YtKQqCo5zkjX+0S0yLJ7Vv515Wk6+xtTL67VONKJKxETWZwuZjss2idYw=="], - "jest-watcher/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "verdaccio-audit/https-proxy-agent/agent-base": ["agent-base@6.0.2", "", { "dependencies": { "debug": "4" } }, "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ=="], - "jest-worker/jest-util/@jest/types": ["@jest/types@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/types/-/types-30.2.0.tgz", { "dependencies": { "@jest/pattern": "30.0.1", "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", "@types/yargs": "^17.0.33", "chalk": "^4.1.2" } }, "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg=="], + "vite/esbuild/@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.12", "", { "os": "aix", "cpu": "ppc64" }, "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA=="], - "jest-worker/jest-util/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "vite/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.25.12", "", { "os": "android", "cpu": "arm" }, "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg=="], - "jest-worker/jest-util/picomatch": ["picomatch@4.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/picomatch/-/picomatch-4.0.3.tgz", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], + "vite/esbuild/@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.12", "", { "os": "android", "cpu": "arm64" }, "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg=="], - "jsprim/verror/extsprintf": ["extsprintf@1.4.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/extsprintf/-/extsprintf-1.4.1.tgz", {}, "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA=="], + "vite/esbuild/@esbuild/android-x64": ["@esbuild/android-x64@0.25.12", "", { "os": "android", "cpu": "x64" }, "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg=="], - "log-symbols/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "vite/esbuild/@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.12", "", { "os": "darwin", "cpu": "arm64" }, "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg=="], - "node-fetch/whatwg-url/tr46": ["tr46@0.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/tr46/-/tr46-0.0.3.tgz", {}, "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="], + "vite/esbuild/@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.12", "", { "os": "darwin", "cpu": "x64" }, "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA=="], - "node-fetch/whatwg-url/webidl-conversions": ["webidl-conversions@3.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/webidl-conversions/-/webidl-conversions-3.0.1.tgz", {}, "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="], + "vite/esbuild/@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.12", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg=="], - "nx/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "vite/esbuild/@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.12", "", { "os": "freebsd", "cpu": "x64" }, "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ=="], - "nx/open/define-lazy-prop": ["define-lazy-prop@2.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", {}, "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og=="], + "vite/esbuild/@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.12", "", { "os": "linux", "cpu": "arm" }, "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw=="], - "ora/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "vite/esbuild/@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.12", "", { "os": "linux", "cpu": "arm64" }, "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ=="], - "pkg-dir/find-up/locate-path": ["locate-path@5.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/locate-path/-/locate-path-5.0.0.tgz", { "dependencies": { "p-locate": "^4.1.0" } }, "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g=="], + "vite/esbuild/@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.12", "", { "os": "linux", "cpu": "ia32" }, "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA=="], - "rollup-plugin-postcss/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "vite/esbuild/@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng=="], - "rollup-plugin-typescript2/@rollup/pluginutils/picomatch": ["picomatch@2.3.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/picomatch/-/picomatch-2.3.1.tgz", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], + "vite/esbuild/@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw=="], - "rollup-plugin-typescript2/fs-extra/jsonfile": ["jsonfile@6.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jsonfile/-/jsonfile-6.2.0.tgz", { "dependencies": { "universalify": "^2.0.0" }, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg=="], + "vite/esbuild/@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.12", "", { "os": "linux", "cpu": "ppc64" }, "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA=="], - "rollup-plugin-typescript2/fs-extra/universalify": ["universalify@2.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/universalify/-/universalify-2.0.1.tgz", {}, "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw=="], + "vite/esbuild/@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w=="], - "send/debug/ms": ["ms@2.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ms/-/ms-2.0.0.tgz", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], + "vite/esbuild/@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.12", "", { "os": "linux", "cpu": "s390x" }, "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg=="], - "tcp-port-used/debug/ms": ["ms@2.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ms/-/ms-2.1.2.tgz", {}, "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="], + "vite/esbuild/@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.12", "", { "os": "linux", "cpu": "x64" }, "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw=="], - "terser-webpack-plugin/jest-worker/supports-color": ["supports-color@8.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/supports-color/-/supports-color-8.1.1.tgz", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], + "vite/esbuild/@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.12", "", { "os": "none", "cpu": "arm64" }, "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg=="], - "terser/source-map-support/source-map": ["source-map@0.6.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/source-map/-/source-map-0.6.1.tgz", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], + "vite/esbuild/@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.12", "", { "os": "none", "cpu": "x64" }, "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ=="], - "through2/readable-stream/isarray": ["isarray@1.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/isarray/-/isarray-1.0.0.tgz", {}, "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="], + "vite/esbuild/@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.12", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A=="], - "through2/readable-stream/safe-buffer": ["safe-buffer@5.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/safe-buffer/-/safe-buffer-5.1.2.tgz", {}, "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="], + "vite/esbuild/@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.12", "", { "os": "openbsd", "cpu": "x64" }, "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw=="], - "through2/readable-stream/string_decoder": ["string_decoder@1.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/string_decoder/-/string_decoder-1.1.1.tgz", { "dependencies": { "safe-buffer": "~5.1.0" } }, "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="], + "vite/esbuild/@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.25.12", "", { "os": "none", "cpu": "arm64" }, "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg=="], - "typescript-eslint/@typescript-eslint/parser/@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.43.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript-eslint/scope-manager/-/scope-manager-8.43.0.tgz", { "dependencies": { "@typescript-eslint/types": "8.43.0", "@typescript-eslint/visitor-keys": "8.43.0" } }, "sha512-daSWlQ87ZhsjrbMLvpuuMAt3y4ba57AuvadcR7f3nl8eS3BjRc8L9VLxFLk92RL5xdXOg6IQ+qKjjqNEimGuAg=="], + "vite/esbuild/@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.12", "", { "os": "sunos", "cpu": "x64" }, "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w=="], - "typescript-eslint/@typescript-eslint/parser/@typescript-eslint/types": ["@typescript-eslint/types@8.43.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript-eslint/types/-/types-8.43.0.tgz", {}, "sha512-vQ2FZaxJpydjSZJKiSW/LJsabFFvV7KgLC5DiLhkBcykhQj8iK9BOaDmQt74nnKdLvceM5xmhaTF+pLekrxEkw=="], + "vite/esbuild/@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.12", "", { "os": "win32", "cpu": "arm64" }, "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg=="], - "typescript-eslint/@typescript-eslint/parser/@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.43.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript-eslint/visitor-keys/-/visitor-keys-8.43.0.tgz", { "dependencies": { "@typescript-eslint/types": "8.43.0", "eslint-visitor-keys": "^4.2.1" } }, "sha512-T+S1KqRD4sg/bHfLwrpF/K3gQLBM1n7Rp7OjjikjTEssI2YJzQpi5WXoynOaQ93ERIuq3O8RBTOUYDKszUCEHw=="], + "vite/esbuild/@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.12", "", { "os": "win32", "cpu": "ia32" }, "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ=="], - "typescript-eslint/@typescript-eslint/typescript-estree/@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.43.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript-eslint/project-service/-/project-service-8.43.0.tgz", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.43.0", "@typescript-eslint/types": "^8.43.0", "debug": "^4.3.4" }, "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-htB/+D/BIGoNTQYffZw4uM4NzzuolCoaA/BusuSIcC8YjmBYQioew5VUZAYdAETPjeed0hqCaW7EHg+Robq8uw=="], + "vite/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.12", "", { "os": "win32", "cpu": "x64" }, "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA=="], - "typescript-eslint/@typescript-eslint/typescript-estree/@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.43.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.43.0.tgz", { "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-ALC2prjZcj2YqqL5X/bwWQmHA2em6/94GcbB/KKu5SX3EBDOsqztmmX1kMkvAJHzxk7TazKzJfFiEIagNV3qEA=="], + "webpack/eslint-scope/estraverse": ["estraverse@4.3.0", "", {}, "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="], - "typescript-eslint/@typescript-eslint/typescript-estree/@typescript-eslint/types": ["@typescript-eslint/types@8.43.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript-eslint/types/-/types-8.43.0.tgz", {}, "sha512-vQ2FZaxJpydjSZJKiSW/LJsabFFvV7KgLC5DiLhkBcykhQj8iK9BOaDmQt74nnKdLvceM5xmhaTF+pLekrxEkw=="], + "widest-line/string-width/emoji-regex": ["emoji-regex@10.6.0", "", {}, "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A=="], - "typescript-eslint/@typescript-eslint/typescript-estree/@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.43.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript-eslint/visitor-keys/-/visitor-keys-8.43.0.tgz", { "dependencies": { "@typescript-eslint/types": "8.43.0", "eslint-visitor-keys": "^4.2.1" } }, "sha512-T+S1KqRD4sg/bHfLwrpF/K3gQLBM1n7Rp7OjjikjTEssI2YJzQpi5WXoynOaQ93ERIuq3O8RBTOUYDKszUCEHw=="], + "widest-line/string-width/strip-ansi": ["strip-ansi@7.2.0", "", { "dependencies": { "ansi-regex": "^6.2.2" } }, "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w=="], - "typescript-eslint/@typescript-eslint/typescript-estree/debug": ["debug@4.4.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/debug/-/debug-4.4.0.tgz", { "dependencies": { "ms": "^2.1.3" } }, "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA=="], + "wrap-ansi/string-width/emoji-regex": ["emoji-regex@10.6.0", "", {}, "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A=="], - "typescript-eslint/@typescript-eslint/typescript-estree/minimatch": ["minimatch@9.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/minimatch/-/minimatch-9.0.5.tgz", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], + "wrap-ansi/strip-ansi/ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], - "typescript-eslint/@typescript-eslint/utils/@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.43.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript-eslint/scope-manager/-/scope-manager-8.43.0.tgz", { "dependencies": { "@typescript-eslint/types": "8.43.0", "@typescript-eslint/visitor-keys": "8.43.0" } }, "sha512-daSWlQ87ZhsjrbMLvpuuMAt3y4ba57AuvadcR7f3nl8eS3BjRc8L9VLxFLk92RL5xdXOg6IQ+qKjjqNEimGuAg=="], + "@abapify/asjson-parser/@nx/rollup/@nx/js/@nx/workspace": ["@nx/workspace@21.5.1", "", { "dependencies": { "@nx/devkit": "21.5.1", "@zkochan/js-yaml": "0.0.7", "chalk": "^4.1.0", "enquirer": "~2.3.6", "nx": "21.5.1", "picomatch": "4.0.2", "semver": "^7.6.3", "tslib": "^2.3.0", "yargs-parser": "21.1.1" } }, "sha512-Z3iuXaq2D5h6R8KInw5+EwX+pjuvrmSEhAYEtFWXrrRX/HQ3mnSRJQi8y2izLxv5yaTN6l/ufQ0NnDzPRLGpJg=="], - "typescript-eslint/@typescript-eslint/utils/@typescript-eslint/types": ["@typescript-eslint/types@8.43.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript-eslint/types/-/types-8.43.0.tgz", {}, "sha512-vQ2FZaxJpydjSZJKiSW/LJsabFFvV7KgLC5DiLhkBcykhQj8iK9BOaDmQt74nnKdLvceM5xmhaTF+pLekrxEkw=="], + "@abapify/asjson-parser/@nx/rollup/@nx/js/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "verdaccio-audit/https-proxy-agent/agent-base": ["agent-base@6.0.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/agent-base/-/agent-base-6.0.2.tgz", { "dependencies": { "debug": "4" } }, "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ=="], + "@istanbuljs/load-nyc-config/find-up/locate-path/p-locate": ["p-locate@4.1.0", "", { "dependencies": { "p-limit": "^2.2.0" } }, "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A=="], - "verdaccio-audit/https-proxy-agent/debug": ["debug@4.4.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/debug/-/debug-4.4.0.tgz", { "dependencies": { "ms": "^2.1.3" } }, "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA=="], + "@jest/core/@jest/reporters/jest-worker/supports-color": ["supports-color@8.1.1", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], - "webpack/eslint-scope/estraverse": ["estraverse@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/estraverse/-/estraverse-4.3.0.tgz", {}, "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="], + "@jest/core/jest-config/babel-jest/babel-preset-jest": ["babel-preset-jest@30.0.1", "", { "dependencies": { "babel-plugin-jest-hoist": "30.0.1", "babel-preset-current-node-syntax": "^1.1.0" }, "peerDependencies": { "@babel/core": "^7.11.0" } }, "sha512-+YHejD5iTWI46cZmcc/YtX4gaKBtdqCHCVfuVinizVpbmyjO3zYmeuyFdfA8duRqQZfgCAMlsfmkVbJ+e2MAJw=="], - "widest-line/string-width/emoji-regex": ["emoji-regex@10.6.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/emoji-regex/-/emoji-regex-10.6.0.tgz", {}, "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A=="], + "@jest/core/jest-config/jest-circus/@jest/expect": ["@jest/expect@30.0.5", "", { "dependencies": { "expect": "30.0.5", "jest-snapshot": "30.0.5" } }, "sha512-6udac8KKrtTtC+AXZ2iUN/R7dp7Ydry+Fo6FPFnDG54wjVMnb6vW/XNlf7Xj8UDjAE3aAVAsR4KFyKk3TCXmTA=="], - "widest-line/string-width/strip-ansi": ["strip-ansi@7.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/strip-ansi/-/strip-ansi-7.1.2.tgz", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA=="], + "@jest/core/jest-config/jest-circus/jest-each": ["jest-each@30.0.5", "", { "dependencies": { "@jest/get-type": "30.0.1", "@jest/types": "30.0.5", "chalk": "^4.1.2", "jest-util": "30.0.5", "pretty-format": "30.0.5" } }, "sha512-dKjRsx1uZ96TVyejD3/aAWcNKy6ajMaN531CwWIsrazIqIoXI9TnnpPlkrEYku/8rkS3dh2rbH+kMOyiEIv0xQ=="], - "wrap-ansi/string-width/emoji-regex": ["emoji-regex@10.6.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/emoji-regex/-/emoji-regex-10.6.0.tgz", {}, "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A=="], + "@jest/core/jest-config/jest-circus/jest-matcher-utils": ["jest-matcher-utils@30.0.5", "", { "dependencies": { "@jest/get-type": "30.0.1", "chalk": "^4.1.2", "jest-diff": "30.0.5", "pretty-format": "30.0.5" } }, "sha512-uQgGWt7GOrRLP1P7IwNWwK1WAQbq+m//ZY0yXygyfWp0rJlksMSLQAA4wYQC3b6wl3zfnchyTx+k3HZ5aPtCbQ=="], - "wrap-ansi/strip-ansi/ansi-regex": ["ansi-regex@6.2.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-regex/-/ansi-regex-6.2.2.tgz", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], + "@jest/core/jest-config/jest-environment-node/@jest/fake-timers": ["@jest/fake-timers@30.0.5", "", { "dependencies": { "@jest/types": "30.0.5", "@sinonjs/fake-timers": "^13.0.0", "@types/node": "*", "jest-message-util": "30.0.5", "jest-mock": "30.0.5", "jest-util": "30.0.5" } }, "sha512-ZO5DHfNV+kgEAeP3gK3XlpJLL4U3Sz6ebl/n68Uwt64qFFs5bv4bfEEjyRGK5uM0C90ewooNgFuKMdkbEoMEXw=="], - "@abapify/asjson-parser/@nx/rollup/@nx/js/@nx/workspace": ["@nx/workspace@21.5.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@nx/workspace/-/workspace-21.5.1.tgz", { "dependencies": { "@nx/devkit": "21.5.1", "@zkochan/js-yaml": "0.0.7", "chalk": "^4.1.0", "enquirer": "~2.3.6", "nx": "21.5.1", "picomatch": "4.0.2", "semver": "^7.6.3", "tslib": "^2.3.0", "yargs-parser": "21.1.1" } }, "sha512-Z3iuXaq2D5h6R8KInw5+EwX+pjuvrmSEhAYEtFWXrrRX/HQ3mnSRJQi8y2izLxv5yaTN6l/ufQ0NnDzPRLGpJg=="], + "@jest/core/jest-config/jest-environment-node/jest-mock": ["jest-mock@30.0.5", "", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "jest-util": "30.0.5" } }, "sha512-Od7TyasAAQX/6S+QCbN6vZoWOMwlTtzzGuxJku1GhGanAjz9y+QsQkpScDmETvdc9aSXyJ/Op4rhpMYBWW91wQ=="], - "@abapify/asjson-parser/@nx/rollup/@nx/js/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "@jest/core/jest-haste-map/jest-worker/supports-color": ["supports-color@8.1.1", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], - "@istanbuljs/load-nyc-config/find-up/locate-path/p-locate": ["p-locate@4.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/p-locate/-/p-locate-4.1.0.tgz", { "dependencies": { "p-limit": "^2.2.0" } }, "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A=="], + "@jest/core/jest-runner/jest-environment-node/@jest/fake-timers": ["@jest/fake-timers@30.0.5", "", { "dependencies": { "@jest/types": "30.0.5", "@sinonjs/fake-timers": "^13.0.0", "@types/node": "*", "jest-message-util": "30.0.5", "jest-mock": "30.0.5", "jest-util": "30.0.5" } }, "sha512-ZO5DHfNV+kgEAeP3gK3XlpJLL4U3Sz6ebl/n68Uwt64qFFs5bv4bfEEjyRGK5uM0C90ewooNgFuKMdkbEoMEXw=="], - "@jest/core/@jest/reporters/jest-worker/supports-color": ["supports-color@8.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/supports-color/-/supports-color-8.1.1.tgz", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], + "@jest/core/jest-runner/jest-environment-node/jest-mock": ["jest-mock@30.0.5", "", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "jest-util": "30.0.5" } }, "sha512-Od7TyasAAQX/6S+QCbN6vZoWOMwlTtzzGuxJku1GhGanAjz9y+QsQkpScDmETvdc9aSXyJ/Op4rhpMYBWW91wQ=="], - "@jest/core/jest-config/babel-jest/babel-preset-jest": ["babel-preset-jest@30.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/babel-preset-jest/-/babel-preset-jest-30.0.1.tgz", { "dependencies": { "babel-plugin-jest-hoist": "30.0.1", "babel-preset-current-node-syntax": "^1.1.0" }, "peerDependencies": { "@babel/core": "^7.11.0" } }, "sha512-+YHejD5iTWI46cZmcc/YtX4gaKBtdqCHCVfuVinizVpbmyjO3zYmeuyFdfA8duRqQZfgCAMlsfmkVbJ+e2MAJw=="], + "@jest/core/jest-runner/jest-leak-detector/@jest/get-type": ["@jest/get-type@30.0.1", "", {}, "sha512-AyYdemXCptSRFirI5EPazNxyPwAL0jXt3zceFjaj8NFiKP9pOi0bfXonf6qkf82z2t3QWPeLCWWw4stPBzctLw=="], - "@jest/core/jest-config/jest-circus/@jest/expect": ["@jest/expect@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/expect/-/expect-30.0.5.tgz", { "dependencies": { "expect": "30.0.5", "jest-snapshot": "30.0.5" } }, "sha512-6udac8KKrtTtC+AXZ2iUN/R7dp7Ydry+Fo6FPFnDG54wjVMnb6vW/XNlf7Xj8UDjAE3aAVAsR4KFyKk3TCXmTA=="], + "@jest/core/jest-runner/jest-worker/supports-color": ["supports-color@8.1.1", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], - "@jest/core/jest-config/jest-circus/jest-each": ["jest-each@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-each/-/jest-each-30.0.5.tgz", { "dependencies": { "@jest/get-type": "30.0.1", "@jest/types": "30.0.5", "chalk": "^4.1.2", "jest-util": "30.0.5", "pretty-format": "30.0.5" } }, "sha512-dKjRsx1uZ96TVyejD3/aAWcNKy6ajMaN531CwWIsrazIqIoXI9TnnpPlkrEYku/8rkS3dh2rbH+kMOyiEIv0xQ=="], + "@jest/core/jest-runner/source-map-support/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], - "@jest/core/jest-config/jest-circus/jest-matcher-utils": ["jest-matcher-utils@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-matcher-utils/-/jest-matcher-utils-30.0.5.tgz", { "dependencies": { "@jest/get-type": "30.0.1", "chalk": "^4.1.2", "jest-diff": "30.0.5", "pretty-format": "30.0.5" } }, "sha512-uQgGWt7GOrRLP1P7IwNWwK1WAQbq+m//ZY0yXygyfWp0rJlksMSLQAA4wYQC3b6wl3zfnchyTx+k3HZ5aPtCbQ=="], + "@jest/create-cache-key-function/@jest/types/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "@jest/core/jest-config/jest-environment-node/@jest/fake-timers": ["@jest/fake-timers@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/fake-timers/-/fake-timers-30.0.5.tgz", { "dependencies": { "@jest/types": "30.0.5", "@sinonjs/fake-timers": "^13.0.0", "@types/node": "*", "jest-message-util": "30.0.5", "jest-mock": "30.0.5", "jest-util": "30.0.5" } }, "sha512-ZO5DHfNV+kgEAeP3gK3XlpJLL4U3Sz6ebl/n68Uwt64qFFs5bv4bfEEjyRGK5uM0C90ewooNgFuKMdkbEoMEXw=="], + "@jest/environment-jsdom-abstract/@jest/fake-timers/jest-message-util/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "@jest/core/jest-config/jest-environment-node/jest-mock": ["jest-mock@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-mock/-/jest-mock-30.0.5.tgz", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "jest-util": "30.0.5" } }, "sha512-Od7TyasAAQX/6S+QCbN6vZoWOMwlTtzzGuxJku1GhGanAjz9y+QsQkpScDmETvdc9aSXyJ/Op4rhpMYBWW91wQ=="], + "@jest/environment-jsdom-abstract/@jest/fake-timers/jest-message-util/pretty-format": ["pretty-format@30.0.5", "", { "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", "react-is": "^18.3.1" } }, "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw=="], - "@jest/core/jest-haste-map/jest-worker/supports-color": ["supports-color@8.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/supports-color/-/supports-color-8.1.1.tgz", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], + "@jest/environment/@jest/fake-timers/jest-message-util/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "@jest/core/jest-runner/jest-environment-node/@jest/fake-timers": ["@jest/fake-timers@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/fake-timers/-/fake-timers-30.0.5.tgz", { "dependencies": { "@jest/types": "30.0.5", "@sinonjs/fake-timers": "^13.0.0", "@types/node": "*", "jest-message-util": "30.0.5", "jest-mock": "30.0.5", "jest-util": "30.0.5" } }, "sha512-ZO5DHfNV+kgEAeP3gK3XlpJLL4U3Sz6ebl/n68Uwt64qFFs5bv4bfEEjyRGK5uM0C90ewooNgFuKMdkbEoMEXw=="], + "@jest/environment/@jest/fake-timers/jest-message-util/pretty-format": ["pretty-format@30.0.5", "", { "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", "react-is": "^18.3.1" } }, "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw=="], - "@jest/core/jest-runner/jest-environment-node/jest-mock": ["jest-mock@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-mock/-/jest-mock-30.0.5.tgz", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "jest-util": "30.0.5" } }, "sha512-Od7TyasAAQX/6S+QCbN6vZoWOMwlTtzzGuxJku1GhGanAjz9y+QsQkpScDmETvdc9aSXyJ/Op4rhpMYBWW91wQ=="], + "@jest/expect/jest-snapshot/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "@jest/core/jest-runner/jest-leak-detector/@jest/get-type": ["@jest/get-type@30.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/get-type/-/get-type-30.0.1.tgz", {}, "sha512-AyYdemXCptSRFirI5EPazNxyPwAL0jXt3zceFjaj8NFiKP9pOi0bfXonf6qkf82z2t3QWPeLCWWw4stPBzctLw=="], + "@jest/expect/jest-snapshot/jest-util/picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], - "@jest/core/jest-runner/jest-worker/supports-color": ["supports-color@8.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/supports-color/-/supports-color-8.1.1.tgz", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], + "@jest/fake-timers/@jest/types/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "@jest/core/jest-runner/source-map-support/source-map": ["source-map@0.6.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/source-map/-/source-map-0.6.1.tgz", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], + "@jest/fake-timers/jest-util/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "@jest/create-cache-key-function/@jest/types/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "@jest/globals/@jest/expect/expect/@jest/expect-utils": ["@jest/expect-utils@30.0.5", "", { "dependencies": { "@jest/get-type": "30.0.1" } }, "sha512-F3lmTT7CXWYywoVUGTCmom0vXq3HTTkaZyTAzIy+bXSBizB7o5qzlC9VCtq0arOa8GqmNsbg/cE9C6HLn7Szew=="], - "@jest/environment-jsdom-abstract/@jest/fake-timers/jest-message-util/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "@jest/globals/@jest/expect/expect/@jest/get-type": ["@jest/get-type@30.0.1", "", {}, "sha512-AyYdemXCptSRFirI5EPazNxyPwAL0jXt3zceFjaj8NFiKP9pOi0bfXonf6qkf82z2t3QWPeLCWWw4stPBzctLw=="], - "@jest/environment-jsdom-abstract/@jest/fake-timers/jest-message-util/pretty-format": ["pretty-format@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/pretty-format/-/pretty-format-30.0.5.tgz", { "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", "react-is": "^18.3.1" } }, "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw=="], + "@jest/globals/@jest/expect/expect/jest-matcher-utils": ["jest-matcher-utils@30.0.5", "", { "dependencies": { "@jest/get-type": "30.0.1", "chalk": "^4.1.2", "jest-diff": "30.0.5", "pretty-format": "30.0.5" } }, "sha512-uQgGWt7GOrRLP1P7IwNWwK1WAQbq+m//ZY0yXygyfWp0rJlksMSLQAA4wYQC3b6wl3zfnchyTx+k3HZ5aPtCbQ=="], - "@jest/environment/@jest/fake-timers/jest-message-util/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "@jest/globals/@jest/expect/expect/jest-message-util": ["jest-message-util@30.0.5", "", { "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.0.5", "@types/stack-utils": "^2.0.3", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "micromatch": "^4.0.8", "pretty-format": "30.0.5", "slash": "^3.0.0", "stack-utils": "^2.0.6" } }, "sha512-NAiDOhsK3V7RU0Aa/HnrQo+E4JlbarbmI3q6Pi4KcxicdtjV82gcIUrejOtczChtVQR4kddu1E1EJlW6EN9IyA=="], - "@jest/environment/@jest/fake-timers/jest-message-util/pretty-format": ["pretty-format@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/pretty-format/-/pretty-format-30.0.5.tgz", { "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", "react-is": "^18.3.1" } }, "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw=="], + "@jest/test-result/@jest/types/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "@jest/expect/jest-snapshot/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "@nx/jest/jest-util/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "@jest/expect/jest-snapshot/jest-util/picomatch": ["picomatch@4.0.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/picomatch/-/picomatch-4.0.3.tgz", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], + "@ts-morph/common/minimatch/brace-expansion/balanced-match": ["balanced-match@4.0.4", "", {}, "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA=="], - "@jest/fake-timers/@jest/types/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "@types/minimatch/minimatch/brace-expansion/balanced-match": ["balanced-match@4.0.4", "", {}, "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA=="], - "@jest/fake-timers/jest-util/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "@typescript-eslint/eslint-plugin/@typescript-eslint/type-utils/@typescript-eslint/typescript-estree/@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.43.0", "", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.43.0", "@typescript-eslint/types": "^8.43.0", "debug": "^4.3.4" }, "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-htB/+D/BIGoNTQYffZw4uM4NzzuolCoaA/BusuSIcC8YjmBYQioew5VUZAYdAETPjeed0hqCaW7EHg+Robq8uw=="], - "@jest/globals/@jest/expect/expect/@jest/expect-utils": ["@jest/expect-utils@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/expect-utils/-/expect-utils-30.0.5.tgz", { "dependencies": { "@jest/get-type": "30.0.1" } }, "sha512-F3lmTT7CXWYywoVUGTCmom0vXq3HTTkaZyTAzIy+bXSBizB7o5qzlC9VCtq0arOa8GqmNsbg/cE9C6HLn7Szew=="], + "@typescript-eslint/eslint-plugin/@typescript-eslint/type-utils/@typescript-eslint/typescript-estree/@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.43.0", "", { "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-ALC2prjZcj2YqqL5X/bwWQmHA2em6/94GcbB/KKu5SX3EBDOsqztmmX1kMkvAJHzxk7TazKzJfFiEIagNV3qEA=="], - "@jest/globals/@jest/expect/expect/@jest/get-type": ["@jest/get-type@30.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/get-type/-/get-type-30.0.1.tgz", {}, "sha512-AyYdemXCptSRFirI5EPazNxyPwAL0jXt3zceFjaj8NFiKP9pOi0bfXonf6qkf82z2t3QWPeLCWWw4stPBzctLw=="], + "@typescript-eslint/eslint-plugin/@typescript-eslint/type-utils/@typescript-eslint/typescript-estree/minimatch": ["minimatch@9.0.9", "", { "dependencies": { "brace-expansion": "^2.0.2" } }, "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg=="], - "@jest/globals/@jest/expect/expect/jest-matcher-utils": ["jest-matcher-utils@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-matcher-utils/-/jest-matcher-utils-30.0.5.tgz", { "dependencies": { "@jest/get-type": "30.0.1", "chalk": "^4.1.2", "jest-diff": "30.0.5", "pretty-format": "30.0.5" } }, "sha512-uQgGWt7GOrRLP1P7IwNWwK1WAQbq+m//ZY0yXygyfWp0rJlksMSLQAA4wYQC3b6wl3zfnchyTx+k3HZ5aPtCbQ=="], + "@typescript-eslint/eslint-plugin/@typescript-eslint/utils/@typescript-eslint/typescript-estree/@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.43.0", "", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.43.0", "@typescript-eslint/types": "^8.43.0", "debug": "^4.3.4" }, "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-htB/+D/BIGoNTQYffZw4uM4NzzuolCoaA/BusuSIcC8YjmBYQioew5VUZAYdAETPjeed0hqCaW7EHg+Robq8uw=="], - "@jest/globals/@jest/expect/expect/jest-message-util": ["jest-message-util@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-message-util/-/jest-message-util-30.0.5.tgz", { "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.0.5", "@types/stack-utils": "^2.0.3", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "micromatch": "^4.0.8", "pretty-format": "30.0.5", "slash": "^3.0.0", "stack-utils": "^2.0.6" } }, "sha512-NAiDOhsK3V7RU0Aa/HnrQo+E4JlbarbmI3q6Pi4KcxicdtjV82gcIUrejOtczChtVQR4kddu1E1EJlW6EN9IyA=="], + "@typescript-eslint/eslint-plugin/@typescript-eslint/utils/@typescript-eslint/typescript-estree/@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.43.0", "", { "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-ALC2prjZcj2YqqL5X/bwWQmHA2em6/94GcbB/KKu5SX3EBDOsqztmmX1kMkvAJHzxk7TazKzJfFiEIagNV3qEA=="], - "@jest/test-result/@jest/types/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "@typescript-eslint/eslint-plugin/@typescript-eslint/utils/@typescript-eslint/typescript-estree/minimatch": ["minimatch@9.0.9", "", { "dependencies": { "brace-expansion": "^2.0.2" } }, "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg=="], - "@nx/jest/jest-util/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "@typescript-eslint/typescript-estree/minimatch/brace-expansion/balanced-match": ["balanced-match@4.0.4", "", {}, "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA=="], - "@typescript-eslint/eslint-plugin/@typescript-eslint/type-utils/@typescript-eslint/typescript-estree/@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.43.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript-eslint/project-service/-/project-service-8.43.0.tgz", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.43.0", "@typescript-eslint/types": "^8.43.0", "debug": "^4.3.4" }, "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-htB/+D/BIGoNTQYffZw4uM4NzzuolCoaA/BusuSIcC8YjmBYQioew5VUZAYdAETPjeed0hqCaW7EHg+Robq8uw=="], + "babel-plugin-istanbul/test-exclude/minimatch/brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], - "@typescript-eslint/eslint-plugin/@typescript-eslint/type-utils/@typescript-eslint/typescript-estree/@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.43.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.43.0.tgz", { "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-ALC2prjZcj2YqqL5X/bwWQmHA2em6/94GcbB/KKu5SX3EBDOsqztmmX1kMkvAJHzxk7TazKzJfFiEIagNV3qEA=="], + "cli-truncate/string-width/strip-ansi/ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], - "@typescript-eslint/eslint-plugin/@typescript-eslint/type-utils/@typescript-eslint/typescript-estree/debug": ["debug@4.4.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/debug/-/debug-4.4.0.tgz", { "dependencies": { "ms": "^2.1.3" } }, "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA=="], + "expect/jest-util/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "@typescript-eslint/eslint-plugin/@typescript-eslint/type-utils/@typescript-eslint/typescript-estree/minimatch": ["minimatch@9.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/minimatch/-/minimatch-9.0.5.tgz", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], + "globby/glob/minimatch/brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], - "@typescript-eslint/eslint-plugin/@typescript-eslint/utils/@typescript-eslint/typescript-estree/@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.43.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript-eslint/project-service/-/project-service-8.43.0.tgz", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.43.0", "@typescript-eslint/types": "^8.43.0", "debug": "^4.3.4" }, "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-htB/+D/BIGoNTQYffZw4uM4NzzuolCoaA/BusuSIcC8YjmBYQioew5VUZAYdAETPjeed0hqCaW7EHg+Robq8uw=="], + "ink/string-width/strip-ansi/ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], - "@typescript-eslint/eslint-plugin/@typescript-eslint/utils/@typescript-eslint/typescript-estree/@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.43.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.43.0.tgz", { "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-ALC2prjZcj2YqqL5X/bwWQmHA2em6/94GcbB/KKu5SX3EBDOsqztmmX1kMkvAJHzxk7TazKzJfFiEIagNV3qEA=="], + "jest-cli/@jest/test-result/@jest/console/jest-message-util": ["jest-message-util@30.0.5", "", { "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.0.5", "@types/stack-utils": "^2.0.3", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "micromatch": "^4.0.8", "pretty-format": "30.0.5", "slash": "^3.0.0", "stack-utils": "^2.0.6" } }, "sha512-NAiDOhsK3V7RU0Aa/HnrQo+E4JlbarbmI3q6Pi4KcxicdtjV82gcIUrejOtczChtVQR4kddu1E1EJlW6EN9IyA=="], - "@typescript-eslint/eslint-plugin/@typescript-eslint/utils/@typescript-eslint/typescript-estree/debug": ["debug@4.4.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/debug/-/debug-4.4.0.tgz", { "dependencies": { "ms": "^2.1.3" } }, "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA=="], + "jest-cli/jest-config/@jest/test-sequencer/jest-haste-map": ["jest-haste-map@30.0.5", "", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "anymatch": "^3.1.3", "fb-watchman": "^2.0.2", "graceful-fs": "^4.2.11", "jest-regex-util": "30.0.1", "jest-util": "30.0.5", "jest-worker": "30.0.5", "micromatch": "^4.0.8", "walker": "^1.0.8" }, "optionalDependencies": { "fsevents": "^2.3.3" } }, "sha512-dkmlWNlsTSR0nH3nRfW5BKbqHefLZv0/6LCccG0xFCTWcJu8TuEwG+5Cm75iBfjVoockmO6J35o5gxtFSn5xeg=="], - "@typescript-eslint/eslint-plugin/@typescript-eslint/utils/@typescript-eslint/typescript-estree/minimatch": ["minimatch@9.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/minimatch/-/minimatch-9.0.5.tgz", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], + "jest-cli/jest-config/babel-jest/@jest/transform": ["@jest/transform@30.0.5", "", { "dependencies": { "@babel/core": "^7.27.4", "@jest/types": "30.0.5", "@jridgewell/trace-mapping": "^0.3.25", "babel-plugin-istanbul": "^7.0.0", "chalk": "^4.1.2", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.11", "jest-haste-map": "30.0.5", "jest-regex-util": "30.0.1", "jest-util": "30.0.5", "micromatch": "^4.0.8", "pirates": "^4.0.7", "slash": "^3.0.0", "write-file-atomic": "^5.0.1" } }, "sha512-Vk8amLQCmuZyy6GbBht1Jfo9RSdBtg7Lks+B0PecnjI8J+PCLQPGh7uI8Q/2wwpW2gLdiAfiHNsmekKlywULqg=="], - "babel-plugin-istanbul/test-exclude/minimatch/brace-expansion": ["brace-expansion@1.1.12", "https://jfrog.booking.com:443/artifactory/api/npm/npm/brace-expansion/-/brace-expansion-1.1.12.tgz", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], + "jest-cli/jest-config/babel-jest/babel-preset-jest": ["babel-preset-jest@30.0.1", "", { "dependencies": { "babel-plugin-jest-hoist": "30.0.1", "babel-preset-current-node-syntax": "^1.1.0" }, "peerDependencies": { "@babel/core": "^7.11.0" } }, "sha512-+YHejD5iTWI46cZmcc/YtX4gaKBtdqCHCVfuVinizVpbmyjO3zYmeuyFdfA8duRqQZfgCAMlsfmkVbJ+e2MAJw=="], - "cli-truncate/string-width/strip-ansi/ansi-regex": ["ansi-regex@6.2.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-regex/-/ansi-regex-6.2.2.tgz", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], + "jest-cli/jest-config/jest-circus/@jest/expect": ["@jest/expect@30.0.5", "", { "dependencies": { "expect": "30.0.5", "jest-snapshot": "30.0.5" } }, "sha512-6udac8KKrtTtC+AXZ2iUN/R7dp7Ydry+Fo6FPFnDG54wjVMnb6vW/XNlf7Xj8UDjAE3aAVAsR4KFyKk3TCXmTA=="], - "expect/jest-util/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "jest-cli/jest-config/jest-circus/jest-each": ["jest-each@30.0.5", "", { "dependencies": { "@jest/get-type": "30.0.1", "@jest/types": "30.0.5", "chalk": "^4.1.2", "jest-util": "30.0.5", "pretty-format": "30.0.5" } }, "sha512-dKjRsx1uZ96TVyejD3/aAWcNKy6ajMaN531CwWIsrazIqIoXI9TnnpPlkrEYku/8rkS3dh2rbH+kMOyiEIv0xQ=="], - "globby/glob/minimatch/brace-expansion": ["brace-expansion@1.1.12", "https://jfrog.booking.com:443/artifactory/api/npm/npm/brace-expansion/-/brace-expansion-1.1.12.tgz", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], + "jest-cli/jest-config/jest-circus/jest-matcher-utils": ["jest-matcher-utils@30.0.5", "", { "dependencies": { "@jest/get-type": "30.0.1", "chalk": "^4.1.2", "jest-diff": "30.0.5", "pretty-format": "30.0.5" } }, "sha512-uQgGWt7GOrRLP1P7IwNWwK1WAQbq+m//ZY0yXygyfWp0rJlksMSLQAA4wYQC3b6wl3zfnchyTx+k3HZ5aPtCbQ=="], - "ink/string-width/strip-ansi/ansi-regex": ["ansi-regex@6.2.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-regex/-/ansi-regex-6.2.2.tgz", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], + "jest-cli/jest-config/jest-circus/jest-message-util": ["jest-message-util@30.0.5", "", { "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.0.5", "@types/stack-utils": "^2.0.3", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "micromatch": "^4.0.8", "pretty-format": "30.0.5", "slash": "^3.0.0", "stack-utils": "^2.0.6" } }, "sha512-NAiDOhsK3V7RU0Aa/HnrQo+E4JlbarbmI3q6Pi4KcxicdtjV82gcIUrejOtczChtVQR4kddu1E1EJlW6EN9IyA=="], - "jest-cli/@jest/test-result/@jest/console/jest-message-util": ["jest-message-util@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-message-util/-/jest-message-util-30.0.5.tgz", { "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.0.5", "@types/stack-utils": "^2.0.3", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "micromatch": "^4.0.8", "pretty-format": "30.0.5", "slash": "^3.0.0", "stack-utils": "^2.0.6" } }, "sha512-NAiDOhsK3V7RU0Aa/HnrQo+E4JlbarbmI3q6Pi4KcxicdtjV82gcIUrejOtczChtVQR4kddu1E1EJlW6EN9IyA=="], + "jest-cli/jest-config/jest-environment-node/@jest/fake-timers": ["@jest/fake-timers@30.0.5", "", { "dependencies": { "@jest/types": "30.0.5", "@sinonjs/fake-timers": "^13.0.0", "@types/node": "*", "jest-message-util": "30.0.5", "jest-mock": "30.0.5", "jest-util": "30.0.5" } }, "sha512-ZO5DHfNV+kgEAeP3gK3XlpJLL4U3Sz6ebl/n68Uwt64qFFs5bv4bfEEjyRGK5uM0C90ewooNgFuKMdkbEoMEXw=="], - "jest-cli/jest-config/@jest/test-sequencer/jest-haste-map": ["jest-haste-map@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-haste-map/-/jest-haste-map-30.0.5.tgz", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "anymatch": "^3.1.3", "fb-watchman": "^2.0.2", "graceful-fs": "^4.2.11", "jest-regex-util": "30.0.1", "jest-util": "30.0.5", "jest-worker": "30.0.5", "micromatch": "^4.0.8", "walker": "^1.0.8" }, "optionalDependencies": { "fsevents": "^2.3.3" } }, "sha512-dkmlWNlsTSR0nH3nRfW5BKbqHefLZv0/6LCccG0xFCTWcJu8TuEwG+5Cm75iBfjVoockmO6J35o5gxtFSn5xeg=="], + "jest-cli/jest-config/jest-environment-node/jest-mock": ["jest-mock@30.0.5", "", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "jest-util": "30.0.5" } }, "sha512-Od7TyasAAQX/6S+QCbN6vZoWOMwlTtzzGuxJku1GhGanAjz9y+QsQkpScDmETvdc9aSXyJ/Op4rhpMYBWW91wQ=="], - "jest-cli/jest-config/babel-jest/@jest/transform": ["@jest/transform@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/transform/-/transform-30.0.5.tgz", { "dependencies": { "@babel/core": "^7.27.4", "@jest/types": "30.0.5", "@jridgewell/trace-mapping": "^0.3.25", "babel-plugin-istanbul": "^7.0.0", "chalk": "^4.1.2", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.11", "jest-haste-map": "30.0.5", "jest-regex-util": "30.0.1", "jest-util": "30.0.5", "micromatch": "^4.0.8", "pirates": "^4.0.7", "slash": "^3.0.0", "write-file-atomic": "^5.0.1" } }, "sha512-Vk8amLQCmuZyy6GbBht1Jfo9RSdBtg7Lks+B0PecnjI8J+PCLQPGh7uI8Q/2wwpW2gLdiAfiHNsmekKlywULqg=="], + "jest-cli/jest-config/jest-resolve/jest-haste-map": ["jest-haste-map@30.0.5", "", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "anymatch": "^3.1.3", "fb-watchman": "^2.0.2", "graceful-fs": "^4.2.11", "jest-regex-util": "30.0.1", "jest-util": "30.0.5", "jest-worker": "30.0.5", "micromatch": "^4.0.8", "walker": "^1.0.8" }, "optionalDependencies": { "fsevents": "^2.3.3" } }, "sha512-dkmlWNlsTSR0nH3nRfW5BKbqHefLZv0/6LCccG0xFCTWcJu8TuEwG+5Cm75iBfjVoockmO6J35o5gxtFSn5xeg=="], - "jest-cli/jest-config/babel-jest/babel-preset-jest": ["babel-preset-jest@30.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/babel-preset-jest/-/babel-preset-jest-30.0.1.tgz", { "dependencies": { "babel-plugin-jest-hoist": "30.0.1", "babel-preset-current-node-syntax": "^1.1.0" }, "peerDependencies": { "@babel/core": "^7.11.0" } }, "sha512-+YHejD5iTWI46cZmcc/YtX4gaKBtdqCHCVfuVinizVpbmyjO3zYmeuyFdfA8duRqQZfgCAMlsfmkVbJ+e2MAJw=="], + "jest-cli/jest-config/jest-runner/@jest/console": ["@jest/console@30.0.5", "", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "chalk": "^4.1.2", "jest-message-util": "30.0.5", "jest-util": "30.0.5", "slash": "^3.0.0" } }, "sha512-xY6b0XiL0Nav3ReresUarwl2oIz1gTnxGbGpho9/rbUWsLH0f1OD/VT84xs8c7VmH7MChnLb0pag6PhZhAdDiA=="], - "jest-cli/jest-config/jest-circus/@jest/expect": ["@jest/expect@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/expect/-/expect-30.0.5.tgz", { "dependencies": { "expect": "30.0.5", "jest-snapshot": "30.0.5" } }, "sha512-6udac8KKrtTtC+AXZ2iUN/R7dp7Ydry+Fo6FPFnDG54wjVMnb6vW/XNlf7Xj8UDjAE3aAVAsR4KFyKk3TCXmTA=="], + "jest-cli/jest-config/jest-runner/@jest/transform": ["@jest/transform@30.0.5", "", { "dependencies": { "@babel/core": "^7.27.4", "@jest/types": "30.0.5", "@jridgewell/trace-mapping": "^0.3.25", "babel-plugin-istanbul": "^7.0.0", "chalk": "^4.1.2", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.11", "jest-haste-map": "30.0.5", "jest-regex-util": "30.0.1", "jest-util": "30.0.5", "micromatch": "^4.0.8", "pirates": "^4.0.7", "slash": "^3.0.0", "write-file-atomic": "^5.0.1" } }, "sha512-Vk8amLQCmuZyy6GbBht1Jfo9RSdBtg7Lks+B0PecnjI8J+PCLQPGh7uI8Q/2wwpW2gLdiAfiHNsmekKlywULqg=="], - "jest-cli/jest-config/jest-circus/jest-each": ["jest-each@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-each/-/jest-each-30.0.5.tgz", { "dependencies": { "@jest/get-type": "30.0.1", "@jest/types": "30.0.5", "chalk": "^4.1.2", "jest-util": "30.0.5", "pretty-format": "30.0.5" } }, "sha512-dKjRsx1uZ96TVyejD3/aAWcNKy6ajMaN531CwWIsrazIqIoXI9TnnpPlkrEYku/8rkS3dh2rbH+kMOyiEIv0xQ=="], + "jest-cli/jest-config/jest-runner/jest-haste-map": ["jest-haste-map@30.0.5", "", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "anymatch": "^3.1.3", "fb-watchman": "^2.0.2", "graceful-fs": "^4.2.11", "jest-regex-util": "30.0.1", "jest-util": "30.0.5", "jest-worker": "30.0.5", "micromatch": "^4.0.8", "walker": "^1.0.8" }, "optionalDependencies": { "fsevents": "^2.3.3" } }, "sha512-dkmlWNlsTSR0nH3nRfW5BKbqHefLZv0/6LCccG0xFCTWcJu8TuEwG+5Cm75iBfjVoockmO6J35o5gxtFSn5xeg=="], - "jest-cli/jest-config/jest-circus/jest-matcher-utils": ["jest-matcher-utils@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-matcher-utils/-/jest-matcher-utils-30.0.5.tgz", { "dependencies": { "@jest/get-type": "30.0.1", "chalk": "^4.1.2", "jest-diff": "30.0.5", "pretty-format": "30.0.5" } }, "sha512-uQgGWt7GOrRLP1P7IwNWwK1WAQbq+m//ZY0yXygyfWp0rJlksMSLQAA4wYQC3b6wl3zfnchyTx+k3HZ5aPtCbQ=="], + "jest-cli/jest-config/jest-runner/jest-leak-detector": ["jest-leak-detector@30.0.5", "", { "dependencies": { "@jest/get-type": "30.0.1", "pretty-format": "30.0.5" } }, "sha512-3Uxr5uP8jmHMcsOtYMRB/zf1gXN3yUIc+iPorhNETG54gErFIiUhLvyY/OggYpSMOEYqsmRxmuU4ZOoX5jpRFg=="], - "jest-cli/jest-config/jest-circus/jest-message-util": ["jest-message-util@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-message-util/-/jest-message-util-30.0.5.tgz", { "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.0.5", "@types/stack-utils": "^2.0.3", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "micromatch": "^4.0.8", "pretty-format": "30.0.5", "slash": "^3.0.0", "stack-utils": "^2.0.6" } }, "sha512-NAiDOhsK3V7RU0Aa/HnrQo+E4JlbarbmI3q6Pi4KcxicdtjV82gcIUrejOtczChtVQR4kddu1E1EJlW6EN9IyA=="], + "jest-cli/jest-config/jest-runner/jest-message-util": ["jest-message-util@30.0.5", "", { "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.0.5", "@types/stack-utils": "^2.0.3", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "micromatch": "^4.0.8", "pretty-format": "30.0.5", "slash": "^3.0.0", "stack-utils": "^2.0.6" } }, "sha512-NAiDOhsK3V7RU0Aa/HnrQo+E4JlbarbmI3q6Pi4KcxicdtjV82gcIUrejOtczChtVQR4kddu1E1EJlW6EN9IyA=="], - "jest-cli/jest-config/jest-environment-node/@jest/fake-timers": ["@jest/fake-timers@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/fake-timers/-/fake-timers-30.0.5.tgz", { "dependencies": { "@jest/types": "30.0.5", "@sinonjs/fake-timers": "^13.0.0", "@types/node": "*", "jest-message-util": "30.0.5", "jest-mock": "30.0.5", "jest-util": "30.0.5" } }, "sha512-ZO5DHfNV+kgEAeP3gK3XlpJLL4U3Sz6ebl/n68Uwt64qFFs5bv4bfEEjyRGK5uM0C90ewooNgFuKMdkbEoMEXw=="], + "jest-cli/jest-config/jest-runner/jest-worker": ["jest-worker@30.0.5", "", { "dependencies": { "@types/node": "*", "@ungap/structured-clone": "^1.3.0", "jest-util": "30.0.5", "merge-stream": "^2.0.0", "supports-color": "^8.1.1" } }, "sha512-ojRXsWzEP16NdUuBw/4H/zkZdHOa7MMYCk4E430l+8fELeLg/mqmMlRhjL7UNZvQrDmnovWZV4DxX03fZF48fQ=="], - "jest-cli/jest-config/jest-environment-node/jest-mock": ["jest-mock@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-mock/-/jest-mock-30.0.5.tgz", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "jest-util": "30.0.5" } }, "sha512-Od7TyasAAQX/6S+QCbN6vZoWOMwlTtzzGuxJku1GhGanAjz9y+QsQkpScDmETvdc9aSXyJ/Op4rhpMYBWW91wQ=="], + "jest-cli/jest-config/jest-runner/source-map-support": ["source-map-support@0.5.13", "", { "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w=="], - "jest-cli/jest-config/jest-resolve/jest-haste-map": ["jest-haste-map@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-haste-map/-/jest-haste-map-30.0.5.tgz", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "anymatch": "^3.1.3", "fb-watchman": "^2.0.2", "graceful-fs": "^4.2.11", "jest-regex-util": "30.0.1", "jest-util": "30.0.5", "jest-worker": "30.0.5", "micromatch": "^4.0.8", "walker": "^1.0.8" }, "optionalDependencies": { "fsevents": "^2.3.3" } }, "sha512-dkmlWNlsTSR0nH3nRfW5BKbqHefLZv0/6LCccG0xFCTWcJu8TuEwG+5Cm75iBfjVoockmO6J35o5gxtFSn5xeg=="], + "jest-cli/jest-config/pretty-format/ansi-styles": ["ansi-styles@5.2.0", "", {}, "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="], - "jest-cli/jest-config/jest-runner/@jest/console": ["@jest/console@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/console/-/console-30.0.5.tgz", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "chalk": "^4.1.2", "jest-message-util": "30.0.5", "jest-util": "30.0.5", "slash": "^3.0.0" } }, "sha512-xY6b0XiL0Nav3ReresUarwl2oIz1gTnxGbGpho9/rbUWsLH0f1OD/VT84xs8c7VmH7MChnLb0pag6PhZhAdDiA=="], + "jest-cli/jest-validate/pretty-format/ansi-styles": ["ansi-styles@5.2.0", "", {}, "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="], - "jest-cli/jest-config/jest-runner/@jest/transform": ["@jest/transform@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/transform/-/transform-30.0.5.tgz", { "dependencies": { "@babel/core": "^7.27.4", "@jest/types": "30.0.5", "@jridgewell/trace-mapping": "^0.3.25", "babel-plugin-istanbul": "^7.0.0", "chalk": "^4.1.2", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.11", "jest-haste-map": "30.0.5", "jest-regex-util": "30.0.1", "jest-util": "30.0.5", "micromatch": "^4.0.8", "pirates": "^4.0.7", "slash": "^3.0.0", "write-file-atomic": "^5.0.1" } }, "sha512-Vk8amLQCmuZyy6GbBht1Jfo9RSdBtg7Lks+B0PecnjI8J+PCLQPGh7uI8Q/2wwpW2gLdiAfiHNsmekKlywULqg=="], + "jest-environment-node/@jest/types/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "jest-cli/jest-config/jest-runner/jest-haste-map": ["jest-haste-map@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-haste-map/-/jest-haste-map-30.0.5.tgz", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "anymatch": "^3.1.3", "fb-watchman": "^2.0.2", "graceful-fs": "^4.2.11", "jest-regex-util": "30.0.1", "jest-util": "30.0.5", "jest-worker": "30.0.5", "micromatch": "^4.0.8", "walker": "^1.0.8" }, "optionalDependencies": { "fsevents": "^2.3.3" } }, "sha512-dkmlWNlsTSR0nH3nRfW5BKbqHefLZv0/6LCccG0xFCTWcJu8TuEwG+5Cm75iBfjVoockmO6J35o5gxtFSn5xeg=="], + "jest-environment-node/jest-util/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "jest-cli/jest-config/jest-runner/jest-leak-detector": ["jest-leak-detector@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-leak-detector/-/jest-leak-detector-30.0.5.tgz", { "dependencies": { "@jest/get-type": "30.0.1", "pretty-format": "30.0.5" } }, "sha512-3Uxr5uP8jmHMcsOtYMRB/zf1gXN3yUIc+iPorhNETG54gErFIiUhLvyY/OggYpSMOEYqsmRxmuU4ZOoX5jpRFg=="], + "jest-haste-map/@jest/types/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "jest-cli/jest-config/jest-runner/jest-message-util": ["jest-message-util@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-message-util/-/jest-message-util-30.0.5.tgz", { "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.0.5", "@types/stack-utils": "^2.0.3", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "micromatch": "^4.0.8", "pretty-format": "30.0.5", "slash": "^3.0.0", "stack-utils": "^2.0.6" } }, "sha512-NAiDOhsK3V7RU0Aa/HnrQo+E4JlbarbmI3q6Pi4KcxicdtjV82gcIUrejOtczChtVQR4kddu1E1EJlW6EN9IyA=="], + "jest-haste-map/jest-util/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "jest-cli/jest-config/jest-runner/jest-worker": ["jest-worker@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-worker/-/jest-worker-30.0.5.tgz", { "dependencies": { "@types/node": "*", "@ungap/structured-clone": "^1.3.0", "jest-util": "30.0.5", "merge-stream": "^2.0.0", "supports-color": "^8.1.1" } }, "sha512-ojRXsWzEP16NdUuBw/4H/zkZdHOa7MMYCk4E430l+8fELeLg/mqmMlRhjL7UNZvQrDmnovWZV4DxX03fZF48fQ=="], + "jest-mock/@jest/types/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "jest-cli/jest-config/jest-runner/source-map-support": ["source-map-support@0.5.13", "https://jfrog.booking.com:443/artifactory/api/npm/npm/source-map-support/-/source-map-support-0.5.13.tgz", { "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w=="], + "jest-mock/jest-util/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "jest-cli/jest-config/pretty-format/ansi-styles": ["ansi-styles@5.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-5.2.0.tgz", {}, "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="], + "jest-runner/jest-runtime/jest-snapshot/@jest/snapshot-utils": ["@jest/snapshot-utils@30.2.0", "", { "dependencies": { "@jest/types": "30.2.0", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "natural-compare": "^1.4.0" } }, "sha512-0aVxM3RH6DaiLcjj/b0KrIBZhSX1373Xci4l3cW5xiUWPctZ59zQ7jj4rqcJQ/Z8JuN/4wX3FpJSa3RssVvCug=="], - "jest-cli/jest-validate/pretty-format/ansi-styles": ["ansi-styles@5.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-5.2.0.tgz", {}, "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="], + "jest-runner/jest-watcher/ansi-escapes/type-fest": ["type-fest@0.21.3", "", {}, "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w=="], - "jest-environment-node/@jest/types/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "jest-runtime/jest-haste-map/jest-worker/supports-color": ["supports-color@8.1.1", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], - "jest-environment-node/jest-util/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "jest-runtime/jest-message-util/pretty-format/ansi-styles": ["ansi-styles@5.2.0", "", {}, "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="], - "jest-haste-map/@jest/types/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "jest-runtime/jest-resolve/jest-validate/@jest/get-type": ["@jest/get-type@30.0.1", "", {}, "sha512-AyYdemXCptSRFirI5EPazNxyPwAL0jXt3zceFjaj8NFiKP9pOi0bfXonf6qkf82z2t3QWPeLCWWw4stPBzctLw=="], - "jest-haste-map/jest-util/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "jest-runtime/jest-resolve/jest-validate/pretty-format": ["pretty-format@30.0.5", "", { "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", "react-is": "^18.3.1" } }, "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw=="], - "jest-mock/@jest/types/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "jest-snapshot/@jest/transform/jest-haste-map/jest-worker": ["jest-worker@30.0.5", "", { "dependencies": { "@types/node": "*", "@ungap/structured-clone": "^1.3.0", "jest-util": "30.0.5", "merge-stream": "^2.0.0", "supports-color": "^8.1.1" } }, "sha512-ojRXsWzEP16NdUuBw/4H/zkZdHOa7MMYCk4E430l+8fELeLg/mqmMlRhjL7UNZvQrDmnovWZV4DxX03fZF48fQ=="], - "jest-mock/jest-util/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "jest-watcher/@jest/test-result/@jest/console/jest-message-util": ["jest-message-util@30.0.5", "", { "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.0.5", "@types/stack-utils": "^2.0.3", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "micromatch": "^4.0.8", "pretty-format": "30.0.5", "slash": "^3.0.0", "stack-utils": "^2.0.6" } }, "sha512-NAiDOhsK3V7RU0Aa/HnrQo+E4JlbarbmI3q6Pi4KcxicdtjV82gcIUrejOtczChtVQR4kddu1E1EJlW6EN9IyA=="], - "jest-runner/jest-runtime/jest-snapshot/@jest/snapshot-utils": ["@jest/snapshot-utils@30.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/snapshot-utils/-/snapshot-utils-30.2.0.tgz", { "dependencies": { "@jest/types": "30.2.0", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "natural-compare": "^1.4.0" } }, "sha512-0aVxM3RH6DaiLcjj/b0KrIBZhSX1373Xci4l3cW5xiUWPctZ59zQ7jj4rqcJQ/Z8JuN/4wX3FpJSa3RssVvCug=="], + "jest-worker/jest-util/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "jest-runner/jest-watcher/ansi-escapes/type-fest": ["type-fest@0.21.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/type-fest/-/type-fest-0.21.3.tgz", {}, "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w=="], + "jest-worker/jest-util/chalk/supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="], - "jest-runtime/jest-haste-map/jest-worker/supports-color": ["supports-color@8.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/supports-color/-/supports-color-8.1.1.tgz", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], + "pkg-dir/find-up/locate-path/p-locate": ["p-locate@4.1.0", "", { "dependencies": { "p-limit": "^2.2.0" } }, "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A=="], - "jest-runtime/jest-message-util/pretty-format/ansi-styles": ["ansi-styles@5.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-5.2.0.tgz", {}, "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="], + "test-exclude/minimatch/brace-expansion/balanced-match": ["balanced-match@4.0.4", "", {}, "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA=="], - "jest-runtime/jest-resolve/jest-validate/@jest/get-type": ["@jest/get-type@30.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/get-type/-/get-type-30.0.1.tgz", {}, "sha512-AyYdemXCptSRFirI5EPazNxyPwAL0jXt3zceFjaj8NFiKP9pOi0bfXonf6qkf82z2t3QWPeLCWWw4stPBzctLw=="], + "typescript-eslint/@typescript-eslint/typescript-estree/@typescript-eslint/project-service/@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.56.1", "", { "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-qOtCYzKEeyr3aR9f28mPJqBty7+DBqsdd63eO0yyDwc6vgThj2UjWfJIcsFeSucYydqcuudMOprZ+x1SpF3ZuQ=="], - "jest-runtime/jest-resolve/jest-validate/pretty-format": ["pretty-format@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/pretty-format/-/pretty-format-30.0.5.tgz", { "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", "react-is": "^18.3.1" } }, "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw=="], + "typescript-eslint/@typescript-eslint/typescript-estree/@typescript-eslint/project-service/@typescript-eslint/types": ["@typescript-eslint/types@8.56.1", "", {}, "sha512-dbMkdIUkIkchgGDIv7KLUpa0Mda4IYjo4IAMJUZ+3xNoUXxMsk9YtKpTHSChRS85o+H9ftm51gsK1dZReY9CVw=="], - "jest-snapshot/@jest/transform/jest-haste-map/jest-worker": ["jest-worker@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-worker/-/jest-worker-30.0.5.tgz", { "dependencies": { "@types/node": "*", "@ungap/structured-clone": "^1.3.0", "jest-util": "30.0.5", "merge-stream": "^2.0.0", "supports-color": "^8.1.1" } }, "sha512-ojRXsWzEP16NdUuBw/4H/zkZdHOa7MMYCk4E430l+8fELeLg/mqmMlRhjL7UNZvQrDmnovWZV4DxX03fZF48fQ=="], + "typescript-eslint/@typescript-eslint/utils/@typescript-eslint/scope-manager/@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.43.0", "", { "dependencies": { "@typescript-eslint/types": "8.43.0", "eslint-visitor-keys": "^4.2.1" } }, "sha512-T+S1KqRD4sg/bHfLwrpF/K3gQLBM1n7Rp7OjjikjTEssI2YJzQpi5WXoynOaQ93ERIuq3O8RBTOUYDKszUCEHw=="], - "jest-watcher/@jest/test-result/@jest/console/jest-message-util": ["jest-message-util@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-message-util/-/jest-message-util-30.0.5.tgz", { "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.0.5", "@types/stack-utils": "^2.0.3", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "micromatch": "^4.0.8", "pretty-format": "30.0.5", "slash": "^3.0.0", "stack-utils": "^2.0.6" } }, "sha512-NAiDOhsK3V7RU0Aa/HnrQo+E4JlbarbmI3q6Pi4KcxicdtjV82gcIUrejOtczChtVQR4kddu1E1EJlW6EN9IyA=="], + "unrun/rolldown/@rolldown/binding-wasm32-wasi/@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.1.1", "", { "dependencies": { "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1", "@tybys/wasm-util": "^0.10.1" } }, "sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A=="], - "jest-worker/jest-util/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "widest-line/string-width/strip-ansi/ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], - "jest-worker/jest-util/chalk/supports-color": ["supports-color@7.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/supports-color/-/supports-color-7.2.0.tgz", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="], + "@abapify/asjson-parser/@nx/rollup/@nx/js/@nx/workspace/nx": ["nx@21.5.1", "", { "dependencies": { "@napi-rs/wasm-runtime": "0.2.4", "@yarnpkg/lockfile": "^1.1.0", "@yarnpkg/parsers": "3.0.2", "@zkochan/js-yaml": "0.0.7", "axios": "^1.8.3", "chalk": "^4.1.0", "cli-cursor": "3.1.0", "cli-spinners": "2.6.1", "cliui": "^8.0.1", "dotenv": "~16.4.5", "dotenv-expand": "~11.0.6", "enquirer": "~2.3.6", "figures": "3.2.0", "flat": "^5.0.2", "front-matter": "^4.0.2", "ignore": "^5.0.4", "jest-diff": "^30.0.2", "jsonc-parser": "3.2.0", "lines-and-columns": "2.0.3", "minimatch": "9.0.3", "node-machine-id": "1.1.12", "npm-run-path": "^4.0.1", "open": "^8.4.0", "ora": "5.3.0", "resolve.exports": "2.0.3", "semver": "^7.5.3", "string-width": "^4.2.3", "tar-stream": "~2.2.0", "tmp": "~0.2.1", "tree-kill": "^1.2.2", "tsconfig-paths": "^4.1.2", "tslib": "^2.3.0", "yaml": "^2.6.0", "yargs": "^17.6.2", "yargs-parser": "21.1.1" }, "optionalDependencies": { "@nx/nx-darwin-arm64": "21.5.1", "@nx/nx-darwin-x64": "21.5.1", "@nx/nx-freebsd-x64": "21.5.1", "@nx/nx-linux-arm-gnueabihf": "21.5.1", "@nx/nx-linux-arm64-gnu": "21.5.1", "@nx/nx-linux-arm64-musl": "21.5.1", "@nx/nx-linux-x64-gnu": "21.5.1", "@nx/nx-linux-x64-musl": "21.5.1", "@nx/nx-win32-arm64-msvc": "21.5.1", "@nx/nx-win32-x64-msvc": "21.5.1" }, "peerDependencies": { "@swc-node/register": "^1.8.0", "@swc/core": "^1.3.85" }, "optionalPeers": ["@swc-node/register", "@swc/core"], "bin": { "nx": "bin/nx.js", "nx-cloud": "bin/nx-cloud.js" } }, "sha512-DnWUrqMy2pNzPR6DYRVXZwiMyXrjJhUKEdEW0dGFUuHYYS7fOCfqSwj91Zr7LsAQ70WLOOY3z3+UAcQY4Dkr/A=="], - "pkg-dir/find-up/locate-path/p-locate": ["p-locate@4.1.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/p-locate/-/p-locate-4.1.0.tgz", { "dependencies": { "p-limit": "^2.2.0" } }, "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A=="], + "@abapify/asjson-parser/@nx/rollup/@nx/js/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "typescript-eslint/@typescript-eslint/utils/@typescript-eslint/scope-manager/@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.43.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@typescript-eslint/visitor-keys/-/visitor-keys-8.43.0.tgz", { "dependencies": { "@typescript-eslint/types": "8.43.0", "eslint-visitor-keys": "^4.2.1" } }, "sha512-T+S1KqRD4sg/bHfLwrpF/K3gQLBM1n7Rp7OjjikjTEssI2YJzQpi5WXoynOaQ93ERIuq3O8RBTOUYDKszUCEHw=="], + "@istanbuljs/load-nyc-config/find-up/locate-path/p-locate/p-limit": ["p-limit@2.3.0", "", { "dependencies": { "p-try": "^2.0.0" } }, "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="], - "verdaccio-audit/https-proxy-agent/agent-base/debug": ["debug@4.4.3", "https://jfrog.booking.com:443/artifactory/api/npm/npm/debug/-/debug-4.4.3.tgz", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + "@jest/core/jest-config/babel-jest/babel-preset-jest/babel-plugin-jest-hoist": ["babel-plugin-jest-hoist@30.0.1", "", { "dependencies": { "@babel/template": "^7.27.2", "@babel/types": "^7.27.3", "@types/babel__core": "^7.20.5" } }, "sha512-zTPME3pI50NsFW8ZBaVIOeAxzEY7XHlmWeXXu9srI+9kNfzCUTy8MFan46xOGZY8NZThMqq+e3qZUKsvXbasnQ=="], - "widest-line/string-width/strip-ansi/ansi-regex": ["ansi-regex@6.2.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-regex/-/ansi-regex-6.2.2.tgz", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], + "@jest/core/jest-config/jest-circus/@jest/expect/expect": ["expect@30.0.5", "", { "dependencies": { "@jest/expect-utils": "30.0.5", "@jest/get-type": "30.0.1", "jest-matcher-utils": "30.0.5", "jest-message-util": "30.0.5", "jest-mock": "30.0.5", "jest-util": "30.0.5" } }, "sha512-P0te2pt+hHI5qLJkIR+iMvS+lYUZml8rKKsohVHAGY+uClp9XVbdyYNJOIjSRpHVp8s8YqxJCiHUkSYZGr8rtQ=="], - "@abapify/asjson-parser/@nx/rollup/@nx/js/@nx/workspace/nx": ["nx@21.5.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/nx/-/nx-21.5.1.tgz", { "dependencies": { "@napi-rs/wasm-runtime": "0.2.4", "@yarnpkg/lockfile": "^1.1.0", "@yarnpkg/parsers": "3.0.2", "@zkochan/js-yaml": "0.0.7", "axios": "^1.8.3", "chalk": "^4.1.0", "cli-cursor": "3.1.0", "cli-spinners": "2.6.1", "cliui": "^8.0.1", "dotenv": "~16.4.5", "dotenv-expand": "~11.0.6", "enquirer": "~2.3.6", "figures": "3.2.0", "flat": "^5.0.2", "front-matter": "^4.0.2", "ignore": "^5.0.4", "jest-diff": "^30.0.2", "jsonc-parser": "3.2.0", "lines-and-columns": "2.0.3", "minimatch": "9.0.3", "node-machine-id": "1.1.12", "npm-run-path": "^4.0.1", "open": "^8.4.0", "ora": "5.3.0", "resolve.exports": "2.0.3", "semver": "^7.5.3", "string-width": "^4.2.3", "tar-stream": "~2.2.0", "tmp": "~0.2.1", "tree-kill": "^1.2.2", "tsconfig-paths": "^4.1.2", "tslib": "^2.3.0", "yaml": "^2.6.0", "yargs": "^17.6.2", "yargs-parser": "21.1.1" }, "optionalDependencies": { "@nx/nx-darwin-arm64": "21.5.1", "@nx/nx-darwin-x64": "21.5.1", "@nx/nx-freebsd-x64": "21.5.1", "@nx/nx-linux-arm-gnueabihf": "21.5.1", "@nx/nx-linux-arm64-gnu": "21.5.1", "@nx/nx-linux-arm64-musl": "21.5.1", "@nx/nx-linux-x64-gnu": "21.5.1", "@nx/nx-linux-x64-musl": "21.5.1", "@nx/nx-win32-arm64-msvc": "21.5.1", "@nx/nx-win32-x64-msvc": "21.5.1" }, "peerDependencies": { "@swc-node/register": "^1.8.0", "@swc/core": "^1.3.85" }, "optionalPeers": ["@swc-node/register", "@swc/core"], "bin": { "nx": "bin/nx.js", "nx-cloud": "bin/nx-cloud.js" } }, "sha512-DnWUrqMy2pNzPR6DYRVXZwiMyXrjJhUKEdEW0dGFUuHYYS7fOCfqSwj91Zr7LsAQ70WLOOY3z3+UAcQY4Dkr/A=="], + "@jest/core/jest-config/jest-circus/jest-matcher-utils/jest-diff": ["jest-diff@30.0.5", "", { "dependencies": { "@jest/diff-sequences": "30.0.1", "@jest/get-type": "30.0.1", "chalk": "^4.1.2", "pretty-format": "30.0.5" } }, "sha512-1UIqE9PoEKaHcIKvq2vbibrCog4Y8G0zmOxgQUVEiTqwR5hJVMCoDsN1vFvI5JvwD37hjueZ1C4l2FyGnfpE0A=="], - "@abapify/asjson-parser/@nx/rollup/@nx/js/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "@jest/environment-jsdom-abstract/@jest/fake-timers/jest-message-util/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "@istanbuljs/load-nyc-config/find-up/locate-path/p-locate/p-limit": ["p-limit@2.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/p-limit/-/p-limit-2.3.0.tgz", { "dependencies": { "p-try": "^2.0.0" } }, "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="], + "@jest/environment-jsdom-abstract/@jest/fake-timers/jest-message-util/pretty-format/ansi-styles": ["ansi-styles@5.2.0", "", {}, "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="], - "@jest/core/jest-config/babel-jest/babel-preset-jest/babel-plugin-jest-hoist": ["babel-plugin-jest-hoist@30.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.0.1.tgz", { "dependencies": { "@babel/template": "^7.27.2", "@babel/types": "^7.27.3", "@types/babel__core": "^7.20.5" } }, "sha512-zTPME3pI50NsFW8ZBaVIOeAxzEY7XHlmWeXXu9srI+9kNfzCUTy8MFan46xOGZY8NZThMqq+e3qZUKsvXbasnQ=="], + "@jest/environment/@jest/fake-timers/jest-message-util/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "@jest/core/jest-config/jest-circus/@jest/expect/expect": ["expect@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/expect/-/expect-30.0.5.tgz", { "dependencies": { "@jest/expect-utils": "30.0.5", "@jest/get-type": "30.0.1", "jest-matcher-utils": "30.0.5", "jest-message-util": "30.0.5", "jest-mock": "30.0.5", "jest-util": "30.0.5" } }, "sha512-P0te2pt+hHI5qLJkIR+iMvS+lYUZml8rKKsohVHAGY+uClp9XVbdyYNJOIjSRpHVp8s8YqxJCiHUkSYZGr8rtQ=="], + "@jest/environment/@jest/fake-timers/jest-message-util/pretty-format/ansi-styles": ["ansi-styles@5.2.0", "", {}, "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="], - "@jest/core/jest-config/jest-circus/jest-matcher-utils/jest-diff": ["jest-diff@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-diff/-/jest-diff-30.0.5.tgz", { "dependencies": { "@jest/diff-sequences": "30.0.1", "@jest/get-type": "30.0.1", "chalk": "^4.1.2", "pretty-format": "30.0.5" } }, "sha512-1UIqE9PoEKaHcIKvq2vbibrCog4Y8G0zmOxgQUVEiTqwR5hJVMCoDsN1vFvI5JvwD37hjueZ1C4l2FyGnfpE0A=="], + "@jest/globals/@jest/expect/expect/jest-matcher-utils/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "@jest/environment-jsdom-abstract/@jest/fake-timers/jest-message-util/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "@jest/globals/@jest/expect/expect/jest-matcher-utils/jest-diff": ["jest-diff@30.0.5", "", { "dependencies": { "@jest/diff-sequences": "30.0.1", "@jest/get-type": "30.0.1", "chalk": "^4.1.2", "pretty-format": "30.0.5" } }, "sha512-1UIqE9PoEKaHcIKvq2vbibrCog4Y8G0zmOxgQUVEiTqwR5hJVMCoDsN1vFvI5JvwD37hjueZ1C4l2FyGnfpE0A=="], - "@jest/environment-jsdom-abstract/@jest/fake-timers/jest-message-util/pretty-format/ansi-styles": ["ansi-styles@5.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-5.2.0.tgz", {}, "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="], + "@jest/globals/@jest/expect/expect/jest-matcher-utils/pretty-format": ["pretty-format@30.0.5", "", { "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", "react-is": "^18.3.1" } }, "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw=="], - "@jest/environment/@jest/fake-timers/jest-message-util/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "@jest/globals/@jest/expect/expect/jest-message-util/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "@jest/environment/@jest/fake-timers/jest-message-util/pretty-format/ansi-styles": ["ansi-styles@5.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-5.2.0.tgz", {}, "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="], + "@jest/globals/@jest/expect/expect/jest-message-util/pretty-format": ["pretty-format@30.0.5", "", { "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", "react-is": "^18.3.1" } }, "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw=="], - "@jest/globals/@jest/expect/expect/jest-matcher-utils/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "@typescript-eslint/eslint-plugin/@typescript-eslint/type-utils/@typescript-eslint/typescript-estree/@typescript-eslint/project-service/@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.56.1", "", { "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-qOtCYzKEeyr3aR9f28mPJqBty7+DBqsdd63eO0yyDwc6vgThj2UjWfJIcsFeSucYydqcuudMOprZ+x1SpF3ZuQ=="], - "@jest/globals/@jest/expect/expect/jest-matcher-utils/jest-diff": ["jest-diff@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-diff/-/jest-diff-30.0.5.tgz", { "dependencies": { "@jest/diff-sequences": "30.0.1", "@jest/get-type": "30.0.1", "chalk": "^4.1.2", "pretty-format": "30.0.5" } }, "sha512-1UIqE9PoEKaHcIKvq2vbibrCog4Y8G0zmOxgQUVEiTqwR5hJVMCoDsN1vFvI5JvwD37hjueZ1C4l2FyGnfpE0A=="], + "@typescript-eslint/eslint-plugin/@typescript-eslint/type-utils/@typescript-eslint/typescript-estree/@typescript-eslint/project-service/@typescript-eslint/types": ["@typescript-eslint/types@8.56.1", "", {}, "sha512-dbMkdIUkIkchgGDIv7KLUpa0Mda4IYjo4IAMJUZ+3xNoUXxMsk9YtKpTHSChRS85o+H9ftm51gsK1dZReY9CVw=="], - "@jest/globals/@jest/expect/expect/jest-matcher-utils/pretty-format": ["pretty-format@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/pretty-format/-/pretty-format-30.0.5.tgz", { "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", "react-is": "^18.3.1" } }, "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw=="], + "@typescript-eslint/eslint-plugin/@typescript-eslint/utils/@typescript-eslint/typescript-estree/@typescript-eslint/project-service/@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.56.1", "", { "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-qOtCYzKEeyr3aR9f28mPJqBty7+DBqsdd63eO0yyDwc6vgThj2UjWfJIcsFeSucYydqcuudMOprZ+x1SpF3ZuQ=="], - "@jest/globals/@jest/expect/expect/jest-message-util/chalk": ["chalk@4.1.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "@typescript-eslint/eslint-plugin/@typescript-eslint/utils/@typescript-eslint/typescript-estree/@typescript-eslint/project-service/@typescript-eslint/types": ["@typescript-eslint/types@8.56.1", "", {}, "sha512-dbMkdIUkIkchgGDIv7KLUpa0Mda4IYjo4IAMJUZ+3xNoUXxMsk9YtKpTHSChRS85o+H9ftm51gsK1dZReY9CVw=="], - "@jest/globals/@jest/expect/expect/jest-message-util/pretty-format": ["pretty-format@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/pretty-format/-/pretty-format-30.0.5.tgz", { "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", "react-is": "^18.3.1" } }, "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw=="], + "jest-cli/@jest/test-result/@jest/console/jest-message-util/pretty-format": ["pretty-format@30.0.5", "", { "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", "react-is": "^18.3.1" } }, "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw=="], - "jest-cli/@jest/test-result/@jest/console/jest-message-util/pretty-format": ["pretty-format@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/pretty-format/-/pretty-format-30.0.5.tgz", { "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", "react-is": "^18.3.1" } }, "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw=="], + "jest-cli/jest-config/@jest/test-sequencer/jest-haste-map/jest-worker": ["jest-worker@30.0.5", "", { "dependencies": { "@types/node": "*", "@ungap/structured-clone": "^1.3.0", "jest-util": "30.0.5", "merge-stream": "^2.0.0", "supports-color": "^8.1.1" } }, "sha512-ojRXsWzEP16NdUuBw/4H/zkZdHOa7MMYCk4E430l+8fELeLg/mqmMlRhjL7UNZvQrDmnovWZV4DxX03fZF48fQ=="], - "jest-cli/jest-config/@jest/test-sequencer/jest-haste-map/jest-worker": ["jest-worker@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-worker/-/jest-worker-30.0.5.tgz", { "dependencies": { "@types/node": "*", "@ungap/structured-clone": "^1.3.0", "jest-util": "30.0.5", "merge-stream": "^2.0.0", "supports-color": "^8.1.1" } }, "sha512-ojRXsWzEP16NdUuBw/4H/zkZdHOa7MMYCk4E430l+8fELeLg/mqmMlRhjL7UNZvQrDmnovWZV4DxX03fZF48fQ=="], + "jest-cli/jest-config/babel-jest/@jest/transform/jest-haste-map": ["jest-haste-map@30.0.5", "", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "anymatch": "^3.1.3", "fb-watchman": "^2.0.2", "graceful-fs": "^4.2.11", "jest-regex-util": "30.0.1", "jest-util": "30.0.5", "jest-worker": "30.0.5", "micromatch": "^4.0.8", "walker": "^1.0.8" }, "optionalDependencies": { "fsevents": "^2.3.3" } }, "sha512-dkmlWNlsTSR0nH3nRfW5BKbqHefLZv0/6LCccG0xFCTWcJu8TuEwG+5Cm75iBfjVoockmO6J35o5gxtFSn5xeg=="], - "jest-cli/jest-config/babel-jest/@jest/transform/jest-haste-map": ["jest-haste-map@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-haste-map/-/jest-haste-map-30.0.5.tgz", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "anymatch": "^3.1.3", "fb-watchman": "^2.0.2", "graceful-fs": "^4.2.11", "jest-regex-util": "30.0.1", "jest-util": "30.0.5", "jest-worker": "30.0.5", "micromatch": "^4.0.8", "walker": "^1.0.8" }, "optionalDependencies": { "fsevents": "^2.3.3" } }, "sha512-dkmlWNlsTSR0nH3nRfW5BKbqHefLZv0/6LCccG0xFCTWcJu8TuEwG+5Cm75iBfjVoockmO6J35o5gxtFSn5xeg=="], + "jest-cli/jest-config/babel-jest/babel-preset-jest/babel-plugin-jest-hoist": ["babel-plugin-jest-hoist@30.0.1", "", { "dependencies": { "@babel/template": "^7.27.2", "@babel/types": "^7.27.3", "@types/babel__core": "^7.20.5" } }, "sha512-zTPME3pI50NsFW8ZBaVIOeAxzEY7XHlmWeXXu9srI+9kNfzCUTy8MFan46xOGZY8NZThMqq+e3qZUKsvXbasnQ=="], - "jest-cli/jest-config/babel-jest/babel-preset-jest/babel-plugin-jest-hoist": ["babel-plugin-jest-hoist@30.0.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.0.1.tgz", { "dependencies": { "@babel/template": "^7.27.2", "@babel/types": "^7.27.3", "@types/babel__core": "^7.20.5" } }, "sha512-zTPME3pI50NsFW8ZBaVIOeAxzEY7XHlmWeXXu9srI+9kNfzCUTy8MFan46xOGZY8NZThMqq+e3qZUKsvXbasnQ=="], + "jest-cli/jest-config/jest-circus/@jest/expect/expect": ["expect@30.0.5", "", { "dependencies": { "@jest/expect-utils": "30.0.5", "@jest/get-type": "30.0.1", "jest-matcher-utils": "30.0.5", "jest-message-util": "30.0.5", "jest-mock": "30.0.5", "jest-util": "30.0.5" } }, "sha512-P0te2pt+hHI5qLJkIR+iMvS+lYUZml8rKKsohVHAGY+uClp9XVbdyYNJOIjSRpHVp8s8YqxJCiHUkSYZGr8rtQ=="], - "jest-cli/jest-config/jest-circus/@jest/expect/expect": ["expect@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/expect/-/expect-30.0.5.tgz", { "dependencies": { "@jest/expect-utils": "30.0.5", "@jest/get-type": "30.0.1", "jest-matcher-utils": "30.0.5", "jest-message-util": "30.0.5", "jest-mock": "30.0.5", "jest-util": "30.0.5" } }, "sha512-P0te2pt+hHI5qLJkIR+iMvS+lYUZml8rKKsohVHAGY+uClp9XVbdyYNJOIjSRpHVp8s8YqxJCiHUkSYZGr8rtQ=="], + "jest-cli/jest-config/jest-circus/jest-matcher-utils/jest-diff": ["jest-diff@30.0.5", "", { "dependencies": { "@jest/diff-sequences": "30.0.1", "@jest/get-type": "30.0.1", "chalk": "^4.1.2", "pretty-format": "30.0.5" } }, "sha512-1UIqE9PoEKaHcIKvq2vbibrCog4Y8G0zmOxgQUVEiTqwR5hJVMCoDsN1vFvI5JvwD37hjueZ1C4l2FyGnfpE0A=="], - "jest-cli/jest-config/jest-circus/jest-matcher-utils/jest-diff": ["jest-diff@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-diff/-/jest-diff-30.0.5.tgz", { "dependencies": { "@jest/diff-sequences": "30.0.1", "@jest/get-type": "30.0.1", "chalk": "^4.1.2", "pretty-format": "30.0.5" } }, "sha512-1UIqE9PoEKaHcIKvq2vbibrCog4Y8G0zmOxgQUVEiTqwR5hJVMCoDsN1vFvI5JvwD37hjueZ1C4l2FyGnfpE0A=="], + "jest-cli/jest-config/jest-environment-node/@jest/fake-timers/jest-message-util": ["jest-message-util@30.0.5", "", { "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.0.5", "@types/stack-utils": "^2.0.3", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "micromatch": "^4.0.8", "pretty-format": "30.0.5", "slash": "^3.0.0", "stack-utils": "^2.0.6" } }, "sha512-NAiDOhsK3V7RU0Aa/HnrQo+E4JlbarbmI3q6Pi4KcxicdtjV82gcIUrejOtczChtVQR4kddu1E1EJlW6EN9IyA=="], - "jest-cli/jest-config/jest-environment-node/@jest/fake-timers/jest-message-util": ["jest-message-util@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-message-util/-/jest-message-util-30.0.5.tgz", { "dependencies": { "@babel/code-frame": "^7.27.1", "@jest/types": "30.0.5", "@types/stack-utils": "^2.0.3", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "micromatch": "^4.0.8", "pretty-format": "30.0.5", "slash": "^3.0.0", "stack-utils": "^2.0.6" } }, "sha512-NAiDOhsK3V7RU0Aa/HnrQo+E4JlbarbmI3q6Pi4KcxicdtjV82gcIUrejOtczChtVQR4kddu1E1EJlW6EN9IyA=="], + "jest-cli/jest-config/jest-resolve/jest-haste-map/jest-worker": ["jest-worker@30.0.5", "", { "dependencies": { "@types/node": "*", "@ungap/structured-clone": "^1.3.0", "jest-util": "30.0.5", "merge-stream": "^2.0.0", "supports-color": "^8.1.1" } }, "sha512-ojRXsWzEP16NdUuBw/4H/zkZdHOa7MMYCk4E430l+8fELeLg/mqmMlRhjL7UNZvQrDmnovWZV4DxX03fZF48fQ=="], - "jest-cli/jest-config/jest-resolve/jest-haste-map/jest-worker": ["jest-worker@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-worker/-/jest-worker-30.0.5.tgz", { "dependencies": { "@types/node": "*", "@ungap/structured-clone": "^1.3.0", "jest-util": "30.0.5", "merge-stream": "^2.0.0", "supports-color": "^8.1.1" } }, "sha512-ojRXsWzEP16NdUuBw/4H/zkZdHOa7MMYCk4E430l+8fELeLg/mqmMlRhjL7UNZvQrDmnovWZV4DxX03fZF48fQ=="], + "jest-cli/jest-config/jest-runner/jest-worker/supports-color": ["supports-color@8.1.1", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], - "jest-cli/jest-config/jest-runner/jest-worker/supports-color": ["supports-color@8.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/supports-color/-/supports-color-8.1.1.tgz", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], + "jest-cli/jest-config/jest-runner/source-map-support/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], - "jest-cli/jest-config/jest-runner/source-map-support/source-map": ["source-map@0.6.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/source-map/-/source-map-0.6.1.tgz", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], + "jest-runtime/jest-resolve/jest-validate/pretty-format/ansi-styles": ["ansi-styles@5.2.0", "", {}, "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="], - "jest-runtime/jest-resolve/jest-validate/pretty-format/ansi-styles": ["ansi-styles@5.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-5.2.0.tgz", {}, "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="], + "jest-snapshot/@jest/transform/jest-haste-map/jest-worker/supports-color": ["supports-color@8.1.1", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], - "jest-snapshot/@jest/transform/jest-haste-map/jest-worker/supports-color": ["supports-color@8.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/supports-color/-/supports-color-8.1.1.tgz", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], + "jest-watcher/@jest/test-result/@jest/console/jest-message-util/pretty-format": ["pretty-format@30.0.5", "", { "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", "react-is": "^18.3.1" } }, "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw=="], - "jest-watcher/@jest/test-result/@jest/console/jest-message-util/pretty-format": ["pretty-format@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/pretty-format/-/pretty-format-30.0.5.tgz", { "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", "react-is": "^18.3.1" } }, "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw=="], + "pkg-dir/find-up/locate-path/p-locate/p-limit": ["p-limit@2.3.0", "", { "dependencies": { "p-try": "^2.0.0" } }, "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="], - "pkg-dir/find-up/locate-path/p-locate/p-limit": ["p-limit@2.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/p-limit/-/p-limit-2.3.0.tgz", { "dependencies": { "p-try": "^2.0.0" } }, "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="], + "unrun/rolldown/@rolldown/binding-wasm32-wasi/@napi-rs/wasm-runtime/@tybys/wasm-util": ["@tybys/wasm-util@0.10.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg=="], - "@abapify/asjson-parser/@nx/rollup/@nx/js/@nx/workspace/nx/@nx/nx-darwin-arm64": ["@nx/nx-darwin-arm64@21.5.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@nx/nx-darwin-arm64/-/nx-darwin-arm64-21.5.1.tgz", { "os": "darwin", "cpu": "arm64" }, "sha512-IygLfkQ9IlLG6UVlIdycGhXcK2uJynPwlQu6PcbprCc7iR7Y9QS62EJTDaIWoSIndyTZOL0vzTsucaGrTbW0iQ=="], + "@abapify/asjson-parser/@nx/rollup/@nx/js/@nx/workspace/nx/@nx/nx-darwin-arm64": ["@nx/nx-darwin-arm64@21.5.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-IygLfkQ9IlLG6UVlIdycGhXcK2uJynPwlQu6PcbprCc7iR7Y9QS62EJTDaIWoSIndyTZOL0vzTsucaGrTbW0iQ=="], - "@abapify/asjson-parser/@nx/rollup/@nx/js/@nx/workspace/nx/@nx/nx-darwin-x64": ["@nx/nx-darwin-x64@21.5.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@nx/nx-darwin-x64/-/nx-darwin-x64-21.5.1.tgz", { "os": "darwin", "cpu": "x64" }, "sha512-TuCv71+SSFkhvBtzK38m4zX5L2IssVN1pv7qYgQt/mu6GSShLowPnciIfd+1rLZ669Rnq6Nw19y6pLtrvrM6pg=="], + "@abapify/asjson-parser/@nx/rollup/@nx/js/@nx/workspace/nx/@nx/nx-darwin-x64": ["@nx/nx-darwin-x64@21.5.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-TuCv71+SSFkhvBtzK38m4zX5L2IssVN1pv7qYgQt/mu6GSShLowPnciIfd+1rLZ669Rnq6Nw19y6pLtrvrM6pg=="], - "@abapify/asjson-parser/@nx/rollup/@nx/js/@nx/workspace/nx/@nx/nx-freebsd-x64": ["@nx/nx-freebsd-x64@21.5.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@nx/nx-freebsd-x64/-/nx-freebsd-x64-21.5.1.tgz", { "os": "freebsd", "cpu": "x64" }, "sha512-degNAUzVQvgbGHbaXhuVS9I7EgeClQ3tkUUXw40eiO/q6GQx8DeVzIFM40dD2qHmWXGX4UVrF0u0QvkdOreapA=="], + "@abapify/asjson-parser/@nx/rollup/@nx/js/@nx/workspace/nx/@nx/nx-freebsd-x64": ["@nx/nx-freebsd-x64@21.5.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-degNAUzVQvgbGHbaXhuVS9I7EgeClQ3tkUUXw40eiO/q6GQx8DeVzIFM40dD2qHmWXGX4UVrF0u0QvkdOreapA=="], - "@abapify/asjson-parser/@nx/rollup/@nx/js/@nx/workspace/nx/@nx/nx-linux-arm-gnueabihf": ["@nx/nx-linux-arm-gnueabihf@21.5.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-21.5.1.tgz", { "os": "linux", "cpu": "arm" }, "sha512-t/EFYOdFs9uzWHjhU+QfmBOcbPpx1/svT5G5Xy+kRt+lxSISQSe7ysEypfJPCBr5m71sV4ZEOdVAuMnf5sak2g=="], + "@abapify/asjson-parser/@nx/rollup/@nx/js/@nx/workspace/nx/@nx/nx-linux-arm-gnueabihf": ["@nx/nx-linux-arm-gnueabihf@21.5.1", "", { "os": "linux", "cpu": "arm" }, "sha512-t/EFYOdFs9uzWHjhU+QfmBOcbPpx1/svT5G5Xy+kRt+lxSISQSe7ysEypfJPCBr5m71sV4ZEOdVAuMnf5sak2g=="], - "@abapify/asjson-parser/@nx/rollup/@nx/js/@nx/workspace/nx/@nx/nx-linux-arm64-gnu": ["@nx/nx-linux-arm64-gnu@21.5.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-21.5.1.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-OubBjD8BN11nEjrHCno5EOXs6iUOgvfStsqQ/90sN8856PTh1uM86tklUi68Xx8dgMAc2nUrFqqlOL2KYT8t/w=="], + "@abapify/asjson-parser/@nx/rollup/@nx/js/@nx/workspace/nx/@nx/nx-linux-arm64-gnu": ["@nx/nx-linux-arm64-gnu@21.5.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-OubBjD8BN11nEjrHCno5EOXs6iUOgvfStsqQ/90sN8856PTh1uM86tklUi68Xx8dgMAc2nUrFqqlOL2KYT8t/w=="], - "@abapify/asjson-parser/@nx/rollup/@nx/js/@nx/workspace/nx/@nx/nx-linux-arm64-musl": ["@nx/nx-linux-arm64-musl@21.5.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-21.5.1.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-11mPv4uW/IqgIH3p2QHt7GZd3hrAE3MDJNZvo1Zj0O7o4ukWh/G7GHEQzAqYe4qdm91TOHNCkKJihSf8Ha3DBg=="], + "@abapify/asjson-parser/@nx/rollup/@nx/js/@nx/workspace/nx/@nx/nx-linux-arm64-musl": ["@nx/nx-linux-arm64-musl@21.5.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-11mPv4uW/IqgIH3p2QHt7GZd3hrAE3MDJNZvo1Zj0O7o4ukWh/G7GHEQzAqYe4qdm91TOHNCkKJihSf8Ha3DBg=="], - "@abapify/asjson-parser/@nx/rollup/@nx/js/@nx/workspace/nx/@nx/nx-linux-x64-gnu": ["@nx/nx-linux-x64-gnu@21.5.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-21.5.1.tgz", { "os": "linux", "cpu": "x64" }, "sha512-b0eN0bZAq4qIa849CO1gjpvAM14safR8e7l0nMFUcB0llNGyA3C8SStQ03nw6+HuXwzEhIWVnHrJhvJPmPZ8KQ=="], + "@abapify/asjson-parser/@nx/rollup/@nx/js/@nx/workspace/nx/@nx/nx-linux-x64-gnu": ["@nx/nx-linux-x64-gnu@21.5.1", "", { "os": "linux", "cpu": "x64" }, "sha512-b0eN0bZAq4qIa849CO1gjpvAM14safR8e7l0nMFUcB0llNGyA3C8SStQ03nw6+HuXwzEhIWVnHrJhvJPmPZ8KQ=="], - "@abapify/asjson-parser/@nx/rollup/@nx/js/@nx/workspace/nx/@nx/nx-linux-x64-musl": ["@nx/nx-linux-x64-musl@21.5.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-21.5.1.tgz", { "os": "linux", "cpu": "x64" }, "sha512-DjMtLCDLhJgAoFaEme8/+5jENd11k6cddYXzs04zd0GG+5TggQHLo9LwtkuYf8BFi1v8XrpYLo0V647YLncAXg=="], + "@abapify/asjson-parser/@nx/rollup/@nx/js/@nx/workspace/nx/@nx/nx-linux-x64-musl": ["@nx/nx-linux-x64-musl@21.5.1", "", { "os": "linux", "cpu": "x64" }, "sha512-DjMtLCDLhJgAoFaEme8/+5jENd11k6cddYXzs04zd0GG+5TggQHLo9LwtkuYf8BFi1v8XrpYLo0V647YLncAXg=="], - "@abapify/asjson-parser/@nx/rollup/@nx/js/@nx/workspace/nx/@nx/nx-win32-arm64-msvc": ["@nx/nx-win32-arm64-msvc@21.5.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-21.5.1.tgz", { "os": "win32", "cpu": "arm64" }, "sha512-H15phBFnx33GTJnuJom3lnjb18tt/87E26mZuJoxwIPdFVkCmUKiB5YP6rA7lIknzPD1mkCE1E6zFIjnIuNQyQ=="], + "@abapify/asjson-parser/@nx/rollup/@nx/js/@nx/workspace/nx/@nx/nx-win32-arm64-msvc": ["@nx/nx-win32-arm64-msvc@21.5.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-H15phBFnx33GTJnuJom3lnjb18tt/87E26mZuJoxwIPdFVkCmUKiB5YP6rA7lIknzPD1mkCE1E6zFIjnIuNQyQ=="], - "@abapify/asjson-parser/@nx/rollup/@nx/js/@nx/workspace/nx/@nx/nx-win32-x64-msvc": ["@nx/nx-win32-x64-msvc@21.5.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-21.5.1.tgz", { "os": "win32", "cpu": "x64" }, "sha512-bKw/CDrtRMm8J+IslPOdFaCaEeGaWWo6CSUqnlfM3hXaWYJMamsWfmbUfzipAcYCq2BJ8/IEcJ41K7ANpVdq1w=="], + "@abapify/asjson-parser/@nx/rollup/@nx/js/@nx/workspace/nx/@nx/nx-win32-x64-msvc": ["@nx/nx-win32-x64-msvc@21.5.1", "", { "os": "win32", "cpu": "x64" }, "sha512-bKw/CDrtRMm8J+IslPOdFaCaEeGaWWo6CSUqnlfM3hXaWYJMamsWfmbUfzipAcYCq2BJ8/IEcJ41K7ANpVdq1w=="], - "@abapify/asjson-parser/@nx/rollup/@nx/js/@nx/workspace/nx/open": ["open@8.4.2", "https://jfrog.booking.com:443/artifactory/api/npm/npm/open/-/open-8.4.2.tgz", { "dependencies": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", "is-wsl": "^2.2.0" } }, "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ=="], + "@abapify/asjson-parser/@nx/rollup/@nx/js/@nx/workspace/nx/open": ["open@8.4.2", "", { "dependencies": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", "is-wsl": "^2.2.0" } }, "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ=="], - "@jest/core/jest-config/jest-circus/@jest/expect/expect/@jest/expect-utils": ["@jest/expect-utils@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/expect-utils/-/expect-utils-30.0.5.tgz", { "dependencies": { "@jest/get-type": "30.0.1" } }, "sha512-F3lmTT7CXWYywoVUGTCmom0vXq3HTTkaZyTAzIy+bXSBizB7o5qzlC9VCtq0arOa8GqmNsbg/cE9C6HLn7Szew=="], + "@jest/core/jest-config/jest-circus/@jest/expect/expect/@jest/expect-utils": ["@jest/expect-utils@30.0.5", "", { "dependencies": { "@jest/get-type": "30.0.1" } }, "sha512-F3lmTT7CXWYywoVUGTCmom0vXq3HTTkaZyTAzIy+bXSBizB7o5qzlC9VCtq0arOa8GqmNsbg/cE9C6HLn7Szew=="], - "@jest/core/jest-config/jest-circus/@jest/expect/expect/jest-mock": ["jest-mock@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-mock/-/jest-mock-30.0.5.tgz", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "jest-util": "30.0.5" } }, "sha512-Od7TyasAAQX/6S+QCbN6vZoWOMwlTtzzGuxJku1GhGanAjz9y+QsQkpScDmETvdc9aSXyJ/Op4rhpMYBWW91wQ=="], + "@jest/core/jest-config/jest-circus/@jest/expect/expect/jest-mock": ["jest-mock@30.0.5", "", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "jest-util": "30.0.5" } }, "sha512-Od7TyasAAQX/6S+QCbN6vZoWOMwlTtzzGuxJku1GhGanAjz9y+QsQkpScDmETvdc9aSXyJ/Op4rhpMYBWW91wQ=="], - "@jest/globals/@jest/expect/expect/jest-matcher-utils/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "@jest/globals/@jest/expect/expect/jest-matcher-utils/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "@jest/globals/@jest/expect/expect/jest-matcher-utils/pretty-format/ansi-styles": ["ansi-styles@5.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-5.2.0.tgz", {}, "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="], + "@jest/globals/@jest/expect/expect/jest-matcher-utils/pretty-format/ansi-styles": ["ansi-styles@5.2.0", "", {}, "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="], - "@jest/globals/@jest/expect/expect/jest-message-util/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "@jest/globals/@jest/expect/expect/jest-message-util/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "@jest/globals/@jest/expect/expect/jest-message-util/pretty-format/ansi-styles": ["ansi-styles@5.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-5.2.0.tgz", {}, "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="], + "@jest/globals/@jest/expect/expect/jest-message-util/pretty-format/ansi-styles": ["ansi-styles@5.2.0", "", {}, "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="], - "jest-cli/@jest/test-result/@jest/console/jest-message-util/pretty-format/ansi-styles": ["ansi-styles@5.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-5.2.0.tgz", {}, "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="], + "jest-cli/@jest/test-result/@jest/console/jest-message-util/pretty-format/ansi-styles": ["ansi-styles@5.2.0", "", {}, "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="], - "jest-cli/jest-config/@jest/test-sequencer/jest-haste-map/jest-worker/supports-color": ["supports-color@8.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/supports-color/-/supports-color-8.1.1.tgz", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], + "jest-cli/jest-config/@jest/test-sequencer/jest-haste-map/jest-worker/supports-color": ["supports-color@8.1.1", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], - "jest-cli/jest-config/babel-jest/@jest/transform/jest-haste-map/jest-worker": ["jest-worker@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-worker/-/jest-worker-30.0.5.tgz", { "dependencies": { "@types/node": "*", "@ungap/structured-clone": "^1.3.0", "jest-util": "30.0.5", "merge-stream": "^2.0.0", "supports-color": "^8.1.1" } }, "sha512-ojRXsWzEP16NdUuBw/4H/zkZdHOa7MMYCk4E430l+8fELeLg/mqmMlRhjL7UNZvQrDmnovWZV4DxX03fZF48fQ=="], + "jest-cli/jest-config/babel-jest/@jest/transform/jest-haste-map/jest-worker": ["jest-worker@30.0.5", "", { "dependencies": { "@types/node": "*", "@ungap/structured-clone": "^1.3.0", "jest-util": "30.0.5", "merge-stream": "^2.0.0", "supports-color": "^8.1.1" } }, "sha512-ojRXsWzEP16NdUuBw/4H/zkZdHOa7MMYCk4E430l+8fELeLg/mqmMlRhjL7UNZvQrDmnovWZV4DxX03fZF48fQ=="], - "jest-cli/jest-config/jest-circus/@jest/expect/expect/@jest/expect-utils": ["@jest/expect-utils@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/@jest/expect-utils/-/expect-utils-30.0.5.tgz", { "dependencies": { "@jest/get-type": "30.0.1" } }, "sha512-F3lmTT7CXWYywoVUGTCmom0vXq3HTTkaZyTAzIy+bXSBizB7o5qzlC9VCtq0arOa8GqmNsbg/cE9C6HLn7Szew=="], + "jest-cli/jest-config/jest-circus/@jest/expect/expect/@jest/expect-utils": ["@jest/expect-utils@30.0.5", "", { "dependencies": { "@jest/get-type": "30.0.1" } }, "sha512-F3lmTT7CXWYywoVUGTCmom0vXq3HTTkaZyTAzIy+bXSBizB7o5qzlC9VCtq0arOa8GqmNsbg/cE9C6HLn7Szew=="], - "jest-cli/jest-config/jest-circus/@jest/expect/expect/jest-mock": ["jest-mock@30.0.5", "https://jfrog.booking.com:443/artifactory/api/npm/npm/jest-mock/-/jest-mock-30.0.5.tgz", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "jest-util": "30.0.5" } }, "sha512-Od7TyasAAQX/6S+QCbN6vZoWOMwlTtzzGuxJku1GhGanAjz9y+QsQkpScDmETvdc9aSXyJ/Op4rhpMYBWW91wQ=="], + "jest-cli/jest-config/jest-circus/@jest/expect/expect/jest-mock": ["jest-mock@30.0.5", "", { "dependencies": { "@jest/types": "30.0.5", "@types/node": "*", "jest-util": "30.0.5" } }, "sha512-Od7TyasAAQX/6S+QCbN6vZoWOMwlTtzzGuxJku1GhGanAjz9y+QsQkpScDmETvdc9aSXyJ/Op4rhpMYBWW91wQ=="], - "jest-cli/jest-config/jest-resolve/jest-haste-map/jest-worker/supports-color": ["supports-color@8.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/supports-color/-/supports-color-8.1.1.tgz", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], + "jest-cli/jest-config/jest-resolve/jest-haste-map/jest-worker/supports-color": ["supports-color@8.1.1", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], - "jest-watcher/@jest/test-result/@jest/console/jest-message-util/pretty-format/ansi-styles": ["ansi-styles@5.2.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-5.2.0.tgz", {}, "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="], + "jest-watcher/@jest/test-result/@jest/console/jest-message-util/pretty-format/ansi-styles": ["ansi-styles@5.2.0", "", {}, "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="], - "@abapify/asjson-parser/@nx/rollup/@nx/js/@nx/workspace/nx/open/define-lazy-prop": ["define-lazy-prop@2.0.0", "https://jfrog.booking.com:443/artifactory/api/npm/npm/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", {}, "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og=="], + "@abapify/asjson-parser/@nx/rollup/@nx/js/@nx/workspace/nx/open/define-lazy-prop": ["define-lazy-prop@2.0.0", "", {}, "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og=="], - "jest-cli/jest-config/babel-jest/@jest/transform/jest-haste-map/jest-worker/supports-color": ["supports-color@8.1.1", "https://jfrog.booking.com:443/artifactory/api/npm/npm/supports-color/-/supports-color-8.1.1.tgz", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], + "jest-cli/jest-config/babel-jest/@jest/transform/jest-haste-map/jest-worker/supports-color": ["supports-color@8.1.1", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], } } diff --git a/docs/architecture/adk-overview.md b/docs/architecture/adk-overview.md index 6b5d41f6..8426e598 100644 --- a/docs/architecture/adk-overview.md +++ b/docs/architecture/adk-overview.md @@ -203,7 +203,7 @@ class AdkFactory { */ createWithLazySegments( adtObject: AdtObject, - segmentLoader: (uri: string) => Promise + segmentLoader: (uri: string) => Promise, ): AdkObject { // Create object with lazy content loaders } @@ -258,7 +258,7 @@ async function serializeClass(classObj: Class, outputDir: string) { // Main class file await writeFile( `${outputDir}/${classObj.name}.clas.abap`, - classObj.spec.source.mainSource + classObj.spec.source.mainSource, ); // Includes (lazy loaded) @@ -272,7 +272,7 @@ async function serializeClass(classObj: Class, outputDir: string) { // Write segment file await writeFile( `${outputDir}/${classObj.name}.clas.${include.includeType}.abap`, - content + content, ); } } @@ -411,7 +411,7 @@ describe('ADK Integration', () => { // 4. Verify files expect(fs.existsSync(`${outputDir}/zcl_test.clas.abap`)).toBe(true); expect(fs.existsSync(`${outputDir}/zcl_test.clas.locals_def.abap`)).toBe( - true + true, ); }); }); diff --git a/docs/architecture/plugin-system.md b/docs/architecture/plugin-system.md index 3b84f0ae..84350fea 100644 --- a/docs/architecture/plugin-system.md +++ b/docs/architecture/plugin-system.md @@ -9,13 +9,11 @@ The ADT CLI now implements a plugin-based configuration system where format hand ### Core Components 1. **Format Registry** (`/lib/formats/format-registry.ts`) - - Manages format plugins (OAT, abapGit, etc.) - Auto-registers available object types from ObjectRegistry - Provides unified interface for format operations 2. **Object Registry** (`/lib/objects/registry.ts`) - - Manages object type handlers using ADK adapters - Currently supports: CLAS, INTF, DOMA - Uses ADK bridge for type-safe operations diff --git a/docs/changelogs/2024-12-13-0056-circular-ref-fix.md b/docs/changelogs/2024-12-13-0056-circular-ref-fix.md index 711bf74c..3db4356f 100644 --- a/docs/changelogs/2024-12-13-0056-circular-ref-fix.md +++ b/docs/changelogs/2024-12-13-0056-circular-ref-fix.md @@ -13,7 +13,7 @@ flowchart LR Schema --> |resolve| Resolved[Resolved Schema] Resolved --> |codegen| TS[TypeScript] end - + subgraph "Key Components" R[Resolver] --> |merges imports| Resolved R --> |expands inheritance| Resolved @@ -32,10 +32,12 @@ flowchart LR **What changed**: Added cycle detection in `expandTypeToString` function to prevent stack overflow on circular type references. **Before → After**: + - **Before**: Interface lookups and base type expansion didn't track visited types, causing infinite recursion on complex schemas - **After**: Added `visited` set tracking for interface name lookups and base type expansion **Key decisions**: + - Return `unknown` when cycle detected (safe fallback) - Track by type name/text representation for reliable cycle detection @@ -44,10 +46,12 @@ flowchart LR **What changed**: Regenerated all 36 type files with new flattening logic. **Before → After**: + - **Before**: Union types with unrelated alternatives (e.g., `| { mainObject } | { link }`) - **After**: Single object type for root element only (cleaner, more correct) **Key decisions**: + - Keep simpler generated types (5701 lines removed, 1916 added) - All 44 tests still pass - no regressions @@ -56,10 +60,12 @@ flowchart LR **What changed**: Updated documentation to reflect complete architecture. **Before → After**: + - **Before**: Missing resolver, traverser, loader, schema-like components - **After**: Complete architecture with all modules documented **Key decisions**: + - Added Key Components table (Resolver, Traverser, Walker, Loader) - Removed obsolete speci reference - Added adt-contracts and adt-plugin-abapgit to Related Packages @@ -69,11 +75,11 @@ flowchart LR ## Challenges & Resolutions -| Challenge | Resolution | -|-----------|------------| +| Challenge | Resolution | +| ------------------------------------------------------- | ------------------------------------------------------------------------------------------- | | Stack overflow on complex SAP ADT schemas (13 failures) | Added cycle detection in `expandTypeToString` for interface lookups and base type expansion | -| `typeName` variable out of scope in base type fallback | Used `textRepr` as cycle key instead | -| Generated types changed significantly | Verified all tests pass (adt-schemas: 44, adt-contracts: 172, adt-plugin-abapgit: 36) | +| `typeName` variable out of scope in base type fallback | Used `textRepr` as cycle key instead | +| Generated types changed significantly | Verified all tests pass (adt-schemas: 44, adt-contracts: 172, adt-plugin-abapgit: 36) | ## Open Points @@ -91,4 +97,5 @@ flowchart LR - Package: `@abapify/adt-schemas` --- -*Generated by: Cascade via `/log` workflow* + +_Generated by: Cascade via `/log` workflow_ diff --git a/docs/ci-cd-setup.md b/docs/ci-cd-setup.md index 9435d49d..65c3460f 100644 --- a/docs/ci-cd-setup.md +++ b/docs/ci-cd-setup.md @@ -329,17 +329,14 @@ checkout → setup → install → format-check → affected-tasks → fix-ci ### Common Issues 1. **EventEmitter Memory Leak** - - **Symptom**: `MaxListenersExceededWarning` in CI logs - **Solution**: Reduce `--parallel` value in CI workflow 2. **Test Hanging** - - **Symptom**: Tests don't complete, show "press q to quit" - **Solution**: Ensure `watch: false` in vitest config 3. **Module Resolution Errors** - - **Symptom**: Cannot resolve package imports - **Solution**: Verify package.json exports match build output diff --git a/docs/examples/intelligent-adk-usage.md b/docs/examples/intelligent-adk-usage.md index 9780eccd..3648e252 100644 --- a/docs/examples/intelligent-adk-usage.md +++ b/docs/examples/intelligent-adk-usage.md @@ -86,7 +86,7 @@ if (domainObj.kind === 'Domain') { class EnhancedOatPlugin implements FormatPlugin { async serialize( objects: AdkObjectBase[], - targetPath: string + targetPath: string, ): Promise { for (const obj of objects) { // Get all source files for the object @@ -113,7 +113,7 @@ class EnhancedOatPlugin implements FormatPlugin { classObj, sourceFiles, enhancedMetadata, - targetPath + targetPath, ); } diff --git a/docs/migration/v1-to-v2-status.md b/docs/migration/v1-to-v2-status.md index d63aaf99..d3bfaf10 100644 --- a/docs/migration/v1-to-v2-status.md +++ b/docs/migration/v1-to-v2-status.md @@ -136,6 +136,7 @@ export type { Priority order based on usage: 1. **Lock/Unlock** (2 commands depend on this) + ```typescript // @abapify/adt-contracts export const lockContract = { @@ -145,6 +146,7 @@ Priority order based on usage: ``` 2. **Source Operations** (deploy command) + ```typescript // @abapify/adt-contracts export const sourceContract = { @@ -154,6 +156,7 @@ Priority order based on usage: ``` 3. **ATC Service** (atc command) + ```typescript // @abapify/adt-contracts export const atcContract = { @@ -172,6 +175,7 @@ For each command using v1: 1. Check if required contract exists in v2 2. Update imports: + ```typescript // Remove import { AdtClientImpl } from '@abapify/adt-client'; @@ -179,6 +183,7 @@ For each command using v1: // Add import { getAdtClientV2 } from '../utils/adt-client-v2'; ``` + 3. Update API calls to use contract-based approach 4. Test thoroughly 5. Remove v1 import @@ -186,6 +191,7 @@ For each command using v1: ### Phase 4: Extract Logger Utilities Move `createLogger` and `createFileLogger` from v1 to either: + - `@abapify/logger` (if generally useful) - `@abapify/adt-cli/utils` (if CLI-specific) diff --git a/docs/planning/abap-code-review.md b/docs/planning/abap-code-review.md index ec4260f3..8ae2313c 100644 --- a/docs/planning/abap-code-review.md +++ b/docs/planning/abap-code-review.md @@ -36,7 +36,6 @@ Implement a complete CI/CD pipeline for ABAP code review using transport request ### 📋 Backlog - **[#7] CI/CD Platform Templates** - Integration templates for major platforms - - Status: `status:backlog` - Dependencies: Core pipeline stages - Estimated effort: 1-2 days diff --git a/docs/planning/current-sprint.md b/docs/planning/current-sprint.md index 2d5edec3..4ed56890 100644 --- a/docs/planning/current-sprint.md +++ b/docs/planning/current-sprint.md @@ -7,7 +7,6 @@ ### ✅ Recently Completed - **ADT CLI Decoupling** - Split ADT CLI into CLI + Client components ✅ COMPLETED - - ✅ Created new @abapify/adt-client package with complete service layer architecture - ✅ Extracted and refactored connection logic (AuthManager, ConnectionManager, SessionManager) - ✅ Implemented high-level service abstractions (ObjectService, SearchService, TransportService, SystemService) @@ -16,7 +15,6 @@ - ✅ Plugin architecture updates completed - **ADT CLI Logging System Refactoring** - Unified logging architecture ✅ COMPLETED (Jan 9, 2025) - - ✅ Eliminated dual logging system complexity (ADT_CLI_MODE approach) - ✅ Unified to use pino consistently with transport-based configuration - ✅ Fixed pino-pretty usage according to official documentation @@ -26,7 +24,6 @@ - ✅ Created comprehensive specification for logging patterns - **Browser Opening Fix** - OAuth authentication browser integration ✅ COMPLETED (Sep 16, 2025) - - ✅ Fixed browser opening issues in container environment - ✅ Implemented correct `open` package API usage with `app.name` option - ✅ Integrated with Windsurf's BROWSER environment variable @@ -59,7 +56,6 @@ _Ready for next phase implementation_ ### High Priority 1. **Transport Import Implementation** (#3) ✅ COMPLETED - - [x] ADT API integration for transport object retrieval - [x] ADK integration for type-safe object serialization - [x] OAT format output generation diff --git a/docs/planning/roadmap.md b/docs/planning/roadmap.md index 0dc3bf7a..77927bc1 100644 --- a/docs/planning/roadmap.md +++ b/docs/planning/roadmap.md @@ -42,7 +42,6 @@ Create a platform-agnostic, developer-friendly CI/CD pipeline for ABAP code revi #### Features - [ ] **CI/CD Templates** (#7) - - GitLab CI/CD complete template - GitHub Actions workflow template - Azure DevOps pipeline template @@ -67,7 +66,6 @@ Create a platform-agnostic, developer-friendly CI/CD pipeline for ABAP code revi #### Features - [ ] **Delta Analysis Stage** (#6) - - Transport content comparison - Change impact analysis - Visual diff generation @@ -91,13 +89,11 @@ Create a platform-agnostic, developer-friendly CI/CD pipeline for ABAP code revi #### Features - [ ] **Performance Optimization** - - Parallel processing for large transports - Intelligent caching strategies - Resource usage optimization - [ ] **Enterprise Features** - - Custom rule sets and quality gates - Audit trail and compliance reporting - Integration with external quality tools diff --git a/docs/specs/abapgit-serialization.md b/docs/specs/abapgit-serialization.md index d5d81068..21c1291d 100644 --- a/docs/specs/abapgit-serialization.md +++ b/docs/specs/abapgit-serialization.md @@ -88,12 +88,12 @@ interface FormatPlugin { serialize( objects: AdkObject[], targetPath: string, - options?: SerializeOptions + options?: SerializeOptions, ): Promise; deserialize( sourcePath: string, - options?: DeserializeOptions + options?: DeserializeOptions, ): Promise; getSupportedObjectTypes(): string[]; @@ -249,12 +249,12 @@ export class AbapGitPlugin implements FormatPlugin { async serialize( objects: AdkObject[], targetPath: string, - options?: SerializeOptions + options?: SerializeOptions, ): Promise; async deserialize( sourcePath: string, - options?: DeserializeOptions + options?: DeserializeOptions, ): Promise; getSupportedObjectTypes(): string[]; diff --git a/docs/specs/adk-factory.md b/docs/specs/adk-factory.md index 28536e82..e7de0818 100644 --- a/docs/specs/adk-factory.md +++ b/docs/specs/adk-factory.md @@ -57,7 +57,7 @@ interface AdkFactory { */ createFromAdt( adtResponse: AdtResponse, - options?: FactoryOptions + options?: FactoryOptions, ): Promise; /** @@ -92,7 +92,7 @@ Each object type has a dedicated factory: class ClassFactory { create( adtResponse: AdtResponse, - options: FactoryOptions + options: FactoryOptions, ): Promise { // Parse ADT XML const parsed = this.parseClassXml(adtResponse.metadata); @@ -117,7 +117,7 @@ class ClassFactory { private createIncludes( adtIncludes: AdtInclude[], - options: FactoryOptions + options: FactoryOptions, ): ClassInclude[] { return adtIncludes.map((inc) => ({ includeType: this.mapIncludeType(inc.type), @@ -157,7 +157,7 @@ class FactoryError extends Error { message: string, public readonly objectType: string, public readonly objectName: string, - public readonly cause?: Error + public readonly cause?: Error, ) { super(message); this.name = 'FactoryError'; @@ -170,7 +170,7 @@ try { } catch (error) { if (error instanceof FactoryError) { console.error( - `Failed to create ${error.objectType} ${error.objectName}: ${error.message}` + `Failed to create ${error.objectType} ${error.objectName}: ${error.message}`, ); } } @@ -218,7 +218,7 @@ packages/adt-client/src/factories/ abstract class BaseFactory { abstract create( adtResponse: AdtResponse, - options: FactoryOptions + options: FactoryOptions, ): Promise; protected parseXml(xml: string): any { @@ -233,7 +233,7 @@ abstract class BaseFactory { class ClassFactory extends BaseFactory { async create( response: AdtResponse, - options: FactoryOptions + options: FactoryOptions, ): Promise { // Class-specific creation logic } @@ -242,7 +242,7 @@ class ClassFactory extends BaseFactory { class InterfaceFactory extends BaseFactory { async create( response: AdtResponse, - options: FactoryOptions + options: FactoryOptions, ): Promise { // Interface-specific creation logic } @@ -265,7 +265,7 @@ export class AdkFactory { async createFromAdt( response: AdtResponse, - options?: FactoryOptions + options?: FactoryOptions, ): Promise { const factory = this.factories.get(response.type); @@ -416,7 +416,7 @@ const adkObject = await adkFactory.createFromAdt( { lazyLoad: true, fetchContent: (uri) => adtClient.request(uri), - } + }, ); // Use in plugin @@ -481,7 +481,7 @@ describe('AdkFactory Integration', () => { }, { fetchContent: (uri) => adtClient.request(uri), - } + }, ); // Verify structure diff --git a/docs/specs/adk/README.md b/docs/specs/adk/README.md index 3a314d7e..963c1fd3 100644 --- a/docs/specs/adk/README.md +++ b/docs/specs/adk/README.md @@ -142,7 +142,7 @@ class AdkObjectHandler> { constructor( private client: AdtClient, private parser: (xml: string) => T, - private urlBuilder: (name: string) => string + private urlBuilder: (name: string) => string, ) {} } @@ -153,8 +153,8 @@ this.handlers.set( new AdkObjectHandler( client, (xml) => ClassAdtAdapter.fromAdtXML(xml), - (name) => `/sap/bc/adt/oo/classes/${name.toLowerCase()}` - ) + (name) => `/sap/bc/adt/oo/classes/${name.toLowerCase()}`, + ), ); ``` @@ -232,7 +232,7 @@ Create new adapter base classes following the same pattern: ```typescript abstract class AbapGitAdapter< - T extends Spec + T extends Spec, > extends BaseAdapter { abstract toAbapGit(): string; static abstract fromAbapGit(content: string): TSpec; diff --git a/docs/specs/adk/intelligent-object-factory.md b/docs/specs/adk/intelligent-object-factory.md index d96bfdb0..6fefffcc 100644 --- a/docs/specs/adk/intelligent-object-factory.md +++ b/docs/specs/adk/intelligent-object-factory.md @@ -102,7 +102,7 @@ class AdkObjectFactory { async create( objectType: string, objectName: string, - packageName?: string + packageName?: string, ): Promise { // 1. Fetch object XML from ADT client const xml = await this.fetchObjectXml(objectType, objectName, packageName); @@ -117,7 +117,7 @@ class AdkObjectFactory { private async fetchObjectXml( objectType: string, objectName: string, - packageName?: string + packageName?: string, ): Promise { // Use ADT client to fetch object definition // Handle different object types with appropriate ADT endpoints @@ -126,7 +126,7 @@ class AdkObjectFactory { private createTypedObject( objectType: string, metadata: ObjectMetadata, - xml: string + xml: string, ): AdkObjectBase { switch (objectType) { case 'Class': @@ -151,7 +151,7 @@ class ClassObjectImpl implements ClassObject { constructor( private metadata: ObjectMetadata, private rawXml: string, - private adtClient: AdtClient + private adtClient: AdtClient, ) {} get name(): string { @@ -212,7 +212,7 @@ class OatPlugin implements FormatPlugin { async serialize( objects: AdkObjectBase[], targetPath: string, - options?: SerializeOptions + options?: SerializeOptions, ): Promise { for (const obj of objects) { // Use object-specific methods diff --git a/docs/specs/adk/redesigned-object-architecture.md b/docs/specs/adk/redesigned-object-architecture.md index 90315813..857ce64b 100644 --- a/docs/specs/adk/redesigned-object-architecture.md +++ b/docs/specs/adk/redesigned-object-architecture.md @@ -41,7 +41,7 @@ interface ObjectTypeRegistry { objectType: string, metadata: ObjectMetadata, xml: string, - client: AdtClient + client: AdtClient, ): AdkObjectBase; getSupportedTypes(): string[]; } @@ -51,7 +51,7 @@ interface ObjectFactory { create( metadata: ObjectMetadata, xml: string, - client: AdtClient + client: AdtClient, ): AdkObjectBase; getSupportedTypes(): string[]; } @@ -80,7 +80,7 @@ export class ClassAdapter constructor( private metadata: ObjectMetadata, private rawXml: string, - private adtClient: AdtClient + private adtClient: AdtClient, ) { super(); } @@ -125,7 +125,7 @@ export class ClassObjectFactory implements ObjectFactory { create( metadata: ObjectMetadata, xml: string, - client: AdtClient + client: AdtClient, ): ClassAdapter { return new ClassAdapter(metadata, xml, client); } @@ -142,14 +142,14 @@ export class AdkObjectFactory { async create( objectType: string, objectName: string, - packageName?: string + packageName?: string, ): Promise { const xml = await this.fetchObjectXml(objectType, objectName, packageName); const metadata = await this.parseMetadata( xml, objectType, objectName, - packageName + packageName, ); // No case statements - use registry @@ -157,7 +157,7 @@ export class AdkObjectFactory { objectType.toLowerCase(), metadata, xml, - this.adtClient + this.adtClient, ); } } diff --git a/docs/specs/adt-cli/README.md b/docs/specs/adt-cli/README.md index 6d3c4313..5284eb02 100644 --- a/docs/specs/adt-cli/README.md +++ b/docs/specs/adt-cli/README.md @@ -176,6 +176,7 @@ adt auth login --token $SAP_TOKEN --endpoint $SAP_ENDPOINT ``` **Design Rationale**: Flexible authentication supporting multiple SAP deployment scenarios: + - **Service Key**: SAP Business Technology Platform (BTP) with OAuth 2.0 - **Basic Auth**: On-premise S/4HANA systems with username/password - **Interactive**: Browser-based OAuth flows @@ -268,7 +269,7 @@ class AdkObjectHandler> { constructor( private adtClient: AdtClient, private parser: (xml: string) => T, - private objectType: string + private objectType: string, ) {} } ``` diff --git a/docs/specs/adt-cli/plugin-architecture.md b/docs/specs/adt-cli/plugin-architecture.md index 1b6487d7..ce85d88d 100644 --- a/docs/specs/adt-cli/plugin-architecture.md +++ b/docs/specs/adt-cli/plugin-architecture.md @@ -47,7 +47,7 @@ class PluginManager { // Runtime plugin loading with @package/plugin syntax async loadPlugin( pluginName: string, - options?: Record + options?: Record, ): Promise; // Format discovery and validation @@ -248,7 +248,7 @@ abstract class BaseFormat { abstract serialize( objectData: any, objectType: string, - outputDir: string + outputDir: string, ): Promise; // Plugin lifecycle hooks diff --git a/docs/specs/adt-client/README.md b/docs/specs/adt-client/README.md index 89718a7f..8e71cdd3 100644 --- a/docs/specs/adt-client/README.md +++ b/docs/specs/adt-client/README.md @@ -32,21 +32,21 @@ interface AdtClient { getObjectSource( objectType: string, objectName: string, - include?: string + include?: string, ): Promise; getObjectMetadata( objectType: string, - objectName: string + objectName: string, ): Promise; updateObject( objectType: string, objectName: string, - content: string + content: string, ): Promise; createObject( objectType: string, objectName: string, - content: string + content: string, ): Promise; deleteObject(objectType: string, objectName: string): Promise; @@ -55,14 +55,14 @@ interface AdtClient { getPackageContents(packageName: string): Promise; getObjectStructure( objectType: string, - objectName: string + objectName: string, ): Promise; // Transport operations getTransportObjects(transportId: string): Promise; assignToTransport( objectKey: string, - transportId: string + transportId: string, ): Promise; // System information @@ -110,7 +110,7 @@ const classObject = await client.getObject('CLAS', 'ZCL_EXAMPLE'); const classSource = await client.getObjectSource( 'CLAS', 'ZCL_EXAMPLE', - 'source/main' + 'source/main', ); // Get object metadata only @@ -127,7 +127,7 @@ const result = await client.updateObject('CLAS', 'ZCL_EXAMPLE', updatedSource); const createResult = await client.createObject( 'CLAS', 'ZCL_NEW', - initialSource + initialSource, ); ``` diff --git a/docs/specs/adt-response-logging.md b/docs/specs/adt-response-logging.md index 0e4d8032..972b1031 100644 --- a/docs/specs/adt-response-logging.md +++ b/docs/specs/adt-response-logging.md @@ -144,7 +144,7 @@ export class AdtClient { async getClass(name: string): Promise { const response = await this.request( 'GET', - `/sap/bc/adt/oo/classes/${name}` + `/sap/bc/adt/oo/classes/${name}`, ); if (this.logResponseFiles) { @@ -159,7 +159,7 @@ export class AdtClient { async getClassSource(name: string, include: IncludeType): Promise { const source = await this.request( 'GET', - `/sap/bc/adt/oo/classes/${name}/source/${include}` + `/sap/bc/adt/oo/classes/${name}/source/${include}`, ); if (this.logResponseFiles) { @@ -302,7 +302,7 @@ describe('ADT Client logging', () => { await client.getClass('ZCL_TEST'); expect( - fs.existsSync('./tmp/logs/adt/oo/classes/zcl_test/metadata.xml') + fs.existsSync('./tmp/logs/adt/oo/classes/zcl_test/metadata.xml'), ).toBe(true); }); @@ -311,7 +311,7 @@ describe('ADT Client logging', () => { await client.getClass('ZCL_TEST'); expect( - fs.existsSync('./tmp/logs/adt/oo/classes/zcl_test/metadata.xml') + fs.existsSync('./tmp/logs/adt/oo/classes/zcl_test/metadata.xml'), ).toBe(false); }); }); @@ -323,17 +323,17 @@ describe('ADT Client logging', () => { describe('Transport import with logging', () => { it('should create complete log structure', async () => { await runCommand( - 'npx adt import transport MOCK000001 --log-response-files' + 'npx adt import transport MOCK000001 --log-response-files', ); expect( - fs.existsSync('./tmp/logs/adt/cts/transports/MOCK000001/metadata.xml') + fs.existsSync('./tmp/logs/adt/cts/transports/MOCK000001/metadata.xml'), ).toBe(true); expect( - fs.existsSync('./tmp/logs/adt/oo/classes/zcl_test/metadata.xml') + fs.existsSync('./tmp/logs/adt/oo/classes/zcl_test/metadata.xml'), ).toBe(true); expect( - fs.existsSync('./tmp/logs/adt/oo/classes/zcl_test/source/main') + fs.existsSync('./tmp/logs/adt/oo/classes/zcl_test/source/main'), ).toBe(true); }); }); diff --git a/docs/specs/cicd/abap-cicd-pipeline.md b/docs/specs/cicd/abap-cicd-pipeline.md index 92e2f7a6..4f6972f1 100644 --- a/docs/specs/cicd/abap-cicd-pipeline.md +++ b/docs/specs/cicd/abap-cicd-pipeline.md @@ -11,14 +11,12 @@ This specification outlines the approach for implementing Continuous Integration 1. **Manual Quality Checks**: Traditional ABAP development relies heavily on manual code reviews and quality assessments, which are time-consuming and prone to human error. 2. **Transport-Based Workflow Limitations**: - - Transport requests contain multiple objects and changes - Difficult to review individual changes in context - No automated quality gates before transport release - Limited visibility into what exactly changed 3. **Lack of Modern DevOps Practices**: - - No automated testing integration - Limited code quality metrics - Manual deployment processes @@ -126,19 +124,16 @@ adt atc -t $TRANSPORT_NUMBER --format gitlab --output atc-results.json ### SAP Piper Limitations 1. **Infrastructure Dependency**: - - Requires Jenkins infrastructure setup and maintenance - Tied to specific CI/CD platforms and configurations - Heavy infrastructure overhead for simple tasks 2. **Fragmented Workflow**: - - Multiple separate tools for different tasks - No unified end-to-end experience - Complex orchestration between different components 3. **Configuration Complexity**: - - Multiple configuration files required (`repositories.yml`, `Jenkinsfile`, etc.) - Complex setup process with many prerequisites - Steep learning curve for teams diff --git a/knip.json b/knip.json index fe902f13..2782c188 100644 --- a/knip.json +++ b/knip.json @@ -4,9 +4,7 @@ "interface": true, "type": true }, - "tags": [ - "-lintignore" - ], + "tags": ["-lintignore"], "workspaces": { ".": {} } diff --git a/nx.json.backup b/nx.json.backup deleted file mode 100644 index cd957133..00000000 --- a/nx.json.backup +++ /dev/null @@ -1,92 +0,0 @@ -{ - "$schema": "./node_modules/nx/schemas/nx-schema.json", - "defaultBase": "main", - "nxCloudId": "689f2325a9081eb8eb04b58d", - "plugins": [ - { - "plugin": "@nx/js/typescript", - "options": { - "typecheck": { - "targetName": "typecheck" - }, - "build": { - "targetName": "build", - "configName": "tsconfig.lib.json" - } - }, - "exclude": ["packages/xmld/*"] - }, - { - "plugin": "./tools/nx-tsdown/src/index.ts" - }, - { - "plugin": "./tools/nx-vitest/src/index.ts" - }, - { - "plugin": "@nx/vite/plugin", - "exclude": ["**/*"] - }, - { - "plugin": "@nx/eslint/plugin", - "options": { - "targetName": "lint" - } - }, - { - "plugin": "@nx/js/typescript", - "include": ["packages/xmld/*"], - "options": { - "typecheck": { - "targetName": "typecheck" - } - } - } - ], - "release": { - "version": { - "preVersionCommand": "npx nx run-many -t build" - } - }, - "targetDefaults": { - "build": { - "dependsOn": ["^build"] - }, - "nx-release-publish": { - "dependsOn": ["build", "test"] - }, - "@nx/js:swc": { - "cache": true, - "dependsOn": ["^build"], - "inputs": ["default", "^default"] - }, - "@nx/jest:jest": { - "cache": true, - "inputs": ["default", "^default", "{workspaceRoot}/jest.preset.js"], - "options": { - "passWithNoTests": true - }, - "configurations": { - "ci": { - "ci": true, - "codeCoverage": true - } - } - }, - "@nx/js:tsc": { - "cache": true, - "dependsOn": [], - "inputs": ["default", "^default"] - }, - "typecheck": { - "cache": true, - "dependsOn": [], - "inputs": ["default", "^default"] - }, - "test": { - "dependsOn": ["^build"] - } - }, - "tui": { - "enabled": false - } -} diff --git a/packages/adk/README.md b/packages/adk/README.md index d2f4162c..23f53d7e 100644 --- a/packages/adk/README.md +++ b/packages/adk/README.md @@ -14,12 +14,12 @@ ADK v2 is a complete redesign focused on: ## Key Differences from v1 -| Aspect | v1 | v2 | -|--------|----|----| -| Schemas | Manual (`adt-schemas`) | XSD-derived (`adt-schemas`) | -| Network | Mixed in | Separated out | -| Source | Eager | Lazy | -| Dependencies | `adt-client` v1 | `adt-contracts` | +| Aspect | v1 | v2 | +| ------------ | ---------------------- | --------------------------- | +| Schemas | Manual (`adt-schemas`) | XSD-derived (`adt-schemas`) | +| Network | Mixed in | Separated out | +| Source | Eager | Lazy | +| Dependencies | `adt-client` v1 | `adt-contracts` | ## Usage diff --git a/packages/adk/project.json b/packages/adk/project.json index 5b7643bb..8892caf1 100644 --- a/packages/adk/project.json +++ b/packages/adk/project.json @@ -11,7 +11,7 @@ } }, "tags": [], - "targets": { + "targets": { "nx-release-publish": { "options": { "packageRoot": "dist/{projectRoot}" diff --git a/packages/adk/src/base/context.ts b/packages/adk/src/base/context.ts index b0cb513d..753ff8b4 100644 --- a/packages/adk/src/base/context.ts +++ b/packages/adk/src/base/context.ts @@ -1,8 +1,8 @@ /** * ADK v2 - Context - * + * * Injected into models. Provides typed client access. - * + * * Architecture: * - ADK objects receive ADT client via context * - Objects access contracts directly: ctx.client.adt.* @@ -14,21 +14,21 @@ import type { AdtClient } from './adt'; /** * Context provided to all ADK objects - * + * * Provides direct access to ADT client. * Objects use client.adt.* for contracts and client.services.* for services. - * + * * @example * // In AdkClass.load(): * const data = await this.ctx.client.adt.oo.classes.get(this.name); - * + * * // In AdkTransport: * const transport = await this.ctx.client.services.transports.get(this.id); */ export interface AdkContext { /** * ADT client instance - * + * * Provides: * - client.adt.* - Low-level REST contracts * - client.services.* - High-level service APIs diff --git a/packages/adk/src/base/global-context.ts b/packages/adk/src/base/global-context.ts index 196779b5..3d86a1c7 100644 --- a/packages/adk/src/base/global-context.ts +++ b/packages/adk/src/base/global-context.ts @@ -1,17 +1,17 @@ /** * ADK v2 - Global Context Provider - * + * * Provides a global ADK context that can be set once and used by all ADK objects. * This eliminates the need to pass context to every ADK operation. - * + * * Usage: * // Initialize once (e.g., in CLI bootstrap) * import { initializeAdk } from '@abapify/adk'; * initializeAdk(client); - * + * * // Then use ADK objects without passing context * const transport = await AdkTransportRequest.get('S0DK900001'); - * + * * For testing or multi-connection scenarios, you can still pass explicit context: * const transport = await AdkTransportRequest.get('S0DK900001', customCtx); */ @@ -31,21 +31,21 @@ let globalContext: AdkContext | null = null; /** * Initialize the global ADK context from an ADT client. - * + * * Call this once during application bootstrap (e.g., in CLI initialization). * After initialization, ADK objects can be used without passing context. - * + * * @param client - ADT client v2 instance * @throws Error if client is not provided - * + * * @example * ```ts * import { initializeAdk } from '@abapify/adk'; * import { createAdtClient } from '@abapify/adt-client'; - * + * * const client = createAdtClient({ ... }); * initializeAdk(client); - * + * * // Now ADK objects work without context * const transport = await AdkTransportRequest.get('S0DK900001'); * ``` @@ -54,18 +54,18 @@ export function initializeAdk(client: AdtClient): void { if (!client) { throw new Error('ADK initialization failed: client is required'); } - + globalContext = { client }; } /** * Get the global ADK context. - * + * * Used internally by ADK objects when no explicit context is provided. - * + * * @returns The global ADK context * @throws Error if ADK has not been initialized - * + * * @example * ```ts * // Internal usage in ADK objects: @@ -79,9 +79,9 @@ export function getGlobalContext(): AdkContext { if (!globalContext) { throw new Error( 'ADK not initialized. Call initializeAdk(client) before using ADK objects.\n' + - 'Example:\n' + - ' import { initializeAdk } from \'@abapify/adk\';\n' + - ' initializeAdk(client);' + 'Example:\n' + + " import { initializeAdk } from '@abapify/adk';\n" + + ' initializeAdk(client);', ); } return globalContext; @@ -89,9 +89,9 @@ export function getGlobalContext(): AdkContext { /** * Check if ADK has been initialized. - * + * * Useful for conditional logic or error handling. - * + * * @returns true if initializeAdk() has been called */ export function isAdkInitialized(): boolean { @@ -100,7 +100,7 @@ export function isAdkInitialized(): boolean { /** * Reset the global ADK context. - * + * * Primarily for testing purposes. Clears the global context. */ export function resetAdk(): void { @@ -109,10 +109,10 @@ export function resetAdk(): void { /** * Get the global context or return undefined if not initialized. - * + * * Unlike getGlobalContext(), this doesn't throw - useful when you want * to check if context exists before using it. - * + * * @returns The global context or undefined */ export function tryGetGlobalContext(): AdkContext | undefined { diff --git a/packages/adk/src/base/kinds.ts b/packages/adk/src/base/kinds.ts index 0f1ed8dd..5c4b9537 100644 --- a/packages/adk/src/base/kinds.ts +++ b/packages/adk/src/base/kinds.ts @@ -1,9 +1,9 @@ /** * ADK Object Kinds - * + * * Central registry of all ADK object types. * Import specific kinds for type-safe usage: - * + * * @example * import { TransportRequest } from '../base/kinds'; * class AdkTransportRequest extends AdkObject { ... } @@ -34,7 +34,7 @@ export const MessageClass = 'MessageClass' as const; export const EnhancementSpot = 'EnhancementSpot' as const; /** Union type of all ADK kinds */ -export type AdkKind = +export type AdkKind = | typeof TransportRequest | typeof TransportTask | typeof Package @@ -60,23 +60,30 @@ export type AdkKind = import type { AdkClass } from '../objects/repository/clas/clas.model'; import type { AdkInterface } from '../objects/repository/intf/intf.model'; import type { AdkPackage } from '../objects/repository/devc/devc.model'; -import type { AdkTransportRequest, AdkTransportTask } from '../objects/cts/transport/transport'; +import type { + AdkTransportRequest, + AdkTransportTask, +} from '../objects/cts/transport/transport'; import type { AdkObject } from './model'; /** * Maps ADK kind to concrete object type - * + * * Enables type-safe factory methods: * ```ts * const cls = factory.byKind(Class, 'ZCL_TEST'); // → AdkClass * const intf = factory.byKind(Interface, 'ZIF'); // → AdkInterface * ``` */ -export type AdkObjectForKind = - K extends typeof Class ? AdkClass : - K extends typeof Interface ? AdkInterface : - K extends typeof Package ? AdkPackage : - K extends typeof TransportRequest ? AdkTransportRequest : - K extends typeof TransportTask ? AdkTransportTask : - // Add more mappings as types are implemented - AdkObject; // fallback +export type AdkObjectForKind = K extends typeof Class + ? AdkClass + : K extends typeof Interface + ? AdkInterface + : K extends typeof Package + ? AdkPackage + : K extends typeof TransportRequest + ? AdkTransportRequest + : K extends typeof TransportTask + ? AdkTransportTask + : // Add more mappings as types are implemented + AdkObject; // fallback diff --git a/packages/adk/src/base/registry.ts b/packages/adk/src/base/registry.ts index 5ae8b93d..838c4e63 100644 --- a/packages/adk/src/base/registry.ts +++ b/packages/adk/src/base/registry.ts @@ -20,7 +20,7 @@ import * as kinds from './kinds'; // ============================================ /** Constructor signature for ADK objects */ - + export type AdkObjectConstructor< T extends AdkObject = AdkObject, > = new (ctx: AdkContext, nameOrData: string | any) => T; diff --git a/packages/adk/src/base/types.ts b/packages/adk/src/base/types.ts index 2714c21c..727a1244 100644 --- a/packages/adk/src/base/types.ts +++ b/packages/adk/src/base/types.ts @@ -8,11 +8,11 @@ import type { AdkKind } from './kinds'; * Base interface for all ABAP objects */ export interface AbapObject { - readonly kind: AdkKind | string; // Allow kind or custom string + readonly kind: AdkKind | string; // Allow kind or custom string readonly name: string; readonly package: string; readonly description: string; - + /** * ADT object type (e.g., 'DEVC/K', 'CLAS/OC') */ diff --git a/packages/adk/src/decorators/datetime.ts b/packages/adk/src/decorators/datetime.ts index 2cd607d3..04b8e0f1 100644 --- a/packages/adk/src/decorators/datetime.ts +++ b/packages/adk/src/decorators/datetime.ts @@ -1,12 +1,12 @@ /** * @datetime - SAP Timestamp Property Decorator - * + * * Parses SAP timestamp formats into JavaScript Date objects. - * + * * SAP Timestamp Formats: * - YYYYMMDDHHMMSS (14 chars) - e.g., "20231215143052" * - YYYYMMDD (8 chars) - date only - * + * * Usage: * class MyObject { * @datetime() lastChangedAt?: Date; @@ -20,42 +20,39 @@ */ export function parseSapTimestamp(ts: unknown): Date | undefined { if (!ts || typeof ts !== 'string') return undefined; - + const s = ts.trim(); if (s.length < 8) return undefined; - + const year = s.slice(0, 4); const month = s.slice(4, 6); const day = s.slice(6, 8); const hour = s.length >= 10 ? s.slice(8, 10) : '00'; const min = s.length >= 12 ? s.slice(10, 12) : '00'; const sec = s.length >= 14 ? s.slice(12, 14) : '00'; - + return new Date(`${year}-${month}-${day}T${hour}:${min}:${sec}Z`); } /** * @datetime - SAP timestamp property decorator - * + * * @param from - Source field name (defaults to property name) - * + * * @example * ```typescript * // Maps from same-named field * @datetime() lastChangedAt?: Date; - * + * * // Maps from different field * @datetime('lastchanged_timestamp') modifiedAt?: Date; * ``` */ export function datetime(from?: string): PropertyDecorator { - return function ( - target: object, - propertyKey: string | symbol - ): void { + return function (target: object, propertyKey: string | symbol): void { const key = String(propertyKey); const sourceKey = from || key; - + Object.defineProperty(target, key, { get(this: { _propSource?: Record }) { const value = this._propSource?.[sourceKey]; diff --git a/packages/adk/src/decorators/index.ts b/packages/adk/src/decorators/index.ts index c8c415d1..ceb16f16 100644 --- a/packages/adk/src/decorators/index.ts +++ b/packages/adk/src/decorators/index.ts @@ -1,24 +1,20 @@ /** * ADK Decorators - * + * * Provides declarative patterns for ADK objects: * - @requiresLock: Automatic lock management for methods * - @datetime: SAP timestamp parsing * - @lazy: Lazy initialization with caching */ -export { - requiresLock, +export { + requiresLock, readonly, - type Lockable, + type Lockable, type RequiresLockOptions, } from './lockable'; -export { - datetime, - date, - parseSapTimestamp, -} from './datetime'; +export { datetime, date, parseSapTimestamp } from './datetime'; export { lazy, diff --git a/packages/adk/src/decorators/lazy.ts b/packages/adk/src/decorators/lazy.ts index f303626b..b928e636 100644 --- a/packages/adk/src/decorators/lazy.ts +++ b/packages/adk/src/decorators/lazy.ts @@ -1,14 +1,14 @@ /** * @lazy - Lazy Initialization Decorator - * + * * Computes a value once on first access, then caches it. - * + * * Usage: * class MyObject { * @lazy(self => `${self.a}/${self.b}`) * key!: string; * } - * + * * Note: Due to class field shadowing, use `declare` keyword: * @lazy(self => compute()) * declare myProp: Type; @@ -20,27 +20,26 @@ export type LazyFactory = (self: T) => R; /** * @lazy - Lazy computed property decorator - * + * * @param factory - Function that computes the value (receives `this`) - * + * * @example * ```typescript * class MyClass { * firstName = 'John'; * lastName = 'Doe'; - * + * * @lazy(self => `${self.firstName} ${self.lastName}`) * declare fullName: string; * } * ``` */ -export function lazy(factory: LazyFactory): PropertyDecorator { - return function ( - target: object, - propertyKey: string | symbol - ): void { +export function lazy( + factory: LazyFactory, +): PropertyDecorator { + return function (target: object, propertyKey: string | symbol): void { const key = String(propertyKey); - + Object.defineProperty(target, key, { get(this: T & { [LAZY_CACHE]?: Map }) { // Initialize cache if needed @@ -49,7 +48,7 @@ export function lazy(factory: LazyFactory): PropertyD cache = new Map(); (this as { [LAZY_CACHE]: Map })[LAZY_CACHE] = cache; } - + // Return cached value or compute if (!cache.has(key)) { cache.set(key, factory(this)); @@ -65,7 +64,10 @@ export function lazy(factory: LazyFactory): PropertyD /** * Invalidate a specific lazy property (force recomputation on next access) */ -export function invalidateLazy(obj: T, propertyKey: string): void { +export function invalidateLazy( + obj: T, + propertyKey: string, +): void { const cache = (obj as { [LAZY_CACHE]?: Map })[LAZY_CACHE]; cache?.delete(propertyKey); } diff --git a/packages/adk/src/decorators/lockable.ts b/packages/adk/src/decorators/lockable.ts index add87083..3c425598 100644 --- a/packages/adk/src/decorators/lockable.ts +++ b/packages/adk/src/decorators/lockable.ts @@ -1,16 +1,16 @@ /** * ADK Lockable Decorators - * + * * Provides declarative lock management for ADK objects. - * + * * Usage: * class AdkTransportRequest extends AdkObject implements Lockable { - * + * * @requiresLock() * async update(changes: UpdateOptions): Promise { * // Lock acquired automatically, released after * } - * + * * @requiresLock({ keep: true }) * async startBatch(): Promise { * // Lock is acquired and KEPT for subsequent operations @@ -39,13 +39,13 @@ export interface RequiresLockOptions { /** * @requiresLock - Method decorator - * + * * Automatically acquires lock before method execution * and releases it after (unless keep: true). - * + * * @param options - Lock options * @param options.keep - If true, keep lock after method completes - * + * * @example * ```typescript * @requiresLock() @@ -53,7 +53,7 @@ export interface RequiresLockOptions { * // Lock is acquired before this runs * // Lock is released after this completes * } - * + * * @requiresLock({ keep: true }) * async startTransaction(): Promise { * // Lock is acquired and KEPT for subsequent operations @@ -64,18 +64,18 @@ export function requiresLock(options?: RequiresLockOptions) { return function ( _target: T, _propertyKey: string, - descriptor: PropertyDescriptor + descriptor: PropertyDescriptor, ) { const originalMethod = descriptor.value; - + descriptor.value = async function (this: Lockable, ...args: unknown[]) { const wasLocked = this.isLocked; - + try { if (!wasLocked) { await this.lock(); } - + return await originalMethod.apply(this, args); } finally { // Release lock if we acquired it and keep is not set @@ -84,17 +84,17 @@ export function requiresLock(options?: RequiresLockOptions) { } } }; - + return descriptor; }; } /** * @readonly - Method decorator (marker) - * + * * Marks a method as read-only (no lock required). * This is purely for documentation/clarity. - * + * * @example * ```typescript * @readonly @@ -106,7 +106,7 @@ export function requiresLock(options?: RequiresLockOptions) { export function readonly( _target: any, _propertyKey: string, - descriptor: PropertyDescriptor + descriptor: PropertyDescriptor, ) { // No-op decorator, just for documentation return descriptor; diff --git a/packages/adk/src/objects/cts/index.ts b/packages/adk/src/objects/cts/index.ts index a23602fc..4aef3517 100644 --- a/packages/adk/src/objects/cts/index.ts +++ b/packages/adk/src/objects/cts/index.ts @@ -5,9 +5,9 @@ export * from './transport'; // New simplified transport for import operations -export { - AdkTransport, - AdkTransportObjectRef, +export { + AdkTransport, + AdkTransportObjectRef, AdkTransportTaskRef, type TransportResponse, } from './transport-import'; diff --git a/packages/adk/src/objects/cts/transport/index.ts b/packages/adk/src/objects/cts/transport/index.ts index cee7f5a9..700ee262 100644 --- a/packages/adk/src/objects/cts/transport/index.ts +++ b/packages/adk/src/objects/cts/transport/index.ts @@ -1,6 +1,6 @@ /** * CTS Transport - Request, Task, Object - * + * * Simplified 2-layer hierarchy: * - AdkTransportRequest - full transport with tasks, CRUD * - AdkTransportTask extends AdkTransportRequest - task-specific overrides @@ -23,11 +23,15 @@ export type { } from './transport.types'; // ADK classes -export { AdkTransportRequest, AdkTransportTask, clearConfigCache } from './transport'; +export { + AdkTransportRequest, + AdkTransportTask, + clearConfigCache, +} from './transport'; export { AdkTransportObject } from './transport-object'; // Backward compatibility alias export { AdkTransportRequest as AdkTransportItem } from './transport'; // Re-export LockHandle type -export type { LockHandle } from './transport.types'; \ No newline at end of file +export type { LockHandle } from './transport.types'; diff --git a/packages/adk/src/objects/cts/transport/transport-object.ts b/packages/adk/src/objects/cts/transport/transport-object.ts index 80d76ad3..8cd9ccd0 100644 --- a/packages/adk/src/objects/cts/transport/transport-object.ts +++ b/packages/adk/src/objects/cts/transport/transport-object.ts @@ -1,6 +1,6 @@ /** * AdkTransportObject - Transport Object wrapper - * + * * Lightweight wrapper around schema object data. * Objects don't have operations (no release, lock, etc.) */ @@ -13,18 +13,38 @@ import type { TransportObjectData } from './transport.types'; export class AdkTransportObject { constructor(private readonly data: TransportObjectData) {} - get pgmid(): string { return this.data.pgmid || ''; } - get type(): string { return this.data.type || ''; } - get name(): string { return this.data.name || ''; } - get wbtype(): string | undefined { return this.data.wbtype; } - get objectInfo(): string | undefined { return this.data.obj_info; } - get objectDescription(): string | undefined { return this.data.obj_desc; } - get lockStatus(): string | undefined { return this.data.lock_status; } - get uri(): string | undefined { return this.data.uri; } + get pgmid(): string { + return this.data.pgmid || ''; + } + get type(): string { + return this.data.type || ''; + } + get name(): string { + return this.data.name || ''; + } + get wbtype(): string | undefined { + return this.data.wbtype; + } + get objectInfo(): string | undefined { + return this.data.obj_info; + } + get objectDescription(): string | undefined { + return this.data.obj_desc; + } + get lockStatus(): string | undefined { + return this.data.lock_status; + } + get uri(): string | undefined { + return this.data.uri; + } /** Full object key (PGMID/TYPE/NAME) */ - get key(): string { return `${this.pgmid}/${this.type}/${this.name}`; } + get key(): string { + return `${this.pgmid}/${this.type}/${this.name}`; + } /** Raw schema data */ - get raw(): TransportObjectData { return this.data; } + get raw(): TransportObjectData { + return this.data; + } } diff --git a/packages/adk/src/objects/repository/clas/clas.types.ts b/packages/adk/src/objects/repository/clas/clas.types.ts index 6583afde..4b06da48 100644 --- a/packages/adk/src/objects/repository/clas/clas.types.ts +++ b/packages/adk/src/objects/repository/clas/clas.types.ts @@ -1,6 +1,6 @@ /** * CLAS - ABAP Class - * + * * Public interface for ABAP Class objects. * Based on ADT class:abapClass XML structure. */ @@ -11,7 +11,7 @@ import type { AdtObjectReference } from '../../../base/model'; /** * Class category (class:category attribute) */ -export type ClassCategory = +export type ClassCategory = | 'generalObjectType' | 'exceptionClass' | 'testClass' @@ -30,7 +30,7 @@ export type ClassCategory = /** * Class include type (class:includeType attribute) */ -export type ClassIncludeType = +export type ClassIncludeType = | 'main' | 'definitions' | 'implementations' @@ -66,13 +66,13 @@ export interface ClassInclude { /** * ABAP Class interface - * + * * Plugins work with this interface - implementation is internal. * Mirrors ADT class:abapClass structure. */ export interface AbapClass extends AbapObject { readonly kind: 'Class'; - + // Core attributes (from adtcore:*) readonly responsible: string; readonly masterLanguage: string; @@ -82,51 +82,51 @@ export interface AbapClass extends AbapObject { readonly createdBy: string; readonly changedAt: Date; readonly changedBy: string; - + // Class-specific (from class:*) readonly category: ClassCategory; readonly final: boolean; readonly abstract: boolean; readonly visibility: ClassVisibility; readonly sharedMemoryEnabled: boolean; - + // OO attributes (from abapoo:*) readonly modeled: boolean; - + // Source attributes (from abapsource:*) readonly fixPointArithmetic: boolean; readonly activeUnicodeCheck: boolean; - + // References readonly superClassRef?: AdtObjectReference; readonly messageClassRef?: AdtObjectReference; readonly packageRef?: AdtObjectReference; - + // Includes readonly includes: ClassInclude[]; - + // Lazy segments - fetched on demand - + /** * Get main source code (global definitions + implementations) */ getMainSource(): Promise; - + /** * Get source code for a specific include */ getIncludeSource(includeType: ClassIncludeType): Promise; - + /** * Get definitions include source */ getDefinitions(): Promise; - + /** * Get implementations include source */ getImplementations(): Promise; - + /** * Get test classes source */ diff --git a/packages/adk/src/objects/repository/devc/devc.types.ts b/packages/adk/src/objects/repository/devc/devc.types.ts index 6f3d429d..ee88f761 100644 --- a/packages/adk/src/objects/repository/devc/devc.types.ts +++ b/packages/adk/src/objects/repository/devc/devc.types.ts @@ -1,6 +1,6 @@ /** * DEVC - ABAP Package - * + * * Public interface for ABAP Package objects. * Based on ADT pak:package XML structure. */ @@ -64,13 +64,13 @@ export interface TransportConfig { /** * ABAP Package interface - * + * * Plugins work with this interface - implementation is internal. * Mirrors ADT pak:package structure. */ export interface AbapPackage extends AbapObject { readonly kind: 'Package'; - + // Core attributes (from adtcore:*) readonly responsible: string; readonly masterLanguage: string; @@ -80,25 +80,25 @@ export interface AbapPackage extends AbapObject { readonly createdBy: string; readonly changedAt: Date; readonly changedBy: string; - + // Package-specific (from pak:*) readonly attributes: PackageAttributes; readonly superPackage?: AdtObjectReference; readonly applicationComponent?: ApplicationComponent; readonly transport?: TransportConfig; - + // Lazy segments - fetched on demand - + /** * Get direct subpackages */ getSubpackages(): Promise; - + /** * Get objects contained in this package (direct, not recursive) */ getObjects(): Promise; - + /** * Get all objects recursively (includes subpackages) */ diff --git a/packages/adk/src/objects/repository/intf/intf.types.ts b/packages/adk/src/objects/repository/intf/intf.types.ts index a4f717a7..96bb2104 100644 --- a/packages/adk/src/objects/repository/intf/intf.types.ts +++ b/packages/adk/src/objects/repository/intf/intf.types.ts @@ -1,6 +1,6 @@ /** * INTF - ABAP Interface - * + * * Public interface for ABAP Interface objects. * Based on ADT intf:abapInterface XML structure. */ @@ -10,13 +10,13 @@ import type { AdtObjectReference } from '../../../base/model'; /** * ABAP Interface interface - * + * * Plugins work with this interface - implementation is internal. * Mirrors ADT intf:abapInterface structure. */ export interface AbapInterface extends AbapObject { readonly kind: 'Interface'; - + // Core attributes (from adtcore:*) readonly responsible: string; readonly masterLanguage: string; @@ -26,20 +26,20 @@ export interface AbapInterface extends AbapObject { readonly createdBy: string; readonly changedAt: Date; readonly changedBy: string; - + // OO attributes (from abapoo:*) readonly modeled: boolean; - + // Source attributes (from abapsource:*) readonly sourceUri: string; readonly fixPointArithmetic: boolean; readonly activeUnicodeCheck: boolean; - + // References readonly packageRef?: AdtObjectReference; - + // Lazy segments - fetched on demand - + /** * Get interface source code */ diff --git a/packages/adt-atc/src/commands/atc.ts b/packages/adt-atc/src/commands/atc.ts index 2c279b80..077863f0 100644 --- a/packages/adt-atc/src/commands/atc.ts +++ b/packages/adt-atc/src/commands/atc.ts @@ -209,6 +209,10 @@ export const atcCommand: CliCommandPlugin = { flags: '-t, --transport ', description: 'Run ATC on transport request (e.g., S0DK942970)', }, + { + flags: '-f, --from-file ', + description: 'Run ATC on objects listed in file (one URI per line)', + }, { flags: '--variant ', description: 'ATC check variant (default: from system customizing)', @@ -227,6 +231,11 @@ export const atcCommand: CliCommandPlugin = { flags: '--output ', description: 'Output file (required for gitlab/sarif format)', }, + { + flags: '--resolver ', + description: + 'Finding resolver plugin for path/line resolution (e.g., abapgit)', + }, ], async execute(args, ctx: CliContext) { @@ -234,10 +243,12 @@ export const atcCommand: CliCommandPlugin = { package?: string; object?: string; transport?: string; + fromFile?: string; variant?: string; maxResults?: string; format?: OutputFormat; output?: string; + resolver?: string; }; // Validate mutually exclusive options @@ -245,18 +256,19 @@ export const atcCommand: CliCommandPlugin = { options.package, options.object, options.transport, + options.fromFile, ].filter(Boolean).length; if (targetCount === 0) { ctx.logger.error( - '❌ One of --package, --object, or --transport is required', + '❌ One of --package, --object, --transport, or --from-file is required', ); process.exit(1); } if (targetCount > 1) { ctx.logger.error( - '❌ Only one of --package, --object, or --transport can be specified', + '❌ Only one of --package, --object, --transport, or --from-file can be specified', ); process.exit(1); } @@ -283,20 +295,35 @@ export const atcCommand: CliCommandPlugin = { ctx.logger.info('🔍 Running ABAP Test Cockpit checks...'); - // Determine target - let targetUri: string; + // Determine target(s) + let targetUris: string[]; let targetName: string; - if (options.transport) { - targetUri = `/sap/bc/adt/cts/transportrequests/${options.transport}`; + if (options.fromFile) { + // Read URIs from file + const { readFileSync } = await import('fs'); + const fileContent = readFileSync(options.fromFile, 'utf-8'); + targetUris = fileContent + .split('\n') + .map((line) => line.trim()) + .filter((line) => line && !line.startsWith('#')); // Skip empty lines and comments + + if (targetUris.length === 0) { + ctx.logger.error(`❌ No objects found in ${options.fromFile}`); + process.exit(1); + } + targetName = `${targetUris.length} objects from ${options.fromFile}`; + ctx.logger.info(`📄 Target: ${targetName}`); + } else if (options.transport) { + targetUris = [`/sap/bc/adt/cts/transportrequests/${options.transport}`]; targetName = `Transport ${options.transport}`; ctx.logger.info(`🚚 Target: ${targetName}`); } else if (options.package) { - targetUri = `/sap/bc/adt/packages/${options.package.toUpperCase()}`; + targetUris = [`/sap/bc/adt/packages/${options.package.toUpperCase()}`]; targetName = `Package ${options.package.toUpperCase()}`; ctx.logger.info(`📦 Target: ${targetName}`); } else { - targetUri = options.object!; + targetUris = [options.object!]; targetName = options.object!; ctx.logger.info(`📄 Target: ${targetName}`); } @@ -358,7 +385,7 @@ export const atcCommand: CliCommandPlugin = { { kind: 'inclusive', objectReferences: { - objectReference: [{ uri: targetUri }], + objectReference: targetUris.map((uri) => ({ uri })), }, }, ], @@ -379,11 +406,39 @@ export const atcCommand: CliCommandPlugin = { checkVariant, ); + // Load finding resolver if requested + let resolver: import('../types').FindingResolver | undefined; + if (options.resolver) { + const name = options.resolver; + if (name === 'abapgit') { + // Built-in abapgit resolver — no external dependencies + const { createAbapGitResolver } = await import('../resolvers/abapgit'); + resolver = createAbapGitResolver(); + } else { + // External resolver — try dynamic import + try { + ctx.logger.info(`📂 Loading external resolver: ${name}`); + const mod = await import(name); + if (typeof mod.createFindingResolver === 'function') { + resolver = mod.createFindingResolver(); + } else { + ctx.logger.warn( + `⚠️ Module ${name} does not export createFindingResolver()`, + ); + } + } catch (e) { + ctx.logger.warn( + `⚠️ Failed to load resolver "${name}": ${e instanceof Error ? e.message : e}`, + ); + } + } + } + // Output based on format if (options.format === 'json') { console.log(JSON.stringify(result, null, 2)); } else if (options.format === 'gitlab' && options.output) { - await outputGitLabCodeQuality(result, options.output); + await outputGitLabCodeQuality(result, options.output, { resolver }); } else if (options.format === 'sarif' && options.output) { await outputSarifReport(result, options.output, targetName); } else { diff --git a/packages/adt-atc/src/formatters/gitlab.ts b/packages/adt-atc/src/formatters/gitlab.ts index 271b9a36..dc44a5dc 100644 --- a/packages/adt-atc/src/formatters/gitlab.ts +++ b/packages/adt-atc/src/formatters/gitlab.ts @@ -2,58 +2,136 @@ * GitLab Code Quality Formatter * * Outputs ATC findings in GitLab Code Quality format. + * + * This formatter is a pure output formatter — it maps ATC findings to the + * GitLab Code Quality JSON structure. Path resolution and line number + * conversion are delegated to an optional FindingResolver. + * + * Without a resolver, the formatter produces PREFIX-style paths and raw + * ATC (method-relative) line numbers. With a resolver (e.g., from + * @abapify/adt-plugin-abapgit), it produces correct git paths and + * file-relative line numbers. + * + * @example + * ```typescript + * // Without resolver (standalone CLI usage) + * await outputGitLabCodeQuality(result, 'report.json'); + * + * // With resolver (inside an abapgit repo) + * import { createFindingResolver } from '@abapify/adt-plugin-abapgit'; + * const resolver = await createFindingResolver(); + * await outputGitLabCodeQuality(result, 'report.json', { resolver }); + * ``` */ import { writeFile } from 'fs/promises'; -import type { AtcResult, AtcFinding } from '../types'; +import type { AtcResult, AtcFinding, FindingResolver } from '../types'; + +/** + * Options for the GitLab Code Quality formatter + */ +export interface GitLabFormatterOptions { + /** Optional resolver for path/line resolution (e.g., from abapgit plugin) */ + resolver?: FindingResolver; +} + +// ── Extract method name from ATC location URI ─────────────────────────── +// Format 1: /sap/bc/adt/oo/classes/zcl_foo/methods/my_method#start=21,0 +// Format 2: ...#type=CLAS%2FOM;name=MY_METHOD;start=21 + +function extractMethodName(location?: string): string | undefined { + if (!location) return undefined; + const match = + location.match(/\/methods\/(\w+)/i) || location.match(/[;?&]name=(\w+)/i); + return match ? match[1].toLowerCase() : undefined; +} + +// ── Construct PREFIX-style fallback path ───────────────────────────────── + +function prefixPath(finding: AtcFinding): string { + return `src/${finding.objectType.toLowerCase()}/${finding.objectName.toLowerCase()}.${finding.objectType.toLowerCase()}.abap`; +} + +// ── Main formatter ────────────────────────────────────────────────────── export async function outputGitLabCodeQuality( result: AtcResult, outputFile: string, + options?: GitLabFormatterOptions, ): Promise { + const resolver = options?.resolver; + // Transform ATC findings to GitLab Code Quality format - const gitlabReport = result.findings.map((finding: AtcFinding) => { - // Map ATC priority to GitLab severity - let severity: string; - switch (finding.priority) { - case 1: - severity = 'blocker'; - break; - case 2: - severity = 'major'; - break; - case 3: - severity = 'minor'; - break; - default: - severity = 'info'; - break; - } - - // Extract file path from object reference (abapgit format: src//..abap) - const filePath = `src/${finding.objectType.toLowerCase()}/${finding.objectName.toLowerCase()}.${finding.objectType.toLowerCase()}.abap`; - - // Parse line number from location if available - const lineMatch = finding.location?.match(/start=(\d+)/); - const line = lineMatch ? parseInt(lineMatch[1], 10) : 1; - - // Create unique fingerprint for the finding - const fingerprint = `${finding.checkId}-${finding.objectName}-${line}`; - - return { - description: finding.messageText, - check_name: finding.checkTitle || finding.checkId, - fingerprint, - severity, - location: { - path: filePath, - lines: { - begin: line, - end: line, + const gitlabReport = await Promise.all( + result.findings.map(async (finding: AtcFinding) => { + // Map ATC priority to GitLab severity + let severity: string; + switch (finding.priority) { + case 1: + severity = 'blocker'; + break; + case 2: + severity = 'major'; + break; + case 3: + severity = 'minor'; + break; + default: + severity = 'info'; + break; + } + + // Parse ATC line number from location + const lineMatch = finding.location?.match(/start=(\d+)/); + const atcLine = lineMatch ? parseInt(lineMatch[1], 10) : 1; + + // Extract method name from ATC location URI + const methodName = extractMethodName(finding.location); + + // Resolve path and line via plugin, or fall back to PREFIX-style + let filePath: string; + let fileLine: number; + + if (resolver) { + const resolved = await resolver.resolve( + finding.objectType, + finding.objectName, + atcLine, + methodName, + ); + if (resolved) { + filePath = resolved.path; + fileLine = resolved.line; + } else { + filePath = prefixPath(finding); + fileLine = atcLine; + } + } else { + filePath = prefixPath(finding); + fileLine = atcLine; + } + + // Create unique fingerprint + const fingerprint = `${finding.checkId}-${finding.objectName}-${fileLine}`; + + return { + description: finding.messageText, + check_name: finding.checkTitle || finding.checkId, + fingerprint, + severity, + location: { + path: filePath, + lines: { + begin: fileLine, + end: fileLine, + }, }, - }, - }; - }); + // Extra fields for downstream processing + ...(methodName && { method: methodName }), + ...(finding.location && { atc_location: finding.location }), + }; + }), + ); await writeFile(outputFile, JSON.stringify(gitlabReport, null, 2)); console.log(`\n📄 GitLab Code Quality report written to: ${outputFile}`); diff --git a/packages/adt-atc/src/index.ts b/packages/adt-atc/src/index.ts index 1c366f2a..3c4050ed 100644 --- a/packages/adt-atc/src/index.ts +++ b/packages/adt-atc/src/index.ts @@ -16,4 +16,10 @@ export { atcCommand } from './commands/atc'; export { outputSarifReport, outputGitLabCodeQuality } from './formatters'; -export type { AtcResult, AtcFinding, OutputFormat } from './types'; +export type { + AtcResult, + AtcFinding, + OutputFormat, + FindingResolver, + ResolvedLocation, +} from './types'; diff --git a/packages/adt-atc/src/resolvers/abapgit.ts b/packages/adt-atc/src/resolvers/abapgit.ts new file mode 100644 index 00000000..6412754a --- /dev/null +++ b/packages/adt-atc/src/resolvers/abapgit.ts @@ -0,0 +1,150 @@ +/** + * Built-in abapGit Finding Resolver + * + * Resolves ATC finding locations to actual git file paths and file-relative + * line numbers for abapGit repositories (FULL or PREFIX folder logic). + * + * This is a built-in resolver that uses only Node.js builtins (fs, child_process, path). + * No external package dependencies required. + */ + +import { readFileSync, existsSync } from 'fs'; +import { execSync } from 'child_process'; +import { basename } from 'path'; +import type { FindingResolver, ResolvedLocation } from '../types'; + +// ── Method range parsing ──────────────────────────────────────────────── + +interface MethodRange { + name: string; + startLine: number; + length: number; +} + +const fileCache = new Map(); + +function getFileLines(filePath: string): string[] | null { + if (fileCache.has(filePath)) return fileCache.get(filePath)!; + try { + const content = readFileSync(filePath, 'utf8'); + const lines = content.split('\n'); + fileCache.set(filePath, lines); + return lines; + } catch { + return null; + } +} + +function parseMethodRanges(lines: string[]): MethodRange[] { + const ranges: MethodRange[] = []; + let currentMethod: string | null = null; + let methodStart = 0; + + for (let i = 0; i < lines.length; i++) { + const match = lines[i].match(/^\s*METHOD\s+(\w+)/i); + if (match) { + currentMethod = match[1].toLowerCase(); + methodStart = i + 1; // 1-based + } + if (currentMethod && /^\s*ENDMETHOD/i.test(lines[i])) { + const endLine = i + 1; + ranges.push({ + name: currentMethod, + startLine: methodStart, + length: endLine - methodStart + 1, + }); + currentMethod = null; + } + } + return ranges; +} + +function convertLine( + atcLine: number, + methodName: string | undefined, + filePath: string, +): number { + if (!filePath.endsWith('.clas.abap')) return atcLine; + + const lines = getFileLines(filePath); + if (!lines) return atcLine; + + const ranges = parseMethodRanges(lines); + if (ranges.length === 0) return atcLine; + + // Best case: method name known from ATC location URI + if (methodName) { + const method = ranges.find((r) => r.name === methodName.toLowerCase()); + if (method) return method.startLine + atcLine - 1; + } + + // Single method: use it + if (ranges.length === 1) return ranges[0].startLine + atcLine - 1; + + // Heuristic: smallest method where atcLine fits + const candidates = ranges + .filter((r) => atcLine <= r.length) + .sort((a, b) => a.length - b.length); + if (candidates.length > 0) return candidates[0].startLine + atcLine - 1; + + return atcLine; +} + +// ── Resolver factory ──────────────────────────────────────────────────── + +/** + * Create a built-in abapGit finding resolver. + * + * Scans src/ to build a filename → git-path lookup, then resolves + * ATC object references to actual file paths and converts method-relative + * line numbers to file-relative. + * + * @param srcRoot - Path to scan for source files (default: 'src/') + */ +export function createAbapGitResolver(srcRoot = 'src/'): FindingResolver { + const lookup = new Map(); + + try { + if (existsSync(srcRoot)) { + const files = execSync( + `find ${srcRoot} -type f \\( -name "*.abap" -o -name "*.xml" \\)`, + { encoding: 'utf8', maxBuffer: 5 * 1024 * 1024 }, + ) + .trim() + .split('\n') + .filter(Boolean); + + for (const f of files) { + const name = basename(f); + if (!lookup.has(name)) { + lookup.set(name, f); + } + } + } + } catch { + // src/ scan failed — resolver will return null for all findings + } + + if (lookup.size > 0) { + console.log( + `📂 Finding resolver: ${lookup.size} files indexed from ${srcRoot}`, + ); + } + + return { + async resolve( + objectType: string, + objectName: string, + atcLine: number, + methodName?: string, + ): Promise { + const expectedFilename = `${objectName.toLowerCase()}.${objectType.toLowerCase()}.abap`; + const resolvedPath = lookup.get(expectedFilename); + + if (!resolvedPath) return null; + + const fileLine = convertLine(atcLine, methodName, resolvedPath); + return { path: resolvedPath, line: fileLine }; + }, + }; +} diff --git a/packages/adt-atc/src/types.ts b/packages/adt-atc/src/types.ts index 32eee8f3..8985160f 100644 --- a/packages/adt-atc/src/types.ts +++ b/packages/adt-atc/src/types.ts @@ -36,3 +36,50 @@ export interface AtcResult { * Output format options */ export type OutputFormat = 'console' | 'json' | 'gitlab' | 'sarif'; + +/** + * Resolved location for a finding in the git repository + */ +export interface ResolvedLocation { + /** Git-relative file path (e.g., src/zpackage/zpackage_clas/zcl_foo.clas.abap) */ + path: string; + /** File-relative line number (1-based) */ + line: number; +} + +/** + * Finding resolver interface + * + * Resolves ATC finding locations (object type/name + method-relative line) + * to actual git file paths and file-relative line numbers. + * + * Implementations are format-specific (e.g., abapgit with FULL/PREFIX folder logic). + * The resolver is optional — without it, formatters use raw ATC data. + * + * @example + * ```typescript + * // Load resolver from a plugin + * import { createFindingResolver } from '@abapify/adt-plugin-abapgit'; + * const resolver = await createFindingResolver(); + * + * // Use with gitlab formatter + * await outputGitLabCodeQuality(result, outputFile, { resolver }); + * ``` + */ +export interface FindingResolver { + /** + * Resolve a finding's location to a git file path and file-relative line number. + * + * @param objectType - ABAP object type (e.g., 'CLAS', 'INTF', 'PROG') + * @param objectName - ABAP object name (e.g., 'ZCL_MY_CLASS') + * @param atcLine - Method-relative line number from ATC + * @param methodName - Method name (extracted from ATC location URI), if known + * @returns Resolved path and line, or null if resolution not possible + */ + resolve( + objectType: string, + objectName: string, + atcLine: number, + methodName?: string, + ): Promise; +} diff --git a/packages/adt-auth/AGENTS.md b/packages/adt-auth/AGENTS.md index 930aa8e7..d883c572 100644 --- a/packages/adt-auth/AGENTS.md +++ b/packages/adt-auth/AGENTS.md @@ -13,6 +13,7 @@ This file provides guidance to AI coding assistants when working with the `adt-a **AuthManager MUST NOT know about specific plugin implementations.** #### ❌ WRONG - Plugin-specific code in AuthManager + ```typescript // DON'T DO THIS! if (pluginModule.puppeteerAuth) { ... } @@ -21,6 +22,7 @@ if (Array.isArray(credentials.cookies)) { ... } ``` #### ✅ CORRECT - Generic plugin interface + ```typescript // AuthManager only knows about the standard interface const pluginModule = await import(session.auth.plugin); @@ -41,7 +43,7 @@ All auth plugins MUST: export default { async authenticate(options: AuthPluginOptions): Promise { // ... plugin-specific logic ... - + // MUST return standard format return { method: 'cookie', // or 'basic' @@ -70,8 +72,8 @@ type AuthPluginResult = CookieAuthResult | BasicAuthResult; interface CookieAuthResult { method: 'cookie'; credentials: { - cookies: string; // Cookie header string - expiresAt: Date; // When session expires + cookies: string; // Cookie header string + expiresAt: Date; // When session expires }; } @@ -94,7 +96,7 @@ interface AuthPlugin { interface AuthPluginOptions { url: string; client?: string; - [key: string]: unknown; // Plugin-specific options + [key: string]: unknown; // Plugin-specific options } ``` @@ -107,7 +109,7 @@ interface AuthSession { client?: string; auth: { method: 'cookie' | 'basic'; - plugin: string; // Package name for refresh, e.g., '@abapify/adt-puppeteer' + plugin: string; // Package name for refresh, e.g., '@abapify/adt-puppeteer' credentials: CookieCredentials | BasicCredentials; }; } @@ -119,13 +121,17 @@ When creating a new auth plugin: ```typescript // my-auth-plugin/src/index.ts -import type { AuthPlugin, AuthPluginResult, AuthPluginOptions } from '@abapify/adt-auth'; +import type { + AuthPlugin, + AuthPluginResult, + AuthPluginOptions, +} from '@abapify/adt-auth'; const authPlugin: AuthPlugin = { async authenticate(options: AuthPluginOptions): Promise { // Your authentication logic here const cookies = await doAuthentication(options.url); - + // Convert to standard format return { method: 'cookie', @@ -168,14 +174,17 @@ When a session expires, AuthManager calls `refreshCredentials()`: ## Common Mistakes ### Mistake 1: Adding plugin-specific code to AuthManager + **Symptom:** AuthManager imports or references specific plugins **Fix:** Keep AuthManager generic, move conversion logic to plugin ### Mistake 2: Plugin not returning AuthPluginResult + **Symptom:** `Cannot read properties of undefined (reading 'cookies')` **Fix:** Plugin must convert its internal format to AuthPluginResult ### Mistake 3: Named export instead of default + **Symptom:** `Plugin does not have a default export` **Fix:** Use `export default authPlugin` diff --git a/packages/adt-auth/README.md b/packages/adt-auth/README.md index 9e4fdccd..487fd5ea 100644 --- a/packages/adt-auth/README.md +++ b/packages/adt-auth/README.md @@ -29,13 +29,16 @@ const authManager = new AuthManager(); authManager.registerMethod(new BasicAuthMethod()); // Login -const session = await authManager.login({ - method: 'basic', - baseUrl: 'https://sap.example.com', - username: 'user', - password: 'pass', - client: '100', -}, 'BHF'); +const session = await authManager.login( + { + method: 'basic', + baseUrl: 'https://sap.example.com', + username: 'user', + password: 'pass', + client: '100', + }, + 'BHF', +); console.log('✅ Logged in!', session.sid); @@ -52,15 +55,18 @@ const authManager = new AuthManager(); authManager.registerMethod(new SlcAuthMethod()); // Login (SLC handles authentication via proxy) -const session = await authManager.login({ - method: 'slc', - baseUrl: 'https://sap.example.com', - slcProxy: { - host: 'localhost', - port: 3128, +const session = await authManager.login( + { + method: 'slc', + baseUrl: 'https://sap.example.com', + slcProxy: { + host: 'localhost', + port: 3128, + }, + client: '200', }, - client: '200', -}, 'BHF'); + 'BHF', +); console.log('✅ Logged in via SLC!'); ``` @@ -109,6 +115,7 @@ Main orchestrator for authentication. Username/password authentication. **Config:** + ```typescript { method: 'basic', @@ -126,6 +133,7 @@ Username/password authentication. SAP Secure Login Client Web Adapter. **Config:** + ```typescript { method: 'slc', @@ -140,6 +148,7 @@ SAP Secure Login Client Web Adapter. ``` **Prerequisites:** + - SAP Secure Login Client installed and running - Web Adapter profile configured and active @@ -193,20 +202,21 @@ if (!credentials) { const client = createAdtClient({ baseUrl: credentials.baseUrl, client: credentials.client, - + // Method-specific config ...(credentials.method === 'basic' && { username: credentials.username, password: credentials.password, }), - + ...(credentials.method === 'slc' && { proxy: credentials.slcProxy, }), }); // Use client -const info = await client.adt.core.http.systeminformation.getSystemInformation(); +const info = + await client.adt.core.http.systeminformation.getSystemInformation(); console.log('System:', info); ``` @@ -224,7 +234,11 @@ All auth plugins MUST: ```typescript // Plugin implementation -import type { AuthPlugin, AuthPluginResult, AuthPluginOptions } from '@abapify/adt-auth'; +import type { + AuthPlugin, + AuthPluginResult, + AuthPluginOptions, +} from '@abapify/adt-auth'; const authPlugin: AuthPlugin = { async authenticate(options: AuthPluginOptions): Promise { diff --git a/packages/adt-auth/TODO-migrate-from-cli.md b/packages/adt-auth/TODO-migrate-from-cli.md index 0b099d18..97e7fe3b 100644 --- a/packages/adt-auth/TODO-migrate-from-cli.md +++ b/packages/adt-auth/TODO-migrate-from-cli.md @@ -7,6 +7,7 @@ These utilities need to be migrated from `adt-cli` to `adt-auth` before they can BTP Service Key parsing for service key-based authentication. ### Types to add: + ```typescript interface UAACredentials { tenantmode: string; @@ -40,9 +41,11 @@ interface BTPServiceKey { ``` ### Implementation: + - `ServiceKeyParser.parse(serviceKeyJson)` - Parse and validate service key JSON ### Target location: + - `src/plugins/service-key-auth.ts` or new package `@abapify/adt-auth-service-key` ## 2. OAuth PKCE Utilities (`oauth-utils.ts`) @@ -50,18 +53,20 @@ interface BTPServiceKey { PKCE (Proof Key for Code Exchange) utilities for OAuth flows. ### Functions to add: + ```typescript // Generate cryptographically secure code verifier -function generateCodeVerifier(): string +function generateCodeVerifier(): string; // Generate code challenge from verifier using SHA256 -function generateCodeChallenge(verifier: string): string +function generateCodeChallenge(verifier: string): string; // Generate random state parameter -function generateState(): string +function generateState(): string; ``` ### Target location: + - `src/utils/pkce.ts` - Generic PKCE utilities - Used by OAuth auth plugins diff --git a/packages/adt-auth/src/storage/file-storage.ts b/packages/adt-auth/src/storage/file-storage.ts index 19377cb4..56d76b94 100644 --- a/packages/adt-auth/src/storage/file-storage.ts +++ b/packages/adt-auth/src/storage/file-storage.ts @@ -1,11 +1,18 @@ /** * File-based session storage - * + * * Stores auth sessions in ~/.adt/sessions/ * Stores config in ~/.adt/config.json */ -import { readFileSync, writeFileSync, existsSync, mkdirSync, readdirSync, unlinkSync } from 'fs'; +import { + readFileSync, + writeFileSync, + existsSync, + mkdirSync, + readdirSync, + unlinkSync, +} from 'fs'; import { join, dirname } from 'path'; import { homedir } from 'os'; import type { AuthSession } from '../types'; @@ -52,7 +59,9 @@ export class FileStorage { const data = readFileSync(filePath, 'utf8'); return JSON.parse(data) as AuthSession; } catch (error) { - throw new Error(`Failed to load session ${sid}: ${error instanceof Error ? error.message : String(error)}`); + throw new Error( + `Failed to load session ${sid}: ${error instanceof Error ? error.message : String(error)}`, + ); } } @@ -75,8 +84,8 @@ export class FileStorage { } return readdirSync(this.storageDir) - .filter(file => file.endsWith('.json')) - .map(file => file.replace('.json', '')); + .filter((file) => file.endsWith('.json')) + .map((file) => file.replace('.json', '')); } /** @@ -143,6 +152,8 @@ export class FileStorage { private saveConfig(config: Config): void { mkdirSync(dirname(this.configPath), { recursive: true }); - writeFileSync(this.configPath, JSON.stringify(config, null, 2), { mode: 0o600 }); + writeFileSync(this.configPath, JSON.stringify(config, null, 2), { + mode: 0o600, + }); } } diff --git a/packages/adt-cli/AGENTS.md b/packages/adt-cli/AGENTS.md index 3b8f68d3..a39c1500 100644 --- a/packages/adt-cli/AGENTS.md +++ b/packages/adt-cli/AGENTS.md @@ -32,16 +32,18 @@ This file provides guidance to AI coding assistants when working with the `adt-c ``` **Why?** + - **DRY**: Business logic in one place, reusable - **Testability**: Services can be unit tested without CLI - **Separation**: CLI concerns (args, output) vs business logic - **Programmatic use**: Services can be called from other code **Example:** + ```typescript // Command - thin wrapper -export const importTransportCommand = new Command('transport') - .action(async (transportNumber, outputDir, options) => { +export const importTransportCommand = new Command('transport').action( + async (transportNumber, outputDir, options) => { const service = new ImportService(); const result = await service.importTransport({ transportNumber, @@ -49,15 +51,17 @@ export const importTransportCommand = new Command('transport') format: options.format, objectTypes: options.objectTypes?.split(','), }); - + // Display results console.log(`✅ Imported ${result.results.success} objects`); - }); + }, +); ``` ### Command Structure Commands are organized in `src/lib/commands/`: + ``` commands/ ├── auth/ # Authentication commands (login, logout) @@ -98,6 +102,7 @@ commands/ ``` #### ❌ WRONG - Importing v1 Directly + ```typescript import { createAdtClient } from '@abapify/adt-client'; import { AuthManager } from '@abapify/adt-client'; // ❌ NO! @@ -109,11 +114,13 @@ const session = authManager.loadSession(); ``` **Why wrong?** + - Couples commands to v1 implementation - Duplicates auth logic across every command - Mixes CLI concerns with client logic #### ✅ CORRECT - Use Shared Helper + ```typescript import { getAdtClientV2 } from '../utils/adt-client'; @@ -122,6 +129,7 @@ const adtClient = getAdtClientV2(); ``` #### With Plugins + ```typescript import { getAdtClientV2 } from '../utils/adt-client'; import type { ResponseContext } from '@abapify/adt-client'; @@ -141,12 +149,13 @@ const adtClient = getAdtClientV2({ ``` #### With Logger + ```typescript import { getAdtClientV2 } from '../utils/adt-client'; // Enable HTTP request/response logging const adtClient = getAdtClientV2({ - enableLogging: true, // Logs HTTP requests/responses to console + enableLogging: true, // Logs HTTP requests/responses to console }); // Or pass custom logger @@ -159,10 +168,12 @@ const adtClient = getAdtClientV2({ ``` **Locations:** + - `src/lib/utils/adt-client.ts` - Client initialization helper - `src/lib/utils/auth.ts` - Auth bridge (wraps v1 AuthManager) **Why correct?** + - **DRY**: Eliminates 15-20 lines of boilerplate per command - **Consistency**: Same error messages across all commands - **Maintainability**: Auth logic in one place, v1 dependency isolated @@ -192,7 +203,10 @@ export const myCommand = new Command('mycommand') // Display results console.log('✅ Done!'); } catch (error) { - console.error('❌ Failed:', error instanceof Error ? error.message : String(error)); + console.error( + '❌ Failed:', + error instanceof Error ? error.message : String(error), + ); process.exit(1); } }); @@ -201,11 +215,15 @@ export const myCommand = new Command('mycommand') ### 2. Error Handling Pattern **Standard pattern:** + ```typescript try { // Command logic } catch (error) { - console.error('❌ Command failed:', error instanceof Error ? error.message : String(error)); + console.error( + '❌ Command failed:', + error instanceof Error ? error.message : String(error), + ); if (error instanceof Error && error.stack) { console.error('\nStack trace:', error.stack); } @@ -216,6 +234,7 @@ try { ### 3. Output Formatting **Use consistent emoji indicators:** + - 🔄 - Loading/in progress - 🔍 - Searching - 📋 - Listing results @@ -225,9 +244,13 @@ try { - 💾 - File saved **Example:** + ```typescript console.log('🔍 Searching for objects...'); -const results = await adtClient.adt.repository.informationsystem.search.quickSearch({ query }); +const results = + await adtClient.adt.repository.informationsystem.search.quickSearch({ + query, + }); console.log(`📋 Found ${results.length} objects`); console.log('✅ Search complete!'); ``` @@ -256,12 +279,14 @@ For machine-readable output, add `--json` flag: ### When to Use V1 vs V2 **Use V2 (`@abapify/adt-client`) when:** + - Endpoint has a contract in v2 - Need type-safe responses - Simple request/response operations - Available contracts: discovery, sessions, systeminformation, search **Use V1 (`@abapify/adt-client`) when:** + - Endpoint not yet migrated to v2 - Need handler-based object operations - Need v1-specific features (searchObjectsDetailed with filters) @@ -271,11 +296,13 @@ For machine-readable output, add `--json` flag: When migrating a command from v1 to v2: 1. **Check if v2 contract exists:** + ```bash ls packages/adt-client/src/adt/**/*contract.ts ``` 2. **Update imports:** + ```typescript // Remove import { AdtClientImpl } from '@abapify/adt-client'; @@ -285,6 +312,7 @@ When migrating a command from v1 to v2: ``` 3. **Replace client initialization:** + ```typescript // Old: const client = new AdtClientImpl(); // New: @@ -292,12 +320,14 @@ When migrating a command from v1 to v2: ``` 4. **Update API calls:** + ```typescript // Old: await client.repository.searchObjects(...) // New: await adtClient.adt.repository.informationsystem.search.quickSearch(...) ``` 5. **Test the command:** + ```bash npx adt [args] ``` @@ -307,6 +337,7 @@ When migrating a command from v1 to v2: ## Testing Commands ### Manual Testing + ```bash # Authenticate first npx adt auth login @@ -318,6 +349,7 @@ npx adt [args] ``` ### Common Test Cases + - ✅ Authentication check (should fail if not authenticated) - ✅ Valid input (should succeed) - ✅ Invalid input (should show error message) @@ -329,24 +361,30 @@ npx adt [args] ### Available Helpers **`utils/adt-client.ts`** + - `getAdtClientV2(options?)` - Get authenticated v2 client **`utils/command-helpers.ts`** + - `createComponentLogger()` - Create scoped logger - `handleCommandError()` - Standard error handling **`utils/format-loader.ts`** + - `loadFormatPlugin()` - Load format plugins (e.g., @abapify/oat) **`utils/object-uri.ts`** + - URI parsing and construction utilities ## Critical Rules ### NO CONSOLE USAGE in Commands + **NEVER use `console.log`, `console.error`, `console.warn`, etc. directly in command implementations.** Commands should output to users using standard output/error streams: + - Use `console.log()` and `console.error()` only for **user-facing output** (results, messages) - For debug logging, pass a logger to the client via `getAdtClientV2({ logger, enableLogging: true })` - The v2 client will use the logger internally for HTTP requests, session management, errors, etc. @@ -356,26 +394,32 @@ Commands should output to users using standard output/error streams: ## Common Mistakes ### Mistake 1: Duplicating Client Initialization + **Symptom:** 15-20 lines of auth code in every command **Fix:** Use `getAdtClientV2()` helper ### Mistake 2: Inconsistent Error Messages + **Symptom:** Different error formats across commands **Fix:** Use standard error handling pattern (see above) ### Mistake 3: Not Handling Authentication + **Symptom:** Command crashes when user not authenticated **Fix:** Use `getAdtClientV2()` - it handles auth check automatically ### Mistake 4: Missing JSON Output + **Symptom:** Command only has human-readable output **Fix:** Add `--json` flag for machine-readable output ### Mistake 5: Mixing V1 and V2 Unnecessarily + **Symptom:** Using v1 client when v2 contract exists **Fix:** Check if v2 contract exists and use it ### Mistake 6: Using Console for Debug Logging + **Symptom:** Debug logs mixed with user output **Fix:** Pass logger to client and use `enableLogging` option @@ -384,6 +428,7 @@ Commands should output to users using standard output/error streams: After creating a command, register it in: 1. **`src/lib/commands/index.ts`:** + ```typescript export { myCommand } from './mycommand'; ``` diff --git a/packages/adt-cli/README.md b/packages/adt-cli/README.md index 3e475445..66765ccf 100644 --- a/packages/adt-cli/README.md +++ b/packages/adt-cli/README.md @@ -836,7 +836,7 @@ export const myCommand = new Command('my-command').action( } catch (error) { handleCommandError(error, 'My operation'); } - } + }, ); ``` diff --git a/packages/adt-cli/eslint.config.js b/packages/adt-cli/eslint.config.js index e2a15f2a..b7f62772 100644 --- a/packages/adt-cli/eslint.config.js +++ b/packages/adt-cli/eslint.config.js @@ -1,3 +1,3 @@ -import baseConfig from '../../eslint.config.js'; +import baseConfig from '../../eslint.config.mjs'; export default [...baseConfig]; diff --git a/packages/adt-cli/src/lib/cli.ts b/packages/adt-cli/src/lib/cli.ts index 2aed7646..9c98a8db 100644 --- a/packages/adt-cli/src/lib/cli.ts +++ b/packages/adt-cli/src/lib/cli.ts @@ -18,6 +18,7 @@ import { createCtsCommand, createReplCommand, packageGetCommand, + lsCommand, } from './commands'; import { refreshCommand } from './commands/auth/refresh'; // Deploy command moved to @abapify/adt-export plugin @@ -159,6 +160,9 @@ export async function createCLI(): Promise { // Search command program.addCommand(searchCommand); + // List objects in repository (format-aware: abapgit, AFF) + program.addCommand(lsCommand); + // CTS commands (v2 client) - replaces old 'transport' command // Use: adt cts search, adt cts get // NOTE: Future commands - adt cts create, adt cts release (via ADK), adt cts check @@ -229,6 +233,7 @@ export async function main(): Promise { logOutput: loggingConfig.logOutput, logResponseFiles: loggingConfig.logResponseFiles, verbose: globalOptions.verbose, + configPath: globalOptions.config, }); }); diff --git a/packages/adt-cli/src/lib/commands/auth/list.ts b/packages/adt-cli/src/lib/commands/auth/list.ts index 4c3c5aba..6cbc72d3 100644 --- a/packages/adt-cli/src/lib/commands/auth/list.ts +++ b/packages/adt-cli/src/lib/commands/auth/list.ts @@ -33,7 +33,7 @@ export const listCommand = new Command('list') } catch (error) { console.error( '❌ Failed to list systems:', - error instanceof Error ? error.message : String(error) + error instanceof Error ? error.message : String(error), ); process.exit(1); } diff --git a/packages/adt-cli/src/lib/commands/auth/refresh.ts b/packages/adt-cli/src/lib/commands/auth/refresh.ts index be898ac0..fb88b707 100644 --- a/packages/adt-cli/src/lib/commands/auth/refresh.ts +++ b/packages/adt-cli/src/lib/commands/auth/refresh.ts @@ -4,12 +4,12 @@ import { getDefaultSid, refreshCredentials, } from '../../utils/auth'; -import { - handleCommandError, -} from '../../utils/command-helpers'; +import { handleCommandError } from '../../utils/command-helpers'; export const refreshCommand = new Command('refresh') - .description('Refresh authentication session (auto-falls back to interactive if needed)') + .description( + 'Refresh authentication session (auto-falls back to interactive if needed)', + ) .option('--sid ', 'System ID to refresh (defaults to current default)') .action(async (options) => { try { @@ -49,7 +49,6 @@ export const refreshCommand = new Command('refresh') console.log(` Host: ${updatedSession.host}`); console.log(` Method: ${updatedSession.auth.method}`); console.log(''); - } catch (error) { console.log(''); handleCommandError(error, 'Refresh'); diff --git a/packages/adt-cli/src/lib/commands/auth/set-default.ts b/packages/adt-cli/src/lib/commands/auth/set-default.ts index aedf990c..d7f762a1 100644 --- a/packages/adt-cli/src/lib/commands/auth/set-default.ts +++ b/packages/adt-cli/src/lib/commands/auth/set-default.ts @@ -12,7 +12,9 @@ export const setDefaultCommand = new Command('set-default') if (!availableSids.includes(upperSid)) { console.error(`❌ System ${upperSid} not found.`); - console.error(`\nAvailable systems: ${availableSids.join(', ') || 'none'}`); + console.error( + `\nAvailable systems: ${availableSids.join(', ') || 'none'}`, + ); console.error(`💡 Run "npx adt auth login --sid=${upperSid}" first`); process.exit(1); } @@ -23,7 +25,7 @@ export const setDefaultCommand = new Command('set-default') } catch (error) { console.error( '❌ Failed to set default system:', - error instanceof Error ? error.message : String(error) + error instanceof Error ? error.message : String(error), ); process.exit(1); } diff --git a/packages/adt-cli/src/lib/commands/cts/index.ts b/packages/adt-cli/src/lib/commands/cts/index.ts index 18fd1826..8e7ee1a4 100644 --- a/packages/adt-cli/src/lib/commands/cts/index.ts +++ b/packages/adt-cli/src/lib/commands/cts/index.ts @@ -20,8 +20,9 @@ import { createTreeCommand } from './tree'; import { createTrCommand } from './tr'; export function createCtsCommand(): Command { - const ctsCmd = new Command('cts') - .description('CTS (Change and Transport System) operations'); + const ctsCmd = new Command('cts').description( + 'CTS (Change and Transport System) operations', + ); ctsCmd.addCommand(ctsSearchCommand); ctsCmd.addCommand(createTreeCommand()); diff --git a/packages/adt-cli/src/lib/commands/cts/tr/delete.ts b/packages/adt-cli/src/lib/commands/cts/tr/delete.ts index ef9e02ce..a1089073 100644 --- a/packages/adt-cli/src/lib/commands/cts/tr/delete.ts +++ b/packages/adt-cli/src/lib/commands/cts/tr/delete.ts @@ -26,7 +26,9 @@ export const ctsDeleteCommand = new Command('delete') const verboseFlag = globalOpts.verbose ?? ctx.verbose ?? false; const compact = !verboseFlag; const logger = - (this as any).logger ?? ctx.logger ?? createCliLogger({ verbose: verboseFlag }); + (this as any).logger ?? + ctx.logger ?? + createCliLogger({ verbose: verboseFlag }); const progress = createProgressReporter({ compact, logger }); try { @@ -34,7 +36,7 @@ export const ctsDeleteCommand = new Command('delete') // Step 1: Fetch transport details to show user what they're deleting progress.step(`🔍 Getting transport ${transport}...`); - + let transportInfo: any; try { transportInfo = await client.services.transports.get(transport); @@ -52,31 +54,39 @@ export const ctsDeleteCommand = new Command('delete') } // Step 2: Display warning with transport details - console.log('\n⚠️ WARNING: You are about to DELETE a transport request\n'); + console.log( + '\n⚠️ WARNING: You are about to DELETE a transport request\n', + ); console.log(` 🚛 Transport: ${request.number}`); console.log(` 📝 Description: ${request.desc || '-'}`); console.log(` 👤 Owner: ${request.owner || '-'}`); - console.log(` 📊 Status: ${request.status_text || request.status || '-'}`); - + console.log( + ` 📊 Status: ${request.status_text || request.status || '-'}`, + ); + // Count objects const taskCount = request.task?.length || 0; let objectCount = 0; if (request.task) { - const tasks = Array.isArray(request.task) ? request.task : [request.task]; + const tasks = Array.isArray(request.task) + ? request.task + : [request.task]; for (const task of tasks) { if (task.abap_object) { - const objs = Array.isArray(task.abap_object) ? task.abap_object : [task.abap_object]; + const objs = Array.isArray(task.abap_object) + ? task.abap_object + : [task.abap_object]; objectCount += objs.length; } } } if (request.all_objects?.abap_object) { - const objs = Array.isArray(request.all_objects.abap_object) - ? request.all_objects.abap_object + const objs = Array.isArray(request.all_objects.abap_object) + ? request.all_objects.abap_object : [request.all_objects.abap_object]; objectCount = Math.max(objectCount, objs.length); } - + console.log(` 📁 Tasks: ${taskCount}`); console.log(` 📦 Objects: ${objectCount}`); console.log('\n ⛔ This action is IRREVERSIBLE!\n'); @@ -99,13 +109,15 @@ export const ctsDeleteCommand = new Command('delete') // Step 4: Delete the transport progress.step(`🗑️ Deleting transport ${transport}...`); - + await client.services.transports.delete(transport); progress.done(); if (options.json) { - console.log(JSON.stringify({ deleted: transport, success: true }, null, 2)); + console.log( + JSON.stringify({ deleted: transport, success: true }, null, 2), + ); } else { console.log(`\n✅ Transport ${transport} deleted successfully`); } diff --git a/packages/adt-cli/src/lib/commands/cts/tr/get.ts b/packages/adt-cli/src/lib/commands/cts/tr/get.ts index e7fb9d80..3e72bf7d 100644 --- a/packages/adt-cli/src/lib/commands/cts/tr/get.ts +++ b/packages/adt-cli/src/lib/commands/cts/tr/get.ts @@ -1,6 +1,6 @@ /** * adt cts tr get - Get transport details - * + * * Uses ADK (AdkTransportRequest) for transport operations. * Renders via the Transport Page using the router. */ @@ -18,12 +18,15 @@ export const ctsGetCommand = new Command('get') .argument('', 'Transport number (e.g., S0DK942971)') .option('--json', 'Output as JSON') .option('--objects', 'Show list of objects in transport') - .action(async function(this: Command, transport: string, options) { + .action(async function (this: Command, transport: string, options) { const globalOpts = this.optsWithGlobals?.() ?? {}; const ctx = getCliContext(); const verboseFlag = globalOpts.verbose ?? ctx.verbose ?? false; const compact = !verboseFlag; - const logger = (this as any).logger ?? ctx.logger ?? createCliLogger({ verbose: verboseFlag }); + const logger = + (this as any).logger ?? + ctx.logger ?? + createCliLogger({ verbose: verboseFlag }); const progress = createProgressReporter({ compact, logger }); try { @@ -33,7 +36,7 @@ export const ctsGetCommand = new Command('get') // Use the router to navigate to the transport page // This uses ADK (AdkTransportRequest) under the hood - const page = await router.navTo(client, 'RQRQ', { + const page = await router.navTo(client, 'RQRQ', { name: transport, showObjects: options.objects ?? false, }); @@ -48,7 +51,6 @@ export const ctsGetCommand = new Command('get') // Use the page's print function for formatted output page.print(); } - } catch (error) { const message = error instanceof Error ? error.message : String(error); progress.done(`❌ Get failed: ${message}`); diff --git a/packages/adt-cli/src/lib/commands/cts/tree/index.ts b/packages/adt-cli/src/lib/commands/cts/tree/index.ts index 9da8c936..b2aa21b8 100644 --- a/packages/adt-cli/src/lib/commands/cts/tree/index.ts +++ b/packages/adt-cli/src/lib/commands/cts/tree/index.ts @@ -11,8 +11,9 @@ import { treeListCommand } from './list'; import { treeConfigCommand } from './config'; export function createTreeCommand(): Command { - const treeCmd = new Command('tree') - .description('Transport tree operations (uses search configuration)'); + const treeCmd = new Command('tree').description( + 'Transport tree operations (uses search configuration)', + ); // Default action - list transports treeCmd.addCommand(treeListCommand, { isDefault: true }); diff --git a/packages/adt-cli/src/lib/commands/cts/tree/list.ts b/packages/adt-cli/src/lib/commands/cts/tree/list.ts index 1cf51325..b4a4f8ff 100644 --- a/packages/adt-cli/src/lib/commands/cts/tree/list.ts +++ b/packages/adt-cli/src/lib/commands/cts/tree/list.ts @@ -3,7 +3,7 @@ * * Uses the /sap/bc/adt/cts/transportrequests endpoint with search configuration. * This endpoint supports full filtering (status, date range, request types). - * + * * Flow: * 1. GET /searchconfiguration/configurations → get config ID * 2. GET /transportrequests?targets=true&configUri= → get transports @@ -34,7 +34,11 @@ const STATUS_NAMES: Record = { /** * Format a single transport for display */ -function formatTransport(tr: AdkTransportRequest, index: number, total: number): void { +function formatTransport( + tr: AdkTransportRequest, + index: number, + total: number, +): void { const isLast = index === total - 1; const prefix = isLast ? '└──' : '├──'; const statusIcon = STATUS_ICONS[tr.status || ''] || '📄'; @@ -80,7 +84,7 @@ export const treeListCommand = new Command('list') if (options.json) { // Serialize transport data for JSON output - const jsonData = transports.map(t => ({ + const jsonData = transports.map((t) => ({ number: t.number, description: t.description, status: t.status, @@ -96,30 +100,40 @@ export const treeListCommand = new Command('list') console.log('\n📭 No transports found'); } else { // Group by status for display - const modifiable = displayTransports.filter((t: AdkTransportRequest) => t.status === 'D'); - const released = displayTransports.filter((t: AdkTransportRequest) => t.status === 'R'); + const modifiable = displayTransports.filter( + (t: AdkTransportRequest) => t.status === 'D', + ); + const released = displayTransports.filter( + (t: AdkTransportRequest) => t.status === 'R', + ); const other = displayTransports.filter( - (t: AdkTransportRequest) => t.status !== 'D' && t.status !== 'R' + (t: AdkTransportRequest) => t.status !== 'D' && t.status !== 'R', ); if (modifiable.length > 0) { console.log(`\n📂 Modifiable (${modifiable.length})`); - modifiable.forEach((tr: AdkTransportRequest, i: number) => formatTransport(tr, i, modifiable.length)); + modifiable.forEach((tr: AdkTransportRequest, i: number) => + formatTransport(tr, i, modifiable.length), + ); } if (released.length > 0) { console.log(`\n📁 Released (${released.length})`); - released.forEach((tr: AdkTransportRequest, i: number) => formatTransport(tr, i, released.length)); + released.forEach((tr: AdkTransportRequest, i: number) => + formatTransport(tr, i, released.length), + ); } if (other.length > 0) { console.log(`\n📋 Other (${other.length})`); - other.forEach((tr: AdkTransportRequest, i: number) => formatTransport(tr, i, other.length)); + other.forEach((tr: AdkTransportRequest, i: number) => + formatTransport(tr, i, other.length), + ); } if (transports.length > maxResults) { console.log( - `\n💡 Showing ${maxResults} of ${transports.length} transports (use --max to see more)` + `\n💡 Showing ${maxResults} of ${transports.length} transports (use --max to see more)`, ); } } @@ -129,7 +143,7 @@ export const treeListCommand = new Command('list') } catch (error) { console.error( '❌ Failed:', - error instanceof Error ? error.message : String(error) + error instanceof Error ? error.message : String(error), ); process.exit(1); } diff --git a/packages/adt-cli/src/lib/commands/fetch.ts b/packages/adt-cli/src/lib/commands/fetch.ts index 6fc73b7d..5f68913f 100644 --- a/packages/adt-cli/src/lib/commands/fetch.ts +++ b/packages/adt-cli/src/lib/commands/fetch.ts @@ -6,10 +6,18 @@ export const fetchCommand = new Command('fetch') .description('Fetch a URL with authentication (like curl but authenticated)') .argument('', 'URL path to fetch (e.g., /sap/bc/adt/core/http/sessions)') .option('-X, --method ', 'HTTP method', 'GET') - .option('-H, --header
', 'Add header (can be used multiple times)', collect, []) + .option( + '-H, --header
', + 'Add header (can be used multiple times)', + collect, + [], + ) .option('-d, --data ', 'Request body (for POST/PUT)') .option('-o, --output ', 'Save response to file') - .option('--accept ', 'Set Accept header (shorthand for -H "Accept: ")') + .option( + '--accept ', + 'Set Accept header (shorthand for -H "Accept: ")', + ) .action(async (url: string, options, command) => { try { // Create v2 client (uses global CLI context automatically) @@ -31,7 +39,12 @@ export const fetchCommand = new Command('fetch') customHeaders['Accept'] = options.accept; } - const method = options.method.toUpperCase() as 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; + const method = options.method.toUpperCase() as + | 'GET' + | 'POST' + | 'PUT' + | 'PATCH' + | 'DELETE'; console.log(`🔄 ${method} ${url}...\n`); @@ -44,7 +57,10 @@ export const fetchCommand = new Command('fetch') // Display response if (options.output) { - const content = typeof response === 'string' ? response : JSON.stringify(response, null, 2); + const content = + typeof response === 'string' + ? response + : JSON.stringify(response, null, 2); writeFileSync(options.output, content); console.log(`💾 Response saved to: ${options.output}`); } else { @@ -60,7 +76,7 @@ export const fetchCommand = new Command('fetch') } catch (error) { console.error( '❌ Request failed:', - error instanceof Error ? error.message : String(error) + error instanceof Error ? error.message : String(error), ); if (error instanceof Error && error.stack) { console.error('\nStack trace:', error.stack); diff --git a/packages/adt-cli/src/lib/commands/import/transport.ts b/packages/adt-cli/src/lib/commands/import/transport.ts index 0c591a53..7aef004f 100644 --- a/packages/adt-cli/src/lib/commands/import/transport.ts +++ b/packages/adt-cli/src/lib/commands/import/transport.ts @@ -3,6 +3,32 @@ import { ImportService } from '../../services/import/service'; import { IconRegistry } from '../../utils/icon-registry'; import { getAdtClientV2 } from '../../utils/adt-client-v2'; +function parseFormatOptionEntries(entries: string[]): Record { + const parsed: Record = {}; + + for (const entry of entries) { + const separatorIndex = entry.indexOf('='); + if (separatorIndex <= 0 || separatorIndex === entry.length - 1) { + throw new Error( + `Invalid --format-option '${entry}'. Expected key=value format.`, + ); + } + + const key = entry.slice(0, separatorIndex).trim(); + const value = entry.slice(separatorIndex + 1).trim(); + + if (!key || !value) { + throw new Error( + `Invalid --format-option '${entry}'. Expected key=value format.`, + ); + } + + parsed[key] = value; + } + + return parsed; +} + export const importTransportCommand = new Command('transport') .argument('', 'Transport request number to import') .argument('[targetFolder]', 'Target folder for output') @@ -21,6 +47,16 @@ export const importTransportCommand = new Command('transport') 'Output format: abapgit | oat | @abapify/abapgit | @abapify/oat', 'abapgit', ) + .option( + '--format-option ', + 'Format-specific option (repeatable), e.g. --format-option folderLogic=full', + (value: string, previous: string[]) => [...previous, value], + [], + ) + .option( + '--folder-logic ', + '[DEPRECATED] Use --format-option folderLogic=', + ) .option('--debug', 'Enable debug output', false) .action(async (transportNumber, targetFolder, options) => { try { @@ -45,12 +81,24 @@ export const importTransportCommand = new Command('transport') .split(',') .map((t: string) => t.trim().toUpperCase()) : undefined; + const formatOptions = parseFormatOptionEntries( + options.formatOption ?? [], + ); + + // Backward compatibility: keep --folder-logic alias while moving to generic format options. + if (options.folderLogic && !formatOptions.folderLogic) { + formatOptions.folderLogic = options.folderLogic; + console.warn( + '⚠️ --folder-logic is deprecated. Use --format-option folderLogic= instead.', + ); + } const result = await importService.importTransport({ transportNumber, outputPath, objectTypes, format: options.format, + formatOptions, debug: options.debug, }); diff --git a/packages/adt-cli/src/lib/commands/index.ts b/packages/adt-cli/src/lib/commands/index.ts index ea9b404d..91fe2fa0 100644 --- a/packages/adt-cli/src/lib/commands/index.ts +++ b/packages/adt-cli/src/lib/commands/index.ts @@ -18,3 +18,4 @@ export { setDefaultCommand } from './auth/set-default'; export { createCtsCommand } from './cts'; export { createReplCommand } from './repl'; export { packageGetCommand } from './package'; +export { lsCommand } from './ls'; diff --git a/packages/adt-cli/src/lib/commands/info.ts b/packages/adt-cli/src/lib/commands/info.ts index f4007198..14d799e8 100644 --- a/packages/adt-cli/src/lib/commands/info.ts +++ b/packages/adt-cli/src/lib/commands/info.ts @@ -19,7 +19,7 @@ export const infoCommand = new Command('info') options.system || (!options.session && !options.system); // Capture data for output - let capturedData: any = {}; + const capturedData: any = {}; // Create v2 client (uses global CLI context automatically) const adtClient = await getAdtClientV2(); diff --git a/packages/adt-cli/src/lib/commands/ls.ts b/packages/adt-cli/src/lib/commands/ls.ts new file mode 100644 index 00000000..f60f1193 --- /dev/null +++ b/packages/adt-cli/src/lib/commands/ls.ts @@ -0,0 +1,243 @@ +/** + * adt ls - List ABAP objects in repository + * + * Scans the current directory for ABAP objects and outputs their ADT URIs. + * Supports multiple formats (abapgit, AFF) with auto-detection. + * + * Usage: + * adt ls # Output URIs (one per line) + * adt ls --json # Output JSON with details + * adt ls --type CLAS,INTF # Filter by object type + * adt ls --output file.txt # Write to file + */ + +import { Command } from 'commander'; +import { readdir, readFile, stat, writeFile } from 'fs/promises'; +import { join, basename, extname } from 'path'; +import { existsSync } from 'fs'; + +interface AbapObject { + uri: string; + type: string; + name: string; + path: string; +} + +// Map file extensions/types to ADT URI paths +const TYPE_TO_URI_PATH: Record = { + clas: '/sap/bc/adt/oo/classes', + intf: '/sap/bc/adt/oo/interfaces', + prog: '/sap/bc/adt/programs/programs', + fugr: '/sap/bc/adt/functions/groups', + tabl: '/sap/bc/adt/ddic/tables', + dtel: '/sap/bc/adt/ddic/dataelements', + doma: '/sap/bc/adt/ddic/domains', + shlp: '/sap/bc/adt/ddic/searchhelps', + ttyp: '/sap/bc/adt/ddic/tabletypes', + view: '/sap/bc/adt/ddic/views', + ddls: '/sap/bc/adt/ddic/ddl/sources', + dcls: '/sap/bc/adt/acm/dcl/sources', + bdef: '/sap/bc/adt/bo/behaviordefinitions', + srvd: '/sap/bc/adt/ddic/srvd/sources', + srvb: '/sap/bc/adt/businessservices/bindings', + msag: '/sap/bc/adt/messageclass', + tran: '/sap/bc/adt/transactions', + enho: '/sap/bc/adt/enhancements/enhobjects', + enhs: '/sap/bc/adt/enhancements/enhspots', + xslt: '/sap/bc/adt/transformations/xslt', + // Add more as needed +}; + +/** + * Detect repository format + */ +async function detectFormat( + dir: string, +): Promise<'abapgit' | 'aff' | 'unknown'> { + // Check for .abapgit.xml + if (existsSync(join(dir, '.abapgit.xml'))) { + return 'abapgit'; + } + if (existsSync(join(dir, 'src', '.abapgit.xml'))) { + return 'abapgit'; + } + + // Check for AFF format (look for .json files with aff schema) + const srcDir = join(dir, 'src'); + if (existsSync(srcDir)) { + try { + const files = await readdir(srcDir, { recursive: true }); + for (const file of files) { + if (file.toString().endsWith('.json')) { + const content = await readFile( + join(srcDir, file.toString()), + 'utf-8', + ); + if (content.includes('"$schema"') && content.includes('aff')) { + return 'aff'; + } + } + } + } catch { + // Ignore errors + } + } + + return 'unknown'; +} + +/** + * Scan abapgit format repository + * Pattern: src//..abap + */ +async function scanAbapgitFormat(dir: string): Promise { + const objects: AbapObject[] = []; + const srcDir = join(dir, 'src'); + + if (!existsSync(srcDir)) { + return objects; + } + + async function scanDirectory(currentDir: string): Promise { + const entries = await readdir(currentDir, { withFileTypes: true }); + + for (const entry of entries) { + const fullPath = join(currentDir, entry.name); + + if (entry.isDirectory()) { + await scanDirectory(fullPath); + } else if (entry.isFile() && entry.name.endsWith('.abap')) { + // Parse filename: ..abap + const parts = entry.name.split('.'); + if (parts.length >= 3) { + const type = parts[parts.length - 2].toLowerCase(); + const name = parts.slice(0, -2).join('.').toUpperCase(); + + const uriPath = TYPE_TO_URI_PATH[type]; + if (uriPath) { + objects.push({ + uri: `${uriPath}/${name.toLowerCase()}`, + type: type.toUpperCase(), + name, + path: fullPath.replace(dir + '/', ''), + }); + } + } + } + } + } + + await scanDirectory(srcDir); + return objects; +} + +/** + * Scan AFF format repository + * Pattern: src//..json (metadata) + .abap (source) + */ +async function scanAffFormat(dir: string): Promise { + const objects: AbapObject[] = []; + const srcDir = join(dir, 'src'); + + if (!existsSync(srcDir)) { + return objects; + } + + async function scanDirectory(currentDir: string): Promise { + const entries = await readdir(currentDir, { withFileTypes: true }); + + for (const entry of entries) { + const fullPath = join(currentDir, entry.name); + + if (entry.isDirectory()) { + await scanDirectory(fullPath); + } else if (entry.isFile() && entry.name.endsWith('.json')) { + // Parse filename: ..json + const parts = entry.name.split('.'); + if (parts.length >= 3 && parts[parts.length - 1] === 'json') { + const type = parts[parts.length - 2].toLowerCase(); + const name = parts.slice(0, -2).join('.').toUpperCase(); + + const uriPath = TYPE_TO_URI_PATH[type]; + if (uriPath) { + objects.push({ + uri: `${uriPath}/${name.toLowerCase()}`, + type: type.toUpperCase(), + name, + path: fullPath.replace(dir + '/', ''), + }); + } + } + } + } + } + + await scanDirectory(srcDir); + return objects; +} + +/** + * Main ls command + */ +export const lsCommand = new Command('ls') + .description('List ABAP objects in repository') + .option('--json', 'Output as JSON') + .option( + '-t, --type ', + 'Filter by object type (comma-separated, e.g., CLAS,INTF)', + ) + .option('-o, --output ', 'Write output to file') + .option( + '-d, --dir ', + 'Directory to scan (default: current directory)', + ) + .action(async (options) => { + const dir = options.dir || process.cwd(); + + // Detect format + const format = await detectFormat(dir); + + if (format === 'unknown') { + console.error('❌ Could not detect repository format (abapgit or AFF)'); + console.error( + ' Make sure .abapgit.xml or AFF .json files exist in the repository', + ); + process.exit(1); + } + + // Scan objects based on format + let objects: AbapObject[]; + if (format === 'abapgit') { + objects = await scanAbapgitFormat(dir); + } else { + objects = await scanAffFormat(dir); + } + + // Filter by type if specified + if (options.type) { + const types = options.type.toUpperCase().split(','); + objects = objects.filter((obj) => types.includes(obj.type)); + } + + // Sort by name + objects.sort((a, b) => a.name.localeCompare(b.name)); + + // Format output + let output: string; + if (options.json) { + output = JSON.stringify(objects, null, 2); + } else { + // Default: one URI per line + output = objects.map((obj) => obj.uri).join('\n'); + } + + // Write to file or stdout + if (options.output) { + await writeFile(options.output, output + '\n'); + console.error( + `✅ Written ${objects.length} objects to ${options.output}`, + ); + } else { + console.log(output); + } + }); diff --git a/packages/adt-cli/src/lib/config/loader.ts b/packages/adt-cli/src/lib/config/loader.ts index 07a00475..fd02fead 100644 --- a/packages/adt-cli/src/lib/config/loader.ts +++ b/packages/adt-cli/src/lib/config/loader.ts @@ -35,7 +35,7 @@ export class ConfigLoader implements IConfigLoader { const validation = this.validate(config); if (!validation.valid) { throw new Error( - `Invalid configuration: ${validation.errors.join(', ')}` + `Invalid configuration: ${validation.errors.join(', ')}`, ); } @@ -47,7 +47,7 @@ export class ConfigLoader implements IConfigLoader { throw new Error( `Failed to load config from ${resolvedPath}: ${ error instanceof Error ? error.message : String(error) - }` + }`, ); } } @@ -82,7 +82,7 @@ export class ConfigLoader implements IConfigLoader { } if (!plugin.name.startsWith('@abapify/')) { warnings.push( - `Plugin ${plugin.name} does not follow @abapify/* naming convention` + `Plugin ${plugin.name} does not follow @abapify/* naming convention`, ); } } @@ -91,11 +91,11 @@ export class ConfigLoader implements IConfigLoader { // Validate defaults if (config.defaults?.format) { const availableFormats = config.plugins.formats.map((p) => - p.name.replace('@abapify/', '') + p.name.replace('@abapify/', ''), ); if (!availableFormats.includes(config.defaults.format)) { errors.push( - `Default format '${config.defaults.format}' is not in configured plugins` + `Default format '${config.defaults.format}' is not in configured plugins`, ); } } diff --git a/packages/adt-cli/src/lib/config/package-mapper.ts b/packages/adt-cli/src/lib/config/package-mapper.ts index b4766425..63effd1d 100644 --- a/packages/adt-cli/src/lib/config/package-mapper.ts +++ b/packages/adt-cli/src/lib/config/package-mapper.ts @@ -16,7 +16,7 @@ export class PackageMapper { // 1. Try static mapping first (reverse lookup) const staticMatch = Object.entries(this.mapping).find( ([localName, remoteName]) => - typeof remoteName === 'string' && remoteName === remotePkg + typeof remoteName === 'string' && remoteName === remotePkg, ); if (staticMatch) { diff --git a/packages/adt-cli/src/lib/plugin-loader.ts b/packages/adt-cli/src/lib/plugin-loader.ts index 9c0c03c6..096f0bca 100644 --- a/packages/adt-cli/src/lib/plugin-loader.ts +++ b/packages/adt-cli/src/lib/plugin-loader.ts @@ -129,7 +129,7 @@ function pluginToCommand( const args: Record = { ...options }; if (plugin.arguments) { plugin.arguments.forEach((argDef, index) => { - const argName = argDef.name.replace(/[<>\[\]]/g, ''); + const argName = argDef.name.replace(/[<>[\]]/g, ''); args[argName] = actionArgs[index]; }); } diff --git a/packages/adt-cli/src/lib/plugins/index.ts b/packages/adt-cli/src/lib/plugins/index.ts index a5fad4f3..f52537a3 100644 --- a/packages/adt-cli/src/lib/plugins/index.ts +++ b/packages/adt-cli/src/lib/plugins/index.ts @@ -23,7 +23,7 @@ export type { IPluginRegistry, } from './interfaces'; -export { +export { ADT_TYPE_MAPPINGS, getObjectType, getKindFromType, diff --git a/packages/adt-cli/src/lib/plugins/interfaces.ts b/packages/adt-cli/src/lib/plugins/interfaces.ts index 22aeda25..2e382425 100644 --- a/packages/adt-cli/src/lib/plugins/interfaces.ts +++ b/packages/adt-cli/src/lib/plugins/interfaces.ts @@ -1,7 +1,7 @@ import type { AdkObject as AdkObjectType, AdkKind } from '@abapify/adk'; -import { - ADT_TYPE_MAPPINGS, - getKindForType as adkGetKindForType, +import { + ADT_TYPE_MAPPINGS, + getKindForType as adkGetKindForType, getTypeForKind as adkGetTypeForKind, } from '@abapify/adk'; @@ -69,31 +69,34 @@ export interface DeserializedObject { /** * Handler for a specific object type - * + * * Each object type (CLAS, INTF, DOMA, etc.) has its own handler * that knows how to serialize/deserialize that type. */ export interface ObjectHandler { /** ABAP object type code (e.g., 'CLAS') */ readonly type: AbapObjectType; - + /** File extension used by this format (e.g., 'clas', 'intf') */ readonly fileExtension: string; - + /** * Serialize ADK object to files * @param object - ADK object to serialize * @returns Files to write */ serialize(object: T): Promise; - + /** * Deserialize files to object data * @param files - Map of filename to content * @param objectName - Name of the object * @returns Parsed object data */ - deserialize?(files: Map, objectName: string): Promise; + deserialize?( + files: Map, + objectName: string, + ): Promise; } /** @@ -104,22 +107,22 @@ export interface ObjectHandlerRegistry { * Register a handler for an object type */ register(handler: ObjectHandler): void; - + /** * Get handler for an object type */ get(type: AbapObjectType): ObjectHandler | undefined; - + /** * Check if a type has a handler */ has(type: AbapObjectType): boolean; - + /** * Get all registered types */ getTypes(): AbapObjectType[]; - + /** * Get all handlers */ @@ -131,24 +134,24 @@ export interface ObjectHandlerRegistry { */ export function createHandlerRegistry(): ObjectHandlerRegistry { const handlers = new Map(); - + return { register(handler: ObjectHandler): void { handlers.set(handler.type, handler); }, - + get(type: AbapObjectType): ObjectHandler | undefined { return handlers.get(type); }, - + has(type: AbapObjectType): boolean { return handlers.has(type); }, - + getTypes(): AbapObjectType[] { return Array.from(handlers.keys()); }, - + getHandlers(): ObjectHandler[] { return Array.from(handlers.values()); }, @@ -165,13 +168,13 @@ export function createHandlerRegistry(): ObjectHandlerRegistry { export interface ExportOptions { /** Target directory */ targetDir: string; - + /** Overwrite existing files */ overwrite?: boolean; - + /** Include source code */ includeSource?: boolean; - + /** Filter object types */ objectTypes?: AbapObjectType[]; } @@ -182,13 +185,13 @@ export interface ExportOptions { export interface ImportOptions { /** Source directory */ sourceDir: string; - + /** Transport request for changes */ transportRequest?: string; - + /** Dry run - don't actually import */ dryRun?: boolean; - + /** Filter object types */ objectTypes?: AbapObjectType[]; } @@ -229,13 +232,13 @@ export interface ImportResult { export interface PluginContext { /** Root directory for the operation */ rootDir: string; - + /** Package path from root (e.g., ['ZROOT', 'ZSUB']) */ packagePath: string[]; - + /** Current package name */ packageName: string; - + /** Logger for plugin output */ log: { info(message: string): void; @@ -243,7 +246,7 @@ export interface PluginContext { error(message: string): void; debug(message: string): void; }; - + /** Progress callback */ onProgress?(current: number, total: number, message: string): void; } @@ -254,10 +257,10 @@ export interface PluginContext { /** * Core plugin interface for format plugins - * + * * Plugins implement this interface to provide serialization/deserialization * for a specific format (abapGit, OAT, etc.). - * + * * The plugin manages: * - Registry of object handlers * - File system operations @@ -271,17 +274,17 @@ export interface FormatPlugin { // ============================================ // Primary API: import/export // ============================================ - + /** * Export objects from SAP to file system - * + * * This is the main entry point for serialization. * It handles: * - Iterating over objects * - Calling appropriate handlers * - Writing files to disk * - Creating format-specific metadata - * + * * @param objects - ADK objects to export * @param options - Export options * @param context - Plugin context @@ -289,35 +292,35 @@ export interface FormatPlugin { export?( objects: AdkObject[], options: ExportOptions, - context: PluginContext + context: PluginContext, ): Promise; - + /** * Import objects from file system to SAP - * + * * This is the main entry point for deserialization. * It handles: * - Scanning directory structure * - Calling appropriate handlers * - Creating/updating objects in SAP - * + * * @param options - Import options * @param context - Plugin context */ import?( options: ImportOptions, - context: PluginContext + context: PluginContext, ): Promise; // ============================================ // Object Handler Registry // ============================================ - + /** * Get handler for a specific object type */ getHandler?(type: AbapObjectType): ObjectHandler | undefined; - + /** * Register a custom handler */ @@ -338,7 +341,7 @@ export interface FormatPlugin { serializeObject( object: AdkObject, targetPath: string, - context: SerializationContext + context: SerializationContext, ): Promise; /** @@ -348,7 +351,7 @@ export interface FormatPlugin { serialize?( objects: AdkObject[], targetPath: string, - options?: SerializeOptions + options?: SerializeOptions, ): Promise; /** @@ -356,7 +359,7 @@ export interface FormatPlugin { */ deserialize?( sourcePath: string, - options?: DeserializeOptions + options?: DeserializeOptions, ): Promise; /** diff --git a/packages/adt-cli/src/lib/plugins/plugin-manager.ts b/packages/adt-cli/src/lib/plugins/plugin-manager.ts index 0edf6b30..a5450a4f 100644 --- a/packages/adt-cli/src/lib/plugins/plugin-manager.ts +++ b/packages/adt-cli/src/lib/plugins/plugin-manager.ts @@ -30,6 +30,7 @@ export class PluginManager { private loadedPlugins = new Map(); private configLoader = new ConfigLoader(); + // eslint-disable-next-line @typescript-eslint/no-empty-function private constructor() {} static getInstance(): PluginManager { diff --git a/packages/adt-cli/src/lib/services/import/service.ts b/packages/adt-cli/src/lib/services/import/service.ts index d3495cf8..149ac64b 100644 --- a/packages/adt-cli/src/lib/services/import/service.ts +++ b/packages/adt-cli/src/lib/services/import/service.ts @@ -1,6 +1,7 @@ -import { loadFormatPlugin } from '../../utils/format-loader'; -import type { ImportContext } from '@abapify/adt-plugin'; -import { AdkPackage } from '@abapify/adk'; +import { loadFormatPlugin, parseFormatSpec } from '../../utils/format-loader'; +import { getConfig } from '../../utils/destinations'; +import type { ImportContext, FormatOptionValue } from '@abapify/adt-plugin'; +import { AdkPackage, AdkTransport } from '@abapify/adk'; /** * Options for importing a transport request @@ -14,6 +15,8 @@ export interface TransportImportOptions { objectTypes?: string[]; /** Format plugin name or package (e.g., 'oat', '@abapify/oat') */ format: string; + /** Format-specific options provided via CLI */ + formatOptions?: Record; /** Enable debug output */ debug?: boolean; } @@ -70,6 +73,46 @@ export interface ImportResult { * 4. Delegate serialization to format plugin */ export class ImportService { + private async getConfigFormatOptions( + formatSpec: string, + ): Promise> { + const loadedConfig = await getConfig(); + const rawConfig = loadedConfig.raw as Record; + const importConfig = rawConfig.import; + + if ( + !importConfig || + typeof importConfig !== 'object' || + Array.isArray(importConfig) + ) { + return {}; + } + + const formatOptionsMap = (importConfig as { formatOptions?: unknown }) + .formatOptions; + if ( + !formatOptionsMap || + typeof formatOptionsMap !== 'object' || + Array.isArray(formatOptionsMap) + ) { + return {}; + } + + const { package: packageName } = parseFormatSpec(formatSpec); + const shortName = packageName.replace('@abapify/adt-plugin-', ''); + const pluginName = packageName.replace('@abapify/', ''); + const aliases = [formatSpec, packageName, shortName, pluginName]; + + for (const alias of aliases) { + const value = (formatOptionsMap as Record)[alias]; + if (value && typeof value === 'object' && !Array.isArray(value)) { + return value as Record; + } + } + + return {}; + } + /** * Import objects from a transport request * @@ -87,14 +130,14 @@ export class ImportService { // Load format plugin const plugin = await loadFormatPlugin(options.format); + const configFormatOptions = await this.getConfigFormatOptions( + options.format, + ); if (options.debug) { console.log(`✅ Loaded plugin: ${plugin.name}`); } - // Import AdkTransport dynamically (ADK must be initialized before this) - const { AdkTransport } = await import('@abapify/adk'); - // Fetch transport if (options.debug) { console.log(`🚛 Fetching transport: ${options.transportNumber}`); @@ -185,6 +228,8 @@ export class ImportService { // CLI provides a resolver function to get full package hierarchy from SAP const context: ImportContext = { resolvePackagePath, + formatOptions: options.formatOptions, + configFormatOptions, }; // Delegate to plugin - import object from SAP to local files @@ -258,9 +303,6 @@ export class ImportService { console.log(`✅ Loaded plugin: ${plugin.name}`); } - // Import AdkPackage dynamically (ADK must be initialized before this) - const { AdkPackage } = await import('@abapify/adk'); - // Fetch package if (options.debug) { console.log(`📦 Fetching package: ${options.packageName}`); diff --git a/packages/adt-cli/src/lib/shared/adt-client.ts b/packages/adt-cli/src/lib/shared/adt-client.ts index 78b1336a..f3fffbd6 100644 --- a/packages/adt-cli/src/lib/shared/adt-client.ts +++ b/packages/adt-cli/src/lib/shared/adt-client.ts @@ -1,9 +1,9 @@ /** * Shared ADT Client State - * + * * Global state and singleton instances for ADT client management. * This module holds stateful objects that are shared across CLI commands. - * + * * For the factory function that creates clients, see utils/adt-client.ts */ import type { Logger } from '@abapify/adt-client'; @@ -19,6 +19,8 @@ export interface CliContext { logOutput?: string; logResponseFiles?: boolean; verbose?: boolean | string; + /** Path to config file (from --config flag) */ + configPath?: string; } let globalCliContext: CliContext = {}; @@ -52,13 +54,15 @@ export function resetCliContext(): void { /** * Silent logger - suppresses all output (default for CLI) */ +// eslint-disable-next-line @typescript-eslint/no-empty-function +const noop = () => {}; export const silentLogger: Logger = { - trace: () => {}, - debug: () => {}, - info: () => {}, - warn: () => {}, - error: () => {}, - fatal: () => {}, + trace: noop, + debug: noop, + info: noop, + warn: noop, + error: noop, + fatal: noop, child: () => silentLogger, }; diff --git a/packages/adt-cli/src/lib/testing/cli-test-utils.ts b/packages/adt-cli/src/lib/testing/cli-test-utils.ts index 2cc8255e..a20df51c 100644 --- a/packages/adt-cli/src/lib/testing/cli-test-utils.ts +++ b/packages/adt-cli/src/lib/testing/cli-test-utils.ts @@ -25,7 +25,7 @@ export interface CliTestResult { */ export async function executeCli( args: string[], - options: CliTestOptions = {} + options: CliTestOptions = {}, ): Promise { const { mockClient, captureOutput = true } = options; @@ -105,7 +105,7 @@ export async function executeCli( * Create a mock ADT client for testing */ export function createMockAdtClient( - options: { fixturesPath?: string } = {} + options: { fixturesPath?: string } = {}, ): MockAdtClient { return new MockAdtClient({ fixturesPath: options.fixturesPath, diff --git a/packages/adt-cli/src/lib/testing/e2e-transport-import.test.ts b/packages/adt-cli/src/lib/testing/e2e-transport-import.test.ts index 4c9591ff..eff4ebf0 100644 --- a/packages/adt-cli/src/lib/testing/e2e-transport-import.test.ts +++ b/packages/adt-cli/src/lib/testing/e2e-transport-import.test.ts @@ -39,7 +39,7 @@ describe('Transport Import E2E Tests', () => { { mockClient, captureOutput: true, - } + }, ); expect(result.exitCode).toBe(1); @@ -61,7 +61,7 @@ describe('Transport Import E2E Tests', () => { { mockClient, captureOutput: true, - } + }, ); expect(result.exitCode).toBe(0); @@ -84,7 +84,7 @@ describe('Transport Import E2E Tests', () => { { mockClient, captureOutput: true, - } + }, ); expect(result.exitCode).toBe(0); @@ -107,7 +107,7 @@ describe('Transport Import E2E Tests', () => { { mockClient, captureOutput: true, - } + }, ); expect(result.exitCode).toBe(1); @@ -130,7 +130,7 @@ describe('Transport Import E2E Tests', () => { { mockClient, captureOutput: true, - } + }, ); expect(result.exitCode).toBe(0); @@ -145,7 +145,7 @@ describe('Transport Import E2E Tests', () => { { mockClient, captureOutput: true, - } + }, ); expect(result.exitCode).toBe(0); @@ -167,7 +167,7 @@ describe('Transport Import E2E Tests', () => { { mockClient, captureOutput: true, - } + }, ); expect(result.exitCode).toBe(0); diff --git a/packages/adt-cli/src/lib/testing/mock-adt-client.ts b/packages/adt-cli/src/lib/testing/mock-adt-client.ts index 15a1c6bf..3b9107d1 100644 --- a/packages/adt-cli/src/lib/testing/mock-adt-client.ts +++ b/packages/adt-cli/src/lib/testing/mock-adt-client.ts @@ -72,7 +72,7 @@ export class MockAdtClient { // Check for transport details pattern const transportMatch = endpoint.match( - /\/sap\/bc\/adt\/cts\/transports\/([A-Z0-9]+)/ + /\/sap\/bc\/adt\/cts\/transports\/([A-Z0-9]+)/, ); if (transportMatch) { return 'transport-details'; @@ -86,7 +86,7 @@ export class MockAdtClient { // Check for interface pattern const interfaceMatch = endpoint.match( - /\/sap\/bc\/adt\/oo\/interfaces\/([a-z_]+)/ + /\/sap\/bc\/adt\/oo\/interfaces\/([a-z_]+)/, ); if (interfaceMatch) { return 'interface-zif-test'; // Use generic interface fixture diff --git a/packages/adt-cli/src/lib/testing/mock-oat-plugin.ts b/packages/adt-cli/src/lib/testing/mock-oat-plugin.ts index ace54c52..5a8ad546 100644 --- a/packages/adt-cli/src/lib/testing/mock-oat-plugin.ts +++ b/packages/adt-cli/src/lib/testing/mock-oat-plugin.ts @@ -30,10 +30,10 @@ export class MockOatPlugin { async serialize( objectData: any, objectType: string, - outputDir: string + outputDir: string, ): Promise { console.log( - `📝 Mock OAT Plugin: Serializing ${objectType} to ${outputDir}` + `📝 Mock OAT Plugin: Serializing ${objectType} to ${outputDir}`, ); console.log(`🎛️ Using preset: ${this.options.preset}`); console.log(`📁 File structure: ${this.options.fileStructure}`); diff --git a/packages/adt-cli/src/lib/ui/components/field.ts b/packages/adt-cli/src/lib/ui/components/field.ts index 2c384d7c..74cf579b 100644 --- a/packages/adt-cli/src/lib/ui/components/field.ts +++ b/packages/adt-cli/src/lib/ui/components/field.ts @@ -8,11 +8,24 @@ import chalk from 'chalk'; import type { Component } from '../types'; -export default function Field(label: string, value?: string | number | boolean): Component { +export default function Field( + label: string, + value?: string | number | boolean, +): Component { // Skip empty values (including false for booleans) - const isEmpty = value === undefined || value === null || value === '' || value === '-' || value === false; + const isEmpty = + value === undefined || + value === null || + value === '' || + value === '-' || + value === false; return { - render: () => isEmpty ? [] : [` ${chalk.dim(label + ':')} ${value === true ? 'Yes' : String(value)}`], + render: () => + isEmpty + ? [] + : [ + ` ${chalk.dim(label + ':')} ${value === true ? 'Yes' : String(value)}`, + ], }; } diff --git a/packages/adt-cli/src/lib/ui/components/index.ts b/packages/adt-cli/src/lib/ui/components/index.ts index 720aa635..3fedfc09 100644 --- a/packages/adt-cli/src/lib/ui/components/index.ts +++ b/packages/adt-cli/src/lib/ui/components/index.ts @@ -8,4 +8,15 @@ export { default as Field } from './field'; export { default as Section } from './section'; export { default as Box } from './box'; export { default as Text } from './text'; -export { default as Link, AdtLink, PackageLink, hyperlink, link, adtLink, packageLink, setAdtSystem, getAdtSystem, type AdtObjectRef } from './link'; +export { + default as Link, + AdtLink, + PackageLink, + hyperlink, + link, + adtLink, + packageLink, + setAdtSystem, + getAdtSystem, + type AdtObjectRef, +} from './link'; diff --git a/packages/adt-cli/src/lib/ui/components/link.ts b/packages/adt-cli/src/lib/ui/components/link.ts index 8fa27370..8b969155 100644 --- a/packages/adt-cli/src/lib/ui/components/link.ts +++ b/packages/adt-cli/src/lib/ui/components/link.ts @@ -60,54 +60,54 @@ export function getAdtSystem(): string { */ const ADT_PATH_TEMPLATES: Record = { // Packages - 'DEVC': '/packages/{name}', + DEVC: '/packages/{name}', 'DEVC/K': '/packages/{name}', // Classes - 'CLAS': '/oo/classes/{name}', + CLAS: '/oo/classes/{name}', 'CLAS/OC': '/oo/classes/{name}', // Interfaces - 'INTF': '/oo/interfaces/{name}', + INTF: '/oo/interfaces/{name}', 'INTF/OI': '/oo/interfaces/{name}', // Function Groups - 'FUGR': '/functions/groups/{name}', + FUGR: '/functions/groups/{name}', 'FUGR/F': '/functions/groups/{name}', // Function Modules (need group context, simplified) - 'FUNC': '/functions/groups/{name}', + FUNC: '/functions/groups/{name}', // Programs - 'PROG': '/programs/programs/{name}', + PROG: '/programs/programs/{name}', 'PROG/P': '/programs/programs/{name}', // Includes 'PROG/I': '/programs/includes/{name}', // Tables - 'TABL': '/ddic/tables/{name}', + TABL: '/ddic/tables/{name}', 'TABL/DT': '/ddic/tables/{name}', // Structures 'TABL/DS': '/ddic/structures/{name}', // Views - 'VIEW': '/ddic/views/{name}', + VIEW: '/ddic/views/{name}', // Data Elements - 'DTEL': '/ddic/dataelements/{name}', + DTEL: '/ddic/dataelements/{name}', 'DTEL/DE': '/ddic/dataelements/{name}', // Domains - 'DOMA': '/ddic/domains/{name}', + DOMA: '/ddic/domains/{name}', 'DOMA/DO': '/ddic/domains/{name}', // Search Helps - 'SHLP': '/ddic/searchhelps/{name}', + SHLP: '/ddic/searchhelps/{name}', // Lock Objects - 'ENQU': '/ddic/lockobjects/{name}', + ENQU: '/ddic/lockobjects/{name}', // Message Classes - 'MSAG': '/messageclass/{name}', + MSAG: '/messageclass/{name}', // Transactions - 'TRAN': '/transactions/{name}', + TRAN: '/transactions/{name}', // CDS Views - 'DDLS': '/ddic/ddl/sources/{name}', + DDLS: '/ddic/ddl/sources/{name}', 'DDLS/DF': '/ddic/ddl/sources/{name}', // Behavior Definitions - 'BDEF': '/bo/behaviordefinitions/{name}', + BDEF: '/bo/behaviordefinitions/{name}', // Service Definitions - 'SRVD': '/businessservices/servicedefinitions/{name}', + SRVD: '/businessservices/servicedefinitions/{name}', // Service Bindings - 'SRVB': '/businessservices/servicebindings/{name}', + SRVB: '/businessservices/servicebindings/{name}', }; /** @@ -167,14 +167,16 @@ export function link(text: string, url: string): string { */ export function adtLink(ref?: AdtObjectRef): string { const name = ref?.name || ''; - + if (!adtSystemName || !name) { return name ? chalk.cyan(name) : ''; } // If URI is provided, use it directly if (ref?.uri) { - const path = ref.uri.startsWith('/sap/bc/adt') ? ref.uri : `/sap/bc/adt${ref.uri}`; + const path = ref.uri.startsWith('/sap/bc/adt') + ? ref.uri + : `/sap/bc/adt${ref.uri}`; const url = `adt://${adtSystemName}${path}`; return hyperlink(chalk.cyan(name), url); } diff --git a/packages/adt-cli/src/lib/ui/components/section.ts b/packages/adt-cli/src/lib/ui/components/section.ts index 64ef003c..5ba4a6e6 100644 --- a/packages/adt-cli/src/lib/ui/components/section.ts +++ b/packages/adt-cli/src/lib/ui/components/section.ts @@ -7,7 +7,10 @@ import chalk from 'chalk'; import type { Component } from '../types'; -export default function Section(title: string, ...children: Component[]): Component { +export default function Section( + title: string, + ...children: Component[] +): Component { return { render: () => [ '', diff --git a/packages/adt-cli/src/lib/ui/components/text.ts b/packages/adt-cli/src/lib/ui/components/text.ts index 44fee0ed..f51c458c 100644 --- a/packages/adt-cli/src/lib/ui/components/text.ts +++ b/packages/adt-cli/src/lib/ui/components/text.ts @@ -7,7 +7,14 @@ import chalk from 'chalk'; import type { Component } from '../types'; -type TextStyle = 'bold' | 'dim' | 'italic' | 'underline' | 'success' | 'error' | 'warning'; +type TextStyle = + | 'bold' + | 'dim' + | 'italic' + | 'underline' + | 'success' + | 'error' + | 'warning'; export default function Text(content: string, style?: TextStyle): Component { let styled = content; diff --git a/packages/adt-cli/src/lib/ui/pages/adt-core.ts b/packages/adt-cli/src/lib/ui/pages/adt-core.ts index d8aeedb3..c9d20ba1 100644 --- a/packages/adt-cli/src/lib/ui/pages/adt-core.ts +++ b/packages/adt-cli/src/lib/ui/pages/adt-core.ts @@ -47,7 +47,7 @@ export interface AdtCorePageOptions { */ export default function AdtCorePage( obj: AdtCoreObject, - options?: AdtCorePageOptions + options?: AdtCorePageOptions, ): Page { const icon = options?.icon || '📄'; @@ -64,7 +64,7 @@ export default function AdtCorePage( Field('Created by', obj.createdBy), Field('Created at', obj.createdAt), Field('Changed by', obj.changedBy), - Field('Changed at', obj.changedAt) + Field('Changed at', obj.changedAt), ), // Technical @@ -73,8 +73,8 @@ export default function AdtCorePage( Field('Language', obj.language || obj.masterLanguage), Field('Master System', obj.masterSystem), Field('ABAP Version', obj.abapLanguageVersion), - Field('Version', obj.version) - ) + Field('Version', obj.version), + ), ); // Create clickable title link to open in Eclipse ADT @@ -91,6 +91,7 @@ export default function AdtCorePage( } return lines; }, + // eslint-disable-next-line @typescript-eslint/no-empty-function print: () => {}, // placeholder, set below }; diff --git a/packages/adt-cli/src/lib/ui/pages/class.ts b/packages/adt-cli/src/lib/ui/pages/class.ts index 1a65821c..a1f8be0a 100644 --- a/packages/adt-cli/src/lib/ui/pages/class.ts +++ b/packages/adt-cli/src/lib/ui/pages/class.ts @@ -173,6 +173,7 @@ function renderClassPage(cls: any, _params: NavParams): Page { title: `Class: ${name}`, icon: '🔷', render: () => content.render(), + // eslint-disable-next-line @typescript-eslint/no-empty-function print: () => {}, }; diff --git a/packages/adt-cli/src/lib/ui/pages/discovery.ts b/packages/adt-cli/src/lib/ui/pages/discovery.ts index 75c7ac94..92216762 100644 --- a/packages/adt-cli/src/lib/ui/pages/discovery.ts +++ b/packages/adt-cli/src/lib/ui/pages/discovery.ts @@ -118,6 +118,7 @@ function renderDiscoveryPage( title: 'ADT Service Discovery', icon: '🔍', render: () => content.render(), + // eslint-disable-next-line @typescript-eslint/no-empty-function print: () => {}, }; diff --git a/packages/adt-cli/src/lib/ui/pages/generic.ts b/packages/adt-cli/src/lib/ui/pages/generic.ts index 75aced79..818006b4 100644 --- a/packages/adt-cli/src/lib/ui/pages/generic.ts +++ b/packages/adt-cli/src/lib/ui/pages/generic.ts @@ -35,8 +35,9 @@ export default function GenericPage(obj: ObjectReference): Page { Field('Package', obj.packageName), Field('URI', obj.uri), Text(''), - Text('💡 Use --json for full data', 'dim') + Text('💡 Use --json for full data', 'dim'), ).render(), + // eslint-disable-next-line @typescript-eslint/no-empty-function print: () => {}, // placeholder }; diff --git a/packages/adt-cli/src/lib/ui/pages/interface.ts b/packages/adt-cli/src/lib/ui/pages/interface.ts index 0dceb44c..8de0b84c 100644 --- a/packages/adt-cli/src/lib/ui/pages/interface.ts +++ b/packages/adt-cli/src/lib/ui/pages/interface.ts @@ -117,6 +117,7 @@ function renderInterfacePage(intf: any, _params: NavParams): Page { title: `Interface: ${name}`, icon: '🔶', render: () => content.render(), + // eslint-disable-next-line @typescript-eslint/no-empty-function print: () => {}, }; diff --git a/packages/adt-cli/src/lib/ui/pages/package.ts b/packages/adt-cli/src/lib/ui/pages/package.ts index cdd7d8e8..429310a9 100644 --- a/packages/adt-cli/src/lib/ui/pages/package.ts +++ b/packages/adt-cli/src/lib/ui/pages/package.ts @@ -126,6 +126,7 @@ function renderPackagePage(pkg: PackageXml, _params: NavParams): Page { title: `Package: ${name}`, icon: '📦', render: () => content.render(), + // eslint-disable-next-line @typescript-eslint/no-empty-function print: () => {}, }; diff --git a/packages/adt-cli/src/lib/ui/pages/transport.ts b/packages/adt-cli/src/lib/ui/pages/transport.ts index 7050327f..bfa2b33d 100644 --- a/packages/adt-cli/src/lib/ui/pages/transport.ts +++ b/packages/adt-cli/src/lib/ui/pages/transport.ts @@ -7,7 +7,11 @@ import type { Page, Component } from '../types'; import type { NavParams } from '../router'; -import { AdkTransportRequest, AdkTransportTask, type AdkTransportObject } from '@abapify/adk'; +import { + AdkTransportRequest, + AdkTransportTask, + type AdkTransportObject, +} from '@abapify/adk'; import { Box, Field, Section, Text, adtLink } from '../components'; import { IconRegistry } from '../../utils/icon-registry'; import { createPrintFn } from '../render'; @@ -63,7 +67,6 @@ function getObjectIcon(type: string): string { return IconRegistry.getIcon(type); } - // ============================================================================= // Render Functions // ============================================================================= @@ -73,7 +76,7 @@ function getObjectIcon(type: string): string { */ function getMaxNameLength(objects: AdkTransportObject[]): number { if (!objects || objects.length === 0) return 30; - return Math.max(...objects.map(o => (o.name || '').length)); + return Math.max(...objects.map((o) => (o.name || '').length)); } /** @@ -81,7 +84,11 @@ function getMaxNameLength(objects: AdkTransportObject[]): number { * Format: [icon] [pgmid] [type] [name-link] [desc] * Like Eclipse: R3TR CLAS ZCL_MY_CLASS Description */ -function renderObject(obj: AdkTransportObject, prefix: string = '', nameWidth: number = 30): Component { +function renderObject( + obj: AdkTransportObject, + prefix = '', + nameWidth = 30, +): Component { const name = obj.name || ''; const type = obj.type || ''; const pgmid = obj.pgmid || ''; @@ -93,21 +100,30 @@ function renderObject(obj: AdkTransportObject, prefix: string = '', nameWidth: n const pgmidPad = pgmid.padEnd(4); const typePad = type.padEnd(4); const desc = obj.objectDescription || '-'; - return Text(`${prefix}${icon} ${pgmidPad} ${typePad} ${nameLink}${padding} ${desc}${lock}`); + return Text( + `${prefix}${icon} ${pgmidPad} ${typePad} ${nameLink}${padding} ${desc}${lock}`, + ); } /** * Render task with its objects (Eclipse-style: simple indentation, no tree connectors for objects) */ -function renderTask(task: AdkTransportTask, isLast: boolean, showObjects: boolean, nameWidth: number = 30): Component[] { +function renderTask( + task: AdkTransportTask, + isLast: boolean, + showObjects: boolean, + nameWidth = 30, +): Component[] { const prefix = isLast ? '└─' : '├─'; const childIndent = ' '; // Simple indentation for objects under task const components: Component[] = []; - + // Task header with ADT link const taskLink = adtLink({ name: task.number, uri: task.uri }); - components.push(Text(`${prefix} 📁 ${taskLink} - ${task.owner} (${task.statusText})`)); - + components.push( + Text(`${prefix} 📁 ${taskLink} - ${task.owner} (${task.statusText})`), + ); + // Task objects (Eclipse-style: simple indented list) if (showObjects) { const taskObjects = task.objects; @@ -119,14 +135,17 @@ function renderTask(task: AdkTransportTask, isLast: boolean, showObjects: boolea components.push(Text(`${childIndent}(no objects)`)); } } - + return components; } /** * Render transport page */ -function renderTransportPage(transport: TransportData, params: NavParams): Page { +function renderTransportPage( + transport: TransportData, + params: NavParams, +): Page { const showObjects = (params.showObjects as boolean | undefined) ?? false; // Tasks only exist on requests, not on tasks themselves const tasks = 'tasks' in transport ? transport.tasks : []; @@ -141,35 +160,40 @@ function renderTransportPage(transport: TransportData, params: NavParams): Page Field('Short Description', transport.description || '-'), Field('Owner', transport.owner || '-'), ]; - + // For tasks, show parent request link if (transport.itemType === 'task' && 'request' in transport) { const parentRequest = (transport as AdkTransportTask).request; - const parentLink = adtLink({ name: parentRequest.number, uri: parentRequest.uri }); + const parentLink = adtLink({ + name: parentRequest.number, + uri: parentRequest.uri, + }); propertyFields.push(Field('Request', parentLink)); } - + propertyFields.push( Field('Target', transport.targetDescription || transport.target || '-'), Field('Status', transport.statusText || transport.status || '-'), Field('Last Changed', formatDate(transport.lastChangedAt)), - Field('ADT Link', transportLink) + Field('ADT Link', transportLink), ); - + sections.push(Section('▼ Properties', ...propertyFields)); // Objects section const objectComponents: Component[] = []; - + // Calculate max name width for alignment const nameWidth = getMaxNameLength(objects); - + if (tasks.length > 0) { // Show tree with tasks (only for requests) for (let i = 0; i < tasks.length; i++) { const task = tasks[i]; const isLast = i === tasks.length - 1; - objectComponents.push(...renderTask(task, isLast, showObjects, nameWidth)); + objectComponents.push( + ...renderTask(task, isLast, showObjects, nameWidth), + ); } } else if (showObjects && objects.length > 0) { // No tasks (or this is a task itself), show objects directly with indentation @@ -179,7 +203,9 @@ function renderTransportPage(transport: TransportData, params: NavParams): Page } } else if (!showObjects && (tasks.length > 0 || objects.length > 0)) { const totalObjects = objects.length; - objectComponents.push(Text(`${tasks.length} task(s), ${totalObjects} object(s)`)); + objectComponents.push( + Text(`${tasks.length} task(s), ${totalObjects} object(s)`), + ); objectComponents.push(Text(`Use --objects flag to show details`)); } else { objectComponents.push(Text('(no objects)')); @@ -191,12 +217,14 @@ function renderTransportPage(transport: TransportData, params: NavParams): Page // Determine if this is a request or task const itemType = transport.itemType; // 'request' or 'task' - const typeLabel = itemType === 'task' ? 'Transport Task' : 'Transport Request'; + const typeLabel = + itemType === 'task' ? 'Transport Task' : 'Transport Request'; const page: Page = { title: `${typeLabel}: ${transport.number}`, icon: '📋', render: () => content.render(), + // eslint-disable-next-line @typescript-eslint/no-empty-function print: () => {}, }; @@ -213,12 +241,12 @@ function renderTransportPage(transport: TransportData, params: NavParams): Page * * Self-registers with the router on import. * Type: RQRQ (Transport Request) - * + * * Usage: * ```ts - * const page = await router.navTo(client, 'RQRQ', { + * const page = await router.navTo(client, 'RQRQ', { * name: 'S0DK942971', - * showObjects: true + * showObjects: true * }); * page.print(); * ``` diff --git a/packages/adt-cli/src/lib/ui/render.ts b/packages/adt-cli/src/lib/ui/render.ts index dcc11912..7620ee8f 100644 --- a/packages/adt-cli/src/lib/ui/render.ts +++ b/packages/adt-cli/src/lib/ui/render.ts @@ -10,12 +10,12 @@ import type { Page, MenuItem } from './types'; /** * Create print function for a page */ -export function createPrintFn(page: { +export function createPrintFn(page: { title: string; titleLink?: string; - icon?: string; - menu?: MenuItem[]; - footer?: string; + icon?: string; + menu?: MenuItem[]; + footer?: string; render: () => string[]; }): () => void { return () => { diff --git a/packages/adt-cli/src/lib/ui/router.ts b/packages/adt-cli/src/lib/ui/router.ts index 2e088e43..1d27552b 100644 --- a/packages/adt-cli/src/lib/ui/router.ts +++ b/packages/adt-cli/src/lib/ui/router.ts @@ -64,7 +64,9 @@ export interface PageDefinition { /** * Define and register a page in one step */ -export function definePage(definition: PageDefinition): PageDefinition { +export function definePage( + definition: PageDefinition, +): PageDefinition { router.register({ type: definition.type, name: definition.name, @@ -121,7 +123,11 @@ class ObjectTypeRouter { * Navigate to a page with parameters * Fetches data and renders the page in one call */ - async navTo(client: AdtClient, type: string, params: NavParams = {}): Promise { + async navTo( + client: AdtClient, + type: string, + params: NavParams = {}, + ): Promise { const route = this.get(type); if (!route) { throw new Error(`No route registered for type: ${type}`); diff --git a/packages/adt-cli/src/lib/utils/adt-client-v2.ts b/packages/adt-cli/src/lib/utils/adt-client-v2.ts index 1e970380..fc00c191 100644 --- a/packages/adt-cli/src/lib/utils/adt-client-v2.ts +++ b/packages/adt-cli/src/lib/utils/adt-client-v2.ts @@ -8,14 +8,31 @@ * - CLI handles auth management (via v1 AuthManager stored in ~/.adt/auth.json) * - This module extracts credentials and creates v2 client * - v2 client remains pure (no CLI/file I/O dependencies) - * + * * Shared state (context, loggers, capture) is in shared/adt-client.ts */ -import { createAdtClient, LoggingPlugin, FileLoggingPlugin, type Logger, type ResponseContext, type AdtClient } from '@abapify/adt-client'; +import { + createAdtClient, + LoggingPlugin, + FileLoggingPlugin, + type Logger, + type ResponseContext, + type AdtClient, +} from '@abapify/adt-client'; import type { AdtAdapterConfig } from '@abapify/adt-client'; import { initializeAdk, isAdkInitialized } from '@abapify/adk'; -import { loadAuthSession, isExpired, refreshCredentials, type CookieCredentials, type BasicCredentials, type AuthSession } from './auth'; -import { createProgressReporter, type ProgressReporter } from './progress-reporter'; +import { + loadAuthSession, + isExpired, + refreshCredentials, + type CookieCredentials, + type BasicCredentials, + type AuthSession, +} from './auth'; +import { + createProgressReporter, + type ProgressReporter, +} from './progress-reporter'; import { setAdtSystem } from '../ui/components/link'; // Re-export shared state from shared/adt-client.ts for backward compatibility @@ -72,7 +89,7 @@ export interface AdtClientV2Options { /** * Try to auto-refresh expired session credentials - * + * * @param session - The expired session * @param sid - Optional SID for error messages * @returns Updated session with fresh credentials @@ -80,7 +97,7 @@ export interface AdtClientV2Options { async function tryAutoRefresh( session: AuthSession, sid: string | undefined, - progress: ProgressReporter + progress: ProgressReporter, ): Promise { // Check if plugin is available for refresh if (!session.auth.plugin) { @@ -90,9 +107,11 @@ async function tryAutoRefresh( } progress.step(`🔄 Session expired for ${session.sid}, refreshing...`); - + try { - const refreshedSession = await refreshCredentials(session, { log: progress.step }); + const refreshedSession = await refreshCredentials(session, { + log: progress.step, + }); if (!refreshedSession) { throw new Error('Refresh returned null'); } @@ -100,9 +119,14 @@ async function tryAutoRefresh( return refreshedSession; } catch (error) { progress.done('❌ Auto-refresh failed'); - console.error('❌ Auto-refresh failed:', error instanceof Error ? error.message : String(error)); + console.error( + '❌ Auto-refresh failed:', + error instanceof Error ? error.message : String(error), + ); const sidArg = sid ? ` --sid=${sid}` : ''; - console.error(`💡 Run "npx adt auth login${sidArg}" to re-authenticate manually`); + console.error( + `💡 Run "npx adt auth login${sidArg}" to re-authenticate manually`, + ); process.exit(1); } } @@ -134,7 +158,9 @@ async function tryAutoRefresh( * plugins: [myPlugin] * }); */ -export async function getAdtClientV2(options?: AdtClientV2Options): Promise { +export async function getAdtClientV2( + options?: AdtClientV2Options, +): Promise { // Merge with global CLI context (explicit options take precedence) const ctx = getCliContext(); const effectiveOptions = { @@ -151,14 +177,23 @@ export async function getAdtClientV2(options?: AdtClientV2Options): Promise { - logger.info(`${msg}${data ? ` ${JSON.stringify(data)}` : ''}`); - })); + plugins.push( + new LoggingPlugin((msg, data) => { + logger.info(`${msg}${data ? ` ${JSON.stringify(data)}` : ''}`); + }), + ); } // Add user-provided plugins last @@ -231,7 +270,11 @@ export async function getAdtClientV2(options?: AdtClientV2Options): Promise Promise) | undefined; - if (effectiveOptions.autoReauth && session.auth.method === 'cookie' && session.auth.plugin) { + if ( + effectiveOptions.autoReauth && + session.auth.method === 'cookie' && + session.auth.plugin + ) { // Capture current session for the callback closure let currentSession = session; let refreshAttempts = 0; @@ -241,18 +284,28 @@ export async function getAdtClientV2(options?: AdtClientV2Options): Promise MAX_REFRESH_ATTEMPTS) { - const error = new Error(`Maximum refresh attempts (${MAX_REFRESH_ATTEMPTS}) exceeded`); + const error = new Error( + `Maximum refresh attempts (${MAX_REFRESH_ATTEMPTS}) exceeded`, + ); console.error('❌ Auto-refresh failed: Too many attempts'); - const sidArg = effectiveOptions.sid ? ` --sid=${effectiveOptions.sid}` : ''; - console.error(`💡 Run "npx adt auth login${sidArg}" to re-authenticate manually`); + const sidArg = effectiveOptions.sid + ? ` --sid=${effectiveOptions.sid}` + : ''; + console.error( + `💡 Run "npx adt auth login${sidArg}" to re-authenticate manually`, + ); throw error; } - progress.step(`🔄 Session expired, refreshing credentials for ${currentSession.sid}... (attempt ${refreshAttempts}/${MAX_REFRESH_ATTEMPTS})`); + progress.step( + `🔄 Session expired, refreshing credentials for ${currentSession.sid}... (attempt ${refreshAttempts}/${MAX_REFRESH_ATTEMPTS})`, + ); try { // Refresh credentials using the auth plugin (opens browser for SAML) - const refreshedSession = await refreshCredentials(currentSession, { log: progress.step }); + const refreshedSession = await refreshCredentials(currentSession, { + log: progress.step, + }); if (!refreshedSession) { throw new Error('Refresh returned null'); } @@ -267,9 +320,16 @@ export async function getAdtClientV2(options?: AdtClientV2Options): Promise[0]) { +export function saveAuthSession( + session: Parameters[0], +) { authManager.saveSession(session); } @@ -73,7 +75,9 @@ export function setDefaultSid(sid: string) { /** * Check if session is expired */ -export function isExpired(session: Parameters[0]) { +export function isExpired( + session: Parameters[0], +) { return authManager.isExpired(session); } @@ -82,7 +86,7 @@ export function isExpired(session: Parameters[0]) */ export async function refreshCredentials( session: Parameters[0], - options?: Parameters[1] + options?: Parameters[1], ) { return authManager.refreshCredentials(session, options); } diff --git a/packages/adt-cli/src/lib/utils/command-helpers.ts b/packages/adt-cli/src/lib/utils/command-helpers.ts index c5a43fd8..9ceb32f8 100644 --- a/packages/adt-cli/src/lib/utils/command-helpers.ts +++ b/packages/adt-cli/src/lib/utils/command-helpers.ts @@ -26,7 +26,7 @@ export function createCommandLogger(command: Command): Logger { */ export function createComponentLogger( command: Command, - component: string + component: string, ): Logger { const logger = createCommandLogger(command); return logger.child({ component }); @@ -38,7 +38,7 @@ export function createComponentLogger( export function handleCommandError(error: unknown, operation: string): never { console.error( `❌ ${operation} failed:`, - error instanceof Error ? error.message : String(error) + error instanceof Error ? error.message : String(error), ); process.exit(1); } diff --git a/packages/adt-cli/src/lib/utils/destinations.ts b/packages/adt-cli/src/lib/utils/destinations.ts index feb8e72c..53c236c5 100644 --- a/packages/adt-cli/src/lib/utils/destinations.ts +++ b/packages/adt-cli/src/lib/utils/destinations.ts @@ -1,20 +1,36 @@ /** * Destination utilities - * + * * Loads destinations from adt.config.ts/json using @abapify/adt-config */ -import { loadConfig, type LoadedConfig, type Destination } from '@abapify/adt-config'; +import { + loadConfig, + type LoadedConfig, + type Destination, +} from '@abapify/adt-config'; +import { getCliContext } from '../shared/adt-client'; -// Cached config instance +// Cached config instance (keyed by configPath to handle different configs) let cachedConfig: LoadedConfig | null = null; +let cachedConfigPath: string | undefined = undefined; /** * Get loaded config (cached) + * Uses configPath from CLI context if available (from --config flag) */ export async function getConfig(): Promise { + const context = getCliContext(); + const configPath = context.configPath; + + // Invalidate cache if configPath changed + if (cachedConfig && cachedConfigPath !== configPath) { + cachedConfig = null; + } + if (!cachedConfig) { - cachedConfig = await loadConfig(); + cachedConfig = await loadConfig({ configPath }); + cachedConfigPath = configPath; } return cachedConfig; } @@ -23,7 +39,9 @@ export async function getConfig(): Promise { * Get a destination by name (SID) * @param name Destination name (e.g., 'BHF', 'S0D') */ -export async function getDestination(name: string): Promise { +export async function getDestination( + name: string, +): Promise { const config = await getConfig(); return config.getDestination(name); } @@ -49,6 +67,7 @@ export async function hasDestination(name: string): Promise { */ export function clearConfigCache(): void { cachedConfig = null; + cachedConfigPath = undefined; } // Re-export types diff --git a/packages/adt-cli/src/lib/utils/object-uri.test.ts b/packages/adt-cli/src/lib/utils/object-uri.test.ts index d1ddc340..e2d349c5 100644 --- a/packages/adt-cli/src/lib/utils/object-uri.test.ts +++ b/packages/adt-cli/src/lib/utils/object-uri.test.ts @@ -73,7 +73,7 @@ describe('object-uri utilities', () => { it('should detect class with section', () => { const result = detectObjectTypeFromFilename( - 'zcl_test.clas.definitions.abap' + 'zcl_test.clas.definitions.abap', ); expect(result).toEqual({ type: 'CLAS', diff --git a/packages/adt-cli/src/lib/utils/object-uri.ts b/packages/adt-cli/src/lib/utils/object-uri.ts index 68c11527..33542e2f 100644 --- a/packages/adt-cli/src/lib/utils/object-uri.ts +++ b/packages/adt-cli/src/lib/utils/object-uri.ts @@ -120,7 +120,7 @@ export function parseAbapFilename(filename: string): ParsedAbapFile | null { * Uses the parsed filename structure and object mappings */ export function detectObjectTypeFromFilename( - filename: string + filename: string, ): ObjectTypeInfo | null { const parsed = parseAbapFilename(filename); if (!parsed) { @@ -164,7 +164,7 @@ export function filenameToObjectUri(filename: string): string | null { */ export function getSourcePath( objectInfo: ObjectTypeInfo, - version?: 'active' | 'inactive' + version?: 'active' | 'inactive', ): string { const mapping = ABAP_OBJECT_MAPPINGS[objectInfo.type.toLowerCase()]; @@ -186,7 +186,7 @@ export function getSourcePath( */ export function filenameToSourceUri( filename: string, - version?: 'active' | 'inactive' + version?: 'active' | 'inactive', ): { objectUri: string; sourcePath: string; diff --git a/packages/adt-cli/src/lib/utils/progress-reporter.ts b/packages/adt-cli/src/lib/utils/progress-reporter.ts index dbc53517..aebd3dde 100644 --- a/packages/adt-cli/src/lib/utils/progress-reporter.ts +++ b/packages/adt-cli/src/lib/utils/progress-reporter.ts @@ -32,7 +32,9 @@ function sanitize(message: string): string { return message.replace(/\s+/g, ' ').trim(); } -export function createProgressReporter(options: ProgressOptions = {}): ProgressReporter { +export function createProgressReporter( + options: ProgressOptions = {}, +): ProgressReporter { const compact = Boolean(options.compact); const logger = options.logger; const level = options.level ?? 'info'; @@ -42,7 +44,11 @@ export function createProgressReporter(options: ProgressOptions = {}): ProgressR const logWithFlag = (message: string, meta?: Record) => { if (logger) { const logFn = (logger as any)[level] ?? logger.info; - logFn.call(logger, message, { progress: true, component: 'progress', ...meta }); + logFn.call(logger, message, { + progress: true, + component: 'progress', + ...meta, + }); } }; diff --git a/packages/adt-client/AGENTS.md b/packages/adt-client/AGENTS.md index 6d598efc..13112e5e 100644 --- a/packages/adt-client/AGENTS.md +++ b/packages/adt-client/AGENTS.md @@ -27,6 +27,7 @@ client.fetch('/arbitrary/endpoint', { method: 'GET' }) ``` **Layer 1: Contracts** (`src/adt/` → `client.adt.*`) + - Thin, declarative HTTP definitions - Pure data structures (no business logic) - Schema-driven type inference @@ -34,6 +35,7 @@ client.fetch('/arbitrary/endpoint', { method: 'GET' }) - Example: `client.adt.core.http.sessions.getSession()` **Layer 2: Services** (`src/services/` → `client.services.*`) + - Business logic orchestration - Combines multiple contract calls - Domain-specific workflows @@ -42,6 +44,7 @@ client.fetch('/arbitrary/endpoint', { method: 'GET' }) - Example: `client.services.transports.importAndActivate(transportId)` **Utility Methods** (on client directly) + - `client.fetch(url, options)` - Generic authenticated HTTP requests - Not contracts (no schema), not services (no business logic) - For debugging, testing, undocumented endpoints @@ -49,18 +52,21 @@ client.fetch('/arbitrary/endpoint', { method: 'GET' }) ### When to Use Each Layer **Use Contracts when:** + - You need direct access to a specific SAP ADT endpoint - You want 1:1 HTTP mapping with type safety - The operation is a simple request/response (no orchestration) - Example: Fetching session data, searching objects, reading class metadata **Use Services when:** + - You need to combine multiple contract calls - Business logic, validation, or error handling is required - The operation involves workflows or state management - Example: Import transport + activate objects + verify success **Use Utilities when:** + - Testing undocumented endpoints - Debugging raw API responses - One-off requests that don't justify a contract @@ -70,11 +76,13 @@ See [SERVICE-ARCHITECTURE.md](./docs/SERVICE-ARCHITECTURE.md) for detailed examp ## Critical Rules ### Rule 0: NO CONSOLE USAGE + **NEVER use `console.log`, `console.error`, `console.warn`, or any console methods directly in the v2 client code.** The v2 client is a pure library that must not perform direct I/O. Instead: ✅ **CORRECT** - Use the logger parameter: + ```typescript // In adapter.ts, session manager, etc. logger?.debug('Session: CSRF token cached'); @@ -83,18 +91,21 @@ logger?.warn('Session cleared due to 403'); ``` ❌ **WRONG** - Direct console usage: + ```typescript -console.log('Debug info'); // ❌ NEVER -console.error('Error'); // ❌ NEVER +console.log('Debug info'); // ❌ NEVER +console.error('Error'); // ❌ NEVER ``` **Why?** + - V2 client is a library, not a CLI tool - Callers control logging via the `logger` parameter - Enables testability (mock logger in tests) - Allows integration with any logging framework (pino, winston, bunyan, etc.) **Logger Interface:** + ```typescript export interface Logger { trace(msg: string, obj?: any): void; @@ -108,12 +119,13 @@ export interface Logger { ``` Pass logger to client: + ```typescript const client = createAdtClient({ baseUrl: 'https://...', username: 'user', password: 'pass', - logger: myLogger, // ← Optional, but required for internal logging + logger: myLogger, // ← Optional, but required for internal logging }); ``` @@ -122,6 +134,7 @@ const client = createAdtClient({ **MANDATORY**: Every contract endpoint MUST include a `responses` field for type inference. ❌ **WRONG** - No type inference (returns `unknown`): + ```typescript export const badContract = createContract({ getData: () => @@ -134,37 +147,40 @@ export const badContract = createContract({ ✅ **CORRECT** - Full type inference: **For XML responses with schema:** + ```typescript import { ExampleSchema } from './example-schema'; export const goodContract = createContract({ getData: () => adtHttp.get('/sap/bc/adt/example', { - responses: { 200: ExampleSchema }, // ← REQUIRED for type inference + responses: { 200: ExampleSchema }, // ← REQUIRED for type inference headers: { Accept: 'application/vnd.sap.adt.example.v1+xml' }, }), }); ``` **For JSON responses:** + ```typescript import { ExampleSchema } from './example-schema'; export const goodContract = createContract({ getData: () => adtHttp.get('/sap/bc/adt/example', { - responses: { 200: ExampleSchema }, // ← REQUIRED (Inferrable schema) + responses: { 200: ExampleSchema }, // ← REQUIRED (Inferrable schema) headers: { Accept: 'application/vnd.sap.adt.example.v1+json' }, }), }); ``` **For plain text responses:** + ```typescript export const goodContract = createContract({ getData: () => adtHttp.get('/sap/bc/adt/example', { - responses: { 200: undefined as unknown as string }, // ← REQUIRED + responses: { 200: undefined as unknown as string }, // ← REQUIRED headers: { Accept: 'text/plain' }, }), }); @@ -213,6 +229,7 @@ describe('Feature Type Inference', () => { ``` **After creating the test**: + ```bash # Build and typecheck - this MUST pass npx nx build adt-client @@ -233,7 +250,7 @@ import { createSchema } from '../../../base/schema'; import type { InferSchemaType } from '../../../base/schema'; export const ExampleSchema = createSchema({ - tag: 'namespace:element', // Use namespaced tag if applicable + tag: 'namespace:element', // Use namespaced tag if applicable ns: { namespace: 'http://www.sap.com/adt/namespace', atom: 'http://www.w3.org/2005/Atom', @@ -250,6 +267,7 @@ export type ExampleXml = InferSchemaType; **Why `createSchema()` is required**: The helper automatically adds the `_infer` property that `speci` needs for type inference. Without it, contract methods will return `ElementSchema` instead of your parsed type, breaking type safety. **For JSON Schemas** (Inferrable pattern): + ```typescript // example-schema.ts @@ -258,8 +276,8 @@ export type ExampleXml = InferSchemaType; */ export interface ExampleJson { // Match exact field names from SAP response (check actual API!) - systemID?: string; // Note: SAP often uses camelCase starting lowercase - userName?: string; // Not 'user_name' or 'User' + systemID?: string; // Note: SAP often uses camelCase starting lowercase + userName?: string; // Not 'user_name' or 'User' // Document optional vs required fields accurately requiredField: string; @@ -294,6 +312,7 @@ You don't need to parse responses manually in contracts. ### Rule 5: Vendor-Specific Content Types SAP uses vendor-specific content types like: + - `application/vnd.sap.adt.core.http.session.v3+xml` - `application/vnd.sap.adt.core.http.systeminformation.v1+json` @@ -308,6 +327,7 @@ The adapter recognizes `+json` and `+xml` suffixes automatically (fixed in [adap Before writing any code, understand the actual API using ALL THREE sources: **Source 1: Discovery Collections** (URL + Content Types) + ```bash # Check existing parsed collections ls e2e/adt-codegen/generated/collections/sap/bc/adt// @@ -317,6 +337,7 @@ cat e2e/adt-codegen/generated/collections/sap/bc/adt//.json ``` Collections contain: + - `href` - Endpoint path - `accepts` - Content types the endpoint accepts - `templateLinks` - URL templates with parameters @@ -325,6 +346,7 @@ Collections contain: **Source 2: SAP SDK XSD Schemas** (Official Schema Definitions) First, extract SDK if not done: + ```bash # From abapify root, extract SDK from existing installation cd e2e/adt-sdk @@ -332,6 +354,7 @@ npx tsx scripts/extract-sdk.ts /path/to/sdk/jars ``` Then read schemas: + ```bash # List available schemas ls e2e/adt-sdk/extracted/schemas/xsd/*.xsd @@ -341,17 +364,20 @@ cat e2e/adt-sdk/extracted/schemas/xsd/.xsd ``` SDK schemas provide: + - Official XML element/attribute definitions - Namespace URIs (e.g., `http://www.sap.com/cts/adt/tm`) - Type definitions and constraints - Relationships between elements **Key CTS schemas:** + - `transportmanagment.xsd` - Transport requests, tasks, objects - `transportsearch.xsd` - Transport search results - `transport-properties.xsd` - Transport properties **Source 3: Real Endpoint Calls** (Actual Response Data) + ```bash # Use adt fetch to get real response npx adt fetch /sap/bc/adt/ -o tmp/response.xml @@ -361,6 +387,7 @@ npx adt fetch /sap/bc/adt/ -H "Accept: application/vnd.sap.adt.feature ``` **⚠️ IMPORTANT: Use ALL THREE sources together!** + - Collections → URL and content types - XSD schemas → Official structure and namespaces - Real calls → Actual data to verify and create fixtures @@ -370,6 +397,7 @@ npx adt fetch /sap/bc/adt/ -H "Accept: application/vnd.sap.adt.feature **Location:** `fixtures/sap/bc/adt//.xml` **CRITICAL: Mock all sensitive data!** + - ❌ Real transport IDs (DEVK900001) - ✅ Mock transport IDs (MOCK900001) - ❌ Real usernames (PPLENKOV) @@ -404,12 +432,12 @@ touch src/adt/path/to/feature-contract.ts ```typescript import { createContract, adtHttp } from '../../../base/contract'; -import { FeatureSchema } from './feature-schema'; // or type { FeatureJson } +import { FeatureSchema } from './feature-schema'; // or type { FeatureJson } export const featureContract = createContract({ getFeature: () => adtHttp.get('/sap/bc/adt/path/to/feature', { - responses: { 200: FeatureSchema }, // ← MANDATORY + responses: { 200: FeatureSchema }, // ← MANDATORY headers: { Accept: 'application/vnd.sap.adt.feature.v1+xml', 'X-sap-adt-sessiontype': 'stateful', @@ -434,7 +462,7 @@ export const adtContract = { http: { sessions: sessionsContract, systeminformation: systeminformationContract, - feature: featureContract, // ← Add here + feature: featureContract, // ← Add here }, }, } satisfies RestContract; @@ -469,6 +497,7 @@ touch src/services/feature-service.ts ``` **When to create a service:** + - Combining multiple contract calls into a workflow - Adding validation, error handling, or retries - Managing state across multiple operations @@ -483,15 +512,15 @@ export function createFeatureService(client: AdtClient) { async doComplexOperation(params: ComplexParams) { // Step 1: Call first contract const step1 = await client.adt.feature.getFeature(); - + // Step 2: Business logic if (!step1.isValid) { throw new Error('Invalid state'); } - + // Step 3: Call second contract const step2 = await client.adt.feature.updateFeature(params); - + return { step1, step2 }; }, }; @@ -531,12 +560,15 @@ Register in `packages/adt-cli/src/lib/commands/index.ts` and `cli.ts`. ## Common Mistakes ### Mistake 1: Missing `responses` Field + **Symptom**: TypeScript shows `unknown` type, no autocomplete **Fix**: Add `responses: { 200: YourSchema }` to contract ### Mistake 2: Not Using `createSchema()` for XML Schemas + **Symptom**: TypeScript shows `ElementSchema` type instead of parsed type (e.g., `Property 'links' does not exist on type 'ElementSchema'`) **Fix**: Wrap XML schema definitions with `createSchema()` helper: + ```typescript // ❌ WRONG - Returns ElementSchema export const MySchema: ElementSchema = { ... } as const; @@ -544,54 +576,67 @@ export const MySchema: ElementSchema = { ... } as const; // ✅ CORRECT - Returns inferred type export const MySchema = createSchema({ ... } as const); ``` + The `createSchema()` helper automatically adds the `_infer` property needed for speci type inference. ### Mistake 3: Missing `_infer` Property in JSON Schema + **Symptom**: TypeScript shows `unknown` type even with `responses` field **Fix**: For JSON responses, create an Inferrable schema with `_infer` property: + ```typescript export const MySchema = { _infer: undefined as unknown as MyInterface, } as const; ``` + Then use `responses: { 200: MySchema }` (not `responses: { 200: undefined as unknown as MyInterface }`) ### Mistake 4: Wrong Field Names in Schema + **Symptom**: Runtime data doesn't match schema types **Fix**: Check actual SAP response (use `npx adt -o output.json`) and match field names exactly ### Mistake 5: Not Running Typecheck + **Symptom**: Type errors discovered later in CLI or production **Fix**: Always run `npx tsc --noEmit` before committing ### Mistake 6: Skipping Type Inference Test + **Symptom**: Contract changes break type safety silently **Fix**: Every contract needs a `*-type-inference.test.ts` file ### Mistake 7: Business Logic in Contracts + **Symptom**: Contracts become hard to test and reuse **Fix**: Keep contracts thin - move logic to services layer ### Mistake 8: Adding `metadata` Field to Contracts + **Symptom**: Redundant code that duplicates `responses` field **Fix**: **NEVER** add `metadata: { responseSchema: ... }` to contracts. The adapter automatically detects schemas from `responses[200]`. This field is legacy and should be removed if found. + ```typescript // ❌ WRONG - Redundant metadata adtHttp.get('/endpoint', { responses: { 200: MySchema }, - metadata: { responseSchema: MySchema }, // ← Remove this! -}) + metadata: { responseSchema: MySchema }, // ← Remove this! +}); // ✅ CORRECT - Adapter auto-detects from responses adtHttp.get('/endpoint', { - responses: { 200: MySchema }, // ← This is enough! -}) + responses: { 200: MySchema }, // ← This is enough! +}); ``` + The adapter checks if `responses[200]` is an `ElementSchema` (has `tag` and `fields`) and automatically uses it for XML parsing. ### Mistake 9: Using `as any` Type Assertions + **Symptom**: Type safety violations, runtime errors not caught at compile time **Fix**: **NEVER** use `as any` without explicit justification. If type inference fails, fix the schema/contract, don't bypass it with casts. + ```typescript // ❌ WRONG - Defeats type safety const sys = systemData as any; @@ -603,8 +648,10 @@ sessionData.links.forEach((link) => { ... }); // Type inferred from schema ``` ### Mistake 10: Exposing fetch() as a Contract + **Symptom**: Generic utility methods appearing in contract hierarchy **Fix**: The `fetch()` method is a **utility function on the client**, not a contract endpoint. Contracts must map to specific SAP ADT endpoints with known schemas. + ```typescript // ❌ WRONG - fetch in contracts client.adt.core.http.fetch.fetch(url) @@ -612,21 +659,25 @@ client.adt.core.http.fetch.fetch(url) // ✅ CORRECT - fetch as client utility client.fetch(url, { method: 'GET', headers: {...} }) ``` + Contracts are for typed, schema-driven endpoints. `fetch()` is for debugging and ad-hoc requests. ## Testing Strategy ### Compile-Time Type Tests + - **Purpose**: Validate type inference works - **Location**: `tests/*-type-inference.test.ts` - **Run**: `npx tsc --noEmit` (must pass) ### Runtime Integration Tests + - **Purpose**: Validate actual SAP responses match schemas - **Location**: `tests/e2e/*.test.ts` (future) - **Run**: `npx nx test adt-client` (when configured) ### Manual CLI Testing + - **Purpose**: Quick validation during development - **Command**: `npx adt ` (see CLI commands) @@ -686,12 +737,14 @@ When migrating from `adt-client` (v1): ### Migration Status **Migrated to V2** (CLI commands using `adt-client`): + - ✅ `info` - Session and system information - ✅ `fetch` - Generic authenticated HTTP requests - ✅ `search` - ABAP object repository search - ✅ `discovery` - Discovery service **Still Using V1** (CLI commands using `adt-client`): + - ⏳ `get` - Uses `searchObjectsDetailed` from v1 - ⏳ `lock` - Uses `searchObjectsDetailed` from v1 - ⏳ `outline` - Uses `searchObjectsDetailed` from v1 @@ -699,6 +752,7 @@ When migrating from `adt-client` (v1): - ⏳ Other commands - See `packages/adt-cli/src/lib/commands/` **V1 Cleanup Workflow:** + 1. Ensure v2 functionality is stable and tested 2. Identify all v1 usages: `grep -r "adt-client" packages/adt-cli/src/` 3. Remove unused v1 services/methods (e.g., if `searchObjectsDetailed` is fully replaced) @@ -710,6 +764,7 @@ When migrating from `adt-client` (v1): ### Using v2 Client in CLI Commands **DON'T** duplicate client initialization in every command: + ```typescript // ❌ WRONG - Duplicated in every command const authManager = new AuthManager(); @@ -727,6 +782,7 @@ const adtClient = createAdtClient({ ``` **DO** use the shared utility helper: + ```typescript // ✅ CORRECT - Use shared helper import { getAdtClientV2 } from '../utils/adt-client'; @@ -735,6 +791,7 @@ const adtClient = getAdtClientV2(); ``` **With plugins:** + ```typescript // For commands that need response plugins const adtClient = getAdtClientV2({ @@ -753,6 +810,7 @@ const adtClient = getAdtClientV2({ **Location:** `packages/adt-cli/src/lib/utils/adt-client.ts` **Benefits:** + - **DRY**: No duplicated auth/client creation code - **Consistency**: Same error messages across all commands - **Maintainability**: Changes to client initialization in one place @@ -760,6 +818,7 @@ const adtClient = getAdtClientV2({ **Architecture Note:** The CLI integration uses a clean separation of concerns: + - `packages/adt-cli/src/lib/utils/auth.ts` - Auth bridge that wraps v1 AuthManager - v2 client remains pure (no file I/O or CLI dependencies) - Auth credentials are loaded from `~/.adt/auth.json` via the bridge diff --git a/packages/adt-client/README.md b/packages/adt-client/README.md index 93fd3b07..10c95317 100644 --- a/packages/adt-client/README.md +++ b/packages/adt-client/README.md @@ -26,6 +26,7 @@ This package replaces the legacy `adt-client` with a **contract-first design**: ``` **Benefits over v1:** + - ✅ **Type-safe from XSD** - Types generated from official SAP schemas - ✅ **Contract-first** - API contracts define the interface - ✅ **Zero manual types** - No hand-written type definitions @@ -262,13 +263,13 @@ client.fetch('/arbitrary/endpoint', { method: 'GET' }) ## Comparison with adt-client v1 -| Feature | v1 (Legacy) | v2 (New) | -|---------|-------------|----------| -| **Type Safety** | Manual types | Generated from XSD | -| **Architecture** | Service-based | Contract-first | -| **Dependencies** | Many | Zero | -| **Extensibility** | Complex | Add contracts | -| **Testing** | Difficult | Easy (pure data) | +| Feature | v1 (Legacy) | v2 (New) | +| ----------------- | ------------- | ------------------ | +| **Type Safety** | Manual types | Generated from XSD | +| **Architecture** | Service-based | Contract-first | +| **Dependencies** | Many | Zero | +| **Extensibility** | Complex | Add contracts | +| **Testing** | Difficult | Easy (pure data) | ## Related Packages diff --git a/packages/adt-client/docs/SERVICE-ARCHITECTURE.md b/packages/adt-client/docs/SERVICE-ARCHITECTURE.md index 0adb9f56..f70282a7 100644 --- a/packages/adt-client/docs/SERVICE-ARCHITECTURE.md +++ b/packages/adt-client/docs/SERVICE-ARCHITECTURE.md @@ -54,6 +54,7 @@ We need to separate **low-level HTTP client logic** (contracts, schemas) from ** **Location:** `adt-client/src/adt/` **Characteristics:** + - ✅ Schema-driven using `speci` + `ts-xsd` - ✅ One contract per SAP ADT service area - ✅ Type-safe with automatic XML parsing/building @@ -63,6 +64,7 @@ We need to separate **low-level HTTP client logic** (contracts, schemas) from ** - ❌ No conditional logic **Example:** + ```typescript // adt-client/src/adt/cts/transports-contract.ts export const transportsContract = createContract({ @@ -95,6 +97,7 @@ export const transportsContract = createContract({ **Location:** `adt-client/src/services/` **Characteristics:** + - ✅ Encapsulates multi-step workflows - ✅ Handles conditional logic and error recovery - ✅ Provides convenience methods @@ -103,6 +106,7 @@ export const transportsContract = createContract({ - ❌ Does not make raw HTTP calls **File Structure:** + ``` adt-client/src/services/ ├── transport-service.ts # Transport business logic @@ -160,9 +164,11 @@ export class TransportService { * Create transport with automatic user detection * (Business logic: user detection + XML building) */ - async createWithAutoUser(options: TransportCreateOptions): Promise { + async createWithAutoUser( + options: TransportCreateOptions, + ): Promise { // Business logic: detect user if not provided - const owner = options.owner || await this.getCurrentUser(); + const owner = options.owner || (await this.getCurrentUser()); // Delegate to contract return this.client.transport.create({ @@ -244,7 +250,7 @@ export class AtcService { */ private async pollForResults( worklistId: string, - maxWaitMs: number + maxWaitMs: number, ): Promise { const startTime = Date.now(); const pollInterval = 2000; // 2 seconds @@ -273,7 +279,7 @@ export class AtcService { } private sleep(ms: number): Promise { - return new Promise(resolve => setTimeout(resolve, ms)); + return new Promise((resolve) => setTimeout(resolve, ms)); } } ``` @@ -297,7 +303,7 @@ export class DeploymentService { objectUri: string, sourcePath: string, content: string, - options: SetSourceOptions = {} + options: SetSourceOptions = {}, ): Promise { let lockHandle: string | undefined; @@ -308,7 +314,10 @@ export class DeploymentService { if (exists) { // Business logic: Compare source if requested if (options.compareSource) { - const currentSource = await this.client.objects.getSource(objectUri, sourcePath); + const currentSource = await this.client.objects.getSource( + objectUri, + sourcePath, + ); if (currentSource === content) { return { action: 'skipped', reason: 'identical' }; } @@ -318,7 +327,12 @@ export class DeploymentService { lockHandle = await this.client.locking.lock(objectUri); // Delegate to contract - await this.client.objects.updateSource(objectUri, sourcePath, content, lockHandle); + await this.client.objects.updateSource( + objectUri, + sourcePath, + content, + lockHandle, + ); return { action: 'updated' }; } else { @@ -356,8 +370,8 @@ export class DeploymentService { import { createAdtClient } from '@abapify/adt-client'; import { TransportService } from '@abapify/adt-client/services'; -export const transportCreateCommand = new Command('create') - .action(async (options) => { +export const transportCreateCommand = new Command('create').action( + async (options) => { // Create low-level client const adtClient = createAdtClient({ baseUrl: session.basicAuth.host, @@ -375,7 +389,8 @@ export const transportCreateCommand = new Command('create') }); console.log(`✅ Transport created: ${transport.number}`); - }); + }, +); ``` --- @@ -383,27 +398,33 @@ export const transportCreateCommand = new Command('create') ## Benefits of This Architecture ### ✅ **Clear Separation of Concerns** + - Contracts = "what the API does" - Services = "how to use it effectively" ### ✅ **Easy to Test** + - **Contracts:** Mock HTTP with `speci` - **Services:** Mock the client interface ### ✅ **Gradual Migration** + - Can implement contracts first - Add services as needed - CLI can use either directly ### ✅ **Reusable Business Logic** + - Services can be used by CLI, tests, or other tools - No duplication ### ✅ **Type Safety End-to-End** + - Schemas enforce structure - TypeScript catches errors at compile time ### ✅ **Easy to Maintain** + - Contracts map 1:1 to SAP docs - Services document business rules - Changes isolated to appropriate layer @@ -413,12 +434,14 @@ export const transportCreateCommand = new Command('create') ## Migration Path ### Phase 1: Contracts Only + ```typescript // CLI uses contracts directly (simple operations) const discovery = await adtClient.discovery.getDiscovery(); ``` ### Phase 2: Add Services for Complex Operations + ```typescript // CLI uses services (complex workflows) const transportService = new TransportService(adtClient); @@ -426,6 +449,7 @@ const transport = await transportService.createWithAutoUser({ ... }); ``` ### Phase 3: Remove V1 + ```typescript // Delete adt-client v1 entirely // All logic migrated to v2 contracts + services @@ -477,6 +501,7 @@ packages/ ## Testing Strategy ### Unit Tests: Contracts + ```typescript // Mock HTTP responses const mockAdapter = createMockAdapter(); @@ -490,6 +515,7 @@ const transports = await client.transport.list(); ``` ### Unit Tests: Services + ```typescript // Mock the client const mockClient = { @@ -506,6 +532,7 @@ expect(mockClient.transport.create).toHaveBeenCalledWith({ owner: 'TESTUSER' }); ``` ### Integration Tests + ```typescript // Use real SAP system const client = createAdtClient({ baseUrl: '...', ... }); @@ -518,17 +545,20 @@ const transport = await service.createWithAutoUser({ ... }); ## Summary **Contracts = Thin, schema-driven HTTP layer** + - Pure REST operations - No business logic - 1:1 with SAP ADT API **Services = Business logic orchestration** + - Multi-step workflows - Error handling - Convenience methods - Uses contracts internally **CLI = Consumes services** + - Simple commands → use contracts directly - Complex commands → use services diff --git a/packages/adt-client/examples/basic-usage.ts b/packages/adt-client/examples/basic-usage.ts index 8c2e14e3..1b842e41 100644 --- a/packages/adt-client/examples/basic-usage.ts +++ b/packages/adt-client/examples/basic-usage.ts @@ -25,7 +25,7 @@ async function demo() { console.log(`Found ${discovery.workspace.length} workspaces`); for (const workspace of discovery.workspace) { console.log( - ` - ${workspace.title}: ${workspace.collection.length} collections` + ` - ${workspace.title}: ${workspace.collection.length} collections`, ); } @@ -45,15 +45,18 @@ async function demo() { console.log('Main source length:', mainSource.length); console.log('Preview:', mainSource.substring(0, 100)); - const definitions = await client.adt.oo.classes.includes.definitions.get(className); + const definitions = + await client.adt.oo.classes.includes.definitions.get(className); console.log('Definitions length:', definitions.length); - const implementations = await client.adt.oo.classes.includes.implementations.get(className); + const implementations = + await client.adt.oo.classes.includes.implementations.get(className); console.log('Implementations length:', implementations.length); // Example 4: Update class source console.log('\n=== Example 4: Update Class Source ==='); - const currentSource = await client.adt.oo.classes.source.main.get(className); + const currentSource = + await client.adt.oo.classes.source.main.get(className); const modifiedSource = `* Modified by adt-client\n${currentSource}`; await client.adt.oo.classes.source.main.put(className, modifiedSource); diff --git a/packages/adt-client/src/plugins/file-logging.ts b/packages/adt-client/src/plugins/file-logging.ts index c2333509..bae7ed13 100644 --- a/packages/adt-client/src/plugins/file-logging.ts +++ b/packages/adt-client/src/plugins/file-logging.ts @@ -50,7 +50,7 @@ export class FileLoggingPlugin implements ResponsePlugin { } } catch (error) { this.config.logger?.error( - `Failed to write response file: ${error instanceof Error ? error.message : String(error)}` + `Failed to write response file: ${error instanceof Error ? error.message : String(error)}`, ); } @@ -79,7 +79,13 @@ export class FileLoggingPlugin implements ResponsePlugin { const segments = basePath.split('/').filter((s) => s); // Check if source endpoint (no extension) - const sourceTypes = ['main', 'definitions', 'implementations', 'macros', 'testclasses']; + const sourceTypes = [ + 'main', + 'definitions', + 'implementations', + 'macros', + 'testclasses', + ]; const lastSegment = segments[segments.length - 1]; if (sourceTypes.includes(lastSegment)) { @@ -87,14 +93,17 @@ export class FileLoggingPlugin implements ResponsePlugin { } // Generate request ID - const requestId = Date.now().toString() + Math.random().toString(36).slice(2, 7); + const requestId = + Date.now().toString() + Math.random().toString(36).slice(2, 7); // Build directory path let dirPath = `./adt/${segments.join('/')}`; // Add query string to directory if present if (urlObj.search) { - const sanitizedQuery = urlObj.search.slice(1).replace(/[^a-zA-Z0-9_-]/g, '_'); + const sanitizedQuery = urlObj.search + .slice(1) + .replace(/[^a-zA-Z0-9_-]/g, '_'); dirPath += `/${sanitizedQuery}`; } diff --git a/packages/adt-client/src/utils/session.ts b/packages/adt-client/src/utils/session.ts index f6aa76e2..df213ba4 100644 --- a/packages/adt-client/src/utils/session.ts +++ b/packages/adt-client/src/utils/session.ts @@ -137,8 +137,10 @@ export class CsrfTokenManager { */ extractFromCookies(cookies: Map): string | undefined { // Find CSRF/XSRF cookie - const xsrfEntry = Array.from(cookies.entries()).find(([key]) => - key.toLowerCase().includes('xsrf') || key.toLowerCase().includes('csrf') + const xsrfEntry = Array.from(cookies.entries()).find( + ([key]) => + key.toLowerCase().includes('xsrf') || + key.toLowerCase().includes('csrf'), ); if (!xsrfEntry) { @@ -315,7 +317,7 @@ export class SessionManager { // Try to extract CSRF from cookies if not in header if (!csrfToken && this.cookieStore.hasCookies()) { const cookieCsrf = this.csrfManager.extractFromCookies( - this.cookieStore.getAll() + this.cookieStore.getAll(), ); if (cookieCsrf) { this.csrfManager.cache(cookieCsrf); @@ -340,7 +342,7 @@ export class SessionManager { // Add CSRF token for write operations const needsCsrf = ['POST', 'PUT', 'DELETE', 'PATCH'].includes( - method.toUpperCase() + method.toUpperCase(), ); if (needsCsrf) { const cachedToken = this.csrfManager.getCached(); @@ -390,7 +392,7 @@ export class SessionManager { baseUrl: string, authHeader: string, client?: string, - language?: string + language?: string, ): Promise { const url = new URL('/sap/bc/adt/core/http/sessions', baseUrl); @@ -422,7 +424,9 @@ export class SessionManager { }); if (!response.ok) { - this.logger?.warn(`Session: CSRF initialization failed with status ${response.status}`); + this.logger?.warn( + `Session: CSRF initialization failed with status ${response.status}`, + ); return false; } @@ -433,12 +437,16 @@ export class SessionManager { if (success) { this.logger?.debug('Session: CSRF token initialized successfully'); } else { - this.logger?.warn('Session: CSRF initialization succeeded but no token found'); + this.logger?.warn( + 'Session: CSRF initialization succeeded but no token found', + ); } return success; } catch (error) { - this.logger?.error(`Session: CSRF initialization error: ${error instanceof Error ? error.message : String(error)}`); + this.logger?.error( + `Session: CSRF initialization error: ${error instanceof Error ? error.message : String(error)}`, + ); return false; } } diff --git a/packages/adt-client/tests/discovery-type-inference.test.ts b/packages/adt-client/tests/discovery-type-inference.test.ts index 080f0c71..94e364ed 100644 --- a/packages/adt-client/tests/discovery-type-inference.test.ts +++ b/packages/adt-client/tests/discovery-type-inference.test.ts @@ -14,7 +14,7 @@ describe('Discovery Type Inference', () => { // Check that the schema has the _infer property assert.ok( '_infer' in DiscoverySchema, - 'Schema should have _infer property' + 'Schema should have _infer property', ); }); diff --git a/packages/adt-client/tests/systeminformation-type-inference.test.ts b/packages/adt-client/tests/systeminformation-type-inference.test.ts index e5e4702a..c3913e82 100644 --- a/packages/adt-client/tests/systeminformation-type-inference.test.ts +++ b/packages/adt-client/tests/systeminformation-type-inference.test.ts @@ -36,7 +36,9 @@ describe('System Information Type Inference', () => { }; // Verify the inferred type matches our schema - const typeCheck: SystemInfoType extends SystemInformationJson ? true : false = true; + const typeCheck: SystemInfoType extends SystemInformationJson + ? true + : false = true; assert.ok(typeCheck, 'Inferred type must extend SystemInformationJson'); // Test that all expected fields are accessible with correct types @@ -47,7 +49,8 @@ describe('System Information Type Inference', () => { // This will fail at runtime (no real server), but MUST compile try { - const sysInfo = await client.core.http.systeminformation.getSystemInformation(); + const sysInfo = + await client.core.http.systeminformation.getSystemInformation(); // These property accesses should be type-safe const systemId: string | undefined = sysInfo.systemID; @@ -58,7 +61,10 @@ describe('System Information Type Inference', () => { assert.ok(true, 'Types are correct'); } catch (error) { // Expected to fail at runtime - this is a COMPILE-TIME type test - assert.ok(true, 'Runtime failure expected - validating compile-time types'); + assert.ok( + true, + 'Runtime failure expected - validating compile-time types', + ); } }); @@ -72,7 +78,8 @@ describe('System Information Type Inference', () => { }); try { - const sysInfo = await client.core.http.systeminformation.getSystemInformation(); + const sysInfo = + await client.core.http.systeminformation.getSystemInformation(); // These should all compile - proving the type is inferred correctly // If type inference fails, these would be type errors diff --git a/packages/adt-codegen/src/cli.ts b/packages/adt-codegen/src/cli.ts index e3e6c805..8392ae2b 100644 --- a/packages/adt-codegen/src/cli.ts +++ b/packages/adt-codegen/src/cli.ts @@ -77,7 +77,7 @@ async function findConfig(): Promise<{ path: string; config: CodegenConfig }> { } throw new Error( - 'No config file found. Please create adt.config.ts or adt-codegen.config.ts' + 'No config file found. Please create adt.config.ts or adt-codegen.config.ts', ); } diff --git a/packages/adt-codegen/src/config.ts b/packages/adt-codegen/src/config.ts index 8132518d..56c73059 100644 --- a/packages/adt-codegen/src/config.ts +++ b/packages/adt-codegen/src/config.ts @@ -15,7 +15,7 @@ export function defineConfig(config: CodegenConfig): CodegenConfig { * Define an ADT config with codegen section */ export function defineAdtConfig( - config: T + config: T, ): T { return config; } diff --git a/packages/adt-codegen/src/filters.ts b/packages/adt-codegen/src/filters.ts index dd892fb3..488d80bb 100644 --- a/packages/adt-codegen/src/filters.ts +++ b/packages/adt-codegen/src/filters.ts @@ -9,7 +9,7 @@ import type { FilterValue, FilterConfig } from './types'; */ function matchesValue( value: string | undefined, - filter: FilterValue + filter: FilterValue, ): boolean { if (!value) return false; @@ -89,7 +89,7 @@ export function matchesCollectionFilter(collection: any, filter: any): boolean { ? collection.link : [collection.link]; const hasMatchingLink = links.some((link: any) => - matchesObject(link, filter.templateLinks) + matchesObject(link, filter.templateLinks), ); if (!hasMatchingLink) return false; } @@ -103,7 +103,7 @@ export function matchesCollectionFilter(collection: any, filter: any): boolean { export function matchesFilter( item: any, filterConfig: FilterConfig | undefined, - type: 'workspace' | 'collection' + type: 'workspace' | 'collection', ): boolean { if (!filterConfig) return true; diff --git a/packages/adt-codegen/src/plugins/bootstrap-schemas.ts b/packages/adt-codegen/src/plugins/bootstrap-schemas.ts index 530c28b9..1afb2194 100644 --- a/packages/adt-codegen/src/plugins/bootstrap-schemas.ts +++ b/packages/adt-codegen/src/plugins/bootstrap-schemas.ts @@ -44,7 +44,7 @@ export interface BootstrapSchemasOptions { */ function contentTypeToPath( contentType: string, - format: 'json' | 'xml' + format: 'json' | 'xml', ): string { // Remove +json or +xml suffix const base = contentType.replace(/\+(json|xml)$/, ''); @@ -74,7 +74,7 @@ function generateJsonSchemaTemplate(contentType: string): string { additionalProperties: true, }, null, - 2 + 2, ); } @@ -107,7 +107,7 @@ function generateXmlSchemaTemplate(contentType: string): string { * Factory function to create bootstrap schemas plugin */ export function bootstrapSchemas( - options: BootstrapSchemasOptions = {} + options: BootstrapSchemasOptions = {}, ): CodegenPlugin { const { output = 'schemas/{schemaPath}', unique = false } = options; @@ -170,7 +170,7 @@ export function bootstrapSchemas( throw new Error( `Duplicate schema path detected: "${filePath}"\n` + `Content type: ${info.contentType}\n` + - `Enable unique: true requires each schema to have a unique output path.` + `Enable unique: true requires each schema to have a unique output path.`, ); } seenPaths.add(filePath); diff --git a/packages/adt-codegen/src/plugins/discovery-parser.ts b/packages/adt-codegen/src/plugins/discovery-parser.ts index 8a48bddd..ed5c2461 100644 --- a/packages/adt-codegen/src/plugins/discovery-parser.ts +++ b/packages/adt-codegen/src/plugins/discovery-parser.ts @@ -46,7 +46,6 @@ export function parseDiscoveryXml(xml: string): DiscoveryData { ? workspacesRaw : [workspacesRaw]; - const workspaces: WorkspaceData[] = workspacesArray.map( (ws: Record) => { const collectionsRaw = ws['app:collection']; @@ -56,7 +55,6 @@ export function parseDiscoveryXml(xml: string): DiscoveryData { : [collectionsRaw] : []; - const collections: CollectionData[] = collectionsArray.map( (coll: Record) => { // Parse accepts diff --git a/packages/adt-codegen/src/plugins/extract-collections.ts b/packages/adt-codegen/src/plugins/extract-collections.ts index bfd55875..191e2f16 100644 --- a/packages/adt-codegen/src/plugins/extract-collections.ts +++ b/packages/adt-codegen/src/plugins/extract-collections.ts @@ -63,7 +63,7 @@ export interface ExtractCollectionsOptions { * Factory function to create extract collections plugin */ export function extractCollections( - options: ExtractCollectionsOptions = {} + options: ExtractCollectionsOptions = {}, ): CodegenPlugin { const { output = 'collections.json', unique = false } = options; @@ -129,7 +129,7 @@ export function extractCollections( .replace(/{title}/g, sanitizePath(coll.title || 'unknown')) .replace( /{category}/g, - sanitizePath(coll.category?.term || 'unknown') + sanitizePath(coll.category?.term || 'unknown'), ); } @@ -139,7 +139,7 @@ export function extractCollections( throw new Error( `Duplicate output path detected: "${filePath}"\n` + `Collection: ${coll.title} (${coll.href})\n` + - `Enable unique: true requires each collection to have a unique output path.` + `Enable unique: true requires each collection to have a unique output path.`, ); } seenPaths.add(filePath); @@ -149,7 +149,7 @@ export function extractCollections( } ctx.logger.success( - `Wrote ${ws.data.collectionDetails.length} collection files for ${ws.folderName}` + `Wrote ${ws.data.collectionDetails.length} collection files for ${ws.folderName}`, ); } } @@ -159,11 +159,11 @@ export function extractCollections( if (ws.data.collectionDetails) { await ws.writeFile( output as string, - JSON.stringify(ws.data.collectionDetails, null, 2) + JSON.stringify(ws.data.collectionDetails, null, 2), ); ctx.logger.success( - `Wrote ${ws.folderName}/${output} (${ws.data.collectionDetails.length} collections)` + `Wrote ${ws.folderName}/${output} (${ws.data.collectionDetails.length} collections)`, ); } } diff --git a/packages/adt-config/README.md b/packages/adt-config/README.md index 6968e01b..3b539061 100644 --- a/packages/adt-config/README.md +++ b/packages/adt-config/README.md @@ -48,7 +48,7 @@ const config = await loadConfig(); const dest = config.getDestination('DEV'); // List all destination names -const names = config.listDestinations(); // ['DEV', 'QAS'] +const names = config.listDestinations(); // ['DEV', 'QAS'] // Check if destination exists if (config.hasDestination('DEV')) { diff --git a/packages/adt-config/src/config-loader.ts b/packages/adt-config/src/config-loader.ts index db2bdce1..09dfbf35 100644 --- a/packages/adt-config/src/config-loader.ts +++ b/packages/adt-config/src/config-loader.ts @@ -124,17 +124,51 @@ function createLoadedConfig(config: AdtConfig): LoadedConfig { }; } +export interface LoadConfigOptions { + /** Explicit config file path (overrides auto-discovery) */ + configPath?: string; + /** Current working directory for auto-discovery (defaults to process.cwd()) */ + cwd?: string; +} + /** * Load configuration with precedence: - * 1. adt.config.ts in cwd - * 2. adt.config.json in cwd - * 3. ~/.adt/config.json (global) + * 1. Explicit configPath (if provided via --config flag) + * 2. adt.config.ts in cwd + * 3. adt.config.json in cwd + * 4. ~/.adt/config.json (global) * - * @param cwd Current working directory (defaults to process.cwd()) + * @param options Load config options or cwd string for backwards compatibility */ export async function loadConfig( - cwd: string = process.cwd(), + options: LoadConfigOptions | string = {}, ): Promise { + // Support legacy string parameter (cwd) + const opts: LoadConfigOptions = + typeof options === 'string' ? { cwd: options } : options; + const cwd = opts.cwd ?? process.cwd(); + + // If explicit config path provided, use it directly + if (opts.configPath) { + const configPath = resolve(cwd, opts.configPath); + if (configPath.endsWith('.json')) { + const jsonConfig = loadJsonConfig(configPath); + if (jsonConfig) { + return createLoadedConfig(mergeWithGlobal(jsonConfig)); + } + } else { + // Assume TS/JS config + const tsConfig = await loadTsConfig(configPath); + if (tsConfig) { + return createLoadedConfig(mergeWithGlobal(tsConfig)); + } + } + // Config path specified but file not found/loadable - continue with auto-discovery + console.warn( + `Warning: Config file not found at ${configPath}, using auto-discovery`, + ); + } + // Try TS config first const tsConfigPath = join(cwd, 'adt.config.ts'); const tsConfig = await loadTsConfig(tsConfigPath); diff --git a/packages/adt-config/src/index.ts b/packages/adt-config/src/index.ts index 056c63be..55ec4f1b 100644 --- a/packages/adt-config/src/index.ts +++ b/packages/adt-config/src/index.ts @@ -28,7 +28,7 @@ export type { ContentTypeMapping, EnabledEndpoints, } from './types'; -export type { LoadedConfig } from './config-loader'; +export type { LoadedConfig, LoadConfigOptions } from './config-loader'; // Config Loader export { loadConfig, defineConfig } from './config-loader'; diff --git a/packages/adt-config/src/plugin.ts b/packages/adt-config/src/plugin.ts index 5eb8b7c7..46b2fc0c 100644 --- a/packages/adt-config/src/plugin.ts +++ b/packages/adt-config/src/plugin.ts @@ -1,6 +1,6 @@ /** * Auth Plugin Helpers - * + * * Provides type-safe helpers for defining auth plugins. */ @@ -8,23 +8,23 @@ import type { AuthPlugin } from './types'; /** * Define an auth plugin with full type inference. - * + * * Usage: * ```ts * import { defineAuthPlugin } from '@abapify/adt-config'; - * + * * interface MyOptions { url: string; } * interface MyCredentials { token: string; } - * + * * export const myPlugin = defineAuthPlugin({ * name: 'my-auth', * displayName: 'My Auth Method', - * + * * async authenticate(options) { * // options is typed as MyOptions * return { token: '...' }; * }, - * + * * async test(credentials) { * // credentials is typed as MyCredentials * return { success: true }; @@ -32,9 +32,8 @@ import type { AuthPlugin } from './types'; * }); * ``` */ -export function defineAuthPlugin< - TOptions = unknown, - TCredentials = unknown ->(plugin: AuthPlugin): AuthPlugin { +export function defineAuthPlugin( + plugin: AuthPlugin, +): AuthPlugin { return plugin; } diff --git a/packages/adt-config/tests/config.test.ts b/packages/adt-config/tests/config.test.ts index f165bdd9..523d92d0 100644 --- a/packages/adt-config/tests/config.test.ts +++ b/packages/adt-config/tests/config.test.ts @@ -69,7 +69,10 @@ describe('Config Module', () => { it('should normalize TS config to JSON', () => { const tsConfig = defineConfig({ destinations: { - DEV: { type: 'puppeteer', options: { url: 'https://dev.example.com', client: '100' } }, + DEV: { + type: 'puppeteer', + options: { url: 'https://dev.example.com', client: '100' }, + }, QAS: { type: 'basic', options: { url: 'https://qas.example.com' } }, }, }); @@ -79,7 +82,9 @@ describe('Config Module', () => { const parsed = JSON.parse(json); expect(parsed.destinations.DEV.type).toBe('puppeteer'); - expect(parsed.destinations.DEV.options.url).toBe('https://dev.example.com'); + expect(parsed.destinations.DEV.options.url).toBe( + 'https://dev.example.com', + ); expect(parsed.destinations.QAS.type).toBe('basic'); }); }); @@ -94,9 +99,12 @@ describe('Config Module', () => { JSON.stringify({ destinations: { DEV: { type: 'basic', options: { url: 'https://dev.example.com' } }, - QAS: { type: 'puppeteer', options: { url: 'https://qas.example.com' } }, + QAS: { + type: 'puppeteer', + options: { url: 'https://qas.example.com' }, + }, }, - }) + }), ); }); @@ -106,7 +114,7 @@ describe('Config Module', () => { it('should load config and provide get method', async () => { const config = await loadConfig(testDir); - + const dev = config.getDestination('DEV'); expect(dev).toBeDefined(); expect(dev?.type).toBe('basic'); @@ -114,13 +122,13 @@ describe('Config Module', () => { it('should return undefined for unknown destination', async () => { const config = await loadConfig(testDir); - + expect(config.getDestination('UNKNOWN')).toBeUndefined(); }); it('should list all destinations', async () => { const config = await loadConfig(testDir); - + const list = config.listDestinations(); expect(list).toContain('DEV'); expect(list).toContain('QAS'); @@ -129,14 +137,14 @@ describe('Config Module', () => { it('should check if destination exists', async () => { const config = await loadConfig(testDir); - + expect(config.hasDestination('DEV')).toBe(true); expect(config.hasDestination('UNKNOWN')).toBe(false); }); it('should provide raw config', async () => { const config = await loadConfig(testDir); - + expect(config.raw.destinations).toBeDefined(); expect(config.raw.destinations?.DEV).toBeDefined(); }); diff --git a/packages/adt-config/tsconfig.lib.json b/packages/adt-config/tsconfig.lib.json index 5197dea5..02f9b075 100644 --- a/packages/adt-config/tsconfig.lib.json +++ b/packages/adt-config/tsconfig.lib.json @@ -8,6 +8,5 @@ }, "include": ["src/**/*.ts"], "exclude": ["src/**/*.test.ts", "src/**/*.spec.ts"], - "references": [ - ] + "references": [] } diff --git a/packages/adt-contracts/README.md b/packages/adt-contracts/README.md index 050f28be..887c862d 100644 --- a/packages/adt-contracts/README.md +++ b/packages/adt-contracts/README.md @@ -70,12 +70,12 @@ const atc = createClient(atcContract, config); ## Available Contracts -| Contract | Description | -|----------|-------------| -| `coreContract` | Core ADT object operations | -| `ctsContract` | Change and Transport System | -| `atcContract` | ABAP Test Cockpit | -| `ooContract` | Object-Oriented (classes, interfaces) | +| Contract | Description | +| -------------- | ------------------------------------- | +| `coreContract` | Core ADT object operations | +| `ctsContract` | Change and Transport System | +| `atcContract` | ABAP Test Cockpit | +| `ooContract` | Object-Oriented (classes, interfaces) | ## Architecture diff --git a/packages/adt-contracts/adt.config.ts b/packages/adt-contracts/adt.config.ts index 4bdf4217..153d0144 100644 --- a/packages/adt-contracts/adt.config.ts +++ b/packages/adt-contracts/adt.config.ts @@ -1,11 +1,11 @@ /** * ADT Contracts - Code Generation Configuration - * + * * This package generates its own contracts from SAP ADT discovery data. - * + * * Usage: * npx nx run adt-contracts:generate-contracts - * + * * The command will: * 1. Fetch discovery from SAP if not cached (requires: npx adt auth login) * 2. Cache discovery XML to tmp/discovery/discovery.xml @@ -26,28 +26,26 @@ const resolveImports = () => ({ export default { // CLI command plugins to load dynamically - commands: [ - '@abapify/adt-codegen/commands/codegen', - ], - + commands: ['@abapify/adt-codegen/commands/codegen'], + // Contract generation configuration contracts: { // Discovery XML cache path (auto-fetched from SAP if not exists) discovery: 'tmp/discovery/discovery.xml', - + // Content-type to schema mapping contentTypeMapping, - + // Endpoints whitelist enabledEndpoints, - + // Output directories output: 'src/generated/adt', docs: 'docs', - + // Custom import resolver for package self-references resolveImports, - + // Clean output directory before generating clean: true, }, diff --git a/packages/adt-contracts/config/contracts/enabled-endpoints.ts b/packages/adt-contracts/config/contracts/enabled-endpoints.ts index 74979c34..9a62e439 100644 --- a/packages/adt-contracts/config/contracts/enabled-endpoints.ts +++ b/packages/adt-contracts/config/contracts/enabled-endpoints.ts @@ -11,6 +11,7 @@ * { path: '/sap/bc/adt/atc/runs', methods: ['POST'] } */ +// eslint-disable-next-line @nx/enforce-module-boundaries import type { EndpointDefinition } from '@abapify/adt-codegen'; export const enabledEndpoints: EndpointDefinition[] = [ diff --git a/packages/adt-contracts/scripts/generate-schemas.ts b/packages/adt-contracts/scripts/generate-schemas.ts index be416bc3..fb39d743 100644 --- a/packages/adt-contracts/scripts/generate-schemas.ts +++ b/packages/adt-contracts/scripts/generate-schemas.ts @@ -1,9 +1,9 @@ /** * Generate schemas.ts with speci-compatible wrappers - * + * * This script reads all schema exports from @abapify/adt-schemas * and generates the schemas.ts file with toSpeciSchema() wrappers. - * + * * Run: npx tsx scripts/generate-schemas.ts */ @@ -17,15 +17,18 @@ import { join } from 'path'; const allExports = Object.entries(adtSchemas); const xmlSchemaExports = allExports.filter(([_, value]) => { - return value && typeof value === 'object' && - 'parse' in value && - 'schema' in value; // TypedSchema has schema property + return ( + value && typeof value === 'object' && 'parse' in value && 'schema' in value + ); // TypedSchema has schema property }); const jsonSchemaExports = allExports.filter(([_, value]) => { - return value && typeof value === 'object' && - 'parse' in value && - !('schema' in value); // JSON schemas don't have schema property + return ( + value && + typeof value === 'object' && + 'parse' in value && + !('schema' in value) + ); // JSON schemas don't have schema property }); // Get schema names and sort alphabetically @@ -46,7 +49,7 @@ import { toSpeciSchema } from '../helpers/speci-schema'; // ============================================================================ // XML Schemas (wrapped for speci compatibility) // ============================================================================ -${xmlSchemaNames.map(name => `export const ${name} = toSpeciSchema(adtSchemas.${name});`).join('\n')} +${xmlSchemaNames.map((name) => `export const ${name} = toSpeciSchema(adtSchemas.${name});`).join('\n')} // ============================================================================ // JSON Schemas (re-exported directly - they use zod, not ts-xsd) @@ -59,5 +62,9 @@ const outputPath = join(import.meta.dirname, '../src/generated/schemas.ts'); writeFileSync(outputPath, output); console.log(`✅ Generated schemas.ts`); -console.log(` XML schemas (${xmlSchemaNames.length}): ${xmlSchemaNames.join(', ')}`); -console.log(` JSON schemas (${jsonSchemaNames.length}): ${jsonSchemaNames.join(', ')}`); +console.log( + ` XML schemas (${xmlSchemaNames.length}): ${xmlSchemaNames.join(', ')}`, +); +console.log( + ` JSON schemas (${jsonSchemaNames.length}): ${jsonSchemaNames.join(', ')}`, +); diff --git a/packages/adt-contracts/src/adt/core/http/index.ts b/packages/adt-contracts/src/adt/core/http/index.ts index cc3df4ad..544d8757 100644 --- a/packages/adt-contracts/src/adt/core/http/index.ts +++ b/packages/adt-contracts/src/adt/core/http/index.ts @@ -6,7 +6,10 @@ export * from './sessions'; export * from './systeminformation'; import { sessionsContract, type SessionsContract } from './sessions'; -import { systeminformationContract, type SystemInformationContract } from './systeminformation'; +import { + systeminformationContract, + type SystemInformationContract, +} from './systeminformation'; export interface HttpContract { sessions: SessionsContract; diff --git a/packages/adt-contracts/src/adt/cts/index.ts b/packages/adt-contracts/src/adt/cts/index.ts index b5024b62..c2aa5984 100644 --- a/packages/adt-contracts/src/adt/cts/index.ts +++ b/packages/adt-contracts/src/adt/cts/index.ts @@ -1,11 +1,11 @@ /** * ADT CTS (Change and Transport System) Contracts - * + * * Structure mirrors URL tree: * - /sap/bc/adt/cts/transportrequests → cts.transportrequests * - /sap/bc/adt/cts/transports → cts.transports * - /sap/bc/adt/cts/transportchecks → cts.transportchecks - * + * * Based on collections in: e2e/adt-codegen/generated/collections/sap/bc/adt/cts/ */ @@ -15,7 +15,10 @@ import { transportchecks } from './transportchecks'; // Re-export all types and helpers export * from './transports'; -export { type TransportResponse, transportmanagmentSingle } from './transportrequests'; +export { + type TransportResponse, + transportmanagmentSingle, +} from './transportrequests'; // Explicit type to avoid TS7056 "exceeds maximum length" error export const ctsContract: { diff --git a/packages/adt-contracts/src/adt/cts/transportrequests/searchconfiguration/configurations.ts b/packages/adt-contracts/src/adt/cts/transportrequests/searchconfiguration/configurations.ts index d05268af..3a0363d6 100644 --- a/packages/adt-contracts/src/adt/cts/transportrequests/searchconfiguration/configurations.ts +++ b/packages/adt-contracts/src/adt/cts/transportrequests/searchconfiguration/configurations.ts @@ -4,33 +4,45 @@ */ import { http, contract } from '../../../../base'; -import { configurations as configurationsSchema, configuration as configurationSchema } from '../../../../schemas'; +import { + configurations as configurationsSchema, + configuration as configurationSchema, +} from '../../../../schemas'; export const configurations = contract({ /** GET list of search configurations */ get: () => - http.get('/sap/bc/adt/cts/transportrequests/searchconfiguration/configurations', { - responses: { 200: configurationsSchema }, - headers: { Accept: 'application/vnd.sap.adt.configurations.v1+xml' }, - }), + http.get( + '/sap/bc/adt/cts/transportrequests/searchconfiguration/configurations', + { + responses: { 200: configurationsSchema }, + headers: { Accept: 'application/vnd.sap.adt.configurations.v1+xml' }, + }, + ), /** GET a specific configuration by ID */ getById: (configId: string) => - http.get('/sap/bc/adt/cts/transportrequests/searchconfiguration/configurations/${configId}', { - responses: { 200: configurationSchema }, - headers: { Accept: 'application/vnd.sap.adt.configuration.v1+xml' }, - }), + http.get( + '/sap/bc/adt/cts/transportrequests/searchconfiguration/configurations/${configId}', + { + responses: { 200: configurationSchema }, + headers: { Accept: 'application/vnd.sap.adt.configuration.v1+xml' }, + }, + ), /** PUT update a specific configuration by ID - body type inferred from schema * Note: If-Match header is automatically added by the adapter from cached ETag */ put: (configId: string) => - http.put('/sap/bc/adt/cts/transportrequests/searchconfiguration/configurations/${configId}', { - responses: { 200: configurationSchema }, - headers: { - 'Content-Type': 'application/vnd.sap.adt.configuration.v1+xml', - Accept: 'application/vnd.sap.adt.configuration.v1+xml', + http.put( + '/sap/bc/adt/cts/transportrequests/searchconfiguration/configurations/${configId}', + { + responses: { 200: configurationSchema }, + headers: { + 'Content-Type': 'application/vnd.sap.adt.configuration.v1+xml', + Accept: 'application/vnd.sap.adt.configuration.v1+xml', + }, + body: configurationSchema, // Body type inferred from schema - becomes second parameter! }, - body: configurationSchema, // Body type inferred from schema - becomes second parameter! - }), + ), }); diff --git a/packages/adt-contracts/src/adt/cts/transportrequests/searchconfiguration/metadata.ts b/packages/adt-contracts/src/adt/cts/transportrequests/searchconfiguration/metadata.ts index a8e32cab..aff623b3 100644 --- a/packages/adt-contracts/src/adt/cts/transportrequests/searchconfiguration/metadata.ts +++ b/packages/adt-contracts/src/adt/cts/transportrequests/searchconfiguration/metadata.ts @@ -11,6 +11,8 @@ export const metadata = contract({ get: () => http.get('/sap/bc/adt/cts/transportrequests/searchconfiguration/metadata', { responses: { 200: configuration }, - headers: { Accept: 'application/vnd.sap.adt.configuration.metadata.v1+xml' }, + headers: { + Accept: 'application/vnd.sap.adt.configuration.metadata.v1+xml', + }, }), }); diff --git a/packages/adt-contracts/src/adt/cts/transports.ts b/packages/adt-contracts/src/adt/cts/transports.ts index 0120bca8..c3ad6e9c 100644 --- a/packages/adt-contracts/src/adt/cts/transports.ts +++ b/packages/adt-contracts/src/adt/cts/transports.ts @@ -64,7 +64,7 @@ export type TransportStatusCode = /** * Query parameters for transport find endpoint - * + * * Note: This is the basic find endpoint (/sap/bc/adt/cts/transports?_action=FIND) * which only supports user and trfunction filters. For advanced filtering * (status, date range, etc.), use the discovery-based search endpoint. @@ -118,7 +118,7 @@ export interface CtsReqHeader { */ export function normalizeTransportFindResponse( // eslint-disable-next-line @typescript-eslint/no-explicit-any - response: any + response: any, ): CtsReqHeader[] { // ts-xsd parses root element content directly: { version, values: { DATA: { CTS_REQ_HEADER: [...] } } } const headers = response?.values?.DATA?.CTS_REQ_HEADER; diff --git a/packages/adt-contracts/src/adt/oo/classrun.ts b/packages/adt-contracts/src/adt/oo/classrun.ts index 77fdea90..32babd1b 100644 --- a/packages/adt-contracts/src/adt/oo/classrun.ts +++ b/packages/adt-contracts/src/adt/oo/classrun.ts @@ -1,6 +1,6 @@ /** * ADT OO Classrun Contract - * + * * Endpoint: /sap/bc/adt/oo/classrun * Execute console application classes implementing IF_OO_ADT_CLASSRUN. */ diff --git a/packages/adt-contracts/src/adt/oo/index.ts b/packages/adt-contracts/src/adt/oo/index.ts index 1caff4a7..3e08da13 100644 --- a/packages/adt-contracts/src/adt/oo/index.ts +++ b/packages/adt-contracts/src/adt/oo/index.ts @@ -1,18 +1,27 @@ /** * ADT OO (Object-Oriented) Contracts - * + * * Structure mirrors URL tree: * - /sap/bc/adt/oo/classes → oo.classes * - /sap/bc/adt/oo/interfaces → oo.interfaces * - /sap/bc/adt/oo/classrun → oo.classrun - * + * * Supports full CRUD operations for ABAP classes and interfaces, * including source code management for class includes. */ // Re-export subcontracts -export { classesContract, type ClassesContract, type ClassIncludeType, type ClassResponse } from './classes'; -export { interfacesContract, type InterfacesContract, type InterfaceResponse } from './interfaces'; +export { + classesContract, + type ClassesContract, + type ClassIncludeType, + type ClassResponse, +} from './classes'; +export { + interfacesContract, + type InterfacesContract, + type InterfaceResponse, +} from './interfaces'; export { classrunContract, type ClassrunContract } from './classrun'; // Import for aggregated contract diff --git a/packages/adt-contracts/src/adt/repository/index.ts b/packages/adt-contracts/src/adt/repository/index.ts index 3e49adc8..ad0216b8 100644 --- a/packages/adt-contracts/src/adt/repository/index.ts +++ b/packages/adt-contracts/src/adt/repository/index.ts @@ -4,7 +4,10 @@ export * from './informationsystem'; -import { informationsystemContract, type InformationSystemContract } from './informationsystem'; +import { + informationsystemContract, + type InformationSystemContract, +} from './informationsystem'; export interface RepositoryContract { informationsystem: InformationSystemContract; diff --git a/packages/adt-contracts/src/index.ts b/packages/adt-contracts/src/index.ts index 4061b566..4cb75f36 100644 --- a/packages/adt-contracts/src/index.ts +++ b/packages/adt-contracts/src/index.ts @@ -1,25 +1,25 @@ /** * ADT Contracts - * + * * Type-safe SAP ADT REST API contracts. - * + * * This package serves as the abstraction boundary between contract definitions * and their underlying implementation. Consumers should import client utilities * from here, not directly from the underlying library (speci). - * + * * @example * ```typescript * import { createAdtClient, type HttpAdapter } from '@abapify/adt-contracts'; - * + * * // Implement your adapter * const adapter: HttpAdapter = { ... }; - * + * * // Create typed client (contract is built-in) * const client = createAdtClient({ * baseUrl: 'https://sap-server.example.com', * adapter, * }); - * + * * // Full type inference from XSD schemas! * const transport = await client.cts.transportrequests.get('TRKORR'); * ``` diff --git a/packages/adt-contracts/tests/contracts/base/typed-scenario.ts b/packages/adt-contracts/tests/contracts/base/typed-scenario.ts index 9b6d1e0b..03bda9da 100644 --- a/packages/adt-contracts/tests/contracts/base/typed-scenario.ts +++ b/packages/adt-contracts/tests/contracts/base/typed-scenario.ts @@ -143,7 +143,7 @@ export abstract class TypedContractScenario< * Run a typed contract scenario. * Executes request/response assertions with full type safety. */ - + export function runTypedScenario< T extends (...args: any[]) => RestEndpointDescriptor, >(scenario: TypedContractScenario): void { diff --git a/packages/adt-contracts/tests/contracts/core.test.ts b/packages/adt-contracts/tests/contracts/core.test.ts index dd4915c0..f5e3ba09 100644 --- a/packages/adt-contracts/tests/contracts/core.test.ts +++ b/packages/adt-contracts/tests/contracts/core.test.ts @@ -3,7 +3,10 @@ */ import { fixtures } from 'adt-fixtures'; -import { http as sessions, systeminformationSchema as systeminformation } from '../../src/schemas'; +import { + http as sessions, + systeminformationSchema as systeminformation, +} from '../../src/schemas'; import { ContractScenario, runScenario, type ContractOperation } from './base'; import { sessionsContract } from '../../src/adt/core/http/sessions'; import { systeminformationContract } from '../../src/adt/core/http/systeminformation'; diff --git a/packages/adt-contracts/tests/contracts/packages.test.ts b/packages/adt-contracts/tests/contracts/packages.test.ts index b0990fae..f138944c 100644 --- a/packages/adt-contracts/tests/contracts/packages.test.ts +++ b/packages/adt-contracts/tests/contracts/packages.test.ts @@ -9,13 +9,13 @@ import { packagesContract } from '../../src/adt/packages'; class PackagesScenario extends ContractScenario { readonly name = 'Packages'; - + readonly operations: ContractOperation[] = [ { name: 'get package by name', contract: () => packagesContract.get('$TMP'), method: 'GET', - path: '/sap/bc/adt/packages/%24TMP', // $ is URL-encoded + path: '/sap/bc/adt/packages/%24TMP', // $ is URL-encoded headers: { Accept: 'application/vnd.sap.adt.packages.v1+xml' }, response: { status: 200, diff --git a/packages/adt-contracts/tests/contracts/repository.test.ts b/packages/adt-contracts/tests/contracts/repository.test.ts index b6ebebd3..fd30c8af 100644 --- a/packages/adt-contracts/tests/contracts/repository.test.ts +++ b/packages/adt-contracts/tests/contracts/repository.test.ts @@ -29,7 +29,8 @@ class SearchScenario extends ContractScenario { }, { name: 'quick search with custom maxResults', - contract: () => searchContract.quickSearch({ query: 'ztest', maxResults: 10 }), + contract: () => + searchContract.quickSearch({ query: 'ztest', maxResults: 10 }), method: 'GET', path: '/sap/bc/adt/repository/informationsystem/search', query: { @@ -44,7 +45,8 @@ class SearchScenario extends ContractScenario { }, { name: 'quick search with wildcard', - contract: () => searchContract.quickSearch({ query: '*test*', maxResults: 100 }), + contract: () => + searchContract.quickSearch({ query: '*test*', maxResults: 100 }), method: 'GET', path: '/sap/bc/adt/repository/informationsystem/search', query: { diff --git a/packages/adt-fixtures/AGENTS.md b/packages/adt-fixtures/AGENTS.md index 8197e085..1bcb9539 100644 --- a/packages/adt-fixtures/AGENTS.md +++ b/packages/adt-fixtures/AGENTS.md @@ -19,8 +19,8 @@ import { fixtures, load } from 'adt-fixtures'; // LAZY - nothing loads on import! // Get handle first, then explicitly load: const handle = fixtures.transport.single; -console.log(handle.path); // 'transport/single.xml' -const xml = await handle.load(); // NOW it loads +console.log(handle.path); // 'transport/single.xml' +const xml = await handle.load(); // NOW it loads // Or one-liner: const xml = await fixtures.transport.single.load(); @@ -32,6 +32,7 @@ const xml = await load('transport/single.xml'); ## Adding New Fixtures 1. **Add XML file** to `fixtures/` directory: + ``` fixtures/ ├── transport/ @@ -39,11 +40,12 @@ const xml = await load('transport/single.xml'); ``` 2. **Update registry** in `src/fixtures.ts`: + ```typescript const registry = { transport: { // ... existing - mynew: 'transport/mynew.xml', // Just add path! + mynew: 'transport/mynew.xml', // Just add path! }, } as const; ``` diff --git a/packages/adt-fixtures/README.md b/packages/adt-fixtures/README.md index 80e76cad..c2932331 100644 --- a/packages/adt-fixtures/README.md +++ b/packages/adt-fixtures/README.md @@ -19,7 +19,7 @@ import { fixtures } from 'adt-fixtures'; // Get a handle (still no loading) const handle = fixtures.transport.single; -console.log(handle.path); // 'transport/single.xml' +console.log(handle.path); // 'transport/single.xml' // Explicitly load when needed const xml = await handle.load(); @@ -42,12 +42,12 @@ const path = getPath('transport/single.xml'); ## Available Fixtures -| Category | Fixture | Description | -|----------|---------|-------------| -| `transport` | `single` | GET transport request response | -| `transport` | `create` | POST create transport request | -| `atc` | `worklist` | ATC worklist response | -| `atc` | `result` | ATC check result | +| Category | Fixture | Description | +| ----------- | ---------- | ------------------------------ | +| `transport` | `single` | GET transport request response | +| `transport` | `create` | POST create transport request | +| `atc` | `worklist` | ATC worklist response | +| `atc` | `result` | ATC check result | ## Adding Fixtures diff --git a/packages/adt-fixtures/TODO.md b/packages/adt-fixtures/TODO.md index b6d24ed9..dfcc3aeb 100644 --- a/packages/adt-fixtures/TODO.md +++ b/packages/adt-fixtures/TODO.md @@ -5,10 +5,12 @@ Real SAP XML responses needed for complete test coverage. Collect from SAP systems and sanitize before adding. ### Transport (✅ Done) + - [x] `transport/single.xml` - GET transportrequests/{id} - [x] `transport/create.xml` - POST transportrequests body ### ATC (❌ Missing) + - [ ] `atc/worklist.xml` - GET/POST atc/worklists/{id}, atc/runs - Current file is placeholder - Need real `` response @@ -17,19 +19,23 @@ Real SAP XML responses needed for complete test coverage. Collect from SAP syste - Need real `` or separate `checkresult` schema ### Discovery (❌ Missing) + - [ ] `discovery/service.xml` - GET /sap/bc/adt/discovery - AtomPub service document - Large response, may need to trim ### OO Classes (✅ Partial) + - [x] `oo/class.xml` - GET oo/classes/{name} - [ ] `oo/class-source.txt` - GET oo/classes/{name}/source/main (plain text) ### OO Interfaces (✅ Partial) + - [x] `oo/interface.xml` - GET oo/interfaces/{name} - [ ] `oo/interface-source.txt` - GET oo/interfaces/{name}/source/main (plain text) ### Packages (❌ Missing) + - [ ] `packages/package.xml` - GET packages/{name} ## How to Collect @@ -44,6 +50,7 @@ Real SAP XML responses needed for complete test coverage. Collect from SAP syste ## Security Reminder ⚠️ **Never commit real Booking.com data to this submodule** -- No real transport numbers (use DEVK*, MOCK*, TEST*) + +- No real transport numbers (use DEVK*, MOCK*, TEST\*) - No real usernames - No real system names or URLs diff --git a/packages/adt-fixtures/src/fixtures.ts b/packages/adt-fixtures/src/fixtures.ts index 12c5e82a..b3fbea5c 100644 --- a/packages/adt-fixtures/src/fixtures.ts +++ b/packages/adt-fixtures/src/fixtures.ts @@ -1,6 +1,6 @@ /** * Fixture registry with lazy proxy loading - * + * * Registry lives in fixtures/registry.ts (next to the XML files). * Proxy auto-generates loaders - nothing loads until .load() is called. */ @@ -18,19 +18,20 @@ export interface FixtureHandle { /** Recursively transform registry into proxy type */ type ProxyRegistry = { - [K in keyof T]: T[K] extends string - ? FixtureHandle - : ProxyRegistry; + [K in keyof T]: T[K] extends string ? FixtureHandle : ProxyRegistry; }; /** * Create a proxy that wraps string paths with .load() method */ -function createProxy(obj: T, basePath = ''): ProxyRegistry { +function createProxy( + obj: T, + basePath = '', +): ProxyRegistry { return new Proxy(obj, { get(target, prop: string) { const value = (target as any)[prop]; - + if (typeof value === 'string') { // Leaf node - return handle with .load() return { @@ -38,12 +39,12 @@ function createProxy(obj: T, basePath = ''): ProxyRegistry load: () => loadFile(value), } as FixtureHandle; } - + if (typeof value === 'object' && value !== null) { // Nested object - recurse return createProxy(value, `${basePath}${prop}/`); } - + return value; }, }) as ProxyRegistry; @@ -51,15 +52,15 @@ function createProxy(obj: T, basePath = ''): ProxyRegistry /** * Fixture accessors - nothing loads until you call .load() - * + * * @example * ```typescript * import { fixtures } from 'adt-fixtures'; - * + * * // Get handle (no loading yet!) * const handle = fixtures.transport.single; * console.log(handle.path); // 'transport/single.xml' - * + * * // Explicitly load when needed * const xml = await handle.load(); * // or diff --git a/packages/adt-fixtures/src/index.ts b/packages/adt-fixtures/src/index.ts index c9d98894..238d43dd 100644 --- a/packages/adt-fixtures/src/index.ts +++ b/packages/adt-fixtures/src/index.ts @@ -1,16 +1,16 @@ /** * adt-fixtures - SAP ADT XML fixtures for testing - * + * * Provides lazy access to real SAP XML samples for use in: * - Schema tests (adt-schemas) * - Contract tests (adt-contracts) * - E2E tests * - Scripts and CLI tools - * + * * @example * ```typescript * import { fixtures } from 'adt-fixtures'; - * + * * // Nothing loads on import! * // Explicitly load when needed: * const xml = await fixtures.transport.single.load(); diff --git a/packages/adt-playwright/README.md b/packages/adt-playwright/README.md index 90f5a440..2c08b71e 100644 --- a/packages/adt-playwright/README.md +++ b/packages/adt-playwright/README.md @@ -31,11 +31,11 @@ export default withPlaywright( }, }), { - userDataDir: true, // Enable session persistence - headless: false, // Show browser window for SSO - ignoreHTTPSErrors: true, // Ignore self-signed certificates + userDataDir: true, // Enable session persistence + headless: false, // Show browser window for SSO + ignoreHTTPSErrors: true, // Ignore self-signed certificates requiredCookies: ['SAP_SESSIONID_*', 'sap-usercontext'], - } + }, ); ``` @@ -129,13 +129,19 @@ Enable `userDataDir` to persist browser state across runs: ```typescript // Use default profile directory (~/.adt/browser-profile) -{ userDataDir: true } +{ + userDataDir: true; +} // Use custom directory -{ userDataDir: '/path/to/profile' } +{ + userDataDir: '/path/to/profile'; +} // No persistence (fresh session each time) -{ userDataDir: false } +{ + userDataDir: false; +} ``` ### Benefits @@ -147,7 +153,7 @@ Enable `userDataDir` to persist browser state across runs: ### How It Works 1. **First run**: User completes full SSO login → profile saved -2. **Subsequent runs**: +2. **Subsequent runs**: - ✅ **Okta valid**: Auto-authenticates, extracts SAP cookies - ❌ **Okta expired**: Prompts for re-login @@ -181,7 +187,7 @@ export default withPlaywright( userDataDir: true, headless: false, requiredCookies: ['SAP_SESSIONID_*', 'sap-usercontext'], - } + }, ); ``` @@ -293,7 +299,9 @@ export type { Ensure `headless: false` is set: ```typescript -{ headless: false } +{ + headless: false; +} ``` ### Cookies not captured @@ -301,7 +309,9 @@ Ensure `headless: false` is set: Specify the required cookies explicitly: ```typescript -{ requiredCookies: ['SAP_SESSIONID_*', 'sap-usercontext'] } +{ + requiredCookies: ['SAP_SESSIONID_*', 'sap-usercontext']; +} ``` ### SSL Certificate errors @@ -309,7 +319,9 @@ Specify the required cookies explicitly: Enable `ignoreHTTPSErrors` (default is true): ```typescript -{ ignoreHTTPSErrors: true } +{ + ignoreHTTPSErrors: true; +} ``` ### Session not persisting @@ -317,9 +329,13 @@ Enable `ignoreHTTPSErrors` (default is true): Check that `userDataDir` is enabled and the directory is writable: ```typescript -{ userDataDir: true } +{ + userDataDir: true; +} // or -{ userDataDir: '/writable/path' } +{ + userDataDir: '/writable/path'; +} ``` ## Related Packages diff --git a/packages/adt-playwright/src/adapter.ts b/packages/adt-playwright/src/adapter.ts index ab17c7fb..f18212d9 100644 --- a/packages/adt-playwright/src/adapter.ts +++ b/packages/adt-playwright/src/adapter.ts @@ -78,6 +78,8 @@ export function createPlaywrightAdapter(): BrowserAdapter { if (!page) throw new Error('Page not created'); await page .goto(url, { timeout: options?.timeout ?? 30000 }) + // Navigation errors are intentionally ignored; caller handles auth via event listeners + // eslint-disable-next-line @typescript-eslint/no-empty-function .catch(() => {}); }, diff --git a/packages/adt-playwright/src/auth-plugin.ts b/packages/adt-playwright/src/auth-plugin.ts index 9cc88086..9f075888 100644 --- a/packages/adt-playwright/src/auth-plugin.ts +++ b/packages/adt-playwright/src/auth-plugin.ts @@ -8,7 +8,12 @@ * @module @abapify/adt-playwright/auth-plugin */ -import type { AuthPlugin, AuthPluginResult, AuthPluginOptions, AuthSession } from '@abapify/adt-auth'; +import type { + AuthPlugin, + AuthPluginResult, + AuthPluginOptions, + AuthSession, +} from '@abapify/adt-auth'; import { playwrightAuth, toCookieHeader } from './playwright-auth'; /** Default session duration when cookies don't specify expiration (8 hours) */ @@ -34,8 +39,8 @@ const DEFAULT_SESSION_DURATION_MS = 8 * 60 * 60 * 1000; */ function getExpiresAt(cookies: { expires?: number }[]): Date { const expirations = cookies - .filter(c => c.expires && c.expires > 0) - .map(c => c.expires! * 1000); // Cookie expires is in seconds, convert to ms + .filter((c) => c.expires && c.expires > 0) + .map((c) => c.expires! * 1000); // Cookie expires is in seconds, convert to ms if (expirations.length > 0) { return new Date(Math.min(...expirations)); diff --git a/packages/adt-playwright/src/playwright-auth.ts b/packages/adt-playwright/src/playwright-auth.ts index 46bc143f..78aefa52 100644 --- a/packages/adt-playwright/src/playwright-auth.ts +++ b/packages/adt-playwright/src/playwright-auth.ts @@ -5,8 +5,16 @@ * Provides Playwright-specific browser adapter. */ -import { authenticate, testCredentials, toCookieHeader, toHeaders } from '@abapify/browser-auth'; -import type { BrowserCredentials, BrowserAuthOptions } from '@abapify/browser-auth'; +import { + authenticate, + testCredentials, + toCookieHeader, + toHeaders, +} from '@abapify/browser-auth'; +import type { + BrowserCredentials, + BrowserAuthOptions, +} from '@abapify/browser-auth'; import { createPlaywrightAdapter } from './adapter'; // Re-export types with Playwright-specific names for backwards compatibility @@ -20,7 +28,9 @@ export const playwrightAuth = { /** * Authenticate using Playwright browser */ - async authenticate(options: PlaywrightAuthOptions): Promise { + async authenticate( + options: PlaywrightAuthOptions, + ): Promise { const adapter = createPlaywrightAdapter(); return authenticate(adapter, options); }, @@ -33,9 +43,15 @@ export const playwrightAuth = { /** * Refresh is not reliable with Okta SSO - always return null to trigger full re-authentication */ - async refresh(session: { auth?: { pluginOptions?: { log?: (message: string) => void }}}): Promise { - const log = session?.auth?.pluginOptions?.log as ((message: string) => void) | undefined; - (log ?? console.log)('🔄 Session expired, will trigger full re-authentication...'); + async refresh(session: { + auth?: { pluginOptions?: { log?: (message: string) => void } }; + }): Promise { + const log = session?.auth?.pluginOptions?.log as + | ((message: string) => void) + | undefined; + (log ?? console.log)( + '🔄 Session expired, will trigger full re-authentication...', + ); return null; }, }; diff --git a/packages/adt-plugin-abapgit/AGENTS.md b/packages/adt-plugin-abapgit/AGENTS.md index 5800b6f2..c11ab30c 100644 --- a/packages/adt-plugin-abapgit/AGENTS.md +++ b/packages/adt-plugin-abapgit/AGENTS.md @@ -13,6 +13,7 @@ > **Mantra:** "Global elements create roots. Global types create reuse." **Core Rules:** + - ✅ ONE root element per document schema (`abapGit`) - ✅ Reuse via `xs:complexType`, NOT via elements - ✅ Payload types are TYPES ONLY (never global elements) @@ -45,6 +46,7 @@ src/schemas/generated/ ### Type Inference Each schema provides **two type levels**: + - `schema._type` → Full `AbapGitType` (XML envelope + content) - `schema._values` → `AbapValuesType` (what `toAbapGit()` returns) @@ -79,6 +81,7 @@ toAbapGit: (obj) => ({ ### 2. XSD Template for New Object Types **Step 1:** Create payload type in `xsd/types/{typename}.xsd` (TYPE ONLY): + ```xml @@ -93,6 +96,7 @@ toAbapGit: (obj) => ({ ``` **Step 2:** Create concrete document schema in `xsd/{type}.xsd`: + ```xml TValues` | Maps ADK object to abapGit XML values | -| `definition.getSource?` | `(obj) => Promise` | Returns single source file content | -| `definition.getSources?` | `(obj) => Array<{suffix?, content}>` | Returns multiple source files | -| `definition.xmlFileName?` | `string` | Override default XML filename | +| Parameter | Type | Description | +| ------------------------------- | ------------------------------------ | -------------------------------------------- | +| `type` | `string \| AdkClass` | Object type code (e.g., 'CLAS') or ADK class | +| `definition.schema` | `AbapGitSchema` | Generated typed schema | +| `definition.version` | `string` | abapGit version attribute | +| `definition.serializer` | `string` | Serializer class name | +| `definition.serializer_version` | `string` | Serializer version | +| `definition.toAbapGit` | `(obj) => TValues` | Maps ADK object to abapGit XML values | +| `definition.getSource?` | `(obj) => Promise` | Returns single source file content | +| `definition.getSources?` | `(obj) => Array<{suffix?, content}>` | Returns multiple source files | +| `definition.xmlFileName?` | `string` | Override default XML filename | ### Type Inference @@ -341,7 +344,7 @@ export const dtelHandler = createHandler('DTEL', { version: 'v1.0.0', serializer: 'LCL_OBJECT_DTEL', serializer_version: 'v1.0.0', - + toAbapGit: (obj) => ({ DD04V: { ROLLNAME: obj.name ?? '', @@ -360,14 +363,14 @@ export const intfHandler = createHandler(AdkInterface, { version: 'v1.0.0', serializer: 'LCL_OBJECT_INTF', serializer_version: 'v1.0.0', - + toAbapGit: (obj) => ({ VSEOINTERF: { CLSNAME: obj.name ?? '', DESCRIPT: obj.description ?? '', }, }), - + getSource: (obj) => obj.getSource(), }); ``` @@ -388,15 +391,18 @@ export const classHandler = createHandler(AdkClass, { version: 'v1.0.0', serializer: 'LCL_OBJECT_CLAS', serializer_version: 'v1.0.0', - + toAbapGit: (obj) => ({ - VSEOCLASS: { /* ... */ }, + VSEOCLASS: { + /* ... */ + }, }), - - getSources: (cls) => cls.includes.map((inc) => ({ - suffix: SUFFIX_MAP[inc.includeType], - content: cls.getIncludeSource(inc.includeType), - })), + + getSources: (cls) => + cls.includes.map((inc) => ({ + suffix: SUFFIX_MAP[inc.includeType], + content: cls.getIncludeSource(inc.includeType), + })), }); ``` @@ -405,11 +411,11 @@ export const classHandler = createHandler(AdkClass, { ```typescript export const packageHandler = createHandler(AdkPackage, { schema: devc, - xmlFileName: 'package.devc.xml', // Not '{name}.devc.xml' + xmlFileName: 'package.devc.xml', // Not '{name}.devc.xml' version: 'v1.0.0', serializer: 'LCL_OBJECT_DEVC', serializer_version: 'v1.0.0', - + toAbapGit: (pkg) => ({ DEVC: { CTEXT: pkg.description ?? '', @@ -426,7 +432,7 @@ export const packageHandler = createHandler(AdkPackage, { ```typescript // WRONG - No validation, error-prone -toAbapGit: (obj) => `${obj.name}` +toAbapGit: (obj) => `${obj.name}`; ``` ```typescript @@ -435,7 +441,7 @@ toAbapGit: (obj) => ({ VSEOCLASS: { CLSNAME: obj.name ?? '', }, -}) +}); ``` ### ❌ ADT Client Calls in Handler @@ -443,14 +449,14 @@ toAbapGit: (obj) => ({ ```typescript // WRONG - Handler shouldn't know about ADT getSource: async (obj) => { - const source = await adtClient.getSource(obj.uri); // NO! + const source = await adtClient.getSource(obj.uri); // NO! return source; -} +}; ``` ```typescript // CORRECT - Use ADK facade -getSource: (obj) => obj.getSource() // ADK handles ADT calls +getSource: (obj) => obj.getSource(); // ADK handles ADT calls ``` ### ❌ Skipping XSD Schema diff --git a/packages/adt-plugin-abapgit/README.md b/packages/adt-plugin-abapgit/README.md index 56de537e..8b9de9b4 100644 --- a/packages/adt-plugin-abapgit/README.md +++ b/packages/adt-plugin-abapgit/README.md @@ -35,6 +35,7 @@ abapGit format plugin for ADT - serializes ABAP objects to Git-compatible XML/AB ### 1. XSD Schemas as Single Source of Truth **Why XSD?** + - XML Schema Definition (XSD) is the **industry standard** for XML structure validation - Can be used **outside our tools** (e.g., `xmllint --schema intf.xsd file.xml`) - Provides **formal contract** for abapGit XML format @@ -50,6 +51,7 @@ xmllint --schema xsd/intf.xsd myinterface.intf.xml --noout **Why ts-xsd?** Unlike typical XML codegen tools that only generate types, `ts-xsd` provides: + - **TypeScript types** with full type inference - **XML parser** that returns typed objects - **XML builder** that accepts typed objects @@ -59,8 +61,8 @@ Unlike typical XML codegen tools that only generate types, `ts-xsd` provides: // Generated from XSD - fully typed parse/build import { intf } from './schemas/generated'; -const data = intf.parse(xmlString); // → AbapGitIntf (typed) -const xml = intf.build(data); // → string (valid XML) +const data = intf.parse(xmlString); // → AbapGitIntf (typed) +const xml = intf.build(data); // → string (valid XML) ``` ### 3. ADK as Client-Agnostic Facade @@ -68,6 +70,7 @@ const xml = intf.build(data); // → string (valid XML) **Why not implement ADT client features in the plugin?** The plugin **only consumes** the ADK facade: + - ADK handles all SAP communication details - Plugin focuses purely on **serialization format** - Same plugin works with any ADT client implementation @@ -75,10 +78,11 @@ The plugin **only consumes** the ADK facade: ```typescript // Plugin receives ADK objects, doesn't care how they were fetched -getSources: (cls) => cls.includes.map((inc) => ({ - suffix: ABAPGIT_SUFFIX[inc.includeType], - content: cls.getIncludeSource(inc.includeType), // ADK handles this -})) +getSources: (cls) => + cls.includes.map((inc) => ({ + suffix: ABAPGIT_SUFFIX[inc.includeType], + content: cls.getIncludeSource(inc.includeType), // ADK handles this + })); ``` ### 4. Handlers Don't Touch File System @@ -86,10 +90,12 @@ getSources: (cls) => cls.includes.map((inc) => ({ **Why delegate file operations to base class?** Object handlers **only define mappings**: + - `toAbapGit()` - ADK data → abapGit XML structure - `getSource()` / `getSources()` - which source files to create The `createHandler` factory handles: + - File creation with correct naming - XML building with proper envelope - Promise resolution for async sources @@ -97,13 +103,13 @@ The `createHandler` factory handles: ## Supported Object Types -| Type | Status | Handler | Notes | -|------|--------|---------|-------| -| CLAS | ✅ | `clas.ts` | Multiple includes (main, locals_def, locals_imp, testclasses, macros) | -| INTF | ✅ | `intf.ts` | Single source file | -| DEVC | ✅ | `devc.ts` | Fixed filename `package.devc.xml` | -| DTEL | ✅ | `dtel.ts` | Metadata only (no source) | -| DOMA | ✅ | `doma.ts` | Custom serialize for fixed values | +| Type | Status | Handler | Notes | +| ---- | ------ | --------- | --------------------------------------------------------------------- | +| CLAS | ✅ | `clas.ts` | Multiple includes (main, locals_def, locals_imp, testclasses, macros) | +| INTF | ✅ | `intf.ts` | Single source file | +| DEVC | ✅ | `devc.ts` | Fixed filename `package.devc.xml` | +| DTEL | ✅ | `dtel.ts` | Metadata only (no source) | +| DOMA | ✅ | `doma.ts` | Custom serialize for fixed values | ## File Structure @@ -146,6 +152,7 @@ npx nx codegen adt-plugin-abapgit ## Contributing See [CONTRIBUTING.md](./CONTRIBUTING.md) for detailed guidelines on: + - Adding new object type support - XSD schema conventions - Handler implementation patterns diff --git a/packages/adt-plugin-abapgit/eslint.config.js b/packages/adt-plugin-abapgit/eslint.config.js index b0a3a0e1..b7f62772 100644 --- a/packages/adt-plugin-abapgit/eslint.config.js +++ b/packages/adt-plugin-abapgit/eslint.config.js @@ -1,3 +1,3 @@ -import baseConfig from '../../../eslint.config.js'; +import baseConfig from '../../eslint.config.mjs'; export default [...baseConfig]; diff --git a/packages/adt-plugin-abapgit/package.json b/packages/adt-plugin-abapgit/package.json index 28d688df..5c7fe954 100644 --- a/packages/adt-plugin-abapgit/package.json +++ b/packages/adt-plugin-abapgit/package.json @@ -15,6 +15,7 @@ }, "dependencies": { "@abapify/adk": "*", + "@abapify/adt-atc": "workspace:*", "@abapify/adt-plugin": "*", "ts-xsd": "workspace:*" } diff --git a/packages/adt-plugin-abapgit/src/index.ts b/packages/adt-plugin-abapgit/src/index.ts index 10e44652..fd9a2eca 100644 --- a/packages/adt-plugin-abapgit/src/index.ts +++ b/packages/adt-plugin-abapgit/src/index.ts @@ -1,6 +1,9 @@ // Plugin instance export { abapGitPlugin, AbapGitPlugin } from './lib/abapgit'; +// Finding resolver for ATC integration +export { createFindingResolver } from './lib/finding-resolver'; + // Re-export types from @abapify/adt-plugin for convenience export type { AdtPlugin, diff --git a/packages/adt-plugin-abapgit/src/lib/abapgit.ts b/packages/adt-plugin-abapgit/src/lib/abapgit.ts index b0a81e6c..4a1fe1d7 100644 --- a/packages/adt-plugin-abapgit/src/lib/abapgit.ts +++ b/packages/adt-plugin-abapgit/src/lib/abapgit.ts @@ -1,30 +1,178 @@ -import { createPlugin, type AdtPlugin } from '@abapify/adt-plugin'; +import { + createPlugin, + type AdtPlugin, + type ImportContext, +} from '@abapify/adt-plugin'; import type { AdtClient } from '@abapify/adk'; import { AbapGitSerializer } from './serializer'; import { getSupportedTypes, isSupported } from './handlers'; import { deserialize } from './deserializer'; -import { writeFileSync } from 'fs'; +import { existsSync, readFileSync, writeFileSync } from 'fs'; import { join } from 'path'; const serializer = new AbapGitSerializer(); +// Store folder logic for afterImport hook (set during import, read in afterImport) +let currentFolderLogic: FolderLogic = 'prefix'; + +type FolderLogic = 'prefix' | 'full' | 'full-with-root'; + +function parseFolderLogic(value: unknown): FolderLogic | undefined { + if (typeof value !== 'string') { + return undefined; + } + + const normalized = value.trim().toLowerCase(); + if ( + normalized === 'prefix' || + normalized === 'full' || + normalized === 'full-with-root' + ) { + return normalized; + } + + return undefined; +} + +function parseFolderLogicFromAbapGitXml( + xmlContent: string, +): FolderLogic | undefined { + const match = xmlContent.match( + /\s*([^<]+)\s*<\/FOLDER_LOGIC>/i, + ); + if (!match) { + return undefined; + } + + const normalized = match[1].trim().toUpperCase(); + if (normalized === 'PREFIX') { + return 'prefix'; + } + if (normalized === 'FULL') { + return 'full'; + } + + return undefined; +} + +function readFolderLogicFromExistingRepo( + targetPath: string, +): FolderLogic | undefined { + const abapgitXmlPath = join(targetPath, '.abapgit.xml'); + if (!existsSync(abapgitXmlPath)) { + return undefined; + } + + try { + const xmlContent = readFileSync(abapgitXmlPath, 'utf-8'); + return parseFolderLogicFromAbapGitXml(xmlContent); + } catch { + return undefined; + } +} + +function resolveFolderLogic( + context: ImportContext, + targetPath: string, +): FolderLogic { + const cliFolderLogic = parseFolderLogic(context.formatOptions?.folderLogic); + if (cliFolderLogic) { + return cliFolderLogic; + } + + const existingRepoFolderLogic = readFolderLogicFromExistingRepo(targetPath); + if (existingRepoFolderLogic) { + return existingRepoFolderLogic; + } + + const configuredFolderLogic = parseFolderLogic( + context.configFormatOptions?.folderLogic, + ); + if (configuredFolderLogic) { + return configuredFolderLogic; + } + + return 'prefix'; +} + /** * Generate .abapgit.xml repository metadata file */ -function generateAbapGitXml(): string { +function generateAbapGitXml(folderLogic: FolderLogic): string { + // Map our folder logic to abapGit folder logic + // Note: 'full-with-root' is our custom mode, not standard abapGit + // We use FULL in .abapgit.xml for both 'full' and 'full-with-root' + const abapGitFolderLogic = folderLogic === 'prefix' ? 'PREFIX' : 'FULL'; + return ` E /src/ - PREFIX + ${abapGitFolderLogic} `; } +/** + * Calculate package directory based on folder logic + * + * @param packagePath - Full package hierarchy from root to current (e.g., ['ZROOT', 'ZROOT_CHILD']) + * @param folderLogic - Folder logic mode + * @returns Package directory relative to src/ (e.g., 'child' for prefix, 'zroot_child' for full) + */ +function calculatePackageDir( + packagePath: string[], + folderLogic: FolderLogic, +): string { + if (packagePath.length === 0) { + return ''; + } + + switch (folderLogic) { + case 'prefix': { + // PREFIX mode: root → src/, children strip parent prefix + // Example: ['ZTEST', 'ZTEST_EXAMPLES'] → 'examples' + if (packagePath.length === 1) { + return ''; // Root package goes directly to src/ + } + + // For each level, strip the parent prefix + // Build path by processing each child package + const parts: string[] = []; + for (let i = 1; i < packagePath.length; i++) { + const fullName = packagePath[i]; + const parentName = packagePath[i - 1]; + const prefix = parentName + '_'; + const relativeName = fullName.startsWith(prefix) + ? fullName.slice(prefix.length) + : fullName; + parts.push(relativeName.toLowerCase()); + } + return parts.join('/'); + } + + case 'full': { + // FULL mode: all packages including root become folders under src/ + // Example: ['ZABAPGIT_EXAMPLES', 'ZABAPGIT_EXAMPLES_CLAS'] → 'zabapgit_examples/zabapgit_examples_clas' + // This matches abapGit FULL folder logic where every package has its own directory + return packagePath.map((p) => p.toLowerCase()).join('/'); + } + + case 'full-with-root': { + // FULL-WITH-ROOT mode: all packages including root become folders + // Example: ['ZTEST', 'ZTEST_EXAMPLES'] → 'ztest/ztest_examples' + return packagePath.map((p) => p.toLowerCase()).join('/'); + } + + default: + return ''; + } +} + /** * abapGit Plugin * @@ -56,29 +204,18 @@ export const abapGitPlugin: AdtPlugin = createPlugin({ // This uses ADK to load package hierarchy via super package references const packagePath = await context.resolvePackagePath(objPackage); - // abapGit PREFIX folder logic: - // - Root package (1 element in path): no subfolder, files go directly in src/ - // - Child packages: use name with parent prefix stripped - // Example: $PARENT_CHILD → strip $PARENT_ → child/ - - let packageDir: string; + // Resolve folder logic with precedence: + // 1) CLI format options + // 2) Existing .abapgit.xml in target repository + // 3) adt.config.ts format options + // 4) Plugin default + const folderLogic = resolveFolderLogic(context, targetPath); - if (packagePath.length === 1) { - // Root package: serialize directly to src/ (no subfolder) - packageDir = ''; - } else { - // Child package: strip parent prefix from name - const fullName = packagePath.at(-1)!; - const parentName = packagePath.at(-2)!; + // Store for afterImport hook + currentFolderLogic = folderLogic; - // Strip parent prefix and underscore (e.g., $PARENT_CHILD → CHILD → child) - const prefix = parentName + '_'; - const relativeName = fullName.startsWith(prefix) - ? fullName.slice(prefix.length) - : fullName; - - packageDir = relativeName.toLowerCase(); - } + // Calculate package directory based on folder logic + const packageDir = calculatePackageDir(packagePath, folderLogic); // Delegate to serializer which handles lazy loading const files = await serializer.serializeObjectPublic( @@ -117,12 +254,21 @@ export const abapGitPlugin: AdtPlugin = createPlugin({ async afterImport(targetPath) { // Generate .abapgit.xml metadata file after import completes const abapgitXmlPath = join(targetPath, '.abapgit.xml'); - const abapgitXmlContent = generateAbapGitXml(); + const abapgitXmlContent = generateAbapGitXml(currentFolderLogic); writeFileSync(abapgitXmlPath, abapgitXmlContent, 'utf-8'); }, }, }); +export const __testing = { + calculatePackageDir, + generateAbapGitXml, + parseFolderLogic, + parseFolderLogicFromAbapGitXml, + readFolderLogicFromExistingRepo, + resolveFolderLogic, +}; + // Export for named imports export { abapGitPlugin as AbapGitPlugin }; diff --git a/packages/adt-plugin-abapgit/src/lib/finding-resolver.ts b/packages/adt-plugin-abapgit/src/lib/finding-resolver.ts new file mode 100644 index 00000000..82c0f361 --- /dev/null +++ b/packages/adt-plugin-abapgit/src/lib/finding-resolver.ts @@ -0,0 +1,168 @@ +/** + * Finding Resolver for abapGit repositories + * + * Resolves ATC finding locations (object type/name + method-relative line) + * to actual git file paths and file-relative line numbers, respecting + * the repository's folder logic (PREFIX vs FULL). + * + * This is the bridge between ATC (which knows SAP objects) and git + * (which knows files). The abapgit plugin owns this mapping because + * it defines how SAP objects map to files on disk. + */ + +import { readFileSync, existsSync } from 'fs'; +import { execSync } from 'child_process'; +import { basename } from 'path'; +import type { FindingResolver, ResolvedLocation } from '@abapify/adt-atc'; + +// ── Method range parsing ──────────────────────────────────────────────── + +interface MethodRange { + name: string; + startLine: number; + length: number; +} + +const fileCache = new Map(); + +function getFileLines(filePath: string): string[] | null { + if (fileCache.has(filePath)) return fileCache.get(filePath)!; + try { + const content = readFileSync(filePath, 'utf8'); + const lines = content.split('\n'); + fileCache.set(filePath, lines); + return lines; + } catch { + return null; + } +} + +function parseMethodRanges(lines: string[]): MethodRange[] { + const ranges: MethodRange[] = []; + let currentMethod: string | null = null; + let methodStart = 0; + + for (let i = 0; i < lines.length; i++) { + const match = lines[i].match(/^\s*METHOD\s+(\w+)/i); + if (match) { + currentMethod = match[1].toLowerCase(); + methodStart = i + 1; // 1-based + } + if (currentMethod && /^\s*ENDMETHOD/i.test(lines[i])) { + const endLine = i + 1; + ranges.push({ + name: currentMethod, + startLine: methodStart, + length: endLine - methodStart + 1, + }); + currentMethod = null; + } + } + return ranges; +} + +/** + * Convert method-relative ATC line to file-relative line + */ +function convertLine( + atcLine: number, + methodName: string | undefined, + filePath: string, +): number { + if (!filePath.endsWith('.clas.abap')) return atcLine; + + const lines = getFileLines(filePath); + if (!lines) return atcLine; + + const ranges = parseMethodRanges(lines); + if (ranges.length === 0) return atcLine; + + // Best case: method name known + if (methodName) { + const method = ranges.find((r) => r.name === methodName.toLowerCase()); + if (method) return method.startLine + atcLine - 1; + } + + // Single method + if (ranges.length === 1) return ranges[0].startLine + atcLine - 1; + + // Heuristic: smallest method where atcLine fits + const candidates = ranges + .filter((r) => atcLine <= r.length) + .sort((a, b) => a.length - b.length); + if (candidates.length > 0) return candidates[0].startLine + atcLine - 1; + + return atcLine; +} + +// ── Resolver factory ──────────────────────────────────────────────────── + +/** + * Create a FindingResolver for an abapGit repository. + * + * Scans the `src/` directory to build a filename → git-path lookup, + * then uses it to resolve ATC object references to actual file paths. + * Also converts method-relative line numbers to file-relative by + * parsing METHOD/ENDMETHOD statements in ABAP class files. + * + * @param srcRoot - Path to scan for source files (default: 'src/') + * @returns FindingResolver implementation + * + * @example + * ```typescript + * const resolver = createFindingResolver(); + * const loc = await resolver.resolve('CLAS', 'ZCL_MY_CLASS', 21, 'my_method'); + * // { path: 'src/zpackage/zpackage_clas/zcl_my_class.clas.abap', line: 38 } + * ``` + */ +export function createFindingResolver(srcRoot = 'src/'): FindingResolver { + // Build filename → git-path lookup by scanning src/ tree + const lookup = new Map(); + + try { + if (existsSync(srcRoot)) { + const files = execSync( + `find ${srcRoot} -type f \\( -name "*.abap" -o -name "*.xml" \\)`, + { encoding: 'utf8', maxBuffer: 5 * 1024 * 1024 }, + ) + .trim() + .split('\n') + .filter(Boolean); + + for (const f of files) { + const name = basename(f); + if (!lookup.has(name)) { + lookup.set(name, f); + } + } + } + } catch { + // src/ scan failed — resolver will fall back to null + } + + if (lookup.size > 0) { + console.log( + `📂 Finding resolver: ${lookup.size} files indexed from ${srcRoot}`, + ); + } + + return { + async resolve( + objectType: string, + objectName: string, + atcLine: number, + methodName?: string, + ): Promise { + // Construct expected filename from object type + name + const expectedFilename = `${objectName.toLowerCase()}.${objectType.toLowerCase()}.abap`; + const resolvedPath = lookup.get(expectedFilename); + + if (!resolvedPath) return null; + + // Convert method-relative line to file-relative + const fileLine = convertLine(atcLine, methodName, resolvedPath); + + return { path: resolvedPath, line: fileLine }; + }, + }; +} diff --git a/packages/adt-plugin-abapgit/src/lib/handlers/abapgit-schema.ts b/packages/adt-plugin-abapgit/src/lib/handlers/abapgit-schema.ts index b0fc93d2..737cfd08 100644 --- a/packages/adt-plugin-abapgit/src/lib/handlers/abapgit-schema.ts +++ b/packages/adt-plugin-abapgit/src/lib/handlers/abapgit-schema.ts @@ -1,6 +1,6 @@ /** * AbapGit Schema - extends TypedSchema with values type - * + * * Provides both: * - _type: Full AbapGitType (for XML build/parse) * - _values: Inner values type (for handler mapping) @@ -10,49 +10,59 @@ import { typedSchema, type TypedSchema, type SchemaLike } from 'ts-xsd'; /** * AbapGit schema instance with both full type and values type - * + * * @typeParam TFull - Full AbapGitType (root XML structure) * @typeParam TValues - Inner values type (e.g., DevcType) * @typeParam S - Raw schema literal type */ -export interface AbapGitSchema - extends TypedSchema { +export interface AbapGitSchema< + TFull, + TValues, + S extends SchemaLike = SchemaLike, +> extends TypedSchema { /** The inner values type - use with typeof for type extraction */ readonly _values: TValues; } /** * Create an AbapGit typed schema wrapper from raw schema - * + * * @param rawSchema - Raw schema literal (with `as const`) * @returns AbapGitSchema with both _type and _values - * + * * @example * ```typescript * import _devc from './schemas/devc'; - * + * * const devc = abapGitSchema(_devc); - * + * * // Access types: * type Full = typeof devc._type; // DevcAbapGitType * type Values = typeof devc._values; // DevcType * ``` */ -export function abapGitSchema( - rawSchema: S -): AbapGitSchema { +export function abapGitSchema< + TFull, + TValues, + S extends SchemaLike = SchemaLike, +>(rawSchema: S): AbapGitSchema { const base = typedSchema(rawSchema); return { _type: base._type as TFull, _values: null as unknown as TValues, schema: base.schema, parse: base.parse as (xml: string) => TFull, - build: base.build as (data: TFull, options?: Parameters[1]) => string, + build: base.build as ( + data: TFull, + options?: Parameters[1], + ) => string, }; } /** Extract the full AbapGit type from an AbapGitSchema */ -export type InferAbapGitType = S extends AbapGitSchema ? T : unknown; +export type InferAbapGitType = + S extends AbapGitSchema ? T : unknown; /** Extract the values type from an AbapGitSchema */ -export type InferValuesType = S extends AbapGitSchema ? V : unknown; +export type InferValuesType = + S extends AbapGitSchema ? V : unknown; diff --git a/packages/adt-plugin-abapgit/src/lib/handlers/adk.ts b/packages/adt-plugin-abapgit/src/lib/handlers/adk.ts index 730e7e43..0281aad6 100644 --- a/packages/adt-plugin-abapgit/src/lib/handlers/adk.ts +++ b/packages/adt-plugin-abapgit/src/lib/handlers/adk.ts @@ -1,6 +1,6 @@ /** * ADK re-exports for abapGit handlers - * + * * Centralizes all ADK imports used by object handlers. */ diff --git a/packages/adt-plugin-abapgit/src/lib/handlers/base.ts b/packages/adt-plugin-abapgit/src/lib/handlers/base.ts index 4f601b1a..1d5d124d 100644 --- a/packages/adt-plugin-abapgit/src/lib/handlers/base.ts +++ b/packages/adt-plugin-abapgit/src/lib/handlers/base.ts @@ -27,7 +27,7 @@ export type InferAdkData = * We use `any[]` for constructor args since we only need the static `kind` property, * not to actually instantiate the class. */ -// eslint-disable-next-line @typescript-eslint/no-explicit-any + export type AdkObjectClass = { new (...args: any[]): T; readonly kind: AdkKind; diff --git a/packages/adt-plugin-abapgit/src/lib/handlers/registry.ts b/packages/adt-plugin-abapgit/src/lib/handlers/registry.ts index 6706ffc1..8e985e78 100644 --- a/packages/adt-plugin-abapgit/src/lib/handlers/registry.ts +++ b/packages/adt-plugin-abapgit/src/lib/handlers/registry.ts @@ -1,6 +1,6 @@ /** * Object Handler Registry for abapGit plugin - * + * * Handlers auto-register themselves when instantiated via BaseHandler constructor. * This module just ensures all handlers are loaded and re-exports registry functions. */ diff --git a/packages/adt-plugin-abapgit/src/lib/serializer.ts b/packages/adt-plugin-abapgit/src/lib/serializer.ts index 6c33ce11..9a522da5 100644 --- a/packages/adt-plugin-abapgit/src/lib/serializer.ts +++ b/packages/adt-plugin-abapgit/src/lib/serializer.ts @@ -6,7 +6,7 @@ import { getHandler } from './handlers'; /** * Serialize ADK objects to abapGit format - * + * * This class uses the handler registry to delegate serialization * to type-specific handlers. */ @@ -17,7 +17,7 @@ export class AbapGitSerializer { async serializeObjectPublic( obj: AdkObject, targetPath: string, - packageDir: string + packageDir: string, ): Promise { const fullPackageDir = join(targetPath, 'src', packageDir); mkdirSync(fullPackageDir, { recursive: true }); @@ -27,7 +27,9 @@ export class AbapGitSerializer { const handler = getHandler(objectType); if (!handler) { - throw new Error(`No handler available for object type: ${objectType} (kind: ${obj.kind})`); + throw new Error( + `No handler available for object type: ${objectType} (kind: ${obj.kind})`, + ); } // Serialize using handler diff --git a/packages/adt-plugin-abapgit/src/schemas/generated/schemas/clas.ts b/packages/adt-plugin-abapgit/src/schemas/generated/schemas/clas.ts index 57d0db86..34e0cee1 100644 --- a/packages/adt-plugin-abapgit/src/schemas/generated/schemas/clas.ts +++ b/packages/adt-plugin-abapgit/src/schemas/generated/schemas/clas.ts @@ -1,180 +1,180 @@ /** * Auto-generated schema from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen * Source: abapgit/clas.xsd */ export default { $xmlns: { - xs: "http://www.w3.org/2001/XMLSchema", - asx: "http://www.sap.com/abapxml", + xs: 'http://www.w3.org/2001/XMLSchema', + asx: 'http://www.sap.com/abapxml', }, - targetNamespace: "http://www.sap.com/abapxml", - elementFormDefault: "unqualified", + targetNamespace: 'http://www.sap.com/abapxml', + elementFormDefault: 'unqualified', element: [ { - name: "abapGit", + name: 'abapGit', complexType: { sequence: { element: [ { - ref: "asx:abap", + ref: 'asx:abap', }, ], }, attribute: [ { - name: "version", - type: "xs:string", - use: "required", + name: 'version', + type: 'xs:string', + use: 'required', }, { - name: "serializer", - type: "xs:string", - use: "required", + name: 'serializer', + type: 'xs:string', + use: 'required', }, { - name: "serializer_version", - type: "xs:string", - use: "required", + name: 'serializer_version', + type: 'xs:string', + use: 'required', }, ], }, }, { - name: "Schema", + name: 'Schema', abstract: true, }, { - name: "abap", - type: "asx:AbapType", + name: 'abap', + type: 'asx:AbapType', }, ], complexType: [ { - name: "AbapValuesType", + name: 'AbapValuesType', all: { element: [ { - name: "VSEOCLASS", - type: "asx:VseoClassType", - minOccurs: "0", + name: 'VSEOCLASS', + type: 'asx:VseoClassType', + minOccurs: '0', }, ], }, }, { - name: "VseoClassType", + name: 'VseoClassType', all: { element: [ { - name: "CLSNAME", - type: "xs:string", + name: 'CLSNAME', + type: 'xs:string', }, { - name: "LANGU", - type: "xs:string", - minOccurs: "0", + name: 'LANGU', + type: 'xs:string', + minOccurs: '0', }, { - name: "DESCRIPT", - type: "xs:string", - minOccurs: "0", + name: 'DESCRIPT', + type: 'xs:string', + minOccurs: '0', }, { - name: "STATE", - type: "xs:string", - minOccurs: "0", + name: 'STATE', + type: 'xs:string', + minOccurs: '0', }, { - name: "CATEGORY", - type: "xs:string", - minOccurs: "0", + name: 'CATEGORY', + type: 'xs:string', + minOccurs: '0', }, { - name: "EXPOSURE", - type: "xs:string", - minOccurs: "0", + name: 'EXPOSURE', + type: 'xs:string', + minOccurs: '0', }, { - name: "CLSFINAL", - type: "xs:string", - minOccurs: "0", + name: 'CLSFINAL', + type: 'xs:string', + minOccurs: '0', }, { - name: "CLSABSTRCT", - type: "xs:string", - minOccurs: "0", + name: 'CLSABSTRCT', + type: 'xs:string', + minOccurs: '0', }, { - name: "CLSCCINCL", - type: "xs:string", - minOccurs: "0", + name: 'CLSCCINCL', + type: 'xs:string', + minOccurs: '0', }, { - name: "FIXPT", - type: "xs:string", - minOccurs: "0", + name: 'FIXPT', + type: 'xs:string', + minOccurs: '0', }, { - name: "UNICODE", - type: "xs:string", - minOccurs: "0", + name: 'UNICODE', + type: 'xs:string', + minOccurs: '0', }, { - name: "WITH_UNIT_TESTS", - type: "xs:string", - minOccurs: "0", + name: 'WITH_UNIT_TESTS', + type: 'xs:string', + minOccurs: '0', }, { - name: "DURATION", - type: "xs:string", - minOccurs: "0", + name: 'DURATION', + type: 'xs:string', + minOccurs: '0', }, { - name: "RISK", - type: "xs:string", - minOccurs: "0", + name: 'RISK', + type: 'xs:string', + minOccurs: '0', }, { - name: "MSG_ID", - type: "xs:string", - minOccurs: "0", + name: 'MSG_ID', + type: 'xs:string', + minOccurs: '0', }, { - name: "REFCLSNAME", - type: "xs:string", - minOccurs: "0", + name: 'REFCLSNAME', + type: 'xs:string', + minOccurs: '0', }, { - name: "SHRM_ENABLED", - type: "xs:string", - minOccurs: "0", + name: 'SHRM_ENABLED', + type: 'xs:string', + minOccurs: '0', }, { - name: "ABAP_LANGUAGE_VERSION", - type: "xs:string", - minOccurs: "0", + name: 'ABAP_LANGUAGE_VERSION', + type: 'xs:string', + minOccurs: '0', }, ], }, }, { - name: "AbapType", + name: 'AbapType', sequence: { element: [ { - name: "values", - type: "asx:AbapValuesType", + name: 'values', + type: 'asx:AbapValuesType', }, ], }, attribute: [ { - name: "version", - type: "xs:string", - "default": "1.0", + name: 'version', + type: 'xs:string', + default: '1.0', }, ], }, diff --git a/packages/adt-plugin-abapgit/src/schemas/generated/schemas/devc.ts b/packages/adt-plugin-abapgit/src/schemas/generated/schemas/devc.ts index 969462d2..24f9b60e 100644 --- a/packages/adt-plugin-abapgit/src/schemas/generated/schemas/devc.ts +++ b/packages/adt-plugin-abapgit/src/schemas/generated/schemas/devc.ts @@ -1,95 +1,95 @@ /** * Auto-generated schema from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen * Source: abapgit/devc.xsd */ export default { $xmlns: { - xs: "http://www.w3.org/2001/XMLSchema", - asx: "http://www.sap.com/abapxml", + xs: 'http://www.w3.org/2001/XMLSchema', + asx: 'http://www.sap.com/abapxml', }, - targetNamespace: "http://www.sap.com/abapxml", - elementFormDefault: "unqualified", + targetNamespace: 'http://www.sap.com/abapxml', + elementFormDefault: 'unqualified', element: [ { - name: "abapGit", + name: 'abapGit', complexType: { sequence: { element: [ { - ref: "asx:abap", + ref: 'asx:abap', }, ], }, attribute: [ { - name: "version", - type: "xs:string", - use: "required", + name: 'version', + type: 'xs:string', + use: 'required', }, { - name: "serializer", - type: "xs:string", - use: "required", + name: 'serializer', + type: 'xs:string', + use: 'required', }, { - name: "serializer_version", - type: "xs:string", - use: "required", + name: 'serializer_version', + type: 'xs:string', + use: 'required', }, ], }, }, { - name: "Schema", + name: 'Schema', abstract: true, }, { - name: "abap", - type: "asx:AbapType", + name: 'abap', + type: 'asx:AbapType', }, ], complexType: [ { - name: "AbapValuesType", + name: 'AbapValuesType', all: { element: [ { - name: "DEVC", - type: "asx:DevcType", - minOccurs: "0", + name: 'DEVC', + type: 'asx:DevcType', + minOccurs: '0', }, ], }, }, { - name: "DevcType", + name: 'DevcType', all: { element: [ { - name: "CTEXT", - type: "xs:string", + name: 'CTEXT', + type: 'xs:string', }, ], }, }, { - name: "AbapType", + name: 'AbapType', sequence: { element: [ { - name: "values", - type: "asx:AbapValuesType", + name: 'values', + type: 'asx:AbapValuesType', }, ], }, attribute: [ { - name: "version", - type: "xs:string", - "default": "1.0", + name: 'version', + type: 'xs:string', + default: '1.0', }, ], }, diff --git a/packages/adt-plugin-abapgit/src/schemas/generated/schemas/doma.ts b/packages/adt-plugin-abapgit/src/schemas/generated/schemas/doma.ts index 0ceeb3e9..330b183c 100644 --- a/packages/adt-plugin-abapgit/src/schemas/generated/schemas/doma.ts +++ b/packages/adt-plugin-abapgit/src/schemas/generated/schemas/doma.ts @@ -1,210 +1,210 @@ /** * Auto-generated schema from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen * Source: abapgit/doma.xsd */ export default { $xmlns: { - xs: "http://www.w3.org/2001/XMLSchema", - asx: "http://www.sap.com/abapxml", + xs: 'http://www.w3.org/2001/XMLSchema', + asx: 'http://www.sap.com/abapxml', }, - targetNamespace: "http://www.sap.com/abapxml", - elementFormDefault: "unqualified", + targetNamespace: 'http://www.sap.com/abapxml', + elementFormDefault: 'unqualified', element: [ { - name: "abapGit", + name: 'abapGit', complexType: { sequence: { element: [ { - ref: "asx:abap", + ref: 'asx:abap', }, ], }, attribute: [ { - name: "version", - type: "xs:string", - use: "required", + name: 'version', + type: 'xs:string', + use: 'required', }, { - name: "serializer", - type: "xs:string", - use: "required", + name: 'serializer', + type: 'xs:string', + use: 'required', }, { - name: "serializer_version", - type: "xs:string", - use: "required", + name: 'serializer_version', + type: 'xs:string', + use: 'required', }, ], }, }, { - name: "Schema", + name: 'Schema', abstract: true, }, { - name: "abap", - type: "asx:AbapType", + name: 'abap', + type: 'asx:AbapType', }, ], complexType: [ { - name: "AbapValuesType", + name: 'AbapValuesType', all: { element: [ { - name: "DD01V", - type: "asx:Dd01vType", - minOccurs: "0", + name: 'DD01V', + type: 'asx:Dd01vType', + minOccurs: '0', }, { - name: "DD07V_TAB", - type: "asx:Dd07vTabType", - minOccurs: "0", + name: 'DD07V_TAB', + type: 'asx:Dd07vTabType', + minOccurs: '0', }, ], }, }, { - name: "Dd01vType", + name: 'Dd01vType', all: { element: [ { - name: "DOMNAME", - type: "xs:string", + name: 'DOMNAME', + type: 'xs:string', }, { - name: "DDLANGUAGE", - type: "xs:string", - minOccurs: "0", + name: 'DDLANGUAGE', + type: 'xs:string', + minOccurs: '0', }, { - name: "DATATYPE", - type: "xs:string", - minOccurs: "0", + name: 'DATATYPE', + type: 'xs:string', + minOccurs: '0', }, { - name: "LENG", - type: "xs:string", - minOccurs: "0", + name: 'LENG', + type: 'xs:string', + minOccurs: '0', }, { - name: "OUTPUTLEN", - type: "xs:string", - minOccurs: "0", + name: 'OUTPUTLEN', + type: 'xs:string', + minOccurs: '0', }, { - name: "DECIMALS", - type: "xs:string", - minOccurs: "0", + name: 'DECIMALS', + type: 'xs:string', + minOccurs: '0', }, { - name: "LOWERCASE", - type: "xs:string", - minOccurs: "0", + name: 'LOWERCASE', + type: 'xs:string', + minOccurs: '0', }, { - name: "SIGNFLAG", - type: "xs:string", - minOccurs: "0", + name: 'SIGNFLAG', + type: 'xs:string', + minOccurs: '0', }, { - name: "VALEXI", - type: "xs:string", - minOccurs: "0", + name: 'VALEXI', + type: 'xs:string', + minOccurs: '0', }, { - name: "ENTITYTAB", - type: "xs:string", - minOccurs: "0", + name: 'ENTITYTAB', + type: 'xs:string', + minOccurs: '0', }, { - name: "CONVEXIT", - type: "xs:string", - minOccurs: "0", + name: 'CONVEXIT', + type: 'xs:string', + minOccurs: '0', }, { - name: "DDTEXT", - type: "xs:string", - minOccurs: "0", + name: 'DDTEXT', + type: 'xs:string', + minOccurs: '0', }, { - name: "DOMMASTER", - type: "xs:string", - minOccurs: "0", + name: 'DOMMASTER', + type: 'xs:string', + minOccurs: '0', }, ], }, }, { - name: "Dd07vType", + name: 'Dd07vType', all: { element: [ { - name: "DOMNAME", - type: "xs:string", - minOccurs: "0", + name: 'DOMNAME', + type: 'xs:string', + minOccurs: '0', }, { - name: "VALPOS", - type: "xs:string", - minOccurs: "0", + name: 'VALPOS', + type: 'xs:string', + minOccurs: '0', }, { - name: "DDLANGUAGE", - type: "xs:string", - minOccurs: "0", + name: 'DDLANGUAGE', + type: 'xs:string', + minOccurs: '0', }, { - name: "DOMVALUE_L", - type: "xs:string", - minOccurs: "0", + name: 'DOMVALUE_L', + type: 'xs:string', + minOccurs: '0', }, { - name: "DOMVALUE_H", - type: "xs:string", - minOccurs: "0", + name: 'DOMVALUE_H', + type: 'xs:string', + minOccurs: '0', }, { - name: "DDTEXT", - type: "xs:string", - minOccurs: "0", + name: 'DDTEXT', + type: 'xs:string', + minOccurs: '0', }, ], }, }, { - name: "Dd07vTabType", + name: 'Dd07vTabType', sequence: { element: [ { - name: "DD07V", - type: "Dd07vType", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'DD07V', + type: 'Dd07vType', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "AbapType", + name: 'AbapType', sequence: { element: [ { - name: "values", - type: "asx:AbapValuesType", + name: 'values', + type: 'asx:AbapValuesType', }, ], }, attribute: [ { - name: "version", - type: "xs:string", - "default": "1.0", + name: 'version', + type: 'xs:string', + default: '1.0', }, ], }, diff --git a/packages/adt-plugin-abapgit/src/schemas/generated/schemas/dtel.ts b/packages/adt-plugin-abapgit/src/schemas/generated/schemas/dtel.ts index 6c0e54cc..2004ecc7 100644 --- a/packages/adt-plugin-abapgit/src/schemas/generated/schemas/dtel.ts +++ b/packages/adt-plugin-abapgit/src/schemas/generated/schemas/dtel.ts @@ -1,180 +1,180 @@ /** * Auto-generated schema from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen * Source: abapgit/dtel.xsd */ export default { $xmlns: { - xs: "http://www.w3.org/2001/XMLSchema", - asx: "http://www.sap.com/abapxml", + xs: 'http://www.w3.org/2001/XMLSchema', + asx: 'http://www.sap.com/abapxml', }, - targetNamespace: "http://www.sap.com/abapxml", - elementFormDefault: "unqualified", + targetNamespace: 'http://www.sap.com/abapxml', + elementFormDefault: 'unqualified', element: [ { - name: "abapGit", + name: 'abapGit', complexType: { sequence: { element: [ { - ref: "asx:abap", + ref: 'asx:abap', }, ], }, attribute: [ { - name: "version", - type: "xs:string", - use: "required", + name: 'version', + type: 'xs:string', + use: 'required', }, { - name: "serializer", - type: "xs:string", - use: "required", + name: 'serializer', + type: 'xs:string', + use: 'required', }, { - name: "serializer_version", - type: "xs:string", - use: "required", + name: 'serializer_version', + type: 'xs:string', + use: 'required', }, ], }, }, { - name: "Schema", + name: 'Schema', abstract: true, }, { - name: "abap", - type: "asx:AbapType", + name: 'abap', + type: 'asx:AbapType', }, ], complexType: [ { - name: "AbapValuesType", + name: 'AbapValuesType', all: { element: [ { - name: "DD04V", - type: "asx:Dd04vType", - minOccurs: "0", + name: 'DD04V', + type: 'asx:Dd04vType', + minOccurs: '0', }, ], }, }, { - name: "Dd04vType", + name: 'Dd04vType', all: { element: [ { - name: "ROLLNAME", - type: "xs:string", + name: 'ROLLNAME', + type: 'xs:string', }, { - name: "DDLANGUAGE", - type: "xs:string", - minOccurs: "0", + name: 'DDLANGUAGE', + type: 'xs:string', + minOccurs: '0', }, { - name: "DDTEXT", - type: "xs:string", - minOccurs: "0", + name: 'DDTEXT', + type: 'xs:string', + minOccurs: '0', }, { - name: "DOMNAME", - type: "xs:string", - minOccurs: "0", + name: 'DOMNAME', + type: 'xs:string', + minOccurs: '0', }, { - name: "DATATYPE", - type: "xs:string", - minOccurs: "0", + name: 'DATATYPE', + type: 'xs:string', + minOccurs: '0', }, { - name: "LENG", - type: "xs:string", - minOccurs: "0", + name: 'LENG', + type: 'xs:string', + minOccurs: '0', }, { - name: "DECIMALS", - type: "xs:string", - minOccurs: "0", + name: 'DECIMALS', + type: 'xs:string', + minOccurs: '0', }, { - name: "HEADLEN", - type: "xs:string", - minOccurs: "0", + name: 'HEADLEN', + type: 'xs:string', + minOccurs: '0', }, { - name: "SCRLEN1", - type: "xs:string", - minOccurs: "0", + name: 'SCRLEN1', + type: 'xs:string', + minOccurs: '0', }, { - name: "SCRLEN2", - type: "xs:string", - minOccurs: "0", + name: 'SCRLEN2', + type: 'xs:string', + minOccurs: '0', }, { - name: "SCRLEN3", - type: "xs:string", - minOccurs: "0", + name: 'SCRLEN3', + type: 'xs:string', + minOccurs: '0', }, { - name: "REPTEXT", - type: "xs:string", - minOccurs: "0", + name: 'REPTEXT', + type: 'xs:string', + minOccurs: '0', }, { - name: "SCRTEXT_S", - type: "xs:string", - minOccurs: "0", + name: 'SCRTEXT_S', + type: 'xs:string', + minOccurs: '0', }, { - name: "SCRTEXT_M", - type: "xs:string", - minOccurs: "0", + name: 'SCRTEXT_M', + type: 'xs:string', + minOccurs: '0', }, { - name: "SCRTEXT_L", - type: "xs:string", - minOccurs: "0", + name: 'SCRTEXT_L', + type: 'xs:string', + minOccurs: '0', }, { - name: "DTELMASTER", - type: "xs:string", - minOccurs: "0", + name: 'DTELMASTER', + type: 'xs:string', + minOccurs: '0', }, { - name: "REFKIND", - type: "xs:string", - minOccurs: "0", + name: 'REFKIND', + type: 'xs:string', + minOccurs: '0', }, { - name: "ABAP_LANGUAGE_VERSION", - type: "xs:string", - minOccurs: "0", + name: 'ABAP_LANGUAGE_VERSION', + type: 'xs:string', + minOccurs: '0', }, ], }, }, { - name: "AbapType", + name: 'AbapType', sequence: { element: [ { - name: "values", - type: "asx:AbapValuesType", + name: 'values', + type: 'asx:AbapValuesType', }, ], }, attribute: [ { - name: "version", - type: "xs:string", - "default": "1.0", + name: 'version', + type: 'xs:string', + default: '1.0', }, ], }, diff --git a/packages/adt-plugin-abapgit/src/schemas/generated/schemas/index.ts b/packages/adt-plugin-abapgit/src/schemas/generated/schemas/index.ts index 248bd088..81a7b527 100644 --- a/packages/adt-plugin-abapgit/src/schemas/generated/schemas/index.ts +++ b/packages/adt-plugin-abapgit/src/schemas/generated/schemas/index.ts @@ -1,6 +1,6 @@ /** * Auto-generated index for abapgit schemas - * + * * DO NOT EDIT - Generated by ts-xsd codegen */ diff --git a/packages/adt-plugin-abapgit/src/schemas/generated/schemas/intf.ts b/packages/adt-plugin-abapgit/src/schemas/generated/schemas/intf.ts index 494e5174..70eeeaaf 100644 --- a/packages/adt-plugin-abapgit/src/schemas/generated/schemas/intf.ts +++ b/packages/adt-plugin-abapgit/src/schemas/generated/schemas/intf.ts @@ -1,125 +1,125 @@ /** * Auto-generated schema from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen * Source: abapgit/intf.xsd */ export default { $xmlns: { - xs: "http://www.w3.org/2001/XMLSchema", - asx: "http://www.sap.com/abapxml", + xs: 'http://www.w3.org/2001/XMLSchema', + asx: 'http://www.sap.com/abapxml', }, - targetNamespace: "http://www.sap.com/abapxml", - elementFormDefault: "unqualified", + targetNamespace: 'http://www.sap.com/abapxml', + elementFormDefault: 'unqualified', element: [ { - name: "abapGit", + name: 'abapGit', complexType: { sequence: { element: [ { - ref: "asx:abap", + ref: 'asx:abap', }, ], }, attribute: [ { - name: "version", - type: "xs:string", - use: "required", + name: 'version', + type: 'xs:string', + use: 'required', }, { - name: "serializer", - type: "xs:string", - use: "required", + name: 'serializer', + type: 'xs:string', + use: 'required', }, { - name: "serializer_version", - type: "xs:string", - use: "required", + name: 'serializer_version', + type: 'xs:string', + use: 'required', }, ], }, }, { - name: "Schema", + name: 'Schema', abstract: true, }, { - name: "abap", - type: "asx:AbapType", + name: 'abap', + type: 'asx:AbapType', }, ], complexType: [ { - name: "AbapValuesType", + name: 'AbapValuesType', all: { element: [ { - name: "VSEOINTERF", - type: "asx:VseoInterfType", - minOccurs: "0", + name: 'VSEOINTERF', + type: 'asx:VseoInterfType', + minOccurs: '0', }, ], }, }, { - name: "VseoInterfType", + name: 'VseoInterfType', all: { element: [ { - name: "CLSNAME", - type: "xs:string", + name: 'CLSNAME', + type: 'xs:string', }, { - name: "LANGU", - type: "xs:string", - minOccurs: "0", + name: 'LANGU', + type: 'xs:string', + minOccurs: '0', }, { - name: "DESCRIPT", - type: "xs:string", - minOccurs: "0", + name: 'DESCRIPT', + type: 'xs:string', + minOccurs: '0', }, { - name: "EXPOSURE", - type: "xs:string", - minOccurs: "0", + name: 'EXPOSURE', + type: 'xs:string', + minOccurs: '0', }, { - name: "STATE", - type: "xs:string", - minOccurs: "0", + name: 'STATE', + type: 'xs:string', + minOccurs: '0', }, { - name: "UNICODE", - type: "xs:string", - minOccurs: "0", + name: 'UNICODE', + type: 'xs:string', + minOccurs: '0', }, { - name: "ABAP_LANGUAGE_VERSION", - type: "xs:string", - minOccurs: "0", + name: 'ABAP_LANGUAGE_VERSION', + type: 'xs:string', + minOccurs: '0', }, ], }, }, { - name: "AbapType", + name: 'AbapType', sequence: { element: [ { - name: "values", - type: "asx:AbapValuesType", + name: 'values', + type: 'asx:AbapValuesType', }, ], }, attribute: [ { - name: "version", - type: "xs:string", - "default": "1.0", + name: 'version', + type: 'xs:string', + default: '1.0', }, ], }, diff --git a/packages/adt-plugin-abapgit/src/schemas/generated/types/index.ts b/packages/adt-plugin-abapgit/src/schemas/generated/types/index.ts index fb7ee31a..5b3fa275 100644 --- a/packages/adt-plugin-abapgit/src/schemas/generated/types/index.ts +++ b/packages/adt-plugin-abapgit/src/schemas/generated/types/index.ts @@ -1,6 +1,6 @@ /** * Auto-generated types index - * + * * DO NOT EDIT - Generated by ts-xsd codegen */ diff --git a/packages/adt-plugin-abapgit/tests/folder-logic.test.ts b/packages/adt-plugin-abapgit/tests/folder-logic.test.ts new file mode 100644 index 00000000..3cd1f9df --- /dev/null +++ b/packages/adt-plugin-abapgit/tests/folder-logic.test.ts @@ -0,0 +1,127 @@ +import { afterEach, describe, it } from 'node:test'; +import assert from 'node:assert/strict'; +import { mkdtempSync, rmSync, writeFileSync } from 'node:fs'; +import { tmpdir } from 'node:os'; +import { join } from 'node:path'; +import type { ImportContext } from '@abapify/adt-plugin'; +import { __testing } from '../src/lib/abapgit.ts'; + +function createImportContext( + overrides: Partial = {}, +): ImportContext { + return { + resolvePackagePath: async () => ['ZROOT'], + ...overrides, + }; +} + +const tempDirs: string[] = []; +function createTempDir(): string { + const dir = mkdtempSync(join(tmpdir(), 'abapgit-folder-logic-')); + tempDirs.push(dir); + return dir; +} + +afterEach(() => { + for (const dir of tempDirs.splice(0, tempDirs.length)) { + rmSync(dir, { recursive: true, force: true }); + } +}); + +describe('abapGit folder logic resolution', () => { + it('prefers CLI format option over repository and config values', () => { + const dir = createTempDir(); + writeFileSync( + join(dir, '.abapgit.xml'), + __testing.generateAbapGitXml('prefix'), + 'utf-8', + ); + + const folderLogic = __testing.resolveFolderLogic( + createImportContext({ + formatOptions: { folderLogic: 'full-with-root' }, + configFormatOptions: { folderLogic: 'prefix' }, + }), + dir, + ); + + assert.equal(folderLogic, 'full-with-root'); + }); + + it('uses existing .abapgit.xml before config defaults', () => { + const dir = createTempDir(); + writeFileSync( + join(dir, '.abapgit.xml'), + __testing.generateAbapGitXml('full'), + 'utf-8', + ); + + const folderLogic = __testing.resolveFolderLogic( + createImportContext({ + configFormatOptions: { folderLogic: 'prefix' }, + }), + dir, + ); + + assert.equal(folderLogic, 'full'); + }); + + it('uses config default when repository metadata is absent', () => { + const dir = createTempDir(); + const folderLogic = __testing.resolveFolderLogic( + createImportContext({ + configFormatOptions: { folderLogic: 'full' }, + }), + dir, + ); + + assert.equal(folderLogic, 'full'); + }); + + it('falls back to prefix for unknown values', () => { + const dir = createTempDir(); + const folderLogic = __testing.resolveFolderLogic( + createImportContext({ + formatOptions: { folderLogic: 'unknown-mode' }, + configFormatOptions: { folderLogic: 'invalid' }, + }), + dir, + ); + + assert.equal(folderLogic, 'prefix'); + }); +}); + +describe('abapGit package directory mapping', () => { + it('supports prefix logic', () => { + const packageDir = __testing.calculatePackageDir( + ['ZROOT', 'ZROOT_CHILD', 'ZROOT_CHILD_DEEP'], + 'prefix', + ); + assert.equal(packageDir, 'child/deep'); + }); + + it('supports full logic (includes root package as folder)', () => { + const packageDir = __testing.calculatePackageDir( + ['ZROOT', 'ZROOT_CHILD', 'ZROOT_CHILD_DEEP'], + 'full', + ); + assert.equal(packageDir, 'zroot/zroot_child/zroot_child_deep'); + }); + + it('supports full logic with real package names', () => { + const packageDir = __testing.calculatePackageDir( + ['ZABAPGIT_EXAMPLES', 'ZABAPGIT_EXAMPLES_CLAS'], + 'full', + ); + assert.equal(packageDir, 'zabapgit_examples/zabapgit_examples_clas'); + }); + + it('supports full logic with single root package', () => { + const packageDir = __testing.calculatePackageDir( + ['ZABAPGIT_EXAMPLES'], + 'full', + ); + assert.equal(packageDir, 'zabapgit_examples'); + }); +}); diff --git a/packages/adt-plugin-abapgit/tests/schemas/base/scenario.ts b/packages/adt-plugin-abapgit/tests/schemas/base/scenario.ts index 5c754c59..242e6a82 100644 --- a/packages/adt-plugin-abapgit/tests/schemas/base/scenario.ts +++ b/packages/adt-plugin-abapgit/tests/schemas/base/scenario.ts @@ -1,6 +1,6 @@ /** * Test scenario base for abapGit schema tests - * + * * Fixture-driven testing with full validation: * 1. Validate fixture XML against XSD using xmllint * 2. Parse XML fixture → typed TypeScript object @@ -42,14 +42,17 @@ function isXmllintAvailable(): boolean { const xmllintAvailable = isXmllintAvailable(); /** Validate XML file against XSD using xmllint */ -export function validateXsd(fixturePath: string, xsdName: string): { valid: boolean; error?: string; skipped?: boolean } { +export function validateXsd( + fixturePath: string, + xsdName: string, +): { valid: boolean; error?: string; skipped?: boolean } { if (!xmllintAvailable) { return { valid: true, skipped: true, error: 'xmllint not available' }; } - + const xmlPath = join(fixturesDir, fixturePath); const xsdPath = join(xsdDir, `${xsdName}.xsd`); - + try { execSync(`xmllint --schema "${xsdPath}" "${xmlPath}" --noout 2>&1`, { encoding: 'utf-8', @@ -57,7 +60,10 @@ export function validateXsd(fixturePath: string, xsdName: string): { valid: bool return { valid: true }; } catch (err) { const error = err as { stdout?: string; stderr?: string; message?: string }; - return { valid: false, error: error.stdout || error.stderr || error.message }; + return { + valid: false, + error: error.stdout || error.stderr || error.message, + }; } } @@ -111,15 +117,19 @@ export function runSchemaTests(scenario: SchemaScenario): void { let parsed: T; let built: string; let reparsed: T; - let xsdValidation: { valid: boolean; error?: string; skipped?: boolean }; + let xsdValidation: { + valid: boolean; + error?: string; + skipped?: boolean; + }; before(() => { // 1. Validate against XSD first xsdValidation = validateXsd(fixture.path, scenario.xsdName); - + // Only continue if XSD validation passes if (!xsdValidation.valid) return; - + // 2. Load and parse xml = loadFixture(fixture.path); try { @@ -128,7 +138,7 @@ export function runSchemaTests(scenario: SchemaScenario): void { console.error('Parse error:', e); return; } - + // 3. Build back to XML try { built = scenario.schema.build(parsed); @@ -136,7 +146,7 @@ export function runSchemaTests(scenario: SchemaScenario): void { console.error('Build error:', e); return; } - + // 4. Parse again for round-trip try { reparsed = scenario.schema.parse(built); @@ -150,7 +160,10 @@ export function runSchemaTests(scenario: SchemaScenario): void { t.skip('xmllint not available'); return; } - assert.ok(xsdValidation.valid, `XSD validation failed: ${xsdValidation.error}`); + assert.ok( + xsdValidation.valid, + `XSD validation failed: ${xsdValidation.error}`, + ); }); it('parses fixture to typed object', () => { diff --git a/packages/adt-plugin-abapgit/tests/xsd/xsd-root-validation.test.ts b/packages/adt-plugin-abapgit/tests/xsd/xsd-root-validation.test.ts index d45c14ad..f88cca57 100644 --- a/packages/adt-plugin-abapgit/tests/xsd/xsd-root-validation.test.ts +++ b/packages/adt-plugin-abapgit/tests/xsd/xsd-root-validation.test.ts @@ -1,10 +1,10 @@ /** * XSD Root Element Validation Tests - * + * * Validates that XSD schemas correctly enforce abapGit as the ONLY valid root element. * Uses xs:redefine pattern to ensure object-specific elements (DD01V, etc.) can only * appear inside asx:values, not as document roots. - * + * * Tests both: * - Positive: abapGit root element should validate * - Negative: Other root elements (like DD01V, DD02V, etc.) should NOT validate @@ -31,9 +31,12 @@ function isXmllintAvailable(): boolean { } /** Validate XML string against XSD using xmllint */ -function validateXmlString(xml: string, xsdName: string): { valid: boolean; error?: string } { +function validateXmlString( + xml: string, + xsdName: string, +): { valid: boolean; error?: string } { const xsdPath = join(xsdDir, `${xsdName}.xsd`); - + try { execSync(`echo '${xml}' | xmllint --schema "${xsdPath}" - --noout 2>&1`, { encoding: 'utf-8', @@ -42,7 +45,10 @@ function validateXmlString(xml: string, xsdName: string): { valid: boolean; erro return { valid: true }; } catch (err) { const error = err as { stdout?: string; stderr?: string; message?: string }; - return { valid: false, error: error.stdout || error.stderr || error.message }; + return { + valid: false, + error: error.stdout || error.stderr || error.message, + }; } } @@ -85,33 +91,36 @@ function buildXmlWithRoot(element: string, content: string): string { */ function runRootValidationTests(testCase: RootValidationTestCase): void { const xmllintAvailable = isXmllintAvailable(); - + describe(`${testCase.xsdName}.xsd Root Element Validation`, () => { it('should validate abapGit as root element (positive test)', (t) => { if (!xmllintAvailable) { t.skip('xmllint not available'); return; } - + const xml = buildValidAbapGitXml(testCase.validRoot.content); const result = validateXmlString(xml, testCase.xsdName); - - assert.ok(result.valid, `abapGit root should validate but got: ${result.error}`); + + assert.ok( + result.valid, + `abapGit root should validate but got: ${result.error}`, + ); }); - + for (const invalidRoot of testCase.invalidRoots) { it(`should REJECT ${invalidRoot.element} as root element (negative test)`, (t) => { if (!xmllintAvailable) { t.skip('xmllint not available'); return; } - + const xml = buildXmlWithRoot(invalidRoot.element, invalidRoot.content); const result = validateXmlString(xml, testCase.xsdName); - + assert.ok( !result.valid, - `${invalidRoot.element} should NOT be valid as root element! Schema allows wrong root.` + `${invalidRoot.element} should NOT be valid as root element! Schema allows wrong root.`, ); }); } diff --git a/packages/adt-plugin/README.md b/packages/adt-plugin/README.md index 859c2dfe..9135c768 100644 --- a/packages/adt-plugin/README.md +++ b/packages/adt-plugin/README.md @@ -37,18 +37,18 @@ export const myPlugin = createPlugin({ // Import: ADK object → file system import: async (object, targetPath, context) => { // Serialize object to files - return { - success: true, - filesCreated: ['myclass.clas.xml'] + return { + success: true, + filesCreated: ['myclass.clas.xml'], }; }, // Export: file system → ADK object (optional) export: async (sourcePath, type, name) => { // Deserialize files to ADK object - return { - success: true, - object: myAdkObject + return { + success: true, + object: myAdkObject, }; }, }, @@ -70,11 +70,9 @@ import { abapGitPlugin } from '@abapify/adt-plugin-abapgit'; // Check if type is supported if (abapGitPlugin.registry.isSupported('CLAS')) { // Import object to file system - const result = await abapGitPlugin.format.import( - myClassObject, - './output', - { packagePath: ['ZROOT', 'ZSUB'] } - ); + const result = await abapGitPlugin.format.import(myClassObject, './output', { + packagePath: ['ZROOT', 'ZSUB'], + }); if (result.success) { console.log('Files created:', result.filesCreated); diff --git a/packages/adt-plugin/src/factory.ts b/packages/adt-plugin/src/factory.ts index adcf3b62..7eae5687 100644 --- a/packages/adt-plugin/src/factory.ts +++ b/packages/adt-plugin/src/factory.ts @@ -1,6 +1,6 @@ /** * ADT Plugin Factory - * + * * Factory function for creating ADT plugins with validation. */ @@ -8,24 +8,24 @@ import type { AdtPlugin, AdtPluginDefinition } from './types'; /** * Create an ADT plugin with validation - * + * * @param definition - Plugin definition * @returns Validated plugin instance - * + * * @example * ```typescript * import { createPlugin } from '@abapify/adt-plugin'; - * + * * export const myPlugin = createPlugin({ * name: 'myFormat', * version: '1.0.0', * description: 'My custom format plugin', - * + * * registry: { * isSupported: (type) => supportedTypes.includes(type), * getSupportedTypes: () => supportedTypes, * }, - * + * * format: { * import: async (object, targetPath, context) => { * // Implementation diff --git a/packages/adt-plugin/src/index.ts b/packages/adt-plugin/src/index.ts index abce5a9c..667722c4 100644 --- a/packages/adt-plugin/src/index.ts +++ b/packages/adt-plugin/src/index.ts @@ -20,6 +20,7 @@ // Format Plugin Types export type { AbapObjectType, + FormatOptionValue, ImportContext, ImportResult, ExportContext, diff --git a/packages/adt-plugin/src/types.ts b/packages/adt-plugin/src/types.ts index dfb9bba8..a66cea7a 100644 --- a/packages/adt-plugin/src/types.ts +++ b/packages/adt-plugin/src/types.ts @@ -15,6 +15,11 @@ import type { AdkObject } from '@abapify/adk'; */ export type AbapObjectType = string; +/** + * Primitive value accepted for format/plugin options. + */ +export type FormatOptionValue = string | number | boolean; + // ============================================ // Import Types (ADK → File System) // ============================================ @@ -34,6 +39,18 @@ export interface ImportContext { * @returns Array of package names from root to current (e.g., ['ZROOT', 'ZROOT_CHILD', 'ZROOT_CHILD_SUB']) */ resolvePackagePath(packageName: string): Promise; + + /** + * Format options provided explicitly by CLI invocation. + * Interpreted by the selected format plugin. + */ + formatOptions?: Readonly>; + + /** + * Format options loaded from configuration (e.g. adt.config.ts). + * Interpreted by the selected format plugin. + */ + configFormatOptions?: Readonly>; } /** diff --git a/packages/adt-plugin/tsdown.config.ts b/packages/adt-plugin/tsdown.config.ts index f6b73dac..1bb24d39 100644 --- a/packages/adt-plugin/tsdown.config.ts +++ b/packages/adt-plugin/tsdown.config.ts @@ -5,8 +5,5 @@ export default defineConfig({ ...baseConfig, entry: ['src/index.ts'], tsconfig: 'tsconfig.lib.json', - external: [ - /^node:/, - /^@abapify\//, - ], + external: [/^node:/, /^@abapify\//], }); diff --git a/packages/adt-puppeteer/CHANGELOG.md b/packages/adt-puppeteer/CHANGELOG.md index c5dfd5bc..e56c53ea 100644 --- a/packages/adt-puppeteer/CHANGELOG.md +++ b/packages/adt-puppeteer/CHANGELOG.md @@ -3,6 +3,7 @@ ## [Unreleased] ### Added + - **Session Persistence**: Added `userDataDir` option to persist browser profile across runs - Set `userDataDir: true` to use default directory (`~/.adt/puppeteer-profile`) - Set `userDataDir: '/custom/path'` for custom profile location @@ -16,6 +17,7 @@ - ADT CLI can auto-refresh expired sessions transparently ### Changed + - Improved authentication flow to check for valid existing sessions when using persistent profiles - Enhanced logging to show session validation status - Refactored `userDataDir` to be a plugin-level setting (via `PuppeteerPluginOptions`) @@ -39,6 +41,7 @@ export default defineConfig({ ``` **Benefits:** + - First run: Complete Okta login → profile saved - Subsequent runs: Reuse Okta session → skip login or only refresh SAP cookies - Massive time savings for users with SSO authentication diff --git a/packages/adt-puppeteer/README.md b/packages/adt-puppeteer/README.md index 022029ee..1baa4c94 100644 --- a/packages/adt-puppeteer/README.md +++ b/packages/adt-puppeteer/README.md @@ -31,10 +31,10 @@ export default withPuppeteer( }, }), { - userDataDir: true, // Enable session persistence - headless: false, // Show browser window for SSO + userDataDir: true, // Enable session persistence + headless: false, // Show browser window for SSO requiredCookies: ['SAP_SESSIONID_*', 'sap-usercontext'], - } + }, ); ``` @@ -88,7 +88,7 @@ console.log(result.valid); // true/false ## Options -```typescript +````typescript interface PuppeteerAuthOptions { /** SAP system URL (required) */ url: string; @@ -148,7 +148,7 @@ export default withPuppeteer( userDataDir: true, // ALL destinations share the same profile } ); -``` +```` ### Per-Destination Configuration @@ -161,7 +161,7 @@ export default defineConfig({ destinations: { DEV: puppeteer({ url: 'https://sap-dev.example.com', - userDataDir: '/path/to/dev-profile', // Custom profile for DEV + userDataDir: '/path/to/dev-profile', // Custom profile for DEV }), PROD: puppeteer({ url: 'https://sap-prod.example.com', @@ -197,6 +197,7 @@ npx adt auth refresh --sid S0D ``` **How it works:** + 1. Launches **headless browser** with persistent profile (no window popup!) 2. Navigates to SAP system 3. Okta **auto-authenticates** from stored session @@ -204,6 +205,7 @@ npx adt auth refresh --sid S0D 5. Updates `~/.adt/auth.json` **Benefits:** + - ⚡ **Fast** - No manual login, typically <30 seconds - 🤫 **Silent** - Runs in background, no browser window - 🔄 **Automatic** - ADT CLI can auto-refresh when detecting expired sessions @@ -241,11 +243,11 @@ export default withPuppeteer( }), { // Plugin options applied to ALL destinations - userDataDir: true, // Session persistence - headless: false, // Show browser - timeout: 120000, // 2 min timeout + userDataDir: true, // Session persistence + headless: false, // Show browser + timeout: 120000, // 2 min timeout requiredCookies: ['MYSAPSSO2', 'SAP_SESSIONID_*'], - } + }, ); ``` @@ -276,7 +278,7 @@ export default defineConfig({ destinations: { DEV: puppeteer({ url: 'https://sap-dev.example.com', - timeout: 60000, // Custom timeout for DEV + timeout: 60000, // Custom timeout for DEV }), PROD: puppeteer({ @@ -330,13 +332,13 @@ export type { ## Playwright vs Puppeteer -| Feature | Playwright | Puppeteer | -|---------|------------|-----------| -| **Browser Support** | Chromium, Firefox, WebKit | Chrome/Chromium | -| **Maintenance** | Microsoft-backed | Google-backed | -| **API Style** | Modern, auto-waiting | Classic, manual waits | -| **Bundle Size** | Larger | Smaller | -| **Recommendation** | Preferred for new projects | Legacy/existing projects | +| Feature | Playwright | Puppeteer | +| ------------------- | -------------------------- | ------------------------ | +| **Browser Support** | Chromium, Firefox, WebKit | Chrome/Chromium | +| **Maintenance** | Microsoft-backed | Google-backed | +| **API Style** | Modern, auto-waiting | Classic, manual waits | +| **Bundle Size** | Larger | Smaller | +| **Recommendation** | Preferred for new projects | Legacy/existing projects | Both packages share the same core logic via `@abapify/browser-auth`. diff --git a/packages/adt-puppeteer/src/adapter.ts b/packages/adt-puppeteer/src/adapter.ts index 6c288020..db030b22 100644 --- a/packages/adt-puppeteer/src/adapter.ts +++ b/packages/adt-puppeteer/src/adapter.ts @@ -87,6 +87,8 @@ export function createPuppeteerAdapter(): BrowserAdapter { waitUntil: 'domcontentloaded', timeout: options?.timeout ?? 30000, }) + // Navigation errors are intentionally ignored; caller handles auth via event listeners + // eslint-disable-next-line @typescript-eslint/no-empty-function .catch(() => {}); }, diff --git a/packages/adt-puppeteer/src/auth-plugin.ts b/packages/adt-puppeteer/src/auth-plugin.ts index 406bfc15..b428d378 100644 --- a/packages/adt-puppeteer/src/auth-plugin.ts +++ b/packages/adt-puppeteer/src/auth-plugin.ts @@ -4,7 +4,12 @@ * Wraps puppeteerAuth to return AuthPluginResult format expected by AuthManager. */ -import type { AuthPlugin, AuthPluginResult, AuthPluginOptions, AuthSession } from '@abapify/adt-auth'; +import type { + AuthPlugin, + AuthPluginResult, + AuthPluginOptions, + AuthSession, +} from '@abapify/adt-auth'; import { puppeteerAuth, toCookieHeader } from './puppeteer-auth'; /** @@ -12,9 +17,9 @@ import { puppeteerAuth, toCookieHeader } from './puppeteer-auth'; */ function getExpiresAt(cookies: { expires?: number }[]): Date { const expirations = cookies - .filter(c => c.expires && c.expires > 0) - .map(c => c.expires! * 1000); // Convert seconds to ms - + .filter((c) => c.expires && c.expires > 0) + .map((c) => c.expires! * 1000); // Convert seconds to ms + if (expirations.length > 0) { return new Date(Math.min(...expirations)); } diff --git a/packages/adt-puppeteer/src/puppeteer-auth.ts b/packages/adt-puppeteer/src/puppeteer-auth.ts index d2930bbe..df444192 100644 --- a/packages/adt-puppeteer/src/puppeteer-auth.ts +++ b/packages/adt-puppeteer/src/puppeteer-auth.ts @@ -5,8 +5,16 @@ * Provides Puppeteer-specific browser adapter. */ -import { authenticate, testCredentials, toCookieHeader, toHeaders } from '@abapify/browser-auth'; -import type { BrowserCredentials, BrowserAuthOptions } from '@abapify/browser-auth'; +import { + authenticate, + testCredentials, + toCookieHeader, + toHeaders, +} from '@abapify/browser-auth'; +import type { + BrowserCredentials, + BrowserAuthOptions, +} from '@abapify/browser-auth'; import { createPuppeteerAdapter } from './adapter'; // Re-export types with Puppeteer-specific names for backwards compatibility @@ -20,7 +28,9 @@ export const puppeteerAuth = { /** * Authenticate using Puppeteer browser */ - async authenticate(options: PuppeteerAuthOptions): Promise { + async authenticate( + options: PuppeteerAuthOptions, + ): Promise { const adapter = createPuppeteerAdapter(); return authenticate(adapter, options); }, @@ -33,9 +43,15 @@ export const puppeteerAuth = { /** * Refresh is not reliable with Okta SSO - always return null to trigger full re-authentication */ - async refresh(session: { auth?: { pluginOptions?: { log?: (message: string) => void }}}): Promise { - const log = session?.auth?.pluginOptions?.log as ((message: string) => void) | undefined; - (log ?? console.log)('🔄 Session expired, will trigger full re-authentication...'); + async refresh(session: { + auth?: { pluginOptions?: { log?: (message: string) => void } }; + }): Promise { + const log = session?.auth?.pluginOptions?.log as + | ((message: string) => void) + | undefined; + (log ?? console.log)( + '🔄 Session expired, will trigger full re-authentication...', + ); return null; }, }; diff --git a/packages/adt-puppeteer/vitest.config.ts b/packages/adt-puppeteer/vitest.config.ts index c2a10848..913117e0 100644 --- a/packages/adt-puppeteer/vitest.config.ts +++ b/packages/adt-puppeteer/vitest.config.ts @@ -5,5 +5,6 @@ export default defineConfig({ include: ['tests/**/*.test.ts'], globals: true, environment: 'node', + passWithNoTests: true, }, }); diff --git a/packages/adt-schemas/AGENTS.md b/packages/adt-schemas/AGENTS.md index 04565da4..59625344 100644 --- a/packages/adt-schemas/AGENTS.md +++ b/packages/adt-schemas/AGENTS.md @@ -4,24 +4,26 @@ **Type-safe SAP ADT schemas** with pre-generated TypeScript interfaces and optimal tree-shaking. -| Feature | Description | -|---------|-------------| -| **204+ interfaces** | Pre-generated, no runtime inference | -| **Shared types** | `AdtObject`, `LinkType` defined once | -| **Tree-shakeable** | Import only what you need | -| **speci integration** | Works with REST contracts | +| Feature | Description | +| --------------------- | ------------------------------------ | +| **204+ interfaces** | Pre-generated, no runtime inference | +| **Shared types** | `AdtObject`, `LinkType` defined once | +| **Tree-shakeable** | Import only what you need | +| **speci integration** | Works with REST contracts | ## 🚨 Critical Rules ### 1. NEVER Edit Generated Files Generated files are in `src/schemas/generated/`: + - `schemas/sap/*.ts` - SAP official schemas - `schemas/custom/*.ts` - Custom schemas - `types/index.ts` - TypeScript interfaces - `index.ts` - Typed schema exports **If a generated schema is incorrect:** + 1. Fix the generator in `ts-xsd/src/codegen/` 2. Rebuild: `npx nx build ts-xsd` 3. Regenerate: `npx nx run adt-schemas:generate` @@ -46,6 +48,7 @@ export default { ### 3. Every Schema Needs Tests **No exceptions.** When adding/modifying a schema: + 1. Add real SAP XML fixture to `tests/scenarios/fixtures/` 2. Create scenario class in `tests/scenarios/` 3. Register in `tests/scenarios/index.ts` @@ -84,12 +87,12 @@ Typed Schemas (parse/build) ## Key Files -| File | Purpose | -|------|---------| -| `src/speci.ts` | `typed()` wrapper factory | -| `src/schemas/generated/index.ts` | Typed schema exports | -| `src/schemas/generated/types/index.ts` | 204 TypeScript interfaces | -| `scripts/generate*.ts` | Generation scripts | +| File | Purpose | +| -------------------------------------- | ---------------------------- | +| `src/speci.ts` | `typed()` wrapper factory | +| `src/schemas/generated/index.ts` | Typed schema exports | +| `src/schemas/generated/types/index.ts` | 204 TypeScript interfaces | +| `scripts/generate*.ts` | Generation scripts | ## Schema Structure (W3C Format) @@ -205,13 +208,13 @@ export class MySchemaScenario extends Scenario { ## Common Mistakes -| Mistake | Consequence | Prevention | -|---------|-------------|------------| -| Editing generated files | Lost on regeneration | Fix generator instead | -| Missing `as const` | Type inference fails | Always add `as const` | -| No test scenario | Regressions undetected | Add test for every schema | -| Wrong namespace prefix | Parse/build fails | Check SAP XSD | -| Missing `$imports` | Cross-schema types fail | Link all dependencies | +| Mistake | Consequence | Prevention | +| ----------------------- | ----------------------- | ------------------------- | +| Editing generated files | Lost on regeneration | Fix generator instead | +| Missing `as const` | Type inference fails | Always add `as const` | +| No test scenario | Regressions undetected | Add test for every schema | +| Wrong namespace prefix | Parse/build fails | Check SAP XSD | +| Missing `$imports` | Cross-schema types fail | Link all dependencies | ## Type Hierarchy diff --git a/packages/adt-schemas/README.md b/packages/adt-schemas/README.md index 04384ca9..52693bc8 100644 --- a/packages/adt-schemas/README.md +++ b/packages/adt-schemas/README.md @@ -46,13 +46,15 @@ bun add @abapify/adt-schemas import { classes, type AbapClass } from '@abapify/adt-schemas'; // Parse XML to typed object -const xml = await fetch('/sap/bc/adt/oo/classes/zcl_my_class').then(r => r.text()); +const xml = await fetch('/sap/bc/adt/oo/classes/zcl_my_class').then((r) => + r.text(), +); const data = classes.parse(xml); // Full type safety - TypeScript knows all properties -console.log(data.name); // string -console.log(data.category); // 'generalObjectType' | 'exceptionClass' | ... -console.log(data.include?.[0]); // AbapClassInclude | undefined +console.log(data.name); // string +console.log(data.category); // 'generalObjectType' | 'exceptionClass' | ... +console.log(data.include?.[0]); // AbapClassInclude | undefined ``` ### Build ADT XML @@ -76,13 +78,18 @@ import { classes, configurations } from '@abapify/adt-schemas'; import { http } from 'speci/rest'; const adtContracts = { - getClass: (name: string) => http.get(`/sap/bc/adt/oo/classes/${name}`, { - responses: { 200: classes }, - }), - - getConfigurations: () => http.get('/sap/bc/adt/cts/transportrequests/searchconfiguration/configurations', { - responses: { 200: configurations }, - }), + getClass: (name: string) => + http.get(`/sap/bc/adt/oo/classes/${name}`, { + responses: { 200: classes }, + }), + + getConfigurations: () => + http.get( + '/sap/bc/adt/cts/transportrequests/searchconfiguration/configurations', + { + responses: { 200: configurations }, + }, + ), }; ``` @@ -90,52 +97,52 @@ const adtContracts = { ### Core Schemas -| Schema | Type | Description | -|--------|------|-------------| -| `adtcore` | `AdtObject` | Core ADT object types | -| `atom` | `LinkType` | Atom feed format (links, categories) | -| `abapsource` | `AbapSourceObject` | ABAP source code structures | -| `abapoo` | `AbapOoObject` | ABAP OO base types | +| Schema | Type | Description | +| ------------ | ------------------ | ------------------------------------ | +| `adtcore` | `AdtObject` | Core ADT object types | +| `atom` | `LinkType` | Atom feed format (links, categories) | +| `abapsource` | `AbapSourceObject` | ABAP source code structures | +| `abapoo` | `AbapOoObject` | ABAP OO base types | ### Repository Objects -| Schema | Type | Description | -|--------|------|-------------| -| `classes` | `AbapClass` | ABAP class metadata | -| `interfaces` | `AbapInterface` | ABAP interface metadata | -| `packagesV1` | `Package` | Package/devclass metadata | +| Schema | Type | Description | +| ------------ | --------------- | ------------------------- | +| `classes` | `AbapClass` | ABAP class metadata | +| `interfaces` | `AbapInterface` | ABAP interface metadata | +| `packagesV1` | `Package` | Package/devclass metadata | ### Transport Management -| Schema | Type | Description | -|--------|------|-------------| -| `transportfind` | `Abap` | Transport search (ABAP XML format) | -| `transportmanagmentCreate` | `RootType` | Transport creation | -| `configurations` | `Configurations` | Search configurations | -| `configuration` | `Configuration` | Single configuration | +| Schema | Type | Description | +| -------------------------- | ---------------- | ---------------------------------- | +| `transportfind` | `Abap` | Transport search (ABAP XML format) | +| `transportmanagmentCreate` | `RootType` | Transport creation | +| `configurations` | `Configurations` | Search configurations | +| `configuration` | `Configuration` | Single configuration | ### ATC (ABAP Test Cockpit) -| Schema | Type | Description | -|--------|------|-------------| -| `atc` | `AtcWorklist` | ATC main schema | -| `atcworklist` | `AtcWorklist` | ATC worklist | -| `atcresult` | `AtcWorklist` | ATC results | -| `checklist` | `CheckMessageList` | Check message lists | -| `quickfixes` | `AtcQuickfixes` | ATC quickfixes | +| Schema | Type | Description | +| ------------- | ------------------ | ------------------- | +| `atc` | `AtcWorklist` | ATC main schema | +| `atcworklist` | `AtcWorklist` | ATC worklist | +| `atcresult` | `AtcWorklist` | ATC results | +| `checklist` | `CheckMessageList` | Check message lists | +| `quickfixes` | `AtcQuickfixes` | ATC quickfixes | ### Debugging & Tracing -| Schema | Type | Description | -|--------|------|-------------| +| Schema | Type | Description | +| ---------- | ------------- | -------------------- | | `logpoint` | `AdtLogpoint` | Logpoint definitions | -| `traces` | `Traces` | Trace data | +| `traces` | `Traces` | Trace data | ### Templates -| Schema | Type | Description | -|--------|------|-------------| -| `templatelink` | `LinkType` | Template links | +| Schema | Type | Description | +| ---------------------- | ------------------- | ----------------------- | +| `templatelink` | `LinkType` | Template links | | `templatelinkExtended` | `TemplateLinksType` | Extended template links | ## Type System @@ -146,19 +153,19 @@ All types are pre-generated as TypeScript interfaces, avoiding runtime inference ```typescript // Import types directly -import type { - AbapClass, - AbapInterface, +import type { + AbapClass, + AbapInterface, AdtObject, AdtObjectReference, - LinkType + LinkType, } from '@abapify/adt-schemas'; // Use in your code function processClass(cls: AbapClass) { console.log(cls.name); console.log(cls.superClassRef?.name); - cls.include?.forEach(inc => console.log(inc.includeType)); + cls.include?.forEach((inc) => console.log(inc.includeType)); } ``` @@ -264,22 +271,20 @@ Some SAP endpoints return ABAP XML format (`asx:abap` envelope) without official ```typescript // schemas/custom/transportfind.ts export default { - $xmlns: { asx: "http://www.sap.com/abapxml" }, - targetNamespace: "http://www.sap.com/abapxml", - element: [{ name: "abap", type: "Abap" }], - complexType: [{ - name: "Abap", - sequence: { - element: [ - { name: "values", type: "Values" }, - ] + $xmlns: { asx: 'http://www.sap.com/abapxml' }, + targetNamespace: 'http://www.sap.com/abapxml', + element: [{ name: 'abap', type: 'Abap' }], + complexType: [ + { + name: 'Abap', + sequence: { + element: [{ name: 'values', type: 'Values' }], + }, + attribute: [{ name: 'version', type: 'xs:string' }], }, - attribute: [ - { name: "version", type: "xs:string" }, - ] - }], + ], // ... more types -} as const; // CRITICAL: 'as const' required! +} as const; // CRITICAL: 'as const' required! ``` ### Key Points @@ -344,7 +349,7 @@ const contract = http.get('/sap/bc/adt/oo/classes/zcl_test', { // Response type is automatically inferred as AbapClass const response = await client.execute(contract); -console.log(response.data.name); // TypeScript knows this is string +console.log(response.data.name); // TypeScript knows this is string ``` ## Related Packages diff --git a/packages/adt-schemas/scripts/normalize-xsd.ts b/packages/adt-schemas/scripts/normalize-xsd.ts index 6ab4eb52..d8943275 100644 --- a/packages/adt-schemas/scripts/normalize-xsd.ts +++ b/packages/adt-schemas/scripts/normalize-xsd.ts @@ -1,30 +1,41 @@ #!/usr/bin/env npx tsx /** * Normalize XSD files after extraction - * + * * 1. Flattens model/ subfolder → moves files to parent * 2. Normalizes schemaLocation paths: platform:/plugin/.../model/foo.xsd → foo.xsd - * + * * Usage: npx tsx scripts/normalize-xsd.ts [xsd-dir] */ -import { readdirSync, readFileSync, writeFileSync, renameSync, rmdirSync, existsSync } from 'node:fs'; +import { + readdirSync, + readFileSync, + writeFileSync, + renameSync, + rmdirSync, + existsSync, +} from 'node:fs'; import { join, dirname } from 'node:path'; const xsdDir = process.argv[2] || '.xsd/sap'; // Pattern to match platform:/plugin/.../model/foo.xsd -const platformPattern = /schemaLocation="platform:\/[^"]*\/model\/([^"]+\.xsd)"/g; +const platformPattern = + /schemaLocation="platform:\/[^"]*\/model\/([^"]+\.xsd)"/g; // Pattern to match platform:/resource/.../model/foo.xsd -const resourcePattern = /schemaLocation="platform:\/resource\/[^"]*\/model\/([^"]+\.xsd)"/g; +const resourcePattern = + /schemaLocation="platform:\/resource\/[^"]*\/model\/([^"]+\.xsd)"/g; function normalizeContent(content: string): string { - return content - // platform:/plugin/.../model/foo.xsd → foo.xsd - .replace(platformPattern, 'schemaLocation="$1"') - // platform:/resource/.../model/foo.xsd → foo.xsd - .replace(resourcePattern, 'schemaLocation="$1"'); + return ( + content + // platform:/plugin/.../model/foo.xsd → foo.xsd + .replace(platformPattern, 'schemaLocation="$1"') + // platform:/resource/.../model/foo.xsd → foo.xsd + .replace(resourcePattern, 'schemaLocation="$1"') + ); } function flattenModelDir(baseDir: string): number { @@ -32,16 +43,16 @@ function flattenModelDir(baseDir: string): number { if (!existsSync(modelDir)) { return 0; } - + console.log(`📦 Flattening ${modelDir} → ${baseDir}`); - + const entries = readdirSync(modelDir, { withFileTypes: true }); let moved = 0; - + for (const entry of entries) { const srcPath = join(modelDir, entry.name); const destPath = join(baseDir, entry.name); - + if (entry.isFile()) { renameSync(srcPath, destPath); moved++; @@ -51,7 +62,7 @@ function flattenModelDir(baseDir: string): number { moved++; } } - + // Remove empty model/ directory try { rmdirSync(modelDir); @@ -59,43 +70,43 @@ function flattenModelDir(baseDir: string): number { } catch { console.log(` ⚠ Could not remove model/ directory (not empty?)`); } - + return moved; } function normalizeFiles(dir: string): number { - const files = readdirSync(dir).filter(f => f.endsWith('.xsd')); + const files = readdirSync(dir).filter((f) => f.endsWith('.xsd')); let modified = 0; - + for (const file of files) { const filePath = join(dir, file); const content = readFileSync(filePath, 'utf-8'); const normalized = normalizeContent(content); - + if (normalized !== content) { writeFileSync(filePath, normalized); console.log(` ✓ ${file}`); modified++; } } - + return modified; } function main() { console.log(`📁 Processing XSD files in: ${xsdDir}\n`); - + // Step 1: Flatten model/ subdirectory if it exists const moved = flattenModelDir(xsdDir); if (moved > 0) { console.log(` ✓ Moved ${moved} items\n`); } - + // Step 2: Normalize schemaLocation paths console.log(`🔧 Normalizing schemaLocation paths...`); const modified = normalizeFiles(xsdDir); - - const total = readdirSync(xsdDir).filter(f => f.endsWith('.xsd')).length; + + const total = readdirSync(xsdDir).filter((f) => f.endsWith('.xsd')).length; console.log(`\n✅ Done! Normalized ${modified}/${total} files`); } diff --git a/packages/adt-schemas/src/schemas/generated/index.ts b/packages/adt-schemas/src/schemas/generated/index.ts index c38afc6f..76eefcbb 100644 --- a/packages/adt-schemas/src/schemas/generated/index.ts +++ b/packages/adt-schemas/src/schemas/generated/index.ts @@ -1,13 +1,13 @@ /** * Auto-generated schema index * DO NOT EDIT - Generated by ts-xsd codegen - * + * * Typed schemas with parse/build methods. * Each schema exports a corresponding Data type (e.g., DiscoveryData, ClassesData). - * + * * @example * import { classes, type ClassesData } from 'adt-schemas'; - * + * * const data: ClassesData = classes.parse(xml); */ diff --git a/packages/adt-schemas/src/schemas/generated/schemas/custom/atomExtended.ts b/packages/adt-schemas/src/schemas/generated/schemas/custom/atomExtended.ts index d47786cd..31004c59 100644 --- a/packages/adt-schemas/src/schemas/generated/schemas/custom/atomExtended.ts +++ b/packages/adt-schemas/src/schemas/generated/schemas/custom/atomExtended.ts @@ -1,6 +1,6 @@ /** * Auto-generated schema from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen * Source: xsd/custom/atomExtended.xsd */ @@ -9,39 +9,37 @@ import atom from '../sap/atom'; export default { $xmlns: { - xsd: "http://www.w3.org/2001/XMLSchema", - atom: "http://www.w3.org/2005/Atom", + xsd: 'http://www.w3.org/2001/XMLSchema', + atom: 'http://www.w3.org/2005/Atom', }, - $includes: [ - atom, - ], - targetNamespace: "http://www.w3.org/2005/Atom", - elementFormDefault: "qualified", + $includes: [atom], + targetNamespace: 'http://www.w3.org/2005/Atom', + elementFormDefault: 'qualified', element: [ { - name: "title", - type: "xsd:string", + name: 'title', + type: 'xsd:string', }, { - name: "category", - type: "atom:categoryType", + name: 'category', + type: 'atom:categoryType', }, ], complexType: [ { - name: "categoryType", + name: 'categoryType', attribute: [ { - name: "term", - type: "xsd:string", + name: 'term', + type: 'xsd:string', }, { - name: "scheme", - type: "xsd:string", + name: 'scheme', + type: 'xsd:string', }, { - name: "label", - type: "xsd:string", + name: 'label', + type: 'xsd:string', }, ], }, diff --git a/packages/adt-schemas/src/schemas/generated/schemas/custom/discovery.ts b/packages/adt-schemas/src/schemas/generated/schemas/custom/discovery.ts index af916607..06441e01 100644 --- a/packages/adt-schemas/src/schemas/generated/schemas/custom/discovery.ts +++ b/packages/adt-schemas/src/schemas/generated/schemas/custom/discovery.ts @@ -1,6 +1,6 @@ /** * Auto-generated schema from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen * Source: xsd/custom/discovery.xsd */ @@ -10,84 +10,81 @@ import templatelinkExtended from './templatelinkExtended'; export default { $xmlns: { - xsd: "http://www.w3.org/2001/XMLSchema", - app: "http://www.w3.org/2007/app", - atom: "http://www.w3.org/2005/Atom", - adtcomp: "http://www.sap.com/adt/compatibility", + xsd: 'http://www.w3.org/2001/XMLSchema', + app: 'http://www.w3.org/2007/app', + atom: 'http://www.w3.org/2005/Atom', + adtcomp: 'http://www.sap.com/adt/compatibility', }, - $imports: [ - atomExtended, - templatelinkExtended, - ], - targetNamespace: "http://www.w3.org/2007/app", - elementFormDefault: "qualified", + $imports: [atomExtended, templatelinkExtended], + targetNamespace: 'http://www.w3.org/2007/app', + elementFormDefault: 'qualified', element: [ { - name: "service", - type: "app:ServiceType", + name: 'service', + type: 'app:ServiceType', }, ], complexType: [ { - name: "ServiceType", + name: 'ServiceType', sequence: { element: [ { - name: "workspace", - type: "app:WorkspaceType", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'workspace', + type: 'app:WorkspaceType', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "WorkspaceType", + name: 'WorkspaceType', sequence: { element: [ { - ref: "atom:title", - minOccurs: "0", + ref: 'atom:title', + minOccurs: '0', }, { - name: "collection", - type: "app:CollectionType", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'collection', + type: 'app:CollectionType', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "CollectionType", + name: 'CollectionType', sequence: { element: [ { - ref: "atom:title", - minOccurs: "0", + ref: 'atom:title', + minOccurs: '0', }, { - name: "accept", - type: "xsd:string", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'accept', + type: 'xsd:string', + minOccurs: '0', + maxOccurs: 'unbounded', }, { - ref: "atom:category", - minOccurs: "0", - maxOccurs: "unbounded", + ref: 'atom:category', + minOccurs: '0', + maxOccurs: 'unbounded', }, { - ref: "adtcomp:templateLinks", - minOccurs: "0", + ref: 'adtcomp:templateLinks', + minOccurs: '0', }, ], }, attribute: [ { - name: "href", - type: "xsd:anyURI", - use: "required", + name: 'href', + type: 'xsd:anyURI', + use: 'required', }, ], }, diff --git a/packages/adt-schemas/src/schemas/generated/schemas/custom/http.ts b/packages/adt-schemas/src/schemas/generated/schemas/custom/http.ts index c5e48410..61b56a3e 100644 --- a/packages/adt-schemas/src/schemas/generated/schemas/custom/http.ts +++ b/packages/adt-schemas/src/schemas/generated/schemas/custom/http.ts @@ -1,6 +1,6 @@ /** * Auto-generated schema from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen * Source: xsd/custom/http.xsd */ @@ -9,62 +9,60 @@ import atom from '../sap/atom'; export default { $xmlns: { - xsd: "http://www.w3.org/2001/XMLSchema", - http: "http://www.sap.com/adt/http", - atom: "http://www.w3.org/2005/Atom", + xsd: 'http://www.w3.org/2001/XMLSchema', + http: 'http://www.sap.com/adt/http', + atom: 'http://www.w3.org/2005/Atom', }, - $imports: [ - atom, - ], - targetNamespace: "http://www.sap.com/adt/http", - elementFormDefault: "qualified", + $imports: [atom], + targetNamespace: 'http://www.sap.com/adt/http', + elementFormDefault: 'qualified', element: [ { - name: "session", - type: "http:SessionType", + name: 'session', + type: 'http:SessionType', }, ], complexType: [ { - name: "SessionType", + name: 'SessionType', sequence: { element: [ { - ref: "atom:link", - minOccurs: "0", - maxOccurs: "unbounded", + ref: 'atom:link', + minOccurs: '0', + maxOccurs: 'unbounded', }, { - name: "properties", - type: "http:PropertiesType", - minOccurs: "0", + name: 'properties', + type: 'http:PropertiesType', + minOccurs: '0', }, ], }, }, { - name: "PropertiesType", + name: 'PropertiesType', sequence: { element: [ { - name: "property", - type: "http:PropertyType", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'property', + type: 'http:PropertyType', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "PropertyType", + name: 'PropertyType', simpleContent: { extension: { - base: "xsd:string", + base: 'xsd:string', attribute: [ { - name: "name", - type: "xsd:string", - use: "required", + name: 'name', + type: 'xsd:string', + use: 'required', }, ], }, diff --git a/packages/adt-schemas/src/schemas/generated/schemas/custom/templatelinkExtended.ts b/packages/adt-schemas/src/schemas/generated/schemas/custom/templatelinkExtended.ts index 80fb8343..459b50c3 100644 --- a/packages/adt-schemas/src/schemas/generated/schemas/custom/templatelinkExtended.ts +++ b/packages/adt-schemas/src/schemas/generated/schemas/custom/templatelinkExtended.ts @@ -1,6 +1,6 @@ /** * Auto-generated schema from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen * Source: xsd/custom/templatelinkExtended.xsd */ @@ -9,29 +9,27 @@ import templatelink from '../sap/templatelink'; export default { $xmlns: { - xsd: "http://www.w3.org/2001/XMLSchema", - adtcomp: "http://www.sap.com/adt/compatibility", + xsd: 'http://www.w3.org/2001/XMLSchema', + adtcomp: 'http://www.sap.com/adt/compatibility', }, - $includes: [ - templatelink, - ], - targetNamespace: "http://www.sap.com/adt/compatibility", - elementFormDefault: "qualified", + $includes: [templatelink], + targetNamespace: 'http://www.sap.com/adt/compatibility', + elementFormDefault: 'qualified', element: [ { - name: "templateLinks", - type: "adtcomp:templateLinksType", + name: 'templateLinks', + type: 'adtcomp:templateLinksType', }, ], complexType: [ { - name: "templateLinksType", + name: 'templateLinksType', sequence: { element: [ { - ref: "adtcomp:templateLink", - minOccurs: "0", - maxOccurs: "unbounded", + ref: 'adtcomp:templateLink', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, diff --git a/packages/adt-schemas/src/schemas/generated/schemas/custom/transportfind.ts b/packages/adt-schemas/src/schemas/generated/schemas/custom/transportfind.ts index b76c8f04..a885a13f 100644 --- a/packages/adt-schemas/src/schemas/generated/schemas/custom/transportfind.ts +++ b/packages/adt-schemas/src/schemas/generated/schemas/custom/transportfind.ts @@ -1,108 +1,108 @@ /** * Auto-generated schema from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen * Source: xsd/custom/transportfind.xsd */ export default { $xmlns: { - xsd: "http://www.w3.org/2001/XMLSchema", - asx: "http://www.sap.com/abapxml", + xsd: 'http://www.w3.org/2001/XMLSchema', + asx: 'http://www.sap.com/abapxml', }, - targetNamespace: "http://www.sap.com/abapxml", - elementFormDefault: "qualified", + targetNamespace: 'http://www.sap.com/abapxml', + elementFormDefault: 'qualified', element: [ { - name: "abap", - type: "asx:abapType", + name: 'abap', + type: 'asx:abapType', }, ], complexType: [ { - name: "abapType", + name: 'abapType', sequence: { element: [ { - name: "values", - type: "asx:valuesType", + name: 'values', + type: 'asx:valuesType', }, ], }, attribute: [ { - name: "version", - type: "xsd:string", + name: 'version', + type: 'xsd:string', }, ], }, { - name: "valuesType", + name: 'valuesType', sequence: { element: [ { - name: "DATA", - type: "asx:dataType", + name: 'DATA', + type: 'asx:dataType', }, ], }, }, { - name: "dataType", + name: 'dataType', sequence: { element: [ { - name: "CTS_REQ_HEADER", - type: "asx:ctsReqHeaderType", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'CTS_REQ_HEADER', + type: 'asx:ctsReqHeaderType', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "ctsReqHeaderType", + name: 'ctsReqHeaderType', sequence: { element: [ { - name: "TRKORR", - type: "xsd:string", + name: 'TRKORR', + type: 'xsd:string', }, { - name: "TRFUNCTION", - type: "xsd:string", + name: 'TRFUNCTION', + type: 'xsd:string', }, { - name: "TRSTATUS", - type: "xsd:string", + name: 'TRSTATUS', + type: 'xsd:string', }, { - name: "TARSYSTEM", - type: "xsd:string", + name: 'TARSYSTEM', + type: 'xsd:string', }, { - name: "AS4USER", - type: "xsd:string", + name: 'AS4USER', + type: 'xsd:string', }, { - name: "AS4DATE", - type: "xsd:string", + name: 'AS4DATE', + type: 'xsd:string', }, { - name: "AS4TIME", - type: "xsd:string", + name: 'AS4TIME', + type: 'xsd:string', }, { - name: "AS4TEXT", - type: "xsd:string", + name: 'AS4TEXT', + type: 'xsd:string', }, { - name: "CLIENT", - type: "xsd:string", + name: 'CLIENT', + type: 'xsd:string', }, { - name: "REPOID", - type: "xsd:string", + name: 'REPOID', + type: 'xsd:string', }, ], }, diff --git a/packages/adt-schemas/src/schemas/generated/schemas/custom/transportmanagmentCreate.ts b/packages/adt-schemas/src/schemas/generated/schemas/custom/transportmanagmentCreate.ts index 6be3211e..2288cdd8 100644 --- a/packages/adt-schemas/src/schemas/generated/schemas/custom/transportmanagmentCreate.ts +++ b/packages/adt-schemas/src/schemas/generated/schemas/custom/transportmanagmentCreate.ts @@ -1,81 +1,81 @@ /** * Auto-generated schema from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen * Source: xsd/custom/transportmanagmentCreate.xsd */ export default { $xmlns: { - xsd: "http://www.w3.org/2001/XMLSchema", - tm: "http://www.sap.com/cts/adt/tm", + xsd: 'http://www.w3.org/2001/XMLSchema', + tm: 'http://www.sap.com/cts/adt/tm', }, - targetNamespace: "http://www.sap.com/cts/adt/tm", - attributeFormDefault: "qualified", - elementFormDefault: "qualified", + targetNamespace: 'http://www.sap.com/cts/adt/tm', + attributeFormDefault: 'qualified', + elementFormDefault: 'qualified', element: [ { - name: "root", - type: "tm:rootType", + name: 'root', + type: 'tm:rootType', }, ], complexType: [ { - name: "rootType", + name: 'rootType', sequence: { element: [ { - name: "request", - type: "tm:requestType", - minOccurs: "0", - maxOccurs: "1", + name: 'request', + type: 'tm:requestType', + minOccurs: '0', + maxOccurs: '1', }, ], }, attribute: [ { - name: "useraction", - type: "xsd:string", + name: 'useraction', + type: 'xsd:string', }, ], }, { - name: "requestType", + name: 'requestType', sequence: { element: [ { - name: "task", - type: "tm:taskType", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'task', + type: 'tm:taskType', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, attribute: [ { - name: "desc", - type: "xsd:string", + name: 'desc', + type: 'xsd:string', }, { - name: "type", - type: "xsd:string", + name: 'type', + type: 'xsd:string', }, { - name: "target", - type: "xsd:string", + name: 'target', + type: 'xsd:string', }, { - name: "cts_project", - type: "xsd:string", + name: 'cts_project', + type: 'xsd:string', }, ], }, { - name: "taskType", + name: 'taskType', attribute: [ { - name: "owner", - type: "xsd:string", + name: 'owner', + type: 'xsd:string', }, ], }, diff --git a/packages/adt-schemas/src/schemas/generated/schemas/custom/transportmanagmentSingle.ts b/packages/adt-schemas/src/schemas/generated/schemas/custom/transportmanagmentSingle.ts index 13bd5625..379d0031 100644 --- a/packages/adt-schemas/src/schemas/generated/schemas/custom/transportmanagmentSingle.ts +++ b/packages/adt-schemas/src/schemas/generated/schemas/custom/transportmanagmentSingle.ts @@ -1,6 +1,6 @@ /** * Auto-generated schema from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen * Source: xsd/custom/transportmanagmentSingle.xsd */ @@ -10,435 +10,432 @@ import adtcore from '../sap/adtcore'; export default { $xmlns: { - xs: "http://www.w3.org/2001/XMLSchema", - tm: "http://www.sap.com/cts/adt/tm", - atom: "http://www.w3.org/2005/Atom", - adtcore: "http://www.sap.com/adt/core", + xs: 'http://www.w3.org/2001/XMLSchema', + tm: 'http://www.sap.com/cts/adt/tm', + atom: 'http://www.w3.org/2005/Atom', + adtcore: 'http://www.sap.com/adt/core', }, - $imports: [ - atom, - adtcore, - ], - targetNamespace: "http://www.sap.com/cts/adt/tm", - attributeFormDefault: "qualified", - elementFormDefault: "qualified", + $imports: [atom, adtcore], + targetNamespace: 'http://www.sap.com/cts/adt/tm', + attributeFormDefault: 'qualified', + elementFormDefault: 'qualified', element: [ { - name: "root", - type: "tm:Root", + name: 'root', + type: 'tm:Root', }, ], complexType: [ { - name: "Root", + name: 'Root', complexContent: { extension: { - base: "adtcore:AdtObject", + base: 'adtcore:AdtObject', sequence: { element: [ { - name: "request", - type: "tm:Request", - minOccurs: "0", - maxOccurs: "1", + name: 'request', + type: 'tm:Request', + minOccurs: '0', + maxOccurs: '1', }, { - name: "task", - type: "tm:Task", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'task', + type: 'tm:Task', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, attribute: [ { - name: "object_type", - type: "xs:string", + name: 'object_type', + type: 'xs:string', }, ], }, }, }, { - name: "Request", + name: 'Request', sequence: { element: [ { - name: "long_desc", - type: "xs:string", - minOccurs: "0", + name: 'long_desc', + type: 'xs:string', + minOccurs: '0', }, { - ref: "atom:link", - minOccurs: "0", - maxOccurs: "unbounded", + ref: 'atom:link', + minOccurs: '0', + maxOccurs: 'unbounded', }, { - name: "attributes", - type: "tm:Attributes", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'attributes', + type: 'tm:Attributes', + minOccurs: '0', + maxOccurs: 'unbounded', }, { - name: "abap_object", - type: "tm:AbapObject", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'abap_object', + type: 'tm:AbapObject', + minOccurs: '0', + maxOccurs: 'unbounded', }, { - name: "all_objects", - type: "tm:AllObjects", - minOccurs: "0", + name: 'all_objects', + type: 'tm:AllObjects', + minOccurs: '0', }, { - name: "task", - type: "tm:Task", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'task', + type: 'tm:Task', + minOccurs: '0', + maxOccurs: 'unbounded', }, { - name: "review", - type: "tm:Review", - minOccurs: "0", + name: 'review', + type: 'tm:Review', + minOccurs: '0', }, { - name: "dynamic_attributes", - type: "tm:DynamicAttributes", - minOccurs: "0", + name: 'dynamic_attributes', + type: 'tm:DynamicAttributes', + minOccurs: '0', }, ], }, attribute: [ { - name: "number", - type: "xs:string", + name: 'number', + type: 'xs:string', }, { - name: "owner", - type: "xs:string", + name: 'owner', + type: 'xs:string', }, { - name: "desc", - type: "xs:string", + name: 'desc', + type: 'xs:string', }, { - name: "status", - type: "xs:string", + name: 'status', + type: 'xs:string', }, { - name: "uri", - type: "xs:string", + name: 'uri', + type: 'xs:string', }, { - name: "type", - type: "xs:string", + name: 'type', + type: 'xs:string', }, { - name: "status_text", - type: "xs:string", + name: 'status_text', + type: 'xs:string', }, { - name: "target", - type: "xs:string", + name: 'target', + type: 'xs:string', }, { - name: "target_desc", - type: "xs:string", + name: 'target_desc', + type: 'xs:string', }, { - name: "source_client", - type: "xs:string", + name: 'source_client', + type: 'xs:string', }, { - name: "parent", - type: "xs:string", + name: 'parent', + type: 'xs:string', }, { - name: "cts_project", - type: "xs:string", + name: 'cts_project', + type: 'xs:string', }, { - name: "cts_project_desc", - type: "xs:string", + name: 'cts_project_desc', + type: 'xs:string', }, { - name: "lastchanged_timestamp", - type: "xs:string", + name: 'lastchanged_timestamp', + type: 'xs:string', }, { - name: "docu", - type: "xs:string", + name: 'docu', + type: 'xs:string', }, ], }, { - name: "Task", + name: 'Task', sequence: { element: [ { - name: "long_desc", - type: "xs:string", - minOccurs: "0", + name: 'long_desc', + type: 'xs:string', + minOccurs: '0', }, { - ref: "atom:link", - minOccurs: "0", - maxOccurs: "unbounded", + ref: 'atom:link', + minOccurs: '0', + maxOccurs: 'unbounded', }, { - name: "abap_object", - type: "tm:AbapObject", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'abap_object', + type: 'tm:AbapObject', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, attribute: [ { - name: "number", - type: "xs:string", + name: 'number', + type: 'xs:string', }, { - name: "owner", - type: "xs:string", + name: 'owner', + type: 'xs:string', }, { - name: "desc", - type: "xs:string", + name: 'desc', + type: 'xs:string', }, { - name: "status", - type: "xs:string", + name: 'status', + type: 'xs:string', }, { - name: "uri", - type: "xs:string", + name: 'uri', + type: 'xs:string', }, { - name: "type", - type: "xs:string", + name: 'type', + type: 'xs:string', }, { - name: "status_text", - type: "xs:string", + name: 'status_text', + type: 'xs:string', }, { - name: "target", - type: "xs:string", + name: 'target', + type: 'xs:string', }, { - name: "target_desc", - type: "xs:string", + name: 'target_desc', + type: 'xs:string', }, { - name: "source_client", - type: "xs:string", + name: 'source_client', + type: 'xs:string', }, { - name: "parent", - type: "xs:string", + name: 'parent', + type: 'xs:string', }, { - name: "cts_project", - type: "xs:string", + name: 'cts_project', + type: 'xs:string', }, { - name: "cts_project_desc", - type: "xs:string", + name: 'cts_project_desc', + type: 'xs:string', }, { - name: "lastchanged_timestamp", - type: "xs:string", + name: 'lastchanged_timestamp', + type: 'xs:string', }, { - name: "docu", - type: "xs:string", + name: 'docu', + type: 'xs:string', }, ], }, { - name: "AbapObject", + name: 'AbapObject', sequence: { element: [ { - ref: "atom:link", - minOccurs: "0", - maxOccurs: "unbounded", + ref: 'atom:link', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, attribute: [ { - name: "pgmid", - type: "xs:string", + name: 'pgmid', + type: 'xs:string', }, { - name: "type", - type: "xs:string", + name: 'type', + type: 'xs:string', }, { - name: "name", - type: "xs:string", + name: 'name', + type: 'xs:string', }, { - name: "wbtype", - type: "xs:string", + name: 'wbtype', + type: 'xs:string', }, { - name: "uri", - type: "xs:string", + name: 'uri', + type: 'xs:string', }, { - name: "dummy_uri", - type: "xs:string", + name: 'dummy_uri', + type: 'xs:string', }, { - name: "obj_info", - type: "xs:string", + name: 'obj_info', + type: 'xs:string', }, { - name: "obj_desc", - type: "xs:string", + name: 'obj_desc', + type: 'xs:string', }, { - name: "lock_status", - type: "xs:string", + name: 'lock_status', + type: 'xs:string', }, { - name: "position", - type: "xs:string", + name: 'position', + type: 'xs:string', }, { - name: "img_activity", - type: "xs:string", + name: 'img_activity', + type: 'xs:string', }, { - name: "obj_func", - type: "xs:string", + name: 'obj_func', + type: 'xs:string', }, ], }, { - name: "AllObjects", + name: 'AllObjects', sequence: { element: [ { - name: "abap_object", - type: "tm:AbapObject", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'abap_object', + type: 'tm:AbapObject', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "Attributes", + name: 'Attributes', attribute: [ { - name: "attribute", - type: "xs:string", + name: 'attribute', + type: 'xs:string', }, { - name: "description", - type: "xs:string", + name: 'description', + type: 'xs:string', }, { - name: "value", - type: "xs:string", + name: 'value', + type: 'xs:string', }, { - name: "position", - type: "xs:string", + name: 'position', + type: 'xs:string', }, ], }, { - name: "Review", + name: 'Review', attribute: [ { - name: "repository_id", - type: "xs:string", + name: 'repository_id', + type: 'xs:string', }, { - name: "repository_url", - type: "xs:string", + name: 'repository_url', + type: 'xs:string', }, { - name: "repository_branch", - type: "xs:string", + name: 'repository_branch', + type: 'xs:string', }, { - name: "pull_request_url", - type: "xs:string", + name: 'pull_request_url', + type: 'xs:string', }, ], }, { - name: "DynamicAttributes", + name: 'DynamicAttributes', sequence: { element: [ { - name: "dynamic_attribute", - type: "tm:DynamicAttribute", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'dynamic_attribute', + type: 'tm:DynamicAttribute', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "DynamicAttribute", + name: 'DynamicAttribute', sequence: { element: [ { - name: "properties", - type: "tm:AttributeProperties", - minOccurs: "0", + name: 'properties', + type: 'tm:AttributeProperties', + minOccurs: '0', }, ], }, attribute: [ { - name: "attribute", - type: "xs:string", + name: 'attribute', + type: 'xs:string', }, { - name: "value", - type: "xs:string", + name: 'value', + type: 'xs:string', }, { - name: "description", - type: "xs:string", + name: 'description', + type: 'xs:string', }, { - name: "domain_name", - type: "xs:string", + name: 'domain_name', + type: 'xs:string', }, ], }, { - name: "AttributeProperties", + name: 'AttributeProperties', sequence: { element: [ { - name: "property", - type: "tm:AttributeProperty", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'property', + type: 'tm:AttributeProperty', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "AttributeProperty", + name: 'AttributeProperty', attribute: [ { - name: "key", - type: "xs:string", + name: 'key', + type: 'xs:string', }, { - name: "value", - type: "xs:string", + name: 'value', + type: 'xs:string', }, ], }, diff --git a/packages/adt-schemas/src/schemas/generated/schemas/sap/Ecore.ts b/packages/adt-schemas/src/schemas/generated/schemas/sap/Ecore.ts index 7247760e..173a7b0d 100644 --- a/packages/adt-schemas/src/schemas/generated/schemas/sap/Ecore.ts +++ b/packages/adt-schemas/src/schemas/generated/schemas/sap/Ecore.ts @@ -1,66 +1,66 @@ /** * Auto-generated schema from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen * Source: xsd/sap/Ecore.xsd */ export default { $xmlns: { - xsd: "http://www.w3.org/2001/XMLSchema", - ecore: "http://www.eclipse.org/emf/2002/Ecore", + xsd: 'http://www.w3.org/2001/XMLSchema', + ecore: 'http://www.eclipse.org/emf/2002/Ecore', }, - targetNamespace: "http://www.eclipse.org/emf/2002/Ecore", - elementFormDefault: "qualified", + targetNamespace: 'http://www.eclipse.org/emf/2002/Ecore', + elementFormDefault: 'qualified', simpleType: [ { - name: "EString", + name: 'EString', restriction: { - base: "xsd:string", + base: 'xsd:string', }, }, { - name: "EInt", + name: 'EInt', restriction: { - base: "xsd:int", + base: 'xsd:int', }, }, { - name: "EBoolean", + name: 'EBoolean', restriction: { - base: "xsd:boolean", + base: 'xsd:boolean', }, }, { - name: "EDouble", + name: 'EDouble', restriction: { - base: "xsd:double", + base: 'xsd:double', }, }, { - name: "ELong", + name: 'ELong', restriction: { - base: "xsd:long", + base: 'xsd:long', }, }, { - name: "EDate", + name: 'EDate', restriction: { - base: "xsd:dateTime", + base: 'xsd:dateTime', }, }, ], complexType: [ { - name: "EStringToStringMapEntry", + name: 'EStringToStringMapEntry', attribute: [ { - name: "key", - type: "xsd:string", + name: 'key', + type: 'xsd:string', }, { - name: "value", - type: "xsd:string", + name: 'value', + type: 'xsd:string', }, ], }, diff --git a/packages/adt-schemas/src/schemas/generated/schemas/sap/abapoo.ts b/packages/adt-schemas/src/schemas/generated/schemas/sap/abapoo.ts index e7c0cb29..ed522718 100644 --- a/packages/adt-schemas/src/schemas/generated/schemas/sap/abapoo.ts +++ b/packages/adt-schemas/src/schemas/generated/schemas/sap/abapoo.ts @@ -1,6 +1,6 @@ /** * Auto-generated schema from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen * Source: xsd/sap/abapoo.xsd */ @@ -10,39 +10,36 @@ import abapsource from './abapsource'; export default { $xmlns: { - adtcore: "http://www.sap.com/adt/core", - abapsource: "http://www.sap.com/adt/abapsource", - abapoo: "http://www.sap.com/adt/oo", - ecore: "http://www.eclipse.org/emf/2002/Ecore", - xsd: "http://www.w3.org/2001/XMLSchema", + adtcore: 'http://www.sap.com/adt/core', + abapsource: 'http://www.sap.com/adt/abapsource', + abapoo: 'http://www.sap.com/adt/oo', + ecore: 'http://www.eclipse.org/emf/2002/Ecore', + xsd: 'http://www.w3.org/2001/XMLSchema', }, - $imports: [ - adtcore, - abapsource, - ], - targetNamespace: "http://www.sap.com/adt/oo", - attributeFormDefault: "qualified", - elementFormDefault: "qualified", + $imports: [adtcore, abapsource], + targetNamespace: 'http://www.sap.com/adt/oo', + attributeFormDefault: 'qualified', + elementFormDefault: 'qualified', complexType: [ { - name: "AbapOoObject", + name: 'AbapOoObject', complexContent: { extension: { - base: "abapsource:AbapSourceMainObject", + base: 'abapsource:AbapSourceMainObject', sequence: { element: [ { - name: "interfaceRef", - type: "adtcore:AdtObjectReference", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'interfaceRef', + type: 'adtcore:AdtObjectReference', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, attribute: [ { - name: "modeled", - type: "xsd:boolean", + name: 'modeled', + type: 'xsd:boolean', }, ], }, diff --git a/packages/adt-schemas/src/schemas/generated/schemas/sap/abapsource.ts b/packages/adt-schemas/src/schemas/generated/schemas/sap/abapsource.ts index 9314d78f..7a8969c3 100644 --- a/packages/adt-schemas/src/schemas/generated/schemas/sap/abapsource.ts +++ b/packages/adt-schemas/src/schemas/generated/schemas/sap/abapsource.ts @@ -1,6 +1,6 @@ /** * Auto-generated schema from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen * Source: xsd/sap/abapsource.xsd */ @@ -10,231 +10,228 @@ import atom from './atom'; export default { $xmlns: { - ecore: "http://www.eclipse.org/emf/2002/Ecore", - xsd: "http://www.w3.org/2001/XMLSchema", - atom: "http://www.w3.org/2005/Atom", - adtcore: "http://www.sap.com/adt/core", - abapsource: "http://www.sap.com/adt/abapsource", + ecore: 'http://www.eclipse.org/emf/2002/Ecore', + xsd: 'http://www.w3.org/2001/XMLSchema', + atom: 'http://www.w3.org/2005/Atom', + adtcore: 'http://www.sap.com/adt/core', + abapsource: 'http://www.sap.com/adt/abapsource', }, - $imports: [ - adtcore, - atom, - ], - targetNamespace: "http://www.sap.com/adt/abapsource", - attributeFormDefault: "qualified", - elementFormDefault: "qualified", + $imports: [adtcore, atom], + targetNamespace: 'http://www.sap.com/adt/abapsource', + attributeFormDefault: 'qualified', + elementFormDefault: 'qualified', element: [ { - name: "syntaxConfigurations", - type: "abapsource:AbapSyntaxConfigurations", + name: 'syntaxConfigurations', + type: 'abapsource:AbapSyntaxConfigurations', }, { - name: "syntaxConfiguration", - type: "abapsource:AbapSyntaxConfiguration", + name: 'syntaxConfiguration', + type: 'abapsource:AbapSyntaxConfiguration', }, ], complexType: [ { - name: "AbapSourceMainObject", + name: 'AbapSourceMainObject', complexContent: { extension: { - base: "adtcore:AdtMainObject", + base: 'adtcore:AdtMainObject', sequence: { element: [ { - name: "template", - type: "abapsource:AbapSourceTemplate", - minOccurs: "0", - maxOccurs: "1", + name: 'template', + type: 'abapsource:AbapSourceTemplate', + minOccurs: '0', + maxOccurs: '1', }, { - name: "syntaxConfiguration", - type: "abapsource:AbapSyntaxConfiguration", - minOccurs: "0", - maxOccurs: "1", + name: 'syntaxConfiguration', + type: 'abapsource:AbapSyntaxConfiguration', + minOccurs: '0', + maxOccurs: '1', }, ], }, attribute: [ { - name: "sourceUri", - type: "xsd:string", + name: 'sourceUri', + type: 'xsd:string', }, { - name: "sourceObjectStatus", - type: "abapsource:AbapSourceObjectStatus", + name: 'sourceObjectStatus', + type: 'abapsource:AbapSourceObjectStatus', }, { - name: "fixPointArithmetic", - type: "xsd:boolean", + name: 'fixPointArithmetic', + type: 'xsd:boolean', }, { - name: "activeUnicodeCheck", - type: "xsd:boolean", + name: 'activeUnicodeCheck', + type: 'xsd:boolean', }, ], }, }, }, { - name: "AbapSourceTemplate", + name: 'AbapSourceTemplate', sequence: { element: [ { - name: "property", - type: "abapsource:AbapSourceTemplateProperty", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'property', + type: 'abapsource:AbapSourceTemplateProperty', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, attribute: [ { - name: "name", - type: "xsd:string", - use: "optional", + name: 'name', + type: 'xsd:string', + use: 'optional', }, ], }, { - name: "AbapSourceTemplateProperty", + name: 'AbapSourceTemplateProperty', simpleContent: { extension: { - base: "xsd:string", + base: 'xsd:string', attribute: [ { - name: "key", - type: "xsd:string", + name: 'key', + type: 'xsd:string', }, ], }, }, }, { - name: "AbapSourceObject", + name: 'AbapSourceObject', complexContent: { extension: { - base: "adtcore:AdtObject", + base: 'adtcore:AdtObject', attribute: [ { - name: "sourceUri", - type: "xsd:string", + name: 'sourceUri', + type: 'xsd:string', }, ], }, }, }, { - name: "AbapSyntaxConfiguration", + name: 'AbapSyntaxConfiguration', sequence: { element: [ { - name: "language", - type: "abapsource:AbapLanguage", - minOccurs: "0", - maxOccurs: "1", + name: 'language', + type: 'abapsource:AbapLanguage', + minOccurs: '0', + maxOccurs: '1', }, { - name: "objectUsage", - type: "abapsource:AbapObjectUsage", - minOccurs: "0", - maxOccurs: "1", + name: 'objectUsage', + type: 'abapsource:AbapObjectUsage', + minOccurs: '0', + maxOccurs: '1', }, ], }, }, { - name: "AbapSyntaxConfigurations", + name: 'AbapSyntaxConfigurations', sequence: { element: [ { - ref: "abapsource:syntaxConfiguration", - minOccurs: "0", - maxOccurs: "unbounded", + ref: 'abapsource:syntaxConfiguration', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "AbapLanguage", + name: 'AbapLanguage', sequence: { element: [ { - name: "version", - type: "xsd:string", - minOccurs: "0", - maxOccurs: "1", + name: 'version', + type: 'xsd:string', + minOccurs: '0', + maxOccurs: '1', }, { - name: "description", - type: "xsd:string", - minOccurs: "0", - maxOccurs: "1", + name: 'description', + type: 'xsd:string', + minOccurs: '0', + maxOccurs: '1', }, { - ref: "atom:link", - minOccurs: "0", - maxOccurs: "unbounded", + ref: 'atom:link', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "AbapObjectUsage", + name: 'AbapObjectUsage', sequence: { element: [ { - ref: "atom:link", - minOccurs: "0", - maxOccurs: "unbounded", + ref: 'atom:link', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, attribute: [ { - name: "restricted", - type: "xsd:boolean", + name: 'restricted', + type: 'xsd:boolean', }, ], }, ], simpleType: [ { - name: "AbapSourceObjectStatus", + name: 'AbapSourceObjectStatus', restriction: { - base: "xsd:string", + base: 'xsd:string', enumeration: [ { - value: "SAPStandardProduction", + value: 'SAPStandardProduction', }, { - value: "customerProduction", + value: 'customerProduction', }, { - value: "system", + value: 'system', }, { - value: "test", + value: 'test', }, ], }, }, { - name: "AbapSourceObjectVisibility", + name: 'AbapSourceObjectVisibility', restriction: { - base: "xsd:string", + base: 'xsd:string', enumeration: [ { - value: "private", + value: 'private', }, { - value: "protected", + value: 'protected', }, { - value: "package", + value: 'package', }, { - value: "public", + value: 'public', }, ], }, diff --git a/packages/adt-schemas/src/schemas/generated/schemas/sap/adtcore.ts b/packages/adt-schemas/src/schemas/generated/schemas/sap/adtcore.ts index ed0bbca3..641695b2 100644 --- a/packages/adt-schemas/src/schemas/generated/schemas/sap/adtcore.ts +++ b/packages/adt-schemas/src/schemas/generated/schemas/sap/adtcore.ts @@ -1,6 +1,6 @@ /** * Auto-generated schema from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen * Source: xsd/sap/adtcore.xsd */ @@ -9,294 +9,292 @@ import atom from './atom'; export default { $xmlns: { - ecore: "http://www.eclipse.org/emf/2002/Ecore", - xsd: "http://www.w3.org/2001/XMLSchema", - adtcore: "http://www.sap.com/adt/core", - atom: "http://www.w3.org/2005/Atom", + ecore: 'http://www.eclipse.org/emf/2002/Ecore', + xsd: 'http://www.w3.org/2001/XMLSchema', + adtcore: 'http://www.sap.com/adt/core', + atom: 'http://www.w3.org/2005/Atom', }, - $imports: [ - atom, - ], - targetNamespace: "http://www.sap.com/adt/core", - attributeFormDefault: "qualified", - elementFormDefault: "qualified", - "xml:lang": "en", + $imports: [atom], + targetNamespace: 'http://www.sap.com/adt/core', + attributeFormDefault: 'qualified', + elementFormDefault: 'qualified', + 'xml:lang': 'en', element: [ { - name: "mainObject", - type: "adtcore:AdtMainObject", + name: 'mainObject', + type: 'adtcore:AdtMainObject', }, { - name: "objectReferences", - type: "adtcore:AdtObjectReferenceList", + name: 'objectReferences', + type: 'adtcore:AdtObjectReferenceList', }, { - name: "objectReference", - type: "adtcore:AdtObjectReference", + name: 'objectReference', + type: 'adtcore:AdtObjectReference', }, { - name: "content", - type: "adtcore:AdtContent", + name: 'content', + type: 'adtcore:AdtContent', }, ], complexType: [ { - name: "AdtObject", + name: 'AdtObject', sequence: { element: [ { - name: "containerRef", - type: "adtcore:AdtObjectReference", - minOccurs: "0", - maxOccurs: "1", + name: 'containerRef', + type: 'adtcore:AdtObjectReference', + minOccurs: '0', + maxOccurs: '1', }, { - ref: "atom:link", - minOccurs: "0", - maxOccurs: "unbounded", + ref: 'atom:link', + minOccurs: '0', + maxOccurs: 'unbounded', }, { - name: "adtTemplate", - type: "adtcore:AdtTemplate", - minOccurs: "0", - maxOccurs: "1", + name: 'adtTemplate', + type: 'adtcore:AdtTemplate', + minOccurs: '0', + maxOccurs: '1', }, ], }, attribute: [ { - name: "name", - type: "xsd:string", - use: "required", + name: 'name', + type: 'xsd:string', + use: 'required', }, { - name: "type", - type: "xsd:string", - use: "required", + name: 'type', + type: 'xsd:string', + use: 'required', }, { - name: "changedBy", - type: "adtcore:User", + name: 'changedBy', + type: 'adtcore:User', }, { - name: "changedAt", - type: "xsd:dateTime", + name: 'changedAt', + type: 'xsd:dateTime', }, { - name: "createdAt", - type: "xsd:dateTime", + name: 'createdAt', + type: 'xsd:dateTime', }, { - name: "createdBy", - type: "adtcore:User", + name: 'createdBy', + type: 'adtcore:User', }, { - name: "version", - type: "adtcore:AdtVersionEnum", + name: 'version', + type: 'adtcore:AdtVersionEnum', }, { - name: "description", - type: "xsd:string", - use: "optional", + name: 'description', + type: 'xsd:string', + use: 'optional', }, { - name: "descriptionTextLimit", - type: "xsd:int", - use: "optional", + name: 'descriptionTextLimit', + type: 'xsd:int', + use: 'optional', }, { - name: "language", - type: "adtcore:Language", - use: "optional", + name: 'language', + type: 'adtcore:Language', + use: 'optional', }, ], }, { - name: "AdtMainObject", + name: 'AdtMainObject', complexContent: { extension: { - base: "adtcore:AdtObject", + base: 'adtcore:AdtObject', sequence: { element: [ { - name: "packageRef", - type: "adtcore:AdtPackageReference", - minOccurs: "0", - maxOccurs: "1", + name: 'packageRef', + type: 'adtcore:AdtPackageReference', + minOccurs: '0', + maxOccurs: '1', }, ], }, attribute: [ { - name: "masterSystem", - type: "adtcore:System", - use: "optional", + name: 'masterSystem', + type: 'adtcore:System', + use: 'optional', }, { - name: "masterLanguage", - type: "adtcore:Language", - use: "optional", + name: 'masterLanguage', + type: 'adtcore:Language', + use: 'optional', }, { - name: "responsible", - type: "adtcore:User", - use: "optional", + name: 'responsible', + type: 'adtcore:User', + use: 'optional', }, { - name: "abapLanguageVersion", - type: "xsd:string", - use: "optional", + name: 'abapLanguageVersion', + type: 'xsd:string', + use: 'optional', }, ], }, }, }, { - name: "AdtObjectReferenceList", + name: 'AdtObjectReferenceList', sequence: { element: [ { - ref: "adtcore:objectReference", - maxOccurs: "unbounded", + ref: 'adtcore:objectReference', + maxOccurs: 'unbounded', }, ], }, attribute: [ { - name: "name", - type: "xsd:string", - use: "optional", + name: 'name', + type: 'xsd:string', + use: 'optional', }, ], }, { - name: "AdtObjectReference", + name: 'AdtObjectReference', sequence: { element: [ { - name: "extension", - type: "adtcore:AdtExtension", - minOccurs: "0", - maxOccurs: "1", + name: 'extension', + type: 'adtcore:AdtExtension', + minOccurs: '0', + maxOccurs: '1', }, ], }, attribute: [ { - name: "uri", - type: "xsd:anyURI", - use: "optional", + name: 'uri', + type: 'xsd:anyURI', + use: 'optional', }, { - name: "parentUri", - type: "xsd:anyURI", - use: "optional", + name: 'parentUri', + type: 'xsd:anyURI', + use: 'optional', }, { - name: "type", - type: "xsd:string", - use: "optional", + name: 'type', + type: 'xsd:string', + use: 'optional', }, { - name: "name", - type: "xsd:string", - use: "optional", + name: 'name', + type: 'xsd:string', + use: 'optional', }, { - name: "packageName", - type: "adtcore:PackageName", - use: "optional", + name: 'packageName', + type: 'adtcore:PackageName', + use: 'optional', }, { - name: "description", - type: "xsd:string", - use: "optional", + name: 'description', + type: 'xsd:string', + use: 'optional', }, ], }, { - name: "AdtExtension", - final: "#all", + name: 'AdtExtension', + final: '#all', sequence: { any: [ { - minOccurs: "0", - maxOccurs: "unbounded", - namespace: "##other", - processContents: "lax", + minOccurs: '0', + maxOccurs: 'unbounded', + namespace: '##other', + processContents: 'lax', }, ], }, }, { - name: "AdtTemplate", + name: 'AdtTemplate', sequence: { element: [ { - name: "adtProperty", - type: "adtcore:AdtTemplateProperty", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'adtProperty', + type: 'adtcore:AdtTemplateProperty', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, attribute: [ { - name: "name", - type: "xsd:string", - use: "optional", + name: 'name', + type: 'xsd:string', + use: 'optional', }, ], }, { - name: "AdtTemplateProperty", + name: 'AdtTemplateProperty', simpleContent: { extension: { - base: "xsd:string", + base: 'xsd:string', attribute: [ { - name: "key", - type: "xsd:string", + name: 'key', + type: 'xsd:string', }, ], }, }, }, { - name: "AdtPackageReference", + name: 'AdtPackageReference', complexContent: { extension: { - base: "adtcore:AdtObjectReference", + base: 'adtcore:AdtObjectReference', }, }, }, { - name: "AdtSwitchReference", + name: 'AdtSwitchReference', complexContent: { extension: { - base: "adtcore:AdtObjectReference", + base: 'adtcore:AdtObjectReference', attribute: [ { - name: "state", - type: "adtcore:AdtSwitchStateEnum", + name: 'state', + type: 'adtcore:AdtSwitchStateEnum', }, ], }, }, }, { - name: "AdtContent", + name: 'AdtContent', simpleContent: { extension: { - base: "xsd:string", + base: 'xsd:string', attribute: [ { - name: "type", - type: "xsd:string", + name: 'type', + type: 'xsd:string', }, { - name: "encoding", - type: "xsd:string", + name: 'encoding', + type: 'xsd:string', }, ], }, @@ -305,122 +303,122 @@ export default { ], simpleType: [ { - name: "PackageName", + name: 'PackageName', restriction: { - base: "xsd:string", + base: 'xsd:string', minLength: [ { - value: "0", + value: '0', }, ], maxLength: [ { - value: "30", + value: '30', }, ], pattern: [ { - value: "[$/_A-Z]+[A-Z0-9_/]*", + value: '[$/_A-Z]+[A-Z0-9_/]*', }, ], }, }, { - name: "Language", + name: 'Language', restriction: { - base: "xsd:string", + base: 'xsd:string', length: [ { - value: "2", + value: '2', }, ], pattern: [ { - value: "([A-Z,a-z]*)", + value: '([A-Z,a-z]*)', }, ], }, }, { - name: "System", + name: 'System', restriction: { - base: "xsd:string", + base: 'xsd:string', minLength: [ { - value: "0", + value: '0', }, ], maxLength: [ { - value: "10", + value: '10', }, ], }, }, { - name: "User", + name: 'User', restriction: { - base: "xsd:string", + base: 'xsd:string', minLength: [ { - value: "0", + value: '0', }, ], maxLength: [ { - value: "12", + value: '12', }, ], }, }, { - name: "AdtVersionEnum", + name: 'AdtVersionEnum', restriction: { - base: "xsd:string", + base: 'xsd:string', enumeration: [ { - value: "active", + value: 'active', }, { - value: "inactive", + value: 'inactive', }, { - value: "workingArea", + value: 'workingArea', }, { - value: "new", + value: 'new', }, { - value: "partlyActive", + value: 'partlyActive', }, { - value: "", + value: '', }, { - value: "activeWithInactiveVersion", + value: 'activeWithInactiveVersion', }, ], }, }, { - name: "AdtSwitchStateEnum", + name: 'AdtSwitchStateEnum', restriction: { - base: "xsd:string", + base: 'xsd:string', enumeration: [ { - value: "on", + value: 'on', }, { - value: "off", + value: 'off', }, { - value: "stand-by", + value: 'stand-by', }, { - value: "", + value: '', }, { - value: "undefined", + value: 'undefined', }, ], }, diff --git a/packages/adt-schemas/src/schemas/generated/schemas/sap/atc.ts b/packages/adt-schemas/src/schemas/generated/schemas/sap/atc.ts index 82bb46bf..9c432dd1 100644 --- a/packages/adt-schemas/src/schemas/generated/schemas/sap/atc.ts +++ b/packages/adt-schemas/src/schemas/generated/schemas/sap/atc.ts @@ -1,193 +1,193 @@ /** * Auto-generated schema from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen * Source: xsd/sap/atc.xsd */ export default { $xmlns: { - xsd: "http://www.w3.org/2001/XMLSchema", - ecore: "http://www.eclipse.org/emf/2002/Ecore", - atc: "http://www.sap.com/adt/atc", + xsd: 'http://www.w3.org/2001/XMLSchema', + ecore: 'http://www.eclipse.org/emf/2002/Ecore', + atc: 'http://www.sap.com/adt/atc', }, - targetNamespace: "http://www.sap.com/adt/atc", - attributeFormDefault: "unqualified", - elementFormDefault: "unqualified", + targetNamespace: 'http://www.sap.com/adt/atc', + attributeFormDefault: 'unqualified', + elementFormDefault: 'unqualified', complexType: [ { - name: "AtcCustomizing", + name: 'AtcCustomizing', sequence: { element: [ { - name: "properties", - type: "atc:AtcProperties", - minOccurs: "1", - maxOccurs: "1", + name: 'properties', + type: 'atc:AtcProperties', + minOccurs: '1', + maxOccurs: '1', }, { - name: "exemption", - type: "atc:AtcExemption", - minOccurs: "1", - maxOccurs: "1", + name: 'exemption', + type: 'atc:AtcExemption', + minOccurs: '1', + maxOccurs: '1', }, { - name: "scaAttributes", - type: "atc:ScaAttributes", - minOccurs: "0", - maxOccurs: "1", + name: 'scaAttributes', + type: 'atc:ScaAttributes', + minOccurs: '0', + maxOccurs: '1', }, ], }, }, { - name: "AtcProperties", + name: 'AtcProperties', sequence: { element: [ { - name: "property", - type: "atc:AtcProperty", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'property', + type: 'atc:AtcProperty', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "AtcProperty", + name: 'AtcProperty', attribute: [ { - name: "name", - type: "xsd:string", + name: 'name', + type: 'xsd:string', }, { - name: "value", - type: "xsd:string", + name: 'value', + type: 'xsd:string', }, ], }, { - name: "AtcExemption", + name: 'AtcExemption', sequence: { element: [ { - name: "reasons", - type: "atc:AtcReasons", - minOccurs: "1", - maxOccurs: "1", + name: 'reasons', + type: 'atc:AtcReasons', + minOccurs: '1', + maxOccurs: '1', }, { - name: "validities", - type: "atc:AtcValidities", - minOccurs: "1", - maxOccurs: "1", + name: 'validities', + type: 'atc:AtcValidities', + minOccurs: '1', + maxOccurs: '1', }, ], }, }, { - name: "AtcReasons", + name: 'AtcReasons', sequence: { element: [ { - name: "reason", - type: "atc:AtcReason", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'reason', + type: 'atc:AtcReason', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "AtcReason", + name: 'AtcReason', attribute: [ { - name: "id", - type: "xsd:string", + name: 'id', + type: 'xsd:string', }, { - name: "justificationMandatory", - type: "xsd:boolean", + name: 'justificationMandatory', + type: 'xsd:boolean', }, { - name: "title", - type: "xsd:string", + name: 'title', + type: 'xsd:string', }, ], }, { - name: "AtcValidities", + name: 'AtcValidities', sequence: { element: [ { - name: "validity", - type: "atc:AtcValidity", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'validity', + type: 'atc:AtcValidity', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "AtcValidity", + name: 'AtcValidity', attribute: [ { - name: "id", - type: "xsd:string", + name: 'id', + type: 'xsd:string', }, { - name: "value", - type: "xsd:string", + name: 'value', + type: 'xsd:string', }, ], }, { - name: "ScaAttributes", + name: 'ScaAttributes', sequence: { element: [ { - name: "scaAttribute", - type: "atc:ScaAttribute", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'scaAttribute', + type: 'atc:ScaAttribute', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "ScaAttribute", + name: 'ScaAttribute', attribute: [ { - name: "attributeName", - type: "xsd:string", + name: 'attributeName', + type: 'xsd:string', }, { - name: "refAttributeName", - type: "xsd:string", + name: 'refAttributeName', + type: 'xsd:string', }, { - name: "label", - type: "xsd:boolean", + name: 'label', + type: 'xsd:boolean', }, { - name: "labelS", - type: "xsd:string", + name: 'labelS', + type: 'xsd:string', }, { - name: "labelM", - type: "xsd:string", + name: 'labelM', + type: 'xsd:string', }, { - name: "labelL", - type: "xsd:string", + name: 'labelL', + type: 'xsd:string', }, ], }, ], element: [ { - name: "customizing", - type: "atc:AtcCustomizing", + name: 'customizing', + type: 'atc:AtcCustomizing', }, ], } as const; diff --git a/packages/adt-schemas/src/schemas/generated/schemas/sap/atcexemption.ts b/packages/adt-schemas/src/schemas/generated/schemas/sap/atcexemption.ts index 17ac0e73..b74de583 100644 --- a/packages/adt-schemas/src/schemas/generated/schemas/sap/atcexemption.ts +++ b/packages/adt-schemas/src/schemas/generated/schemas/sap/atcexemption.ts @@ -1,6 +1,6 @@ /** * Auto-generated schema from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen * Source: xsd/sap/atcexemption.xsd */ @@ -9,272 +9,270 @@ import atcfinding from './atcfinding'; export default { $xmlns: { - xsd: "http://www.w3.org/2001/XMLSchema", - ecore: "http://www.eclipse.org/emf/2002/Ecore", - atcexmpt: "http://www.sap.com/adt/atc/exemption", - atcfinding: "http://www.sap.com/adt/atc/finding", + xsd: 'http://www.w3.org/2001/XMLSchema', + ecore: 'http://www.eclipse.org/emf/2002/Ecore', + atcexmpt: 'http://www.sap.com/adt/atc/exemption', + atcfinding: 'http://www.sap.com/adt/atc/finding', }, - $imports: [ - atcfinding, - ], - targetNamespace: "http://www.sap.com/adt/atc/exemption", - attributeFormDefault: "unqualified", - elementFormDefault: "qualified", + $imports: [atcfinding], + targetNamespace: 'http://www.sap.com/adt/atc/exemption', + attributeFormDefault: 'unqualified', + elementFormDefault: 'qualified', complexType: [ { - name: "AtcExemptionThisFinding", + name: 'AtcExemptionThisFinding', simpleContent: { extension: { - base: "xsd:boolean", + base: 'xsd:boolean', attribute: [ { - name: "enabled", - type: "xsd:boolean", - use: "required", + name: 'enabled', + type: 'xsd:boolean', + use: 'required', }, ], }, }, }, { - name: "AtcExemptionObjectRestriction", + name: 'AtcExemptionObjectRestriction', simpleContent: { extension: { - base: "xsd:string", + base: 'xsd:string', attribute: [ { - name: "subobject", - type: "xsd:boolean", - use: "optional", + name: 'subobject', + type: 'xsd:boolean', + use: 'optional', }, { - name: "object", - type: "xsd:boolean", - use: "optional", + name: 'object', + type: 'xsd:boolean', + use: 'optional', }, { - name: "package", - type: "xsd:boolean", - use: "optional", + name: 'package', + type: 'xsd:boolean', + use: 'optional', }, ], }, }, }, { - name: "AtcExemptionCheckRestriction", + name: 'AtcExemptionCheckRestriction', simpleContent: { extension: { - base: "xsd:string", + base: 'xsd:string', attribute: [ { - name: "message", - type: "xsd:boolean", + name: 'message', + type: 'xsd:boolean', }, { - name: "check", - type: "xsd:boolean", + name: 'check', + type: 'xsd:boolean', }, ], }, }, }, { - name: "AtcExemptionValidityRestriction", + name: 'AtcExemptionValidityRestriction', simpleContent: { extension: { - base: "xsd:string", + base: 'xsd:string', attribute: [ { - name: "unrestricted", - type: "xsd:boolean", - use: "optional", + name: 'unrestricted', + type: 'xsd:boolean', + use: 'optional', }, { - name: "date", - type: "xsd:boolean", - use: "optional", + name: 'date', + type: 'xsd:boolean', + use: 'optional', }, { - name: "component_release", - type: "xsd:boolean", - use: "optional", + name: 'component_release', + type: 'xsd:boolean', + use: 'optional', }, { - name: "support_package", - type: "xsd:boolean", - use: "optional", + name: 'support_package', + type: 'xsd:boolean', + use: 'optional', }, ], }, }, }, { - name: "AtcExemptionRangeOfFindings", + name: 'AtcExemptionRangeOfFindings', sequence: { element: [ { - name: "restrictByObject", - type: "atcexmpt:AtcExemptionObjectRestriction", + name: 'restrictByObject', + type: 'atcexmpt:AtcExemptionObjectRestriction', }, { - name: "restrictByCheck", - type: "atcexmpt:AtcExemptionCheckRestriction", + name: 'restrictByCheck', + type: 'atcexmpt:AtcExemptionCheckRestriction', }, { - name: "restrictByValidity", - type: "atcexmpt:AtcExemptionValidityRestriction", - minOccurs: "0", - maxOccurs: "1", + name: 'restrictByValidity', + type: 'atcexmpt:AtcExemptionValidityRestriction', + minOccurs: '0', + maxOccurs: '1', }, ], }, attribute: [ { - name: "enabled", - type: "xsd:boolean", - use: "required", + name: 'enabled', + type: 'xsd:boolean', + use: 'required', }, ], }, { - name: "AtcExemptionRestriction", + name: 'AtcExemptionRestriction', sequence: { element: [ { - name: "thisFinding", - type: "atcexmpt:AtcExemptionThisFinding", + name: 'thisFinding', + type: 'atcexmpt:AtcExemptionThisFinding', }, { - name: "rangeOfFindings", - type: "atcexmpt:AtcExemptionRangeOfFindings", + name: 'rangeOfFindings', + type: 'atcexmpt:AtcExemptionRangeOfFindings', }, ], }, }, { - name: "AtcExemptionProposal", + name: 'AtcExemptionProposal', sequence: { element: [ { - name: "finding", - type: "xsd:string", - minOccurs: "0", - maxOccurs: "1", + name: 'finding', + type: 'xsd:string', + minOccurs: '0', + maxOccurs: '1', }, { - ref: "atcfinding:finding", - minOccurs: "0", - maxOccurs: "1", + ref: 'atcfinding:finding', + minOccurs: '0', + maxOccurs: '1', }, { - name: "package", - type: "xsd:string", + name: 'package', + type: 'xsd:string', }, { - name: "subObject", - type: "xsd:string", - minOccurs: "0", - maxOccurs: "1", + name: 'subObject', + type: 'xsd:string', + minOccurs: '0', + maxOccurs: '1', }, { - name: "subObjectType", - type: "xsd:string", - minOccurs: "0", - maxOccurs: "1", + name: 'subObjectType', + type: 'xsd:string', + minOccurs: '0', + maxOccurs: '1', }, { - name: "subObjectTypeDescr", - type: "xsd:string", + name: 'subObjectTypeDescr', + type: 'xsd:string', }, { - name: "objectTypeDescr", - type: "xsd:string", + name: 'objectTypeDescr', + type: 'xsd:string', }, { - name: "restriction", - type: "atcexmpt:AtcExemptionRestriction", + name: 'restriction', + type: 'atcexmpt:AtcExemptionRestriction', }, { - name: "approver", - type: "xsd:string", + name: 'approver', + type: 'xsd:string', }, { - name: "apprIsArea", - type: "xsd:string", - minOccurs: "0", + name: 'apprIsArea', + type: 'xsd:string', + minOccurs: '0', }, { - name: "reason", - type: "xsd:string", + name: 'reason', + type: 'xsd:string', }, { - name: "validity", - type: "xsd:string", + name: 'validity', + type: 'xsd:string', }, { - name: "release", - type: "xsd:string", + name: 'release', + type: 'xsd:string', }, { - name: "softwareComponent", - type: "xsd:string", + name: 'softwareComponent', + type: 'xsd:string', }, { - name: "softwareComponentDescription", - type: "xsd:string", + name: 'softwareComponentDescription', + type: 'xsd:string', }, { - name: "justification", - type: "xsd:string", + name: 'justification', + type: 'xsd:string', }, { - name: "notify", - type: "xsd:string", + name: 'notify', + type: 'xsd:string', }, { - name: "checkClass", - type: "xsd:string", + name: 'checkClass', + type: 'xsd:string', }, { - name: "validUntil", - type: "xsd:string", + name: 'validUntil', + type: 'xsd:string', }, { - name: "supportPackage", - type: "xsd:string", - minOccurs: "0", - maxOccurs: "1", + name: 'supportPackage', + type: 'xsd:string', + minOccurs: '0', + maxOccurs: '1', }, ], }, }, { - name: "AtcExemptionStatus", + name: 'AtcExemptionStatus', sequence: { element: [ { - name: "message", - type: "xsd:string", + name: 'message', + type: 'xsd:string', }, { - name: "type", - type: "xsd:string", + name: 'type', + type: 'xsd:string', }, ], }, }, { - name: "AtcExemptionApply", + name: 'AtcExemptionApply', sequence: { element: [ { - name: "exemptionProposal", - type: "atcexmpt:AtcExemptionProposal", + name: 'exemptionProposal', + type: 'atcexmpt:AtcExemptionProposal', }, { - name: "status", - type: "atcexmpt:AtcExemptionStatus", + name: 'status', + type: 'atcexmpt:AtcExemptionStatus', }, ], }, @@ -282,16 +280,16 @@ export default { ], element: [ { - name: "exemptionProposal", - type: "atcexmpt:AtcExemptionProposal", + name: 'exemptionProposal', + type: 'atcexmpt:AtcExemptionProposal', }, { - name: "exemptionApply", - type: "atcexmpt:AtcExemptionApply", + name: 'exemptionApply', + type: 'atcexmpt:AtcExemptionApply', }, { - name: "status", - type: "atcexmpt:AtcExemptionStatus", + name: 'status', + type: 'atcexmpt:AtcExemptionStatus', }, ], } as const; diff --git a/packages/adt-schemas/src/schemas/generated/schemas/sap/atcfinding.ts b/packages/adt-schemas/src/schemas/generated/schemas/sap/atcfinding.ts index ff416142..ea66708e 100644 --- a/packages/adt-schemas/src/schemas/generated/schemas/sap/atcfinding.ts +++ b/packages/adt-schemas/src/schemas/generated/schemas/sap/atcfinding.ts @@ -1,6 +1,6 @@ /** * Auto-generated schema from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen * Source: xsd/sap/atcfinding.xsd */ @@ -10,330 +10,327 @@ import atom from './atom'; export default { $xmlns: { - xsd: "http://www.w3.org/2001/XMLSchema", - ecore: "http://www.eclipse.org/emf/2002/Ecore", - adtcore: "http://www.sap.com/adt/core", - atom: "http://www.w3.org/2005/Atom", - atcfinding: "http://www.sap.com/adt/atc/finding", + xsd: 'http://www.w3.org/2001/XMLSchema', + ecore: 'http://www.eclipse.org/emf/2002/Ecore', + adtcore: 'http://www.sap.com/adt/core', + atom: 'http://www.w3.org/2005/Atom', + atcfinding: 'http://www.sap.com/adt/atc/finding', }, - $imports: [ - adtcore, - atom, - ], - targetNamespace: "http://www.sap.com/adt/atc/finding", - attributeFormDefault: "qualified", - elementFormDefault: "qualified", + $imports: [adtcore, atom], + targetNamespace: 'http://www.sap.com/adt/atc/finding', + attributeFormDefault: 'qualified', + elementFormDefault: 'qualified', attribute: [ { - name: "checkId", - type: "xsd:string", + name: 'checkId', + type: 'xsd:string', }, { - name: "messageId", - type: "xsd:string", + name: 'messageId', + type: 'xsd:string', }, { - name: "checkTitle", - type: "xsd:string", + name: 'checkTitle', + type: 'xsd:string', }, { - name: "checkMessage", - type: "xsd:string", + name: 'checkMessage', + type: 'xsd:string', }, { - name: "messageTitle", - type: "xsd:string", + name: 'messageTitle', + type: 'xsd:string', }, { - name: "location", - type: "xsd:anyURI", + name: 'location', + type: 'xsd:anyURI', }, { - name: "effectOnTransports", - type: "xsd:string", + name: 'effectOnTransports', + type: 'xsd:string', }, { - name: "priority", - type: "xsd:int", + name: 'priority', + type: 'xsd:int', }, { - name: "exemptionApproval", - type: "xsd:string", + name: 'exemptionApproval', + type: 'xsd:string', }, { - name: "exemptionKind", - type: "xsd:string", + name: 'exemptionKind', + type: 'xsd:string', }, { - name: "noExemption", - type: "xsd:boolean", + name: 'noExemption', + type: 'xsd:boolean', }, { - name: "remarkText", - type: "xsd:string", + name: 'remarkText', + type: 'xsd:string', }, { - name: "remarkLink", - type: "xsd:string", + name: 'remarkLink', + type: 'xsd:string', }, ], complexType: [ { - name: "AtcQuickfixes", + name: 'AtcQuickfixes', attribute: [ { - name: "manual", - type: "xsd:boolean", - use: "optional", + name: 'manual', + type: 'xsd:boolean', + use: 'optional', }, { - name: "automatic", - type: "xsd:boolean", - use: "optional", + name: 'automatic', + type: 'xsd:boolean', + use: 'optional', }, { - name: "pseudo", - type: "xsd:boolean", - use: "optional", + name: 'pseudo', + type: 'xsd:boolean', + use: 'optional', }, { - name: "ai_enabled", - type: "xsd:boolean", - use: "optional", + name: 'ai_enabled', + type: 'xsd:boolean', + use: 'optional', }, { - name: "aiBasedQF", - type: "xsd:boolean", - use: "optional", + name: 'aiBasedQF', + type: 'xsd:boolean', + use: 'optional', }, ], }, { - name: "AtcTag", + name: 'AtcTag', attribute: [ { - name: "name", - type: "xsd:string", + name: 'name', + type: 'xsd:string', }, { - name: "value", - type: "xsd:string", + name: 'value', + type: 'xsd:string', }, ], }, { - name: "AtcTags", + name: 'AtcTags', sequence: { element: [ { - name: "tag", - type: "atcfinding:AtcTag", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'tag', + type: 'atcfinding:AtcTag', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "AtcFinding", + name: 'AtcFinding', complexContent: { extension: { - base: "adtcore:AdtObjectReference", + base: 'adtcore:AdtObjectReference', sequence: { element: [ { - ref: "atom:link", - minOccurs: "0", - maxOccurs: "unbounded", + ref: 'atom:link', + minOccurs: '0', + maxOccurs: 'unbounded', }, { - name: "quickfixes", - type: "atcfinding:AtcQuickfixes", + name: 'quickfixes', + type: 'atcfinding:AtcQuickfixes', }, { - name: "tags", - type: "atcfinding:AtcTags", - minOccurs: "0", - maxOccurs: "1", + name: 'tags', + type: 'atcfinding:AtcTags', + minOccurs: '0', + maxOccurs: '1', }, ], }, attribute: [ { - ref: "atcfinding:location", + ref: 'atcfinding:location', }, { - ref: "atcfinding:effectOnTransports", - use: "optional", + ref: 'atcfinding:effectOnTransports', + use: 'optional', }, { - ref: "atcfinding:priority", + ref: 'atcfinding:priority', }, { - ref: "atcfinding:checkTitle", + ref: 'atcfinding:checkTitle', }, { - ref: "atcfinding:checkId", - use: "optional", + ref: 'atcfinding:checkId', + use: 'optional', }, { - ref: "atcfinding:messageTitle", + ref: 'atcfinding:messageTitle', }, { - ref: "atcfinding:messageId", - use: "optional", + ref: 'atcfinding:messageId', + use: 'optional', }, { - ref: "atcfinding:exemptionKind", + ref: 'atcfinding:exemptionKind', }, { - ref: "atcfinding:exemptionApproval", + ref: 'atcfinding:exemptionApproval', }, { - ref: "atcfinding:noExemption", + ref: 'atcfinding:noExemption', }, { - name: "quickfixInfo", - type: "xsd:string", - use: "optional", + name: 'quickfixInfo', + type: 'xsd:string', + use: 'optional', }, { - name: "contactPerson", - type: "xsd:string", - use: "optional", + name: 'contactPerson', + type: 'xsd:string', + use: 'optional', }, { - name: "lastChangedBy", - type: "xsd:string", - use: "optional", + name: 'lastChangedBy', + type: 'xsd:string', + use: 'optional', }, { - name: "processor", - type: "xsd:string", - use: "optional", + name: 'processor', + type: 'xsd:string', + use: 'optional', }, { - name: "checksum", - type: "xsd:int", - use: "optional", + name: 'checksum', + type: 'xsd:int', + use: 'optional', }, { - ref: "atcfinding:remarkText", - use: "optional", + ref: 'atcfinding:remarkText', + use: 'optional', }, { - ref: "atcfinding:remarkLink", - use: "optional", + ref: 'atcfinding:remarkLink', + use: 'optional', }, ], }, }, }, { - name: "AtcFindingList", + name: 'AtcFindingList', sequence: { element: [ { - name: "finding", - type: "atcfinding:AtcFinding", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'finding', + type: 'atcfinding:AtcFinding', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "AtcFindingReferences", + name: 'AtcFindingReferences', sequence: { element: [ { - name: "findingReference", - type: "atcfinding:AtcFindingReference", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'findingReference', + type: 'atcfinding:AtcFindingReference', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "AtcFindingReference", + name: 'AtcFindingReference', complexContent: { extension: { - base: "adtcore:AdtObjectReference", + base: 'adtcore:AdtObjectReference', }, }, }, { - name: "AtcItems", + name: 'AtcItems', sequence: { element: [ { - name: "item", - type: "atcfinding:AtcItem", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'item', + type: 'atcfinding:AtcItem', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "AtcItem", + name: 'AtcItem', complexContent: { extension: { - base: "adtcore:AdtObjectReference", + base: 'adtcore:AdtObjectReference', attribute: [ { - name: "processor", - type: "xsd:string", - use: "optional", + name: 'processor', + type: 'xsd:string', + use: 'optional', }, { - name: "status", - type: "xsd:int", - use: "optional", + name: 'status', + type: 'xsd:int', + use: 'optional', }, { - name: "remarkText", - type: "xsd:string", - use: "optional", + name: 'remarkText', + type: 'xsd:string', + use: 'optional', }, { - name: "remarkLink", - type: "xsd:string", - use: "optional", + name: 'remarkLink', + type: 'xsd:string', + use: 'optional', }, ], }, }, }, { - name: "AtcRemarks", + name: 'AtcRemarks', sequence: { element: [ { - name: "remark", - type: "atcfinding:AtcRemark", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'remark', + type: 'atcfinding:AtcRemark', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "AtcRemark", + name: 'AtcRemark', complexContent: { extension: { - base: "adtcore:AdtObjectReference", + base: 'adtcore:AdtObjectReference', attribute: [ { - name: "remarkText", - type: "xsd:string", - use: "optional", + name: 'remarkText', + type: 'xsd:string', + use: 'optional', }, { - name: "remarkLink", - type: "xsd:string", - use: "optional", + name: 'remarkLink', + type: 'xsd:string', + use: 'optional', }, ], }, @@ -342,20 +339,20 @@ export default { ], element: [ { - name: "finding", - type: "atcfinding:AtcFinding", + name: 'finding', + type: 'atcfinding:AtcFinding', }, { - name: "findingReferences", - type: "atcfinding:AtcFindingReferences", + name: 'findingReferences', + type: 'atcfinding:AtcFindingReferences', }, { - name: "items", - type: "atcfinding:AtcItems", + name: 'items', + type: 'atcfinding:AtcItems', }, { - name: "remarks", - type: "atcfinding:AtcRemarks", + name: 'remarks', + type: 'atcfinding:AtcRemarks', }, ], } as const; diff --git a/packages/adt-schemas/src/schemas/generated/schemas/sap/atcinfo.ts b/packages/adt-schemas/src/schemas/generated/schemas/sap/atcinfo.ts index 6464ad43..19341e94 100644 --- a/packages/adt-schemas/src/schemas/generated/schemas/sap/atcinfo.ts +++ b/packages/adt-schemas/src/schemas/generated/schemas/sap/atcinfo.ts @@ -1,44 +1,44 @@ /** * Auto-generated schema from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen * Source: xsd/sap/atcinfo.xsd */ export default { $xmlns: { - xsd: "http://www.w3.org/2001/XMLSchema", - ecore: "http://www.eclipse.org/emf/2002/Ecore", - atcinfo: "http://www.sap.com/adt/atc/info", + xsd: 'http://www.w3.org/2001/XMLSchema', + ecore: 'http://www.eclipse.org/emf/2002/Ecore', + atcinfo: 'http://www.sap.com/adt/atc/info', }, - targetNamespace: "http://www.sap.com/adt/atc/info", - attributeFormDefault: "qualified", - elementFormDefault: "qualified", + targetNamespace: 'http://www.sap.com/adt/atc/info', + attributeFormDefault: 'qualified', + elementFormDefault: 'qualified', complexType: [ { - name: "AtcInfo", + name: 'AtcInfo', sequence: { element: [ { - name: "type", - type: "xsd:string", + name: 'type', + type: 'xsd:string', }, { - name: "description", - type: "xsd:string", + name: 'description', + type: 'xsd:string', }, ], }, }, { - name: "AtcInfoList", + name: 'AtcInfoList', sequence: { element: [ { - name: "info", - type: "atcinfo:AtcInfo", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'info', + type: 'atcinfo:AtcInfo', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, @@ -46,8 +46,8 @@ export default { ], element: [ { - name: "info", - type: "atcinfo:AtcInfo", + name: 'info', + type: 'atcinfo:AtcInfo', }, ], } as const; diff --git a/packages/adt-schemas/src/schemas/generated/schemas/sap/atcobject.ts b/packages/adt-schemas/src/schemas/generated/schemas/sap/atcobject.ts index 5b4b2d87..2cc660eb 100644 --- a/packages/adt-schemas/src/schemas/generated/schemas/sap/atcobject.ts +++ b/packages/adt-schemas/src/schemas/generated/schemas/sap/atcobject.ts @@ -1,6 +1,6 @@ /** * Auto-generated schema from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen * Source: xsd/sap/atcobject.xsd */ @@ -10,65 +10,62 @@ import atcfinding from './atcfinding'; export default { $xmlns: { - xsd: "http://www.w3.org/2001/XMLSchema", - ecore: "http://www.eclipse.org/emf/2002/Ecore", - adtcore: "http://www.sap.com/adt/core", - atcfinding: "http://www.sap.com/adt/atc/finding", - atcobject: "http://www.sap.com/adt/atc/object", + xsd: 'http://www.w3.org/2001/XMLSchema', + ecore: 'http://www.eclipse.org/emf/2002/Ecore', + adtcore: 'http://www.sap.com/adt/core', + atcfinding: 'http://www.sap.com/adt/atc/finding', + atcobject: 'http://www.sap.com/adt/atc/object', }, - $imports: [ - adtcore, - atcfinding, - ], - targetNamespace: "http://www.sap.com/adt/atc/object", - attributeFormDefault: "qualified", - elementFormDefault: "qualified", + $imports: [adtcore, atcfinding], + targetNamespace: 'http://www.sap.com/adt/atc/object', + attributeFormDefault: 'qualified', + elementFormDefault: 'qualified', complexType: [ { - name: "AtcObjectSetReference", + name: 'AtcObjectSetReference', attribute: [ { - name: "name", - type: "xsd:string", + name: 'name', + type: 'xsd:string', }, ], }, { - name: "AtcObject", + name: 'AtcObject', complexContent: { extension: { - base: "adtcore:AdtObjectReference", + base: 'adtcore:AdtObjectReference', sequence: { element: [ { - name: "findings", - type: "atcfinding:AtcFindingList", + name: 'findings', + type: 'atcfinding:AtcFindingList', }, ], }, attribute: [ { - name: "author", - type: "xsd:string", + name: 'author', + type: 'xsd:string', }, { - name: "objectTypeId", - type: "xsd:string", - use: "optional", + name: 'objectTypeId', + type: 'xsd:string', + use: 'optional', }, ], }, }, }, { - name: "AtcObjectList", + name: 'AtcObjectList', sequence: { element: [ { - name: "object", - type: "atcobject:AtcObject", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'object', + type: 'atcobject:AtcObject', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, @@ -76,8 +73,8 @@ export default { ], element: [ { - name: "object", - type: "atcobject:AtcObject", + name: 'object', + type: 'atcobject:AtcObject', }, ], } as const; diff --git a/packages/adt-schemas/src/schemas/generated/schemas/sap/atcresult.ts b/packages/adt-schemas/src/schemas/generated/schemas/sap/atcresult.ts index c019503e..31ee32e7 100644 --- a/packages/adt-schemas/src/schemas/generated/schemas/sap/atcresult.ts +++ b/packages/adt-schemas/src/schemas/generated/schemas/sap/atcresult.ts @@ -1,6 +1,6 @@ /** * Auto-generated schema from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen * Source: xsd/sap/atcresult.xsd */ @@ -13,120 +13,114 @@ import atcinfo from './atcinfo'; export default { $xmlns: { - xsd: "http://www.w3.org/2001/XMLSchema", - ecore: "http://www.eclipse.org/emf/2002/Ecore", - atcfinding: "http://www.sap.com/adt/atc/finding", - atcobject: "http://www.sap.com/adt/atc/object", - atctd: "http://www.sap.com/adt/atc/tagdescription", - atcinfo: "http://www.sap.com/adt/atc/info", - atcresultquery: "http://www.sap.com/adt/atc/resultquery", - atcresult: "http://www.sap.com/adt/atc/result", + xsd: 'http://www.w3.org/2001/XMLSchema', + ecore: 'http://www.eclipse.org/emf/2002/Ecore', + atcfinding: 'http://www.sap.com/adt/atc/finding', + atcobject: 'http://www.sap.com/adt/atc/object', + atctd: 'http://www.sap.com/adt/atc/tagdescription', + atcinfo: 'http://www.sap.com/adt/atc/info', + atcresultquery: 'http://www.sap.com/adt/atc/resultquery', + atcresult: 'http://www.sap.com/adt/atc/result', }, - $imports: [ - atcresultquery, - atcfinding, - atcobject, - atctagdescription, - atcinfo, - ], - targetNamespace: "http://www.sap.com/adt/atc/result", - attributeFormDefault: "qualified", - elementFormDefault: "qualified", + $imports: [atcresultquery, atcfinding, atcobject, atctagdescription, atcinfo], + targetNamespace: 'http://www.sap.com/adt/atc/result', + attributeFormDefault: 'qualified', + elementFormDefault: 'qualified', complexType: [ { - name: "AtcResult", + name: 'AtcResult', sequence: { element: [ { - name: "displayId", - type: "xsd:string", + name: 'displayId', + type: 'xsd:string', }, { - name: "title", - type: "xsd:string", + name: 'title', + type: 'xsd:string', }, { - name: "checkVariant", - type: "xsd:string", + name: 'checkVariant', + type: 'xsd:string', }, { - name: "runSeries", - type: "xsd:string", + name: 'runSeries', + type: 'xsd:string', }, { - name: "createdAt", - type: "xsd:dateTime", + name: 'createdAt', + type: 'xsd:dateTime', }, { - name: "aggregates", - type: "atcresult:AtcResultAggregates", + name: 'aggregates', + type: 'atcresult:AtcResultAggregates', }, { - name: "objects", - type: "atcobject:AtcObjectList", + name: 'objects', + type: 'atcobject:AtcObjectList', }, { - ref: "atctd:descriptionTags", + ref: 'atctd:descriptionTags', }, { - name: "infos", - type: "atcinfo:AtcInfoList", + name: 'infos', + type: 'atcinfo:AtcInfoList', }, ], }, }, { - name: "AtcResultAggregates", + name: 'AtcResultAggregates', sequence: { element: [ { - name: "numPrio1", - type: "xsd:int", + name: 'numPrio1', + type: 'xsd:int', }, { - name: "numPrio2", - type: "xsd:int", + name: 'numPrio2', + type: 'xsd:int', }, { - name: "numPrio3", - type: "xsd:int", + name: 'numPrio3', + type: 'xsd:int', }, { - name: "numPrio4", - type: "xsd:int", + name: 'numPrio4', + type: 'xsd:int', }, { - name: "numFailure", - type: "xsd:int", + name: 'numFailure', + type: 'xsd:int', }, ], }, }, { - name: "AtcResultList", + name: 'AtcResultList', sequence: { element: [ { - name: "result", - type: "atcresult:AtcResult", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'result', + type: 'atcresult:AtcResult', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "AtcResultQueryChoice", + name: 'AtcResultQueryChoice', choice: { element: [ { - ref: "atcresultquery:activeResultQuery", + ref: 'atcresultquery:activeResultQuery', }, { - ref: "atcresultquery:specificResultQuery", + ref: 'atcresultquery:specificResultQuery', }, { - ref: "atcresultquery:userResultQuery", + ref: 'atcresultquery:userResultQuery', }, ], }, @@ -134,12 +128,12 @@ export default { ], element: [ { - name: "resultList", - type: "atcresult:AtcResultList", + name: 'resultList', + type: 'atcresult:AtcResultList', }, { - name: "queryChoice", - type: "atcresult:AtcResultQueryChoice", + name: 'queryChoice', + type: 'atcresult:AtcResultQueryChoice', }, ], } as const; diff --git a/packages/adt-schemas/src/schemas/generated/schemas/sap/atcresultquery.ts b/packages/adt-schemas/src/schemas/generated/schemas/sap/atcresultquery.ts index 3dd762c0..cc871856 100644 --- a/packages/adt-schemas/src/schemas/generated/schemas/sap/atcresultquery.ts +++ b/packages/adt-schemas/src/schemas/generated/schemas/sap/atcresultquery.ts @@ -1,49 +1,49 @@ /** * Auto-generated schema from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen * Source: xsd/sap/atcresultquery.xsd */ export default { $xmlns: { - xsd: "http://www.w3.org/2001/XMLSchema", - ecore: "http://www.eclipse.org/emf/2002/Ecore", - atcresultquery: "http://www.sap.com/adt/atc/resultquery", + xsd: 'http://www.w3.org/2001/XMLSchema', + ecore: 'http://www.eclipse.org/emf/2002/Ecore', + atcresultquery: 'http://www.sap.com/adt/atc/resultquery', }, - targetNamespace: "http://www.sap.com/adt/atc/resultquery", - attributeFormDefault: "qualified", - elementFormDefault: "qualified", + targetNamespace: 'http://www.sap.com/adt/atc/resultquery', + attributeFormDefault: 'qualified', + elementFormDefault: 'qualified', complexType: [ { - name: "AtcResultQuery", + name: 'AtcResultQuery', sequence: { element: [ { - name: "includeAggregates", - type: "xsd:boolean", + name: 'includeAggregates', + type: 'xsd:boolean', }, { - name: "includeFindings", - type: "xsd:boolean", + name: 'includeFindings', + type: 'xsd:boolean', }, { - name: "contactPerson", - type: "xsd:string", + name: 'contactPerson', + type: 'xsd:string', }, ], }, }, { - name: "ActiveAtcResultQuery", + name: 'ActiveAtcResultQuery', complexContent: { extension: { - base: "atcresultquery:AtcResultQuery", + base: 'atcresultquery:AtcResultQuery', sequence: { element: [ { - name: "queryEnabled", - type: "xsd:boolean", + name: 'queryEnabled', + type: 'xsd:boolean', }, ], }, @@ -51,19 +51,19 @@ export default { }, }, { - name: "SpecificAtcResultQuery", + name: 'SpecificAtcResultQuery', complexContent: { extension: { - base: "atcresultquery:AtcResultQuery", + base: 'atcresultquery:AtcResultQuery', sequence: { element: [ { - name: "queryEnabled", - type: "xsd:boolean", + name: 'queryEnabled', + type: 'xsd:boolean', }, { - name: "displayId", - type: "xsd:string", + name: 'displayId', + type: 'xsd:string', }, ], }, @@ -71,27 +71,27 @@ export default { }, }, { - name: "UserAtcResultQuery", + name: 'UserAtcResultQuery', complexContent: { extension: { - base: "atcresultquery:AtcResultQuery", + base: 'atcresultquery:AtcResultQuery', sequence: { element: [ { - name: "queryEnabled", - type: "xsd:boolean", + name: 'queryEnabled', + type: 'xsd:boolean', }, { - name: "createdBy", - type: "xsd:string", + name: 'createdBy', + type: 'xsd:string', }, { - name: "ageMin", - type: "xsd:int", + name: 'ageMin', + type: 'xsd:int', }, { - name: "ageMax", - type: "xsd:int", + name: 'ageMax', + type: 'xsd:int', }, ], }, @@ -101,16 +101,16 @@ export default { ], element: [ { - name: "activeResultQuery", - type: "atcresultquery:ActiveAtcResultQuery", + name: 'activeResultQuery', + type: 'atcresultquery:ActiveAtcResultQuery', }, { - name: "specificResultQuery", - type: "atcresultquery:SpecificAtcResultQuery", + name: 'specificResultQuery', + type: 'atcresultquery:SpecificAtcResultQuery', }, { - name: "userResultQuery", - type: "atcresultquery:UserAtcResultQuery", + name: 'userResultQuery', + type: 'atcresultquery:UserAtcResultQuery', }, ], } as const; diff --git a/packages/adt-schemas/src/schemas/generated/schemas/sap/atctagdescription.ts b/packages/adt-schemas/src/schemas/generated/schemas/sap/atctagdescription.ts index 200ebb15..87a5ab26 100644 --- a/packages/adt-schemas/src/schemas/generated/schemas/sap/atctagdescription.ts +++ b/packages/adt-schemas/src/schemas/generated/schemas/sap/atctagdescription.ts @@ -1,70 +1,70 @@ /** * Auto-generated schema from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen * Source: xsd/sap/atctagdescription.xsd */ export default { $xmlns: { - xsd: "http://www.w3.org/2001/XMLSchema", - ecore: "http://www.eclipse.org/emf/2002/Ecore", - atctd: "http://www.sap.com/adt/atc/tagdescription", + xsd: 'http://www.w3.org/2001/XMLSchema', + ecore: 'http://www.eclipse.org/emf/2002/Ecore', + atctd: 'http://www.sap.com/adt/atc/tagdescription', }, - targetNamespace: "http://www.sap.com/adt/atc/tagdescription", - attributeFormDefault: "qualified", - elementFormDefault: "qualified", + targetNamespace: 'http://www.sap.com/adt/atc/tagdescription', + attributeFormDefault: 'qualified', + elementFormDefault: 'qualified', complexType: [ { - name: "AtcTagDescription", + name: 'AtcTagDescription', attribute: [ { - name: "value", - type: "xsd:string", + name: 'value', + type: 'xsd:string', }, { - name: "description", - type: "xsd:string", + name: 'description', + type: 'xsd:string', }, ], }, { - name: "AtcTagDescriptions", + name: 'AtcTagDescriptions', sequence: { element: [ { - name: "description", - type: "atctd:AtcTagDescription", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'description', + type: 'atctd:AtcTagDescription', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "AtcTagWithDescr", + name: 'AtcTagWithDescr', sequence: { element: [ { - name: "name", - type: "xsd:string", + name: 'name', + type: 'xsd:string', }, { - name: "descriptions", - type: "atctd:AtcTagDescriptions", + name: 'descriptions', + type: 'atctd:AtcTagDescriptions', }, ], }, }, { - name: "AtcTagWithDescrList", + name: 'AtcTagWithDescrList', sequence: { element: [ { - name: "tagWithDescription", - type: "atctd:AtcTagWithDescr", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'tagWithDescription', + type: 'atctd:AtcTagWithDescr', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, @@ -72,8 +72,8 @@ export default { ], element: [ { - name: "descriptionTags", - type: "atctd:AtcTagWithDescrList", + name: 'descriptionTags', + type: 'atctd:AtcTagWithDescrList', }, ], } as const; diff --git a/packages/adt-schemas/src/schemas/generated/schemas/sap/atcworklist.ts b/packages/adt-schemas/src/schemas/generated/schemas/sap/atcworklist.ts index bec0a48a..3c29efcf 100644 --- a/packages/adt-schemas/src/schemas/generated/schemas/sap/atcworklist.ts +++ b/packages/adt-schemas/src/schemas/generated/schemas/sap/atcworklist.ts @@ -1,6 +1,6 @@ /** * Auto-generated schema from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen * Source: xsd/sap/atcworklist.xsd */ @@ -11,111 +11,107 @@ import atctagdescription from './atctagdescription'; export default { $xmlns: { - xsd: "http://www.w3.org/2001/XMLSchema", - ecore: "http://www.eclipse.org/emf/2002/Ecore", - atcinfo: "http://www.sap.com/adt/atc/info", - atcobject: "http://www.sap.com/adt/atc/object", - atctd: "http://www.sap.com/adt/atc/tagdescription", - atcworklist: "http://www.sap.com/adt/atc/worklist", + xsd: 'http://www.w3.org/2001/XMLSchema', + ecore: 'http://www.eclipse.org/emf/2002/Ecore', + atcinfo: 'http://www.sap.com/adt/atc/info', + atcobject: 'http://www.sap.com/adt/atc/object', + atctd: 'http://www.sap.com/adt/atc/tagdescription', + atcworklist: 'http://www.sap.com/adt/atc/worklist', }, - $imports: [ - atcinfo, - atcobject, - atctagdescription, - ], - targetNamespace: "http://www.sap.com/adt/atc/worklist", - attributeFormDefault: "qualified", - elementFormDefault: "qualified", + $imports: [atcinfo, atcobject, atctagdescription], + targetNamespace: 'http://www.sap.com/adt/atc/worklist', + attributeFormDefault: 'qualified', + elementFormDefault: 'qualified', complexType: [ { - name: "AtcWorklist", + name: 'AtcWorklist', sequence: { element: [ { - name: "objectSets", - type: "atcworklist:AtcObjectSetList", + name: 'objectSets', + type: 'atcworklist:AtcObjectSetList', }, { - name: "objects", - type: "atcobject:AtcObjectList", + name: 'objects', + type: 'atcobject:AtcObjectList', }, { - ref: "atctd:descriptionTags", + ref: 'atctd:descriptionTags', }, { - name: "infos", - type: "atcinfo:AtcInfoList", + name: 'infos', + type: 'atcinfo:AtcInfoList', }, ], }, attribute: [ { - name: "id", - type: "xsd:string", - use: "required", + name: 'id', + type: 'xsd:string', + use: 'required', }, { - name: "timestamp", - type: "xsd:dateTime", - use: "required", + name: 'timestamp', + type: 'xsd:dateTime', + use: 'required', }, { - name: "usedObjectSet", - type: "xsd:string", - use: "optional", + name: 'usedObjectSet', + type: 'xsd:string', + use: 'optional', }, { - name: "objectSetIsComplete", - type: "xsd:boolean", - use: "optional", + name: 'objectSetIsComplete', + type: 'xsd:boolean', + use: 'optional', }, ], }, { - name: "AtcWorklistRun", + name: 'AtcWorklistRun', sequence: { element: [ { - name: "worklistId", - type: "xsd:string", + name: 'worklistId', + type: 'xsd:string', }, { - name: "worklistTimestamp", - type: "xsd:dateTime", + name: 'worklistTimestamp', + type: 'xsd:dateTime', }, { - name: "infos", - type: "atcinfo:AtcInfoList", + name: 'infos', + type: 'atcinfo:AtcInfoList', }, ], }, }, { - name: "AtcObjectSet", + name: 'AtcObjectSet', attribute: [ { - name: "name", - type: "xsd:string", + name: 'name', + type: 'xsd:string', }, { - name: "title", - type: "xsd:string", + name: 'title', + type: 'xsd:string', }, { - name: "kind", - type: "xsd:string", + name: 'kind', + type: 'xsd:string', }, ], }, { - name: "AtcObjectSetList", + name: 'AtcObjectSetList', sequence: { element: [ { - name: "objectSet", - type: "atcworklist:AtcObjectSet", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'objectSet', + type: 'atcworklist:AtcObjectSet', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, @@ -123,12 +119,12 @@ export default { ], element: [ { - name: "worklist", - type: "atcworklist:AtcWorklist", + name: 'worklist', + type: 'atcworklist:AtcWorklist', }, { - name: "worklistRun", - type: "atcworklist:AtcWorklistRun", + name: 'worklistRun', + type: 'atcworklist:AtcWorklistRun', }, ], } as const; diff --git a/packages/adt-schemas/src/schemas/generated/schemas/sap/atom.ts b/packages/adt-schemas/src/schemas/generated/schemas/sap/atom.ts index 3a2ba5c9..3768d28c 100644 --- a/packages/adt-schemas/src/schemas/generated/schemas/sap/atom.ts +++ b/packages/adt-schemas/src/schemas/generated/schemas/sap/atom.ts @@ -1,6 +1,6 @@ /** * Auto-generated schema from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen * Source: xsd/sap/atom.xsd */ @@ -9,93 +9,91 @@ import xml from './xml'; export default { $xmlns: { - ecore: "http://www.eclipse.org/emf/2002/Ecore", - xsd: "http://www.w3.org/2001/XMLSchema", - atom: "http://www.w3.org/2005/Atom", - xml: "http://www.w3.org/XML/1998/namespace", + ecore: 'http://www.eclipse.org/emf/2002/Ecore', + xsd: 'http://www.w3.org/2001/XMLSchema', + atom: 'http://www.w3.org/2005/Atom', + xml: 'http://www.w3.org/XML/1998/namespace', }, - $imports: [ - xml, - ], - targetNamespace: "http://www.w3.org/2005/Atom", - attributeFormDefault: "unqualified", - elementFormDefault: "qualified", - "xml:lang": "en", + $imports: [xml], + targetNamespace: 'http://www.w3.org/2005/Atom', + attributeFormDefault: 'unqualified', + elementFormDefault: 'qualified', + 'xml:lang': 'en', element: [ { - name: "link", - type: "atom:linkType", + name: 'link', + type: 'atom:linkType', }, ], complexType: [ { - name: "linkType", + name: 'linkType', mixed: true, attribute: [ { - name: "href", - type: "xsd:anyURI", - use: "required", + name: 'href', + type: 'xsd:anyURI', + use: 'required', }, { - name: "rel", - type: "xsd:string", - use: "optional", + name: 'rel', + type: 'xsd:string', + use: 'optional', }, { - name: "type", - type: "xsd:string", - use: "optional", + name: 'type', + type: 'xsd:string', + use: 'optional', }, { - name: "hreflang", - type: "xsd:NMTOKEN", - use: "optional", + name: 'hreflang', + type: 'xsd:NMTOKEN', + use: 'optional', }, { - name: "title", - type: "xsd:string", - use: "optional", + name: 'title', + type: 'xsd:string', + use: 'optional', }, { - name: "length", - type: "xsd:positiveInteger", - use: "optional", + name: 'length', + type: 'xsd:positiveInteger', + use: 'optional', }, { - name: "etag", - type: "xsd:string", - use: "optional", + name: 'etag', + type: 'xsd:string', + use: 'optional', }, ], attributeGroup: [ { - ref: "atom:commonAttributes", + ref: 'atom:commonAttributes', }, ], }, ], attributeGroup: [ { - name: "commonAttributes", + name: 'commonAttributes', attribute: [ { - ref: "xml:base", + ref: 'xml:base', }, { - ref: "xml:lang", + ref: 'xml:lang', }, ], anyAttribute: { - namespace: "##other", + namespace: '##other', }, }, ], simpleType: [ { - name: "Uri", + name: 'Uri', restriction: { - base: "xsd:anyURI", + base: 'xsd:anyURI', }, }, ], diff --git a/packages/adt-schemas/src/schemas/generated/schemas/sap/checklist.ts b/packages/adt-schemas/src/schemas/generated/schemas/sap/checklist.ts index ba272d93..3d39299e 100644 --- a/packages/adt-schemas/src/schemas/generated/schemas/sap/checklist.ts +++ b/packages/adt-schemas/src/schemas/generated/schemas/sap/checklist.ts @@ -1,6 +1,6 @@ /** * Auto-generated schema from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen * Source: xsd/sap/checklist.xsd */ @@ -9,199 +9,197 @@ import atom from './atom'; export default { $xmlns: { - chkl: "http://www.sap.com/abapxml/checklist", - xsd: "http://www.w3.org/2001/XMLSchema", - ecore: "http://www.eclipse.org/emf/2002/Ecore", - atom: "http://www.w3.org/2005/Atom", + chkl: 'http://www.sap.com/abapxml/checklist', + xsd: 'http://www.w3.org/2001/XMLSchema', + ecore: 'http://www.eclipse.org/emf/2002/Ecore', + atom: 'http://www.w3.org/2005/Atom', }, - $imports: [ - atom, - ], - targetNamespace: "http://www.sap.com/abapxml/checklist", - elementFormDefault: "unqualified", + $imports: [atom], + targetNamespace: 'http://www.sap.com/abapxml/checklist', + elementFormDefault: 'unqualified', element: [ { - name: "messages", - type: "chkl:MessageList", + name: 'messages', + type: 'chkl:MessageList', }, ], complexType: [ { - name: "MessageList", + name: 'MessageList', sequence: { element: [ { - name: "msg", - type: "chkl:Message", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'msg', + type: 'chkl:Message', + minOccurs: '0', + maxOccurs: 'unbounded', }, { - name: "properties", - type: "chkl:Properties", + name: 'properties', + type: 'chkl:Properties', }, ], }, attribute: [ { - name: "forceSupported", - type: "xsd:boolean", - use: "optional", + name: 'forceSupported', + type: 'xsd:boolean', + use: 'optional', }, ], }, { - name: "Properties", + name: 'Properties', attribute: [ { - name: "checkExecuted", - type: "xsd:boolean", - use: "optional", + name: 'checkExecuted', + type: 'xsd:boolean', + use: 'optional', }, { - name: "activationExecuted", - type: "xsd:boolean", - use: "optional", + name: 'activationExecuted', + type: 'xsd:boolean', + use: 'optional', }, { - name: "generationExecuted", - type: "xsd:boolean", - use: "optional", + name: 'generationExecuted', + type: 'xsd:boolean', + use: 'optional', }, ], }, { - name: "Message", + name: 'Message', sequence: { element: [ { - name: "shortText", - type: "chkl:TextList", + name: 'shortText', + type: 'chkl:TextList', }, { - name: "longText", - type: "chkl:TextList", - minOccurs: "0", + name: 'longText', + type: 'chkl:TextList', + minOccurs: '0', }, { - name: "t100Key", - type: "chkl:T100Message", - minOccurs: "0", - maxOccurs: "1", + name: 't100Key', + type: 'chkl:T100Message', + minOccurs: '0', + maxOccurs: '1', }, { - name: "correctionHint", - type: "chkl:CorrectionHint", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'correctionHint', + type: 'chkl:CorrectionHint', + minOccurs: '0', + maxOccurs: 'unbounded', }, { - ref: "atom:link", - minOccurs: "0", - maxOccurs: "unbounded", + ref: 'atom:link', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, attribute: [ { - name: "objDescr", - type: "xsd:string", - use: "required", + name: 'objDescr', + type: 'xsd:string', + use: 'required', }, { - name: "type", - type: "chkl:MessageType", - use: "required", + name: 'type', + type: 'chkl:MessageType', + use: 'required', }, { - name: "line", - type: "xsd:int", - use: "optional", + name: 'line', + type: 'xsd:int', + use: 'optional', }, { - name: "offset", - type: "xsd:int", - use: "optional", + name: 'offset', + type: 'xsd:int', + use: 'optional', }, { - name: "href", - type: "xsd:anyURI", - use: "optional", + name: 'href', + type: 'xsd:anyURI', + use: 'optional', }, { - name: "forceSupported", - type: "xsd:boolean", - use: "optional", + name: 'forceSupported', + type: 'xsd:boolean', + use: 'optional', }, { - name: "code", - type: "xsd:string", - use: "optional", + name: 'code', + type: 'xsd:string', + use: 'optional', }, ], }, { - name: "T100Message", + name: 'T100Message', attribute: [ { - name: "msgno", - type: "xsd:integer", + name: 'msgno', + type: 'xsd:integer', }, { - name: "msgid", - type: "xsd:string", + name: 'msgid', + type: 'xsd:string', }, { - name: "msgv1", - type: "xsd:string", + name: 'msgv1', + type: 'xsd:string', }, { - name: "msgv2", - type: "xsd:string", + name: 'msgv2', + type: 'xsd:string', }, { - name: "msgv3", - type: "xsd:string", + name: 'msgv3', + type: 'xsd:string', }, { - name: "msgv4", - type: "xsd:string", + name: 'msgv4', + type: 'xsd:string', }, ], }, { - name: "CorrectionHint", + name: 'CorrectionHint', attribute: [ { - name: "number", - type: "xsd:integer", + name: 'number', + type: 'xsd:integer', }, { - name: "kind", - type: "xsd:string", + name: 'kind', + type: 'xsd:string', }, { - name: "line", - type: "xsd:integer", + name: 'line', + type: 'xsd:integer', }, { - name: "column", - type: "xsd:integer", + name: 'column', + type: 'xsd:integer', }, { - name: "word", - type: "xsd:string", + name: 'word', + type: 'xsd:string', }, ], }, { - name: "TextList", + name: 'TextList', sequence: { element: [ { - name: "txt", - type: "xsd:string", - maxOccurs: "unbounded", + name: 'txt', + type: 'xsd:string', + maxOccurs: 'unbounded', }, ], }, @@ -209,12 +207,12 @@ export default { ], simpleType: [ { - name: "MessageType", + name: 'MessageType', restriction: { - base: "xsd:string", + base: 'xsd:string', maxLength: [ { - value: "1", + value: '1', }, ], }, diff --git a/packages/adt-schemas/src/schemas/generated/schemas/sap/checkrun.ts b/packages/adt-schemas/src/schemas/generated/schemas/sap/checkrun.ts index e3c6c2dd..f4bf5eb9 100644 --- a/packages/adt-schemas/src/schemas/generated/schemas/sap/checkrun.ts +++ b/packages/adt-schemas/src/schemas/generated/schemas/sap/checkrun.ts @@ -1,6 +1,6 @@ /** * Auto-generated schema from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen * Source: xsd/sap/checkrun.xsd */ @@ -10,342 +10,339 @@ import adtcore from './adtcore'; export default { $xmlns: { - ecore: "http://www.eclipse.org/emf/2002/Ecore", - xsd: "http://www.w3.org/2001/XMLSchema", - atom: "http://www.w3.org/2005/Atom", - adtcore: "http://www.sap.com/adt/core", - chkrun: "http://www.sap.com/adt/checkrun", + ecore: 'http://www.eclipse.org/emf/2002/Ecore', + xsd: 'http://www.w3.org/2001/XMLSchema', + atom: 'http://www.w3.org/2005/Atom', + adtcore: 'http://www.sap.com/adt/core', + chkrun: 'http://www.sap.com/adt/checkrun', }, - $imports: [ - atom, - adtcore, - ], - targetNamespace: "http://www.sap.com/adt/checkrun", - attributeFormDefault: "qualified", - elementFormDefault: "qualified", + $imports: [atom, adtcore], + targetNamespace: 'http://www.sap.com/adt/checkrun', + attributeFormDefault: 'qualified', + elementFormDefault: 'qualified', element: [ { - name: "checkObjectList", - type: "chkrun:CheckObjectList", + name: 'checkObjectList', + type: 'chkrun:CheckObjectList', }, { - name: "checkRunReports", - type: "chkrun:CheckReportList", + name: 'checkRunReports', + type: 'chkrun:CheckReportList', }, { - name: "checkReporters", - type: "chkrun:CheckReporterList", + name: 'checkReporters', + type: 'chkrun:CheckReporterList', }, ], complexType: [ { - name: "CheckObjectList", + name: 'CheckObjectList', sequence: { element: [ { - name: "checkObject", - type: "chkrun:CheckObject", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'checkObject', + type: 'chkrun:CheckObject', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "CheckObject", + name: 'CheckObject', complexContent: { extension: { - base: "adtcore:AdtObjectReference", + base: 'adtcore:AdtObjectReference', sequence: { element: [ { - name: "artifacts", - type: "chkrun:CheckObjectArtifactList", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'artifacts', + type: 'chkrun:CheckObjectArtifactList', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, attribute: [ { - name: "version", - type: "adtcore:AdtVersionEnum", + name: 'version', + type: 'adtcore:AdtVersionEnum', }, ], }, }, }, { - name: "CheckObjectArtifactList", + name: 'CheckObjectArtifactList', sequence: { element: [ { - name: "artifact", - type: "chkrun:CheckObjectArtifact", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'artifact', + type: 'chkrun:CheckObjectArtifact', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "CheckObjectArtifact", + name: 'CheckObjectArtifact', sequence: { element: [ { - name: "content", - type: "xsd:base64Binary", - minOccurs: "0", - maxOccurs: "1", + name: 'content', + type: 'xsd:base64Binary', + minOccurs: '0', + maxOccurs: '1', }, ], }, attribute: [ { - name: "uri", - type: "xsd:string", + name: 'uri', + type: 'xsd:string', }, { - name: "contentType", - type: "xsd:string", + name: 'contentType', + type: 'xsd:string', }, ], }, { - name: "CheckReportList", + name: 'CheckReportList', sequence: { element: [ { - name: "checkReport", - type: "chkrun:CheckReport", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'checkReport', + type: 'chkrun:CheckReport', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "CheckReport", + name: 'CheckReport', sequence: { element: [ { - name: "checkMessageList", - type: "chkrun:CheckMessageList", - minOccurs: "0", - maxOccurs: "1", + name: 'checkMessageList', + type: 'chkrun:CheckMessageList', + minOccurs: '0', + maxOccurs: '1', }, ], }, attribute: [ { - name: "reporter", - type: "xsd:string", + name: 'reporter', + type: 'xsd:string', }, { - name: "triggeringUri", - type: "xsd:anyURI", + name: 'triggeringUri', + type: 'xsd:anyURI', }, { - name: "status", - type: "chkrun:StatusType", + name: 'status', + type: 'chkrun:StatusType', }, { - name: "statusText", - type: "xsd:string", + name: 'statusText', + type: 'xsd:string', }, ], }, { - name: "CheckMessageList", + name: 'CheckMessageList', sequence: { element: [ { - name: "checkMessage", - type: "chkrun:CheckMessage", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'checkMessage', + type: 'chkrun:CheckMessage', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "CheckMessage", + name: 'CheckMessage', sequence: { element: [ { - name: "t100Key", - type: "chkrun:T100Message", - minOccurs: "0", - maxOccurs: "1", + name: 't100Key', + type: 'chkrun:T100Message', + minOccurs: '0', + maxOccurs: '1', }, { - name: "correctionHint", - type: "chkrun:CorrectionHint", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'correctionHint', + type: 'chkrun:CorrectionHint', + minOccurs: '0', + maxOccurs: 'unbounded', }, { - ref: "atom:link", - minOccurs: "0", - maxOccurs: "unbounded", + ref: 'atom:link', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, attribute: [ { - name: "uri", - type: "xsd:anyURI", + name: 'uri', + type: 'xsd:anyURI', }, { - name: "type", - type: "chkrun:CheckMessageType", + name: 'type', + type: 'chkrun:CheckMessageType', }, { - name: "shortText", - type: "xsd:string", + name: 'shortText', + type: 'xsd:string', }, { - name: "category", - type: "xsd:string", + name: 'category', + type: 'xsd:string', }, { - name: "code", - type: "xsd:string", + name: 'code', + type: 'xsd:string', }, ], }, { - name: "T100Message", + name: 'T100Message', attribute: [ { - name: "msgno", - type: "xsd:integer", + name: 'msgno', + type: 'xsd:integer', }, { - name: "msgid", - type: "xsd:string", + name: 'msgid', + type: 'xsd:string', }, { - name: "msgv1", - type: "xsd:string", + name: 'msgv1', + type: 'xsd:string', }, { - name: "msgv2", - type: "xsd:string", + name: 'msgv2', + type: 'xsd:string', }, { - name: "msgv3", - type: "xsd:string", + name: 'msgv3', + type: 'xsd:string', }, { - name: "msgv4", - type: "xsd:string", + name: 'msgv4', + type: 'xsd:string', }, ], }, { - name: "CorrectionHint", + name: 'CorrectionHint', attribute: [ { - name: "number", - type: "xsd:integer", + name: 'number', + type: 'xsd:integer', }, { - name: "kind", - type: "xsd:string", + name: 'kind', + type: 'xsd:string', }, { - name: "line", - type: "xsd:integer", + name: 'line', + type: 'xsd:integer', }, { - name: "column", - type: "xsd:integer", + name: 'column', + type: 'xsd:integer', }, { - name: "word", - type: "xsd:string", + name: 'word', + type: 'xsd:string', }, ], }, { - name: "CheckReporterList", + name: 'CheckReporterList', sequence: { element: [ { - name: "reporter", - type: "chkrun:CheckReporter", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'reporter', + type: 'chkrun:CheckReporter', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "CheckReporter", + name: 'CheckReporter', sequence: { element: [ { - name: "supportedType", - type: "xsd:string", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'supportedType', + type: 'xsd:string', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, attribute: [ { - name: "name", - type: "xsd:string", + name: 'name', + type: 'xsd:string', }, ], }, ], simpleType: [ { - name: "StatusType", + name: 'StatusType', restriction: { - base: "xsd:string", + base: 'xsd:string', maxLength: [ { - value: "15", + value: '15', }, ], }, }, { - name: "CheckMessageType", + name: 'CheckMessageType', restriction: { - base: "xsd:string", + base: 'xsd:string', maxLength: [ { - value: "1", + value: '1', }, ], enumeration: [ { - value: "S", + value: 'S', }, { - value: "I", + value: 'I', }, { - value: "W", + value: 'W', }, { - value: "B", + value: 'B', }, { - value: "E", + value: 'E', }, { - value: "C", + value: 'C', }, { - value: "-", + value: '-', }, { - value: " ", + value: ' ', }, ], }, diff --git a/packages/adt-schemas/src/schemas/generated/schemas/sap/classes.ts b/packages/adt-schemas/src/schemas/generated/schemas/sap/classes.ts index c4b10ffc..0bcf794c 100644 --- a/packages/adt-schemas/src/schemas/generated/schemas/sap/classes.ts +++ b/packages/adt-schemas/src/schemas/generated/schemas/sap/classes.ts @@ -1,6 +1,6 @@ /** * Auto-generated schema from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen * Source: xsd/sap/classes.xsd */ @@ -11,111 +11,107 @@ import abapsource from './abapsource'; export default { $xmlns: { - adtcore: "http://www.sap.com/adt/core", - abapsource: "http://www.sap.com/adt/abapsource", - abapoo: "http://www.sap.com/adt/oo", - "class": "http://www.sap.com/adt/oo/classes", - ecore: "http://www.eclipse.org/emf/2002/Ecore", - xsd: "http://www.w3.org/2001/XMLSchema", + adtcore: 'http://www.sap.com/adt/core', + abapsource: 'http://www.sap.com/adt/abapsource', + abapoo: 'http://www.sap.com/adt/oo', + class: 'http://www.sap.com/adt/oo/classes', + ecore: 'http://www.eclipse.org/emf/2002/Ecore', + xsd: 'http://www.w3.org/2001/XMLSchema', }, - $imports: [ - adtcore, - abapoo, - abapsource, - ], - targetNamespace: "http://www.sap.com/adt/oo/classes", - attributeFormDefault: "qualified", - elementFormDefault: "qualified", + $imports: [adtcore, abapoo, abapsource], + targetNamespace: 'http://www.sap.com/adt/oo/classes', + attributeFormDefault: 'qualified', + elementFormDefault: 'qualified', element: [ { - name: "abapClass", - type: "class:AbapClass", + name: 'abapClass', + type: 'class:AbapClass', }, { - name: "abapClassInclude", - type: "class:AbapClassInclude", + name: 'abapClassInclude', + type: 'class:AbapClassInclude', }, ], complexType: [ { - name: "AbapClass", + name: 'AbapClass', complexContent: { extension: { - base: "abapoo:AbapOoObject", + base: 'abapoo:AbapOoObject', sequence: { element: [ { - name: "include", - type: "class:AbapClassInclude", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'include', + type: 'class:AbapClassInclude', + minOccurs: '0', + maxOccurs: 'unbounded', }, { - name: "superClassRef", - type: "adtcore:AdtObjectReference", - minOccurs: "0", - maxOccurs: "1", + name: 'superClassRef', + type: 'adtcore:AdtObjectReference', + minOccurs: '0', + maxOccurs: '1', }, { - name: "messageClassRef", - type: "adtcore:AdtObjectReference", - minOccurs: "0", - maxOccurs: "1", + name: 'messageClassRef', + type: 'adtcore:AdtObjectReference', + minOccurs: '0', + maxOccurs: '1', }, { - name: "rootEntityRef", - type: "adtcore:AdtObjectReference", - minOccurs: "0", - maxOccurs: "1", + name: 'rootEntityRef', + type: 'adtcore:AdtObjectReference', + minOccurs: '0', + maxOccurs: '1', }, ], }, attribute: [ { - name: "category", - type: "xsd:string", + name: 'category', + type: 'xsd:string', }, { - name: "final", - type: "xsd:boolean", + name: 'final', + type: 'xsd:boolean', }, { - name: "state", - type: "xsd:string", + name: 'state', + type: 'xsd:string', }, { - name: "abstract", - type: "xsd:boolean", + name: 'abstract', + type: 'xsd:boolean', }, { - name: "visibility", - type: "abapsource:AbapSourceObjectVisibility", + name: 'visibility', + type: 'abapsource:AbapSourceObjectVisibility', }, { - name: "sharedMemoryEnabled", - type: "xsd:boolean", + name: 'sharedMemoryEnabled', + type: 'xsd:boolean', }, { - name: "constructorGenerated", - type: "xsd:boolean", + name: 'constructorGenerated', + type: 'xsd:boolean', }, { - name: "hasTests", - type: "xsd:boolean", + name: 'hasTests', + type: 'xsd:boolean', }, ], }, }, }, { - name: "AbapClassInclude", + name: 'AbapClassInclude', complexContent: { extension: { - base: "abapsource:AbapSourceObject", + base: 'abapsource:AbapSourceObject', attribute: [ { - name: "includeType", - type: "class:AbapClassIncludeType", + name: 'includeType', + type: 'class:AbapClassIncludeType', }, ], }, @@ -124,77 +120,77 @@ export default { ], simpleType: [ { - name: "AbapClassCategory", + name: 'AbapClassCategory', restriction: { - base: "xsd:string", + base: 'xsd:string', enumeration: [ { - value: "generalObjectType", + value: 'generalObjectType', }, { - value: "exceptionClass", + value: 'exceptionClass', }, { - value: "testClass", + value: 'testClass', }, { - value: "exitClass", + value: 'exitClass', }, { - value: "areaClass", + value: 'areaClass', }, { - value: "factoryClass", + value: 'factoryClass', }, { - value: "persistentClass", + value: 'persistentClass', }, { - value: "bspClass", + value: 'bspClass', }, { - value: "staticTypedLcpClass", + value: 'staticTypedLcpClass', }, { - value: "behaviorPool", + value: 'behaviorPool', }, { - value: "rfcProxyClass", + value: 'rfcProxyClass', }, { - value: "entityEventHandler", + value: 'entityEventHandler', }, { - value: "communicationConnectionClass", + value: 'communicationConnectionClass', }, { - value: "others", + value: 'others', }, ], }, }, { - name: "AbapClassIncludeType", + name: 'AbapClassIncludeType', restriction: { - base: "xsd:string", + base: 'xsd:string', enumeration: [ { - value: "main", + value: 'main', }, { - value: "definitions", + value: 'definitions', }, { - value: "implementations", + value: 'implementations', }, { - value: "macros", + value: 'macros', }, { - value: "testclasses", + value: 'testclasses', }, { - value: "localtypes", + value: 'localtypes', }, ], }, diff --git a/packages/adt-schemas/src/schemas/generated/schemas/sap/configuration.ts b/packages/adt-schemas/src/schemas/generated/schemas/sap/configuration.ts index 265b8a36..a64e5a9c 100644 --- a/packages/adt-schemas/src/schemas/generated/schemas/sap/configuration.ts +++ b/packages/adt-schemas/src/schemas/generated/schemas/sap/configuration.ts @@ -1,6 +1,6 @@ /** * Auto-generated schema from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen * Source: xsd/sap/configuration.xsd */ @@ -9,93 +9,91 @@ import atom from './atom'; export default { $xmlns: { - adtcore: "http://www.sap.com/adt/core", - configuration: "http://www.sap.com/adt/configuration", - xsd: "http://www.w3.org/2001/XMLSchema", - ecore: "http://www.eclipse.org/emf/2002/Ecore", - atom: "http://www.w3.org/2005/Atom", + adtcore: 'http://www.sap.com/adt/core', + configuration: 'http://www.sap.com/adt/configuration', + xsd: 'http://www.w3.org/2001/XMLSchema', + ecore: 'http://www.eclipse.org/emf/2002/Ecore', + atom: 'http://www.w3.org/2005/Atom', }, - $imports: [ - atom, - ], - targetNamespace: "http://www.sap.com/adt/configuration", - attributeFormDefault: "unqualified", - elementFormDefault: "qualified", + $imports: [atom], + targetNamespace: 'http://www.sap.com/adt/configuration', + attributeFormDefault: 'unqualified', + elementFormDefault: 'qualified', element: [ { - name: "configuration", - type: "configuration:Configuration", + name: 'configuration', + type: 'configuration:Configuration', }, ], complexType: [ { - name: "Configuration", + name: 'Configuration', sequence: { element: [ { - name: "properties", - type: "configuration:Properties", + name: 'properties', + type: 'configuration:Properties', }, { - ref: "atom:link", - minOccurs: "0", - maxOccurs: "1", + ref: 'atom:link', + minOccurs: '0', + maxOccurs: '1', }, ], }, attribute: [ { - name: "client", - type: "configuration:Client", + name: 'client', + type: 'configuration:Client', }, { - name: "configName", - type: "xsd:string", + name: 'configName', + type: 'xsd:string', }, { - name: "createdBy", - type: "configuration:User", + name: 'createdBy', + type: 'configuration:User', }, { - name: "createdAt", - type: "xsd:dateTime", + name: 'createdAt', + type: 'xsd:dateTime', }, { - name: "changedBy", - type: "configuration:User", + name: 'changedBy', + type: 'configuration:User', }, { - name: "changedAt", - type: "xsd:dateTime", + name: 'changedAt', + type: 'xsd:dateTime', }, ], }, { - name: "Properties", + name: 'Properties', sequence: { element: [ { - name: "property", - type: "configuration:Property", - minOccurs: "1", - maxOccurs: "unbounded", + name: 'property', + type: 'configuration:Property', + minOccurs: '1', + maxOccurs: 'unbounded', }, ], }, }, { - name: "Property", + name: 'Property', simpleContent: { extension: { - base: "xsd:string", + base: 'xsd:string', attribute: [ { - name: "key", - type: "xsd:string", + name: 'key', + type: 'xsd:string', }, { - name: "isMandatory", - type: "xsd:boolean", + name: 'isMandatory', + type: 'xsd:boolean', }, ], }, @@ -104,33 +102,33 @@ export default { ], simpleType: [ { - name: "User", + name: 'User', restriction: { - base: "xsd:string", + base: 'xsd:string', minLength: [ { - value: "0", + value: '0', }, ], maxLength: [ { - value: "12", + value: '12', }, ], }, }, { - name: "Client", + name: 'Client', restriction: { - base: "xsd:string", + base: 'xsd:string', minLength: [ { - value: "0", + value: '0', }, ], maxLength: [ { - value: "3", + value: '3', }, ], }, diff --git a/packages/adt-schemas/src/schemas/generated/schemas/sap/configurations.ts b/packages/adt-schemas/src/schemas/generated/schemas/sap/configurations.ts index 54bef32f..80164914 100644 --- a/packages/adt-schemas/src/schemas/generated/schemas/sap/configurations.ts +++ b/packages/adt-schemas/src/schemas/generated/schemas/sap/configurations.ts @@ -1,6 +1,6 @@ /** * Auto-generated schema from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen * Source: xsd/sap/configurations.xsd */ @@ -10,35 +10,32 @@ import configuration from './configuration'; export default { $xmlns: { - adtcore: "http://www.sap.com/adt/core", - configurations: "http://www.sap.com/adt/configurations", - xsd: "http://www.w3.org/2001/XMLSchema", - ecore: "http://www.eclipse.org/emf/2002/Ecore", - atom: "http://www.w3.org/2005/Atom", - configuration: "http://www.sap.com/adt/configuration", + adtcore: 'http://www.sap.com/adt/core', + configurations: 'http://www.sap.com/adt/configurations', + xsd: 'http://www.w3.org/2001/XMLSchema', + ecore: 'http://www.eclipse.org/emf/2002/Ecore', + atom: 'http://www.w3.org/2005/Atom', + configuration: 'http://www.sap.com/adt/configuration', }, - $imports: [ - atom, - configuration, - ], - targetNamespace: "http://www.sap.com/adt/configurations", - attributeFormDefault: "unqualified", - elementFormDefault: "qualified", + $imports: [atom, configuration], + targetNamespace: 'http://www.sap.com/adt/configurations', + attributeFormDefault: 'unqualified', + elementFormDefault: 'qualified', element: [ { - name: "configurations", - type: "configurations:Configurations", + name: 'configurations', + type: 'configurations:Configurations', }, ], complexType: [ { - name: "Configurations", + name: 'Configurations', sequence: { element: [ { - ref: "configuration:configuration", - minOccurs: "1", - maxOccurs: "unbounded", + ref: 'configuration:configuration', + minOccurs: '1', + maxOccurs: 'unbounded', }, ], }, diff --git a/packages/adt-schemas/src/schemas/generated/schemas/sap/debugger.ts b/packages/adt-schemas/src/schemas/generated/schemas/sap/debugger.ts index c3ab0b1b..4b924e71 100644 --- a/packages/adt-schemas/src/schemas/generated/schemas/sap/debugger.ts +++ b/packages/adt-schemas/src/schemas/generated/schemas/sap/debugger.ts @@ -1,140 +1,140 @@ /** * Auto-generated schema from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen * Source: xsd/sap/debugger.xsd */ export default { $xmlns: { - ecore: "http://www.eclipse.org/emf/2002/Ecore", - xsd: "http://www.w3.org/2001/XMLSchema", - dbg: "http://www.sap.com/adt/debugger", + ecore: 'http://www.eclipse.org/emf/2002/Ecore', + xsd: 'http://www.w3.org/2001/XMLSchema', + dbg: 'http://www.sap.com/adt/debugger', }, - targetNamespace: "http://www.sap.com/adt/debugger", - attributeFormDefault: "qualified", - elementFormDefault: "qualified", + targetNamespace: 'http://www.sap.com/adt/debugger', + attributeFormDefault: 'qualified', + elementFormDefault: 'qualified', element: [ { - name: "memorySizes", - type: "dbg:MemorySizes", + name: 'memorySizes', + type: 'dbg:MemorySizes', }, ], complexType: [ { - name: "MemorySizes", + name: 'MemorySizes', sequence: { element: [ { - name: "abap", - type: "dbg:Abap", - minOccurs: "0", - maxOccurs: "1", + name: 'abap', + type: 'dbg:Abap', + minOccurs: '0', + maxOccurs: '1', }, { - name: "internal", - type: "dbg:Internal", - minOccurs: "1", - maxOccurs: "1", + name: 'internal', + type: 'dbg:Internal', + minOccurs: '1', + maxOccurs: '1', }, { - name: "external", - type: "dbg:External", - minOccurs: "1", - maxOccurs: "1", + name: 'external', + type: 'dbg:External', + minOccurs: '1', + maxOccurs: '1', }, ], }, }, { - name: "Abap", + name: 'Abap', sequence: { element: [ { - name: "staticVariables", - type: "xsd:long", - minOccurs: "1", - maxOccurs: "1", + name: 'staticVariables', + type: 'xsd:long', + minOccurs: '1', + maxOccurs: '1', }, { - name: "stackUsed", - type: "xsd:long", - minOccurs: "1", - maxOccurs: "1", + name: 'stackUsed', + type: 'xsd:long', + minOccurs: '1', + maxOccurs: '1', }, { - name: "stackAllocated", - type: "xsd:long", - minOccurs: "1", - maxOccurs: "1", + name: 'stackAllocated', + type: 'xsd:long', + minOccurs: '1', + maxOccurs: '1', }, { - name: "dynamicMemoryObjectsUsed", - type: "xsd:long", - minOccurs: "1", - maxOccurs: "1", + name: 'dynamicMemoryObjectsUsed', + type: 'xsd:long', + minOccurs: '1', + maxOccurs: '1', }, { - name: "dynamicMemoryObjectsAllocated", - type: "xsd:long", - minOccurs: "1", - maxOccurs: "1", + name: 'dynamicMemoryObjectsAllocated', + type: 'xsd:long', + minOccurs: '1', + maxOccurs: '1', }, ], }, }, { - name: "Internal", + name: 'Internal', sequence: { element: [ { - name: "used", - type: "xsd:long", - minOccurs: "1", - maxOccurs: "1", + name: 'used', + type: 'xsd:long', + minOccurs: '1', + maxOccurs: '1', }, { - name: "allocated", - type: "xsd:long", - minOccurs: "1", - maxOccurs: "1", + name: 'allocated', + type: 'xsd:long', + minOccurs: '1', + maxOccurs: '1', }, { - name: "peakUsed", - type: "xsd:long", - minOccurs: "1", - maxOccurs: "1", + name: 'peakUsed', + type: 'xsd:long', + minOccurs: '1', + maxOccurs: '1', }, ], }, }, { - name: "External", + name: 'External', sequence: { element: [ { - name: "used", - type: "xsd:long", - minOccurs: "1", - maxOccurs: "1", + name: 'used', + type: 'xsd:long', + minOccurs: '1', + maxOccurs: '1', }, { - name: "allocated", - type: "xsd:long", - minOccurs: "1", - maxOccurs: "1", + name: 'allocated', + type: 'xsd:long', + minOccurs: '1', + maxOccurs: '1', }, { - name: "peakUsed", - type: "xsd:long", - minOccurs: "1", - maxOccurs: "1", + name: 'peakUsed', + type: 'xsd:long', + minOccurs: '1', + maxOccurs: '1', }, { - name: "numberOfInternalSessions", - type: "xsd:int", - minOccurs: "1", - maxOccurs: "1", + name: 'numberOfInternalSessions', + type: 'xsd:int', + minOccurs: '1', + maxOccurs: '1', }, ], }, diff --git a/packages/adt-schemas/src/schemas/generated/schemas/sap/interfaces.ts b/packages/adt-schemas/src/schemas/generated/schemas/sap/interfaces.ts index b491d822..5fd7c699 100644 --- a/packages/adt-schemas/src/schemas/generated/schemas/sap/interfaces.ts +++ b/packages/adt-schemas/src/schemas/generated/schemas/sap/interfaces.ts @@ -1,6 +1,6 @@ /** * Auto-generated schema from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen * Source: xsd/sap/interfaces.xsd */ @@ -10,31 +10,28 @@ import abapoo from './abapoo'; export default { $xmlns: { - abapsource: "http://www.sap.com/adt/abapsource", - abapoo: "http://www.sap.com/adt/oo", - intf: "http://www.sap.com/adt/oo/interfaces", - ecore: "http://www.eclipse.org/emf/2002/Ecore", - xsd: "http://www.w3.org/2001/XMLSchema", + abapsource: 'http://www.sap.com/adt/abapsource', + abapoo: 'http://www.sap.com/adt/oo', + intf: 'http://www.sap.com/adt/oo/interfaces', + ecore: 'http://www.eclipse.org/emf/2002/Ecore', + xsd: 'http://www.w3.org/2001/XMLSchema', }, - $imports: [ - abapsource, - abapoo, - ], - targetNamespace: "http://www.sap.com/adt/oo/interfaces", - attributeFormDefault: "qualified", - elementFormDefault: "qualified", + $imports: [abapsource, abapoo], + targetNamespace: 'http://www.sap.com/adt/oo/interfaces', + attributeFormDefault: 'qualified', + elementFormDefault: 'qualified', element: [ { - name: "abapInterface", - type: "intf:AbapInterface", + name: 'abapInterface', + type: 'intf:AbapInterface', }, ], complexType: [ { - name: "AbapInterface", + name: 'AbapInterface', complexContent: { extension: { - base: "abapoo:AbapOoObject", + base: 'abapoo:AbapOoObject', }, }, }, diff --git a/packages/adt-schemas/src/schemas/generated/schemas/sap/log.ts b/packages/adt-schemas/src/schemas/generated/schemas/sap/log.ts index b3669c74..d1ca9426 100644 --- a/packages/adt-schemas/src/schemas/generated/schemas/sap/log.ts +++ b/packages/adt-schemas/src/schemas/generated/schemas/sap/log.ts @@ -1,6 +1,6 @@ /** * Auto-generated schema from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen * Source: xsd/sap/log.xsd */ @@ -10,316 +10,313 @@ import logpoint from './logpoint'; export default { $xmlns: { - xsd: "http://www.w3.org/2001/XMLSchema", - ecore: "http://www.eclipse.org/emf/2002/Ecore", - logs: "http://www.sap.com/adt/categories/dynamiclogpoints/logs", - xml: "http://www.w3.org/XML/1998/namespace", - atom: "http://www.w3.org/2005/Atom", - Q1: "http://www.sap.com/adt/categories/dynamiclogpoints", + xsd: 'http://www.w3.org/2001/XMLSchema', + ecore: 'http://www.eclipse.org/emf/2002/Ecore', + logs: 'http://www.sap.com/adt/categories/dynamiclogpoints/logs', + xml: 'http://www.w3.org/XML/1998/namespace', + atom: 'http://www.w3.org/2005/Atom', + Q1: 'http://www.sap.com/adt/categories/dynamiclogpoints', }, - $imports: [ - atom, - logpoint, - ], - targetNamespace: "http://www.sap.com/adt/categories/dynamiclogpoints/logs", + $imports: [atom, logpoint], + targetNamespace: 'http://www.sap.com/adt/categories/dynamiclogpoints/logs', element: [ { - name: "logKeys", - type: "logs:AdtLogpointLogKeys", + name: 'logKeys', + type: 'logs:AdtLogpointLogKeys', }, { - name: "logEntry", - type: "logs:AdtLogpointLogEntry", + name: 'logEntry', + type: 'logs:AdtLogpointLogEntry', }, { - name: "collectionSummary", - type: "logs:AdtLogCollectionSummary", + name: 'collectionSummary', + type: 'logs:AdtLogCollectionSummary', }, ], complexType: [ { - name: "AdtLogpointLogKeys", + name: 'AdtLogpointLogKeys', sequence: { element: [ { - ref: "atom:link", - minOccurs: "0", - maxOccurs: "unbounded", + ref: 'atom:link', + minOccurs: '0', + maxOccurs: 'unbounded', }, { - name: "progVersion", - type: "logs:AdtLogpointProgVersion", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'progVersion', + type: 'logs:AdtLogpointProgVersion', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, attribute: [ { - ref: "xml:base", + ref: 'xml:base', }, ], }, { - name: "AdtLogpointLogFieldList", + name: 'AdtLogpointLogFieldList', sequence: { element: [ { - name: "field", - type: "logs:AdtLogpointLogField", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'field', + type: 'logs:AdtLogpointLogField', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "AdtLogpointLogEntry", + name: 'AdtLogpointLogEntry', sequence: { element: [ { - name: "fieldList", - type: "logs:AdtLogpointLogFieldList", + name: 'fieldList', + type: 'logs:AdtLogpointLogFieldList', }, { - ref: "atom:link", - minOccurs: "0", - maxOccurs: "unbounded", + ref: 'atom:link', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "AdtLogpointLogField", + name: 'AdtLogpointLogField', sequence: { element: [ { - name: "value", - type: "logs:AdtLogpointLogComponentValue", + name: 'value', + type: 'logs:AdtLogpointLogComponentValue', }, ], }, attribute: [ { - name: "name", - type: "xsd:string", + name: 'name', + type: 'xsd:string', }, ], }, { - name: "AdtLogpointProgVersion", + name: 'AdtLogpointProgVersion', sequence: { element: [ { - name: "key", - type: "logs:AdtLogpointLogKey", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'key', + type: 'logs:AdtLogpointLogKey', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, attribute: [ { - name: "generatedAt", - type: "xsd:dateTime", + name: 'generatedAt', + type: 'xsd:dateTime', }, ], }, { - name: "AdtLogpointLogKey", + name: 'AdtLogpointLogKey', sequence: { element: [ { - ref: "atom:link", - minOccurs: "0", - maxOccurs: "unbounded", + ref: 'atom:link', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, attribute: [ { - name: "value", - type: "xsd:string", + name: 'value', + type: 'xsd:string', }, { - name: "calls", - type: "xsd:int", + name: 'calls', + type: 'xsd:int', }, { - name: "lastCall", - type: "xsd:dateTime", + name: 'lastCall', + type: 'xsd:dateTime', }, ], }, { - name: "AdtLogpointLogComponentValue", + name: 'AdtLogpointLogComponentValue', sequence: { choice: [ { element: [ { - name: "e", - type: "logs:AdtLogpointLogElementary", - minOccurs: "1", - maxOccurs: "1", + name: 'e', + type: 'logs:AdtLogpointLogElementary', + minOccurs: '1', + maxOccurs: '1', }, { - name: "s", - type: "logs:AdtLogpointLogStructure", - minOccurs: "1", - maxOccurs: "1", + name: 's', + type: 'logs:AdtLogpointLogStructure', + minOccurs: '1', + maxOccurs: '1', }, { - name: "t", - type: "logs:AdtLogpointLogTable", - minOccurs: "1", - maxOccurs: "1", + name: 't', + type: 'logs:AdtLogpointLogTable', + minOccurs: '1', + maxOccurs: '1', }, ], }, ], element: [ { - ref: "atom:link", - minOccurs: "0", - maxOccurs: "unbounded", + ref: 'atom:link', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "AdtLogpointLogStructure", + name: 'AdtLogpointLogStructure', sequence: { element: [ { - name: "c", - type: "logs:AdtLogpointLogComponentValue", - minOccurs: "1", - maxOccurs: "unbounded", + name: 'c', + type: 'logs:AdtLogpointLogComponentValue', + minOccurs: '1', + maxOccurs: 'unbounded', }, ], }, attribute: [ { - name: "t", - type: "xsd:boolean", + name: 't', + type: 'xsd:boolean', }, ], }, { - name: "AdtLogpointLogTable", + name: 'AdtLogpointLogTable', sequence: { element: [ { - name: "c", - type: "logs:AdtLogpointLogComponentValue", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'c', + type: 'logs:AdtLogpointLogComponentValue', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, attribute: [ { - name: "t", - type: "xsd:boolean", + name: 't', + type: 'xsd:boolean', }, ], }, { - name: "AdtLogpointLogElementary", + name: 'AdtLogpointLogElementary', attribute: [ { - name: "t", - type: "xsd:boolean", + name: 't', + type: 'xsd:boolean', }, { - name: "v", - type: "xsd:string", + name: 'v', + type: 'xsd:string', }, { - name: "y", - type: "xsd:string", + name: 'y', + type: 'xsd:string', }, ], }, { - name: "AdtLogCollectionSummary", + name: 'AdtLogCollectionSummary', sequence: { - minOccurs: "0", - maxOccurs: "1", + minOccurs: '0', + maxOccurs: '1', element: [ { - name: "success", - type: "logs:AdtLogCollectionSummaryServerList", - minOccurs: "0", - maxOccurs: "1", + name: 'success', + type: 'logs:AdtLogCollectionSummaryServerList', + minOccurs: '0', + maxOccurs: '1', }, { - name: "unreached", - type: "logs:AdtLogCollectionSummaryServerList", - minOccurs: "0", - maxOccurs: "1", + name: 'unreached', + type: 'logs:AdtLogCollectionSummaryServerList', + minOccurs: '0', + maxOccurs: '1', }, { - name: "failed", - type: "logs:AdtLogCollectionSummaryServerFailure", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'failed', + type: 'logs:AdtLogCollectionSummaryServerFailure', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, attribute: [ { - name: "collectedLogs", - type: "xsd:int", + name: 'collectedLogs', + type: 'xsd:int', }, ], }, { - name: "AdtLogCollectionSummaryServerList", + name: 'AdtLogCollectionSummaryServerList', sequence: { - minOccurs: "0", - maxOccurs: "unbounded", + minOccurs: '0', + maxOccurs: 'unbounded', element: [ { - name: "server", - type: "Q1:AdtLogpointServer", + name: 'server', + type: 'Q1:AdtLogpointServer', }, ], }, }, { - name: "AdtLogCollectionSummaryServerFailure", + name: 'AdtLogCollectionSummaryServerFailure', attribute: [ { - name: "server", - type: "xsd:string", + name: 'server', + type: 'xsd:string', }, { - name: "returnCode", - type: "xsd:int", + name: 'returnCode', + type: 'xsd:int', }, { - name: "errorMessage", - type: "xsd:string", + name: 'errorMessage', + type: 'xsd:string', }, ], }, ], simpleType: [ { - name: "AdtLogpointLogFieldKind", + name: 'AdtLogpointLogFieldKind', restriction: { - base: "xsd:string", + base: 'xsd:string', enumeration: [ { - value: "simple", + value: 'simple', }, { - value: "structure", + value: 'structure', }, { - value: "table", + value: 'table', }, ], }, diff --git a/packages/adt-schemas/src/schemas/generated/schemas/sap/logpoint.ts b/packages/adt-schemas/src/schemas/generated/schemas/sap/logpoint.ts index f12c2537..9babb199 100644 --- a/packages/adt-schemas/src/schemas/generated/schemas/sap/logpoint.ts +++ b/packages/adt-schemas/src/schemas/generated/schemas/sap/logpoint.ts @@ -1,6 +1,6 @@ /** * Auto-generated schema from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen * Source: xsd/sap/logpoint.xsd */ @@ -10,74 +10,71 @@ import adtcore from './adtcore'; export default { $xmlns: { - xsd: "http://www.w3.org/2001/XMLSchema", - ecore: "http://www.eclipse.org/emf/2002/Ecore", - logpoints: "http://www.sap.com/adt/categories/dynamiclogpoints", - adtcore: "http://www.sap.com/adt/core", - atom: "http://www.w3.org/2005/Atom", + xsd: 'http://www.w3.org/2001/XMLSchema', + ecore: 'http://www.eclipse.org/emf/2002/Ecore', + logpoints: 'http://www.sap.com/adt/categories/dynamiclogpoints', + adtcore: 'http://www.sap.com/adt/core', + atom: 'http://www.w3.org/2005/Atom', }, - $imports: [ - atom, - adtcore, - ], - targetNamespace: "http://www.sap.com/adt/categories/dynamiclogpoints", + $imports: [atom, adtcore], + targetNamespace: 'http://www.sap.com/adt/categories/dynamiclogpoints', simpleType: [ { - name: "AdtLogpointUsageType", + name: 'AdtLogpointUsageType', restriction: { - base: "xsd:string", + base: 'xsd:string', enumeration: [ { - value: "SQL Trace", + value: 'SQL Trace', }, { - value: "Default", + value: 'Default', }, { - value: "Unknown", + value: 'Unknown', }, ], }, }, { - name: "AdtLogpointActivationState", + name: 'AdtLogpointActivationState', restriction: { - base: "xsd:string", + base: 'xsd:string', enumeration: [ { - value: "Active", + value: 'Active', }, { - value: "NotYetActivated", + value: 'NotYetActivated', }, { - value: "Inactivated", + value: 'Inactivated', }, { - value: "Unknown", + value: 'Unknown', }, ], }, }, { - name: "AdtLogpointActivityType", + name: 'AdtLogpointActivityType', restriction: { - base: "xsd:string", + base: 'xsd:string', enumeration: [ { - value: "SINGLE_FIELD", + value: 'SINGLE_FIELD', }, { - value: "STACK_TRACE", + value: 'STACK_TRACE', }, { - value: "SQL_TRACE", + value: 'SQL_TRACE', }, { - value: "BUFFER_TRACE", + value: 'BUFFER_TRACE', }, { - value: "COMPLEX", + value: 'COMPLEX', }, ], }, @@ -85,296 +82,296 @@ export default { ], complexType: [ { - name: "AdtLogpointDefinition", + name: 'AdtLogpointDefinition', attribute: [ { - name: "description", - type: "xsd:string", + name: 'description', + type: 'xsd:string', }, { - name: "subKey", - type: "xsd:string", + name: 'subKey', + type: 'xsd:string', }, { - name: "fields", - type: "xsd:string", + name: 'fields', + type: 'xsd:string', }, { - name: "condition", - type: "xsd:string", + name: 'condition', + type: 'xsd:string', }, { - name: "rollareaCounter", - type: "xsd:int", + name: 'rollareaCounter', + type: 'xsd:int', }, { - name: "usageType", - type: "xsd:string", + name: 'usageType', + type: 'xsd:string', }, { - name: "createdBy", - type: "xsd:string", + name: 'createdBy', + type: 'xsd:string', }, { - name: "changedBy", - type: "xsd:string", + name: 'changedBy', + type: 'xsd:string', }, { - name: "changedAt", - type: "xsd:dateTime", + name: 'changedAt', + type: 'xsd:dateTime', }, { - name: "expiresAt", - type: "xsd:dateTime", + name: 'expiresAt', + type: 'xsd:dateTime', }, { - name: "activityType", - type: "xsd:string", + name: 'activityType', + type: 'xsd:string', }, { - name: "retentionTimeInDays", - type: "xsd:int", + name: 'retentionTimeInDays', + type: 'xsd:int', }, ], }, { - name: "AdtLogpointActivation", + name: 'AdtLogpointActivation', sequence: { element: [ { - name: "users", - type: "logpoints:AdtLogpointUserList", - minOccurs: "0", - maxOccurs: "1", + name: 'users', + type: 'logpoints:AdtLogpointUserList', + minOccurs: '0', + maxOccurs: '1', }, { - name: "servers", - type: "logpoints:AdtLogpointServerList", - minOccurs: "0", - maxOccurs: "1", + name: 'servers', + type: 'logpoints:AdtLogpointServerList', + minOccurs: '0', + maxOccurs: '1', }, ], }, attribute: [ { - name: "state", - type: "xsd:string", + name: 'state', + type: 'xsd:string', }, { - name: "activatedBy", - type: "xsd:string", + name: 'activatedBy', + type: 'xsd:string', }, { - name: "activeSince", - type: "xsd:dateTime", + name: 'activeSince', + type: 'xsd:dateTime', }, { - name: "activeUntil", - type: "xsd:dateTime", + name: 'activeUntil', + type: 'xsd:dateTime', }, { - name: "inactivatedBy", - type: "xsd:string", + name: 'inactivatedBy', + type: 'xsd:string', }, { - name: "inactiveSince", - type: "xsd:dateTime", + name: 'inactiveSince', + type: 'xsd:dateTime', }, ], }, { - name: "AdtLogpointUserList", + name: 'AdtLogpointUserList', sequence: { element: [ { - name: "user", - type: "logpoints:AdtLogpointUser", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'user', + type: 'logpoints:AdtLogpointUser', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "AdtLogpointUser", + name: 'AdtLogpointUser', attribute: [ { - name: "name", - type: "xsd:string", + name: 'name', + type: 'xsd:string', }, ], }, { - name: "AdtLogpointServerList", + name: 'AdtLogpointServerList', sequence: { element: [ { - name: "server", - type: "logpoints:AdtLogpointServer", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'server', + type: 'logpoints:AdtLogpointServer', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "AdtLogpointServer", + name: 'AdtLogpointServer', attribute: [ { - name: "name", - type: "xsd:string", + name: 'name', + type: 'xsd:string', }, ], }, { - name: "AdtLogpoint", + name: 'AdtLogpoint', sequence: { element: [ { - name: "location", - type: "logpoints:AdtLogpointLocationInfo", - minOccurs: "0", - maxOccurs: "1", + name: 'location', + type: 'logpoints:AdtLogpointLocationInfo', + minOccurs: '0', + maxOccurs: '1', }, { - name: "definition", - type: "logpoints:AdtLogpointDefinition", - minOccurs: "0", - maxOccurs: "1", + name: 'definition', + type: 'logpoints:AdtLogpointDefinition', + minOccurs: '0', + maxOccurs: '1', }, { - name: "activation", - type: "logpoints:AdtLogpointActivation", - minOccurs: "0", - maxOccurs: "1", + name: 'activation', + type: 'logpoints:AdtLogpointActivation', + minOccurs: '0', + maxOccurs: '1', }, ], }, }, { - name: "AdtLogpointList", + name: 'AdtLogpointList', sequence: { - minOccurs: "0", - maxOccurs: "unbounded", + minOccurs: '0', + maxOccurs: 'unbounded', element: [ { - name: "logpoint", - type: "logpoints:AdtLogpointEntry", + name: 'logpoint', + type: 'logpoints:AdtLogpointEntry', }, ], }, }, { - name: "AdtLogpointEntry", + name: 'AdtLogpointEntry', sequence: { element: [ { - name: "summary", - type: "logpoints:AdtLogpointSummary", - minOccurs: "0", - maxOccurs: "1", + name: 'summary', + type: 'logpoints:AdtLogpointSummary', + minOccurs: '0', + maxOccurs: '1', }, { - name: "definition", - type: "logpoints:AdtLogpointDefinition", - minOccurs: "0", - maxOccurs: "1", + name: 'definition', + type: 'logpoints:AdtLogpointDefinition', + minOccurs: '0', + maxOccurs: '1', }, { - name: "activation", - type: "logpoints:AdtLogpointActivation", - minOccurs: "0", - maxOccurs: "1", + name: 'activation', + type: 'logpoints:AdtLogpointActivation', + minOccurs: '0', + maxOccurs: '1', }, { - ref: "atom:link", - minOccurs: "0", - maxOccurs: "unbounded", + ref: 'atom:link', + minOccurs: '0', + maxOccurs: 'unbounded', }, { - name: "location", - type: "logpoints:AdtLogpointLocationInfo", - minOccurs: "0", - maxOccurs: "1", + name: 'location', + type: 'logpoints:AdtLogpointLocationInfo', + minOccurs: '0', + maxOccurs: '1', }, ], }, }, { - name: "AdtLogpointSummary", + name: 'AdtLogpointSummary', sequence: { element: [ { - name: "shortInfo", - type: "xsd:string", + name: 'shortInfo', + type: 'xsd:string', }, { - name: "executions", - type: "xsd:int", + name: 'executions', + type: 'xsd:int', }, ], }, }, { - name: "AdtLogpointLocationCheck", + name: 'AdtLogpointLocationCheck', sequence: { - minOccurs: "0", - maxOccurs: "unbounded", + minOccurs: '0', + maxOccurs: 'unbounded', element: [ { - name: "location", - type: "logpoints:AdtLogpointLocationInfo", - minOccurs: "0", - maxOccurs: "1", + name: 'location', + type: 'logpoints:AdtLogpointLocationInfo', + minOccurs: '0', + maxOccurs: '1', }, ], }, attribute: [ { - name: "message", - type: "xsd:string", + name: 'message', + type: 'xsd:string', }, { - name: "possible", - type: "xsd:boolean", + name: 'possible', + type: 'xsd:boolean', }, ], }, { - name: "AdtLogpointProgram", + name: 'AdtLogpointProgram', sequence: { - minOccurs: "0", - maxOccurs: "unbounded", + minOccurs: '0', + maxOccurs: 'unbounded', element: [ { - ref: "atom:link", - minOccurs: "0", - maxOccurs: "unbounded", + ref: 'atom:link', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, attribute: [ { - name: "name", - type: "xsd:string", + name: 'name', + type: 'xsd:string', }, ], }, { - name: "AdtLogpointLocationInfo", + name: 'AdtLogpointLocationInfo', sequence: { element: [ { - name: "includePosition", - type: "adtcore:AdtObjectReference", - minOccurs: "0", - maxOccurs: "1", + name: 'includePosition', + type: 'adtcore:AdtObjectReference', + minOccurs: '0', + maxOccurs: '1', }, { - name: "mainProgram", - type: "adtcore:AdtObjectReference", - minOccurs: "0", - maxOccurs: "1", + name: 'mainProgram', + type: 'adtcore:AdtObjectReference', + minOccurs: '0', + maxOccurs: '1', }, ], }, @@ -382,16 +379,16 @@ export default { ], element: [ { - name: "logpoint", - type: "logpoints:AdtLogpoint", + name: 'logpoint', + type: 'logpoints:AdtLogpoint', }, { - name: "logpointList", - type: "logpoints:AdtLogpointList", + name: 'logpointList', + type: 'logpoints:AdtLogpointList', }, { - name: "locationCheck", - type: "logpoints:AdtLogpointLocationCheck", + name: 'locationCheck', + type: 'logpoints:AdtLogpointLocationCheck', }, ], } as const; diff --git a/packages/adt-schemas/src/schemas/generated/schemas/sap/packagesV1.ts b/packages/adt-schemas/src/schemas/generated/schemas/sap/packagesV1.ts index 311c5053..7ec5c9bb 100644 --- a/packages/adt-schemas/src/schemas/generated/schemas/sap/packagesV1.ts +++ b/packages/adt-schemas/src/schemas/generated/schemas/sap/packagesV1.ts @@ -1,6 +1,6 @@ /** * Auto-generated schema from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen * Source: xsd/sap/packagesV1.xsd */ @@ -9,80 +9,78 @@ import adtcore from './adtcore'; export default { $xmlns: { - adtcore: "http://www.sap.com/adt/core", - ecore: "http://www.eclipse.org/emf/2002/Ecore", - xsd: "http://www.w3.org/2001/XMLSchema", - pak: "http://www.sap.com/adt/packages", + adtcore: 'http://www.sap.com/adt/core', + ecore: 'http://www.eclipse.org/emf/2002/Ecore', + xsd: 'http://www.w3.org/2001/XMLSchema', + pak: 'http://www.sap.com/adt/packages', }, - $imports: [ - adtcore, - ], - targetNamespace: "http://www.sap.com/adt/packages", - attributeFormDefault: "qualified", - elementFormDefault: "qualified", + $imports: [adtcore], + targetNamespace: 'http://www.sap.com/adt/packages', + attributeFormDefault: 'qualified', + elementFormDefault: 'qualified', element: [ { - name: "package", - type: "pak:Package", + name: 'package', + type: 'pak:Package', }, { - name: "packageTree", - type: "pak:PackageTree", + name: 'packageTree', + type: 'pak:PackageTree', }, ], complexType: [ { - name: "Package", + name: 'Package', complexContent: { extension: { - base: "adtcore:AdtMainObject", + base: 'adtcore:AdtMainObject', sequence: { element: [ { - name: "attributes", - type: "pak:Attributes", + name: 'attributes', + type: 'pak:Attributes', }, { - name: "superPackage", - type: "adtcore:AdtPackageReference", - minOccurs: "0", - maxOccurs: "1", + name: 'superPackage', + type: 'adtcore:AdtPackageReference', + minOccurs: '0', + maxOccurs: '1', }, { - name: "extensionAlias", - type: "pak:ExtensionAlias", + name: 'extensionAlias', + type: 'pak:ExtensionAlias', }, { - name: "switch", - type: "adtcore:AdtSwitchReference", + name: 'switch', + type: 'adtcore:AdtSwitchReference', }, { - name: "applicationComponent", - type: "pak:ApplicationComponent", - minOccurs: "0", - maxOccurs: "1", + name: 'applicationComponent', + type: 'pak:ApplicationComponent', + minOccurs: '0', + maxOccurs: '1', }, { - name: "transport", - type: "pak:TransportProperties", + name: 'transport', + type: 'pak:TransportProperties', }, { - name: "translation", - type: "pak:Translation", - minOccurs: "0", - maxOccurs: "1", + name: 'translation', + type: 'pak:Translation', + minOccurs: '0', + maxOccurs: '1', }, { - name: "useAccesses", - type: "pak:UseAccesses", + name: 'useAccesses', + type: 'pak:UseAccesses', }, { - name: "packageInterfaces", - type: "pak:PackageInterfaces", + name: 'packageInterfaces', + type: 'pak:PackageInterfaces', }, { - name: "subPackages", - type: "pak:SubPackages", + name: 'subPackages', + type: 'pak:SubPackages', }, ], }, @@ -90,310 +88,310 @@ export default { }, }, { - name: "Attributes", + name: 'Attributes', attribute: [ { - name: "packageType", - type: "pak:PackageType", - use: "required", + name: 'packageType', + type: 'pak:PackageType', + use: 'required', }, { - name: "isPackageTypeEditable", - type: "xsd:boolean", + name: 'isPackageTypeEditable', + type: 'xsd:boolean', }, { - name: "isAddingObjectsAllowed", - type: "xsd:boolean", + name: 'isAddingObjectsAllowed', + type: 'xsd:boolean', }, { - name: "isAddingObjectsAllowedEditable", - type: "xsd:boolean", + name: 'isAddingObjectsAllowedEditable', + type: 'xsd:boolean', }, { - name: "isEncapsulated", - type: "xsd:boolean", + name: 'isEncapsulated', + type: 'xsd:boolean', }, { - name: "isEncapsulationEditable", - type: "xsd:boolean", + name: 'isEncapsulationEditable', + type: 'xsd:boolean', }, { - name: "isEncapsulationVisible", - type: "xsd:boolean", + name: 'isEncapsulationVisible', + type: 'xsd:boolean', }, { - name: "recordChanges", - type: "xsd:boolean", + name: 'recordChanges', + type: 'xsd:boolean', }, { - name: "isRecordChangesEditable", - type: "xsd:boolean", + name: 'isRecordChangesEditable', + type: 'xsd:boolean', }, { - name: "isSwitchVisible", - type: "xsd:boolean", + name: 'isSwitchVisible', + type: 'xsd:boolean', }, { - name: "languageVersion", - type: "pak:ABAPLanguageVersion", - use: "optional", + name: 'languageVersion', + type: 'pak:ABAPLanguageVersion', + use: 'optional', }, { - name: "isLanguageVersionEditable", - type: "xsd:boolean", - use: "optional", + name: 'isLanguageVersionEditable', + type: 'xsd:boolean', + use: 'optional', }, { - name: "isLanguageVersionVisible", - type: "xsd:boolean", - use: "optional", + name: 'isLanguageVersionVisible', + type: 'xsd:boolean', + use: 'optional', }, ], }, { - name: "TransportProperties", + name: 'TransportProperties', sequence: { element: [ { - name: "softwareComponent", - type: "pak:SoftwareComponent", - minOccurs: "0", - maxOccurs: "1", + name: 'softwareComponent', + type: 'pak:SoftwareComponent', + minOccurs: '0', + maxOccurs: '1', }, { - name: "transportLayer", - type: "pak:TransportLayer", - minOccurs: "0", - maxOccurs: "1", + name: 'transportLayer', + type: 'pak:TransportLayer', + minOccurs: '0', + maxOccurs: '1', }, ], }, }, { - name: "SoftwareComponent", + name: 'SoftwareComponent', attribute: [ { - name: "name", - type: "xsd:string", + name: 'name', + type: 'xsd:string', }, { - name: "description", - type: "xsd:string", + name: 'description', + type: 'xsd:string', }, { - name: "type", - type: "xsd:string", + name: 'type', + type: 'xsd:string', }, { - name: "typeDescription", - type: "xsd:string", + name: 'typeDescription', + type: 'xsd:string', }, { - name: "isVisible", - type: "xsd:boolean", + name: 'isVisible', + type: 'xsd:boolean', }, { - name: "isEditable", - type: "xsd:boolean", + name: 'isEditable', + type: 'xsd:boolean', }, ], }, { - name: "TransportLayer", + name: 'TransportLayer', attribute: [ { - name: "name", - type: "xsd:string", + name: 'name', + type: 'xsd:string', }, { - name: "description", - type: "xsd:string", + name: 'description', + type: 'xsd:string', }, { - name: "isVisible", - type: "xsd:boolean", + name: 'isVisible', + type: 'xsd:boolean', }, { - name: "isEditable", - type: "xsd:boolean", + name: 'isEditable', + type: 'xsd:boolean', }, ], }, { - name: "ApplicationComponent", + name: 'ApplicationComponent', attribute: [ { - name: "name", - type: "xsd:string", + name: 'name', + type: 'xsd:string', }, { - name: "description", - type: "xsd:string", + name: 'description', + type: 'xsd:string', }, { - name: "isVisible", - type: "xsd:boolean", + name: 'isVisible', + type: 'xsd:boolean', }, { - name: "isEditable", - type: "xsd:boolean", + name: 'isEditable', + type: 'xsd:boolean', }, ], }, { - name: "ExtensionAlias", + name: 'ExtensionAlias', attribute: [ { - name: "name", - type: "xsd:string", + name: 'name', + type: 'xsd:string', }, { - name: "isVisible", - type: "xsd:boolean", + name: 'isVisible', + type: 'xsd:boolean', }, { - name: "isEditable", - type: "xsd:boolean", + name: 'isEditable', + type: 'xsd:boolean', }, ], }, { - name: "Translation", + name: 'Translation', attribute: [ { - name: "relevance", - type: "xsd:string", + name: 'relevance', + type: 'xsd:string', }, { - name: "relevanceDescription", - type: "xsd:string", + name: 'relevanceDescription', + type: 'xsd:string', }, { - name: "isVisible", - type: "xsd:boolean", + name: 'isVisible', + type: 'xsd:boolean', }, ], }, { - name: "UseAccesses", + name: 'UseAccesses', sequence: { element: [ { - name: "useAccess", - type: "pak:UseAccess", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'useAccess', + type: 'pak:UseAccess', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, attribute: [ { - name: "isVisible", - type: "xsd:boolean", + name: 'isVisible', + type: 'xsd:boolean', }, ], }, { - name: "UseAccess", + name: 'UseAccess', sequence: { element: [ { - name: "packageInterfaceRef", - type: "adtcore:AdtObjectReference", + name: 'packageInterfaceRef', + type: 'adtcore:AdtObjectReference', }, { - name: "packageRef", - type: "adtcore:AdtPackageReference", + name: 'packageRef', + type: 'adtcore:AdtPackageReference', }, ], }, attribute: [ { - name: "severity", - type: "pak:Severity", + name: 'severity', + type: 'pak:Severity', }, ], }, { - name: "PackageInterfaces", + name: 'PackageInterfaces', sequence: { element: [ { - name: "packageInterfaceRef", - type: "adtcore:AdtObjectReference", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'packageInterfaceRef', + type: 'adtcore:AdtObjectReference', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, attribute: [ { - name: "isVisible", - type: "xsd:boolean", + name: 'isVisible', + type: 'xsd:boolean', }, ], }, { - name: "SubPackages", + name: 'SubPackages', sequence: { element: [ { - name: "packageRef", - type: "adtcore:AdtObjectReference", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'packageRef', + type: 'adtcore:AdtObjectReference', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "PackageTree", + name: 'PackageTree', sequence: { element: [ { - name: "treeNode", - type: "pak:TreeNode", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'treeNode', + type: 'pak:TreeNode', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, attribute: [ { - name: "isSuperTree", - type: "xsd:boolean", + name: 'isSuperTree', + type: 'xsd:boolean', }, ], }, { - name: "TreeNode", + name: 'TreeNode', complexContent: { extension: { - base: "adtcore:AdtObjectReference", + base: 'adtcore:AdtObjectReference', sequence: { element: [ { - name: "superPackageRef", - type: "adtcore:AdtObjectReference", + name: 'superPackageRef', + type: 'adtcore:AdtObjectReference', }, { - name: "packageInterfaces", - type: "pak:PackageInterfaces", + name: 'packageInterfaces', + type: 'pak:PackageInterfaces', }, ], }, attribute: [ { - name: "isEncapsulated", - type: "xsd:boolean", + name: 'isEncapsulated', + type: 'xsd:boolean', }, { - name: "hasSubpackages", - type: "xsd:boolean", + name: 'hasSubpackages', + type: 'xsd:boolean', }, { - name: "hasInterfaces", - type: "xsd:boolean", + name: 'hasInterfaces', + type: 'xsd:boolean', }, ], }, @@ -402,64 +400,64 @@ export default { ], simpleType: [ { - name: "PackageType", + name: 'PackageType', restriction: { - base: "xsd:string", + base: 'xsd:string', enumeration: [ { - value: "structure", + value: 'structure', }, { - value: "main", + value: 'main', }, { - value: "development", + value: 'development', }, { - value: "", + value: '', }, ], }, }, { - name: "Severity", + name: 'Severity', restriction: { - base: "xsd:string", + base: 'xsd:string', enumeration: [ { - value: "none", + value: 'none', }, { - value: "error", + value: 'error', }, { - value: "warning", + value: 'warning', }, { - value: "information", + value: 'information', }, { - value: "obsolet", + value: 'obsolet', }, { - value: "", + value: '', }, ], }, }, { - name: "ABAPLanguageVersion", + name: 'ABAPLanguageVersion', restriction: { - base: "xsd:string", + base: 'xsd:string', enumeration: [ { - value: "2", + value: '2', }, { - value: "5", + value: '5', }, { - value: "", + value: '', }, ], }, diff --git a/packages/adt-schemas/src/schemas/generated/schemas/sap/quickfixes.ts b/packages/adt-schemas/src/schemas/generated/schemas/sap/quickfixes.ts index 55ac8555..edc4a53e 100644 --- a/packages/adt-schemas/src/schemas/generated/schemas/sap/quickfixes.ts +++ b/packages/adt-schemas/src/schemas/generated/schemas/sap/quickfixes.ts @@ -1,6 +1,6 @@ /** * Auto-generated schema from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen * Source: xsd/sap/quickfixes.xsd */ @@ -10,269 +10,266 @@ import atom from './atom'; export default { $xmlns: { - quickfixes: "http://www.sap.com/adt/quickfixes", - adtcore: "http://www.sap.com/adt/core", - atom: "http://www.w3.org/2005/Atom", - xsd: "http://www.w3.org/2001/XMLSchema", - ecore: "http://www.eclipse.org/emf/2002/Ecore", + quickfixes: 'http://www.sap.com/adt/quickfixes', + adtcore: 'http://www.sap.com/adt/core', + atom: 'http://www.w3.org/2005/Atom', + xsd: 'http://www.w3.org/2001/XMLSchema', + ecore: 'http://www.eclipse.org/emf/2002/Ecore', }, - $imports: [ - adtcore, - atom, - ], - targetNamespace: "http://www.sap.com/adt/quickfixes", - attributeFormDefault: "unqualified", - elementFormDefault: "unqualified", + $imports: [adtcore, atom], + targetNamespace: 'http://www.sap.com/adt/quickfixes', + attributeFormDefault: 'unqualified', + elementFormDefault: 'unqualified', element: [ { - name: "evaluationRequest", - type: "quickfixes:EvaluationRequest", + name: 'evaluationRequest', + type: 'quickfixes:EvaluationRequest', }, { - name: "evaluationResults", - type: "quickfixes:EvaluationResults", + name: 'evaluationResults', + type: 'quickfixes:EvaluationResults', }, { - name: "proposalRequest", - type: "quickfixes:ProposalRequest", + name: 'proposalRequest', + type: 'quickfixes:ProposalRequest', }, { - name: "proposalResult", - type: "quickfixes:ProposalResult", + name: 'proposalResult', + type: 'quickfixes:ProposalResult', }, ], complexType: [ { - name: "EvaluationRequest", + name: 'EvaluationRequest', sequence: { element: [ { - name: "affectedObjects", - type: "quickfixes:AffectedObjectsWithSource", - minOccurs: "0", - maxOccurs: "1", + name: 'affectedObjects', + type: 'quickfixes:AffectedObjectsWithSource', + minOccurs: '0', + maxOccurs: '1', }, ], }, }, { - name: "EvaluationResults", + name: 'EvaluationResults', sequence: { element: [ { - name: "evaluationResult", - type: "quickfixes:EvaluationResult", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'evaluationResult', + type: 'quickfixes:EvaluationResult', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "EvaluationResult", + name: 'EvaluationResult', sequence: { element: [ { - ref: "adtcore:objectReference", - minOccurs: "1", - maxOccurs: "1", + ref: 'adtcore:objectReference', + minOccurs: '1', + maxOccurs: '1', }, { - name: "userContent", - type: "xsd:string", - minOccurs: "0", - maxOccurs: "1", + name: 'userContent', + type: 'xsd:string', + minOccurs: '0', + maxOccurs: '1', }, { - name: "affectedObjects", - type: "quickfixes:AffectedObjectsWithoutSource", - minOccurs: "0", - maxOccurs: "1", + name: 'affectedObjects', + type: 'quickfixes:AffectedObjectsWithoutSource', + minOccurs: '0', + maxOccurs: '1', }, ], }, }, { - name: "AffectedObjectsWithoutSource", + name: 'AffectedObjectsWithoutSource', sequence: { element: [ { - ref: "adtcore:objectReference", - minOccurs: "0", - maxOccurs: "unbounded", + ref: 'adtcore:objectReference', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "ProposalRequest", + name: 'ProposalRequest', sequence: { element: [ { - name: "input", - type: "quickfixes:Unit", - minOccurs: "1", - maxOccurs: "1", + name: 'input', + type: 'quickfixes:Unit', + minOccurs: '1', + maxOccurs: '1', }, { - name: "affectedObjects", - type: "quickfixes:AffectedObjectsWithSource", - minOccurs: "0", - maxOccurs: "1", + name: 'affectedObjects', + type: 'quickfixes:AffectedObjectsWithSource', + minOccurs: '0', + maxOccurs: '1', }, { - name: "userContent", - type: "xsd:string", - minOccurs: "0", - maxOccurs: "1", + name: 'userContent', + type: 'xsd:string', + minOccurs: '0', + maxOccurs: '1', }, ], }, }, { - name: "AffectedObjectsWithSource", + name: 'AffectedObjectsWithSource', sequence: { element: [ { - name: "unit", - type: "quickfixes:Unit", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'unit', + type: 'quickfixes:Unit', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "ProposalResult", + name: 'ProposalResult', sequence: { element: [ { - name: "deltas", - type: "quickfixes:Deltas", - minOccurs: "1", - maxOccurs: "1", + name: 'deltas', + type: 'quickfixes:Deltas', + minOccurs: '1', + maxOccurs: '1', }, { - name: "selection", - type: "adtcore:AdtObjectReference", - minOccurs: "0", - maxOccurs: "1", + name: 'selection', + type: 'adtcore:AdtObjectReference', + minOccurs: '0', + maxOccurs: '1', }, { - name: "variableSourceStates", - type: "quickfixes:VariableSourceStates", - minOccurs: "0", - maxOccurs: "1", + name: 'variableSourceStates', + type: 'quickfixes:VariableSourceStates', + minOccurs: '0', + maxOccurs: '1', }, { - name: "statusMessages", - type: "quickfixes:StatusMessages", - minOccurs: "0", - maxOccurs: "1", + name: 'statusMessages', + type: 'quickfixes:StatusMessages', + minOccurs: '0', + maxOccurs: '1', }, ], }, }, { - name: "Deltas", + name: 'Deltas', sequence: { element: [ { - name: "unit", - type: "quickfixes:Unit", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'unit', + type: 'quickfixes:Unit', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "Unit", + name: 'Unit', sequence: { element: [ { - name: "content", - type: "xsd:string", - minOccurs: "1", - maxOccurs: "1", + name: 'content', + type: 'xsd:string', + minOccurs: '1', + maxOccurs: '1', }, { - ref: "adtcore:objectReference", - minOccurs: "1", - maxOccurs: "1", + ref: 'adtcore:objectReference', + minOccurs: '1', + maxOccurs: '1', }, { - ref: "atom:link", - minOccurs: "0", - maxOccurs: "unbounded", + ref: 'atom:link', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "VariableSourceStates", + name: 'VariableSourceStates', sequence: { element: [ { - ref: "adtcore:objectReferences", - minOccurs: "0", - maxOccurs: "unbounded", + ref: 'adtcore:objectReferences', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, attribute: [ { - name: "keepCursor", - type: "xsd:boolean", - use: "optional", + name: 'keepCursor', + type: 'xsd:boolean', + use: 'optional', }, ], }, { - name: "StatusMessages", + name: 'StatusMessages', sequence: { element: [ { - name: "statusMessage", - type: "quickfixes:StatusMessage", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'statusMessage', + type: 'quickfixes:StatusMessage', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "StatusMessage", + name: 'StatusMessage', attribute: [ { - name: "severity", - type: "quickfixes:StatusSeverity", - use: "required", + name: 'severity', + type: 'quickfixes:StatusSeverity', + use: 'required', }, { - name: "message", - type: "xsd:string", - use: "required", + name: 'message', + type: 'xsd:string', + use: 'required', }, { - name: "id", - type: "xsd:string", - use: "optional", + name: 'id', + type: 'xsd:string', + use: 'optional', }, ], }, ], simpleType: [ { - name: "StatusSeverity", + name: 'StatusSeverity', restriction: { - base: "xsd:string", + base: 'xsd:string', enumeration: [ { - value: "info", + value: 'info', }, { - value: "warning", + value: 'warning', }, ], }, diff --git a/packages/adt-schemas/src/schemas/generated/schemas/sap/templatelink.ts b/packages/adt-schemas/src/schemas/generated/schemas/sap/templatelink.ts index 7b56d973..2d18fb7c 100644 --- a/packages/adt-schemas/src/schemas/generated/schemas/sap/templatelink.ts +++ b/packages/adt-schemas/src/schemas/generated/schemas/sap/templatelink.ts @@ -1,51 +1,51 @@ /** * Auto-generated schema from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen * Source: xsd/sap/templatelink.xsd */ export default { $xmlns: { - ecore: "http://www.eclipse.org/emf/2002/Ecore", - xsd: "http://www.w3.org/2001/XMLSchema", - xml: "http://www.w3.org/XML/1998/namespace", - adtcomp: "http://www.sap.com/adt/compatibility", + ecore: 'http://www.eclipse.org/emf/2002/Ecore', + xsd: 'http://www.w3.org/2001/XMLSchema', + xml: 'http://www.w3.org/XML/1998/namespace', + adtcomp: 'http://www.sap.com/adt/compatibility', }, - targetNamespace: "http://www.sap.com/adt/compatibility", - attributeFormDefault: "unqualified", - elementFormDefault: "qualified", - "xml:lang": "en", + targetNamespace: 'http://www.sap.com/adt/compatibility', + attributeFormDefault: 'unqualified', + elementFormDefault: 'qualified', + 'xml:lang': 'en', element: [ { - name: "templateLink", - type: "adtcomp:linkType", + name: 'templateLink', + type: 'adtcomp:linkType', }, ], complexType: [ { - name: "linkType", + name: 'linkType', mixed: true, attribute: [ { - name: "template", - type: "xsd:string", - use: "required", + name: 'template', + type: 'xsd:string', + use: 'required', }, { - name: "rel", - type: "xsd:string", - use: "required", + name: 'rel', + type: 'xsd:string', + use: 'required', }, { - name: "type", - type: "xsd:string", - use: "optional", + name: 'type', + type: 'xsd:string', + use: 'optional', }, { - name: "title", - type: "xsd:string", - use: "optional", + name: 'title', + type: 'xsd:string', + use: 'optional', }, ], }, diff --git a/packages/adt-schemas/src/schemas/generated/schemas/sap/traces.ts b/packages/adt-schemas/src/schemas/generated/schemas/sap/traces.ts index fcfa1d0e..1f1f5a2c 100644 --- a/packages/adt-schemas/src/schemas/generated/schemas/sap/traces.ts +++ b/packages/adt-schemas/src/schemas/generated/schemas/sap/traces.ts @@ -1,6 +1,6 @@ /** * Auto-generated schema from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen * Source: xsd/sap/traces.xsd */ @@ -9,606 +9,604 @@ import adtcore from './adtcore'; export default { $xmlns: { - adtcore: "http://www.sap.com/adt/core", - ecore: "http://www.eclipse.org/emf/2002/Ecore", - xsd: "http://www.w3.org/2001/XMLSchema", - sxt: "http://www.sap.com/adt/crosstrace/traces", + adtcore: 'http://www.sap.com/adt/core', + ecore: 'http://www.eclipse.org/emf/2002/Ecore', + xsd: 'http://www.w3.org/2001/XMLSchema', + sxt: 'http://www.sap.com/adt/crosstrace/traces', }, - $imports: [ - adtcore, - ], - targetNamespace: "http://www.sap.com/adt/crosstrace/traces", - attributeFormDefault: "qualified", - elementFormDefault: "qualified", + $imports: [adtcore], + targetNamespace: 'http://www.sap.com/adt/crosstrace/traces', + attributeFormDefault: 'qualified', + elementFormDefault: 'qualified', element: [ { - name: "activations", - type: "sxt:Activations", + name: 'activations', + type: 'sxt:Activations', }, { - name: "activation", - type: "sxt:Activation", + name: 'activation', + type: 'sxt:Activation', }, { - name: "traces", - type: "sxt:Traces", + name: 'traces', + type: 'sxt:Traces', }, { - name: "trace", - type: "sxt:Trace", + name: 'trace', + type: 'sxt:Trace', }, { - name: "records", - type: "sxt:Records", + name: 'records', + type: 'sxt:Records', }, { - name: "uriMapping", - type: "sxt:UriMapping", + name: 'uriMapping', + type: 'sxt:UriMapping', }, ], complexType: [ { - name: "Activations", + name: 'Activations', sequence: { element: [ { - name: "activation", - type: "sxt:Activation", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'activation', + type: 'sxt:Activation', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "Activation", + name: 'Activation', sequence: { element: [ { - name: "activationId", - type: "xsd:string", - minOccurs: "1", - maxOccurs: "1", + name: 'activationId', + type: 'xsd:string', + minOccurs: '1', + maxOccurs: '1', }, { - name: "deletionTime", - type: "xsd:dateTime", - minOccurs: "1", - maxOccurs: "1", + name: 'deletionTime', + type: 'xsd:dateTime', + minOccurs: '1', + maxOccurs: '1', }, { - name: "description", - type: "xsd:string", - minOccurs: "1", - maxOccurs: "1", + name: 'description', + type: 'xsd:string', + minOccurs: '1', + maxOccurs: '1', }, { - name: "enabled", - type: "xsd:boolean", - minOccurs: "1", - maxOccurs: "1", + name: 'enabled', + type: 'xsd:boolean', + minOccurs: '1', + maxOccurs: '1', }, { - name: "userFilter", - type: "xsd:string", - minOccurs: "1", - maxOccurs: "1", + name: 'userFilter', + type: 'xsd:string', + minOccurs: '1', + maxOccurs: '1', }, { - name: "serverFilter", - type: "xsd:string", - minOccurs: "1", - maxOccurs: "1", + name: 'serverFilter', + type: 'xsd:string', + minOccurs: '1', + maxOccurs: '1', }, { - name: "requestTypeFilter", - type: "xsd:string", - minOccurs: "1", - maxOccurs: "1", + name: 'requestTypeFilter', + type: 'xsd:string', + minOccurs: '1', + maxOccurs: '1', }, { - name: "requestNameFilter", - type: "xsd:string", - minOccurs: "1", - maxOccurs: "1", + name: 'requestNameFilter', + type: 'xsd:string', + minOccurs: '1', + maxOccurs: '1', }, { - name: "sensitiveDataAllowed", - type: "xsd:boolean", - minOccurs: "1", - maxOccurs: "1", + name: 'sensitiveDataAllowed', + type: 'xsd:boolean', + minOccurs: '1', + maxOccurs: '1', }, { - name: "createUser", - type: "xsd:string", - minOccurs: "1", - maxOccurs: "1", + name: 'createUser', + type: 'xsd:string', + minOccurs: '1', + maxOccurs: '1', }, { - name: "createTime", - type: "xsd:dateTime", - minOccurs: "1", - maxOccurs: "1", + name: 'createTime', + type: 'xsd:dateTime', + minOccurs: '1', + maxOccurs: '1', }, { - name: "changeUser", - type: "xsd:string", - minOccurs: "1", - maxOccurs: "1", + name: 'changeUser', + type: 'xsd:string', + minOccurs: '1', + maxOccurs: '1', }, { - name: "changeTime", - type: "xsd:dateTime", - minOccurs: "1", - maxOccurs: "1", + name: 'changeTime', + type: 'xsd:dateTime', + minOccurs: '1', + maxOccurs: '1', }, { - name: "components", - type: "sxt:Components", - minOccurs: "1", - maxOccurs: "1", + name: 'components', + type: 'sxt:Components', + minOccurs: '1', + maxOccurs: '1', }, { - name: "numberOfTraces", - type: "xsd:int", - minOccurs: "0", - maxOccurs: "1", + name: 'numberOfTraces', + type: 'xsd:int', + minOccurs: '0', + maxOccurs: '1', }, { - name: "maxNumberOfTraces", - type: "xsd:int", - minOccurs: "0", - maxOccurs: "1", + name: 'maxNumberOfTraces', + type: 'xsd:int', + minOccurs: '0', + maxOccurs: '1', }, { - name: "noContent", - type: "xsd:boolean", - minOccurs: "0", - maxOccurs: "1", + name: 'noContent', + type: 'xsd:boolean', + minOccurs: '0', + maxOccurs: '1', }, ], }, }, { - name: "Components", + name: 'Components', sequence: { element: [ { - name: "component", - type: "sxt:Component", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'component', + type: 'sxt:Component', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "Component", + name: 'Component', sequence: { element: [ { - name: "component", - type: "xsd:string", - minOccurs: "1", - maxOccurs: "1", + name: 'component', + type: 'xsd:string', + minOccurs: '1', + maxOccurs: '1', }, { - name: "traceLevel", - type: "xsd:int", - minOccurs: "1", - maxOccurs: "1", + name: 'traceLevel', + type: 'xsd:int', + minOccurs: '1', + maxOccurs: '1', }, ], }, }, { - name: "Traces", + name: 'Traces', sequence: { element: [ { - name: "trace", - type: "sxt:Trace", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'trace', + type: 'sxt:Trace', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "ComponentNames", + name: 'ComponentNames', sequence: { element: [ { - name: "componentName", - type: "xsd:string", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'componentName', + type: 'xsd:string', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "RecordsSummary", + name: 'RecordsSummary', sequence: { element: [ { - name: "componentNames", - type: "sxt:ComponentNames", - minOccurs: "0", - maxOccurs: "1", + name: 'componentNames', + type: 'sxt:ComponentNames', + minOccurs: '0', + maxOccurs: '1', }, { - name: "numberOfRecords", - type: "xsd:int", - minOccurs: "1", - maxOccurs: "1", + name: 'numberOfRecords', + type: 'xsd:int', + minOccurs: '1', + maxOccurs: '1', }, { - name: "minRecordsTimestamp", - type: "xsd:dateTime", - minOccurs: "1", - maxOccurs: "1", + name: 'minRecordsTimestamp', + type: 'xsd:dateTime', + minOccurs: '1', + maxOccurs: '1', }, { - name: "maxRecordsTimestamp", - type: "xsd:dateTime", - minOccurs: "1", - maxOccurs: "1", + name: 'maxRecordsTimestamp', + type: 'xsd:dateTime', + minOccurs: '1', + maxOccurs: '1', }, { - name: "contentSize", - type: "xsd:int", - minOccurs: "1", - maxOccurs: "1", + name: 'contentSize', + type: 'xsd:int', + minOccurs: '1', + maxOccurs: '1', }, ], }, }, { - name: "Trace", + name: 'Trace', sequence: { element: [ { - name: "traceId", - type: "xsd:string", - minOccurs: "1", - maxOccurs: "1", + name: 'traceId', + type: 'xsd:string', + minOccurs: '1', + maxOccurs: '1', }, { - name: "user", - type: "xsd:string", - minOccurs: "1", - maxOccurs: "1", + name: 'user', + type: 'xsd:string', + minOccurs: '1', + maxOccurs: '1', }, { - name: "server", - type: "xsd:string", - minOccurs: "1", - maxOccurs: "1", + name: 'server', + type: 'xsd:string', + minOccurs: '1', + maxOccurs: '1', }, { - name: "creationTime", - type: "xsd:dateTime", - minOccurs: "1", - maxOccurs: "1", + name: 'creationTime', + type: 'xsd:dateTime', + minOccurs: '1', + maxOccurs: '1', }, { - name: "description", - type: "xsd:string", - minOccurs: "1", - maxOccurs: "1", + name: 'description', + type: 'xsd:string', + minOccurs: '1', + maxOccurs: '1', }, { - name: "deletionTime", - type: "xsd:dateTime", - minOccurs: "1", - maxOccurs: "1", + name: 'deletionTime', + type: 'xsd:dateTime', + minOccurs: '1', + maxOccurs: '1', }, { - name: "requestType", - type: "xsd:string", - minOccurs: "1", - maxOccurs: "1", + name: 'requestType', + type: 'xsd:string', + minOccurs: '1', + maxOccurs: '1', }, { - name: "requestName", - type: "xsd:string", - minOccurs: "1", - maxOccurs: "1", + name: 'requestName', + type: 'xsd:string', + minOccurs: '1', + maxOccurs: '1', }, { - name: "eppTransactionId", - type: "xsd:string", - minOccurs: "1", - maxOccurs: "1", + name: 'eppTransactionId', + type: 'xsd:string', + minOccurs: '1', + maxOccurs: '1', }, { - name: "eppRootContextId", - type: "xsd:string", - minOccurs: "1", - maxOccurs: "1", + name: 'eppRootContextId', + type: 'xsd:string', + minOccurs: '1', + maxOccurs: '1', }, { - name: "eppConnectionId", - type: "xsd:string", - minOccurs: "1", - maxOccurs: "1", + name: 'eppConnectionId', + type: 'xsd:string', + minOccurs: '1', + maxOccurs: '1', }, { - name: "eppConnectionCounter", - type: "xsd:int", - minOccurs: "1", - maxOccurs: "1", + name: 'eppConnectionCounter', + type: 'xsd:int', + minOccurs: '1', + maxOccurs: '1', }, { - name: "properties", - type: "sxt:Properties", - minOccurs: "1", - maxOccurs: "1", + name: 'properties', + type: 'sxt:Properties', + minOccurs: '1', + maxOccurs: '1', }, { - name: "activation", - type: "sxt:Activation", - minOccurs: "0", - maxOccurs: "1", + name: 'activation', + type: 'sxt:Activation', + minOccurs: '0', + maxOccurs: '1', }, { - name: "recordsSummary", - type: "sxt:RecordsSummary", - minOccurs: "0", - maxOccurs: "1", + name: 'recordsSummary', + type: 'sxt:RecordsSummary', + minOccurs: '0', + maxOccurs: '1', }, { - name: "originalImportMetadata", - type: "sxt:ImportMetadata", - minOccurs: "0", - maxOccurs: "1", + name: 'originalImportMetadata', + type: 'sxt:ImportMetadata', + minOccurs: '0', + maxOccurs: '1', }, ], }, }, { - name: "Options", + name: 'Options', attribute: [ { - name: "noSensitiveData", - type: "xsd:boolean", + name: 'noSensitiveData', + type: 'xsd:boolean', }, { - name: "callStackOffset", - type: "xsd:int", + name: 'callStackOffset', + type: 'xsd:int', }, { - name: "fullCallStack", - type: "xsd:boolean", + name: 'fullCallStack', + type: 'xsd:boolean', }, { - name: "highlighting", - type: "xsd:string", + name: 'highlighting', + type: 'xsd:string', }, ], }, { - name: "Properties", + name: 'Properties', sequence: { element: [ { - name: "property", - type: "sxt:Property", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'property', + type: 'sxt:Property', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "ImportMetadata", + name: 'ImportMetadata', sequence: { element: [ { - name: "originalTraceId", - type: "xsd:string", + name: 'originalTraceId', + type: 'xsd:string', }, { - name: "originalTraceSystem", - type: "xsd:string", + name: 'originalTraceSystem', + type: 'xsd:string', }, { - name: "originalTraceClient", - type: "xsd:string", + name: 'originalTraceClient', + type: 'xsd:string', }, { - name: "originalTraceServer", - type: "xsd:string", + name: 'originalTraceServer', + type: 'xsd:string', }, { - name: "originalTraceUser", - type: "xsd:string", + name: 'originalTraceUser', + type: 'xsd:string', }, { - name: "originalChangeUser", - type: "xsd:string", + name: 'originalChangeUser', + type: 'xsd:string', }, { - name: "originalCreateUser", - type: "xsd:string", + name: 'originalCreateUser', + type: 'xsd:string', }, { - name: "originalHeaderUserAttributeDev", - type: "xsd:string", + name: 'originalHeaderUserAttributeDev', + type: 'xsd:string', }, { - name: "originalHeaderTimestamp", - type: "xsd:dateTime", + name: 'originalHeaderTimestamp', + type: 'xsd:dateTime', }, ], }, }, { - name: "Property", + name: 'Property', sequence: { element: [ { - name: "component", - type: "xsd:string", - minOccurs: "1", - maxOccurs: "1", + name: 'component', + type: 'xsd:string', + minOccurs: '1', + maxOccurs: '1', }, { - name: "key", - type: "xsd:string", - minOccurs: "1", - maxOccurs: "1", + name: 'key', + type: 'xsd:string', + minOccurs: '1', + maxOccurs: '1', }, { - name: "value", - type: "xsd:string", - minOccurs: "1", - maxOccurs: "1", + name: 'value', + type: 'xsd:string', + minOccurs: '1', + maxOccurs: '1', }, ], }, }, { - name: "Records", + name: 'Records', sequence: { element: [ { - name: "record", - type: "sxt:Record", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'record', + type: 'sxt:Record', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, }, { - name: "Record", + name: 'Record', sequence: { element: [ { - name: "traceId", - type: "xsd:string", - minOccurs: "1", - maxOccurs: "1", + name: 'traceId', + type: 'xsd:string', + minOccurs: '1', + maxOccurs: '1', }, { - name: "recordNumber", - type: "xsd:int", - minOccurs: "1", - maxOccurs: "1", + name: 'recordNumber', + type: 'xsd:int', + minOccurs: '1', + maxOccurs: '1', }, { - name: "parentNumber", - type: "xsd:int", - minOccurs: "0", - maxOccurs: "1", + name: 'parentNumber', + type: 'xsd:int', + minOccurs: '0', + maxOccurs: '1', }, { - name: "creationTime", - type: "xsd:dateTime", - minOccurs: "1", - maxOccurs: "1", + name: 'creationTime', + type: 'xsd:dateTime', + minOccurs: '1', + maxOccurs: '1', }, { - name: "traceComponent", - type: "xsd:string", - minOccurs: "0", - maxOccurs: "1", + name: 'traceComponent', + type: 'xsd:string', + minOccurs: '0', + maxOccurs: '1', }, { - name: "traceObject", - type: "xsd:string", - minOccurs: "0", - maxOccurs: "1", + name: 'traceObject', + type: 'xsd:string', + minOccurs: '0', + maxOccurs: '1', }, { - name: "traceProcedure", - type: "xsd:string", - minOccurs: "0", - maxOccurs: "1", + name: 'traceProcedure', + type: 'xsd:string', + minOccurs: '0', + maxOccurs: '1', }, { - name: "traceLevel", - type: "xsd:int", - minOccurs: "1", - maxOccurs: "1", + name: 'traceLevel', + type: 'xsd:int', + minOccurs: '1', + maxOccurs: '1', }, { - name: "callStack", - type: "xsd:string", - minOccurs: "0", - maxOccurs: "1", + name: 'callStack', + type: 'xsd:string', + minOccurs: '0', + maxOccurs: '1', }, { - name: "message", - type: "xsd:string", - minOccurs: "0", - maxOccurs: "1", + name: 'message', + type: 'xsd:string', + minOccurs: '0', + maxOccurs: '1', }, { - name: "contentType", - type: "xsd:string", - minOccurs: "0", - maxOccurs: "1", + name: 'contentType', + type: 'xsd:string', + minOccurs: '0', + maxOccurs: '1', }, { - name: "hierarchyType", - type: "xsd:string", - minOccurs: "0", - maxOccurs: "1", + name: 'hierarchyType', + type: 'xsd:string', + minOccurs: '0', + maxOccurs: '1', }, { - name: "hierarchyNumber", - type: "xsd:int", - minOccurs: "0", - maxOccurs: "1", + name: 'hierarchyNumber', + type: 'xsd:int', + minOccurs: '0', + maxOccurs: '1', }, { - name: "hierarchiesLevel", - type: "xsd:int", - minOccurs: "0", - maxOccurs: "1", + name: 'hierarchiesLevel', + type: 'xsd:int', + minOccurs: '0', + maxOccurs: '1', }, { - name: "content", - type: "xsd:string", - minOccurs: "0", - maxOccurs: "1", + name: 'content', + type: 'xsd:string', + minOccurs: '0', + maxOccurs: '1', }, { - name: "contentLength", - type: "xsd:int", - minOccurs: "0", - maxOccurs: "1", + name: 'contentLength', + type: 'xsd:int', + minOccurs: '0', + maxOccurs: '1', }, { - name: "properties", - type: "sxt:Properties", - minOccurs: "0", - maxOccurs: "1", + name: 'properties', + type: 'sxt:Properties', + minOccurs: '0', + maxOccurs: '1', }, { - name: "options", - type: "sxt:Options", - minOccurs: "0", - maxOccurs: "1", + name: 'options', + type: 'sxt:Options', + minOccurs: '0', + maxOccurs: '1', }, { - name: "processedObjects", - type: "xsd:string", - minOccurs: "0", - maxOccurs: "1", + name: 'processedObjects', + type: 'xsd:string', + minOccurs: '0', + maxOccurs: '1', }, ], }, }, { - name: "UriMapping", + name: 'UriMapping', sequence: { element: [ { - ref: "adtcore:objectReference", + ref: 'adtcore:objectReference', }, ], }, diff --git a/packages/adt-schemas/src/schemas/generated/schemas/sap/transportmanagment.ts b/packages/adt-schemas/src/schemas/generated/schemas/sap/transportmanagment.ts index 3b224d13..c4e60528 100644 --- a/packages/adt-schemas/src/schemas/generated/schemas/sap/transportmanagment.ts +++ b/packages/adt-schemas/src/schemas/generated/schemas/sap/transportmanagment.ts @@ -1,6 +1,6 @@ /** * Auto-generated schema from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen * Source: xsd/sap/transportmanagment.xsd */ @@ -11,353 +11,349 @@ import checkrun from './checkrun'; export default { $xmlns: { - adtcore: "http://www.sap.com/adt/core", - chkrun: "http://www.sap.com/adt/checkrun", - tm: "http://www.sap.com/cts/adt/tm", - ecore: "http://www.eclipse.org/emf/2002/Ecore", - atom: "http://www.w3.org/2005/Atom", - xs: "http://www.w3.org/2001/XMLSchema", + adtcore: 'http://www.sap.com/adt/core', + chkrun: 'http://www.sap.com/adt/checkrun', + tm: 'http://www.sap.com/cts/adt/tm', + ecore: 'http://www.eclipse.org/emf/2002/Ecore', + atom: 'http://www.w3.org/2005/Atom', + xs: 'http://www.w3.org/2001/XMLSchema', }, - $imports: [ - atom, - adtcore, - checkrun, - ], - targetNamespace: "http://www.sap.com/cts/adt/tm", - attributeFormDefault: "qualified", - elementFormDefault: "qualified", + $imports: [atom, adtcore, checkrun], + targetNamespace: 'http://www.sap.com/cts/adt/tm', + attributeFormDefault: 'qualified', + elementFormDefault: 'qualified', element: [ { - name: "root", - type: "tm:root", + name: 'root', + type: 'tm:root', }, ], complexType: [ { - name: "ProjectProvider", + name: 'ProjectProvider', abstract: true, }, { - name: "Adaptable", + name: 'Adaptable', abstract: true, }, { - name: "root", + name: 'root', sequence: { element: [ { - name: "workbench", - type: "tm:workbench", + name: 'workbench', + type: 'tm:workbench', }, { - name: "customizing", - type: "tm:customizing", + name: 'customizing', + type: 'tm:customizing', }, { - name: "releasereports", - type: "chkrun:CheckReportList", + name: 'releasereports', + type: 'chkrun:CheckReportList', }, ], }, attribute: [ { - name: "targetuser", - type: "xs:string", + name: 'targetuser', + type: 'xs:string', }, { - name: "useraction", - type: "xs:string", + name: 'useraction', + type: 'xs:string', }, { - name: "releasetimestamp", - type: "xs:string", + name: 'releasetimestamp', + type: 'xs:string', }, { - name: "releaseobjlock", - type: "xs:string", + name: 'releaseobjlock', + type: 'xs:string', }, { - name: "number", - type: "xs:string", + name: 'number', + type: 'xs:string', }, { - name: "desc", - type: "xs:string", + name: 'desc', + type: 'xs:string', }, { - name: "uri", - type: "xs:string", + name: 'uri', + type: 'xs:string', }, ], }, { - name: "workbench", + name: 'workbench', sequence: { element: [ { - name: "target", - type: "tm:target", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'target', + type: 'tm:target', + minOccurs: '0', + maxOccurs: 'unbounded', }, { - name: "modifiable", - type: "tm:modifiable", + name: 'modifiable', + type: 'tm:modifiable', }, { - name: "relstarted", - type: "tm:relstarted", + name: 'relstarted', + type: 'tm:relstarted', }, { - name: "released", - type: "tm:released", + name: 'released', + type: 'tm:released', }, ], }, attribute: [ { - name: "category", - type: "xs:string", + name: 'category', + type: 'xs:string', }, ], }, { - name: "modifiable", + name: 'modifiable', sequence: { element: [ { - name: "request", - type: "tm:request", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'request', + type: 'tm:request', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, attribute: [ { - name: "status", - type: "xs:string", + name: 'status', + type: 'xs:string', }, ], }, { - name: "relstarted", + name: 'relstarted', sequence: { element: [ { - name: "request", - type: "tm:request", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'request', + type: 'tm:request', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, attribute: [ { - name: "status", - type: "xs:string", + name: 'status', + type: 'xs:string', }, ], }, { - name: "released", + name: 'released', sequence: { element: [ { - name: "request", - type: "tm:request", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'request', + type: 'tm:request', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, attribute: [ { - name: "status", - type: "xs:string", + name: 'status', + type: 'xs:string', }, ], }, { - name: "customizing", + name: 'customizing', sequence: { element: [ { - name: "target", - type: "tm:target", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'target', + type: 'tm:target', + minOccurs: '0', + maxOccurs: 'unbounded', }, { - name: "modifiable", - type: "tm:modifiable", + name: 'modifiable', + type: 'tm:modifiable', }, { - name: "relstarted", - type: "tm:relstarted", + name: 'relstarted', + type: 'tm:relstarted', }, { - name: "released", - type: "tm:released", + name: 'released', + type: 'tm:released', }, ], }, attribute: [ { - name: "category", - type: "xs:string", + name: 'category', + type: 'xs:string', }, ], }, { - name: "target", + name: 'target', sequence: { element: [ { - name: "modifiable", - type: "tm:modifiable", + name: 'modifiable', + type: 'tm:modifiable', }, { - name: "relstarted", - type: "tm:relstarted", + name: 'relstarted', + type: 'tm:relstarted', }, { - name: "released", - type: "tm:released", + name: 'released', + type: 'tm:released', }, ], }, attribute: [ { - name: "name", - type: "xs:string", + name: 'name', + type: 'xs:string', }, { - name: "desc", - type: "xs:string", + name: 'desc', + type: 'xs:string', }, ], }, { - name: "request", + name: 'request', sequence: { element: [ { - name: "task", - type: "tm:task", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'task', + type: 'tm:task', + minOccurs: '0', + maxOccurs: 'unbounded', }, { - ref: "atom:link", - minOccurs: "0", - maxOccurs: "unbounded", + ref: 'atom:link', + minOccurs: '0', + maxOccurs: 'unbounded', }, { - name: "abap_object", - type: "tm:abap_object", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'abap_object', + type: 'tm:abap_object', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, attribute: [ { - name: "number", - type: "xs:string", + name: 'number', + type: 'xs:string', }, { - name: "owner", - type: "xs:string", + name: 'owner', + type: 'xs:string', }, { - name: "desc", - type: "xs:string", + name: 'desc', + type: 'xs:string', }, { - name: "status", - type: "xs:string", + name: 'status', + type: 'xs:string', }, { - name: "uri", - type: "xs:string", + name: 'uri', + type: 'xs:string', }, ], }, { - name: "task", + name: 'task', sequence: { element: [ { - name: "abap_object", - type: "tm:abap_object", - minOccurs: "0", - maxOccurs: "unbounded", + name: 'abap_object', + type: 'tm:abap_object', + minOccurs: '0', + maxOccurs: 'unbounded', }, { - ref: "atom:link", - minOccurs: "0", - maxOccurs: "unbounded", + ref: 'atom:link', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, attribute: [ { - name: "number", - type: "xs:string", + name: 'number', + type: 'xs:string', }, { - name: "owner", - type: "xs:string", + name: 'owner', + type: 'xs:string', }, { - name: "desc", - type: "xs:string", + name: 'desc', + type: 'xs:string', }, { - name: "status", - type: "xs:string", + name: 'status', + type: 'xs:string', }, { - name: "uri", - type: "xs:string", + name: 'uri', + type: 'xs:string', }, ], }, { - name: "abap_object", + name: 'abap_object', attribute: [ { - name: "pgmid", - type: "xs:string", + name: 'pgmid', + type: 'xs:string', }, { - name: "type", - type: "xs:string", + name: 'type', + type: 'xs:string', }, { - name: "name", - type: "xs:string", + name: 'name', + type: 'xs:string', }, { - name: "wbtype", - type: "xs:string", + name: 'wbtype', + type: 'xs:string', }, { - name: "uri", - type: "xs:string", + name: 'uri', + type: 'xs:string', }, { - name: "dummy_uri", - type: "xs:string", + name: 'dummy_uri', + type: 'xs:string', }, { - name: "obj_info", - type: "xs:string", + name: 'obj_info', + type: 'xs:string', }, { - name: "obj_desc", - type: "xs:string", + name: 'obj_desc', + type: 'xs:string', }, ], }, diff --git a/packages/adt-schemas/src/schemas/generated/schemas/sap/transportsearch.ts b/packages/adt-schemas/src/schemas/generated/schemas/sap/transportsearch.ts index c3a7b3b6..1308bd3e 100644 --- a/packages/adt-schemas/src/schemas/generated/schemas/sap/transportsearch.ts +++ b/packages/adt-schemas/src/schemas/generated/schemas/sap/transportsearch.ts @@ -1,6 +1,6 @@ /** * Auto-generated schema from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen * Source: xsd/sap/transportsearch.xsd */ @@ -10,159 +10,156 @@ import Ecore from './Ecore'; export default { $xmlns: { - atom: "http://www.w3.org/2005/Atom", - ecore: "http://www.eclipse.org/emf/2002/Ecore", - transports: "http://www.sap.com/cts/adt/transports/search", - xsd: "http://www.w3.org/2001/XMLSchema", + atom: 'http://www.w3.org/2005/Atom', + ecore: 'http://www.eclipse.org/emf/2002/Ecore', + transports: 'http://www.sap.com/cts/adt/transports/search', + xsd: 'http://www.w3.org/2001/XMLSchema', }, - $imports: [ - atom, - Ecore, - ], - targetNamespace: "http://www.sap.com/cts/adt/transports/search", + $imports: [atom, Ecore], + targetNamespace: 'http://www.sap.com/cts/adt/transports/search', element: [ { - name: "searchresults", - type: "transports:searchresults", + name: 'searchresults', + type: 'transports:searchresults', }, ], complexType: [ { - name: "requests", + name: 'requests', sequence: { element: [ { - name: "request", - type: "transports:request", - minOccurs: "0", - maxOccurs: "unbounded", - form: "qualified", + name: 'request', + type: 'transports:request', + minOccurs: '0', + maxOccurs: 'unbounded', + form: 'qualified', }, ], }, }, { - name: "request", + name: 'request', sequence: { element: [ { - ref: "atom:link", - minOccurs: "0", - maxOccurs: "unbounded", + ref: 'atom:link', + minOccurs: '0', + maxOccurs: 'unbounded', }, { - name: "tasks", - type: "xsd:anyURI", - minOccurs: "0", - form: "qualified", + name: 'tasks', + type: 'xsd:anyURI', + minOccurs: '0', + form: 'qualified', }, ], }, attribute: [ { - name: "number", - type: "ecore:EString", - form: "qualified", + name: 'number', + type: 'ecore:EString', + form: 'qualified', }, { - name: "owner", - type: "ecore:EString", - form: "qualified", + name: 'owner', + type: 'ecore:EString', + form: 'qualified', }, { - name: "description", - type: "ecore:EString", - form: "qualified", + name: 'description', + type: 'ecore:EString', + form: 'qualified', }, { - name: "type", - type: "ecore:EString", - form: "qualified", + name: 'type', + type: 'ecore:EString', + form: 'qualified', }, { - name: "target", - type: "ecore:EString", - form: "qualified", + name: 'target', + type: 'ecore:EString', + form: 'qualified', }, { - name: "status", - type: "ecore:EString", - form: "qualified", + name: 'status', + type: 'ecore:EString', + form: 'qualified', }, ], }, { - name: "tasks", + name: 'tasks', sequence: { element: [ { - name: "task", - type: "xsd:anyURI", - minOccurs: "0", - maxOccurs: "unbounded", - form: "qualified", + name: 'task', + type: 'xsd:anyURI', + minOccurs: '0', + maxOccurs: 'unbounded', + form: 'qualified', }, ], }, }, { - name: "task", + name: 'task', sequence: { element: [ { - ref: "atom:link", - minOccurs: "0", - maxOccurs: "unbounded", + ref: 'atom:link', + minOccurs: '0', + maxOccurs: 'unbounded', }, ], }, attribute: [ { - name: "number", - type: "ecore:EString", - form: "qualified", + name: 'number', + type: 'ecore:EString', + form: 'qualified', }, { - name: "owner", - type: "ecore:EString", - form: "qualified", + name: 'owner', + type: 'ecore:EString', + form: 'qualified', }, { - name: "description", - type: "ecore:EString", - form: "qualified", + name: 'description', + type: 'ecore:EString', + form: 'qualified', }, { - name: "type", - type: "ecore:EString", - form: "qualified", + name: 'type', + type: 'ecore:EString', + form: 'qualified', }, { - name: "status", - type: "ecore:EString", - form: "qualified", + name: 'status', + type: 'ecore:EString', + form: 'qualified', }, { - name: "parent", - type: "xsd:anyURI", + name: 'parent', + type: 'xsd:anyURI', }, ], }, { - name: "searchresults", + name: 'searchresults', sequence: { element: [ { - name: "requests", - type: "xsd:anyURI", - minOccurs: "0", - form: "qualified", + name: 'requests', + type: 'xsd:anyURI', + minOccurs: '0', + form: 'qualified', }, { - name: "tasks", - type: "xsd:anyURI", - minOccurs: "0", - form: "qualified", + name: 'tasks', + type: 'xsd:anyURI', + minOccurs: '0', + form: 'qualified', }, ], }, diff --git a/packages/adt-schemas/src/schemas/generated/schemas/sap/xml.ts b/packages/adt-schemas/src/schemas/generated/schemas/sap/xml.ts index f372b743..dc032137 100644 --- a/packages/adt-schemas/src/schemas/generated/schemas/sap/xml.ts +++ b/packages/adt-schemas/src/schemas/generated/schemas/sap/xml.ts @@ -1,55 +1,55 @@ /** * Auto-generated schema from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen * Source: xsd/sap/xml.xsd */ export default { $xmlns: { - xs: "http://www.w3.org/2001/XMLSchema", + xs: 'http://www.w3.org/2001/XMLSchema', }, - targetNamespace: "http://www.w3.org/XML/1998/namespace", - "xml:lang": "en", + targetNamespace: 'http://www.w3.org/XML/1998/namespace', + 'xml:lang': 'en', attribute: [ { - name: "lang", - type: "xs:language", + name: 'lang', + type: 'xs:language', }, { - name: "space", - "default": "preserve", + name: 'space', + default: 'preserve', simpleType: { restriction: { - base: "xs:NCName", + base: 'xs:NCName', enumeration: [ { - value: "default", + value: 'default', }, { - value: "preserve", + value: 'preserve', }, ], }, }, }, { - name: "base", - type: "xs:anyURI", + name: 'base', + type: 'xs:anyURI', }, ], attributeGroup: [ { - name: "specialAttrs", + name: 'specialAttrs', attribute: [ { - ref: "xml:base", + ref: 'xml:base', }, { - ref: "xml:lang", + ref: 'xml:lang', }, { - ref: "xml:space", + ref: 'xml:space', }, ], }, diff --git a/packages/adt-schemas/src/schemas/generated/types/custom/transportfind.types.ts b/packages/adt-schemas/src/schemas/generated/types/custom/transportfind.types.ts index d9f09e7a..4987ea73 100644 --- a/packages/adt-schemas/src/schemas/generated/types/custom/transportfind.types.ts +++ b/packages/adt-schemas/src/schemas/generated/types/custom/transportfind.types.ts @@ -6,23 +6,23 @@ */ export type TransportfindSchema = { - abap: { - values: { - DATA: { - CTS_REQ_HEADER?: { - TRKORR: string; - TRFUNCTION: string; - TRSTATUS: string; - TARSYSTEM: string; - AS4USER: string; - AS4DATE: string; - AS4TIME: string; - AS4TEXT: string; - CLIENT: string; - REPOID: string; - }[]; - }; - }; - version?: string; + abap: { + values: { + DATA: { + CTS_REQ_HEADER?: { + TRKORR: string; + TRFUNCTION: string; + TRSTATUS: string; + TARSYSTEM: string; + AS4USER: string; + AS4DATE: string; + AS4TIME: string; + AS4TEXT: string; + CLIENT: string; + REPOID: string; + }[]; + }; }; + version?: string; + }; }; diff --git a/packages/adt-schemas/src/schemas/generated/types/custom/transportmanagmentCreate.types.ts b/packages/adt-schemas/src/schemas/generated/types/custom/transportmanagmentCreate.types.ts index 690a4147..25950c10 100644 --- a/packages/adt-schemas/src/schemas/generated/types/custom/transportmanagmentCreate.types.ts +++ b/packages/adt-schemas/src/schemas/generated/types/custom/transportmanagmentCreate.types.ts @@ -6,16 +6,16 @@ */ export type TransportmanagmentCreateSchema = { - root: { - request?: { - task?: { - owner?: string; - }[]; - desc?: string; - type?: string; - target?: string; - cts_project?: string; - }; - useraction?: string; + root: { + request?: { + task?: { + owner?: string; + }[]; + desc?: string; + type?: string; + target?: string; + cts_project?: string; }; + useraction?: string; + }; }; diff --git a/packages/adt-schemas/src/schemas/generated/types/sap/atc.types.ts b/packages/adt-schemas/src/schemas/generated/types/sap/atc.types.ts index a531aed4..c625e643 100644 --- a/packages/adt-schemas/src/schemas/generated/types/sap/atc.types.ts +++ b/packages/adt-schemas/src/schemas/generated/types/sap/atc.types.ts @@ -6,37 +6,37 @@ */ export type AtcSchema = { - customizing: { - properties: { - property?: { - name?: string; - value?: string; - }[]; - }; - exemption: { - reasons: { - reason?: { - id?: string; - justificationMandatory?: boolean; - title?: string; - }[]; - }; - validities: { - validity?: { - id?: string; - value?: string; - }[]; - }; - }; - scaAttributes?: { - scaAttribute?: { - attributeName?: string; - refAttributeName?: string; - label?: boolean; - labelS?: string; - labelM?: string; - labelL?: string; - }[]; - }; + customizing: { + properties: { + property?: { + name?: string; + value?: string; + }[]; }; + exemption: { + reasons: { + reason?: { + id?: string; + justificationMandatory?: boolean; + title?: string; + }[]; + }; + validities: { + validity?: { + id?: string; + value?: string; + }[]; + }; + }; + scaAttributes?: { + scaAttribute?: { + attributeName?: string; + refAttributeName?: string; + label?: boolean; + labelS?: string; + labelM?: string; + labelL?: string; + }[]; + }; + }; }; diff --git a/packages/adt-schemas/src/schemas/generated/types/sap/atcinfo.types.ts b/packages/adt-schemas/src/schemas/generated/types/sap/atcinfo.types.ts index aee7130c..e9ea9f22 100644 --- a/packages/adt-schemas/src/schemas/generated/types/sap/atcinfo.types.ts +++ b/packages/adt-schemas/src/schemas/generated/types/sap/atcinfo.types.ts @@ -6,8 +6,8 @@ */ export type AtcinfoSchema = { - info: { - type: string; - description: string; - }; + info: { + type: string; + description: string; + }; }; diff --git a/packages/adt-schemas/src/schemas/generated/types/sap/atctagdescription.types.ts b/packages/adt-schemas/src/schemas/generated/types/sap/atctagdescription.types.ts index 6ca8fec7..f2366f24 100644 --- a/packages/adt-schemas/src/schemas/generated/types/sap/atctagdescription.types.ts +++ b/packages/adt-schemas/src/schemas/generated/types/sap/atctagdescription.types.ts @@ -6,15 +6,15 @@ */ export type AtctagdescriptionSchema = { - descriptionTags: { - tagWithDescription?: { - name: string; - descriptions: { - description?: { - value?: string; - description?: string; - }[]; - }; + descriptionTags: { + tagWithDescription?: { + name: string; + descriptions: { + description?: { + value?: string; + description?: string; }[]; - }; + }; + }[]; + }; }; diff --git a/packages/adt-schemas/src/schemas/generated/types/sap/atom.types.ts b/packages/adt-schemas/src/schemas/generated/types/sap/atom.types.ts index cb55fece..2ae5e4fb 100644 --- a/packages/adt-schemas/src/schemas/generated/types/sap/atom.types.ts +++ b/packages/adt-schemas/src/schemas/generated/types/sap/atom.types.ts @@ -6,14 +6,14 @@ */ export type AtomSchema = { - link: { - href: string; - rel?: string; - type?: string; - hreflang?: string; - title?: string; - length?: number; - etag?: string; - _text?: string; - }; + link: { + href: string; + rel?: string; + type?: string; + hreflang?: string; + title?: string; + length?: number; + etag?: string; + _text?: string; + }; }; diff --git a/packages/adt-schemas/src/schemas/generated/types/sap/debugger.types.ts b/packages/adt-schemas/src/schemas/generated/types/sap/debugger.types.ts index 8ec365a8..4cf993c3 100644 --- a/packages/adt-schemas/src/schemas/generated/types/sap/debugger.types.ts +++ b/packages/adt-schemas/src/schemas/generated/types/sap/debugger.types.ts @@ -6,24 +6,24 @@ */ export type DebuggerSchema = { - memorySizes: { - abap?: { - staticVariables: number; - stackUsed: number; - stackAllocated: number; - dynamicMemoryObjectsUsed: number; - dynamicMemoryObjectsAllocated: number; - }; - internal: { - used: number; - allocated: number; - peakUsed: number; - }; - external: { - used: number; - allocated: number; - peakUsed: number; - numberOfInternalSessions: number; - }; + memorySizes: { + abap?: { + staticVariables: number; + stackUsed: number; + stackAllocated: number; + dynamicMemoryObjectsUsed: number; + dynamicMemoryObjectsAllocated: number; }; + internal: { + used: number; + allocated: number; + peakUsed: number; + }; + external: { + used: number; + allocated: number; + peakUsed: number; + numberOfInternalSessions: number; + }; + }; }; diff --git a/packages/adt-schemas/src/schemas/generated/types/sap/templatelink.types.ts b/packages/adt-schemas/src/schemas/generated/types/sap/templatelink.types.ts index 9e4e2cd6..1f9725a9 100644 --- a/packages/adt-schemas/src/schemas/generated/types/sap/templatelink.types.ts +++ b/packages/adt-schemas/src/schemas/generated/types/sap/templatelink.types.ts @@ -6,11 +6,11 @@ */ export type TemplatelinkSchema = { - templateLink: { - template: string; - rel: string; - type?: string; - title?: string; - _text?: string; - }; + templateLink: { + template: string; + rel: string; + type?: string; + title?: string; + _text?: string; + }; }; diff --git a/packages/adt-schemas/src/schemas/generated/types/sap/transportsearch.types.ts b/packages/adt-schemas/src/schemas/generated/types/sap/transportsearch.types.ts index f3056d2d..099384ab 100644 --- a/packages/adt-schemas/src/schemas/generated/types/sap/transportsearch.types.ts +++ b/packages/adt-schemas/src/schemas/generated/types/sap/transportsearch.types.ts @@ -6,8 +6,8 @@ */ export type TransportsearchSchema = { - searchresults: { - requests?: string; - tasks?: string; - }; + searchresults: { + requests?: string; + tasks?: string; + }; }; diff --git a/packages/adt-schemas/src/schemas/index.ts b/packages/adt-schemas/src/schemas/index.ts index 0e696c13..eae37f35 100644 --- a/packages/adt-schemas/src/schemas/index.ts +++ b/packages/adt-schemas/src/schemas/index.ts @@ -1,13 +1,13 @@ /** * ADT Schemas Index (v2 - W3C format) - * + * * Structure: * generated/ * index.ts - Typed schemas + types re-export * schemas/sap/ - SAP schema literals from XSD * schemas/custom/ - Custom schema literals from XSD * types/ - TypeScript interfaces (204 types) - * + * * Usage: * import { classes, AbapClass } from '@abapify/adt-schemas'; * const data = classes.parse(xml); // data is AbapClass diff --git a/packages/adt-schemas/src/schemas/json/index.ts b/packages/adt-schemas/src/schemas/json/index.ts index 014475af..4eba5fd5 100644 --- a/packages/adt-schemas/src/schemas/json/index.ts +++ b/packages/adt-schemas/src/schemas/json/index.ts @@ -1,10 +1,10 @@ /** * JSON Schemas Index - * + * * Zod schemas for SAP ADT JSON endpoints. */ -export { +export { systeminformationSchema, systeminformation, type SystemInformation, diff --git a/packages/adt-schemas/tests/scenarios/systeminformation.test.ts b/packages/adt-schemas/tests/scenarios/systeminformation.test.ts index c87dd95f..5af8b4b1 100644 --- a/packages/adt-schemas/tests/scenarios/systeminformation.test.ts +++ b/packages/adt-schemas/tests/scenarios/systeminformation.test.ts @@ -1,6 +1,9 @@ import { describe, it, expect } from 'vitest'; import { fixtures } from 'adt-fixtures'; -import { systeminformation, type SystemInformationJson } from '../../src/schemas/index'; +import { + systeminformation, + type SystemInformationJson, +} from '../../src/schemas/index'; /** * Test for System Information response - GET /sap/bc/adt/core/http/systeminformation diff --git a/packages/adt-tui/scripts/generate-routes.ts b/packages/adt-tui/scripts/generate-routes.ts index aebe47b0..882c3062 100644 --- a/packages/adt-tui/scripts/generate-routes.ts +++ b/packages/adt-tui/scripts/generate-routes.ts @@ -1,14 +1,14 @@ /** * Route Generator - * + * * Scans src/pages/ directory and generates a route manifest. * Run this at build time to create _routes.ts - * + * * File naming conventions: * - [slug].tsx → Dynamic segment (matches any value) * - index.tsx → Directory root * - name.tsx → Static segment - * + * * Example: * src/pages/sap/bc/adt/cts/transportrequests/[slug].tsx * → Pattern: /sap/bc/adt/cts/transportrequests/:slug @@ -68,9 +68,10 @@ function pathToRoute(filePath: string): RouteInfo | null { // [slug] → :slug (for pattern display) // [slug] → [^/]+ (for regex) const pattern = '/' + routePath.replace(/\[([^\]]+)\]/g, ':$1'); - const regexPattern = '^/' + routePath - .replace(/\[([^\]]+)\]/g, '([^/]+)') - .replace(/\//g, '\\/') + '$'; + const regexPattern = + '^/' + + routePath.replace(/\[([^\]]+)\]/g, '([^/]+)').replace(/\//g, '\\/') + + '$'; const isDynamic = routePath.includes('['); @@ -100,11 +101,13 @@ function generateRoutesFile(routes: RouteInfo[]): string { .join('\n'); const routeEntries = routes - .map((r, i) => ` { + .map( + (r, i) => ` { pattern: '${r.pattern}', regex: new RegExp('${r.regex}'), page: Page${i}, - }`) + }`, + ) .join(',\n'); return `/** @@ -143,7 +146,7 @@ export function matchRoute(url: string): Route | null { console.log('Scanning pages directory:', PAGES_DIR); const routes = scanDirectory(PAGES_DIR); console.log(`Found ${routes.length} routes:`); -routes.forEach(r => console.log(` ${r.pattern} → ${r.importPath}`)); +routes.forEach((r) => console.log(` ${r.pattern} → ${r.importPath}`)); const content = generateRoutesFile(routes); writeFileSync(OUTPUT_FILE, content); diff --git a/packages/adt-tui/src/lib/parser.ts b/packages/adt-tui/src/lib/parser.ts index efe450d1..0e10e376 100644 --- a/packages/adt-tui/src/lib/parser.ts +++ b/packages/adt-tui/src/lib/parser.ts @@ -18,7 +18,10 @@ const parser = new XMLParser({ /** * Extract all atom:link elements from parsed XML object */ -function extractLinks(obj: unknown, links: HypermediaLink[] = []): HypermediaLink[] { +function extractLinks( + obj: unknown, + links: HypermediaLink[] = [], +): HypermediaLink[] { if (!obj || typeof obj !== 'object') return links; if (Array.isArray(obj)) { @@ -29,7 +32,7 @@ function extractLinks(obj: unknown, links: HypermediaLink[] = []): HypermediaLin const record = obj as Record; const linkKey = Object.keys(record).find( - (k) => k === 'atom:link' || k === 'link' || k.endsWith(':link') + (k) => k === 'atom:link' || k === 'link' || k.endsWith(':link'), ); if (linkKey) { @@ -127,7 +130,10 @@ export function categorizeLinks(links: HypermediaLink[]): { for (const link of links) { if (link.rel === 'self') { self.push(link); - } else if (link.rel.includes('/relations/') || link.rel.includes('adturi')) { + } else if ( + link.rel.includes('/relations/') || + link.rel.includes('adturi') + ) { actions.push(link); } else { navigation.push(link); diff --git a/packages/adt-tui/src/pages/_routes.ts b/packages/adt-tui/src/pages/_routes.ts index 32bd7786..495d1df4 100644 --- a/packages/adt-tui/src/pages/_routes.ts +++ b/packages/adt-tui/src/pages/_routes.ts @@ -15,9 +15,9 @@ export interface Route { export const routes: Route[] = [ { pattern: '/sap/bc/adt/cts/transportrequests/:slug', - regex: new RegExp('^/sap\/bc\/adt\/cts\/transportrequests\/([^\/]+)$'), + regex: new RegExp('^/sap/bc/adt/cts/transportrequests/([^/]+)$'), page: Page0, - } + }, ]; /** diff --git a/packages/adt-tui/src/pages/index.ts b/packages/adt-tui/src/pages/index.ts index d411a0f0..33934fcd 100644 --- a/packages/adt-tui/src/pages/index.ts +++ b/packages/adt-tui/src/pages/index.ts @@ -1,10 +1,10 @@ /** * Page Functions - * + * * Pages return PageResult for framework-driven rendering. * Organized using file-based routing: * - src/pages/sap/bc/adt/cts/transportrequests/[slug].tsx - * + * * See _routes.ts for the generated route manifest. */ diff --git a/packages/adt-tui/src/pages/sap/bc/adt/cts/transportrequests/[slug].tsx b/packages/adt-tui/src/pages/sap/bc/adt/cts/transportrequests/[slug].tsx index 366bfdef..e45ae6e3 100644 --- a/packages/adt-tui/src/pages/sap/bc/adt/cts/transportrequests/[slug].tsx +++ b/packages/adt-tui/src/pages/sap/bc/adt/cts/transportrequests/[slug].tsx @@ -6,7 +6,11 @@ */ import { Box, Text } from 'ink'; -import type { PageProps, PageResult, MenuItem } from '../../../../../../lib/types'; +import type { + PageProps, + PageResult, + MenuItem, +} from '../../../../../../lib/types'; import { load } from './[slug].loader'; /** @@ -115,17 +119,22 @@ export function transportPage({ url, response }: PageProps): PageResult | null { {transport.target && ( - Target: {transport.target} {transport.targetDesc && `(${transport.targetDesc})`} + Target: {transport.target}{' '} + {transport.targetDesc && `(${transport.targetDesc})`} )} {transport.tasks.length > 0 && ( - 📋 Tasks ({transport.tasks.length}): + + 📋 Tasks ({transport.tasks.length}): + )} {transport.objects.length > 0 && ( - 📦 Objects ({transport.objects.length}): + + 📦 Objects ({transport.objects.length}): + )} @@ -136,7 +145,8 @@ export function transportPage({ url, response }: PageProps): PageResult | null { title: `${isTask ? 'Task' : 'Transport Request'}: ${transport.number}`, icon: isTask ? '�' : '�', color: isTask ? 'yellow' : 'cyan', - subtitle: isTask && transport.parent ? `Parent: ${transport.parent}` : undefined, + subtitle: + isTask && transport.parent ? `Parent: ${transport.parent}` : undefined, content, menu, footer: '[o] XML in VS Code | [e] open in Eclipse ADT', diff --git a/packages/asjson-parser/eslint.config.js b/packages/asjson-parser/eslint.config.js index e2a15f2a..b7f62772 100644 --- a/packages/asjson-parser/eslint.config.js +++ b/packages/asjson-parser/eslint.config.js @@ -1,3 +1,3 @@ -import baseConfig from '../../eslint.config.js'; +import baseConfig from '../../eslint.config.mjs'; export default [...baseConfig]; diff --git a/packages/asjson-parser/rollup.config.js b/packages/asjson-parser/rollup.config.js index df8f3184..69eb8260 100644 --- a/packages/asjson-parser/rollup.config.js +++ b/packages/asjson-parser/rollup.config.js @@ -13,5 +13,5 @@ module.exports = withNx( // Provide additional rollup configuration here. See: https://rollupjs.org/configuration-options // e.g. // output: { sourcemap: true }, - } + }, ); diff --git a/packages/asjson-parser/tsconfig.json b/packages/asjson-parser/tsconfig.json index 2a3d8f84..0fce0683 100644 --- a/packages/asjson-parser/tsconfig.json +++ b/packages/asjson-parser/tsconfig.json @@ -1,6 +1,6 @@ { "extends": "../../tsconfig.base.json", - "compilerOptions": { + "compilerOptions": { "forceConsistentCasingInFileNames": true, "strict": true, "noImplicitOverride": true, diff --git a/packages/browser-auth/README.md b/packages/browser-auth/README.md index 980228fa..65b50c40 100644 --- a/packages/browser-auth/README.md +++ b/packages/browser-auth/README.md @@ -31,7 +31,11 @@ npm install @abapify/browser-auth This package is primarily used by browser adapter implementations. Direct usage: ```typescript -import { authenticate, testCredentials, toCookieHeader } from '@abapify/browser-auth'; +import { + authenticate, + testCredentials, + toCookieHeader, +} from '@abapify/browser-auth'; import type { BrowserAdapter } from '@abapify/browser-auth'; // Create your browser adapter (see BrowserAdapter interface) @@ -63,24 +67,26 @@ Performs browser-based SSO authentication. ```typescript async function authenticate( adapter: BrowserAdapter, - options: BrowserAuthOptions -): Promise + options: BrowserAuthOptions, +): Promise; ``` **Parameters:** + - `adapter` - Browser adapter implementing `BrowserAdapter` interface - `options` - Authentication options **Options:** + ```typescript interface BrowserAuthOptions { - url: string; // SAP system URL - headless?: boolean; // Hide browser (default: false) - timeout?: number; // Login timeout in ms (default: 300000) - userAgent?: string; // Custom user agent - requiredCookies?: string[]; // Cookie patterns to wait for + url: string; // SAP system URL + headless?: boolean; // Hide browser (default: false) + timeout?: number; // Login timeout in ms (default: 300000) + userAgent?: string; // Custom user agent + requiredCookies?: string[]; // Cookie patterns to wait for userDataDir?: string | boolean; // Session persistence path - ignoreHTTPSErrors?: boolean; // Ignore SSL errors (default: true) + ignoreHTTPSErrors?: boolean; // Ignore SSL errors (default: true) } ``` @@ -92,8 +98,8 @@ Tests if credentials are still valid by making a request to the SAP system. ```typescript async function testCredentials( - credentials: BrowserCredentials -): Promise + credentials: BrowserCredentials, +): Promise; ``` ### `toCookieHeader(credentials)` @@ -101,7 +107,7 @@ async function testCredentials( Converts credentials to a Cookie header string. ```typescript -function toCookieHeader(credentials: BrowserCredentials): string +function toCookieHeader(credentials: BrowserCredentials): string; ``` ### `toHeaders(credentials)` @@ -109,7 +115,7 @@ function toCookieHeader(credentials: BrowserCredentials): string Creates headers object with Cookie and User-Agent. ```typescript -function toHeaders(credentials: BrowserCredentials): Record +function toHeaders(credentials: BrowserCredentials): Record; ``` ## BrowserAdapter Interface @@ -158,13 +164,13 @@ The `requiredCookies` option supports wildcard patterns: ```typescript // Wait for any SAP session cookie -requiredCookies: ['SAP_SESSIONID_*'] +requiredCookies: ['SAP_SESSIONID_*']; // Wait for specific cookies -requiredCookies: ['SAP_SESSIONID_S0D_200', 'sap-usercontext'] +requiredCookies: ['SAP_SESSIONID_S0D_200', 'sap-usercontext']; // Multiple patterns -requiredCookies: ['SAP_SESSIONID_*', 'MYSAPSSO2', 'sap-usercontext'] +requiredCookies: ['SAP_SESSIONID_*', 'MYSAPSSO2', 'sap-usercontext']; ``` ### Utility Functions @@ -212,7 +218,11 @@ interface TestResult { Example: Creating a Selenium adapter ```typescript -import type { BrowserAdapter, CookieData, ResponseEvent } from '@abapify/browser-auth'; +import type { + BrowserAdapter, + CookieData, + ResponseEvent, +} from '@abapify/browser-auth'; import { Builder, Browser } from 'selenium-webdriver'; export function createSeleniumAdapter(): BrowserAdapter { @@ -221,9 +231,7 @@ export function createSeleniumAdapter(): BrowserAdapter { return { async launch(options) { - driver = await new Builder() - .forBrowser(Browser.CHROME) - .build(); + driver = await new Builder().forBrowser(Browser.CHROME).build(); }, async newPage() { @@ -236,15 +244,17 @@ export function createSeleniumAdapter(): BrowserAdapter { async getCookies(): Promise { const cookies = await driver?.manage().getCookies(); - return cookies?.map(c => ({ - name: c.name, - value: c.value, - domain: c.domain || '', - path: c.path || '/', - expires: c.expiry?.getTime(), - httpOnly: c.httpOnly, - secure: c.secure, - })) || []; + return ( + cookies?.map((c) => ({ + name: c.name, + value: c.value, + domain: c.domain || '', + path: c.path || '/', + expires: c.expiry?.getTime(), + httpOnly: c.httpOnly, + secure: c.secure, + })) || [] + ); }, // ... implement remaining methods diff --git a/packages/browser-auth/src/auth-core.ts b/packages/browser-auth/src/auth-core.ts index a8aaa1ed..604769e4 100644 --- a/packages/browser-auth/src/auth-core.ts +++ b/packages/browser-auth/src/auth-core.ts @@ -122,7 +122,9 @@ export async function authenticate( } }); - // Navigate - events are already set up + // Navigate - events are already set up; navigation errors are expected + // (auth flow handles results through response event listeners, not navigation result) + // eslint-disable-next-line @typescript-eslint/no-empty-function adapter.goto(targetUrl, { timeout: 30000 }).catch(() => {}); }); diff --git a/packages/browser-auth/src/index.ts b/packages/browser-auth/src/index.ts index 9e834880..da645b1f 100644 --- a/packages/browser-auth/src/index.ts +++ b/packages/browser-auth/src/index.ts @@ -1,12 +1,17 @@ /** * @abapify/browser-auth - * + * * Browser-based SSO authentication core. * Shared logic for Playwright and Puppeteer adapters. */ // Core authentication -export { authenticate, testCredentials, toCookieHeader, toHeaders } from './auth-core'; +export { + authenticate, + testCredentials, + toCookieHeader, + toHeaders, +} from './auth-core'; export type { AuthenticateOptions } from './auth-core'; // Types @@ -20,4 +25,8 @@ export type { } from './types'; // Utilities -export { matchesCookiePattern, cookieMatchesAny, resolveUserDataDir } from './utils'; +export { + matchesCookiePattern, + cookieMatchesAny, + resolveUserDataDir, +} from './utils'; diff --git a/packages/browser-auth/src/utils.ts b/packages/browser-auth/src/utils.ts index f03849e0..6fc79728 100644 --- a/packages/browser-auth/src/utils.ts +++ b/packages/browser-auth/src/utils.ts @@ -1,6 +1,6 @@ /** * Browser Auth Utilities - * + * * Cookie matching and path resolution utilities. */ @@ -12,7 +12,9 @@ const DEFAULT_USER_DATA_DIR = join(homedir(), '.adt', 'browser-profile'); /** * Resolve userDataDir configuration to an absolute path */ -export function resolveUserDataDir(userDataDir?: string | boolean): string | undefined { +export function resolveUserDataDir( + userDataDir?: string | boolean, +): string | undefined { if (userDataDir === true) { return DEFAULT_USER_DATA_DIR; } @@ -26,7 +28,10 @@ export function resolveUserDataDir(userDataDir?: string | boolean): string | und * Check if a cookie name matches a pattern (supports * wildcard) * @example matchesCookiePattern('SAP_SESSIONID_S0D_200', 'SAP_SESSIONID_*') // true */ -export function matchesCookiePattern(cookieName: string, pattern: string): boolean { +export function matchesCookiePattern( + cookieName: string, + pattern: string, +): boolean { if (!pattern.includes('*')) { return cookieName === pattern; } @@ -37,6 +42,9 @@ export function matchesCookiePattern(cookieName: string, pattern: string): boole /** * Check if a cookie matches any of the required patterns */ -export function cookieMatchesAny(cookieName: string, patterns: string[]): boolean { - return patterns.some(pattern => matchesCookiePattern(cookieName, pattern)); +export function cookieMatchesAny( + cookieName: string, + patterns: string[], +): boolean { + return patterns.some((pattern) => matchesCookiePattern(cookieName, pattern)); } diff --git a/packages/logger/src/loggers/console-logger.ts b/packages/logger/src/loggers/console-logger.ts index 3c311c46..4c068661 100644 --- a/packages/logger/src/loggers/console-logger.ts +++ b/packages/logger/src/loggers/console-logger.ts @@ -33,7 +33,9 @@ export class ConsoleLogger implements Logger { child(bindings: Record): Logger { const childPrefix = bindings.component || bindings.name || 'child'; - const newPrefix = this.prefix ? `${this.prefix}:${childPrefix}` : childPrefix; + const newPrefix = this.prefix + ? `${this.prefix}:${childPrefix}` + : childPrefix; return new ConsoleLogger(newPrefix); } diff --git a/packages/logger/src/loggers/noop-logger.ts b/packages/logger/src/loggers/noop-logger.ts index e987260a..de5fbdcb 100644 --- a/packages/logger/src/loggers/noop-logger.ts +++ b/packages/logger/src/loggers/noop-logger.ts @@ -5,11 +5,17 @@ import type { Logger } from '../types'; * Useful for testing or when logging is not needed */ export class NoOpLogger implements Logger { + // eslint-disable-next-line @typescript-eslint/no-empty-function trace(): void {} + // eslint-disable-next-line @typescript-eslint/no-empty-function debug(): void {} + // eslint-disable-next-line @typescript-eslint/no-empty-function info(): void {} + // eslint-disable-next-line @typescript-eslint/no-empty-function warn(): void {} + // eslint-disable-next-line @typescript-eslint/no-empty-function error(): void {} + // eslint-disable-next-line @typescript-eslint/no-empty-function fatal(): void {} child(): Logger { return this; diff --git a/packages/speci/README.md b/packages/speci/README.md index 9b89d164..89a8532b 100644 --- a/packages/speci/README.md +++ b/packages/speci/README.md @@ -29,7 +29,9 @@ import { parse, build, type XsdSchema, type InferXsd } from 'ts-xsd'; import { http } from 'speci/rest'; // ts-xsd schema with parse/build -const TransportSchema = { /* ... */ } as const satisfies XsdSchema; +const TransportSchema = { + /* ... */ +} as const satisfies XsdSchema; type Transport = InferXsd; const transportApi = { diff --git a/packages/speci/docs/body-inference.md b/packages/speci/docs/body-inference.md index af0374f1..d6e9b4f4 100644 --- a/packages/speci/docs/body-inference.md +++ b/packages/speci/docs/body-inference.md @@ -21,13 +21,13 @@ updateMainSource: (className: string, source: string) => ```typescript // ✅ Clean - body type declared, parameter inferred -updateMainSource: (className: string) => +updateMainSource: ((className: string) => adtHttp.put(`/classes/${className}/source`, { body: undefined as unknown as string, // Type declaration responses: { 200: undefined as unknown as void }, }), // Usage: TypeScript knows the signature is (className: string, body: string) - await client.updateMainSource('ZCL_TEST', sourceCode); + await client.updateMainSource('ZCL_TEST', sourceCode)); ``` ## Supported Patterns @@ -35,49 +35,49 @@ updateMainSource: (className: string) => ### Pattern 1: No Path Parameters ```typescript -createUser: () => +createUser: (() => http.post('/users', { body: UserSchema, // Inferrable responses: { 201: UserSchema }, }), // Signature: (body: User) => Promise - await client.createUser(userData); + await client.createUser(userData)); ``` ### Pattern 2: With Path Parameters ```typescript -updateUser: (id: number) => +updateUser: ((id: number) => http.put(`/users/${id}`, { body: UserSchema, // Inferrable responses: { 200: UserSchema }, }), // Signature: (id: number, body: User) => Promise - await client.updateUser(123, userData); + await client.updateUser(123, userData)); ``` ### Pattern 3: Plain Type Assertions ```typescript -updateSource: (className: string) => +updateSource: ((className: string) => http.put(`/classes/${className}/source`, { body: undefined as unknown as string, // Plain type responses: { 200: undefined as unknown as void }, }), // Signature: (className: string, body: string) => Promise - await client.updateSource('ZCL_TEST', sourceCode); + await client.updateSource('ZCL_TEST', sourceCode)); ``` ### Pattern 4: Manual Typing (Still Supported) ```typescript -createUser: (userData: User) => +createUser: ((userData: User) => http.post('/users', { body: userData, // Actual value, not schema responses: { 201: UserSchema }, }), // Signature: (userData: User) => Promise - await client.createUser(userData); + await client.createUser(userData)); ``` ## Tests diff --git a/packages/speci/examples/basic-usage.ts b/packages/speci/examples/basic-usage.ts index 5a7fa02d..17de95e1 100644 --- a/packages/speci/examples/basic-usage.ts +++ b/packages/speci/examples/basic-usage.ts @@ -175,7 +175,7 @@ async function demo() { console.error( `HTTP ${error.status}:`, error.payload.error, - error.payload.message + error.payload.message, ); } // Option 2: Use HttpError directly with generic diff --git a/packages/speci/examples/global-error-responses.ts b/packages/speci/examples/global-error-responses.ts index 30668185..bf41e915 100644 --- a/packages/speci/examples/global-error-responses.ts +++ b/packages/speci/examples/global-error-responses.ts @@ -85,7 +85,7 @@ async function demo() { console.error( `API Error [${error.status}]:`, error.payload.code, - error.payload.message + error.payload.message, ); } } diff --git a/packages/speci/src/core/types.ts b/packages/speci/src/core/types.ts index a712d686..7872442b 100644 --- a/packages/speci/src/core/types.ts +++ b/packages/speci/src/core/types.ts @@ -38,7 +38,7 @@ export interface OperationDescriptor { */ export type OperationFunction< TParams extends any[] = any[], - TDescriptor extends OperationDescriptor = OperationDescriptor + TDescriptor extends OperationDescriptor = OperationDescriptor, > = (...params: TParams) => TDescriptor; /** diff --git a/packages/speci/src/rest/body-inference.test.ts b/packages/speci/src/rest/body-inference.test.ts index b38dfe9c..a8948217 100644 --- a/packages/speci/src/rest/body-inference.test.ts +++ b/packages/speci/src/rest/body-inference.test.ts @@ -21,7 +21,7 @@ describe('Body Parameter Inference', () => { const mockAdapter: HttpAdapter = { request: async (): Promise => - ({ id: 1, name: 'Test', email: 'test@example.com' } as TResponse), + ({ id: 1, name: 'Test', email: 'test@example.com' }) as TResponse, }; describe('Pattern 1: Manual Parameter Typing (current working pattern)', () => { diff --git a/packages/speci/src/rest/client/create-client.ts b/packages/speci/src/rest/client/create-client.ts index 4338f3d3..93e0a209 100644 --- a/packages/speci/src/rest/client/create-client.ts +++ b/packages/speci/src/rest/client/create-client.ts @@ -42,7 +42,7 @@ function isInferrableSchema(value: any): boolean { */ function createMethod( config: ClientConfig, - operationFn: OperationFunction + operationFn: OperationFunction, ): any { const method = async (...args: any[]) => { // Execute the operation function with the provided args @@ -148,7 +148,7 @@ function createMethod( */ export function createClient>( contract: T, - config: ClientConfig + config: ClientConfig, ): RestClient { const client: any = {}; diff --git a/packages/speci/src/rest/client/types.ts b/packages/speci/src/rest/client/types.ts index 0308e256..80a625b8 100644 --- a/packages/speci/src/rest/client/types.ts +++ b/packages/speci/src/rest/client/types.ts @@ -22,7 +22,7 @@ export class HttpError extends Error { constructor( public readonly status: number, public readonly payload: TPayload, - message?: string + message?: string, ) { super(message || `HTTP ${status}`); this.name = 'HttpError'; @@ -52,7 +52,7 @@ export interface HttpAdapter { * Execute an HTTP request */ request( - options?: HttpRequestOptions + options?: HttpRequestOptions, ): Promise; } @@ -94,20 +94,21 @@ type IsUpdateMethod = TMethod extends 'PUT' | 'PATCH' ? true : false; * Only extracts if the body is an Inferrable schema * For PUT/PATCH methods, returns Partial since updates typically send partial data */ -type ExtractBodyType = TDescriptor extends RestEndpointDescriptor< - infer TMethod, - any, - infer TBody, - any -> - ? IsInferrableBody extends true - ? TBody extends { _infer?: infer U } - ? IsUpdateMethod extends true - ? Partial // PUT/PATCH: allow partial body - : U // POST: require full body +type ExtractBodyType = + TDescriptor extends RestEndpointDescriptor< + infer TMethod, + any, + infer TBody, + any + > + ? IsInferrableBody extends true + ? TBody extends { _infer?: infer U } + ? IsUpdateMethod extends true + ? Partial // PUT/PATCH: allow partial body + : U // POST: require full body + : never : never - : never - : never; + : never; /** * Build parameter list for a REST client method @@ -119,8 +120,8 @@ type BuildParams = ? ExtractBodyType> extends never ? ExtractParams // No body - use declared params : ExtractParams extends [] - ? [ExtractBodyType>] // Empty params + body - add body param - : [...ExtractParams, ExtractBodyType>] // Has params + body - append body + ? [ExtractBodyType>] // Empty params + body - add body param + : [...ExtractParams, ExtractBodyType>] // Has params + body - append body : ExtractParams; /** @@ -131,7 +132,9 @@ type BuildParams = * Automatically infers parameter types from body schema if present */ export type RestClientMethod = { - (...params: BuildParams): Promise< + ( + ...params: BuildParams + ): Promise< ExtractDescriptor extends RestEndpointDescriptor ? InferSuccessResponse> : never @@ -142,7 +145,7 @@ export type RestClientMethod = { : never; /** Check if error is from this endpoint */ isError( - error: unknown + error: unknown, ): error is HttpError< ExtractDescriptor extends RestEndpointDescriptor ? InferErrorResponse> @@ -158,6 +161,6 @@ export type RestClient> = { [K in keyof T]: T[K] extends OperationFunction ? RestClientMethod : T[K] extends Record - ? RestClient - : never; + ? RestClient + : never; }; diff --git a/packages/speci/src/rest/helpers.ts b/packages/speci/src/rest/helpers.ts index b199ae3b..dc409681 100644 --- a/packages/speci/src/rest/helpers.ts +++ b/packages/speci/src/rest/helpers.ts @@ -14,7 +14,7 @@ import type { */ export interface RestEndpointOptions< TBodySchema = unknown, - TResponses extends ResponseMap = ResponseMap + TResponses extends ResponseMap = ResponseMap, > { /** Request body schema - can be Inferrable schema or plain type */ body?: TBodySchema; @@ -35,10 +35,13 @@ export interface RestEndpointOptions< /** * HTTP helper object with optional global responses */ +// eslint-disable-next-line @typescript-eslint/no-empty-object-type type Http = { // GET - with shortcut syntax get: { - (path: string): RestEndpointDescriptor< + ( + path: string, + ): RestEndpointDescriptor< 'GET', string, never, @@ -47,7 +50,7 @@ type Http = { ( path: TPath, - options: Omit, 'body'> + options: Omit, 'body'>, ): RestEndpointDescriptor< 'GET', TPath, @@ -60,10 +63,10 @@ type Http = { post: < TPath extends string, TBody = unknown, - TResponses extends ResponseMap = ResponseMap + TResponses extends ResponseMap = ResponseMap, >( path: TPath, - options: RestEndpointOptions + options: RestEndpointOptions, ) => RestEndpointDescriptor< 'POST', TPath, @@ -75,10 +78,10 @@ type Http = { put: < TPath extends string, TBody = unknown, - TResponses extends ResponseMap = ResponseMap + TResponses extends ResponseMap = ResponseMap, >( path: TPath, - options: RestEndpointOptions + options: RestEndpointOptions, ) => RestEndpointDescriptor< 'PUT', TPath, @@ -90,10 +93,10 @@ type Http = { patch: < TPath extends string, TBody = unknown, - TResponses extends ResponseMap = ResponseMap + TResponses extends ResponseMap = ResponseMap, >( path: TPath, - options: RestEndpointOptions + options: RestEndpointOptions, ) => RestEndpointDescriptor< 'PATCH', TPath, @@ -103,7 +106,9 @@ type Http = { // DELETE - with shortcut syntax delete: { - (path: string): RestEndpointDescriptor< + ( + path: string, + ): RestEndpointDescriptor< 'DELETE', string, never, @@ -112,7 +117,7 @@ type Http = { ( path: TPath, - options: Omit, 'body'> + options: Omit, 'body'>, ): RestEndpointDescriptor< 'DELETE', TPath, @@ -123,7 +128,7 @@ type Http = { head: ( path: TPath, - options: Omit, 'body'> + options: Omit, 'body'>, ) => RestEndpointDescriptor< 'HEAD', TPath, @@ -133,7 +138,7 @@ type Http = { options: ( path: TPath, - options: Omit, 'body'> + options: Omit, 'body'>, ) => RestEndpointDescriptor< 'OPTIONS', TPath, @@ -168,8 +173,9 @@ type Http = { * // 400, 401, 500 are automatically added * }) */ +// eslint-disable-next-line @typescript-eslint/no-empty-object-type export function createHttp( - globalResponses?: TGlobalResponses + globalResponses?: TGlobalResponses, ): Http { const mergeResponses = (responses: any) => { if (!globalResponses) return responses; diff --git a/packages/speci/src/rest/inferrable.test.ts b/packages/speci/src/rest/inferrable.test.ts index e9d24e3e..1add9f7d 100644 --- a/packages/speci/src/rest/inferrable.test.ts +++ b/packages/speci/src/rest/inferrable.test.ts @@ -6,26 +6,35 @@ import { describe, it, expect } from 'vitest'; import { http, createClient } from './index'; -import { createInferrable, type Inferrable, type Serializable, type InferSchema } from './types'; +import { + createInferrable, + type Inferrable, + type Serializable, + type InferSchema, +} from './types'; import type { HttpAdapter } from './client/types'; // Test InferSchema with complex conditional types (like InferXsd) describe('InferSchema with complex types', () => { // Simulate InferXsd - a complex conditional type - type SimulatedInferXsd = T extends { root: string; elements: infer E } - ? E extends Record ? { data: string } : never - : {}; + type SimulatedInferXsd = T extends { root: string; elements: infer E } + ? E extends Record + ? { data: string } + : never + : // eslint-disable-next-line @typescript-eslint/no-empty-object-type + {}; // Simulate SpeciSchema - like adt-schemas does type SimulatedSpeciSchema = T & Serializable>; it('should infer type from Serializable with complex generic', () => { // This simulates what adt-schemas does + // eslint-disable-next-line @typescript-eslint/no-empty-object-type type Schema = SimulatedSpeciSchema<{ root: 'test'; elements: { foo: {} } }>; - + // InferSchema should extract the type from _infer type Inferred = InferSchema; - + // Should be { data: string }, not {} const test: Inferred = { data: 'hello' }; expect(test.data).toBe('hello'); @@ -34,9 +43,9 @@ describe('InferSchema with complex types', () => { it('should work with Inferrable directly', () => { type MyType = { id: number; name: string }; type Schema = Inferrable; - + type Inferred = InferSchema; - + const test: Inferred = { id: 1, name: 'test' }; expect(test.id).toBe(1); }); @@ -44,9 +53,9 @@ describe('InferSchema with complex types', () => { it('should work with Serializable (which extends Inferrable)', () => { type MyType = { id: number; name: string }; type Schema = Serializable; - + type Inferred = InferSchema; - + const test: Inferred = { id: 1, name: 'test' }; expect(test.id).toBe(1); }); diff --git a/packages/speci/src/rest/types.ts b/packages/speci/src/rest/types.ts index c85998b9..89cdeef5 100644 --- a/packages/speci/src/rest/types.ts +++ b/packages/speci/src/rest/types.ts @@ -65,7 +65,7 @@ export function createInferrable(): Inferrable { /** * Infer type from a schema - * + * * Uses _infer property from Inferrable (which Serializable extends). * Falls back to original type if no _infer property. * @@ -73,10 +73,9 @@ export function createInferrable(): Inferrable { * type A = InferSchema<{ _infer?: User }> // User * type B = InferSchema // string (fallback) */ -export type InferSchema = - T extends { _infer?: infer U } - ? NonNullable - : T; +export type InferSchema = T extends { _infer?: infer U } + ? NonNullable + : T; /** * Schema-like object - can be any schema library (Zod, JSON Schema, custom, etc.) @@ -114,7 +113,7 @@ export interface RestEndpointDescriptor< TMethod extends RestMethod = RestMethod, TPath extends string = string, TBodySchema = unknown, - TResponses extends ResponseMap = ResponseMap + TResponses extends ResponseMap = ResponseMap, > extends OperationDescriptor { /** HTTP method */ method: TMethod; @@ -172,7 +171,7 @@ export interface RestMetadata { */ export type RestOperationFunction< TParams extends any[] = any[], - TDescriptor extends RestEndpointDescriptor = RestEndpointDescriptor + TDescriptor extends RestEndpointDescriptor = RestEndpointDescriptor, > = (...params: TParams) => TDescriptor; /** @@ -190,7 +189,7 @@ export type RestContract = { */ export type ExtractResponse< T extends RestEndpointDescriptor, - Status extends keyof T['responses'] + Status extends keyof T['responses'], > = InferSchema; /** diff --git a/packages/speci/src/rest/url-params.test.ts b/packages/speci/src/rest/url-params.test.ts index cb907354..03d6c515 100644 --- a/packages/speci/src/rest/url-params.test.ts +++ b/packages/speci/src/rest/url-params.test.ts @@ -1,6 +1,6 @@ /** * Test: URL Path Parameters - * + * * Verifies that path parameters in template strings are correctly * interpolated into the final URL. */ @@ -57,7 +57,7 @@ describe('URL Path Parameters', () => { const client = createClient(contract, { baseUrl: 'http://test.com', - adapter: { request: async () => ({} as any) }, + adapter: { request: async () => ({}) as any }, }); // Type check: parameter should be string @@ -155,10 +155,10 @@ describe('URL Path Parameters', () => { // Verify URL has path param interpolated expect(capturedUrl).toBe('http://test.com/users/user-123/posts'); - + // Verify query params passed expect(capturedQuery).toEqual({ draft: 'true' }); - + // Verify body passed expect(capturedBody).toEqual(postData); }); @@ -174,11 +174,13 @@ describe('URL Path Parameters', () => { const client = createClient(contract, { baseUrl: 'http://test.com', - adapter: { request: async () => ({} as any) }, + adapter: { request: async () => ({}) as any }, }); // Type check: should have 2 parameters - userId (string) and body (CreatePostRequest) - expectTypeOf(client.createPost).parameters.toEqualTypeOf<[string, CreatePostRequest]>(); + expectTypeOf(client.createPost).parameters.toEqualTypeOf< + [string, CreatePostRequest] + >(); }); it('should infer correct response type', async () => { @@ -193,12 +195,13 @@ describe('URL Path Parameters', () => { const client = createClient(contract, { baseUrl: 'http://test.com', adapter: { - request: async () => ({ - id: 'post-789', - title: 'Test', - content: 'Content', - createdAt: '2024-01-01', - } as T), + request: async () => + ({ + id: 'post-789', + title: 'Test', + content: 'Content', + createdAt: '2024-01-01', + }) as T, }, }); diff --git a/packages/speci/src/rest/xsd-body-inference.test.ts b/packages/speci/src/rest/xsd-body-inference.test.ts index da58f42f..e05a261a 100644 --- a/packages/speci/src/rest/xsd-body-inference.test.ts +++ b/packages/speci/src/rest/xsd-body-inference.test.ts @@ -1,6 +1,6 @@ /** * Test: XSD Schema Body Inference - * + * * Verifies that ts-xsd schemas wrapped with speci's Serializable interface * correctly support automatic body type inference. */ @@ -26,13 +26,13 @@ describe('XSD Schema Body Inference', () => { // Mock schema that mimics transportmanagmentCreate const mockXsdSchema: Serializable = { _infer: undefined as unknown as TransportCreate, - parse: (xml: string) => ({} as TransportCreate), + parse: (xml: string) => ({}) as TransportCreate, build: (data: TransportCreate) => '', }; const mockAdapter: HttpAdapter = { request: async (): Promise => - ({ useraction: 'test', request: [] } as unknown as TResponse), + ({ useraction: 'test', request: [] }) as unknown as TResponse, }; describe('Pattern: No-param contract with Inferrable body schema', () => { @@ -81,13 +81,15 @@ describe('XSD Schema Body Inference', () => { const bodyData: TransportCreate = { useraction: 'newrequest', - request: [{ - desc: 'Test TR', - type: 'K', - target: 'LOCAL', - cts_project: '', - task: [], - }], + request: [ + { + desc: 'Test TR', + type: 'K', + target: 'LOCAL', + cts_project: '', + task: [], + }, + ], }; await client.create(bodyData); diff --git a/packages/speci/tsconfig.json b/packages/speci/tsconfig.json index db40b4a1..f81689ec 100644 --- a/packages/speci/tsconfig.json +++ b/packages/speci/tsconfig.json @@ -9,6 +9,5 @@ }, "include": ["src/**/*"], "exclude": ["node_modules", "dist", "**/*.test.ts", "**/*.spec.ts"], - "references": [ - ] + "references": [] } diff --git a/packages/ts-xsd/AGENTS.md b/packages/ts-xsd/AGENTS.md index 24352e34..047b0cd7 100644 --- a/packages/ts-xsd/AGENTS.md +++ b/packages/ts-xsd/AGENTS.md @@ -4,11 +4,11 @@ **Core XSD parser, builder, and type inference** - the foundation for all XSD-based packages. -| Module | Purpose | Key Exports | -|--------|---------|-------------| -| `xsd` | Parse/build XSD files | `parseXsd`, `buildXsd`, `Schema` | -| `infer` | Compile-time type inference | `InferSchema`, `InferElement` | -| `xml` | Parse/build XML with schemas | `parseXml`, `buildXml` | +| Module | Purpose | Key Exports | +| --------- | ---------------------------- | --------------------------------------------- | +| `xsd` | Parse/build XSD files | `parseXsd`, `buildXsd`, `Schema` | +| `infer` | Compile-time type inference | `InferSchema`, `InferElement` | +| `xml` | Parse/build XML with schemas | `parseXml`, `buildXml` | | `codegen` | Generate TypeScript from XSD | `generateSchemaLiteral`, `generateInterfaces` | ## 🚨 Critical Rules @@ -17,14 +17,15 @@ **NEVER** add properties that don't exist in [XMLSchema.xsd](https://www.w3.org/TR/xmlschema11-1/XMLSchema.xsd): -| ❌ WRONG | ✅ CORRECT | Reason | -|----------|-----------|--------| -| `attributes` | `attribute` | W3C uses singular | -| `elements` | `element` | W3C uses singular | -| `text` | `_text` | Not in XSD spec (use `_text` for mixed content) | -| Direct array for sequence | `ExplicitGroup` | Must match W3C structure | +| ❌ WRONG | ✅ CORRECT | Reason | +| ------------------------- | --------------- | ----------------------------------------------- | +| `attributes` | `attribute` | W3C uses singular | +| `elements` | `element` | W3C uses singular | +| `text` | `_text` | Not in XSD spec (use `_text` for mixed content) | +| Direct array for sequence | `ExplicitGroup` | Must match W3C structure | **Before ANY change to `types.ts`:** + 1. Find the type in [XMLSchema.xsd](https://www.w3.org/TR/xmlschema11-1/XMLSchema.xsd) 2. Match properties exactly (name, type, optionality) 3. Run `npx nx test ts-xsd` @@ -44,11 +45,11 @@ explicitGroup → ExplicitGroup Non-W3C properties are prefixed with `$` to clearly distinguish them from W3C XSD properties. -| Property | Type | Purpose | -|----------|------|---------| -| `$xmlns` | `{ [prefix: string]: string }` | **Namespace declarations** - Maps prefixes to namespace URIs. Extracted from `xmlns:*` attributes in XML. Required for resolving QName prefixes like `xs:string` or `adtcore:AdtObject`. | -| `$imports` | `Schema[]` | **Linked schemas** - Array of resolved imported schemas. Enables cross-schema type resolution. When type inference encounters `base: "adtcore:AdtObject"`, it searches `$imports` to find the `AdtObject` complexType. | -| `$filename` | `string` | **Source filename** - Original XSD filename (e.g., `classes.xsd`). Enables **backward rendering** - rebuilding XSD from schema objects with correct import references. | +| Property | Type | Purpose | +| ----------- | ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `$xmlns` | `{ [prefix: string]: string }` | **Namespace declarations** - Maps prefixes to namespace URIs. Extracted from `xmlns:*` attributes in XML. Required for resolving QName prefixes like `xs:string` or `adtcore:AdtObject`. | +| `$imports` | `Schema[]` | **Linked schemas** - Array of resolved imported schemas. Enables cross-schema type resolution. When type inference encounters `base: "adtcore:AdtObject"`, it searches `$imports` to find the `AdtObject` complexType. | +| `$filename` | `string` | **Source filename** - Original XSD filename (e.g., `classes.xsd`). Enables **backward rendering** - rebuilding XSD from schema objects with correct import references. | #### Why These Extensions? @@ -130,12 +131,12 @@ src/ ### Key Components -| Component | Purpose | -|-----------|---------| -| **Resolver** | Merges `$imports`, expands `complexContent/extension`, handles `substitutionGroup` | -| **Traverser** | OO traversal with real W3C XSD types (SchemaTraverser class) | -| **Walker** | Functional iteration over schema elements, types, groups | -| **Loader** | File-based XSD loading with automatic import resolution | +| Component | Purpose | +| ------------- | ---------------------------------------------------------------------------------- | +| **Resolver** | Merges `$imports`, expands `complexContent/extension`, handles `substitutionGroup` | +| **Traverser** | OO traversal with real W3C XSD types (SchemaTraverser class) | +| **Walker** | Functional iteration over schema elements, types, groups | +| **Loader** | File-based XSD loading with automatic import resolution | ## Key Type Definitions @@ -146,18 +147,18 @@ interface Schema { // Namespace targetNamespace?: string; elementFormDefault?: 'qualified' | 'unqualified'; - + // Declarations element?: TopLevelElement[]; complexType?: TopLevelComplexType[]; simpleType?: TopLevelSimpleType[]; group?: NamedGroup[]; attributeGroup?: NamedAttributeGroup[]; - + // Composition import?: Import[]; include?: Include[]; - + // Extensions (non-W3C) $xmlns?: { [prefix: string]: string }; $imports?: Schema[]; @@ -230,23 +231,23 @@ npx vitest run tests/unit/parse.test.ts ### Test Categories -| Test | Purpose | -|------|---------| -| `parse.test.ts` | XSD parsing | -| `build.test.ts` | XSD building | -| `roundtrip.test.ts` | Parse → Build → Parse | +| Test | Purpose | +| ----------------------- | ---------------------- | +| `parse.test.ts` | XSD parsing | +| `build.test.ts` | XSD building | +| `roundtrip.test.ts` | Parse → Build → Parse | | `w3c-roundtrip.test.ts` | Official XMLSchema.xsd | ## Common Mistakes -| Mistake | Consequence | Prevention | -|---------|-------------|------------| -| Inventing properties | Breaks W3C compliance | Check XMLSchema.xsd first | -| Renaming properties | Type inference fails | Use exact W3C names | -| Simplifying structures | Loses XSD semantics | Keep nested structure | -| Missing `as const` | Type inference fails | Always use `as const` | -| Circular type refs | TypeScript errors | Use `$imports` linking | -| Stack overflow in codegen | Infinite recursion | Cycle detection in `expandTypeToString` | +| Mistake | Consequence | Prevention | +| ------------------------- | --------------------- | --------------------------------------- | +| Inventing properties | Breaks W3C compliance | Check XMLSchema.xsd first | +| Renaming properties | Type inference fails | Use exact W3C names | +| Simplifying structures | Loses XSD semantics | Keep nested structure | +| Missing `as const` | Type inference fails | Always use `as const` | +| Circular type refs | TypeScript errors | Use `$imports` linking | +| Stack overflow in codegen | Infinite recursion | Cycle detection in `expandTypeToString` | ## Dependencies diff --git a/packages/ts-xsd/README.md b/packages/ts-xsd/README.md index ce3028d2..eff80ecb 100644 --- a/packages/ts-xsd/README.md +++ b/packages/ts-xsd/README.md @@ -8,12 +8,12 @@ `ts-xsd` is a comprehensive TypeScript library for working with W3C XSD schemas. It provides: -| Module | Purpose | -|--------|---------| -| **xsd** | Parse XSD files into typed `Schema` objects, build XSD from objects | -| **infer** | Compile-time TypeScript type inference from schema literals | -| **xml** | Parse/build XML documents using schema definitions | -| **codegen** | Generate TypeScript schema literals from XSD files | +| Module | Purpose | +| ----------- | ------------------------------------------------------------------- | +| **xsd** | Parse XSD files into typed `Schema` objects, build XSD from objects | +| **infer** | Compile-time TypeScript type inference from schema literals | +| **xml** | Parse/build XML documents using schema definitions | +| **codegen** | Generate TypeScript schema literals from XSD files | ### Key Features @@ -64,15 +64,17 @@ import type { InferSchema } from '@abapify/ts-xsd'; // Define schema as const literal const personSchema = { element: [{ name: 'person', type: 'PersonType' }], - complexType: [{ - name: 'PersonType', - sequence: { - element: [ - { name: 'name', type: 'xs:string' }, - { name: 'age', type: 'xs:int', minOccurs: 0 }, - ] - } - }] + complexType: [ + { + name: 'PersonType', + sequence: { + element: [ + { name: 'name', type: 'xs:string' }, + { name: 'age', type: 'xs:int', minOccurs: 0 }, + ], + }, + }, + ], } as const; // Infer TypeScript type at compile time @@ -117,9 +119,9 @@ Build an XSD XML string from a Schema object. ```typescript const xsd = buildXsd(schema, { - prefix: 'xsd', // Namespace prefix (default: 'xs') - pretty: true, // Pretty print (default: true) - indent: ' ' // Indentation (default: ' ') + prefix: 'xsd', // Namespace prefix (default: 'xs') + pretty: true, // Pretty print (default: true) + indent: ' ', // Indentation (default: ' ') }); ``` @@ -157,14 +159,14 @@ type Person = InferElement; #### Built-in Type Mapping -| XSD Type | TypeScript | -|----------|------------| -| `xs:string`, `xs:token`, `xs:NCName` | `string` | -| `xs:int`, `xs:integer`, `xs:decimal` | `number` | -| `xs:boolean` | `boolean` | -| `xs:date`, `xs:dateTime`, `xs:time` | `string` | -| `xs:anyURI`, `xs:QName` | `string` | -| `xs:anyType` | `unknown` | +| XSD Type | TypeScript | +| ------------------------------------ | ---------- | +| `xs:string`, `xs:token`, `xs:NCName` | `string` | +| `xs:int`, `xs:integer`, `xs:decimal` | `number` | +| `xs:boolean` | `boolean` | +| `xs:date`, `xs:dateTime`, `xs:time` | `string` | +| `xs:anyURI`, `xs:QName` | `string` | +| `xs:anyType` | `unknown` | ### XML Module @@ -194,7 +196,7 @@ Generate TypeScript schema literal from XSD content. const code = generateSchemaLiteral(xsdContent, { name: 'PersonSchema', features: { $xmlns: true, $imports: true }, - exclude: ['annotation'] + exclude: ['annotation'], }); // export default { ... } as const; ``` @@ -205,9 +207,9 @@ Generate TypeScript interfaces from parsed schema. Returns an object with `code` ```typescript const { code } = generateInterfaces(schema, { - flatten: true, // Inline all nested types (default: false) - addJsDoc: true, // Add JSDoc comments - rootTypeName: 'MySchema', // Custom root type name + flatten: true, // Inline all nested types (default: false) + addJsDoc: true, // Add JSDoc comments + rootTypeName: 'MySchema', // Custom root type name }); ``` @@ -221,22 +223,22 @@ interface Schema { targetNamespace?: string; elementFormDefault?: 'qualified' | 'unqualified'; attributeFormDefault?: 'qualified' | 'unqualified'; - + // Composition import?: Import[]; include?: Include[]; - + // Declarations element?: TopLevelElement[]; complexType?: TopLevelComplexType[]; simpleType?: TopLevelSimpleType[]; group?: NamedGroup[]; attributeGroup?: NamedAttributeGroup[]; - + // Extensions (non-W3C, prefixed with $) $xmlns?: { [prefix: string]: string }; - $imports?: Schema[]; // Resolved imported schemas - $filename?: string; // Source filename + $imports?: Schema[]; // Resolved imported schemas + $filename?: string; // Source filename } ``` @@ -251,7 +253,7 @@ const classes = parseXsd(classesXsd); // Link schemas via $imports const linkedClasses = { ...classes, - $imports: [adtcore] + $imports: [adtcore], }; // Now InferSchema can resolve types from adtcore @@ -277,28 +279,31 @@ The type inference system uses TypeScript's conditional types to: const schema = { $imports: [baseSchema], element: [{ name: 'order', type: 'OrderType' }], - complexType: [{ - name: 'OrderType', - complexContent: { - extension: { - base: 'base:BaseEntity', // Inherits from imported schema - sequence: { - element: [ - { name: 'items', type: 'ItemType', maxOccurs: 'unbounded' }, - { name: 'total', type: 'xs:decimal' }, - ] - } - } - } - }, { - name: 'ItemType', - sequence: { - element: [ - { name: 'sku', type: 'xs:string' }, - { name: 'quantity', type: 'xs:int' }, - ] - } - }] + complexType: [ + { + name: 'OrderType', + complexContent: { + extension: { + base: 'base:BaseEntity', // Inherits from imported schema + sequence: { + element: [ + { name: 'items', type: 'ItemType', maxOccurs: 'unbounded' }, + { name: 'total', type: 'xs:decimal' }, + ], + }, + }, + }, + }, + { + name: 'ItemType', + sequence: { + element: [ + { name: 'sku', type: 'xs:string' }, + { name: 'quantity', type: 'xs:int' }, + ], + }, + }, + ], } as const; type Order = InferSchema; @@ -349,12 +354,12 @@ type Order = InferSchema; ### Key Components -| Component | Purpose | -|-----------|---------| -| **Resolver** | Merges `$imports`, expands `complexContent/extension`, handles `substitutionGroup` | -| **Traverser** | OO traversal with real W3C XSD types (SchemaTraverser class) | -| **Walker** | Functional iteration over schema elements, types, groups | -| **Loader** | File-based XSD loading with automatic import resolution | +| Component | Purpose | +| ------------- | ---------------------------------------------------------------------------------- | +| **Resolver** | Merges `$imports`, expands `complexContent/extension`, handles `substitutionGroup` | +| **Traverser** | OO traversal with real W3C XSD types (SchemaTraverser class) | +| **Walker** | Functional iteration over schema elements, types, groups | +| **Loader** | File-based XSD loading with automatic import resolution | ## Design Principles @@ -375,6 +380,7 @@ npx nx test:coverage ts-xsd ``` Tests include: + - Unit tests for parser, builder, and inference - Integration tests with real XSD files - W3C XMLSchema.xsd roundtrip verification diff --git a/packages/ts-xsd/docs/codegen.md b/packages/ts-xsd/docs/codegen.md index 27dc601d..f3343861 100644 --- a/packages/ts-xsd/docs/codegen.md +++ b/packages/ts-xsd/docs/codegen.md @@ -6,11 +6,11 @@ The codegen module provides tools to generate TypeScript code from XSD schema definitions: -| Generator | Output | Use Case | -|-----------|--------|----------| +| Generator | Output | Use Case | +| ----------------------- | ------------------------- | ------------------------------------ | | `generateSchemaLiteral` | Schema `as const` literal | Type inference with `InferSchema` | -| `generateSchemaFile` | Complete TypeScript file | Standalone schema modules | -| `generateInterfaces` | TypeScript interfaces | Pre-computed types (avoids TS2589) | +| `generateSchemaFile` | Complete TypeScript file | Standalone schema modules | +| `generateInterfaces` | TypeScript interfaces | Pre-computed types (avoids TS2589) | ## Why Code Generation? @@ -67,22 +67,21 @@ const code = generateSchemaLiteral(xsd, { ``` **Output:** + ```typescript export const person = { - $filename: "person.xsd", + $filename: 'person.xsd', $xmlns: { - xs: "http://www.w3.org/2001/XMLSchema", + xs: 'http://www.w3.org/2001/XMLSchema', }, - element: [ - { name: "person", type: "PersonType" }, - ], + element: [{ name: 'person', type: 'PersonType' }], complexType: [ { - name: "PersonType", + name: 'PersonType', sequence: { element: [ - { name: "name", type: "xs:string" }, - { name: "age", type: "xs:int", minOccurs: "0" }, + { name: 'name', type: 'xs:string' }, + { name: 'age', type: 'xs:int', minOccurs: '0' }, ], }, }, @@ -92,22 +91,22 @@ export const person = { ### Options -| Option | Type | Description | -|--------|------|-------------| -| `name` | `string` | Variable name for exported schema | -| `comment` | `string` | JSDoc comment | -| `pretty` | `boolean` | Pretty print with indentation (default: `true`) | -| `indent` | `string` | Indentation string (default: `' '`) | -| `features` | `object` | Enable `$` extension properties | -| `exclude` | `string[]` | Property names to exclude | -| `importResolver` | `function` | Resolve import paths | +| Option | Type | Description | +| ---------------- | ---------- | ----------------------------------------------- | +| `name` | `string` | Variable name for exported schema | +| `comment` | `string` | JSDoc comment | +| `pretty` | `boolean` | Pretty print with indentation (default: `true`) | +| `indent` | `string` | Indentation string (default: `' '`) | +| `features` | `object` | Enable `$` extension properties | +| `exclude` | `string[]` | Property names to exclude | +| `importResolver` | `function` | Resolve import paths | ### Features -| Feature | Description | -|---------|-------------| -| `$xmlns` | Include namespace declarations | -| `$imports` | Convert `import` to linked schema references | +| Feature | Description | +| ----------- | ---------------------------------------------------- | +| `$xmlns` | Include namespace declarations | +| `$imports` | Convert `import` to linked schema references | | `$filename` | Include source filename (enables backward rendering) | ## Schema File Generator @@ -130,10 +129,11 @@ const code = generateSchemaFile(xsd, { ``` **Output:** + ```typescript /** * Auto-generated schema literal from XSD - * + * * DO NOT EDIT - Generated by ts-xsd codegen */ @@ -162,13 +162,14 @@ import { parseXsd, generateInterfaces } from '@abapify/ts-xsd'; const schema = parseXsd(xsdContent); const { code } = generateInterfaces(schema, { - flatten: true, // Inline all nested types - addJsDoc: true, // Add JSDoc comments - rootTypeName: 'PersonSchema', // Custom root type name + flatten: true, // Inline all nested types + addJsDoc: true, // Add JSDoc comments + rootTypeName: 'PersonSchema', // Custom root type name }); ``` **Output (flatten: false - default):** + ```typescript /** Generated from complexType: PersonType */ export interface PersonType { @@ -189,6 +190,7 @@ export type PersonSchema = { ``` **Output (flatten: true):** + ```typescript export type PersonSchema = { person: { @@ -200,12 +202,12 @@ export type PersonSchema = { ### Options -| Option | Type | Description | -|--------|------|-------------| -| `flatten` | `boolean` | Inline all nested types into single type (default: `false`) | -| `addJsDoc` | `boolean` | Add JSDoc comments | -| `rootTypeName` | `string` | Custom name for root type | -| `comment` | `string` | Header comment for generated file | +| Option | Type | Description | +| -------------- | --------- | ----------------------------------------------------------- | +| `flatten` | `boolean` | Inline all nested types into single type (default: `false`) | +| `addJsDoc` | `boolean` | Add JSDoc comments | +| `rootTypeName` | `string` | Custom name for root type | +| `comment` | `string` | Header comment for generated file | ### Flatten Mode @@ -225,12 +227,14 @@ The interface generator resolves types across linked schemas: // Schema with $imports const schema = { $imports: [adtcore, abapoo], - complexType: [{ - name: 'AbapClass', - complexContent: { - extension: { base: 'abapoo:AbapOoObject' } // Resolved! - } - }] + complexType: [ + { + name: 'AbapClass', + complexContent: { + extension: { base: 'abapoo:AbapOoObject' }, // Resolved! + }, + }, + ], }; const interfaces = generateInterfaces(schema, { generateAllTypes: true }); @@ -244,7 +248,11 @@ The `generators/` module provides a config-based approach for batch schema gener ### Configuration File (`ts-xsd.config.ts`) ```typescript -import { defineConfig, rawSchema, interfaces } from '@abapify/ts-xsd/generators'; +import { + defineConfig, + rawSchema, + interfaces, +} from '@abapify/ts-xsd/generators'; export default defineConfig({ schemas: [ @@ -258,7 +266,7 @@ export default defineConfig({ }), interfaces({ outputDir: 'src/schemas/generated/types', - flatten: true, // Inline all types + flatten: true, // Inline all types }), ], }); @@ -266,10 +274,10 @@ export default defineConfig({ ### Built-in Generators -| Generator | Output | Description | -|-----------|--------|-------------| -| `rawSchema` | `schema.ts` | Schema literal with `as const` | -| `interfaces` | `schema.types.ts` | TypeScript interfaces/types | +| Generator | Output | Description | +| ------------ | ----------------- | ------------------------------ | +| `rawSchema` | `schema.ts` | Schema literal with `as const` | +| `interfaces` | `schema.types.ts` | TypeScript interfaces/types | ### Generator Lifecycle @@ -277,7 +285,7 @@ export default defineConfig({ interface Generator { name: string; generate(schema: Schema, ctx: GeneratorContext): Promise; - finalize?(ctx: FinalizeContext): Promise; // Optional afterAll hook + finalize?(ctx: FinalizeContext): Promise; // Optional afterAll hook } ``` @@ -309,7 +317,11 @@ Typed Schemas (parse/build) ### Generation Script Example ```typescript -import { generateSchemaLiteral, generateInterfaces, parseXsd } from '@abapify/ts-xsd'; +import { + generateSchemaLiteral, + generateInterfaces, + parseXsd, +} from '@abapify/ts-xsd'; import { readFileSync, writeFileSync } from 'fs'; // 1. Generate schema literal @@ -335,7 +347,9 @@ writeFileSync('types/classes.ts', interfaces); Required for backward rendering (rebuilding XSD from schema): ```typescript -features: { $filename: true } +features: { + $filename: true; +} ``` ### 2. Exclude Annotations @@ -343,7 +357,7 @@ features: { $filename: true } Annotations add bulk without affecting type inference: ```typescript -exclude: ['annotation'] +exclude: ['annotation']; ``` ### 3. Use Import Resolver for Multi-Schema Projects @@ -353,7 +367,7 @@ importResolver: (schemaLocation) => { // Map XSD imports to TypeScript imports const name = schemaLocation.replace('.xsd', ''); return `./schemas/${name}`; -} +}; ``` ### 4. Generate Interfaces for Complex Schemas diff --git a/packages/ts-xsd/src/codegen/cli.ts b/packages/ts-xsd/src/codegen/cli.ts index 6ae6448a..6a951345 100755 --- a/packages/ts-xsd/src/codegen/cli.ts +++ b/packages/ts-xsd/src/codegen/cli.ts @@ -1,16 +1,16 @@ #!/usr/bin/env node /** * ts-xsd Codegen CLI - * + * * Usage: * ts-xsd codegen [--config=ts-xsd.config.ts] [--verbose] * ts-xsd codegen [output.ts] [--name=SchemaName] - * + * * Config-based (recommended): * ts-xsd codegen # Uses ts-xsd.config.ts in cwd * ts-xsd codegen --config=my-config.ts # Uses custom config * ts-xsd codegen --verbose # Verbose output - * + * * Single-file (legacy): * ts-xsd codegen person.xsd * ts-xsd codegen person.xsd ./generated/person-schema.ts @@ -63,9 +63,10 @@ function parseArgs(args: string[]): CliOptions { const input = positional[0]; const defaultOutput = input.replace(/\.xsd$/i, '-schema.ts'); const output = positional[1] || defaultOutput; - const defaultName = basename(input, '.xsd') - .replace(/[-_\s]+(.)?/g, (_, c) => (c ? c.toUpperCase() : '')) - .replace(/^./, s => s.toLowerCase()) + 'Schema'; + const defaultName = + basename(input, '.xsd') + .replace(/[-_\s]+(.)?/g, (_, c) => (c ? c.toUpperCase() : '')) + .replace(/^./, (s) => s.toLowerCase()) + 'Schema'; return { mode: 'single', @@ -86,15 +87,17 @@ function parseArgs(args: string[]): CliOptions { async function runConfigMode(options: ConfigModeOptions) { const configPath = resolve(options.config); - + if (!existsSync(configPath)) { console.error(`❌ Config file not found: ${configPath}`); - console.error('\nCreate a ts-xsd.config.ts file or specify --config=path/to/config.ts'); + console.error( + '\nCreate a ts-xsd.config.ts file or specify --config=path/to/config.ts', + ); process.exit(1); } console.log(`📦 Loading config: ${configPath}\n`); - + // Dynamic import of config file const configUrl = pathToFileURL(configPath).href; const configModule = await import(configUrl); @@ -138,7 +141,9 @@ function runSingleFileMode(options: SingleFileModeOptions) { console.log(`Done! Generated ${tsContent.length} characters`); console.log(`\nUsage in TypeScript:`); - console.log(` import { ${options.name} } from './${basename(options.output, '.ts')}';`); + console.log( + ` import { ${options.name} } from './${basename(options.output, '.ts')}';`, + ); console.log(` import type { InferSchema } from 'ts-xsd';`); console.log(` type MyType = InferSchema;`); } @@ -171,7 +176,7 @@ Examples: async function main() { const args = process.argv.slice(2); - + if (args.includes('--help') || args.includes('-h')) { showHelp(); process.exit(0); @@ -186,7 +191,7 @@ async function main() { } } -main().catch(err => { +main().catch((err) => { console.error('Fatal error:', err); process.exit(1); }); diff --git a/packages/ts-xsd/src/codegen/generate.ts b/packages/ts-xsd/src/codegen/generate.ts index 63b4b541..4f236b03 100644 --- a/packages/ts-xsd/src/codegen/generate.ts +++ b/packages/ts-xsd/src/codegen/generate.ts @@ -71,7 +71,7 @@ export interface GenerateOptions { */ export function generateSchemaLiteral( xsdContent: string, - options: GenerateOptions = {} + options: GenerateOptions = {}, ): string { const schema = parseXsd(xsdContent); const features = options.features ?? {}; @@ -98,7 +98,7 @@ export function generateSchemaLiteral( function applyTransforms( schema: Record, features: NonNullable, - exclude: Set + exclude: Set, ): Record { return applyTransformsWithImports(schema, features, exclude, []); } @@ -117,7 +117,7 @@ function applyTransformsWithImports( schema: Record, features: NonNullable, exclude: Set, - importedSchemaNames: string[] + importedSchemaNames: string[], ): Record { const result: Record = {}; @@ -136,7 +136,7 @@ function applyTransformsWithImports( // Convert import to $imports with schema references if (features.$imports && importedSchemaNames.length > 0) { result['$imports'] = importedSchemaNames.map( - (name) => new SchemaRef(name) + (name) => new SchemaRef(name), ); } // If no imports resolved, skip the import property entirely @@ -179,7 +179,7 @@ function filterDeep(value: unknown, exclude: Set): unknown { */ export function generateSchemaFile( xsdContent: string, - options: GenerateOptions = {} + options: GenerateOptions = {}, ): string { const { name = 'schema', @@ -248,7 +248,7 @@ export function generateSchemaFile( function generateSchemaLiteralWithImports( xsdContent: string, options: GenerateOptions, - importedSchemaNames: string[] + importedSchemaNames: string[], ): string { const schema = parseXsd(xsdContent); const features = options.features ?? {}; @@ -267,7 +267,7 @@ function generateSchemaLiteralWithImports( outputSchema, features, exclude, - importedSchemaNames + importedSchemaNames, ); return schemaToLiteral(outputSchema as Schema, options); @@ -285,7 +285,7 @@ function escapeReservedWord(name: string): string { */ function schemaToLiteral( schema: Schema, - options: GenerateOptions = {} + options: GenerateOptions = {}, ): string { const { name = 'schema', @@ -313,7 +313,7 @@ function objectToLiteral( value: unknown, pretty: boolean, indent: string, - depth: number + depth: number, ): string { if (value === null || value === undefined) { return 'undefined'; @@ -338,7 +338,7 @@ function objectToLiteral( } const items = value.map((item) => - objectToLiteral(item, pretty, indent, depth + 1) + objectToLiteral(item, pretty, indent, depth + 1), ); if (pretty) { diff --git a/packages/ts-xsd/src/codegen/index.ts b/packages/ts-xsd/src/codegen/index.ts index 40e224ae..9e8a1322 100644 --- a/packages/ts-xsd/src/codegen/index.ts +++ b/packages/ts-xsd/src/codegen/index.ts @@ -1,15 +1,15 @@ /** * XSD Schema Codegen - * + * * Code generation utilities for XSD schemas. - * + * * ## Schema Literal Generation * - `generateSchemaLiteral` - XSD → TypeScript literal object (for InferSchema) * - `generateSchemaFile` - XSD → TypeScript file with schema literal - * - * ## Interface Generation + * + * ## Interface Generation * - `generateInterfaces` - XSD → TypeScript interfaces - * + * * ## Config-based Generation (for multi-file projects) * See `ts-xsd/generators` for the composable generator system with config files. */ @@ -19,11 +19,13 @@ export { generateSchemaLiteral, generateSchemaFile } from './generate'; // Interface generation export { generateInterfaces, deriveRootTypeName } from './interface-generator'; -export type { GenerateInterfacesOptions, GenerateInterfacesResult } from './interface-generator'; +export type { + GenerateInterfacesOptions, + GenerateInterfacesResult, +} from './interface-generator'; // Types - config, hooks, generator plugin interface export * from './types'; // Runner - codegen engine export { runCodegen, type RunnerOptions, type RunnerResult } from './runner'; - diff --git a/packages/ts-xsd/src/codegen/interface-generator.ts b/packages/ts-xsd/src/codegen/interface-generator.ts index 1c72fd1a..de9e9d0a 100644 --- a/packages/ts-xsd/src/codegen/interface-generator.ts +++ b/packages/ts-xsd/src/codegen/interface-generator.ts @@ -43,7 +43,6 @@ export interface GenerateInterfacesResult { project: Project; } - // ============================================================================= // Helpers // ============================================================================= @@ -83,14 +82,14 @@ export function deriveRootTypeName(filename?: string): string | undefined { */ export function generateInterfaces( schema: Schema, - options: GenerateInterfacesOptions = {} + options: GenerateInterfacesOptions = {}, ): GenerateInterfacesResult { const { flatten, additionalSourceFiles, ...schemaOptions } = options; // Step 1: Generate the source file with interfaces using ts-morph const { project, sourceFile, rootTypeName } = schemaToSourceFile( schema, - schemaOptions + schemaOptions, ); // Step 2: If flatten is requested and we have a root type, flatten it @@ -118,4 +117,3 @@ export function generateInterfaces( project, }; } - diff --git a/packages/ts-xsd/src/codegen/types.ts b/packages/ts-xsd/src/codegen/types.ts index ef5014ad..e741e364 100644 --- a/packages/ts-xsd/src/codegen/types.ts +++ b/packages/ts-xsd/src/codegen/types.ts @@ -1,6 +1,6 @@ /** * Generator Plugin Types - * + * * Composable generator architecture for ts-xsd codegen. * Each generator is a plugin that can transform schemas and produce output files. */ @@ -101,7 +101,7 @@ export interface FinalizeContext { /** * Generator plugin interface - * + * * Generators are composable - multiple generators can be used together. * Each generator can: * - setup(): Initialize state before processing @@ -111,19 +111,19 @@ export interface FinalizeContext { export interface GeneratorPlugin { /** Unique name for this generator */ readonly name: string; - + /** * Called once before processing any schemas. * Use for initialization, validation, etc. */ setup?(ctx: SetupContext): void | Promise; - + /** * Called for each schema file. * Return generated files for this schema. */ transform?(ctx: TransformContext): GeneratedFile[] | Promise; - + /** * Called once after all schemas are processed. * Use for generating index files, aggregate types, etc. @@ -197,19 +197,21 @@ export interface CodegenConfig { }; /** Properties to exclude from output */ exclude?: string[]; - + /** * Hook called before any processing starts. * Use for setup, validation, cleaning output dirs, etc. */ beforeAll?(ctx: HookContext): void | Promise; - + /** * Hook called after all processing is complete. * Use for generating aggregate files, post-processing, etc. * Return additional files to write. */ - afterAll?(ctx: AfterAllContext): GeneratedFile[] | void | Promise; + afterAll?( + ctx: AfterAllContext, + ): GeneratedFile[] | void | Promise; } /** diff --git a/packages/ts-xsd/src/generators/index-barrel.ts b/packages/ts-xsd/src/generators/index-barrel.ts index a8f1ebdb..9b4e0d0c 100644 --- a/packages/ts-xsd/src/generators/index-barrel.ts +++ b/packages/ts-xsd/src/generators/index-barrel.ts @@ -1,12 +1,16 @@ /** * Index Barrel Generator - * + * * Generates index.ts files that re-export all schemas in a source. - * + * * Output: `export * from './schema1'; export * from './schema2'; ...` */ -import type { GeneratorPlugin, FinalizeContext, GeneratedFile } from '../codegen/types'; +import type { + GeneratorPlugin, + FinalizeContext, + GeneratedFile, +} from '../codegen/types'; // ============================================================================ // Options @@ -31,14 +35,14 @@ export interface IndexBarrelOptions { /** * Create an index barrel generator plugin - * + * * This generator runs in finalize() after all schemas are processed. * It generates an index.ts that re-exports all schemas. - * + * * @example * ```ts * import { rawSchema, indexBarrel } from 'ts-xsd/generators'; - * + * * export default defineConfig({ * generators: [ * rawSchema(), @@ -50,7 +54,7 @@ export interface IndexBarrelOptions { export function indexBarrel(options: IndexBarrelOptions = {}): GeneratorPlugin { const { filename = 'index.ts', - importExtension = '', // Default to extensionless for bundler compatibility + importExtension = '', // Default to extensionless for bundler compatibility namedExports = false, includeTypedExports = false, header = true, @@ -82,13 +86,17 @@ export function indexBarrel(options: IndexBarrelOptions = {}): GeneratorPlugin { } // Sort schemas alphabetically for consistent output - const sortedSchemas = [...schemas].sort((a, b) => a.name.localeCompare(b.name)); + const sortedSchemas = [...schemas].sort((a, b) => + a.name.localeCompare(b.name), + ); // Generate exports for (const schema of sortedSchemas) { if (namedExports) { const exportName = toValidIdentifier(schema.name); - lines.push(`export { default as ${exportName} } from './${schema.name}${importExtension}';`); + lines.push( + `export { default as ${exportName} } from './${schema.name}${importExtension}';`, + ); } else { lines.push(`export * from './${schema.name}${importExtension}';`); } @@ -96,7 +104,9 @@ export function indexBarrel(options: IndexBarrelOptions = {}): GeneratorPlugin { // Also export from typed files if requested if (includeTypedExports) { const typeName = pascalCase(schema.name); - lines.push(`export type { ${typeName} } from './${schema.name}.typed${importExtension}';`); + lines.push( + `export type { ${typeName} } from './${schema.name}.typed${importExtension}';`, + ); } } @@ -118,12 +128,52 @@ export function indexBarrel(options: IndexBarrelOptions = {}): GeneratorPlugin { // ============================================================================ const RESERVED_WORDS = new Set([ - 'break', 'case', 'catch', 'continue', 'debugger', 'default', 'delete', - 'do', 'else', 'finally', 'for', 'function', 'if', 'in', 'instanceof', - 'new', 'return', 'switch', 'this', 'throw', 'try', 'typeof', 'var', - 'void', 'while', 'with', 'class', 'const', 'enum', 'export', 'extends', - 'import', 'super', 'implements', 'interface', 'let', 'package', 'private', - 'protected', 'public', 'static', 'yield', 'await', 'null', 'true', 'false', + 'break', + 'case', + 'catch', + 'continue', + 'debugger', + 'default', + 'delete', + 'do', + 'else', + 'finally', + 'for', + 'function', + 'if', + 'in', + 'instanceof', + 'new', + 'return', + 'switch', + 'this', + 'throw', + 'try', + 'typeof', + 'var', + 'void', + 'while', + 'with', + 'class', + 'const', + 'enum', + 'export', + 'extends', + 'import', + 'super', + 'implements', + 'interface', + 'let', + 'package', + 'private', + 'protected', + 'public', + 'static', + 'yield', + 'await', + 'null', + 'true', + 'false', ]); function toValidIdentifier(name: string): string { @@ -139,5 +189,5 @@ function toValidIdentifier(name: string): string { function pascalCase(str: string): string { return str .replace(/[-_\s]+(.)?/g, (_, c) => (c ? c.toUpperCase() : '')) - .replace(/^./, s => s.toUpperCase()); + .replace(/^./, (s) => s.toUpperCase()); } diff --git a/packages/ts-xsd/src/generators/index.ts b/packages/ts-xsd/src/generators/index.ts index d2f11c01..3bd466d3 100644 --- a/packages/ts-xsd/src/generators/index.ts +++ b/packages/ts-xsd/src/generators/index.ts @@ -50,7 +50,6 @@ export { interfaces, type InterfacesOptions } from './interfaces'; export { indexBarrel, type IndexBarrelOptions } from './index-barrel'; export { typedSchemas, type TypedSchemasOptions } from './typed-schemas'; - // Runner - re-exported from codegen export { runCodegen, diff --git a/packages/ts-xsd/src/generators/inferred-types.ts b/packages/ts-xsd/src/generators/inferred-types.ts index 163d67f7..d3b4866a 100644 --- a/packages/ts-xsd/src/generators/inferred-types.ts +++ b/packages/ts-xsd/src/generators/inferred-types.ts @@ -1,13 +1,17 @@ /** * Inferred Types Generator - * + * * Generates TypeScript types using InferSchema. * Appends type export to the schema file generated by rawSchema(). - * + * * Output: `export type Intf = InferSchema;` */ -import type { GeneratorPlugin, TransformContext, GeneratedFile } from '../codegen/types'; +import type { + GeneratorPlugin, + TransformContext, + GeneratedFile, +} from '../codegen/types'; // ============================================================================ // Options @@ -28,14 +32,14 @@ export interface InferredTypesOptions { /** * Create an inferred types generator plugin - * + * * This generator should be used AFTER rawSchema() in the pipeline. * It modifies the generated schema file to add type exports. - * + * * @example * ```ts * import { rawSchema, inferredTypes } from 'ts-xsd/generators'; - * + * * export default defineConfig({ * generators: [ * rawSchema(), @@ -44,19 +48,21 @@ export interface InferredTypesOptions { * }); * ``` */ -export function inferredTypes(options: InferredTypesOptions = {}): GeneratorPlugin { - const { - inferSchemaImport = 'ts-xsd', - typeNamePattern = '{Name}', - } = options; +export function inferredTypes( + options: InferredTypesOptions = {}, +): GeneratorPlugin { + const { inferSchemaImport = 'ts-xsd', typeNamePattern = '{Name}' } = options; return { name: 'inferred-types', transform(ctx: TransformContext): GeneratedFile[] { const { schema } = ctx; - const typeName = typeNamePattern.replace('{Name}', pascalCase(schema.name)); - + const typeName = typeNamePattern.replace( + '{Name}', + pascalCase(schema.name), + ); + // Store for later - we'll modify the file in finalize // For now, generate a separate types file that re-exports const lines: string[] = [ @@ -77,10 +83,12 @@ export function inferredTypes(options: InferredTypesOptions = {}): GeneratorPlug ]; // Generate a typed wrapper file instead of modifying the raw schema - return [{ - path: `${schema.name}.typed.ts`, - content: lines.join('\n'), - }]; + return [ + { + path: `${schema.name}.typed.ts`, + content: lines.join('\n'), + }, + ]; }, }; } @@ -92,5 +100,5 @@ export function inferredTypes(options: InferredTypesOptions = {}): GeneratorPlug function pascalCase(str: string): string { return str .replace(/[-_\s]+(.)?/g, (_, c) => (c ? c.toUpperCase() : '')) - .replace(/^./, s => s.toUpperCase()); + .replace(/^./, (s) => s.toUpperCase()); } diff --git a/packages/ts-xsd/src/generators/interfaces.ts b/packages/ts-xsd/src/generators/interfaces.ts index 30f6a8f8..7659793e 100644 --- a/packages/ts-xsd/src/generators/interfaces.ts +++ b/packages/ts-xsd/src/generators/interfaces.ts @@ -74,9 +74,7 @@ function deriveRootTypeName(schemaName: string, pattern: string): string { * }); * ``` */ -export function interfaces( - options: InterfacesOptions = {} -): GeneratorPlugin { +export function interfaces(options: InterfacesOptions = {}): GeneratorPlugin { const { filePattern = options.flatten ? '{name}.flattened.ts' : '{name}.types.ts', header = true, @@ -127,7 +125,7 @@ export function interfaces( ` * Source: ${source.name}/${schema.name}.xsd`, flatten ? ' * Mode: Flattened' : ' * Mode: Interfaces', ' */', - '' + '', ); } diff --git a/packages/ts-xsd/src/generators/raw-schema.ts b/packages/ts-xsd/src/generators/raw-schema.ts index a5935ffd..6b9be533 100644 --- a/packages/ts-xsd/src/generators/raw-schema.ts +++ b/packages/ts-xsd/src/generators/raw-schema.ts @@ -153,7 +153,7 @@ export function rawSchema(options: RawSchemaOptions = {}): GeneratorPlugin { ' * DO NOT EDIT - Generated by ts-xsd codegen', ` * Source: ${source.name}/${schema.name}.xsd`, ' */', - '' + '', ); } @@ -180,7 +180,7 @@ export function rawSchema(options: RawSchemaOptions = {}): GeneratorPlugin { // This is required because default exports can't be inferred with --isolatedDeclarations if (isolatedDeclarations) { lines.push( - `import { schema as ${imp.name} } from '${imp.path}';` + `import { schema as ${imp.name} } from '${imp.path}';`, ); } else { lines.push(`import ${imp.name} from '${imp.path}';`); @@ -209,7 +209,7 @@ export function rawSchema(options: RawSchemaOptions = {}): GeneratorPlugin { if (isolatedDeclarations) { const exportName = namedExport ?? 'schema'; lines.push( - `export const ${exportName} = ${literal} as const satisfies Schema;` + `export const ${exportName} = ${literal} as const satisfies Schema;`, ); // Also add default export pointing to the named export if (defaultExport && !namedExport) { @@ -249,7 +249,7 @@ interface BuildOptions { function buildOutputSchema( schema: Record, - options: BuildOptions + options: BuildOptions, ): Record { const result: Record = {}; const excludeSet = new Set(options.exclude); @@ -268,7 +268,7 @@ function buildOutputSchema( const resolved = options.resolveImport(imp.schemaLocation); if (!resolved) { throw new Error( - `Cannot resolve xs:import schemaLocation: ${imp.schemaLocation} (in ${options.schemaName}.xsd)` + `Cannot resolve xs:import schemaLocation: ${imp.schemaLocation} (in ${options.schemaName}.xsd)`, ); } const name = imp.schemaLocation @@ -291,7 +291,7 @@ function buildOutputSchema( const resolved = options.resolveImport(inc.schemaLocation); if (!resolved) { throw new Error( - `Cannot resolve xs:include schemaLocation: ${inc.schemaLocation} (in ${options.schemaName}.xsd)` + `Cannot resolve xs:include schemaLocation: ${inc.schemaLocation} (in ${options.schemaName}.xsd)`, ); } // Use base name for valid JS identifier @@ -344,7 +344,7 @@ function getSchemaImports( options: { $imports?: boolean; $includes?: boolean } = { $imports: true, $includes: true, - } + }, ): Array<{ name: string; path: string }> { const imports: Array<{ name: string; path: string }> = []; @@ -423,7 +423,7 @@ function objectToLiteral( value: unknown, pretty: boolean, indent: string, - depth: number + depth: number, ): string { if (value === null || value === undefined) { return 'undefined'; @@ -445,7 +445,7 @@ function objectToLiteral( if (value.length === 0) return '[]'; const items = value.map((item) => - objectToLiteral(item, pretty, indent, depth + 1) + objectToLiteral(item, pretty, indent, depth + 1), ); if (pretty) { diff --git a/packages/ts-xsd/src/generators/typed-schemas.ts b/packages/ts-xsd/src/generators/typed-schemas.ts index acbee761..6a0d6bab 100644 --- a/packages/ts-xsd/src/generators/typed-schemas.ts +++ b/packages/ts-xsd/src/generators/typed-schemas.ts @@ -65,7 +65,7 @@ export interface TypedSchemasOptions { * ``` */ export function typedSchemas( - options: TypedSchemasOptions = {} + options: TypedSchemasOptions = {}, ): GeneratorPlugin { const { outputPath = 'src/schemas/generated/index.ts', @@ -96,13 +96,13 @@ export function typedSchemas( " * import { classes } from '@abapify/adt-schemas';", ' * const data = classes.parse(xml); // data is fully typed!', ' */', - '' + '', ); } // Import typedSchema helper and TypedSchema type lines.push( - `import { typedSchema, type TypedSchema } from '${tsXsdPath}';` + `import { typedSchema, type TypedSchema } from '${tsXsdPath}';`, ); lines.push(''); @@ -123,7 +123,7 @@ export function typedSchemas( if (rootTypes.length === 0) { // No root elements - skip or export raw lines.push( - `// ${schema.name}: No root elements found, skipping typed export` + `// ${schema.name}: No root elements found, skipping typed export`, ); continue; } @@ -144,12 +144,12 @@ export function typedSchemas( // Import type(s) if (rootTypes.length === 1) { lines.push( - `import type { ${rootTypes[0]} } from '${typesImport}';` + `import type { ${rootTypes[0]} } from '${typesImport}';`, ); } else { // Multiple root types - import all lines.push( - `import type { ${rootTypes.join(', ')} } from '${typesImport}';` + `import type { ${rootTypes.join(', ')} } from '${typesImport}';`, ); } } @@ -159,11 +159,11 @@ export function typedSchemas( // Generate typed exports lines.push( - '// ============================================================================' + '// ============================================================================', ); lines.push('// TYPED SCHEMA EXPORTS'); lines.push( - '// ============================================================================' + '// ============================================================================', ); lines.push(''); @@ -173,13 +173,13 @@ export function typedSchemas( if (rootTypes.length === 1) { // Single root type - explicit type annotation for isolatedDeclarations lines.push( - `export const ${exportName}: TypedSchema<${rootTypes[0]}> = typedSchema<${rootTypes[0]}>(_${exportName});` + `export const ${exportName}: TypedSchema<${rootTypes[0]}> = typedSchema<${rootTypes[0]}>(_${exportName});`, ); } else { // Multiple root types - use union with explicit type annotation const unionType = rootTypes.join(' | '); lines.push( - `export const ${exportName}: TypedSchema<${unionType}> = typedSchema<${unionType}>(_${exportName});` + `export const ${exportName}: TypedSchema<${unionType}> = typedSchema<${unionType}>(_${exportName});`, ); } } @@ -191,7 +191,7 @@ export function typedSchemas( // If you need a specific type, import it directly from the types file: // import type { AbapClass } from './types/sap/classes.types'; lines.push( - '// Types are internal - import directly from types/{source}/{schema}.types if needed' + '// Types are internal - import directly from types/{source}/{schema}.types if needed', ); lines.push(''); diff --git a/packages/ts-xsd/src/index.ts b/packages/ts-xsd/src/index.ts index fd639b84..a5f46ec2 100644 --- a/packages/ts-xsd/src/index.ts +++ b/packages/ts-xsd/src/index.ts @@ -1,6 +1,6 @@ /** * ts-xsd - * + * * Core XSD parser, builder, and type inference for TypeScript. * Implements W3C XML Schema Definition (XSD) 1.1 specification. */ diff --git a/packages/ts-xsd/src/infer/index.ts b/packages/ts-xsd/src/infer/index.ts index bb557854..d6ad9f70 100644 --- a/packages/ts-xsd/src/infer/index.ts +++ b/packages/ts-xsd/src/infer/index.ts @@ -1,9 +1,9 @@ /** * Type Inference for W3C XSD Schema - * + * * Infer TypeScript types directly from W3C-compliant Schema objects. * No intermediate simplified schema needed - full accuracy preserved. - * + * * @example * ```typescript * const schema = { @@ -18,7 +18,7 @@ * } * }] * } as const; - * + * * type Person = InferSchema; * // { firstName: string; age?: number } * ``` diff --git a/packages/ts-xsd/src/xml/dom-utils.ts b/packages/ts-xsd/src/xml/dom-utils.ts index 9be502d3..840be7df 100644 --- a/packages/ts-xsd/src/xml/dom-utils.ts +++ b/packages/ts-xsd/src/xml/dom-utils.ts @@ -1,6 +1,6 @@ /** * DOM Utilities for XML parsing/building - * + * * Shared utilities for working with xmldom elements. * These handle namespace-aware attribute/element access. * Uses xmldom's native iterators where possible. @@ -75,7 +75,8 @@ export function getAllChildElements(parent: Element): Element[] { export function getTextContent(node: Element): string { let text = ''; for (const child of node.childNodes) { - if (child.nodeType === 3) { // TEXT_NODE + if (child.nodeType === 3) { + // TEXT_NODE text += child.textContent || ''; } } @@ -92,7 +93,11 @@ export function getLocalName(node: Element): string { /** * Check if element has a specific local name (case-insensitive option) */ -export function hasLocalName(node: Element, name: string, caseInsensitive = false): boolean { +export function hasLocalName( + node: Element, + name: string, + caseInsensitive = false, +): boolean { const localName = getLocalName(node); if (caseInsensitive) { return localName.toLowerCase() === name.toLowerCase(); diff --git a/packages/ts-xsd/src/xml/index.ts b/packages/ts-xsd/src/xml/index.ts index c92c9c07..00b11d06 100644 --- a/packages/ts-xsd/src/xml/index.ts +++ b/packages/ts-xsd/src/xml/index.ts @@ -1,9 +1,12 @@ /** * XML Parse/Build functionality - * + * * Handles XML ↔ JavaScript object transformation using W3C Schema definitions. */ export { parse as parseXml } from './parse'; -export { build as buildXml, type BuildOptions as XmlBuildOptions } from './build'; +export { + build as buildXml, + type BuildOptions as XmlBuildOptions, +} from './build'; export { typedSchema, type TypedSchema, type InferTypedSchema } from './typed'; diff --git a/packages/ts-xsd/src/xml/typed.ts b/packages/ts-xsd/src/xml/typed.ts index 6d87ae07..cb4dfc48 100644 --- a/packages/ts-xsd/src/xml/typed.ts +++ b/packages/ts-xsd/src/xml/typed.ts @@ -1,20 +1,20 @@ /** * Typed Schema Wrapper - * + * * Wraps a raw schema literal with typed parse() and build() methods. * Enables full type inference from schema definitions. - * + * * @example * ```typescript * import { typed } from 'ts-xsd'; * import type { InferSchema } from 'ts-xsd'; - * + * * const rawSchema = { ... } as const; - * + * * // Option 1: Infer type from schema * const schema = typed(rawSchema); * const data = schema.parse(xml); // InferSchema - * + * * // Option 2: Explicit type (e.g., from generated interfaces) * import type { PersonType } from './types'; * const schema = typed(rawSchema); @@ -32,41 +32,43 @@ import { build, type BuildOptions } from './build'; export interface TypedSchema { /** The data type - use with typeof for type extraction */ readonly _type: T; - + /** The underlying raw schema */ readonly schema: S; - + /** Parse XML string to typed object */ parse(xml: string): T; - + /** Build typed object to XML string */ build(data: T, options?: BuildOptions): string; } /** Resolve data type: use explicit T if provided, otherwise infer from schema */ -type ResolveDataType = unknown extends T ? InferSchema : T; +type ResolveDataType = unknown extends T + ? InferSchema + : T; /** Extract the data type from a TypedSchema */ export type InferTypedSchema> = T['_type']; /** * Create a typed schema wrapper - * + * * @param schema - Raw schema literal (with `as const`) * @returns Typed schema with parse/build methods - * + * * @example * ```typescript * // Infer type from schema * const personSchema = typedSchema(rawPersonSchema); * const person = personSchema.parse(xml); - * + * * // Or with explicit type * const personSchema = typedSchema(rawPersonSchema); * ``` */ export function typedSchema( - schema: S + schema: S, ): TypedSchema, S> { type Data = ResolveDataType; return { diff --git a/packages/ts-xsd/src/xsd/build.ts b/packages/ts-xsd/src/xsd/build.ts index 948e5c86..017bcfad 100644 --- a/packages/ts-xsd/src/xsd/build.ts +++ b/packages/ts-xsd/src/xsd/build.ts @@ -1,6 +1,6 @@ /** * XSD Builder - Build XSD documents from typed Schema objects - * + * * This builder produces valid XSD XML from Schema objects, * completing the roundtrip: XSD → Schema → XSD */ @@ -97,7 +97,7 @@ interface BuildContext { function buildSchema(schema: Schema, ctx: BuildContext): string { const attrs: string[] = []; - + // XML namespace declarations (only if present in schema) if (schema.$xmlns) { for (const [prefix, uri] of Object.entries(schema.$xmlns)) { @@ -108,7 +108,7 @@ function buildSchema(schema: Schema, ctx: BuildContext): string { } } } - + // Schema attributes addAttr(attrs, 'id', schema.id); addAttr(attrs, 'targetNamespace', schema.targetNamespace); @@ -229,7 +229,12 @@ function buildDocumentation(doc: Documentation, ctx: BuildContext): string { addAttr(attrs, 'xml:lang', doc['xml:lang']); if (doc._text) { - return buildElementWithText(`${ctx.prefix}:documentation`, attrs, doc._text, ctx); + return buildElementWithText( + `${ctx.prefix}:documentation`, + attrs, + doc._text, + ctx, + ); } return buildElement(`${ctx.prefix}:documentation`, attrs, [], ctx); } @@ -255,7 +260,9 @@ function buildInclude(inc: Include, ctx: BuildContext): string { const children: string[] = []; if (inc.annotation) { - children.push(buildAnnotation(inc.annotation, { ...ctx, level: ctx.level + 1 })); + children.push( + buildAnnotation(inc.annotation, { ...ctx, level: ctx.level + 1 }), + ); } return buildElement(`${ctx.prefix}:include`, attrs, children, ctx); @@ -269,7 +276,9 @@ function buildImport(imp: Import, ctx: BuildContext): string { const children: string[] = []; if (imp.annotation) { - children.push(buildAnnotation(imp.annotation, { ...ctx, level: ctx.level + 1 })); + children.push( + buildAnnotation(imp.annotation, { ...ctx, level: ctx.level + 1 }), + ); } return buildElement(`${ctx.prefix}:import`, attrs, children, ctx); @@ -472,7 +481,10 @@ function buildLocalElement(el: LocalElement, ctx: BuildContext): string { // Attribute Declarations // ============================================================================= -function buildTopLevelAttribute(attr: TopLevelAttribute, ctx: BuildContext): string { +function buildTopLevelAttribute( + attr: TopLevelAttribute, + ctx: BuildContext, +): string { const attrs: string[] = []; addAttr(attrs, 'id', attr.id); addAttr(attrs, 'name', attr.name); @@ -524,7 +536,10 @@ function buildLocalAttribute(attr: LocalAttribute, ctx: BuildContext): string { // Complex Types // ============================================================================= -function buildTopLevelComplexType(ct: TopLevelComplexType, ctx: BuildContext): string { +function buildTopLevelComplexType( + ct: TopLevelComplexType, + ctx: BuildContext, +): string { const attrs: string[] = []; addAttr(attrs, 'id', ct.id); addAttr(attrs, 'name', ct.name); @@ -537,7 +552,10 @@ function buildTopLevelComplexType(ct: TopLevelComplexType, ctx: BuildContext): s return buildComplexTypeContent(ct, attrs, ctx); } -function buildLocalComplexType(ct: LocalComplexType, ctx: BuildContext): string { +function buildLocalComplexType( + ct: LocalComplexType, + ctx: BuildContext, +): string { const attrs: string[] = []; addAttr(attrs, 'id', ct.id); addBoolAttr(attrs, 'mixed', ct.mixed); @@ -548,7 +566,7 @@ function buildLocalComplexType(ct: LocalComplexType, ctx: BuildContext): string function buildComplexTypeContent( ct: TopLevelComplexType | LocalComplexType, attrs: string[], - ctx: BuildContext + ctx: BuildContext, ): string { const children: string[] = []; const childCtx = { ...ctx, level: ctx.level + 1 }; @@ -606,7 +624,10 @@ function buildComplexTypeContent( // Simple Types // ============================================================================= -function buildTopLevelSimpleType(st: TopLevelSimpleType, ctx: BuildContext): string { +function buildTopLevelSimpleType( + st: TopLevelSimpleType, + ctx: BuildContext, +): string { const attrs: string[] = []; addAttr(attrs, 'id', st.id); addAttr(attrs, 'name', st.name); @@ -625,7 +646,7 @@ function buildLocalSimpleType(st: LocalSimpleType, ctx: BuildContext): string { function buildSimpleTypeContent( st: TopLevelSimpleType | LocalSimpleType, attrs: string[], - ctx: BuildContext + ctx: BuildContext, ): string { const children: string[] = []; const childCtx = { ...ctx, level: ctx.level + 1 }; @@ -645,7 +666,10 @@ function buildSimpleTypeContent( return buildElement(`${ctx.prefix}:simpleType`, attrs, children, ctx); } -function buildSimpleTypeRestriction(r: SimpleTypeRestriction, ctx: BuildContext): string { +function buildSimpleTypeRestriction( + r: SimpleTypeRestriction, + ctx: BuildContext, +): string { const attrs: string[] = []; addAttr(attrs, 'id', r.id); addAttr(attrs, 'base', r.base); @@ -669,7 +693,7 @@ function buildSimpleTypeRestriction(r: SimpleTypeRestriction, ctx: BuildContext) function buildFacets( r: SimpleTypeRestriction | SimpleContentRestriction, children: string[], - ctx: BuildContext + ctx: BuildContext, ): void { if (r.minExclusive) { for (const f of r.minExclusive) { @@ -751,7 +775,9 @@ function buildFacet(f: Facet, name: string, ctx: BuildContext): string { const children: string[] = []; if (f.annotation) { - children.push(buildAnnotation(f.annotation, { ...ctx, level: ctx.level + 1 })); + children.push( + buildAnnotation(f.annotation, { ...ctx, level: ctx.level + 1 }), + ); } return buildElement(`${ctx.prefix}:${name}`, attrs, children, ctx); @@ -764,7 +790,9 @@ function buildPattern(p: Pattern, ctx: BuildContext): string { const children: string[] = []; if (p.annotation) { - children.push(buildAnnotation(p.annotation, { ...ctx, level: ctx.level + 1 })); + children.push( + buildAnnotation(p.annotation, { ...ctx, level: ctx.level + 1 }), + ); } return buildElement(`${ctx.prefix}:pattern`, attrs, children, ctx); @@ -851,7 +879,10 @@ function buildSimpleContent(sc: SimpleContent, ctx: BuildContext): string { return buildElement(`${ctx.prefix}:simpleContent`, attrs, children, ctx); } -function buildComplexContentRestriction(r: ComplexContentRestriction, ctx: BuildContext): string { +function buildComplexContentRestriction( + r: ComplexContentRestriction, + ctx: BuildContext, +): string { const attrs: string[] = []; addAttr(attrs, 'id', r.id); addAttr(attrs, 'base', r.base); @@ -899,7 +930,10 @@ function buildComplexContentRestriction(r: ComplexContentRestriction, ctx: Build return buildElement(`${ctx.prefix}:restriction`, attrs, children, ctx); } -function buildComplexContentExtension(e: ComplexContentExtension, ctx: BuildContext): string { +function buildComplexContentExtension( + e: ComplexContentExtension, + ctx: BuildContext, +): string { const attrs: string[] = []; addAttr(attrs, 'id', e.id); addAttr(attrs, 'base', e.base); @@ -947,7 +981,10 @@ function buildComplexContentExtension(e: ComplexContentExtension, ctx: BuildCont return buildElement(`${ctx.prefix}:extension`, attrs, children, ctx); } -function buildSimpleContentRestriction(r: SimpleContentRestriction, ctx: BuildContext): string { +function buildSimpleContentRestriction( + r: SimpleContentRestriction, + ctx: BuildContext, +): string { const attrs: string[] = []; addAttr(attrs, 'id', r.id); addAttr(attrs, 'base', r.base); @@ -988,7 +1025,10 @@ function buildSimpleContentRestriction(r: SimpleContentRestriction, ctx: BuildCo return buildElement(`${ctx.prefix}:restriction`, attrs, children, ctx); } -function buildSimpleContentExtension(e: SimpleContentExtension, ctx: BuildContext): string { +function buildSimpleContentExtension( + e: SimpleContentExtension, + ctx: BuildContext, +): string { const attrs: string[] = []; addAttr(attrs, 'id', e.id); addAttr(attrs, 'base', e.base); @@ -1025,7 +1065,11 @@ function buildSimpleContentExtension(e: SimpleContentExtension, ctx: BuildContex // Model Groups (sequence, choice, all) // ============================================================================= -function buildExplicitGroup(g: ExplicitGroup, name: 'sequence' | 'choice', ctx: BuildContext): string { +function buildExplicitGroup( + g: ExplicitGroup, + name: 'sequence' | 'choice', + ctx: BuildContext, +): string { const attrs: string[] = []; addAttr(attrs, 'id', g.id); addOccursAttr(attrs, 'minOccurs', g.minOccurs); @@ -1134,13 +1178,18 @@ function buildGroupRef(g: GroupRef, ctx: BuildContext): string { const children: string[] = []; if (g.annotation) { - children.push(buildAnnotation(g.annotation, { ...ctx, level: ctx.level + 1 })); + children.push( + buildAnnotation(g.annotation, { ...ctx, level: ctx.level + 1 }), + ); } return buildElement(`${ctx.prefix}:group`, attrs, children, ctx); } -function buildNamedAttributeGroup(ag: NamedAttributeGroup, ctx: BuildContext): string { +function buildNamedAttributeGroup( + ag: NamedAttributeGroup, + ctx: BuildContext, +): string { const attrs: string[] = []; addAttr(attrs, 'id', ag.id); addAttr(attrs, 'name', ag.name); @@ -1168,14 +1217,19 @@ function buildNamedAttributeGroup(ag: NamedAttributeGroup, ctx: BuildContext): s return buildElement(`${ctx.prefix}:attributeGroup`, attrs, children, ctx); } -function buildAttributeGroupRef(ag: AttributeGroupRef, ctx: BuildContext): string { +function buildAttributeGroupRef( + ag: AttributeGroupRef, + ctx: BuildContext, +): string { const attrs: string[] = []; addAttr(attrs, 'id', ag.id); addAttr(attrs, 'ref', ag.ref); const children: string[] = []; if (ag.annotation) { - children.push(buildAnnotation(ag.annotation, { ...ctx, level: ctx.level + 1 })); + children.push( + buildAnnotation(ag.annotation, { ...ctx, level: ctx.level + 1 }), + ); } return buildElement(`${ctx.prefix}:attributeGroup`, attrs, children, ctx); @@ -1197,7 +1251,9 @@ function buildAny(a: Any, ctx: BuildContext): string { const children: string[] = []; if (a.annotation) { - children.push(buildAnnotation(a.annotation, { ...ctx, level: ctx.level + 1 })); + children.push( + buildAnnotation(a.annotation, { ...ctx, level: ctx.level + 1 }), + ); } return buildElement(`${ctx.prefix}:any`, attrs, children, ctx); @@ -1213,7 +1269,9 @@ function buildAnyAttribute(aa: AnyAttribute, ctx: BuildContext): string { const children: string[] = []; if (aa.annotation) { - children.push(buildAnnotation(aa.annotation, { ...ctx, level: ctx.level + 1 })); + children.push( + buildAnnotation(aa.annotation, { ...ctx, level: ctx.level + 1 }), + ); } return buildElement(`${ctx.prefix}:anyAttribute`, attrs, children, ctx); @@ -1304,7 +1362,9 @@ function buildSelector(s: Selector, ctx: BuildContext): string { const children: string[] = []; if (s.annotation) { - children.push(buildAnnotation(s.annotation, { ...ctx, level: ctx.level + 1 })); + children.push( + buildAnnotation(s.annotation, { ...ctx, level: ctx.level + 1 }), + ); } return buildElement(`${ctx.prefix}:selector`, attrs, children, ctx); @@ -1318,7 +1378,9 @@ function buildField(f: Field, ctx: BuildContext): string { const children: string[] = []; if (f.annotation) { - children.push(buildAnnotation(f.annotation, { ...ctx, level: ctx.level + 1 })); + children.push( + buildAnnotation(f.annotation, { ...ctx, level: ctx.level + 1 }), + ); } return buildElement(`${ctx.prefix}:field`, attrs, children, ctx); @@ -1346,7 +1408,10 @@ function buildOpenContent(oc: OpenContent, ctx: BuildContext): string { return buildElement(`${ctx.prefix}:openContent`, attrs, children, ctx); } -function buildDefaultOpenContent(doc: DefaultOpenContent, ctx: BuildContext): string { +function buildDefaultOpenContent( + doc: DefaultOpenContent, + ctx: BuildContext, +): string { const attrs: string[] = []; addAttr(attrs, 'id', doc.id); addBoolAttr(attrs, 'appliesToEmpty', doc.appliesToEmpty); @@ -1371,7 +1436,9 @@ function buildAssertion(a: Assertion, ctx: BuildContext): string { const children: string[] = []; if (a.annotation) { - children.push(buildAnnotation(a.annotation, { ...ctx, level: ctx.level + 1 })); + children.push( + buildAnnotation(a.annotation, { ...ctx, level: ctx.level + 1 }), + ); } return buildElement(`${ctx.prefix}:assert`, attrs, children, ctx); @@ -1409,7 +1476,9 @@ function buildNotation(n: Notation, ctx: BuildContext): string { const children: string[] = []; if (n.annotation) { - children.push(buildAnnotation(n.annotation, { ...ctx, level: ctx.level + 1 })); + children.push( + buildAnnotation(n.annotation, { ...ctx, level: ctx.level + 1 }), + ); } return buildElement(`${ctx.prefix}:notation`, attrs, children, ctx); @@ -1419,19 +1488,31 @@ function buildNotation(n: Notation, ctx: BuildContext): string { // Utility Functions // ============================================================================= -function addAttr(attrs: string[], name: string, value: string | undefined): void { +function addAttr( + attrs: string[], + name: string, + value: string | undefined, +): void { if (value !== undefined) { attrs.push(`${name}="${escapeXml(value)}"`); } } -function addBoolAttr(attrs: string[], name: string, value: boolean | undefined): void { +function addBoolAttr( + attrs: string[], + name: string, + value: boolean | undefined, +): void { if (value !== undefined) { attrs.push(`${name}="${value}"`); } } -function addOccursAttr(attrs: string[], name: string, value: number | string | undefined): void { +function addOccursAttr( + attrs: string[], + name: string, + value: number | string | undefined, +): void { if (value !== undefined) { attrs.push(`${name}="${value}"`); } @@ -1450,7 +1531,7 @@ function buildElement( tag: string, attrs: string[], children: string[], - ctx: BuildContext + ctx: BuildContext, ): string { const indent = ctx.pretty ? ctx.indent.repeat(ctx.level) : ''; const attrStr = attrs.length > 0 ? ' ' + attrs.join(' ') : ''; @@ -1468,7 +1549,7 @@ function buildElementWithText( tag: string, attrs: string[], text: string, - ctx: BuildContext + ctx: BuildContext, ): string { const indent = ctx.pretty ? ctx.indent.repeat(ctx.level) : ''; const attrStr = attrs.length > 0 ? ' ' + attrs.join(' ') : ''; diff --git a/packages/ts-xsd/src/xsd/helpers.ts b/packages/ts-xsd/src/xsd/helpers.ts index 227399f1..f36e0ab8 100644 --- a/packages/ts-xsd/src/xsd/helpers.ts +++ b/packages/ts-xsd/src/xsd/helpers.ts @@ -1,6 +1,6 @@ /** * Schema Helpers - * + * * Utility functions for working with Schema objects, * particularly for resolving cross-schema relationships. */ @@ -9,16 +9,16 @@ import type { Schema } from './types'; /** * Resolve $imports for a schema by matching import schemaLocation to $filename. - * + * * @param schema - The schema to resolve imports for * @param availableSchemas - Array of schemas that may be imported * @returns A new schema object with $imports populated - * + * * @example * ```typescript * const orderSchema = parseXsd(orderXsd); * const commonSchema = { ...parseXsd(commonXsd), $filename: 'common.xsd' }; - * + * * // orderSchema has: import: [{ schemaLocation: 'common.xsd', ... }] * const resolved = resolveImports(orderSchema, [commonSchema]); * // resolved.$imports = [commonSchema] @@ -26,22 +26,24 @@ import type { Schema } from './types'; */ export function resolveImports( schema: T, - availableSchemas: readonly Schema[] + availableSchemas: readonly Schema[], ): T & { $imports: readonly Schema[] } { const imports: Schema[] = []; - + if (schema.import) { for (const imp of schema.import) { if (imp.schemaLocation) { // Find schema by $filename match - const found = availableSchemas.find(s => s.$filename === imp.schemaLocation); + const found = availableSchemas.find( + (s) => s.$filename === imp.schemaLocation, + ); if (found) { imports.push(found); } } } } - + return { ...schema, $imports: imports, @@ -50,10 +52,10 @@ export function resolveImports( /** * Resolve $imports for multiple schemas, linking them together. - * + * * @param schemas - Array of schemas to link together * @returns Array of schemas with $imports populated - * + * * @example * ```typescript * const schemas = [ @@ -65,7 +67,7 @@ export function resolveImports( * ``` */ export function linkSchemas( - schemas: readonly T[] + schemas: readonly T[], ): (T & { $imports: readonly Schema[] })[] { - return schemas.map(schema => resolveImports(schema, schemas)); + return schemas.map((schema) => resolveImports(schema, schemas)); } diff --git a/packages/ts-xsd/src/xsd/index.ts b/packages/ts-xsd/src/xsd/index.ts index c43ee262..58a23d99 100644 --- a/packages/ts-xsd/src/xsd/index.ts +++ b/packages/ts-xsd/src/xsd/index.ts @@ -1,6 +1,6 @@ /** * XSD Module - * + * * Parse and build XSD files with typed Schema objects. * Supports full roundtrip: XSD → Schema → XSD */ diff --git a/packages/ts-xsd/src/xsd/loader.ts b/packages/ts-xsd/src/xsd/loader.ts index a4701ab0..471defc6 100644 --- a/packages/ts-xsd/src/xsd/loader.ts +++ b/packages/ts-xsd/src/xsd/loader.ts @@ -1,6 +1,6 @@ /** * Schema Loader - Load and parse XSD files from disk - * + * * Simple loader that reads XSD files and parses them into Schema objects. * Resolution of imports/includes is handled by the resolver. */ @@ -16,7 +16,10 @@ import { resolveSchema } from './resolve'; // ============================================================================= /** Function to load XSD content from a schemaLocation path */ -export type XsdLoader = (schemaLocation: string, basePath: string) => string | null; +export type XsdLoader = ( + schemaLocation: string, + basePath: string, +) => string | null; /** Options for schema loading */ export interface LoaderOptions { @@ -24,7 +27,7 @@ export interface LoaderOptions { basePath?: string; /** Custom loader function (default: reads from filesystem) */ loader?: XsdLoader; - /** + /** * Automatically link schemaLocation references (default: false) * Populates $imports/$includes with actual Schema objects. * The schema structure is preserved - use this when you need cross-schema type resolution. @@ -48,7 +51,10 @@ export interface LoaderOptions { /** * Default XSD loader - reads from filesystem */ -export function defaultLoader(schemaLocation: string, basePath: string): string | null { +export function defaultLoader( + schemaLocation: string, + basePath: string, +): string | null { const fullPath = resolve(basePath, schemaLocation); if (!existsSync(fullPath)) { return null; @@ -62,22 +68,22 @@ export function defaultLoader(schemaLocation: string, basePath: string): string /** * Load and parse a single XSD file. - * + * * @param schemaPath - Path to the XSD file * @param options - Loader options * @param options.autoLink - Populate $imports/$includes with loaded schemas (preserves structure) * @param options.autoResolve - Flatten into single schema with all types merged (implies autoLink) * @returns Parsed schema - * + * * @example * ```typescript * // Just parse - no linking * const schema = loadSchema('/path/to/schema.xsd'); - * + * * // Link - populate $imports/$includes (preserves multi-schema structure) * const linked = loadSchema('/path/to/schema.xsd', { autoLink: true }); * // linked.$imports contains actual Schema objects - * + * * // Resolve - flatten everything into one schema * const resolved = loadSchema('/path/to/schema.xsd', { autoResolve: true }); * // resolved has all types merged, no $imports/$includes @@ -85,7 +91,7 @@ export function defaultLoader(schemaLocation: string, basePath: string): string */ export function loadSchema( schemaPath: string, - options: LoaderOptions = {} + options: LoaderOptions = {}, ): Schema { const { basePath = dirname(schemaPath), @@ -103,17 +109,17 @@ export function loadSchema( let schema = parseXsd(content); // Set $filename for reference Object.assign(schema, { $filename: schemaPath }); - + // Auto-link if requested (or if autoResolve is set) if (autoLink || autoResolve) { linkSchema(schema, { basePath, loader, throwOnMissing }); } - + // Auto-resolve if requested - flatten into single schema if (autoResolve) { schema = resolveSchema(schema); } - + return schema; } @@ -134,29 +140,29 @@ export function parseSchemaContent(content: string, filename?: string): Schema { */ export function createSchemaLoader( basePath: string, - loader: XsdLoader = defaultLoader + loader: XsdLoader = defaultLoader, ): (schemaLocation: string) => Schema | null { const cache = new Map(); - + return (schemaLocation: string): Schema | null => { const fullPath = resolve(basePath, schemaLocation); - + // Check cache const cached = cache.get(fullPath); if (cached) { return cached; } - + // Load and parse const content = loader(schemaLocation, basePath); if (!content) { return null; } - + const schema = parseXsd(content); Object.assign(schema, { $filename: schemaLocation }); cache.set(fullPath, schema); - + return schema; }; } @@ -177,17 +183,17 @@ export interface LinkOptions { /** * Link a schema by resolving all schemaLocation references. - * + * * Processes: * - xs:import → populates $imports * - xs:include → populates $includes * - xs:redefine → loads base schema, keeps redefinitions in redefine array * - xs:override → loads base schema, keeps overrides in override array - * + * * @param schema - Schema to link (will be mutated with $imports/$includes) * @param options - Link options including basePath for resolving paths * @returns The same schema with $imports and $includes populated - * + * * @example * ```typescript * const schema = parseXsd(xsdContent); @@ -197,52 +203,57 @@ export interface LinkOptions { */ export function linkSchema(schema: Schema, options: LinkOptions): Schema { const { basePath, loader = defaultLoader, throwOnMissing = true } = options; - + // Cache to prevent infinite loops and duplicate loading const cache = new Map(); const inProgress = new Set(); - + // Helper to load and link a schema by schemaLocation - const loadAndLink = (schemaLocation: string, currentBasePath: string): Schema | null => { + const loadAndLink = ( + schemaLocation: string, + currentBasePath: string, + ): Schema | null => { const fullPath = resolve(currentBasePath, schemaLocation); - + // Check cache first const cached = cache.get(fullPath); if (cached) return cached; - + // Detect circular references if (inProgress.has(fullPath)) { return cache.get(fullPath) ?? null; } - + // Load the schema const content = loader(schemaLocation, currentBasePath); if (!content) { if (throwOnMissing) { - throw new Error(`Failed to load schema: ${schemaLocation} (resolved: ${fullPath})`); + throw new Error( + `Failed to load schema: ${schemaLocation} (resolved: ${fullPath})`, + ); } return null; } - + // Parse and mark as in progress const loadedSchema = parseXsd(content); Object.assign(loadedSchema, { $filename: schemaLocation }); inProgress.add(fullPath); cache.set(fullPath, loadedSchema); - + // Recursively link the loaded schema const newBasePath = dirname(fullPath); linkSchemaInternal(loadedSchema, newBasePath); - + inProgress.delete(fullPath); return loadedSchema; }; - + // Internal linking function const linkSchemaInternal = (s: Schema, currentBasePath: string): void => { const imports: Schema[] = []; const includes: Schema[] = []; - + // Process xs:import elements if (s.import) { for (const imp of s.import) { @@ -254,7 +265,7 @@ export function linkSchema(schema: Schema, options: LinkOptions): Schema { } } } - + // Process xs:include elements if (s.include) { for (const inc of s.include) { @@ -266,7 +277,7 @@ export function linkSchema(schema: Schema, options: LinkOptions): Schema { } } } - + // Process xs:redefine elements - load base schema and attach to redefine.$schema if (s.redefine) { for (const redef of s.redefine) { @@ -279,7 +290,7 @@ export function linkSchema(schema: Schema, options: LinkOptions): Schema { } } } - + // Process xs:override elements - load base schema and attach to override.$schema if (s.override) { for (const ovr of s.override) { @@ -292,7 +303,7 @@ export function linkSchema(schema: Schema, options: LinkOptions): Schema { } } } - + // Set $imports and $includes if (imports.length > 0) { Object.assign(s, { $imports: imports }); @@ -301,21 +312,21 @@ export function linkSchema(schema: Schema, options: LinkOptions): Schema { Object.assign(s, { $includes: includes }); } }; - + // Start linking from the root schema linkSchemaInternal(schema, basePath); - + return schema; } /** * Load and link a schema from a file path. * Convenience function that combines loadSchema + linkSchema. - * + * * @param schemaPath - Path to the XSD file * @param options - Optional loader options * @returns Fully linked schema with $imports and $includes populated - * + * * @example * ```typescript * const schema = loadAndLinkSchema('/path/to/schema.xsd'); @@ -325,7 +336,7 @@ export function linkSchema(schema: Schema, options: LinkOptions): Schema { */ export function loadAndLinkSchema( schemaPath: string, - options: Omit = {} + options: Omit = {}, ): Schema { const basePath = dirname(schemaPath); const schema = loadSchema(schemaPath, { ...options, basePath }); diff --git a/packages/ts-xsd/src/xsd/parse.ts b/packages/ts-xsd/src/xsd/parse.ts index 6642f27d..0c64f264 100644 --- a/packages/ts-xsd/src/xsd/parse.ts +++ b/packages/ts-xsd/src/xsd/parse.ts @@ -1,9 +1,9 @@ /** * XSD Parser - Parse XSD documents to typed Schema objects - * + * * This parser understands XSD semantics and produces correctly typed output * matching the W3C XMLSchema.xsd specification. - * + * * No intermediate JSON - direct XSD to typed objects. */ @@ -456,7 +456,10 @@ function parseLocalComplexType(el: Element): LocalComplexType { return result; } -function parseComplexTypeContent(el: Element, result: Mutable | Mutable): void { +function parseComplexTypeContent( + el: Element, + result: Mutable | Mutable, +): void { for (const child of getAllChildElements(el)) { const name = getLocalName(child); switch (name) { @@ -523,7 +526,10 @@ function parseLocalSimpleType(el: Element): LocalSimpleType { return result; } -function parseSimpleTypeContent(el: Element, result: Mutable | Mutable): void { +function parseSimpleTypeContent( + el: Element, + result: Mutable | Mutable, +): void { for (const child of getAllChildElements(el)) { const name = getLocalName(child); switch (name) { @@ -669,7 +675,9 @@ function parseSimpleContent(el: Element): SimpleContent { return result; } -function parseComplexContentRestriction(el: Element): ComplexContentRestriction { +function parseComplexContentRestriction( + el: Element, +): ComplexContentRestriction { const result: Mutable = { base: '' }; copyAttr(el, result, 'id'); copyAttr(el, result, 'base'); @@ -1096,28 +1104,43 @@ function parseNotation(el: Element): Notation { // Utility Functions // ============================================================================= -function copyAttr(el: Element, target: Record, name: string): void { +function copyAttr( + el: Element, + target: Record, + name: string, +): void { const value = el.getAttribute(name); if (value !== null) { target[name] = value; } } -function copyBoolAttr(el: Element, target: Record, name: string): void { +function copyBoolAttr( + el: Element, + target: Record, + name: string, +): void { const value = el.getAttribute(name); if (value !== null) { target[name] = value === 'true'; } } -function pushTo(target: Record, name: string, value: unknown): void { +function pushTo( + target: Record, + name: string, + value: unknown, +): void { if (!target[name]) { target[name] = []; } (target[name] as unknown[]).push(value); } -function parseAnnotationChild(el: Element, result: { annotation?: Annotation }): void { +function parseAnnotationChild( + el: Element, + result: { annotation?: Annotation }, +): void { for (const child of getAllChildElements(el)) { if (getLocalName(child) === 'annotation') { result.annotation = parseAnnotation(child); @@ -1129,11 +1152,11 @@ function parseAnnotationChild(el: Element, result: { annotation?: Annotation }): /** * Extract xmlns declarations from an element's attributes. * Returns undefined if no xmlns declarations found. - * + * * @example * For * Returns: { xs: "http://www.w3.org/2001/XMLSchema", tns: "http://example.com" } - * + * * For * Returns: { "": "http://default.com" } */ @@ -1164,11 +1187,14 @@ function extractXmlns(el: Element): Record | undefined { /** * Copy xmlns declarations to target if present */ -function copyXmlns(el: Element, target: { $xmlns?: Record }): void { +function copyXmlns( + el: Element, + target: { $xmlns?: Record }, +): void { const xmlns = extractXmlns(el); if (xmlns) { target.$xmlns = xmlns; } } -export default parseXsd; \ No newline at end of file +export default parseXsd; diff --git a/packages/ts-xsd/src/xsd/resolve.ts b/packages/ts-xsd/src/xsd/resolve.ts index ebf77cdb..0522aa79 100644 --- a/packages/ts-xsd/src/xsd/resolve.ts +++ b/packages/ts-xsd/src/xsd/resolve.ts @@ -1,12 +1,12 @@ /** * Schema Resolver - * + * * Resolves a schema with all its imports, includes, extensions, and substitution groups * into a single self-contained schema. This makes codegen straightforward - no need to * track cross-schema dependencies. - * + * * Uses the SchemaTraverser for OO traversal with real W3C XSD types. - * + * * Features: * - Merges types from $imports (xs:import) * - Expands complexContent/extension - flattens inheritance @@ -49,7 +49,7 @@ export interface ResolveOptions { /** * Collects all schema components into Maps for resolution. - * + * * IMPORTANT: Elements are only collected from schemas with the SAME targetNamespace * as the root schema. This follows XSD semantics where xs:import brings in types * from a different namespace but doesn't merge elements into the current namespace. @@ -62,7 +62,7 @@ class SchemaCollector extends SchemaTraverser { readonly attributeGroups = new Map(); readonly substitutionGroups = new Map(); readonly xmlns = new Map(); - + protected override onEnterSchema(schema: Schema): void { if (schema.$xmlns) { for (const [prefix, uri] of Object.entries(schema.$xmlns)) { @@ -72,7 +72,7 @@ class SchemaCollector extends SchemaTraverser { } } } - + protected override onComplexType(ct: TopLevelComplexType): void { // Types are collected from all schemas (needed for extension resolution) // First one wins (root schema takes precedence) @@ -80,13 +80,13 @@ class SchemaCollector extends SchemaTraverser { this.complexTypes.set(ct.name, ct); } } - + protected override onSimpleType(st: TopLevelSimpleType): void { if (!this.simpleTypes.has(st.name)) { this.simpleTypes.set(st.name, st); } } - + protected override onElement(element: TopLevelElement): void { // Collect elements from: // 1. Same targetNamespace as root schema @@ -103,11 +103,14 @@ class SchemaCollector extends SchemaTraverser { const sameOrNoNamespace = currentNs === rootNs || currentNs === undefined; const hasSubstitutionGroup = !!element.substitutionGroup; const isAbstract = !!(element as { abstract?: boolean }).abstract; - - if ((sameOrNoNamespace || hasSubstitutionGroup || isAbstract) && !this.elements.has(element.name)) { + + if ( + (sameOrNoNamespace || hasSubstitutionGroup || isAbstract) && + !this.elements.has(element.name) + ) { this.elements.set(element.name, element); } - + // Track substitution groups (from any namespace - substitutes can be cross-namespace) if (element.substitutionGroup) { const abstractName = stripNsPrefix(element.substitutionGroup); @@ -116,13 +119,13 @@ class SchemaCollector extends SchemaTraverser { this.substitutionGroups.set(abstractName, existing); } } - + protected override onGroup(group: NamedGroup): void { if (!this.groups.has(group.name)) { this.groups.set(group.name, group); } } - + protected override onAttributeGroup(group: NamedAttributeGroup): void { if (!this.attributeGroups.has(group.name)) { this.attributeGroups.set(group.name, group); @@ -138,7 +141,10 @@ class SchemaCollector extends SchemaTraverser { * Resolve a schema by merging all imports/includes and expanding all references. * Returns a new self-contained schema with no external dependencies. */ -export function resolveSchema(schema: Schema, options: ResolveOptions = {}): Schema { +export function resolveSchema( + schema: Schema, + options: ResolveOptions = {}, +): Schema { const { resolveImports = true, resolveIncludes = true, @@ -166,7 +172,7 @@ export function resolveSchema(schema: Schema, options: ResolveOptions = {}): Sch for (const ct of collector.complexTypes.values()) { collectElementRefsFromType(ct, referencedElements); } - elements = Array.from(collector.elements.values()).filter(el => { + elements = Array.from(collector.elements.values()).filter((el) => { if ((el as Record).abstract === true) return false; if (referencedElements.has(el.name)) return false; return true; @@ -179,15 +185,19 @@ export function resolveSchema(schema: Schema, options: ResolveOptions = {}): Sch // Expand extensions if requested let resolvedComplexTypes = Array.from(collector.complexTypes.values()); if (expandExtensions) { - resolvedComplexTypes = resolvedComplexTypes.map(ct => - expandComplexTypeExtension(ct, collector.complexTypes) + resolvedComplexTypes = resolvedComplexTypes.map((ct) => + expandComplexTypeExtension(ct, collector.complexTypes), ); } // Expand substitution groups in complex types if requested if (expandSubstitutions) { - resolvedComplexTypes = resolvedComplexTypes.map(ct => - expandSubstitutionGroupsInType(ct, collector.elements, collector.substitutionGroups) + resolvedComplexTypes = resolvedComplexTypes.map((ct) => + expandSubstitutionGroupsInType( + ct, + collector.elements, + collector.substitutionGroups, + ), ); } @@ -196,11 +206,12 @@ export function resolveSchema(schema: Schema, options: ResolveOptions = {}): Sch targetNamespace: schema.targetNamespace, elementFormDefault: schema.elementFormDefault, $filename: schema.$filename, - $xmlns: collector.xmlns.size > 0 - ? Object.fromEntries(collector.xmlns) - : schema.$xmlns, + $xmlns: + collector.xmlns.size > 0 + ? Object.fromEntries(collector.xmlns) + : schema.$xmlns, }; - + // Add elements if (elements.length > 0) { resolved.element = elements; @@ -237,7 +248,7 @@ export function resolveSchema(schema: Schema, options: ResolveOptions = {}): Sch function expandComplexTypeExtension( ct: TopLevelComplexType, allTypes: Map, - visited: Set = new Set() + visited: Set = new Set(), ): TopLevelComplexType { const extension = ct.complexContent?.extension; if (!extension?.base) return ct; @@ -257,11 +268,15 @@ function expandComplexTypeExtension( const baseType = allTypes.get(baseName); if (baseType && !visited.has(baseName)) { // Recursively expand base type first - const expandedBase = expandComplexTypeExtension(baseType, allTypes, visited); - + const expandedBase = expandComplexTypeExtension( + baseType, + allTypes, + visited, + ); + // Collect elements from base collectElementsFromType(expandedBase, mergedElements); - + // Collect attributes from base if (expandedBase.attribute) { mergedAttributes.push(...expandedBase.attribute); @@ -272,7 +287,7 @@ function expandComplexTypeExtension( collectElementsFromGroup(extension.sequence, mergedElements); collectElementsFromGroup(extension.choice, mergedElements); collectElementsFromGroup(extension.all, mergedElements); - + // Add extension attributes if (extension.attribute) { mergedAttributes.push(...extension.attribute); @@ -293,7 +308,16 @@ function expandComplexTypeExtension( // Copy other properties (excluding complexContent which we've flattened) for (const [key, value] of Object.entries(ct)) { - if (!['name', 'complexContent', 'all', 'sequence', 'choice', 'attribute'].includes(key)) { + if ( + ![ + 'name', + 'complexContent', + 'all', + 'sequence', + 'choice', + 'attribute', + ].includes(key) + ) { flattened[key] = value; } } @@ -304,7 +328,10 @@ function expandComplexTypeExtension( /** * Collect elements from a complex type's content model. */ -function collectElementsFromType(ct: TopLevelComplexType, elements: LocalElement[]): void { +function collectElementsFromType( + ct: TopLevelComplexType, + elements: LocalElement[], +): void { collectElementsFromGroup(ct.sequence, elements); collectElementsFromGroup(ct.choice, elements); collectElementsFromGroup(ct.all, elements); @@ -313,7 +340,10 @@ function collectElementsFromType(ct: TopLevelComplexType, elements: LocalElement /** * Collect elements from a group (sequence/choice/all). */ -function collectElementsFromGroup(group: ExplicitGroup | All | undefined, elements: LocalElement[]): void { +function collectElementsFromGroup( + group: ExplicitGroup | All | undefined, + elements: LocalElement[], +): void { if (!group?.element) return; elements.push(...group.element); } @@ -329,14 +359,18 @@ function collectElementsFromGroup(group: ExplicitGroup | All | undefined, elemen function expandSubstitutionGroupsInType( ct: TopLevelComplexType, allElements: Map, - substitutionGroups: Map + substitutionGroups: Map, ): TopLevelComplexType { let changed = false; const result = { ...ct } as Record; // Process sequence if (ct.sequence) { - const expanded = expandSubstitutionGroupsInGroup(ct.sequence, allElements, substitutionGroups); + const expanded = expandSubstitutionGroupsInGroup( + ct.sequence, + allElements, + substitutionGroups, + ); if (expanded !== ct.sequence) { result.sequence = expanded; changed = true; @@ -345,7 +379,11 @@ function expandSubstitutionGroupsInType( // Process all if (ct.all) { - const expanded = expandSubstitutionGroupsInGroup(ct.all, allElements, substitutionGroups); + const expanded = expandSubstitutionGroupsInGroup( + ct.all, + allElements, + substitutionGroups, + ); if (expanded !== ct.all) { result.all = expanded; changed = true; @@ -354,7 +392,11 @@ function expandSubstitutionGroupsInType( // Process choice if (ct.choice) { - const expanded = expandSubstitutionGroupsInGroup(ct.choice, allElements, substitutionGroups); + const expanded = expandSubstitutionGroupsInGroup( + ct.choice, + allElements, + substitutionGroups, + ); if (expanded !== ct.choice) { result.choice = expanded; changed = true; @@ -370,7 +412,7 @@ function expandSubstitutionGroupsInType( function expandSubstitutionGroupsInGroup( group: ExplicitGroup | All, allElements: Map, - substitutionGroups: Map + substitutionGroups: Map, ): ExplicitGroup | All { if (!group.element) return group; @@ -382,7 +424,7 @@ function expandSubstitutionGroupsInGroup( if (el.ref) { const refName = stripNsPrefix(el.ref); const refElement = allElements.get(refName); - + if (refElement?.abstract) { // This is an abstract element - expand to substitutes const substitutes = substitutionGroups.get(refName); @@ -401,7 +443,7 @@ function expandSubstitutionGroupsInGroup( } } } - + // Keep original element expandedElements.push(el); } @@ -423,14 +465,13 @@ function expandSubstitutionGroupsInGroup( */ export function getSubstitutes( abstractElementName: string, - schema: Schema + schema: Schema, ): TopLevelElement[] { const collector = new SchemaCollector(); collector.traverse(schema); return collector.substitutionGroups.get(abstractElementName) ?? []; } - /** * Collect element refs from an element's nested structure */ @@ -444,9 +485,12 @@ function collectElementRefs(el: TopLevelElement, refs: Set): void { /** * Recursively collect element refs from a complex type */ -function collectElementRefsFromType(ct: TopLevelComplexType, refs: Set): void { +function collectElementRefsFromType( + ct: TopLevelComplexType, + refs: Set, +): void { const record = ct as Record; - + // Check sequence/all/choice for element refs for (const groupKey of ['sequence', 'all', 'choice']) { const group = record[groupKey] as Record | undefined; @@ -460,12 +504,15 @@ function collectElementRefsFromType(ct: TopLevelComplexType, refs: Set): } // Recurse into nested complexType if (el.complexType) { - collectElementRefsFromType(el.complexType as TopLevelComplexType, refs); + collectElementRefsFromType( + el.complexType as TopLevelComplexType, + refs, + ); } } } } - + // Check complexContent/extension if (record.complexContent) { const cc = record.complexContent as Record; diff --git a/packages/ts-xsd/src/xsd/schema-like.ts b/packages/ts-xsd/src/xsd/schema-like.ts index a012e024..78404f64 100644 --- a/packages/ts-xsd/src/xsd/schema-like.ts +++ b/packages/ts-xsd/src/xsd/schema-like.ts @@ -1,10 +1,10 @@ /** * Schema-Like Types for Type Inference - * + * * These are minimal type constraints designed to work with `as const` schema literals. * They are intentionally looser than the full W3C types in xsd/types.ts to allow * TypeScript's compile-time type inference to work correctly. - * + * * Key differences from xsd/types.ts: * - All arrays are `readonly` for `as const` compatibility * - Properties are optional and loosely typed @@ -20,27 +20,27 @@ * Properties prefixed with $ are clearly non-W3C. */ export type SchemaExtensions = { - /** + /** * Namespace prefix declarations (xmlns:prefix -> namespace URI). * Extracted from XML namespace attributes, not part of XSD spec. * Prefixed with $ to indicate this is NOT a W3C XSD property. */ readonly $xmlns?: { readonly [prefix: string]: string }; - + /** * Original filename/path of this schema. * Used to reconstruct $imports relationships from schemaLocation references. * Prefixed with $ to indicate this is NOT a W3C XSD property. */ readonly $filename?: string; - - /** + + /** * Resolved imported schemas for cross-schema type resolution. * Actual schema objects that can be searched for type definitions. * Use this to link schemas that import each other (xs:import - different namespace). */ readonly $imports?: readonly SchemaLike[]; - + /** * Resolved included schemas for same-namespace type resolution. * Content from xs:include is in the same namespace as the including schema. @@ -64,11 +64,15 @@ export type SchemaLike = SchemaExtensions & { readonly blockDefault?: string; readonly finalDefault?: string; readonly 'xml:lang'?: string; - + // W3C XSD Schema children readonly element?: readonly ElementLike[]; - readonly complexType?: readonly ComplexTypeLike[] | { readonly [name: string]: ComplexTypeLike }; - readonly simpleType?: readonly SimpleTypeLike[] | { readonly [name: string]: SimpleTypeLike }; + readonly complexType?: + | readonly ComplexTypeLike[] + | { readonly [name: string]: ComplexTypeLike }; + readonly simpleType?: + | readonly SimpleTypeLike[] + | { readonly [name: string]: SimpleTypeLike }; readonly group?: readonly unknown[]; readonly attributeGroup?: readonly unknown[]; readonly notation?: readonly unknown[]; diff --git a/packages/ts-xsd/src/xsd/traverser.ts b/packages/ts-xsd/src/xsd/traverser.ts index 978fdd64..c430c77c 100644 --- a/packages/ts-xsd/src/xsd/traverser.ts +++ b/packages/ts-xsd/src/xsd/traverser.ts @@ -1,21 +1,21 @@ /** * Schema Traverser - OO pattern for XSD schema traversal - * + * * Uses real W3C XSD types from types.ts (not the *Like inference types). * Subclass and override `on*` methods to handle specific node types. * Context is available via `this` - no parameter passing needed. - * + * * @example * ```typescript * class TypeCollector extends SchemaTraverser { * readonly types: TopLevelComplexType[] = []; - * + * * protected override onComplexType(ct: TopLevelComplexType): void { * this.types.push(ct); * // Access context: this.currentSchema, this.source, this.depth * } * } - * + * * const collector = new TypeCollector(); * collector.traverse(schema); * console.log(collector.types); @@ -39,7 +39,12 @@ import type { // ============================================================================= /** Source of a node in the schema hierarchy */ -export type NodeSource = 'direct' | 'redefine' | 'override' | 'include' | 'import'; +export type NodeSource = + | 'direct' + | 'redefine' + | 'override' + | 'include' + | 'import'; /** Traversal options */ export interface TraverseOptions { @@ -57,7 +62,7 @@ export interface TraverseOptions { /** * Base class for OO schema traversal using real W3C XSD types. - * + * * Subclass and override the `on*` methods you need. * Context is available via `this` - no parameter passing needed. */ @@ -65,33 +70,33 @@ export abstract class SchemaTraverser { // ------------------------------------------------------------------------- // Context - Available via `this` in subclasses // ------------------------------------------------------------------------- - + /** Root schema being traversed */ protected rootSchema!: Schema; - + /** Current schema being visited */ protected currentSchema!: Schema; - + /** Source of current node (direct, redefine, override, include, import) */ protected source: NodeSource = 'direct'; - + /** Depth in schema hierarchy (0 = root) */ protected depth = 0; - + /** Traversal options */ protected options: Required = { includeImports: true, includeIncludes: true, maxDepth: Infinity, }; - + /** Visited schemas (prevents infinite loops) */ private visited = new Set(); - + // ------------------------------------------------------------------------- // Public API // ------------------------------------------------------------------------- - + /** * Traverse a schema and all its imports/includes. * Override `on*` methods to handle specific node types. @@ -103,54 +108,78 @@ export abstract class SchemaTraverser { this.traverseSchema(schema, 'direct', 0); return this; } - + // ------------------------------------------------------------------------- // Override these methods in subclasses // ------------------------------------------------------------------------- - + /** Called when entering a schema */ - protected onEnterSchema(_schema: Schema): void { /* override in subclass */ } - + protected onEnterSchema(_schema: Schema): void { + /* override in subclass */ + } + /** Called when leaving a schema */ - protected onLeaveSchema(_schema: Schema): void { /* override in subclass */ } - + protected onLeaveSchema(_schema: Schema): void { + /* override in subclass */ + } + /** Called for each top-level complexType */ - protected onComplexType(_ct: TopLevelComplexType): void { /* override in subclass */ } - + protected onComplexType(_ct: TopLevelComplexType): void { + /* override in subclass */ + } + /** Called for each top-level simpleType */ - protected onSimpleType(_st: TopLevelSimpleType): void { /* override in subclass */ } - + protected onSimpleType(_st: TopLevelSimpleType): void { + /* override in subclass */ + } + /** Called for each top-level element */ - protected onElement(_element: TopLevelElement): void { /* override in subclass */ } - + protected onElement(_element: TopLevelElement): void { + /* override in subclass */ + } + /** Called for each top-level attribute */ - protected onAttribute(_attr: TopLevelAttribute): void { /* override in subclass */ } - + protected onAttribute(_attr: TopLevelAttribute): void { + /* override in subclass */ + } + /** Called for each named group */ - protected onGroup(_group: NamedGroup): void { /* override in subclass */ } - + protected onGroup(_group: NamedGroup): void { + /* override in subclass */ + } + /** Called for each named attributeGroup */ - protected onAttributeGroup(_group: NamedAttributeGroup): void { /* override in subclass */ } - + protected onAttributeGroup(_group: NamedAttributeGroup): void { + /* override in subclass */ + } + /** Called for each redefine block */ - protected onRedefine(_redefine: Redefine): void { /* override in subclass */ } - + protected onRedefine(_redefine: Redefine): void { + /* override in subclass */ + } + /** Called for each override block */ - protected onOverride(_override: Override): void { /* override in subclass */ } - + protected onOverride(_override: Override): void { + /* override in subclass */ + } + // ------------------------------------------------------------------------- // Internal traversal logic // ------------------------------------------------------------------------- - - private traverseSchema(schema: Schema, source: NodeSource, depth: number): void { + + private traverseSchema( + schema: Schema, + source: NodeSource, + depth: number, + ): void { if (this.visited.has(schema)) return; if (depth > this.options.maxDepth) return; - + this.visited.add(schema); this.currentSchema = schema; this.source = source; this.depth = depth; - + this.onEnterSchema(schema); this.traverseSchemaChildren(schema); this.traverseRedefines(schema); @@ -159,7 +188,7 @@ export abstract class SchemaTraverser { this.traverseImports(schema, depth); this.onLeaveSchema(schema); } - + private traverseSchemaChildren(schema: Schema): void { // ComplexTypes if (schema.complexType) { @@ -167,35 +196,35 @@ export abstract class SchemaTraverser { this.onComplexType(ct); } } - + // SimpleTypes if (schema.simpleType) { for (const st of schema.simpleType) { this.onSimpleType(st); } } - + // Elements if (schema.element) { for (const element of schema.element) { this.onElement(element); } } - + // Attributes if (schema.attribute) { for (const attr of schema.attribute) { this.onAttribute(attr); } } - + // Groups if (schema.group) { for (const group of schema.group) { this.onGroup(group); } } - + // AttributeGroups if (schema.attributeGroup) { for (const group of schema.attributeGroup) { @@ -203,16 +232,16 @@ export abstract class SchemaTraverser { } } } - + private traverseRedefines(schema: Schema): void { if (!schema.redefine) return; - + const prevSource = this.source; this.source = 'redefine'; - + for (const redefine of schema.redefine) { this.onRedefine(redefine); - + if (redefine.complexType) { for (const ct of redefine.complexType) { this.onComplexType(ct); @@ -234,19 +263,19 @@ export abstract class SchemaTraverser { } } } - + this.source = prevSource; } - + private traverseOverrides(schema: Schema): void { if (!schema.override) return; - + const prevSource = this.source; this.source = 'override'; - + for (const override of schema.override) { this.onOverride(override); - + if (override.complexType) { for (const ct of override.complexType) { this.onComplexType(ct); @@ -278,21 +307,21 @@ export abstract class SchemaTraverser { } } } - + this.source = prevSource; } - + private traverseIncludes(schema: Schema, depth: number): void { if (!this.options.includeIncludes || !schema.$includes) return; - + for (const included of schema.$includes) { this.traverseSchema(included, 'include', depth + 1); } } - + private traverseImports(schema: Schema, depth: number): void { if (!this.options.includeImports || !schema.$imports) return; - + for (const imported of schema.$imports) { this.traverseSchema(imported, 'import', depth + 1); } @@ -305,12 +334,18 @@ export abstract class SchemaTraverser { /** Result of schema resolution */ export interface ResolvedSchema { - readonly complexTypes: Map; + readonly complexTypes: Map< + string, + { ct: TopLevelComplexType; schema: Schema } + >; readonly simpleTypes: Map; readonly elements: Map; readonly attributes: Map; readonly groups: Map; - readonly attributeGroups: Map; + readonly attributeGroups: Map< + string, + { group: NamedAttributeGroup; schema: Schema } + >; readonly xmlns: Map; readonly substitutionGroups: Map; } @@ -318,21 +353,36 @@ export interface ResolvedSchema { /** * Resolves a schema hierarchy into a flat structure. * All types are collected into Maps for O(1) lookup. - * + * * Precedence rules: * - redefine/override types take precedence over original * - root schema types take precedence over imported/included */ export class SchemaResolver extends SchemaTraverser { - readonly complexTypes = new Map(); - readonly simpleTypes = new Map(); - readonly elements = new Map(); - readonly attributes = new Map(); + readonly complexTypes = new Map< + string, + { ct: TopLevelComplexType; schema: Schema } + >(); + readonly simpleTypes = new Map< + string, + { st: TopLevelSimpleType; schema: Schema } + >(); + readonly elements = new Map< + string, + { element: TopLevelElement; schema: Schema } + >(); + readonly attributes = new Map< + string, + { attr: TopLevelAttribute; schema: Schema } + >(); readonly groups = new Map(); - readonly attributeGroups = new Map(); + readonly attributeGroups = new Map< + string, + { group: NamedAttributeGroup; schema: Schema } + >(); readonly xmlns = new Map(); readonly substitutionGroups = new Map(); - + /** Get the resolved schema structure */ getResolved(): ResolvedSchema { return { @@ -346,7 +396,7 @@ export class SchemaResolver extends SchemaTraverser { substitutionGroups: this.substitutionGroups, }; } - + protected override onEnterSchema(schema: Schema): void { // Collect xmlns if (schema.$xmlns) { @@ -357,38 +407,41 @@ export class SchemaResolver extends SchemaTraverser { } } } - + protected override onComplexType(ct: TopLevelComplexType): void { - const shouldReplace = !this.complexTypes.has(ct.name) || - this.source === 'redefine' || + const shouldReplace = + !this.complexTypes.has(ct.name) || + this.source === 'redefine' || this.source === 'override' || (this.depth === 0 && this.source === 'direct'); - + if (shouldReplace) { this.complexTypes.set(ct.name, { ct, schema: this.currentSchema }); } } - + protected override onSimpleType(st: TopLevelSimpleType): void { - const shouldReplace = !this.simpleTypes.has(st.name) || - this.source === 'redefine' || + const shouldReplace = + !this.simpleTypes.has(st.name) || + this.source === 'redefine' || this.source === 'override' || (this.depth === 0 && this.source === 'direct'); - + if (shouldReplace) { this.simpleTypes.set(st.name, { st, schema: this.currentSchema }); } } - + protected override onElement(element: TopLevelElement): void { - const shouldReplace = !this.elements.has(element.name) || + const shouldReplace = + !this.elements.has(element.name) || this.source === 'override' || (this.depth === 0 && this.source === 'direct'); - + if (shouldReplace) { this.elements.set(element.name, { element, schema: this.currentSchema }); } - + // Track substitution groups if (element.substitutionGroup) { const abstractName = stripNsPrefix(element.substitutionGroup); @@ -397,36 +450,42 @@ export class SchemaResolver extends SchemaTraverser { this.substitutionGroups.set(abstractName, existing); } } - + protected override onAttribute(attr: TopLevelAttribute): void { - const shouldReplace = !this.attributes.has(attr.name) || + const shouldReplace = + !this.attributes.has(attr.name) || this.source === 'override' || (this.depth === 0 && this.source === 'direct'); - + if (shouldReplace) { this.attributes.set(attr.name, { attr, schema: this.currentSchema }); } } - + protected override onGroup(group: NamedGroup): void { - const shouldReplace = !this.groups.has(group.name) || - this.source === 'redefine' || + const shouldReplace = + !this.groups.has(group.name) || + this.source === 'redefine' || this.source === 'override' || (this.depth === 0 && this.source === 'direct'); - + if (shouldReplace) { this.groups.set(group.name, { group, schema: this.currentSchema }); } } - + protected override onAttributeGroup(group: NamedAttributeGroup): void { - const shouldReplace = !this.attributeGroups.has(group.name) || - this.source === 'redefine' || + const shouldReplace = + !this.attributeGroups.has(group.name) || + this.source === 'redefine' || this.source === 'override' || (this.depth === 0 && this.source === 'direct'); - + if (shouldReplace) { - this.attributeGroups.set(group.name, { group, schema: this.currentSchema }); + this.attributeGroups.set(group.name, { + group, + schema: this.currentSchema, + }); } } } @@ -447,7 +506,10 @@ export function stripNsPrefix(qname: string): string { * Resolve a schema hierarchy into a flat structure. * Convenience function that creates a SchemaResolver and returns the result. */ -export function resolveSchemaTypes(schema: Schema, options: TraverseOptions = {}): ResolvedSchema { +export function resolveSchemaTypes( + schema: Schema, + options: TraverseOptions = {}, +): ResolvedSchema { const resolver = new SchemaResolver(); resolver.traverse(schema, options); return resolver.getResolved(); @@ -459,7 +521,7 @@ export function resolveSchemaTypes(schema: Schema, options: TraverseOptions = {} export function findComplexType( name: string, schema: Schema, - options: TraverseOptions = {} + options: TraverseOptions = {}, ): { ct: TopLevelComplexType; schema: Schema } | undefined { const resolved = resolveSchemaTypes(schema, options); return resolved.complexTypes.get(name); @@ -471,7 +533,7 @@ export function findComplexType( export function findSimpleType( name: string, schema: Schema, - options: TraverseOptions = {} + options: TraverseOptions = {}, ): { st: TopLevelSimpleType; schema: Schema } | undefined { const resolved = resolveSchemaTypes(schema, options); return resolved.simpleTypes.get(name); @@ -483,7 +545,7 @@ export function findSimpleType( export function findElement( name: string, schema: Schema, - options: TraverseOptions = {} + options: TraverseOptions = {}, ): { element: TopLevelElement; schema: Schema } | undefined { const resolved = resolveSchemaTypes(schema, options); return resolved.elements.get(name); @@ -495,7 +557,7 @@ export function findElement( export function getSubstitutes( abstractElementName: string, schema: Schema, - options: TraverseOptions = {} + options: TraverseOptions = {}, ): TopLevelElement[] { const resolved = resolveSchemaTypes(schema, options); return resolved.substitutionGroups.get(abstractElementName) ?? []; diff --git a/packages/ts-xsd/src/xsd/types.ts b/packages/ts-xsd/src/xsd/types.ts index b578ec3d..b96b2fcd 100644 --- a/packages/ts-xsd/src/xsd/types.ts +++ b/packages/ts-xsd/src/xsd/types.ts @@ -1,8 +1,8 @@ /** * XSD Types - TypeScript representation of W3C XML Schema Definition - * + * * Based on: https://www.w3.org/TR/xmlschema11-1/XMLSchema.xsd - * + * * These types represent the structure of XSD documents. * They are designed to be the result of parsing XMLSchema.xsd itself. */ @@ -17,10 +17,10 @@ /** * XML namespace declarations (xmlns:prefix -> URI mappings) - * + * * This is not part of XSD itself, but part of XML Namespaces spec. * XSD documents rely on xmlns declarations to resolve QName prefixes. - * + * * @example * ```typescript * xmlns: { @@ -39,15 +39,15 @@ export type XmlnsDeclarations = { * Allows attributes from other namespaces */ export interface OpenAttrs { - /** + /** * XML namespace declarations scoped to this element (xmlns:prefix -> namespace URI). * Inherited by child elements unless overridden. - * + * * Note: Prefixed with $ to indicate this is NOT a W3C XSD property - * it's extracted from XML namespace attributes. */ readonly $xmlns?: XmlnsDeclarations; - + /** Any additional attributes from other namespaces */ [key: string]: unknown; } @@ -62,20 +62,20 @@ export interface SchemaAttrs extends OpenAttrs { * Extracted from XML namespace attributes, not part of XSD spec. */ readonly $xmlns?: { readonly [prefix: string]: string }; - + /** * Original filename/path of this schema. * Used to reconstruct $imports relationships from schemaLocation references. */ readonly $filename?: string; - + /** * Resolved imported schemas for cross-schema type resolution (xs:import). * Actual schema objects that can be searched for type definitions. * Use this to link schemas that import each other (different namespace). */ readonly $imports?: readonly Schema[]; - + /** * Resolved included schemas for same-namespace type resolution (xs:include). * Content from xs:include is in the same namespace as the including schema. @@ -131,14 +131,14 @@ export interface Schema extends SchemaAttrs { readonly defaultAttributes?: string; readonly xpathDefaultNamespace?: string; readonly 'xml:lang'?: string; - + // Composition readonly include?: Include[]; readonly import?: Import[]; readonly redefine?: Redefine[]; readonly override?: Override[]; readonly annotation?: Annotation[]; - + // Schema top-level declarations // Note: W3C XSD defines these as arrays only. Union types with maps were removed // because they caused TypeScript inference issues. Use utility functions for lookups. @@ -149,7 +149,7 @@ export interface Schema extends SchemaAttrs { readonly element?: TopLevelElement[]; readonly attribute?: TopLevelAttribute[]; readonly notation?: Notation[]; - + // Default open content (XSD 1.1) readonly defaultOpenContent?: DefaultOpenContent; } @@ -209,16 +209,16 @@ export interface TopLevelElement extends Annotated { readonly abstract?: boolean; readonly final?: string; readonly block?: string; - + // Inline type definition readonly simpleType?: LocalSimpleType; readonly complexType?: LocalComplexType; - + // Identity constraints readonly unique?: Unique[]; readonly key?: Key[]; readonly keyref?: Keyref[]; - + // Alternatives (XSD 1.1) readonly alternative?: Alternative[]; } @@ -238,16 +238,16 @@ export interface LocalElement extends Annotated { readonly block?: string; readonly form?: FormChoice; readonly targetNamespace?: string; - + // Inline type definition readonly simpleType?: LocalSimpleType; readonly complexType?: LocalComplexType; - + // Identity constraints readonly unique?: Unique[]; readonly key?: Key[]; readonly keyref?: Keyref[]; - + // Alternatives (XSD 1.1) readonly alternative?: Alternative[]; } @@ -265,7 +265,7 @@ export interface TopLevelAttribute extends Annotated { readonly default?: string; readonly fixed?: string; readonly inheritable?: boolean; - + readonly simpleType?: LocalSimpleType; } @@ -282,7 +282,7 @@ export interface LocalAttribute extends Annotated { readonly form?: FormChoice; readonly targetNamespace?: string; readonly inheritable?: boolean; - + readonly simpleType?: LocalSimpleType; } @@ -300,11 +300,11 @@ export interface TopLevelComplexType extends Annotated { readonly final?: string; readonly block?: string; readonly defaultAttributesApply?: boolean; - + // Content model (choice) readonly simpleContent?: SimpleContent; readonly complexContent?: ComplexContent; - + // Short form (implicit restriction of anyType) readonly openContent?: OpenContent; readonly group?: GroupRef; @@ -322,11 +322,11 @@ export interface TopLevelComplexType extends Annotated { */ export interface LocalComplexType extends Annotated { readonly mixed?: boolean; - + // Content model (choice) readonly simpleContent?: SimpleContent; readonly complexContent?: ComplexContent; - + // Short form readonly openContent?: OpenContent; readonly group?: GroupRef; @@ -349,7 +349,7 @@ export interface LocalComplexType extends Annotated { export interface TopLevelSimpleType extends Annotated { readonly name: string; readonly final?: string; - + // Derivation (choice) readonly restriction?: SimpleTypeRestriction; readonly list?: List; @@ -369,7 +369,7 @@ export interface LocalSimpleType extends Annotated { export interface SimpleTypeRestriction extends Annotated { readonly base?: string; readonly simpleType?: LocalSimpleType; - + // Facets readonly minExclusive?: Facet[]; readonly minInclusive?: Facet[]; @@ -450,7 +450,7 @@ export interface ComplexContentExtension extends Annotated { export interface SimpleContentRestriction extends Annotated { readonly base: string; readonly simpleType?: LocalSimpleType; - + // Facets (same as SimpleTypeRestriction) readonly minExclusive?: Facet[]; readonly minInclusive?: Facet[]; @@ -466,7 +466,7 @@ export interface SimpleContentRestriction extends Annotated { readonly pattern?: Pattern[]; readonly assertion?: Assertion[]; readonly explicitTimezone?: Facet[]; - + readonly attribute?: LocalAttribute[]; readonly attributeGroup?: AttributeGroupRef[]; readonly anyAttribute?: AnyAttribute; @@ -491,7 +491,7 @@ export interface SimpleContentExtension extends Annotated { export interface ExplicitGroup extends Annotated { readonly minOccurs?: number | string; readonly maxOccurs?: number | string | 'unbounded'; - + readonly element?: LocalElement[]; readonly group?: GroupRef[]; readonly choice?: ExplicitGroup[]; @@ -505,7 +505,7 @@ export interface ExplicitGroup extends Annotated { export interface All extends Annotated { readonly minOccurs?: number | string; readonly maxOccurs?: number | string; - + readonly element?: LocalElement[]; readonly any?: Any[]; readonly group?: GroupRef[]; diff --git a/packages/ts-xsd/tests/fixtures/index.ts b/packages/ts-xsd/tests/fixtures/index.ts index 30bd22d4..5ff471a9 100644 --- a/packages/ts-xsd/tests/fixtures/index.ts +++ b/packages/ts-xsd/tests/fixtures/index.ts @@ -24,7 +24,7 @@ export async function getW3CSchema(): Promise { } const content = await response.text(); - + // Cache for future runs mkdirSync(dirname(CACHE_PATH), { recursive: true }); writeFileSync(CACHE_PATH, content, 'utf-8'); diff --git a/packages/ts-xsd/tests/integration/abapgit-doma.test.ts b/packages/ts-xsd/tests/integration/abapgit-doma.test.ts index df770238..2c75e7f7 100644 --- a/packages/ts-xsd/tests/integration/abapgit-doma.test.ts +++ b/packages/ts-xsd/tests/integration/abapgit-doma.test.ts @@ -1,11 +1,11 @@ /** * Integration test for abapGit DOMA schema - * + * * Tests all XSD composition features as used in adt-plugin-abapgit: * - xs:include - types/dd01v.xsd, types/dd07v.xsd (same namespace) * - xs:redefine - asx.xsd (extends AbapValuesType) * - xs:import - abapgit.xsd (no namespace) - * + * * Schema structure (from adt-plugin-abapgit/xsd/): * - doma.xsd (targetNamespace: http://www.sap.com/abapxml) * - xs:include types/dd01v.xsd (Dd01vType) @@ -14,7 +14,7 @@ * - xs:import abapgit.xsd (abapGit root element) * - asx.xsd (SAP ABAP XML envelope with asx:abap) * - abapgit.xsd (abapGit root element wrapper) - * + * * Test scenarios: * 1. RAW - No linking, preserves XSD directives as-is * 2. LINKED - With $includes/$imports, auto-discovers dependencies @@ -39,8 +39,8 @@ const generatedDir = join(__dirname, 'generated/abapgit-doma'); // Output directories for each variant const outputDirs = { - raw: 'raw', // No $includes/$imports in output, all 5 files - linked: 'linked', // With $includes/$imports and TS imports, all 5 files + raw: 'raw', // No $includes/$imports in output, all 5 files + linked: 'linked', // With $includes/$imports and TS imports, all 5 files resolved: 'resolved', // Single file with all dependencies inlined }; @@ -65,37 +65,64 @@ describe('abapGit DOMA schema integration', () => { xsdDir: '.', outputDir: join(generatedDir, outputDirs.raw), schemas: ['doma'], - autoLink: true, // Discover all schemas but don't link them + autoLink: true, // Discover all schemas but don't link them }, }, generators: [ - rawSchema({ $includes: false, $imports: false }), // Disable linking in output + rawSchema({ $includes: false, $imports: false }), // Disable linking in output ], }; const result = await runCodegen(config, { rootDir: fixturesDir }); - assert.strictEqual(result.errors.length, 0, `Errors: ${JSON.stringify(result.errors)}`); + assert.strictEqual( + result.errors.length, + 0, + `Errors: ${JSON.stringify(result.errors)}`, + ); // Should generate ALL 5 schema files - const generatedFiles = result.files.filter(f => !f.path.includes('index')); + const generatedFiles = result.files.filter( + (f) => !f.path.includes('index'), + ); console.log('\n=== RAW: Generated files ==='); - generatedFiles.forEach(f => console.log(` ${f.path}`)); - - assert.strictEqual(generatedFiles.length, 5, 'RAW should generate 5 schema files'); + generatedFiles.forEach((f) => console.log(` ${f.path}`)); - const domaFile = result.files.find(f => f.path.includes('doma') && !f.path.includes('index')); + assert.strictEqual( + generatedFiles.length, + 5, + 'RAW should generate 5 schema files', + ); + + const domaFile = result.files.find( + (f) => f.path.includes('doma') && !f.path.includes('index'), + ); assert.ok(domaFile, 'Should generate doma.ts'); const content = readFileSync(domaFile.path, 'utf-8'); // RAW: Should have raw XSD directives assert.ok(content.includes('include'), 'RAW should have include directive'); - assert.ok(content.includes('redefine'), 'RAW should have redefine directive'); - assert.ok(content.includes('schemaLocation'), 'RAW should have schemaLocation'); - assert.ok(content.includes('types/dd01v.xsd'), 'RAW should reference types/dd01v.xsd'); - assert.ok(content.includes('types/dd07v.xsd'), 'RAW should reference types/dd07v.xsd'); + assert.ok( + content.includes('redefine'), + 'RAW should have redefine directive', + ); + assert.ok( + content.includes('schemaLocation'), + 'RAW should have schemaLocation', + ); + assert.ok( + content.includes('types/dd01v.xsd'), + 'RAW should reference types/dd01v.xsd', + ); + assert.ok( + content.includes('types/dd07v.xsd'), + 'RAW should reference types/dd07v.xsd', + ); assert.ok(content.includes('asx.xsd'), 'RAW should reference asx.xsd'); - assert.ok(content.includes('abapgit.xsd'), 'RAW should reference abapgit.xsd'); + assert.ok( + content.includes('abapgit.xsd'), + 'RAW should reference abapgit.xsd', + ); assert.ok(!content.includes('$includes'), 'RAW should NOT have $includes'); assert.ok(!content.includes('$imports'), 'RAW should NOT have $imports'); }); @@ -110,25 +137,37 @@ describe('abapGit DOMA schema integration', () => { xsdDir: '.', outputDir: join(generatedDir, outputDirs.linked), schemas: ['doma'], - autoLink: true, // Auto-discover all dependencies + autoLink: true, // Auto-discover all dependencies }, }, generators: [ - rawSchema({ $includes: true, $imports: true }), // Enable linking + rawSchema({ $includes: true, $imports: true }), // Enable linking ], }; const result = await runCodegen(config, { rootDir: fixturesDir }); - assert.strictEqual(result.errors.length, 0, `Errors: ${JSON.stringify(result.errors)}`); + assert.strictEqual( + result.errors.length, + 0, + `Errors: ${JSON.stringify(result.errors)}`, + ); // Should generate ALL 5 schema files - const generatedFiles = result.files.filter(f => !f.path.includes('index')); + const generatedFiles = result.files.filter( + (f) => !f.path.includes('index'), + ); console.log('\n=== LINKED: Generated files ==='); - generatedFiles.forEach(f => console.log(` ${f.path}`)); - - assert.strictEqual(generatedFiles.length, 5, 'LINKED should generate 5 schema files'); + generatedFiles.forEach((f) => console.log(` ${f.path}`)); + + assert.strictEqual( + generatedFiles.length, + 5, + 'LINKED should generate 5 schema files', + ); - const domaFile = result.files.find(f => f.path.includes('doma') && !f.path.includes('index')); + const domaFile = result.files.find( + (f) => f.path.includes('doma') && !f.path.includes('index'), + ); assert.ok(domaFile, 'Should generate doma.ts'); const content = readFileSync(domaFile.path, 'utf-8'); @@ -136,13 +175,28 @@ describe('abapGit DOMA schema integration', () => { // LINKED: Should have $imports and $includes assert.ok(content.includes('$imports'), 'LINKED should have $imports'); assert.ok(content.includes('$includes'), 'LINKED should have $includes'); - assert.ok(content.includes("import abapgit from './abapgit'"), 'LINKED should have abapgit import'); - assert.ok(content.includes("import dd01v from './types/dd01v'"), 'LINKED should have dd01v import'); - assert.ok(content.includes("import dd07v from './types/dd07v'"), 'LINKED should have dd07v import'); + assert.ok( + content.includes("import abapgit from './abapgit'"), + 'LINKED should have abapgit import', + ); + assert.ok( + content.includes("import dd01v from './types/dd01v'"), + 'LINKED should have dd01v import', + ); + assert.ok( + content.includes("import dd07v from './types/dd07v'"), + 'LINKED should have dd07v import', + ); // Should have redefine content (AbapValuesType extension) - assert.ok(content.includes('redefine'), 'LINKED should have redefine (extends AbapValuesType)'); - assert.ok(content.includes('AbapValuesType'), 'LINKED should have AbapValuesType'); + assert.ok( + content.includes('redefine'), + 'LINKED should have redefine (extends AbapValuesType)', + ); + assert.ok( + content.includes('AbapValuesType'), + 'LINKED should have AbapValuesType', + ); }); // ============================================================================ @@ -158,27 +212,35 @@ describe('abapGit DOMA schema integration', () => { 'abapgit-doma': { xsdDir: '.', outputDir: join(generatedDir, outputDirs.resolved), - schemas: ['doma'], // Only entry point - autoLink: true, // Discover all schemas for linking + schemas: ['doma'], // Only entry point + autoLink: true, // Discover all schemas for linking }, }, generators: [ - rawSchema({ - resolveAll: true, // Merge ALL dependencies (includes + imports)! + rawSchema({ + resolveAll: true, // Merge ALL dependencies (includes + imports)! }), ], }; const result = await runCodegen(config, { rootDir: fixturesDir }); - assert.strictEqual(result.errors.length, 0, `Errors: ${JSON.stringify(result.errors)}`); + assert.strictEqual( + result.errors.length, + 0, + `Errors: ${JSON.stringify(result.errors)}`, + ); // Still generates all 5 files (autoLink discovers them) // but doma.ts should have merged content from ALL dependencies - const generatedFiles = result.files.filter(f => !f.path.includes('index')); + const generatedFiles = result.files.filter( + (f) => !f.path.includes('index'), + ); console.log('\n=== RESOLVED: Generated files ==='); - generatedFiles.forEach(f => console.log(` ${f.path}`)); + generatedFiles.forEach((f) => console.log(` ${f.path}`)); - const domaFile = result.files.find(f => f.path.includes('doma.ts') && !f.path.includes('index')); + const domaFile = result.files.find( + (f) => f.path.includes('doma.ts') && !f.path.includes('index'), + ); assert.ok(domaFile, 'Should generate doma.ts'); const content = readFileSync(domaFile.path, 'utf-8'); @@ -186,32 +248,59 @@ describe('abapGit DOMA schema integration', () => { console.log(content); // RESOLVED: Should NOT have $includes/$imports arrays or TypeScript imports - assert.ok(!content.includes('$includes'), 'RESOLVED should NOT have $includes'); - assert.ok(!content.includes('$imports'), 'RESOLVED should NOT have $imports'); - assert.ok(!content.includes('import '), 'RESOLVED should NOT have TypeScript imports'); + assert.ok( + !content.includes('$includes'), + 'RESOLVED should NOT have $includes', + ); + assert.ok( + !content.includes('$imports'), + 'RESOLVED should NOT have $imports', + ); + assert.ok( + !content.includes('import '), + 'RESOLVED should NOT have TypeScript imports', + ); // RESOLVED: Should have inlined types from includes (merged from dd01v, dd07v) - assert.ok(content.includes('Dd01vType'), 'RESOLVED should have Dd01vType inlined'); - assert.ok(content.includes('Dd07vType'), 'RESOLVED should have Dd07vType inlined'); + assert.ok( + content.includes('Dd01vType'), + 'RESOLVED should have Dd01vType inlined', + ); + assert.ok( + content.includes('Dd07vType'), + 'RESOLVED should have Dd07vType inlined', + ); // RESOLVED: Elements from chameleon schemas (no targetNamespace) ARE merged // abapGit element is from abapgit.xsd (no namespace) - chameleon schemas adopt importing namespace // This follows XSD semantics: schemas without targetNamespace merge into importing schema - + // The resolved schema should have elements from same namespace AND chameleon schemas const hasElements = content.includes('element:'); if (hasElements) { const rootElementSection = content.split('complexType:')[0]; // abapGit SHOULD be present (from chameleon schema abapgit.xsd) - assert.ok(rootElementSection.includes('name: "abapGit"'), 'RESOLVED should have abapGit element (chameleon schema)'); + assert.ok( + rootElementSection.includes('name: "abapGit"'), + 'RESOLVED should have abapGit element (chameleon schema)', + ); } // RESOLVED: Should have types from asx.xsd (AbapType, AbapValuesType) - types ARE merged for extension resolution - assert.ok(content.includes('AbapType'), 'RESOLVED should have AbapType from asx.xsd'); + assert.ok( + content.includes('AbapType'), + 'RESOLVED should have AbapType from asx.xsd', + ); // RESOLVED: Should NOT have include/import/redefine directives (content is merged) - assert.ok(!content.includes('include:'), 'RESOLVED should NOT have include directive'); - assert.ok(!content.includes('"import":'), 'RESOLVED should NOT have import directive'); + assert.ok( + !content.includes('include:'), + 'RESOLVED should NOT have include directive', + ); + assert.ok( + !content.includes('"import":'), + 'RESOLVED should NOT have import directive', + ); console.log(`\n=== RESOLVED file size: ${content.length} chars ===`); }); @@ -221,57 +310,87 @@ describe('abapGit DOMA schema integration', () => { // ============================================================================ it('should automatically load all dependent schemas with loadSchema autoLink', () => { const domaPath = join(fixturesDir, 'doma.xsd'); - + // Load with autoLink - should automatically load all dependencies const schema = loadSchema(domaPath, { autoLink: true }); // Verify $filename is set assert.ok(schema.$filename, 'Should have $filename'); - assert.ok(schema.$filename.endsWith('doma.xsd'), `$filename should be doma.xsd, got: ${schema.$filename}`); + assert.ok( + schema.$filename.endsWith('doma.xsd'), + `$filename should be doma.xsd, got: ${schema.$filename}`, + ); // Verify targetNamespace assert.strictEqual(schema.targetNamespace, 'http://www.sap.com/abapxml'); // Verify $includes populated from xs:include (dd01v.xsd, dd07v.xsd) assert.ok(schema.$includes, '$includes should be populated'); - assert.strictEqual(schema.$includes.length, 2, 'Should have 2 includes (dd01v, dd07v)'); + assert.strictEqual( + schema.$includes.length, + 2, + 'Should have 2 includes (dd01v, dd07v)', + ); // Verify included schemas have their types const includeFilenames = schema.$includes.map((s: Schema) => s.$filename); console.log('\n=== loadSchema autoLink: Included schemas ==='); console.log(` ${includeFilenames.join(', ')}`); - + // Check dd01v types - const dd01vSchema = schema.$includes.find((s: Schema) => s.$filename?.includes('dd01v')); + const dd01vSchema = schema.$includes.find((s: Schema) => + s.$filename?.includes('dd01v'), + ); assert.ok(dd01vSchema, 'Should have dd01v.xsd in $includes'); - assert.ok(dd01vSchema.complexType?.some(ct => ct.name === 'Dd01vType'), 'dd01v should have Dd01vType'); + assert.ok( + dd01vSchema.complexType?.some((ct) => ct.name === 'Dd01vType'), + 'dd01v should have Dd01vType', + ); // Check dd07v types - const dd07vSchema = schema.$includes.find((s: Schema) => s.$filename?.includes('dd07v')); + const dd07vSchema = schema.$includes.find((s: Schema) => + s.$filename?.includes('dd07v'), + ); assert.ok(dd07vSchema, 'Should have dd07v.xsd in $includes'); // Verify $imports populated from xs:import (abapgit.xsd) assert.ok(schema.$imports, '$imports should be populated'); - assert.strictEqual(schema.$imports.length, 1, 'Should have 1 import (abapgit)'); - + assert.strictEqual( + schema.$imports.length, + 1, + 'Should have 1 import (abapgit)', + ); + const abapgitSchema = schema.$imports[0]; - assert.ok(abapgitSchema.$filename?.includes('abapgit'), 'Should have abapgit.xsd in $imports'); + assert.ok( + abapgitSchema.$filename?.includes('abapgit'), + 'Should have abapgit.xsd in $imports', + ); // Verify redefine has $schema populated (asx.xsd) assert.ok(schema.redefine, 'Should have redefine'); assert.strictEqual(schema.redefine.length, 1, 'Should have 1 redefine'); - + const redefine = schema.redefine[0]; const redefineSchema = (redefine as { $schema?: Schema }).$schema; assert.ok(redefineSchema, 'redefine should have $schema populated'); - assert.ok(redefineSchema.$filename?.includes('asx'), 'redefine.$schema should be asx.xsd'); - assert.ok(redefineSchema.complexType?.some(ct => ct.name === 'AbapValuesType'), - 'asx.xsd should have AbapValuesType'); + assert.ok( + redefineSchema.$filename?.includes('asx'), + 'redefine.$schema should be asx.xsd', + ); + assert.ok( + redefineSchema.complexType?.some((ct) => ct.name === 'AbapValuesType'), + 'asx.xsd should have AbapValuesType', + ); console.log('\n=== Schema dependency tree ==='); console.log(`doma.xsd (${schema.targetNamespace})`); - console.log(` $includes: [${schema.$includes.map((s: Schema) => s.$filename).join(', ')}]`); - console.log(` $imports: [${schema.$imports.map((s: Schema) => s.$filename).join(', ')}]`); + console.log( + ` $includes: [${schema.$includes.map((s: Schema) => s.$filename).join(', ')}]`, + ); + console.log( + ` $imports: [${schema.$imports.map((s: Schema) => s.$filename).join(', ')}]`, + ); console.log(` redefine.$schema: ${redefineSchema.$filename}`); }); @@ -286,35 +405,48 @@ describe('abapGit DOMA schema integration', () => { const allTypes: string[] = []; // Types from main schema - schema.complexType?.forEach(ct => allTypes.push(`doma:${ct.name}`)); - schema.simpleType?.forEach(st => allTypes.push(`doma:${st.name}`)); + schema.complexType?.forEach((ct) => allTypes.push(`doma:${ct.name}`)); + schema.simpleType?.forEach((st) => allTypes.push(`doma:${st.name}`)); // Types from includes schema.$includes?.forEach((inc: Schema) => { - inc.complexType?.forEach(ct => allTypes.push(`include:${ct.name}`)); - inc.simpleType?.forEach(st => allTypes.push(`include:${st.name}`)); + inc.complexType?.forEach((ct) => allTypes.push(`include:${ct.name}`)); + inc.simpleType?.forEach((st) => allTypes.push(`include:${st.name}`)); }); // Types from imports schema.$imports?.forEach((imp: Schema) => { - imp.complexType?.forEach(ct => allTypes.push(`import:${ct.name}`)); - imp.simpleType?.forEach(st => allTypes.push(`import:${st.name}`)); + imp.complexType?.forEach((ct) => allTypes.push(`import:${ct.name}`)); + imp.simpleType?.forEach((st) => allTypes.push(`import:${st.name}`)); }); // Types from redefine base schema - schema.redefine?.forEach(red => { + schema.redefine?.forEach((red) => { const redefineSchema = (red as { $schema?: Schema }).$schema; - redefineSchema?.complexType?.forEach(ct => allTypes.push(`redefine-base:${ct.name}`)); - redefineSchema?.simpleType?.forEach(st => allTypes.push(`redefine-base:${st.name}`)); + redefineSchema?.complexType?.forEach((ct) => + allTypes.push(`redefine-base:${ct.name}`), + ); + redefineSchema?.simpleType?.forEach((st) => + allTypes.push(`redefine-base:${st.name}`), + ); }); console.log('\n=== All available types ==='); console.log(allTypes.join('\n')); // Verify key types are available - assert.ok(allTypes.includes('include:Dd01vType'), 'Should have Dd01vType from include'); - assert.ok(allTypes.includes('redefine-base:AbapValuesType'), 'Should have AbapValuesType from redefine base'); - assert.ok(allTypes.includes('redefine-base:AbapType'), 'Should have AbapType from redefine base'); + assert.ok( + allTypes.includes('include:Dd01vType'), + 'Should have Dd01vType from include', + ); + assert.ok( + allTypes.includes('redefine-base:AbapValuesType'), + 'Should have AbapValuesType from redefine base', + ); + assert.ok( + allTypes.includes('redefine-base:AbapType'), + 'Should have AbapType from redefine base', + ); }); // ============================================================================ @@ -322,19 +454,41 @@ describe('abapGit DOMA schema integration', () => { // ============================================================================ it('should produce different outputs for RAW vs LINKED vs RESOLVED', async () => { // Read both generated files - const rawContent = readFileSync(join(generatedDir, outputDirs.raw, 'doma.ts'), 'utf-8'); - const linkedContent = readFileSync(join(generatedDir, outputDirs.linked, 'doma.ts'), 'utf-8'); + const rawContent = readFileSync( + join(generatedDir, outputDirs.raw, 'doma.ts'), + 'utf-8', + ); + const linkedContent = readFileSync( + join(generatedDir, outputDirs.linked, 'doma.ts'), + 'utf-8', + ); // RAW and LINKED should be different - assert.notStrictEqual(rawContent, linkedContent, 'RAW and LINKED should be different'); + assert.notStrictEqual( + rawContent, + linkedContent, + 'RAW and LINKED should be different', + ); // RAW has schemaLocation paths - assert.ok(rawContent.includes('schemaLocation'), 'RAW should have schemaLocation'); - + assert.ok( + rawContent.includes('schemaLocation'), + 'RAW should have schemaLocation', + ); + // LINKED has $imports with TypeScript import - assert.ok(linkedContent.includes('$imports'), 'LINKED should have $imports'); - assert.ok(linkedContent.includes('$includes'), 'LINKED should have $includes'); - assert.ok(linkedContent.includes("import abapgit from"), 'LINKED should have TypeScript import'); + assert.ok( + linkedContent.includes('$imports'), + 'LINKED should have $imports', + ); + assert.ok( + linkedContent.includes('$includes'), + 'LINKED should have $includes', + ); + assert.ok( + linkedContent.includes('import abapgit from'), + 'LINKED should have TypeScript import', + ); console.log('\n=== Output sizes ==='); console.log(`RAW: ${rawContent.length} chars`); @@ -346,16 +500,16 @@ describe('abapGit DOMA schema integration', () => { // ============================================================================ it('should generate TypeScript interfaces from LINKED schema', () => { const domaPath = join(fixturesDir, 'doma.xsd'); - + // Load with autoLink - schema has $includes/$imports populated const linkedSchema = loadSchema(domaPath, { autoLink: true }); console.log('\n=== LINKED Interface Generation ==='); - + // Generate interfaces using the existing (complex) generator // This generator traverses $imports and $includes to resolve types // Note: The existing generator requires a rootElement to start from - const { code: interfaces } = generateInterfaces(linkedSchema, { + const { code: interfaces } = generateInterfaces(linkedSchema, { addJsDoc: true, }); @@ -365,15 +519,19 @@ describe('abapGit DOMA schema integration', () => { // Write to file for inspection const linkedInterfacesDir = join(generatedDir, 'linked'); - if (!existsSync(linkedInterfacesDir)) mkdirSync(linkedInterfacesDir, { recursive: true }); - writeFileSync(join(linkedInterfacesDir, 'interfaces.ts'), interfaces || '// No interfaces generated'); + if (!existsSync(linkedInterfacesDir)) + mkdirSync(linkedInterfacesDir, { recursive: true }); + writeFileSync( + join(linkedInterfacesDir, 'interfaces.ts'), + interfaces || '// No interfaces generated', + ); console.log(`Written to: ${join(linkedInterfacesDir, 'interfaces.ts')}`); // The existing generator may return empty if no rootElement is specified // and the schema doesn't have a clear entry point. This is expected behavior. // The key insight is that the LINKED generator needs to traverse $imports/$includes // to find types, which adds complexity. - + // For schemas with clear root elements, it would generate interfaces // For now, just verify it doesn't crash assert.ok(typeof interfaces === 'string', 'Should return a string'); @@ -384,22 +542,28 @@ describe('abapGit DOMA schema integration', () => { // ============================================================================ it('should generate TypeScript interfaces from RESOLVED schema using resolveSchema', () => { const domaPath = join(fixturesDir, 'doma.xsd'); - + // Load with autoLink first const linkedSchema = loadSchema(domaPath, { autoLink: true }); - + // Use resolveSchema to include ALL elements (including referenced ones) // This is needed for resolving element refs in interface generation const mergedSchema = resolveSchema(linkedSchema); console.log('\n=== MERGED Interface Generation (using resolveSchema) ==='); - console.log(`Merged schema has ${mergedSchema.complexType?.length ?? 0} complexTypes`); - console.log(`Merged schema has ${mergedSchema.simpleType?.length ?? 0} simpleTypes`); - console.log(`Merged schema has ${mergedSchema.element?.length ?? 0} elements`); - + console.log( + `Merged schema has ${mergedSchema.complexType?.length ?? 0} complexTypes`, + ); + console.log( + `Merged schema has ${mergedSchema.simpleType?.length ?? 0} simpleTypes`, + ); + console.log( + `Merged schema has ${mergedSchema.element?.length ?? 0} elements`, + ); + // Generate interfaces using the simplified generator // This generator works with pre-merged schemas - no import traversal needed - const { code: interfaces } = generateInterfaces(mergedSchema, { + const { code: interfaces } = generateInterfaces(mergedSchema, { addJsDoc: true, }); @@ -408,18 +572,31 @@ describe('abapGit DOMA schema integration', () => { // Should have interfaces for all merged types assert.ok(interfaces.length > 0, 'Should generate interfaces'); - + // Should have types that were originally in includes (now merged) - assert.ok(interfaces.includes('Dd01vType'), 'Should have Dd01vType (merged from include)'); - assert.ok(interfaces.includes('Dd07vType'), 'Should have Dd07vType (merged from include)'); - + assert.ok( + interfaces.includes('Dd01vType'), + 'Should have Dd01vType (merged from include)', + ); + assert.ok( + interfaces.includes('Dd07vType'), + 'Should have Dd07vType (merged from include)', + ); + // Should have types from redefine base (now merged) - assert.ok(interfaces.includes('AbapValuesType'), 'Should have AbapValuesType (merged from redefine)'); - assert.ok(interfaces.includes('AbapType'), 'Should have AbapType (merged from redefine)'); + assert.ok( + interfaces.includes('AbapValuesType'), + 'Should have AbapValuesType (merged from redefine)', + ); + assert.ok( + interfaces.includes('AbapType'), + 'Should have AbapType (merged from redefine)', + ); // Write to file for inspection const mergedInterfacesDir = join(generatedDir, 'merged'); - if (!existsSync(mergedInterfacesDir)) mkdirSync(mergedInterfacesDir, { recursive: true }); + if (!existsSync(mergedInterfacesDir)) + mkdirSync(mergedInterfacesDir, { recursive: true }); writeFileSync(join(mergedInterfacesDir, 'interfaces.ts'), interfaces); console.log(`Written to: ${join(mergedInterfacesDir, 'interfaces.ts')}`); @@ -431,11 +608,11 @@ describe('abapGit DOMA schema integration', () => { // ============================================================================ it('should compare LINKED vs MERGED interface generation approaches', () => { const domaPath = join(fixturesDir, 'doma.xsd'); - + // LINKED approach - uses existing complex generator const linkedSchema = loadSchema(domaPath, { autoLink: true }); const { code: linkedInterfaces } = generateInterfaces(linkedSchema); - + // MERGED approach - uses resolveSchema + simple generator const mergedSchema = resolveSchema(linkedSchema); const { code: mergedInterfaces } = generateInterfaces(mergedSchema); @@ -450,22 +627,28 @@ describe('abapGit DOMA schema integration', () => { // Key types should be in MERGED output const keyTypes = ['Dd01vType', 'Dd07vType', 'AbapValuesType', 'AbapType']; for (const typeName of keyTypes) { - assert.ok(mergedInterfaces.includes(typeName), `MERGED should have ${typeName}`); + assert.ok( + mergedInterfaces.includes(typeName), + `MERGED should have ${typeName}`, + ); } // Count interfaces in merged output - const mergedCount = (mergedInterfaces.match(/export interface/g) ?? []).length; - const mergedTypeCount = (mergedInterfaces.match(/export type/g) ?? []).length; - + const mergedCount = (mergedInterfaces.match(/export interface/g) ?? []) + .length; + const mergedTypeCount = (mergedInterfaces.match(/export type/g) ?? []) + .length; + console.log(`MERGED interface count: ${mergedCount}`); console.log(`MERGED type alias count: ${mergedTypeCount}`); // Log the type names generated - const mergedTypeNames = mergedInterfaces.match(/export (interface|type) (\w+)/g) ?? []; - + const mergedTypeNames = + mergedInterfaces.match(/export (interface|type) (\w+)/g) ?? []; + console.log('\n--- MERGED types ---'); console.log(mergedTypeNames.join('\n')); - + // Key insight: The MERGED approach is simpler because: // 1. All types are in one flat schema // 2. No need to traverse $imports/$includes @@ -474,6 +657,8 @@ describe('abapGit DOMA schema integration', () => { console.log('MERGED approach simplifies interface generation by:'); console.log(' 1. Collecting all types into a single flat schema'); console.log(' 2. Eliminating need for cross-schema type resolution'); - console.log(' 3. Enabling direct map lookups instead of recursive searches'); + console.log( + ' 3. Enabling direct map lookups instead of recursive searches', + ); }); }); diff --git a/packages/ts-xsd/tests/integration/includes.test.ts b/packages/ts-xsd/tests/integration/includes.test.ts index 9db81319..8abd5ad7 100644 --- a/packages/ts-xsd/tests/integration/includes.test.ts +++ b/packages/ts-xsd/tests/integration/includes.test.ts @@ -1,11 +1,11 @@ /** * Integration test for xs:include support - * + * * Tests 3 variants of include handling: * 1. raw - preserves include directive as-is (no linking) * 2. linked - converts include to $includes with TypeScript imports * 3. resolved - merges included content directly (self-contained) - * + * * Output directories: * - generated/raw/ - Raw include directive preserved * - generated/linked/ - $includes with imports @@ -52,24 +52,42 @@ describe('xs:include integration', () => { }, }, generators: [ - rawSchema({ $includes: false }), // Disable $includes, keep raw include + rawSchema({ $includes: false }), // Disable $includes, keep raw include ], }; const result = await runCodegen(config, { rootDir: fixturesDir }); - assert.strictEqual(result.errors.length, 0, `Errors: ${JSON.stringify(result.errors)}`); + assert.strictEqual( + result.errors.length, + 0, + `Errors: ${JSON.stringify(result.errors)}`, + ); - const documentFile = result.files.find(f => f.path.includes('document') && !f.path.includes('index')); + const documentFile = result.files.find( + (f) => f.path.includes('document') && !f.path.includes('index'), + ); assert.ok(documentFile, 'Should generate document.ts'); const content = readFileSync(documentFile.path, 'utf-8'); // RAW: Should have include directive, NOT $includes - assert.ok(content.includes('include:'), 'RAW should have include: property'); - assert.ok(content.includes('schemaLocation'), 'RAW should have schemaLocation'); - assert.ok(content.includes('common.xsd'), 'RAW should reference common.xsd'); + assert.ok( + content.includes('include:'), + 'RAW should have include: property', + ); + assert.ok( + content.includes('schemaLocation'), + 'RAW should have schemaLocation', + ); + assert.ok( + content.includes('common.xsd'), + 'RAW should reference common.xsd', + ); assert.ok(!content.includes('$includes'), 'RAW should NOT have $includes'); - assert.ok(!content.includes("import common"), 'RAW should NOT have import statement'); + assert.ok( + !content.includes('import common'), + 'RAW should NOT have import statement', + ); }); it('should generate LINKED output - $includes with TypeScript imports', async () => { @@ -82,27 +100,48 @@ describe('xs:include integration', () => { }, }, generators: [ - rawSchema({ $includes: true }), // Enable $includes (default) + rawSchema({ $includes: true }), // Enable $includes (default) ], }; const result = await runCodegen(config, { rootDir: fixturesDir }); - assert.strictEqual(result.errors.length, 0, `Errors: ${JSON.stringify(result.errors)}`); + assert.strictEqual( + result.errors.length, + 0, + `Errors: ${JSON.stringify(result.errors)}`, + ); - const documentFile = result.files.find(f => f.path.includes('document') && !f.path.includes('index')); + const documentFile = result.files.find( + (f) => f.path.includes('document') && !f.path.includes('index'), + ); assert.ok(documentFile, 'Should generate document.ts'); const content = readFileSync(documentFile.path, 'utf-8'); // LINKED: Should have $includes and import, NOT raw include assert.ok(content.includes('$includes'), 'LINKED should have $includes'); - assert.ok(content.includes("import common from './common'"), 'LINKED should have import statement'); - assert.ok(!content.includes('include:'), 'LINKED should NOT have include: property'); - assert.ok(!content.includes('schemaLocation'), 'LINKED should NOT have schemaLocation'); + assert.ok( + content.includes("import common from './common'"), + 'LINKED should have import statement', + ); + assert.ok( + !content.includes('include:'), + 'LINKED should NOT have include: property', + ); + assert.ok( + !content.includes('schemaLocation'), + 'LINKED should NOT have schemaLocation', + ); // Should have document's own content - assert.ok(content.includes('DocumentType'), 'LINKED should have DocumentType'); - assert.ok(content.includes('substitutionGroup'), 'LINKED should have substitutionGroup'); + assert.ok( + content.includes('DocumentType'), + 'LINKED should have DocumentType', + ); + assert.ok( + content.includes('substitutionGroup'), + 'LINKED should have substitutionGroup', + ); }); it('should generate RESOLVED output - merged content, self-contained', async () => { @@ -115,48 +154,99 @@ describe('xs:include integration', () => { }, }, generators: [ - rawSchema({ resolveIncludes: true }), // Merge includes + rawSchema({ resolveIncludes: true }), // Merge includes ], }; const result = await runCodegen(config, { rootDir: fixturesDir }); - assert.strictEqual(result.errors.length, 0, `Errors: ${JSON.stringify(result.errors)}`); + assert.strictEqual( + result.errors.length, + 0, + `Errors: ${JSON.stringify(result.errors)}`, + ); - const documentFile = result.files.find(f => f.path.includes('document') && !f.path.includes('index')); + const documentFile = result.files.find( + (f) => f.path.includes('document') && !f.path.includes('index'), + ); assert.ok(documentFile, 'Should generate document.ts'); const content = readFileSync(documentFile.path, 'utf-8'); // RESOLVED: Should NOT have any include references - assert.ok(!content.includes('$includes'), 'RESOLVED should NOT have $includes'); - assert.ok(!content.includes('include:'), 'RESOLVED should NOT have include:'); - assert.ok(!content.includes("import common"), 'RESOLVED should NOT have import statement'); + assert.ok( + !content.includes('$includes'), + 'RESOLVED should NOT have $includes', + ); + assert.ok( + !content.includes('include:'), + 'RESOLVED should NOT have include:', + ); + assert.ok( + !content.includes('import common'), + 'RESOLVED should NOT have import statement', + ); // RESOLVED: Should have MERGED content from common.xsd - assert.ok(content.includes('wrapper'), 'RESOLVED should have wrapper element from common.xsd'); - assert.ok(content.includes('"content"'), 'RESOLVED should have content element from common.xsd'); - assert.ok(content.includes('MetadataType'), 'RESOLVED should have MetadataType from common.xsd'); + assert.ok( + content.includes('wrapper'), + 'RESOLVED should have wrapper element from common.xsd', + ); + assert.ok( + content.includes('"content"'), + 'RESOLVED should have content element from common.xsd', + ); + assert.ok( + content.includes('MetadataType'), + 'RESOLVED should have MetadataType from common.xsd', + ); // RESOLVED: Should still have document's own content - assert.ok(content.includes('DocumentType'), 'RESOLVED should have DocumentType from document.xsd'); - assert.ok(content.includes('"document"'), 'RESOLVED should have document element'); + assert.ok( + content.includes('DocumentType'), + 'RESOLVED should have DocumentType from document.xsd', + ); + assert.ok( + content.includes('"document"'), + 'RESOLVED should have document element', + ); }); it('should produce different outputs for each variant', async () => { // Read all 3 generated files - const rawContent = readFileSync(join(generatedDir, outputDirs.raw, 'document.ts'), 'utf-8'); - const linkedContent = readFileSync(join(generatedDir, outputDirs.linked, 'document.ts'), 'utf-8'); - const resolvedContent = readFileSync(join(generatedDir, outputDirs.resolved, 'document.ts'), 'utf-8'); + const rawContent = readFileSync( + join(generatedDir, outputDirs.raw, 'document.ts'), + 'utf-8', + ); + const linkedContent = readFileSync( + join(generatedDir, outputDirs.linked, 'document.ts'), + 'utf-8', + ); + const resolvedContent = readFileSync( + join(generatedDir, outputDirs.resolved, 'document.ts'), + 'utf-8', + ); // All should be different - assert.notStrictEqual(rawContent, linkedContent, 'RAW and LINKED should be different'); - assert.notStrictEqual(linkedContent, resolvedContent, 'LINKED and RESOLVED should be different'); - assert.notStrictEqual(rawContent, resolvedContent, 'RAW and RESOLVED should be different'); + assert.notStrictEqual( + rawContent, + linkedContent, + 'RAW and LINKED should be different', + ); + assert.notStrictEqual( + linkedContent, + resolvedContent, + 'LINKED and RESOLVED should be different', + ); + assert.notStrictEqual( + rawContent, + resolvedContent, + 'RAW and RESOLVED should be different', + ); // RESOLVED should be the longest (has merged content) assert.ok( resolvedContent.length > linkedContent.length, - 'RESOLVED should be longer than LINKED (merged content)' + 'RESOLVED should be longer than LINKED (merged content)', ); }); }); diff --git a/packages/ts-xsd/tests/integration/resolution-demo.test.ts b/packages/ts-xsd/tests/integration/resolution-demo.test.ts index 25d76734..702f5497 100644 --- a/packages/ts-xsd/tests/integration/resolution-demo.test.ts +++ b/packages/ts-xsd/tests/integration/resolution-demo.test.ts @@ -1,27 +1,27 @@ /** * Resolution Demo Integration Tests - * + * * Demonstrates all XSD composition features and their resolution modes: - * + * * 1. RAW - Preserves XSD directives as-is: * - include: [{schemaLocation: "..."}] * - import: [{namespace: "...", schemaLocation: "..."}] * - redefine: [{schemaLocation: "...", complexType: [...]}] * - No TypeScript imports - * + * * 2. LINKED - Converts to linked schema objects: * - $includes: [schemaObject, ...] * - $imports: [schemaObject, ...] * - TypeScript imports at top of file * - Redefine content merged - * + * * 3. RESOLVED - Fully flattened schema: * - No include/import/redefine directives * - All types from all schemas merged * - Extensions expanded inline * - Substitution groups expanded * - Groups/attributeGroups inlined - * + * * Schema structure: * - main.xsd (entry point) * ├── xs:include common.xsd (same namespace - shared types) @@ -69,33 +69,64 @@ describe('Schema Resolution Demo', () => { schemas: ['main', 'common', 'base', 'types'], }, }, - generators: [ - rawSchema({ $includes: false, $imports: false }), - ], + generators: [rawSchema({ $includes: false, $imports: false })], }; const result = await runCodegen(config, { rootDir: fixturesDir }); - assert.strictEqual(result.errors.length, 0, `Errors: ${JSON.stringify(result.errors)}`); + assert.strictEqual( + result.errors.length, + 0, + `Errors: ${JSON.stringify(result.errors)}`, + ); - const mainFile = result.files.find(f => f.path.includes('main') && !f.path.includes('index')); + const mainFile = result.files.find( + (f) => f.path.includes('main') && !f.path.includes('index'), + ); assert.ok(mainFile, 'Should generate main.ts'); const content = readFileSync(mainFile.path, 'utf-8'); // RAW: Should have raw XSD directives - assert.ok(content.includes('include:') || content.includes('"include"'), 'RAW should have include directive'); - assert.ok(content.includes('"import"') || content.includes("'import'"), 'RAW should have import directive'); - assert.ok(content.includes('redefine:') || content.includes('"redefine"'), 'RAW should have redefine directive'); - assert.ok(content.includes('schemaLocation'), 'RAW should have schemaLocation'); - assert.ok(content.includes('common.xsd'), 'RAW should reference common.xsd'); + assert.ok( + content.includes('include:') || content.includes('"include"'), + 'RAW should have include directive', + ); + assert.ok( + content.includes('"import"') || content.includes("'import'"), + 'RAW should have import directive', + ); + assert.ok( + content.includes('redefine:') || content.includes('"redefine"'), + 'RAW should have redefine directive', + ); + assert.ok( + content.includes('schemaLocation'), + 'RAW should have schemaLocation', + ); + assert.ok( + content.includes('common.xsd'), + 'RAW should reference common.xsd', + ); assert.ok(content.includes('base.xsd'), 'RAW should reference base.xsd'); - assert.ok(content.includes('types.xsd'), 'RAW should reference types.xsd'); + assert.ok( + content.includes('types.xsd'), + 'RAW should reference types.xsd', + ); // RAW: Should NOT have linked properties - assert.ok(!content.includes('$includes'), 'RAW should NOT have $includes'); + assert.ok( + !content.includes('$includes'), + 'RAW should NOT have $includes', + ); assert.ok(!content.includes('$imports'), 'RAW should NOT have $imports'); - assert.ok(!content.includes("import common from"), 'RAW should NOT have TS import for common'); - assert.ok(!content.includes("import base from"), 'RAW should NOT have TS import for base'); + assert.ok( + !content.includes('import common from'), + 'RAW should NOT have TS import for common', + ); + assert.ok( + !content.includes('import base from'), + 'RAW should NOT have TS import for base', + ); }); }); @@ -109,15 +140,19 @@ describe('Schema Resolution Demo', () => { schemas: ['main', 'common', 'base', 'types'], }, }, - generators: [ - rawSchema({ $includes: true, $imports: true }), - ], + generators: [rawSchema({ $includes: true, $imports: true })], }; const result = await runCodegen(config, { rootDir: fixturesDir }); - assert.strictEqual(result.errors.length, 0, `Errors: ${JSON.stringify(result.errors)}`); + assert.strictEqual( + result.errors.length, + 0, + `Errors: ${JSON.stringify(result.errors)}`, + ); - const mainFile = result.files.find(f => f.path.includes('main') && !f.path.includes('index')); + const mainFile = result.files.find( + (f) => f.path.includes('main') && !f.path.includes('index'), + ); assert.ok(mainFile, 'Should generate main.ts'); const content = readFileSync(mainFile.path, 'utf-8'); @@ -125,15 +160,15 @@ describe('Schema Resolution Demo', () => { // LINKED: Should have $includes/$imports assert.ok( content.includes('$includes') || content.includes('$imports'), - 'LINKED should have $includes or $imports' + 'LINKED should have $includes or $imports', ); // LINKED: Should have TypeScript imports assert.ok( - content.includes("import common from") || - content.includes("import base from") || - content.includes("import types from"), - 'LINKED should have TypeScript imports' + content.includes('import common from') || + content.includes('import base from') || + content.includes('import types from'), + 'LINKED should have TypeScript imports', ); // LINKED: Should NOT have raw directives with schemaLocation @@ -149,7 +184,7 @@ describe('Schema Resolution Demo', () => { // NOTE: The rawSchema generator's resolve option has issues with complex // schemas that use redefine. For now, we use resolveIncludes only. // Full resolution (resolve: true) needs further work on the generator. - + const config: CodegenConfig = { sources: { 'resolution-demo': { @@ -159,31 +194,49 @@ describe('Schema Resolution Demo', () => { }, }, generators: [ - rawSchema({ + rawSchema({ // resolve: true, // TODO: Fix generator to handle redefine properly - resolveIncludes: true, // Merge includes - $imports: false, // Don't output $imports - $includes: false, // Don't output $includes + resolveIncludes: true, // Merge includes + $imports: false, // Don't output $imports + $includes: false, // Don't output $includes }), ], }; const result = await runCodegen(config, { rootDir: fixturesDir }); - assert.strictEqual(result.errors.length, 0, `Errors: ${JSON.stringify(result.errors)}`); + assert.strictEqual( + result.errors.length, + 0, + `Errors: ${JSON.stringify(result.errors)}`, + ); - const mainFile = result.files.find(f => f.path.includes('main') && !f.path.includes('index')); + const mainFile = result.files.find( + (f) => f.path.includes('main') && !f.path.includes('index'), + ); assert.ok(mainFile, 'Should generate main.ts'); const content = readFileSync(mainFile.path, 'utf-8'); // RESOLVED: Verify file was generated with schema content - assert.ok(content.includes('PersonType'), 'RESOLVED should have PersonType from main.xsd'); - assert.ok(content.includes('CompanyType'), 'RESOLVED should have CompanyType from main.xsd'); - assert.ok(content.includes('OrderType'), 'RESOLVED should have OrderType from main.xsd'); - + assert.ok( + content.includes('PersonType'), + 'RESOLVED should have PersonType from main.xsd', + ); + assert.ok( + content.includes('CompanyType'), + 'RESOLVED should have CompanyType from main.xsd', + ); + assert.ok( + content.includes('OrderType'), + 'RESOLVED should have OrderType from main.xsd', + ); + // With resolveIncludes: true, $includes should not appear - assert.ok(!content.includes('$includes'), 'RESOLVED should NOT have $includes'); - + assert.ok( + !content.includes('$includes'), + 'RESOLVED should NOT have $includes', + ); + // TODO: When full resolution is implemented: // - No include/import/redefine directives // - No schemaLocation @@ -202,24 +255,42 @@ describe('Schema Resolution Demo', () => { assert.ok(mainXsd.includes('xs:redefine'), 'Should have xs:redefine'); assert.ok(mainXsd.includes('xs:extension'), 'Should have xs:extension'); // substitutionGroup is in base.xsd, main.xsd references AbstractItem - assert.ok(mainXsd.includes('base:AbstractItem'), 'Should reference AbstractItem (substitution group head)'); + assert.ok( + mainXsd.includes('base:AbstractItem'), + 'Should reference AbstractItem (substitution group head)', + ); assert.ok(mainXsd.includes('xs:group ref'), 'Should have group ref'); - assert.ok(mainXsd.includes('xs:attributeGroup ref'), 'Should have attributeGroup ref'); + assert.ok( + mainXsd.includes('xs:attributeGroup ref'), + 'Should have attributeGroup ref', + ); }); it('base.xsd should have abstract element and substitutes', async () => { const baseXsd = readFileSync(join(fixturesDir, 'base.xsd'), 'utf-8'); - assert.ok(baseXsd.includes('abstract="true"'), 'Should have abstract element'); - assert.ok(baseXsd.includes('substitutionGroup'), 'Should have substitution group members'); + assert.ok( + baseXsd.includes('abstract="true"'), + 'Should have abstract element', + ); + assert.ok( + baseXsd.includes('substitutionGroup'), + 'Should have substitution group members', + ); assert.ok(baseXsd.includes('xs:group name='), 'Should have named group'); - assert.ok(baseXsd.includes('xs:attributeGroup name='), 'Should have named attributeGroup'); + assert.ok( + baseXsd.includes('xs:attributeGroup name='), + 'Should have named attributeGroup', + ); }); it('common.xsd should have shared types (same namespace as main)', async () => { const commonXsd = readFileSync(join(fixturesDir, 'common.xsd'), 'utf-8'); - assert.ok(commonXsd.includes('http://example.com/main'), 'Should have same namespace as main'); + assert.ok( + commonXsd.includes('http://example.com/main'), + 'Should have same namespace as main', + ); assert.ok(commonXsd.includes('EmailType'), 'Should have EmailType'); assert.ok(commonXsd.includes('MetadataType'), 'Should have MetadataType'); }); @@ -227,7 +298,10 @@ describe('Schema Resolution Demo', () => { it('types.xsd should have types for redefine (same namespace as main)', async () => { const typesXsd = readFileSync(join(fixturesDir, 'types.xsd'), 'utf-8'); - assert.ok(typesXsd.includes('http://example.com/main'), 'Should have same namespace as main'); + assert.ok( + typesXsd.includes('http://example.com/main'), + 'Should have same namespace as main', + ); assert.ok(typesXsd.includes('AddressType'), 'Should have AddressType'); assert.ok(typesXsd.includes('PriorityType'), 'Should have PriorityType'); }); @@ -237,32 +311,48 @@ describe('Schema Resolution Demo', () => { it('RAW and LINKED outputs should be different', async () => { // First generate both await Promise.all([ - runCodegen({ - sources: { - 'resolution-demo': { - xsdDir: '.', - outputDir: join(generatedDir, outputDirs.raw), - schemas: ['main'], + runCodegen( + { + sources: { + 'resolution-demo': { + xsdDir: '.', + outputDir: join(generatedDir, outputDirs.raw), + schemas: ['main'], + }, }, + generators: [rawSchema({ $includes: false, $imports: false })], }, - generators: [rawSchema({ $includes: false, $imports: false })], - }, { rootDir: fixturesDir }), - runCodegen({ - sources: { - 'resolution-demo': { - xsdDir: '.', - outputDir: join(generatedDir, outputDirs.linked), - schemas: ['main'], + { rootDir: fixturesDir }, + ), + runCodegen( + { + sources: { + 'resolution-demo': { + xsdDir: '.', + outputDir: join(generatedDir, outputDirs.linked), + schemas: ['main'], + }, }, + generators: [rawSchema({ $includes: true, $imports: true })], }, - generators: [rawSchema({ $includes: true, $imports: true })], - }, { rootDir: fixturesDir }), + { rootDir: fixturesDir }, + ), ]); - const rawContent = readFileSync(join(generatedDir, outputDirs.raw, 'main.ts'), 'utf-8'); - const linkedContent = readFileSync(join(generatedDir, outputDirs.linked, 'main.ts'), 'utf-8'); + const rawContent = readFileSync( + join(generatedDir, outputDirs.raw, 'main.ts'), + 'utf-8', + ); + const linkedContent = readFileSync( + join(generatedDir, outputDirs.linked, 'main.ts'), + 'utf-8', + ); - assert.notStrictEqual(rawContent, linkedContent, 'RAW and LINKED should be different'); + assert.notStrictEqual( + rawContent, + linkedContent, + 'RAW and LINKED should be different', + ); }); }); }); diff --git a/packages/ts-xsd/tests/integration/roundtrip.test.ts b/packages/ts-xsd/tests/integration/roundtrip.test.ts index 3569c034..d05b320d 100644 --- a/packages/ts-xsd/tests/integration/roundtrip.test.ts +++ b/packages/ts-xsd/tests/integration/roundtrip.test.ts @@ -1,6 +1,6 @@ /** * XSD Roundtrip Test - * + * * Tests that XMLSchema can be: * 1. Parsed from XSD → Schema object * 2. Built back to XSD string @@ -22,16 +22,18 @@ describe('XSD Roundtrip', () => { it('should build XSD from XMLSchema', () => { const xsd = buildXsd(XMLSchema); - + assert.ok(xsd.startsWith(' { const xsd = buildXsd(XMLSchema); const reparsed = parseXsd(xsd); - + assert.equal(reparsed.targetNamespace, XMLSchema.targetNamespace); assert.equal(reparsed.version, XMLSchema.version); assert.equal(reparsed.elementFormDefault, XMLSchema.elementFormDefault); @@ -40,76 +42,76 @@ describe('XSD Roundtrip', () => { it('should preserve complexType count in roundtrip', () => { const xsd = buildXsd(XMLSchema); const reparsed = parseXsd(xsd); - + const original = XMLSchema.complexType; const parsed = reparsed.complexType; const originalCount = Array.isArray(original) ? original.length : 0; const reparsedCount = Array.isArray(parsed) ? parsed.length : 0; - + assert.equal(reparsedCount, originalCount, 'complexType count mismatch'); }); it('should preserve simpleType count in roundtrip', () => { const xsd = buildXsd(XMLSchema); const reparsed = parseXsd(xsd); - + const original = XMLSchema.simpleType; const parsed = reparsed.simpleType; const originalCount = Array.isArray(original) ? original.length : 0; const reparsedCount = Array.isArray(parsed) ? parsed.length : 0; - + assert.equal(reparsedCount, originalCount, 'simpleType count mismatch'); }); it('should preserve group count in roundtrip', () => { const xsd = buildXsd(XMLSchema); const reparsed = parseXsd(xsd); - + const originalCount = XMLSchema.group?.length ?? 0; const reparsedCount = reparsed.group?.length ?? 0; - + assert.equal(reparsedCount, originalCount, 'group count mismatch'); }); it('should preserve element count in roundtrip', () => { const xsd = buildXsd(XMLSchema); const reparsed = parseXsd(xsd); - + const originalCount = XMLSchema.element?.length ?? 0; const reparsedCount = reparsed.element?.length ?? 0; - + assert.equal(reparsedCount, originalCount, 'element count mismatch'); }); it('should preserve attributeGroup count in roundtrip', () => { const xsd = buildXsd(XMLSchema); const reparsed = parseXsd(xsd); - + const originalCount = XMLSchema.attributeGroup?.length ?? 0; const reparsedCount = reparsed.attributeGroup?.length ?? 0; - + assert.equal(reparsedCount, originalCount, 'attributeGroup count mismatch'); }); it('should preserve annotation count in roundtrip', () => { const xsd = buildXsd(XMLSchema); const reparsed = parseXsd(xsd); - + const originalCount = XMLSchema.annotation?.length ?? 0; const reparsedCount = reparsed.annotation?.length ?? 0; - + assert.equal(reparsedCount, originalCount, 'annotation count mismatch'); }); it('should preserve import in roundtrip', () => { const xsd = buildXsd(XMLSchema); const reparsed = parseXsd(xsd); - + const originalCount = XMLSchema.import?.length ?? 0; const reparsedCount = reparsed.import?.length ?? 0; - + assert.equal(reparsedCount, originalCount, 'import count mismatch'); - + if (originalCount > 0 && XMLSchema.import && reparsed.import) { const original = XMLSchema.import[0]; const parsed = reparsed.import[0]; @@ -121,34 +123,42 @@ describe('XSD Roundtrip', () => { it('should preserve complexType names in roundtrip', () => { const xsd = buildXsd(XMLSchema); const reparsed = parseXsd(xsd); - + const original = XMLSchema.complexType; const parsed = reparsed.complexType; - const originalNames = Array.isArray(original) ? original.map(ct => ct.name).sort() : []; - const reparsedNames = Array.isArray(parsed) ? parsed.map(ct => ct.name).sort() : []; - + const originalNames = Array.isArray(original) + ? original.map((ct) => ct.name).sort() + : []; + const reparsedNames = Array.isArray(parsed) + ? parsed.map((ct) => ct.name).sort() + : []; + assert.deepEqual(reparsedNames, originalNames); }); it('should preserve simpleType names in roundtrip', () => { const xsd = buildXsd(XMLSchema); const reparsed = parseXsd(xsd); - + const original = XMLSchema.simpleType; const parsed = reparsed.simpleType; - const originalNames = Array.isArray(original) ? original.map(st => st.name).sort() : []; - const reparsedNames = Array.isArray(parsed) ? parsed.map(st => st.name).sort() : []; - + const originalNames = Array.isArray(original) + ? original.map((st) => st.name).sort() + : []; + const reparsedNames = Array.isArray(parsed) + ? parsed.map((st) => st.name).sort() + : []; + assert.deepEqual(reparsedNames, originalNames); }); it('should preserve element names in roundtrip', () => { const xsd = buildXsd(XMLSchema); const reparsed = parseXsd(xsd); - - const originalNames = XMLSchema.element?.map(el => el.name).sort() ?? []; - const reparsedNames = reparsed.element?.map(el => el.name).sort() ?? []; - + + const originalNames = XMLSchema.element?.map((el) => el.name).sort() ?? []; + const reparsedNames = reparsed.element?.map((el) => el.name).sort() ?? []; + assert.deepEqual(reparsedNames, originalNames); }); @@ -156,10 +166,10 @@ describe('XSD Roundtrip', () => { // Create a schema without xmlns - no xmlns should be added const schemaWithoutXmlns: Schema = { targetNamespace: 'http://example.com', - simpleType: [{ name: 'test', restriction: { base: 'xs:string' } }] + simpleType: [{ name: 'test', restriction: { base: 'xs:string' } }], }; const xsd = buildXsd(schemaWithoutXmlns); - + // No xmlns should be invented assert.ok(!xsd.includes('xmlns:')); assert.ok(!xsd.includes('xmlns=')); @@ -171,7 +181,7 @@ describe('XSD Roundtrip', () => { it('should preserve original $xmlns when present', () => { // XMLSchema has $xmlns:xs from parsing - should be preserved const xsd = buildXsd(XMLSchema); - + assert.ok(XMLSchema.$xmlns?.xs, 'Parsed schema should have $xmlns.xs'); assert.ok(xsd.includes('xmlns:xs=')); assert.ok(xsd.includes('xs:schema')); @@ -179,7 +189,7 @@ describe('XSD Roundtrip', () => { it('should build without pretty printing', () => { const xsd = buildXsd(XMLSchema, { pretty: false }); - + // Without pretty printing, there should be no newlines between elements assert.ok(!xsd.includes('>\n <')); }); diff --git a/packages/ts-xsd/tests/integration/w3c-roundtrip.test.ts b/packages/ts-xsd/tests/integration/w3c-roundtrip.test.ts index 71b98e51..4a82adec 100644 --- a/packages/ts-xsd/tests/integration/w3c-roundtrip.test.ts +++ b/packages/ts-xsd/tests/integration/w3c-roundtrip.test.ts @@ -1,17 +1,17 @@ /** * W3C XMLSchema.xsd Roundtrip Test - * + * * This test downloads the official W3C XMLSchema.xsd from the internet, * parses it, builds it back to XML, parses again, and builds again. - * + * * The double-roundtrip proves: * 1. Parser correctly handles real-world W3C XSD * 2. Builder produces valid XSD that can be re-parsed * 3. Second roundtrip produces identical output (stability) - * + * * Test flow: * W3C XSD (download) → parse → Schema1 → build → XSD1 → parse → Schema2 → build → XSD2 - * + * * Verification: * - Schema1 ≈ Schema2 (semantic equivalence) * - XSD1 === XSD2 (byte-identical after first roundtrip) @@ -26,37 +26,52 @@ function sortByName(arr: T[]): T[] { return [...arr].sort((a, b) => (a.name || '').localeCompare(b.name || '')); } -function compareSchemas(schema1: Schema, schema2: Schema): { equal: boolean; differences: string[] } { +function compareSchemas( + schema1: Schema, + schema2: Schema, +): { equal: boolean; differences: string[] } { const differences: string[] = []; - + // Compare counts and names only - property ordering within objects may differ // This is acceptable as XSD semantics are preserved const arrayKeys: (keyof Schema)[] = [ - 'annotation', 'import', 'include', 'redefine', 'override', - 'simpleType', 'complexType', 'group', 'attributeGroup', 'element', 'attribute', 'notation' + 'annotation', + 'import', + 'include', + 'redefine', + 'override', + 'simpleType', + 'complexType', + 'group', + 'attributeGroup', + 'element', + 'attribute', + 'notation', ]; - + // Check scalar properties if (schema1.targetNamespace !== schema2.targetNamespace) { - differences.push(`targetNamespace: ${schema1.targetNamespace} vs ${schema2.targetNamespace}`); + differences.push( + `targetNamespace: ${schema1.targetNamespace} vs ${schema2.targetNamespace}`, + ); } if (schema1.version !== schema2.version) { differences.push(`version: ${schema1.version} vs ${schema2.version}`); } - + // Check array counts for (const key of arrayKeys) { const val1 = schema1[key]; const val2 = schema2[key]; - + const len1 = Array.isArray(val1) ? val1.length : 0; const len2 = Array.isArray(val2) ? val2.length : 0; - + if (len1 !== len2) { differences.push(`${key}: count differs (${len1} vs ${len2})`); } } - + return { equal: differences.length === 0, differences }; } @@ -74,56 +89,95 @@ describe('W3C XMLSchema.xsd Double Roundtrip', () => { it('should parse W3C XMLSchema.xsd', () => { schema1 = parseXsd(originalXsd); - + assert.ok(schema1.targetNamespace, 'Should have targetNamespace'); assert.equal(schema1.targetNamespace, 'http://www.w3.org/2001/XMLSchema'); - assert.ok(schema1.complexType && Array.isArray(schema1.complexType) && schema1.complexType.length > 0, 'Should have complexTypes'); - assert.ok(schema1.simpleType && Array.isArray(schema1.simpleType) && schema1.simpleType.length > 0, 'Should have simpleTypes'); - assert.ok(schema1.element && Array.isArray(schema1.element) && schema1.element.length > 0, 'Should have elements'); - assert.ok(schema1.group && Array.isArray(schema1.group) && schema1.group.length > 0, 'Should have groups'); - - console.log(`Parsed: ${schema1.complexType?.length} complexTypes, ${schema1.simpleType?.length} simpleTypes, ${schema1.element?.length} elements`); + assert.ok( + schema1.complexType && + Array.isArray(schema1.complexType) && + schema1.complexType.length > 0, + 'Should have complexTypes', + ); + assert.ok( + schema1.simpleType && + Array.isArray(schema1.simpleType) && + schema1.simpleType.length > 0, + 'Should have simpleTypes', + ); + assert.ok( + schema1.element && + Array.isArray(schema1.element) && + schema1.element.length > 0, + 'Should have elements', + ); + assert.ok( + schema1.group && Array.isArray(schema1.group) && schema1.group.length > 0, + 'Should have groups', + ); + + console.log( + `Parsed: ${schema1.complexType?.length} complexTypes, ${schema1.simpleType?.length} simpleTypes, ${schema1.element?.length} elements`, + ); }); it('should build XSD from parsed schema (first roundtrip)', () => { xsd1 = buildXsd(schema1); - - assert.ok(xsd1.startsWith(' { schema2 = parseXsd(xsd1); - + assert.ok(schema2.targetNamespace, 'Should have targetNamespace'); assert.equal(schema2.targetNamespace, schema1.targetNamespace); - - console.log(`Re-parsed: ${schema2.complexType?.length} complexTypes, ${schema2.simpleType?.length} simpleTypes`); + + console.log( + `Re-parsed: ${schema2.complexType?.length} complexTypes, ${schema2.simpleType?.length} simpleTypes`, + ); }); it('should produce semantically equivalent schemas', () => { const { equal, differences } = compareSchemas(schema1, schema2); - + if (!equal) { console.log('Schema differences:', differences); } - - assert.ok(equal, `Schemas should be semantically equivalent. Differences: ${differences.join(', ')}`); + + assert.ok( + equal, + `Schemas should be semantically equivalent. Differences: ${differences.join(', ')}`, + ); }); it('should build XSD from re-parsed schema (second roundtrip)', () => { xsd2 = buildXsd(schema2); - - console.log(`Built XSD2: ${xsd2.length} chars, ${xsd2.split('\n').length} lines`); + + console.log( + `Built XSD2: ${xsd2.length} chars, ${xsd2.split('\n').length} lines`, + ); }); it('should produce identical XSD after double roundtrip', () => { // After the first roundtrip, subsequent roundtrips should be stable - assert.equal(xsd1, xsd2, 'XSD1 and XSD2 should be byte-identical (stable roundtrip)'); - + assert.equal( + xsd1, + xsd2, + 'XSD1 and XSD2 should be byte-identical (stable roundtrip)', + ); + console.log('✅ Double roundtrip produces identical output!'); }); @@ -136,7 +190,7 @@ describe('W3C XMLSchema.xsd Double Roundtrip', () => { attributeGroup: schema1.attributeGroup?.length ?? 0, annotation: schema1.annotation?.length ?? 0, }; - + const counts2 = { complexType: (schema2.complexType as any[])?.length ?? 0, simpleType: (schema2.simpleType as any[])?.length ?? 0, @@ -145,43 +199,46 @@ describe('W3C XMLSchema.xsd Double Roundtrip', () => { attributeGroup: (schema2.attributeGroup as any[])?.length ?? 0, annotation: (schema2.annotation as any[])?.length ?? 0, }; - + for (const [key, val1] of Object.entries(counts1)) { const val2 = counts2[key as keyof typeof counts2]; assert.equal(val2, val1, `${key} count should match: ${val1} vs ${val2}`); } - + console.log('Type counts:', counts1); }); it('should preserve all type names through roundtrip', () => { const getNames = (arr: unknown) => { if (!Array.isArray(arr)) return []; - return arr.map((x: any) => x.name).filter(Boolean).sort(); + return arr + .map((x: any) => x.name) + .filter(Boolean) + .sort(); }; - + assert.deepEqual( getNames(schema2.complexType), getNames(schema1.complexType), - 'ComplexType names should match' + 'ComplexType names should match', ); - + assert.deepEqual( getNames(schema2.simpleType), getNames(schema1.simpleType), - 'SimpleType names should match' + 'SimpleType names should match', ); - + assert.deepEqual( getNames(schema2.element), getNames(schema1.element), - 'Element names should match' + 'Element names should match', ); - + assert.deepEqual( getNames(schema2.group), getNames(schema1.group), - 'Group names should match' + 'Group names should match', ); }); }); diff --git a/packages/ts-xsd/tests/unit/build-abapgit-format.test.ts b/packages/ts-xsd/tests/unit/build-abapgit-format.test.ts index 8df1f991..47802467 100644 --- a/packages/ts-xsd/tests/unit/build-abapgit-format.test.ts +++ b/packages/ts-xsd/tests/unit/build-abapgit-format.test.ts @@ -1,12 +1,12 @@ /** * Test for abapGit XML format building - * + * * The abapGit XML format has a specific namespace structure: * - - NO namespace prefix (root element from chameleon schema) * - - asx namespace prefix * - - asx namespace prefix * - , - NO namespace prefix (unqualified local elements) - * + * * Expected output: * ```xml * @@ -20,7 +20,7 @@ * * * ``` - * + * * The key insight is: * - elementFormDefault="unqualified" means local elements (DEVC, CTEXT) don't get prefix * - The root element (abapGit) should NOT have prefix because it's from a schema with NO targetNamespace @@ -67,13 +67,9 @@ describe('abapGit XML format building', () => { name: 'abap', complexType: { sequence: { - element: [ - { name: 'values', type: 'asx:DevcValuesType' }, - ], + element: [{ name: 'values', type: 'asx:DevcValuesType' }], }, - attribute: [ - { name: 'version', type: 'xs:string', default: '1.0' }, - ], + attribute: [{ name: 'version', type: 'xs:string', default: '1.0' }], }, }, ], @@ -81,17 +77,13 @@ describe('abapGit XML format building', () => { { name: 'DevcValuesType', sequence: { - element: [ - { name: 'DEVC', type: 'asx:DevcType', minOccurs: 0 }, - ], + element: [{ name: 'DEVC', type: 'asx:DevcType', minOccurs: 0 }], }, }, { name: 'DevcType', all: { - element: [ - { name: 'CTEXT', type: 'xs:string', minOccurs: 0 }, - ], + element: [{ name: 'CTEXT', type: 'xs:string', minOccurs: 0 }], }, }, ], @@ -112,25 +104,46 @@ describe('abapGit XML format building', () => { }, }; - const xml = build(devcSchema, data, { rootElement: 'abapGit', pretty: true }); + const xml = build(devcSchema, data, { + rootElement: 'abapGit', + pretty: true, + }); console.log('Generated XML:'); console.log(xml); // Root element should NOT have asx: prefix // Because abapGit is from a chameleon schema (no targetNamespace) - assert.ok(xml.includes(' without prefix'); - assert.ok(!xml.includes(' without prefix', + ); + assert.ok( + !xml.includes('') || xml.includes('') || xml.includes('') || xml.includes('') || xml.includes(' has no prefix) * - "qualified": Root element and local elements DO get namespace prefix - * + * * Note: This is a pragmatic interpretation for the abapGit use case. * Strict XSD semantics would have global elements always prefixed, but * abapGit requires unqualified root elements. @@ -74,21 +74,34 @@ describe('XML builder elementFormDefault handling', () => { CHILD2: 'value2', }; - const xml = build(unqualifiedSchema, data, { rootElement: 'root', pretty: true }); + const xml = build(unqualifiedSchema, data, { + rootElement: 'root', + pretty: true, + }); console.log('Generated XML (unqualified):'); console.log(xml); // Root element should NOT have prefix when elementFormDefault="unqualified" // This matches abapGit format where has no prefix assert.ok(xml.includes('') || xml.includes('') || xml.includes(' { @@ -97,13 +110,25 @@ describe('XML builder elementFormDefault handling', () => { CHILD2: 'value2', }; - const xml = build(qualifiedSchema, data, { rootElement: 'root', pretty: true }); + const xml = build(qualifiedSchema, data, { + rootElement: 'root', + pretty: true, + }); console.log('Generated XML (qualified):'); console.log(xml); // All elements should have prefix when elementFormDefault="qualified" - assert.ok(xml.includes(' { describe('BuildOptions', () => { it('should use default options', () => { - const schema: Schema = { + const schema: Schema = { $xmlns: { xs: 'http://www.w3.org/2001/XMLSchema' }, - targetNamespace: 'http://example.com' + targetNamespace: 'http://example.com', }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes('xmlns:xs=')); assert.ok(xsd.includes('\n')); // pretty print by default }); it('should use custom prefix for element names', () => { - const schema: Schema = { + const schema: Schema = { $xmlns: { xsd: 'http://www.w3.org/2001/XMLSchema' }, - targetNamespace: 'http://example.com' + targetNamespace: 'http://example.com', }; const xsd = buildXsd(schema, { prefix: 'xsd' }); - + assert.ok(xsd.includes('xmlns:xsd=')); assert.ok(xsd.includes(' { it('should disable pretty printing', () => { const schema: Schema = { targetNamespace: 'http://example.com' }; const xsd = buildXsd(schema, { pretty: false }); - + // Without pretty print, no newlines between elements assert.ok(!xsd.includes('\n <')); }); @@ -43,10 +43,10 @@ describe('buildXsd', () => { it('should use custom indent', () => { const schema: Schema = { targetNamespace: 'http://example.com', - simpleType: [{ name: 'test', restriction: { base: 'xs:string' } }] + simpleType: [{ name: 'test', restriction: { base: 'xs:string' } }], }; const xsd = buildXsd(schema, { indent: ' ' }); // 4 spaces - + assert.ok(xsd.includes(' { 'xml:lang': 'en', }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes('id="schema-id"')); assert.ok(xsd.includes('targetNamespace="http://example.com"')); assert.ok(xsd.includes('version="1.0"')); @@ -83,10 +83,10 @@ describe('buildXsd', () => { describe('Include/Import/Redefine/Override', () => { it('should build include', () => { const schema: Schema = { - include: [{ schemaLocation: 'other.xsd', id: 'inc1' }] + include: [{ schemaLocation: 'other.xsd', id: 'inc1' }], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes(' { it('should build include with annotation', () => { const schema: Schema = { - include: [{ - schemaLocation: 'other.xsd', - annotation: { documentation: [{ _text: 'Include docs' }] } - }] + include: [ + { + schemaLocation: 'other.xsd', + annotation: { documentation: [{ _text: 'Include docs' }] }, + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes(' { it('should build import', () => { const schema: Schema = { - import: [{ - namespace: 'http://other.com', - schemaLocation: 'other.xsd', - id: 'imp1' - }] + import: [ + { + namespace: 'http://other.com', + schemaLocation: 'other.xsd', + id: 'imp1', + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes(' { it('should build redefine', () => { const schema: Schema = { - redefine: [{ - schemaLocation: 'base.xsd', - simpleType: [{ name: 'myType', restriction: { base: 'xs:string' } }], - complexType: [{ name: 'myComplex' }], - group: [{ name: 'myGroup' }], - attributeGroup: [{ name: 'myAttrGroup' }], - annotation: [{ documentation: [{ _text: 'Redefine docs' }] }] - }] + redefine: [ + { + schemaLocation: 'base.xsd', + simpleType: [ + { name: 'myType', restriction: { base: 'xs:string' } }, + ], + complexType: [{ name: 'myComplex' }], + group: [{ name: 'myGroup' }], + attributeGroup: [{ name: 'myAttrGroup' }], + annotation: [{ documentation: [{ _text: 'Redefine docs' }] }], + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes(' { it('should build override', () => { const schema: Schema = { - override: [{ - schemaLocation: 'base.xsd', - simpleType: [{ name: 'myType', restriction: { base: 'xs:string' } }], - complexType: [{ name: 'myComplex' }], - group: [{ name: 'myGroup' }], - attributeGroup: [{ name: 'myAttrGroup' }], - element: [{ name: 'myElement' }], - attribute: [{ name: 'myAttr' }], - notation: [{ name: 'myNotation', public: 'public-id' }], - annotation: [{ documentation: [{ _text: 'Override docs' }] }] - }] + override: [ + { + schemaLocation: 'base.xsd', + simpleType: [ + { name: 'myType', restriction: { base: 'xs:string' } }, + ], + complexType: [{ name: 'myComplex' }], + group: [{ name: 'myGroup' }], + attributeGroup: [{ name: 'myAttrGroup' }], + element: [{ name: 'myElement' }], + attribute: [{ name: 'myAttr' }], + notation: [{ name: 'myNotation', public: 'public-id' }], + annotation: [{ documentation: [{ _text: 'Override docs' }] }], + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes(' { describe('SimpleType', () => { it('should build simpleType with restriction', () => { const schema: Schema = { - simpleType: [{ - name: 'myString', - id: 'st1', - final: '#all', - restriction: { - base: 'xs:string', - minLength: [{ value: '1' }], - maxLength: [{ value: '100' }] - } - }] + simpleType: [ + { + name: 'myString', + id: 'st1', + final: '#all', + restriction: { + base: 'xs:string', + minLength: [{ value: '1' }], + maxLength: [{ value: '100' }], + }, + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes(' { it('should build simpleType with list', () => { const schema: Schema = { - simpleType: [{ - name: 'myList', - list: { - itemType: 'xs:string', - annotation: { documentation: [{ _text: 'List docs' }] } - } - }] + simpleType: [ + { + name: 'myList', + list: { + itemType: 'xs:string', + annotation: { documentation: [{ _text: 'List docs' }] }, + }, + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes(' { const schema: Schema = { - simpleType: [{ - name: 'myList', - list: { - simpleType: { restriction: { base: 'xs:integer' } } - } - }] + simpleType: [ + { + name: 'myList', + list: { + simpleType: { restriction: { base: 'xs:integer' } }, + }, + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes(' { const schema: Schema = { - simpleType: [{ - name: 'myUnion', - union: { - memberTypes: 'xs:string xs:integer', - annotation: { documentation: [{ _text: 'Union docs' }] } - } - }] + simpleType: [ + { + name: 'myUnion', + union: { + memberTypes: 'xs:string xs:integer', + annotation: { documentation: [{ _text: 'Union docs' }] }, + }, + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes(' { const schema: Schema = { - simpleType: [{ - name: 'myUnion', - union: { - simpleType: [ - { restriction: { base: 'xs:string' } }, - { restriction: { base: 'xs:integer' } } - ] - } - }] + simpleType: [ + { + name: 'myUnion', + union: { + simpleType: [ + { restriction: { base: 'xs:string' } }, + { restriction: { base: 'xs:integer' } }, + ], + }, + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes(' { it('should build all facets', () => { const schema: Schema = { - simpleType: [{ - name: 'allFacets', - restriction: { - base: 'xs:decimal', - minExclusive: [{ value: '0' }], - minInclusive: [{ value: '1' }], - maxExclusive: [{ value: '100' }], - maxInclusive: [{ value: '99' }], - totalDigits: [{ value: '5' }], - fractionDigits: [{ value: '2' }], - length: [{ value: '10' }], - enumeration: [{ value: 'A' }, { value: 'B' }], - whiteSpace: [{ value: 'collapse' }], - pattern: [{ value: '[A-Z]+' }], - assertion: [{ test: '$value > 0' }], - explicitTimezone: [{ value: 'required' }] - } - }] + simpleType: [ + { + name: 'allFacets', + restriction: { + base: 'xs:decimal', + minExclusive: [{ value: '0' }], + minInclusive: [{ value: '1' }], + maxExclusive: [{ value: '100' }], + maxInclusive: [{ value: '99' }], + totalDigits: [{ value: '5' }], + fractionDigits: [{ value: '2' }], + length: [{ value: '10' }], + enumeration: [{ value: 'A' }, { value: 'B' }], + whiteSpace: [{ value: 'collapse' }], + pattern: [{ value: '[A-Z]+' }], + assertion: [{ test: '$value > 0' }], + explicitTimezone: [{ value: 'required' }], + }, + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes(' { it('should build facet with annotation', () => { const schema: Schema = { - simpleType: [{ - name: 'annotatedFacet', - restriction: { - base: 'xs:string', - enumeration: [{ - value: 'A', - id: 'enum-a', - fixed: true, - annotation: { documentation: [{ _text: 'Value A' }] } - }] - } - }] + simpleType: [ + { + name: 'annotatedFacet', + restriction: { + base: 'xs:string', + enumeration: [ + { + value: 'A', + id: 'enum-a', + fixed: true, + annotation: { documentation: [{ _text: 'Value A' }] }, + }, + ], + }, + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes('id="enum-a"')); assert.ok(xsd.includes('fixed="true"')); assert.ok(xsd.includes('Value A')); @@ -315,36 +343,42 @@ describe('buildXsd', () => { it('should build pattern with annotation', () => { const schema: Schema = { - simpleType: [{ - name: 'patternType', - restriction: { - base: 'xs:string', - pattern: [{ - value: '[A-Z]+', - id: 'pat1', - annotation: { documentation: [{ _text: 'Pattern docs' }] } - }] - } - }] + simpleType: [ + { + name: 'patternType', + restriction: { + base: 'xs:string', + pattern: [ + { + value: '[A-Z]+', + id: 'pat1', + annotation: { documentation: [{ _text: 'Pattern docs' }] }, + }, + ], + }, + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes(' { const schema: Schema = { - simpleType: [{ - name: 'derivedType', - restriction: { - simpleType: { restriction: { base: 'xs:string' } }, - minLength: [{ value: '1' }] - } - }] + simpleType: [ + { + name: 'derivedType', + restriction: { + simpleType: { restriction: { base: 'xs:string' } }, + minLength: [{ value: '1' }], + }, + }, + ], }; const xsd = buildXsd(schema); - + // Should have nested simpleType inside restriction assert.ok(xsd.includes(' { describe('ComplexType', () => { it('should build complexType with simpleContent extension', () => { const schema: Schema = { - complexType: [{ - name: 'myType', - simpleContent: { - extension: { - base: 'xs:string', - attribute: [{ name: 'attr1', type: 'xs:string' }], - attributeGroup: [{ ref: 'myAttrGroup' }], - anyAttribute: { namespace: '##any' }, - assert: [{ test: '$value != ""' }] - } - } - }] + complexType: [ + { + name: 'myType', + simpleContent: { + extension: { + base: 'xs:string', + attribute: [{ name: 'attr1', type: 'xs:string' }], + attributeGroup: [{ ref: 'myAttrGroup' }], + anyAttribute: { namespace: '##any' }, + assert: [{ test: '$value != ""' }], + }, + }, + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes(' { it('should build complexType with simpleContent restriction', () => { const schema: Schema = { - complexType: [{ - name: 'myType', - simpleContent: { - restriction: { - base: 'xs:string', - simpleType: { restriction: { base: 'xs:token' } }, - minLength: [{ value: '1' }], - attribute: [{ name: 'attr1' }], - attributeGroup: [{ ref: 'myAttrGroup' }], - anyAttribute: { namespace: '##other' }, - assert: [{ test: 'true()' }] - } - } - }] + complexType: [ + { + name: 'myType', + simpleContent: { + restriction: { + base: 'xs:string', + simpleType: { restriction: { base: 'xs:token' } }, + minLength: [{ value: '1' }], + attribute: [{ name: 'attr1' }], + attributeGroup: [{ ref: 'myAttrGroup' }], + anyAttribute: { namespace: '##other' }, + assert: [{ test: 'true()' }], + }, + }, + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes(' { const schema: Schema = { - complexType: [{ - name: 'myType', - complexContent: { - mixed: true, - extension: { - base: 'baseType', - openContent: { mode: 'interleave', any: { namespace: '##any' } }, - group: { ref: 'myGroup' }, - sequence: { element: [{ name: 'child' }] }, - attribute: [{ name: 'attr1' }], - attributeGroup: [{ ref: 'myAttrGroup' }], - anyAttribute: { namespace: '##any' }, - assert: [{ test: 'true()' }] - } - } - }] + complexType: [ + { + name: 'myType', + complexContent: { + mixed: true, + extension: { + base: 'baseType', + openContent: { + mode: 'interleave', + any: { namespace: '##any' }, + }, + group: { ref: 'myGroup' }, + sequence: { element: [{ name: 'child' }] }, + attribute: [{ name: 'attr1' }], + attributeGroup: [{ ref: 'myAttrGroup' }], + anyAttribute: { namespace: '##any' }, + assert: [{ test: 'true()' }], + }, + }, + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes(' { it('should build complexType with complexContent restriction', () => { const schema: Schema = { - complexType: [{ - name: 'myType', - complexContent: { - restriction: { - base: 'baseType', - openContent: { mode: 'suffix' }, - all: { element: [{ name: 'child' }] }, - choice: { element: [{ name: 'opt1' }] }, - attribute: [{ name: 'attr1' }], - attributeGroup: [{ ref: 'myAttrGroup' }], - anyAttribute: { namespace: '##local' }, - assert: [{ test: 'true()' }] - } - } - }] + complexType: [ + { + name: 'myType', + complexContent: { + restriction: { + base: 'baseType', + openContent: { mode: 'suffix' }, + all: { element: [{ name: 'child' }] }, + choice: { element: [{ name: 'opt1' }] }, + attribute: [{ name: 'attr1' }], + attributeGroup: [{ ref: 'myAttrGroup' }], + anyAttribute: { namespace: '##local' }, + assert: [{ test: 'true()' }], + }, + }, + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes(' { it('should build complexType with short form (no content model)', () => { const schema: Schema = { - complexType: [{ - name: 'myType', - mixed: true, - abstract: true, - final: '#all', - block: 'extension', - defaultAttributesApply: false, - openContent: { mode: 'interleave' }, - group: { ref: 'myGroup' }, - all: { element: [{ name: 'child' }] }, - choice: { element: [{ name: 'opt1' }] }, - sequence: { element: [{ name: 'seq1' }] }, - attribute: [{ name: 'attr1' }], - attributeGroup: [{ ref: 'myAttrGroup' }], - anyAttribute: { namespace: '##any' }, - assert: [{ test: 'true()' }] - }] + complexType: [ + { + name: 'myType', + mixed: true, + abstract: true, + final: '#all', + block: 'extension', + defaultAttributesApply: false, + openContent: { mode: 'interleave' }, + group: { ref: 'myGroup' }, + all: { element: [{ name: 'child' }] }, + choice: { element: [{ name: 'opt1' }] }, + sequence: { element: [{ name: 'seq1' }] }, + attribute: [{ name: 'attr1' }], + attributeGroup: [{ ref: 'myAttrGroup' }], + anyAttribute: { namespace: '##any' }, + assert: [{ test: 'true()' }], + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes('mixed="true"')); assert.ok(xsd.includes('abstract="true"')); assert.ok(xsd.includes('final="#all"')); @@ -486,16 +533,18 @@ describe('buildXsd', () => { it('should build local complexType', () => { const schema: Schema = { - element: [{ - name: 'myElement', - complexType: { - mixed: true, - sequence: { element: [{ name: 'child' }] } - } - }] + element: [ + { + name: 'myElement', + complexType: { + mixed: true, + sequence: { element: [{ name: 'child' }] }, + }, + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes(' { describe('Element', () => { it('should build top-level element with all attributes', () => { const schema: Schema = { - element: [{ - name: 'myElement', - id: 'el1', - type: 'xs:string', - substitutionGroup: 'baseElement', - default: 'defaultValue', - fixed: 'fixedValue', - nillable: true, - abstract: true, - final: '#all', - block: 'extension' - }] + element: [ + { + name: 'myElement', + id: 'el1', + type: 'xs:string', + substitutionGroup: 'baseElement', + default: 'defaultValue', + fixed: 'fixedValue', + nillable: true, + abstract: true, + final: '#all', + block: 'extension', + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes('name="myElement"')); assert.ok(xsd.includes('id="el1"')); assert.ok(xsd.includes('type="xs:string"')); @@ -534,58 +585,69 @@ describe('buildXsd', () => { it('should build element with inline simpleType', () => { const schema: Schema = { - element: [{ - name: 'myElement', - simpleType: { restriction: { base: 'xs:string' } } - }] + element: [ + { + name: 'myElement', + simpleType: { restriction: { base: 'xs:string' } }, + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes(' { const schema: Schema = { - element: [{ - name: 'myElement', - type: 'baseType', - alternative: [ - { test: '@type="A"', type: 'typeA' }, - { test: '@type="B"', simpleType: { restriction: { base: 'xs:string' } } }, - { test: '@type="C"', complexType: { sequence: {} } } - ] - }] + element: [ + { + name: 'myElement', + type: 'baseType', + alternative: [ + { test: '@type="A"', type: 'typeA' }, + { + test: '@type="B"', + simpleType: { restriction: { base: 'xs:string' } }, + }, + { test: '@type="C"', complexType: { sequence: {} } }, + ], + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes(' { it('should build element with identity constraints', () => { const schema: Schema = { - element: [{ - name: 'myElement', - unique: [{ - name: 'uniqueConstraint', - selector: { xpath: './/item' }, - field: [{ xpath: '@id' }] - }], - key: [{ - name: 'keyConstraint', - selector: { xpath: './/item' }, - field: [{ xpath: '@id' }, { xpath: '@name' }] - }], - keyref: [{ - name: 'keyrefConstraint', - refer: 'keyConstraint', - selector: { xpath: './/ref' }, - field: [{ xpath: '@refId' }] - }] - }] + element: [ + { + name: 'myElement', + unique: [ + { + name: 'uniqueConstraint', + selector: { xpath: './/item' }, + field: [{ xpath: '@id' }], + }, + ], + key: [ + { + name: 'keyConstraint', + selector: { xpath: './/item' }, + field: [{ xpath: '@id' }, { xpath: '@name' }], + }, + ], + keyref: [ + { + name: 'keyrefConstraint', + refer: 'keyConstraint', + selector: { xpath: './/ref' }, + field: [{ xpath: '@refId' }], + }, + ], + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes(' { it('should build identity constraint with ref', () => { const schema: Schema = { - element: [{ - name: 'myElement', - unique: [{ name: 'u1', ref: 'otherUnique' }], - key: [{ name: 'k1', ref: 'otherKey' }], - keyref: [{ name: 'kr1', refer: 'k1', ref: 'otherKeyref' }] - }] + element: [ + { + name: 'myElement', + unique: [{ name: 'u1', ref: 'otherUnique' }], + key: [{ name: 'k1', ref: 'otherKey' }], + keyref: [{ name: 'kr1', refer: 'k1', ref: 'otherKeyref' }], + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes('ref="otherUnique"')); assert.ok(xsd.includes('ref="otherKey"')); assert.ok(xsd.includes('ref="otherKeyref"')); @@ -641,27 +713,33 @@ describe('buildXsd', () => { it('should build selector and field with all attributes', () => { const schema: Schema = { - element: [{ - name: 'myElement', - unique: [{ - name: 'u1', - selector: { - xpath: './/item', - id: 'sel1', - xpathDefaultNamespace: '##targetNamespace', - annotation: { documentation: [{ _text: 'Selector docs' }] } - }, - field: [{ - xpath: '@id', - id: 'fld1', - xpathDefaultNamespace: '##local', - annotation: { documentation: [{ _text: 'Field docs' }] } - }] - }] - }] + element: [ + { + name: 'myElement', + unique: [ + { + name: 'u1', + selector: { + xpath: './/item', + id: 'sel1', + xpathDefaultNamespace: '##targetNamespace', + annotation: { documentation: [{ _text: 'Selector docs' }] }, + }, + field: [ + { + xpath: '@id', + id: 'fld1', + xpathDefaultNamespace: '##local', + annotation: { documentation: [{ _text: 'Field docs' }] }, + }, + ], + }, + ], + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes('xpathDefaultNamespace="##targetNamespace"')); assert.ok(xsd.includes('xpathDefaultNamespace="##local"')); }); @@ -670,17 +748,19 @@ describe('buildXsd', () => { describe('Attribute', () => { it('should build top-level attribute', () => { const schema: Schema = { - attribute: [{ - name: 'myAttr', - id: 'attr1', - type: 'xs:string', - default: 'defaultValue', - fixed: 'fixedValue', - inheritable: true - }] + attribute: [ + { + name: 'myAttr', + id: 'attr1', + type: 'xs:string', + default: 'defaultValue', + fixed: 'fixedValue', + inheritable: true, + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes(' { it('should build attribute with inline simpleType', () => { const schema: Schema = { - attribute: [{ - name: 'myAttr', - simpleType: { restriction: { base: 'xs:string' } } - }] + attribute: [ + { + name: 'myAttr', + simpleType: { restriction: { base: 'xs:string' } }, + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes(' { const schema: Schema = { - complexType: [{ - name: 'myType', - attribute: [{ - name: 'localAttr', - ref: 'otherAttr', - type: 'xs:string', - use: 'required', - default: 'def', - fixed: 'fix', - form: 'qualified', - targetNamespace: 'http://example.com', - inheritable: false - }] - }] + complexType: [ + { + name: 'myType', + attribute: [ + { + name: 'localAttr', + ref: 'otherAttr', + type: 'xs:string', + use: 'required', + default: 'def', + fixed: 'fix', + form: 'qualified', + targetNamespace: 'http://example.com', + inheritable: false, + }, + ], + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes('use="required"')); assert.ok(xsd.includes('form="qualified"')); }); @@ -726,18 +812,20 @@ describe('buildXsd', () => { describe('Groups', () => { it('should build named group with all', () => { const schema: Schema = { - group: [{ - name: 'myGroup', - id: 'grp1', - all: { - element: [{ name: 'child1' }, { name: 'child2' }], - any: [{ namespace: '##any' }], - group: [{ ref: 'otherGroup' }] - } - }] + group: [ + { + name: 'myGroup', + id: 'grp1', + all: { + element: [{ name: 'child1' }, { name: 'child2' }], + any: [{ namespace: '##any' }], + group: [{ ref: 'otherGroup' }], + }, + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes(' { it('should build named group with choice', () => { const schema: Schema = { - group: [{ - name: 'myGroup', - choice: { - element: [{ name: 'opt1' }], - group: [{ ref: 'otherGroup' }], - choice: [{ element: [{ name: 'nested' }] }], - sequence: [{ element: [{ name: 'seq' }] }], - any: [{ namespace: '##other' }] - } - }] + group: [ + { + name: 'myGroup', + choice: { + element: [{ name: 'opt1' }], + group: [{ ref: 'otherGroup' }], + choice: [{ element: [{ name: 'nested' }] }], + sequence: [{ element: [{ name: 'seq' }] }], + any: [{ namespace: '##other' }], + }, + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes(' { const schema: Schema = { - group: [{ - name: 'myGroup', - sequence: { - element: [{ name: 'first' }, { name: 'second' }] - } - }] + group: [ + { + name: 'myGroup', + sequence: { + element: [{ name: 'first' }, { name: 'second' }], + }, + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes(' { const schema: Schema = { - complexType: [{ - name: 'myType', - sequence: { - group: [{ - ref: 'myGroup', - id: 'grpRef1', - minOccurs: '0', - maxOccurs: '5', - annotation: { documentation: [{ _text: 'Group ref docs' }] } - }] - } - }] + complexType: [ + { + name: 'myType', + sequence: { + group: [ + { + ref: 'myGroup', + id: 'grpRef1', + minOccurs: '0', + maxOccurs: '5', + annotation: { documentation: [{ _text: 'Group ref docs' }] }, + }, + ], + }, + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes('ref="myGroup"')); assert.ok(xsd.includes('minOccurs="0"')); assert.ok(xsd.includes('maxOccurs="5"')); @@ -799,19 +895,21 @@ describe('buildXsd', () => { it('should build explicit group with occurs', () => { const schema: Schema = { - complexType: [{ - name: 'myType', - sequence: { - id: 'seq1', - minOccurs: '1', - maxOccurs: 'unbounded', - annotation: { documentation: [{ _text: 'Sequence docs' }] }, - element: [{ name: 'child' }] - } - }] + complexType: [ + { + name: 'myType', + sequence: { + id: 'seq1', + minOccurs: '1', + maxOccurs: 'unbounded', + annotation: { documentation: [{ _text: 'Sequence docs' }] }, + element: [{ name: 'child' }], + }, + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes('id="seq1"')); assert.ok(xsd.includes('minOccurs="1"')); assert.ok(xsd.includes('maxOccurs="unbounded"')); @@ -821,16 +919,18 @@ describe('buildXsd', () => { describe('AttributeGroup', () => { it('should build named attributeGroup', () => { const schema: Schema = { - attributeGroup: [{ - name: 'myAttrGroup', - id: 'ag1', - attribute: [{ name: 'attr1' }, { name: 'attr2' }], - attributeGroup: [{ ref: 'otherAttrGroup' }], - anyAttribute: { namespace: '##any', processContents: 'lax' } - }] + attributeGroup: [ + { + name: 'myAttrGroup', + id: 'ag1', + attribute: [{ name: 'attr1' }, { name: 'attr2' }], + attributeGroup: [{ ref: 'otherAttrGroup' }], + anyAttribute: { namespace: '##any', processContents: 'lax' }, + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes(' { it('should build attributeGroup reference', () => { const schema: Schema = { - complexType: [{ - name: 'myType', - attributeGroup: [{ - ref: 'myAttrGroup', - id: 'agRef1', - annotation: { documentation: [{ _text: 'AttrGroup ref docs' }] } - }] - }] + complexType: [ + { + name: 'myType', + attributeGroup: [ + { + ref: 'myAttrGroup', + id: 'agRef1', + annotation: { + documentation: [{ _text: 'AttrGroup ref docs' }], + }, + }, + ], + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes('ref="myAttrGroup"')); }); }); @@ -856,24 +962,28 @@ describe('buildXsd', () => { describe('Wildcards', () => { it('should build any with all attributes', () => { const schema: Schema = { - complexType: [{ - name: 'myType', - sequence: { - any: [{ - id: 'any1', - minOccurs: '0', - maxOccurs: 'unbounded', - namespace: '##other', - processContents: 'lax', - notNamespace: 'http://excluded.com', - notQName: 'excluded:element', - annotation: { documentation: [{ _text: 'Any docs' }] } - }] - } - }] + complexType: [ + { + name: 'myType', + sequence: { + any: [ + { + id: 'any1', + minOccurs: '0', + maxOccurs: 'unbounded', + namespace: '##other', + processContents: 'lax', + notNamespace: 'http://excluded.com', + notQName: 'excluded:element', + annotation: { documentation: [{ _text: 'Any docs' }] }, + }, + ], + }, + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes(' { it('should build anyAttribute with all attributes', () => { const schema: Schema = { - complexType: [{ - name: 'myType', - anyAttribute: { - id: 'anyAttr1', - namespace: '##local', - processContents: 'strict', - notNamespace: 'http://excluded.com', - notQName: 'excluded:attr', - annotation: { documentation: [{ _text: 'AnyAttribute docs' }] } - } - }] + complexType: [ + { + name: 'myType', + anyAttribute: { + id: 'anyAttr1', + namespace: '##local', + processContents: 'strict', + notNamespace: 'http://excluded.com', + notQName: 'excluded:attr', + annotation: { documentation: [{ _text: 'AnyAttribute docs' }] }, + }, + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes(' { describe('XSD 1.1 Features', () => { it('should build openContent', () => { const schema: Schema = { - complexType: [{ - name: 'myType', - openContent: { - id: 'oc1', - mode: 'interleave', - annotation: { documentation: [{ _text: 'OpenContent docs' }] }, - any: { namespace: '##any' } + complexType: [ + { + name: 'myType', + openContent: { + id: 'oc1', + mode: 'interleave', + annotation: { documentation: [{ _text: 'OpenContent docs' }] }, + any: { namespace: '##any' }, + }, + sequence: { element: [{ name: 'child' }] }, }, - sequence: { element: [{ name: 'child' }] } - }] + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes(' { appliesToEmpty: true, mode: 'suffix', annotation: { documentation: [{ _text: 'DefaultOpenContent docs' }] }, - any: { namespace: '##targetNamespace' } - } + any: { namespace: '##targetNamespace' }, + }, }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes(' { it('should build assertion', () => { const schema: Schema = { - complexType: [{ - name: 'myType', - assert: [{ - id: 'assert1', - test: '$value > 0', - xpathDefaultNamespace: '##targetNamespace', - annotation: { documentation: [{ _text: 'Assertion docs' }] } - }] - }] + complexType: [ + { + name: 'myType', + assert: [ + { + id: 'assert1', + test: '$value > 0', + xpathDefaultNamespace: '##targetNamespace', + annotation: { documentation: [{ _text: 'Assertion docs' }] }, + }, + ], + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes(' { it('should build alternative with all attributes', () => { const schema: Schema = { - element: [{ - name: 'myElement', - alternative: [{ - id: 'alt1', - test: '@type="special"', - type: 'specialType', - xpathDefaultNamespace: '##local', - annotation: { documentation: [{ _text: 'Alternative docs' }] } - }] - }] + element: [ + { + name: 'myElement', + alternative: [ + { + id: 'alt1', + test: '@type="special"', + type: 'specialType', + xpathDefaultNamespace: '##local', + annotation: { documentation: [{ _text: 'Alternative docs' }] }, + }, + ], + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes(' { describe('Notation', () => { it('should build notation', () => { const schema: Schema = { - notation: [{ - name: 'jpeg', - id: 'not1', - public: 'image/jpeg', - system: 'viewer.exe', - annotation: { documentation: [{ _text: 'JPEG notation' }] } - }] + notation: [ + { + name: 'jpeg', + id: 'not1', + public: 'image/jpeg', + system: 'viewer.exe', + annotation: { documentation: [{ _text: 'JPEG notation' }] }, + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes(' { describe('Annotation', () => { it('should build annotation with documentation', () => { const schema: Schema = { - annotation: [{ - id: 'ann1', - documentation: [{ - source: 'http://docs.example.com', - 'xml:lang': 'en', - _text: 'Documentation text' - }] - }] + annotation: [ + { + id: 'ann1', + documentation: [ + { + source: 'http://docs.example.com', + 'xml:lang': 'en', + _text: 'Documentation text', + }, + ], + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes(' { it('should build annotation with appinfo', () => { const schema: Schema = { - annotation: [{ - appinfo: [{ - source: 'http://tools.example.com', - _text: 'Tool-specific info' - }] - }] + annotation: [ + { + appinfo: [ + { + source: 'http://tools.example.com', + _text: 'Tool-specific info', + }, + ], + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes(' { it('should build empty documentation', () => { const schema: Schema = { - annotation: [{ - documentation: [{ source: 'http://example.com' }] - }] + annotation: [ + { + documentation: [{ source: 'http://example.com' }], + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes('') || xsd.includes('')); }); it('should build empty appinfo', () => { const schema: Schema = { - annotation: [{ - appinfo: [{ source: 'http://example.com' }] - }] + annotation: [ + { + appinfo: [{ source: 'http://example.com' }], + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes(' { describe('XML escaping', () => { it('should escape special characters in attribute values', () => { const schema: Schema = { - annotation: [{ - documentation: [{ - _text: 'Text with & "characters" and \'quotes\'' - }] - }] + annotation: [ + { + documentation: [ + { + _text: 'Text with & "characters" and \'quotes\'', + }, + ], + }, + ], }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes('<special>')); assert.ok(xsd.includes('&')); assert.ok(xsd.includes('"characters"')); @@ -1090,7 +1230,7 @@ describe('buildXsd', () => { targetNamespace: 'http://example.com/order', }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes('xmlns:xs="http://www.w3.org/2001/XMLSchema"')); assert.ok(xsd.includes('xmlns:tns="http://example.com/order"')); }); @@ -1104,7 +1244,7 @@ describe('buildXsd', () => { targetNamespace: 'http://example.com/order', }; const xsd = buildXsd(schema); - + assert.ok(xsd.includes('xmlns="http://www.w3.org/2001/XMLSchema"')); assert.ok(xsd.includes('xmlns:tns="http://example.com/order"')); }); @@ -1114,7 +1254,7 @@ describe('buildXsd', () => { targetNamespace: 'http://example.com', }; const xsd = buildXsd(schema); - + // No xmlns should be added if not in schema assert.ok(!xsd.includes('xmlns:')); assert.ok(!xsd.includes('xmlns=')); @@ -1131,7 +1271,7 @@ describe('buildXsd', () => { const parsed = parseXsd(original); const rebuilt = buildXsd(parsed); const reparsed = parseXsd(rebuilt); - + assert.deepEqual(reparsed.$xmlns, parsed.$xmlns); assert.equal(reparsed.$xmlns?.xs, 'http://www.w3.org/2001/XMLSchema'); assert.equal(reparsed.$xmlns?.tns, 'http://example.com/order'); diff --git a/packages/ts-xsd/tests/unit/circular-ref.test.ts b/packages/ts-xsd/tests/unit/circular-ref.test.ts index 0fa0d06d..221f7aa9 100644 --- a/packages/ts-xsd/tests/unit/circular-ref.test.ts +++ b/packages/ts-xsd/tests/unit/circular-ref.test.ts @@ -18,19 +18,22 @@ describe('Circular Reference Handling', () => { sequence: { element: [ { name: 'value', type: 'xs:string' }, - { name: 'children', type: 'TreeNode', minOccurs: '0', maxOccurs: 'unbounded' }, + { + name: 'children', + type: 'TreeNode', + minOccurs: '0', + maxOccurs: 'unbounded', + }, ], }, }, ], - element: [ - { name: 'tree', type: 'TreeNode' }, - ], + element: [{ name: 'tree', type: 'TreeNode' }], }; // This should not throw stack overflow const { code } = generateInterfaces(schema, { flatten: true }); - + assert.ok(code.includes('TreeSchema'), 'Should generate root type'); assert.ok(code.includes('value'), 'Should have value property'); // Circular ref should be handled (either as unknown or type reference) @@ -62,14 +65,12 @@ describe('Circular Reference Handling', () => { }, }, ], - element: [ - { name: 'root', type: 'TypeA' }, - ], + element: [{ name: 'root', type: 'TypeA' }], }; // This should not throw stack overflow const { code } = generateInterfaces(schema, { flatten: true }); - + assert.ok(code.includes('MutualSchema'), 'Should generate root type'); console.log('Generated code:', code); }); @@ -83,13 +84,9 @@ describe('Circular Reference Handling', () => { { name: 'BaseObject', sequence: { - element: [ - { name: 'name', type: 'xs:string' }, - ], + element: [{ name: 'name', type: 'xs:string' }], }, - attribute: [ - { name: 'type', type: 'xs:string' }, - ], + attribute: [{ name: 'type', type: 'xs:string' }], }, { name: 'MainObject', @@ -133,14 +130,12 @@ describe('Circular Reference Handling', () => { }, }, ], - element: [ - { name: 'class', type: 'ClassObject' }, - ], + element: [{ name: 'class', type: 'ClassObject' }], }; // This should not throw stack overflow const { code } = generateInterfaces(schema, { flatten: true }); - + assert.ok(code.includes('InheritanceSchema'), 'Should generate root type'); assert.ok(code.includes('name'), 'Should have inherited name property'); console.log('Generated code:', code); diff --git a/packages/ts-xsd/tests/unit/codegen-namespace.test.ts b/packages/ts-xsd/tests/unit/codegen-namespace.test.ts index c67cfe9c..9c2804be 100644 --- a/packages/ts-xsd/tests/unit/codegen-namespace.test.ts +++ b/packages/ts-xsd/tests/unit/codegen-namespace.test.ts @@ -1,11 +1,11 @@ /** * Tests for namespace handling in codegen/resolve - * + * * Specifically tests the abapGit pattern where: * - Root element (abapGit) is in NO namespace (from abapgit.xsd with no targetNamespace) * - Child elements (asx:abap, asx:values) are in asx namespace (from asx.xsd) * - Data elements (DEVC, CTEXT) are unqualified (no namespace prefix) - * + * * The issue: When resolveSchema merges schemas, it assigns the root schema's * targetNamespace to ALL elements, even those from imported schemas that have * different (or no) targetNamespace. @@ -19,7 +19,7 @@ import type { Schema } from '../../src/xsd/types'; describe('Multi-namespace schema handling (abapGit pattern)', () => { /** * abapGit XML format structure: - * + * * * * @@ -29,7 +29,7 @@ describe('Multi-namespace schema handling (abapGit pattern)', () => { * * * - * + * * Key characteristics: * 1. - NO namespace (root element from schema without targetNamespace) * 2. - asx namespace, xmlns:asx declared HERE @@ -45,9 +45,7 @@ describe('Multi-namespace schema handling (abapGit pattern)', () => { $xmlns: { asx: 'http://www.sap.com/abapxml', }, - element: [ - { name: 'abap', type: 'asx:AbapType' }, - ], + element: [{ name: 'abap', type: 'asx:AbapType' }], complexType: [ { name: 'AbapType', @@ -87,7 +85,11 @@ describe('Multi-namespace schema handling (abapGit pattern)', () => { attribute: [ { name: 'version', type: 'xs:string', use: 'required' }, { name: 'serializer', type: 'xs:string', use: 'required' }, - { name: 'serializer_version', type: 'xs:string', use: 'required' }, + { + name: 'serializer_version', + type: 'xs:string', + use: 'required', + }, ], }, }, @@ -110,11 +112,11 @@ describe('Multi-namespace schema handling (abapGit pattern)', () => { // When we resolve abapgitSchema (which has NO targetNamespace), // the resolved schema should also have NO targetNamespace const resolved = resolveSchema(abapgitSchema); - + assert.strictEqual( resolved.targetNamespace, undefined, - `Resolved schema should have undefined targetNamespace, got: ${resolved.targetNamespace}` + `Resolved schema should have undefined targetNamespace, got: ${resolved.targetNamespace}`, ); }); @@ -122,11 +124,11 @@ describe('Multi-namespace schema handling (abapGit pattern)', () => { // abapgitSchema has no targetNamespace but imports asxSchema which has one // The resolved schema should NOT inherit the imported schema's targetNamespace const resolved = resolveSchema(abapgitSchema); - + assert.strictEqual( resolved.targetNamespace, undefined, - `Should not inherit targetNamespace from $imports. Got: ${resolved.targetNamespace}` + `Should not inherit targetNamespace from $imports. Got: ${resolved.targetNamespace}`, ); }); @@ -134,34 +136,42 @@ describe('Multi-namespace schema handling (abapGit pattern)', () => { // Chameleon schemas (no targetNamespace) adopt the importing schema's namespace // This is standard XSD behavior - elements from schemas without targetNamespace // are merged into the importing schema's namespace - + const resolved = resolveSchema(devcSchema); - + // devc schema's targetNamespace should be preserved assert.strictEqual( resolved.targetNamespace, 'http://www.sap.com/abapxml', - 'devc schema targetNamespace should be preserved' + 'devc schema targetNamespace should be preserved', ); - + // The abapGit element SHOULD be merged because abapgit.xsd has NO targetNamespace // (chameleon schema - adopts importing schema's namespace) - const abapGitElement = resolved.element?.find(e => e.name === 'abapGit'); - assert.ok(abapGitElement, 'abapGit element should be merged (chameleon schema)'); - + const abapGitElement = resolved.element?.find( + (e) => e.name === 'abapGit', + ); + assert.ok( + abapGitElement, + 'abapGit element should be merged (chameleon schema)', + ); + // Types ARE merged (needed for extension resolution) - assert.ok(resolved.complexType?.some(ct => ct.name === 'AbapType'), 'Types should still be merged'); + assert.ok( + resolved.complexType?.some((ct) => ct.name === 'AbapType'), + 'Types should still be merged', + ); }); it('should preserve $xmlns from all merged schemas', () => { const resolved = resolveSchema(devcSchema); - + // $xmlns should be preserved assert.ok(resolved.$xmlns, 'Resolved schema should have $xmlns'); assert.strictEqual( resolved.$xmlns?.asx, 'http://www.sap.com/abapxml', - 'Should preserve asx namespace mapping' + 'Should preserve asx namespace mapping', ); }); }); diff --git a/packages/ts-xsd/tests/unit/codegen.test.ts b/packages/ts-xsd/tests/unit/codegen.test.ts index a0550c39..25b6437a 100644 --- a/packages/ts-xsd/tests/unit/codegen.test.ts +++ b/packages/ts-xsd/tests/unit/codegen.test.ts @@ -1,6 +1,6 @@ /** * Codegen Tests - * + * * Tests for generating TypeScript literals from XSD files. */ @@ -26,18 +26,18 @@ describe('Codegen', () => { describe('generateSchemaLiteral', () => { it('should generate a TypeScript literal from XSD', () => { const result = generateSchemaLiteral(simpleXsd, { name: 'PersonSchema' }); - + // Should export as const assert.ok(result.includes('export const PersonSchema =')); assert.ok(result.includes('as const;')); - + // Should include targetNamespace assert.ok(result.includes('"http://example.com/person"')); - + // Should include element assert.ok(result.includes('element:')); assert.ok(result.includes('"Person"')); - + // Should include complexType assert.ok(result.includes('complexType:')); assert.ok(result.includes('"PersonType"')); @@ -45,17 +45,23 @@ describe('Codegen', () => { it('should generate pretty-printed output by default', () => { const result = generateSchemaLiteral(simpleXsd, { name: 'schema' }); - + // Should have newlines and indentation assert.ok(result.includes('\n')); assert.ok(result.includes(' ')); // indentation }); it('should generate compact output when pretty=false', () => { - const result = generateSchemaLiteral(simpleXsd, { name: 'schema', pretty: false }); - + const result = generateSchemaLiteral(simpleXsd, { + name: 'schema', + pretty: false, + }); + // Should not have newlines inside the object - const objectPart = result.slice(result.indexOf('{'), result.lastIndexOf('}') + 1); + const objectPart = result.slice( + result.indexOf('{'), + result.lastIndexOf('}') + 1, + ); // Compact output has fewer newlines assert.ok(objectPart.split('\n').length < 10); }); @@ -64,27 +70,29 @@ describe('Codegen', () => { describe('generateSchemaFile', () => { it('should generate a complete TypeScript file', () => { const result = generateSchemaFile(simpleXsd, { name: 'PersonSchema' }); - + // Should have header comment assert.ok(result.includes('Auto-generated schema literal from XSD')); assert.ok(result.includes('DO NOT EDIT')); - + // Should NOT import SchemaLike (removed satisfies) - assert.ok(!result.includes("import type { SchemaLike }")); - + assert.ok(!result.includes('import type { SchemaLike }')); + // Should export the schema assert.ok(result.includes('export const PersonSchema =')); - + // Should export the type - assert.ok(result.includes('export type PersonSchemaType = typeof PersonSchema')); + assert.ok( + result.includes('export type PersonSchemaType = typeof PersonSchema'), + ); }); it('should include custom comment', () => { - const result = generateSchemaFile(simpleXsd, { + const result = generateSchemaFile(simpleXsd, { name: 'PersonSchema', - comment: 'Source: person.xsd' + comment: 'Source: person.xsd', }); - + assert.ok(result.includes('Source: person.xsd')); }); }); @@ -92,24 +100,27 @@ describe('Codegen', () => { describe('W3C XMLSchema.xsd codegen', () => { it('should generate literal from W3C XMLSchema.xsd', async () => { const { getW3CSchema } = await import('../fixtures'); - + const xsdContent = await getW3CSchema(); const result = generateSchemaLiteral(xsdContent, { name: 'XsdSchema' }); - + // Should be valid TypeScript assert.ok(result.includes('export const XsdSchema =')); assert.ok(result.includes('as const;')); - + // Should include W3C namespace assert.ok(result.includes('"http://www.w3.org/2001/XMLSchema"')); - + // Should include key XSD types assert.ok(result.includes('complexType:')); assert.ok(result.includes('simpleType:')); assert.ok(result.includes('element:')); - + // Output should be substantial (W3C XSD is large) - assert.ok(result.length > 10000, `Expected large output, got ${result.length} chars`); + assert.ok( + result.length > 10000, + `Expected large output, got ${result.length} chars`, + ); }); }); }); diff --git a/packages/ts-xsd/tests/unit/infer.test.ts b/packages/ts-xsd/tests/unit/infer.test.ts index 67d986f4..e93e847e 100644 --- a/packages/ts-xsd/tests/unit/infer.test.ts +++ b/packages/ts-xsd/tests/unit/infer.test.ts @@ -1,6 +1,6 @@ /** * Type Inference Tests - * + * * These tests verify that InferSchema correctly infers TypeScript types * from W3C-compliant schema definitions. */ @@ -15,9 +15,7 @@ import type { InferSchema, SchemaLike } from '../../src/infer'; /** Simple schema with one element and one complexType */ const PersonSchema = { - element: [ - { name: 'Person', type: 'PersonType' } - ], + element: [{ name: 'Person', type: 'PersonType' }], complexType: [ { name: 'PersonType', @@ -26,20 +24,16 @@ const PersonSchema = { { name: 'firstName', type: 'xs:string' }, { name: 'lastName', type: 'xs:string' }, { name: 'age', type: 'xs:int', minOccurs: 0 }, - ] + ], }, - attribute: [ - { name: 'id', type: 'xs:string', use: 'required' as const }, - ] - } - ] + attribute: [{ name: 'id', type: 'xs:string', use: 'required' as const }], + }, + ], } as const; /** Schema with nested complexType */ const AddressSchema = { - element: [ - { name: 'Address', type: 'AddressType' } - ], + element: [{ name: 'Address', type: 'AddressType' }], complexType: [ { name: 'AddressType', @@ -48,17 +42,15 @@ const AddressSchema = { { name: 'street', type: 'xs:string' }, { name: 'city', type: 'xs:string' }, { name: 'zip', type: 'xs:string', minOccurs: 0 }, - ] - } - } - ] + ], + }, + }, + ], } as const; /** Schema with array elements (maxOccurs="unbounded") */ const OrderSchema = { - element: [ - { name: 'Order', type: 'OrderType' } - ], + element: [{ name: 'Order', type: 'OrderType' }], complexType: [ { name: 'OrderType', @@ -66,8 +58,8 @@ const OrderSchema = { element: [ { name: 'orderId', type: 'xs:string' }, { name: 'item', type: 'ItemType', maxOccurs: 'unbounded' as const }, - ] - } + ], + }, }, { name: 'ItemType', @@ -75,25 +67,21 @@ const OrderSchema = { element: [ { name: 'name', type: 'xs:string' }, { name: 'quantity', type: 'xs:int' }, - ] - } - } - ] + ], + }, + }, + ], } as const; /** Schema with inheritance (complexContent/extension) */ const InheritanceSchema = { - element: [ - { name: 'Employee', type: 'EmployeeType' } - ], + element: [{ name: 'Employee', type: 'EmployeeType' }], complexType: [ { name: 'PersonType', sequence: { - element: [ - { name: 'name', type: 'xs:string' }, - ] - } + element: [{ name: 'name', type: 'xs:string' }], + }, }, { name: 'EmployeeType', @@ -101,21 +89,17 @@ const InheritanceSchema = { extension: { base: 'PersonType', sequence: { - element: [ - { name: 'employeeId', type: 'xs:string' }, - ] - } - } - } - } - ] + element: [{ name: 'employeeId', type: 'xs:string' }], + }, + }, + }, + }, + ], } as const; /** Schema with simpleType enum */ const EnumSchema = { - element: [ - { name: 'Status', type: 'StatusType' } - ], + element: [{ name: 'Status', type: 'StatusType' }], simpleType: [ { name: 'StatusType', @@ -125,10 +109,10 @@ const EnumSchema = { { value: 'active' }, { value: 'inactive' }, { value: 'pending' }, - ] - } - } - ] + ], + }, + }, + ], } as const; // ============================================================================= @@ -148,7 +132,7 @@ type _Status = InferSchema; const _personTest: Person = { firstName: 'John', lastName: 'Doe', - age: 30, // optional + age: 30, // optional id: '123', }; @@ -179,7 +163,7 @@ describe('Type Inference', () => { lastName: 'Doe', id: '123', }; - + assert.equal(person.firstName, 'John'); assert.equal(person.lastName, 'Doe'); assert.equal(person.id, '123'); @@ -191,7 +175,7 @@ describe('Type Inference', () => { street: '123 Main St', city: 'Springfield', }; - + assert.equal(address.street, '123 Main St'); assert.equal(address.city, 'Springfield'); assert.equal(address.zip, undefined); @@ -200,11 +184,9 @@ describe('Type Inference', () => { it('should infer arrays from maxOccurs=unbounded', () => { const order: Order = { orderId: 'ORD-001', - item: [ - { name: 'Widget', quantity: 5 }, - ], + item: [{ name: 'Widget', quantity: 5 }], }; - + assert.ok(Array.isArray(order.item)); assert.equal(order.item.length, 1); assert.equal(order.item[0].name, 'Widget'); @@ -216,7 +198,7 @@ describe('Type Inference', () => { lastName: 'Smith', id: '456', }; - + // id is required (use="required") assert.equal(person.id, '456'); }); @@ -229,7 +211,7 @@ describe('Type Inference', () => { lastName: 'User', id: '789', }; - + assert.equal(typeof person.firstName, 'string'); }); @@ -240,7 +222,7 @@ describe('Type Inference', () => { id: '789', age: 25, }; - + assert.equal(typeof person.age, 'number'); }); }); @@ -255,7 +237,7 @@ describe('Type Inference', () => { InheritanceSchema, EnumSchema, ]; - + assert.equal(schemas.length, 5); }); }); @@ -265,70 +247,86 @@ describe('Type Inference', () => { // This is a simplified XSD schema definition - the structure that // describes XSD itself. For full inference, we'd need the complete // W3C XMLSchema.xsd as a literal type. - + // Simplified xs:schema element definition const _XsdSchemaSchema = { - element: [ - { name: 'schema', type: 'schemaType' } - ], + element: [{ name: 'schema', type: 'schemaType' }], complexType: [ { name: 'schemaType', sequence: { element: [ - { name: 'element', type: 'elementType', minOccurs: 0, maxOccurs: 'unbounded' as const }, - { name: 'complexType', type: 'complexTypeType', minOccurs: 0, maxOccurs: 'unbounded' as const }, - { name: 'simpleType', type: 'simpleTypeType', minOccurs: 0, maxOccurs: 'unbounded' as const }, - ] + { + name: 'element', + type: 'elementType', + minOccurs: 0, + maxOccurs: 'unbounded' as const, + }, + { + name: 'complexType', + type: 'complexTypeType', + minOccurs: 0, + maxOccurs: 'unbounded' as const, + }, + { + name: 'simpleType', + type: 'simpleTypeType', + minOccurs: 0, + maxOccurs: 'unbounded' as const, + }, + ], }, attribute: [ { name: 'targetNamespace', type: 'xs:anyURI' }, { name: 'elementFormDefault', type: 'xs:string' }, - ] + ], }, { name: 'elementType', sequence: { element: [ { name: 'complexType', type: 'complexTypeType', minOccurs: 0 }, - ] + ], }, attribute: [ { name: 'name', type: 'xs:NCName', use: 'required' as const }, { name: 'type', type: 'xs:QName' }, - ] + ], }, { name: 'complexTypeType', sequence: { element: [ { name: 'sequence', type: 'sequenceType', minOccurs: 0 }, - ] + ], }, - attribute: [ - { name: 'name', type: 'xs:NCName' }, - ] + attribute: [{ name: 'name', type: 'xs:NCName' }], }, { name: 'sequenceType', sequence: { element: [ - { name: 'element', type: 'elementType', minOccurs: 0, maxOccurs: 'unbounded' as const }, - ] - } + { + name: 'element', + type: 'elementType', + minOccurs: 0, + maxOccurs: 'unbounded' as const, + }, + ], + }, }, { name: 'simpleTypeType', attribute: [ { name: 'name', type: 'xs:NCName', use: 'required' as const }, - ] - } - ] + ], + }, + ], } as const; // Infer the type of an XSD schema document type XsdDocument = InferSchema; - + // This should give us a type like: // { // element?: Array<{ name: string; type?: string; complexType?: ... }>; @@ -337,16 +335,12 @@ describe('Type Inference', () => { // targetNamespace?: string; // elementFormDefault?: string; // } - + const xsdDoc: XsdDocument = { - element: [ - { name: 'Person' }, - ], - complexType: [ - { name: 'PersonType', sequence: { element: [] } }, - ], + element: [{ name: 'Person' }], + complexType: [{ name: 'PersonType', sequence: { element: [] } }], }; - + assert.ok(Array.isArray(xsdDoc.element)); assert.equal(xsdDoc.element?.[0].name, 'Person'); }); @@ -354,17 +348,20 @@ describe('Type Inference', () => { it('should work with parsed schema (runtime type only)', async () => { // When we parse XSD at runtime, we get Schema type (not literal) // So inference gives us the general Schema type, not specific fields - + const { parseXsd } = await import('../../src/xsd'); const { getW3CSchema } = await import('../fixtures'); - + const xsdContent = await getW3CSchema(); const schema = parseXsd(xsdContent); - + // Runtime: we can access the parsed data - assert.ok(Array.isArray(schema.complexType) || typeof schema.complexType === 'object'); + assert.ok( + Array.isArray(schema.complexType) || + typeof schema.complexType === 'object', + ); assert.ok(schema.targetNamespace === 'http://www.w3.org/2001/XMLSchema'); - + // But for compile-time inference, we'd need the schema as a literal type // This is the limitation: parseXsd() returns Schema, not a literal type }); @@ -381,47 +378,43 @@ describe('Type Inference', () => { element: [ { name: 'id', type: 'xs:string' }, { name: 'name', type: 'xs:string' }, - ] - } - } - ] + ], + }, + }, + ], } as const; // Schema that imports BaseSchema and uses its type const DerivedSchema = { targetNamespace: 'http://example.com/derived', - element: [ - { name: 'Item', type: 'ItemType' } - ], + element: [{ name: 'Item', type: 'ItemType' }], complexType: [ { name: 'ItemType', complexContent: { extension: { - base: 'BaseType', // References type from BaseSchema + base: 'BaseType', // References type from BaseSchema sequence: { - element: [ - { name: 'price', type: 'xs:decimal' }, - ] - } - } - } - } + element: [{ name: 'price', type: 'xs:decimal' }], + }, + }, + }, + }, ], - $imports: [BaseSchema] // Link to imported schema + $imports: [BaseSchema], // Link to imported schema } as const; it('should resolve types from $imports', () => { // Type inference should find BaseType in $imports type Item = InferSchema; - + // Compile-time check: Item should have fields from both BaseType and ItemType const item: Item = { id: '123', name: 'Test Item', - price: 99.99 + price: 99.99, }; - + assert.equal(item.id, '123'); assert.equal(item.name, 'Test Item'); assert.equal(item.price, 99.99); @@ -437,13 +430,13 @@ describe('Type Inference', () => { it('should work without $imports (backward compatible)', () => { // Schema without $imports should still work type Person = InferSchema; - + const person: Person = { id: '1', firstName: 'John', - lastName: 'Doe' + lastName: 'Doe', }; - + assert.equal(person.firstName, 'John'); }); }); diff --git a/packages/ts-xsd/tests/unit/link-schema-same-name.test.ts b/packages/ts-xsd/tests/unit/link-schema-same-name.test.ts index fe4b86a8..12e4460b 100644 --- a/packages/ts-xsd/tests/unit/link-schema-same-name.test.ts +++ b/packages/ts-xsd/tests/unit/link-schema-same-name.test.ts @@ -1,6 +1,6 @@ /** * Test for schema linking with same-named files in different directories - * + * * Reproduces bug: devc.xsd includes types/devc.xsd - both have same basename * The linker should NOT confuse them and cause infinite recursion. */ @@ -16,20 +16,24 @@ import { resolveSchema } from '../../src/xsd/resolve.ts'; function simulateLinkSchemaImports( schema: Schema, allSchemas: Map, - visited: Set = new Set() + visited: Set = new Set(), ): Schema { const schemaKey = schema.$filename ?? 'unknown'; - + // Detect infinite recursion if (visited.has(schemaKey)) { - throw new Error(`Infinite recursion detected: ${schemaKey} already visited. Path: ${[...visited].join(' -> ')} -> ${schemaKey}`); + throw new Error( + `Infinite recursion detected: ${schemaKey} already visited. Path: ${[...visited].join(' -> ')} -> ${schemaKey}`, + ); } visited.add(schemaKey); - - const includes = (schema as Record).include as Array<{ schemaLocation?: string }> | undefined; - + + const includes = (schema as Record).include as + | Array<{ schemaLocation?: string }> + | undefined; + const result = { ...schema }; - + // Handle xs:include - this is where the bug is if (includes && includes.length > 0) { const linkedIncludes: Schema[] = []; @@ -38,14 +42,20 @@ function simulateLinkSchemaImports( // BUGGY LOGIC: Try with path first, then without path (basename fallback) const schemaNameWithPath = inc.schemaLocation.replace(/\.xsd$/, ''); const schemaNameWithoutPath = schemaNameWithPath.replace(/^.*\//, ''); - + // This is the bug: when schemaNameWithPath is not found, it falls back to basename // which can match the WRONG schema (the parent schema itself!) - const includedSchemaInfo = allSchemas.get(schemaNameWithPath) ?? allSchemas.get(schemaNameWithoutPath); - + const includedSchemaInfo = + allSchemas.get(schemaNameWithPath) ?? + allSchemas.get(schemaNameWithoutPath); + if (includedSchemaInfo) { // Recursively process - this causes infinite recursion when wrong schema is matched - const linkedIncluded = simulateLinkSchemaImports(includedSchemaInfo.schema, allSchemas, new Set(visited)); + const linkedIncluded = simulateLinkSchemaImports( + includedSchemaInfo.schema, + allSchemas, + new Set(visited), + ); linkedIncludes.push(linkedIncluded); } } @@ -54,7 +64,7 @@ function simulateLinkSchemaImports( (result as Record).$includes = linkedIncludes; } } - + return result; } @@ -64,11 +74,14 @@ describe('Schema linking with same-named files', () => { // - devc.xsd (includes types/devc.xsd) // - types/devc.xsd (defines DevcType) // Both have basename "devc" but are different files - + const typesDevcSchema = { $filename: 'types/devc.xsd', complexType: [ - { name: 'DevcType', all: { element: [{ name: 'CTEXT', type: 'xs:string' }] } }, + { + name: 'DevcType', + all: { element: [{ name: 'CTEXT', type: 'xs:string' }] }, + }, ], } as const; @@ -76,11 +89,13 @@ describe('Schema linking with same-named files', () => { const devcSchema = { $filename: 'devc.xsd', targetNamespace: 'http://www.sap.com/abapxml', - $includes: [typesDevcSchema], // Pre-linked include + $includes: [typesDevcSchema], // Pre-linked include complexType: [ - { + { name: 'AbapValuesType', - sequence: { element: [{ name: 'DEVC', type: 'asx:DevcType', minOccurs: '0' }] }, + sequence: { + element: [{ name: 'DEVC', type: 'asx:DevcType', minOccurs: '0' }], + }, }, ], } as const; @@ -97,35 +112,52 @@ describe('Schema linking with same-named files', () => { // The test passes if we don't get a stack overflow assert.ok(!error, `Should not throw error: ${error?.message}`); assert.ok(resolved, 'Should return resolved schema'); - + // Verify types were merged from include - const typeNames = (resolved?.complexType as Array<{ name?: string }>)?.map(ct => ct.name) ?? []; - assert.ok(typeNames.includes('DevcType'), 'Should have DevcType from $includes'); - assert.ok(typeNames.includes('AbapValuesType'), 'Should have AbapValuesType from main schema'); + const typeNames = + (resolved?.complexType as Array<{ name?: string }>)?.map( + (ct) => ct.name, + ) ?? []; + assert.ok( + typeNames.includes('DevcType'), + 'Should have DevcType from $includes', + ); + assert.ok( + typeNames.includes('AbapValuesType'), + 'Should have AbapValuesType from main schema', + ); }); it('should reproduce the linkSchemaImports bug with same-named files', () => { // This test reproduces the ACTUAL bug in linkSchemaImports - // + // // Scenario: // - allSchemas has 'devc' (for devc.xsd) and 'types/devc' (for types/devc.xsd) // - devc.xsd has include: [{ schemaLocation: 'types/devc.xsd' }] // - When linking, it looks for 'types/devc' - if NOT found, falls back to 'devc' // - If 'types/devc' is missing from allSchemas, it finds 'devc' (the parent!) → infinite recursion - + const typesDevcSchema: Schema = { $filename: 'types/devc.xsd', complexType: [ - { name: 'DevcType', all: { element: [{ name: 'CTEXT', type: 'xs:string' }] } }, + { + name: 'DevcType', + all: { element: [{ name: 'CTEXT', type: 'xs:string' }] }, + }, ], }; const devcSchema: Schema = { $filename: 'devc.xsd', targetNamespace: 'http://www.sap.com/abapxml', - include: [{ schemaLocation: 'types/devc.xsd' }], // Raw include, not yet linked + include: [{ schemaLocation: 'types/devc.xsd' }], // Raw include, not yet linked complexType: [ - { name: 'AbapValuesType', sequence: { element: [{ name: 'DEVC', type: 'asx:DevcType', minOccurs: '0' }] } }, + { + name: 'AbapValuesType', + sequence: { + element: [{ name: 'DEVC', type: 'asx:DevcType', minOccurs: '0' }], + }, + }, ], }; @@ -141,7 +173,10 @@ describe('Schema linking with same-named files', () => { } catch (e) { error = e as Error; } - assert.ok(!error, `Case 1 (correct keys) should not throw: ${error?.message}`); + assert.ok( + !error, + `Case 1 (correct keys) should not throw: ${error?.message}`, + ); // Case 2: types/devc is MISSING - the fallback will find 'devc' (wrong schema!) const allSchemasMissingTypesDevc = new Map([ @@ -155,54 +190,95 @@ describe('Schema linking with same-named files', () => { } catch (e) { error = e as Error; } - + // This SHOULD fail with infinite recursion detection - assert.ok(error, 'Case 2 (missing types/devc) should detect infinite recursion'); - assert.ok(error?.message?.includes('Infinite recursion'), `Should be recursion error: ${error?.message}`); + assert.ok( + error, + 'Case 2 (missing types/devc) should detect infinite recursion', + ); + assert.ok( + error?.message?.includes('Infinite recursion'), + `Should be recursion error: ${error?.message}`, + ); }); it('should correctly distinguish types/devc.xsd from devc.xsd in schema map', () => { // Test the schema map lookup logic that linkSchemaImports uses const allSchemas = new Map([ - ['devc', { name: 'devc', schema: { $filename: 'devc.xsd' } as Schema, xsdPath: 'xsd/devc.xsd' }], - ['types/devc', { name: 'types/devc', schema: { $filename: 'types/devc.xsd' } as Schema, xsdPath: 'xsd/types/devc.xsd' }], + [ + 'devc', + { + name: 'devc', + schema: { $filename: 'devc.xsd' } as Schema, + xsdPath: 'xsd/devc.xsd', + }, + ], + [ + 'types/devc', + { + name: 'types/devc', + schema: { $filename: 'types/devc.xsd' } as Schema, + xsdPath: 'xsd/types/devc.xsd', + }, + ], ]); // When looking for 'types/devc.xsd', we should find 'types/devc', NOT 'devc' const schemaLocation = 'types/devc.xsd'; - const schemaNameWithPath = schemaLocation.replace(/\.xsd$/, ''); // 'types/devc' - + const schemaNameWithPath = schemaLocation.replace(/\.xsd$/, ''); // 'types/devc' + const found = allSchemas.get(schemaNameWithPath); - + assert.ok(found, 'Should find types/devc in allSchemas'); - assert.strictEqual(found?.name, 'types/devc', 'Should find the correct schema'); - assert.strictEqual(found?.schema.$filename, 'types/devc.xsd', 'Should have correct filename'); + assert.strictEqual( + found?.name, + 'types/devc', + 'Should find the correct schema', + ); + assert.strictEqual( + found?.schema.$filename, + 'types/devc.xsd', + 'Should have correct filename', + ); }); it('should NOT fallback to basename when path is specified and found', () => { // This tests the bug: when include has a path like "types/devc.xsd", // and "types/devc" exists in the map, we should NOT fallback to "devc" - + const allSchemas = new Map([ ['devc', { name: 'devc', schema: { $filename: 'devc.xsd' } as Schema }], - ['types/devc', { name: 'types/devc', schema: { $filename: 'types/devc.xsd' } as Schema }], + [ + 'types/devc', + { + name: 'types/devc', + schema: { $filename: 'types/devc.xsd' } as Schema, + }, + ], ]); const schemaLocation = 'types/devc.xsd'; - const schemaNameWithPath = schemaLocation.replace(/\.xsd$/, ''); // 'types/devc' - const schemaNameWithoutPath = schemaNameWithPath.replace(/^.*\//, ''); // 'devc' - + const schemaNameWithPath = schemaLocation.replace(/\.xsd$/, ''); // 'types/devc' + const schemaNameWithoutPath = schemaNameWithPath.replace(/^.*\//, ''); // 'devc' + // Current buggy logic: allSchemas.get(schemaNameWithPath) ?? allSchemas.get(schemaNameWithoutPath) // This works when types/devc exists, but the fallback is dangerous - + // The lookup should prefer the full path const foundWithPath = allSchemas.get(schemaNameWithPath); const foundWithoutPath = allSchemas.get(schemaNameWithoutPath); - + assert.ok(foundWithPath, 'Should find with full path'); - assert.ok(foundWithoutPath, 'Basename also exists (this is the collision case)'); - assert.notStrictEqual(foundWithPath, foundWithoutPath, 'They should be different schemas'); - + assert.ok( + foundWithoutPath, + 'Basename also exists (this is the collision case)', + ); + assert.notStrictEqual( + foundWithPath, + foundWithoutPath, + 'They should be different schemas', + ); + // The correct behavior: use full path match, don't fallback when path is specified assert.strictEqual(foundWithPath?.schema.$filename, 'types/devc.xsd'); assert.strictEqual(foundWithoutPath?.schema.$filename, 'devc.xsd'); diff --git a/packages/ts-xsd/tests/unit/link-schema.test.ts b/packages/ts-xsd/tests/unit/link-schema.test.ts index 6a16a72f..727e3134 100644 --- a/packages/ts-xsd/tests/unit/link-schema.test.ts +++ b/packages/ts-xsd/tests/unit/link-schema.test.ts @@ -4,7 +4,12 @@ import { describe, it } from 'node:test'; import assert from 'node:assert'; -import { parseXsd, linkSchema, loadSchema, type XsdLoader } from '../../src/xsd'; +import { + parseXsd, + linkSchema, + loadSchema, + type XsdLoader, +} from '../../src/xsd'; describe('linkSchema', () => { describe('xs:import resolution', () => { @@ -41,7 +46,10 @@ describe('linkSchema', () => { // Verify $imports is populated assert.ok(schema.$imports, '$imports should be populated'); assert.strictEqual(schema.$imports.length, 1, 'Should have 1 import'); - assert.strictEqual(schema.$imports[0].targetNamespace, 'http://example.com/base'); + assert.strictEqual( + schema.$imports[0].targetNamespace, + 'http://example.com/base', + ); assert.strictEqual(schema.$imports[0].$filename, 'base.xsd'); }); @@ -65,9 +73,13 @@ describe('linkSchema', () => { `; const schema = parseXsd(mainXsd); - + assert.throws(() => { - linkSchema(schema, { basePath: '/test', loader: () => null, throwOnMissing: true }); + linkSchema(schema, { + basePath: '/test', + loader: () => null, + throwOnMissing: true, + }); }, /Failed to load schema: missing.xsd/); }); }); @@ -144,10 +156,15 @@ describe('linkSchema', () => { // Redefine block should have $schema populated with base schema assert.ok(schema.redefine, 'redefine should exist'); assert.strictEqual(schema.redefine.length, 1); - assert.ok(schema.redefine[0].complexType, 'redefine should have complexType'); - + assert.ok( + schema.redefine[0].complexType, + 'redefine should have complexType', + ); + // Base schema is attached to redefine.$schema (not $includes) - const redefine = schema.redefine[0] as { $schema?: { $filename?: string } }; + const redefine = schema.redefine[0] as { + $schema?: { $filename?: string }; + }; assert.ok(redefine.$schema, 'redefine should have $schema'); assert.strictEqual(redefine.$schema.$filename, 'base-types.xsd'); }); @@ -186,13 +203,19 @@ describe('linkSchema', () => { // Main -> level1 assert.ok(schema.$imports); assert.strictEqual(schema.$imports.length, 1); - assert.strictEqual(schema.$imports[0].targetNamespace, 'http://example.com/level1'); + assert.strictEqual( + schema.$imports[0].targetNamespace, + 'http://example.com/level1', + ); // level1 -> level2 const level1 = schema.$imports[0]; assert.ok(level1.$imports); assert.strictEqual(level1.$imports.length, 1); - assert.strictEqual(level1.$imports[0].targetNamespace, 'http://example.com/level2'); + assert.strictEqual( + level1.$imports[0].targetNamespace, + 'http://example.com/level2', + ); }); it('should handle circular references without infinite loop', () => { @@ -215,7 +238,7 @@ describe('linkSchema', () => { }; const schema = parseXsd(schemaA); - + // Should not hang or throw linkSchema(schema, { basePath: '/test', loader }); @@ -245,10 +268,10 @@ describe('linkSchema', () => { return null; }; - const schema = loadSchema('main.xsd', { - basePath: '/test', - loader, - autoLink: true + const schema = loadSchema('main.xsd', { + basePath: '/test', + loader, + autoLink: true, }); assert.ok(schema.$imports, '$imports should be populated with autoLink'); @@ -278,20 +301,25 @@ describe('linkSchema', () => { return null; }; - const schema = loadSchema('main.xsd', { - basePath: '/test', - loader, - autoResolve: true + const schema = loadSchema('main.xsd', { + basePath: '/test', + loader, + autoResolve: true, }); // autoResolve flattens - no $imports assert.ok(!schema.$imports, '$imports should NOT exist after resolve'); - + // Both types should be merged into one schema assert.ok(schema.complexType, 'complexType should exist'); - const typeNames = schema.complexType.map((ct: { name: string }) => ct.name); + const typeNames = schema.complexType.map( + (ct: { name: string }) => ct.name, + ); assert.ok(typeNames.includes('MainType'), 'Should have MainType'); - assert.ok(typeNames.includes('BaseType'), 'Should have BaseType from import'); + assert.ok( + typeNames.includes('BaseType'), + 'Should have BaseType from import', + ); }); it('should keep $imports with autoLink but not autoResolve', () => { @@ -315,21 +343,21 @@ describe('linkSchema', () => { return null; }; - const schema = loadSchema('main.xsd', { - basePath: '/test', - loader, - autoLink: true // NOT autoResolve + const schema = loadSchema('main.xsd', { + basePath: '/test', + loader, + autoLink: true, // NOT autoResolve }); // autoLink keeps structure - $imports exists assert.ok(schema.$imports, '$imports should exist with autoLink'); assert.strictEqual(schema.$imports.length, 1); - + // Main schema only has its own type assert.ok(schema.complexType, 'complexType should exist'); assert.strictEqual(schema.complexType.length, 1); assert.strictEqual(schema.complexType[0].name, 'MainType'); - + // BaseType is in $imports, not merged assert.strictEqual(schema.$imports![0].complexType![0].name, 'BaseType'); }); @@ -385,7 +413,10 @@ describe('linkSchema', () => { // Check imports (external namespace) assert.ok(schema.$imports); assert.strictEqual(schema.$imports.length, 1); - assert.strictEqual(schema.$imports[0].targetNamespace, 'http://example.com/external'); + assert.strictEqual( + schema.$imports[0].targetNamespace, + 'http://example.com/external', + ); // Check includes (internal only - redefine base goes to redefine.$schema) assert.ok(schema.$includes); @@ -394,7 +425,9 @@ describe('linkSchema', () => { // Check redefine.$schema (base schema) assert.ok(schema.redefine); - const redefine = schema.redefine[0] as { $schema?: { $filename?: string } }; + const redefine = schema.redefine[0] as { + $schema?: { $filename?: string }; + }; assert.ok(redefine.$schema, 'redefine should have $schema'); assert.strictEqual(redefine.$schema.$filename, 'base.xsd'); }); diff --git a/packages/ts-xsd/tests/unit/loader.test.ts b/packages/ts-xsd/tests/unit/loader.test.ts index f901594c..ecd64fa0 100644 --- a/packages/ts-xsd/tests/unit/loader.test.ts +++ b/packages/ts-xsd/tests/unit/loader.test.ts @@ -1,19 +1,19 @@ /** * Unit tests for Schema Loader - * + * * Tests loadSchema, linkSchema, defaultLoader, and related functions. */ import { describe, it } from 'node:test'; import assert from 'node:assert'; -import { - loadSchema, - linkSchema, +import { + loadSchema, + linkSchema, defaultLoader, parseSchemaContent, createSchemaLoader, loadAndLinkSchema, - type XsdLoader + type XsdLoader, } from '../../src/xsd/loader'; import { parseXsd } from '../../src/xsd/parse'; @@ -31,7 +31,7 @@ describe('Schema Loader', () => { `; - + const schema = parseSchemaContent(xsd); assert.ok(schema.element); assert.strictEqual(schema.element[0].name, 'test'); @@ -43,7 +43,7 @@ describe('Schema Loader', () => { `; - + const schema = parseSchemaContent(xsd, 'test.xsd'); assert.strictEqual(schema.$filename, 'test.xsd'); }); @@ -55,25 +55,25 @@ describe('Schema Loader', () => { `; - + let loadCount = 0; const mockLoader: XsdLoader = () => { loadCount++; return xsd; }; - + const schemaLoader = createSchemaLoader('/test', mockLoader); - + // First load const schema1 = schemaLoader('test.xsd'); assert.ok(schema1); assert.strictEqual(loadCount, 1); - + // Second load - should be cached const schema2 = schemaLoader('test.xsd'); assert.ok(schema2); assert.strictEqual(loadCount, 1); // Still 1 - cached - + // Same schema object assert.strictEqual(schema1, schema2); }); @@ -97,12 +97,12 @@ describe('Schema Loader', () => { `; - + const loader: XsdLoader = (path) => { if (path.endsWith('test.xsd')) return xsd; return null; }; - + const schema = loadSchema('test.xsd', { basePath: '/test', loader }); assert.ok(schema.element); assert.strictEqual(schema.element[0].name, 'root'); @@ -111,12 +111,12 @@ describe('Schema Loader', () => { it('should set $filename on loaded schema', () => { const xsd = ` `; - - const schema = loadSchema('my-schema.xsd', { - basePath: '/test', - loader: () => xsd + + const schema = loadSchema('my-schema.xsd', { + basePath: '/test', + loader: () => xsd, }); - + assert.strictEqual(schema.$filename, 'my-schema.xsd'); }); @@ -125,24 +125,24 @@ describe('Schema Loader', () => { `; - + const typesXsd = ` `; - + const loader: XsdLoader = (path) => { if (path.endsWith('main.xsd')) return mainXsd; if (path === 'types.xsd') return typesXsd; return null; }; - - const schema = loadSchema('main.xsd', { - basePath: '/test', + + const schema = loadSchema('main.xsd', { + basePath: '/test', loader, - autoLink: true + autoLink: true, }); - + assert.ok(schema.$imports); assert.strictEqual(schema.$imports.length, 1); }); @@ -153,29 +153,29 @@ describe('Schema Loader', () => { `; - + const typesXsd = ` `; - + const loader: XsdLoader = (path) => { if (path.endsWith('main.xsd')) return mainXsd; if (path === 'types.xsd') return typesXsd; return null; }; - - const schema = loadSchema('main.xsd', { - basePath: '/test', + + const schema = loadSchema('main.xsd', { + basePath: '/test', loader, - autoResolve: true + autoResolve: true, }); - + // autoResolve flattens - no $imports assert.ok(!schema.$imports); - + // Both types should be merged - const typeNames = schema.complexType?.map(ct => ct.name) ?? []; + const typeNames = schema.complexType?.map((ct) => ct.name) ?? []; assert.ok(typeNames.includes('MainType')); assert.ok(typeNames.includes('ImportedType')); }); @@ -189,23 +189,25 @@ describe('Schema Loader', () => { `; - + const baseXsd = ` `; - + const loader: XsdLoader = (path) => { if (path === 'base.xsd') return baseXsd; return null; }; - + const schema = parseXsd(mainXsd); linkSchema(schema, { basePath: '/test', loader }); - + // Override should have $schema attached assert.ok(schema.override); - const override = schema.override[0] as { $schema?: { $filename?: string } }; + const override = schema.override[0] as { + $schema?: { $filename?: string }; + }; assert.ok(override.$schema); assert.strictEqual(override.$schema.$filename, 'base.xsd'); }); @@ -215,10 +217,10 @@ describe('Schema Loader', () => { `; - + const schema = parseXsd(xsd); linkSchema(schema, { basePath: '/test', loader: () => null }); - + // Should not throw, $imports should be empty assert.ok(!schema.$imports || schema.$imports.length === 0); }); @@ -228,10 +230,10 @@ describe('Schema Loader', () => { `; - + const schema = parseXsd(xsd); linkSchema(schema, { basePath: '/test', loader: () => null }); - + assert.ok(!schema.$includes || schema.$includes.length === 0); }); @@ -242,10 +244,10 @@ describe('Schema Loader', () => { `; - + const schema = parseXsd(xsd); linkSchema(schema, { basePath: '/test', loader: () => null }); - + // Should not throw assert.ok(schema.redefine); }); @@ -255,11 +257,15 @@ describe('Schema Loader', () => { `; - + const schema = parseXsd(xsd); - + // Should not throw - linkSchema(schema, { basePath: '/test', loader: () => null, throwOnMissing: false }); + linkSchema(schema, { + basePath: '/test', + loader: () => null, + throwOnMissing: false, + }); assert.ok(!schema.$imports || schema.$imports.length === 0); }); }); @@ -271,20 +277,20 @@ describe('Schema Loader', () => { `; - + const typesXsd = ` `; - + const loader: XsdLoader = (path) => { if (path.endsWith('main.xsd')) return mainXsd; if (path === 'types.xsd') return typesXsd; return null; }; - + const schema = loadAndLinkSchema('main.xsd', { loader }); - + assert.ok(schema.element); assert.ok(schema.$imports); assert.strictEqual(schema.$imports.length, 1); diff --git a/packages/ts-xsd/tests/unit/parse-coverage.test.ts b/packages/ts-xsd/tests/unit/parse-coverage.test.ts index 7fef22ef..d36316f9 100644 --- a/packages/ts-xsd/tests/unit/parse-coverage.test.ts +++ b/packages/ts-xsd/tests/unit/parse-coverage.test.ts @@ -1,8 +1,8 @@ /** * XSD Parser Coverage Tests - * + * * Tests for parseXsd function covering all XSD constructs not in XMLSchema.xsd - * + * * NOTE: This test file uses non-null assertions (!) extensively because we're testing * parsed XSD results where we know the structure. */ @@ -16,7 +16,10 @@ describe('parseXsd coverage', () => { describe('Error handling', () => { it('should throw on invalid root element', () => { const xsd = ``; - assert.throws(() => parseXsd(xsd), /Invalid XSD: root element must be xs:schema/); + assert.throws( + () => parseXsd(xsd), + /Invalid XSD: root element must be xs:schema/, + ); }); it('should throw on empty document', () => { @@ -41,7 +44,7 @@ describe('parseXsd coverage', () => { xml:lang="en"> `; const schema = parseXsd(xsd); - + assert.equal(schema.id, 'schema-id'); assert.equal(schema.targetNamespace, 'http://example.com'); assert.equal(schema.version, '1.0'); @@ -64,7 +67,7 @@ describe('parseXsd coverage', () => { `; const schema = parseXsd(xsd); - + assert.ok(schema.include); assert.equal(schema.include![0].schemaLocation, 'other.xsd'); assert.equal(schema.include![0].id, 'inc1'); @@ -87,7 +90,7 @@ describe('parseXsd coverage', () => { `; const schema = parseXsd(xsd); - + assert.ok(schema.redefine); assert.equal(schema.redefine![0].schemaLocation, 'base.xsd'); assert.ok(schema.redefine![0].annotation); @@ -116,7 +119,7 @@ describe('parseXsd coverage', () => { `; const schema = parseXsd(xsd); - + assert.ok(schema.override); assert.equal(schema.override![0].schemaLocation, 'base.xsd'); assert.ok(schema.override![0].annotation); @@ -141,7 +144,7 @@ describe('parseXsd coverage', () => { `; const schema = parseXsd(xsd); - + const st = schema.simpleType![0]; assert.ok(st.list); assert.equal(st.list.itemType, 'xs:string'); @@ -161,7 +164,7 @@ describe('parseXsd coverage', () => { `; const schema = parseXsd(xsd); - + const st = schema.simpleType![0]; assert.ok(st.list); assert.ok(st.list.simpleType); @@ -177,7 +180,7 @@ describe('parseXsd coverage', () => { `; const schema = parseXsd(xsd); - + const st = schema.simpleType![0]; assert.ok(st.union); assert.equal(st.union.memberTypes, 'xs:string xs:integer'); @@ -199,7 +202,7 @@ describe('parseXsd coverage', () => { `; const schema = parseXsd(xsd); - + const st = schema.simpleType![0]; assert.ok(st.union); assert.ok(st.union.simpleType); @@ -230,7 +233,7 @@ describe('parseXsd coverage', () => { `; const schema = parseXsd(xsd); - + const r = schema.simpleType![0].restriction!; assert.ok(r.minExclusive); assert.ok(r.minInclusive); @@ -261,7 +264,7 @@ describe('parseXsd coverage', () => { `; const schema = parseXsd(xsd); - + const e = schema.simpleType![0].restriction!.enumeration![0]; assert.equal(e.value, 'A'); assert.equal(e.id, 'enum-a'); @@ -281,7 +284,7 @@ describe('parseXsd coverage', () => { `; const schema = parseXsd(xsd); - + const p = schema.simpleType![0].restriction!.pattern![0]; assert.equal(p.value, '[A-Z]+'); assert.equal(p.id, 'pat1'); @@ -301,7 +304,7 @@ describe('parseXsd coverage', () => { `; const schema = parseXsd(xsd); - + const r = schema.simpleType![0].restriction!; assert.ok(r.simpleType); }); @@ -324,7 +327,7 @@ describe('parseXsd coverage', () => { `; const schema = parseXsd(xsd); - + const ct = schema.complexType![0]; assert.ok(ct.simpleContent); assert.ok(ct.simpleContent.extension); @@ -357,7 +360,7 @@ describe('parseXsd coverage', () => { `; const schema = parseXsd(xsd); - + const ct = schema.complexType![0]; assert.ok(ct.simpleContent); assert.ok(ct.simpleContent.restriction); @@ -382,7 +385,7 @@ describe('parseXsd coverage', () => { `; const schema = parseXsd(xsd); - + const ct = schema.complexType![0]; assert.ok(ct.complexContent); assert.equal(ct.complexContent.mixed, true); @@ -403,7 +406,7 @@ describe('parseXsd coverage', () => { `; const schema = parseXsd(xsd); - + const ct = schema.complexType![0]; assert.ok(ct.openContent); assert.equal(ct.openContent.mode, 'interleave'); @@ -420,7 +423,7 @@ describe('parseXsd coverage', () => { `; const schema = parseXsd(xsd); - + const ct = schema.complexType![0]; assert.ok(ct.group); assert.equal(ct.group.ref, 'myGroup'); @@ -442,7 +445,7 @@ describe('parseXsd coverage', () => { `; const schema = parseXsd(xsd); - + const ct = schema.complexType![0]; assert.ok(ct.all); assert.equal(ct.all!.minOccurs, '0'); @@ -469,7 +472,7 @@ describe('parseXsd coverage', () => { `; const schema = parseXsd(xsd); - + const ct = schema.complexType![0]; assert.ok(ct.choice); assert.ok(ct.choice!.element); @@ -492,7 +495,7 @@ describe('parseXsd coverage', () => { `; const schema = parseXsd(xsd); - + const ct = schema.complexType![0]; assert.ok(ct.assert); assert.equal(ct.assert[0].test, '$value > 0'); @@ -512,7 +515,7 @@ describe('parseXsd coverage', () => { `; const schema = parseXsd(xsd); - + const el = schema.element![0]; assert.ok(el.complexType); assert.equal(el.complexType.mixed, true); @@ -538,7 +541,7 @@ describe('parseXsd coverage', () => { `; const schema = parseXsd(xsd); - + const el = schema.element![0]; assert.equal(el.name, 'myElement'); assert.equal(el.id, 'el1'); @@ -562,7 +565,7 @@ describe('parseXsd coverage', () => { `; const schema = parseXsd(xsd); - + const el = schema.element![0]; assert.ok(el.simpleType); }); @@ -587,7 +590,7 @@ describe('parseXsd coverage', () => { `; const schema = parseXsd(xsd); - + const el = schema.element![0]; assert.ok(el.alternative); assert.equal(el.alternative.length, 3); @@ -619,7 +622,7 @@ describe('parseXsd coverage', () => { `; const schema = parseXsd(xsd); - + const el = schema.complexType![0].sequence!.element![0]; assert.equal(el.minOccurs, '0'); assert.equal(el.maxOccurs, 'unbounded'); @@ -657,18 +660,18 @@ describe('parseXsd coverage', () => { `; const schema = parseXsd(xsd); - + const el = schema.element![0]; assert.ok(el.unique); assert.equal(el.unique![0].name, 'uniqueConstraint'); assert.equal(el.unique![0].ref, 'otherUnique'); assert.ok(el.unique![0].selector); assert.ok(el.unique![0].field); - + assert.ok(el.key); assert.equal(el.key![0].name, 'keyConstraint'); assert.equal(el.key![0].field!.length, 2); - + assert.ok(el.keyref); assert.equal(el.keyref![0].refer, 'keyConstraint'); }); @@ -702,7 +705,7 @@ describe('parseXsd coverage', () => { `; const schema = parseXsd(xsd); - + const el = schema.complexType![0].sequence!.element![0]; assert.ok(el.unique); assert.ok(el.key); @@ -725,7 +728,7 @@ describe('parseXsd coverage', () => { `; const schema = parseXsd(xsd); - + const attr = schema.attribute![0]; assert.equal(attr.name, 'myAttr'); assert.equal(attr.id, 'attr1'); @@ -745,7 +748,7 @@ describe('parseXsd coverage', () => { `; const schema = parseXsd(xsd); - + const attr = schema.attribute![0]; assert.ok(attr.simpleType); }); @@ -772,7 +775,7 @@ describe('parseXsd coverage', () => { `; const schema = parseXsd(xsd); - + const attr = schema.complexType![0].attribute![0]; assert.equal(attr.use, 'required'); assert.equal(attr.form, 'qualified'); @@ -795,7 +798,7 @@ describe('parseXsd coverage', () => { `; const schema = parseXsd(xsd); - + const grp = schema.group![0]; assert.equal(grp.name, 'myGroup'); assert.equal(grp.id, 'grp1'); @@ -813,7 +816,7 @@ describe('parseXsd coverage', () => { `; const schema = parseXsd(xsd); - + const grp = schema.group![0]; assert.ok(grp.choice); }); @@ -829,7 +832,7 @@ describe('parseXsd coverage', () => { `; const schema = parseXsd(xsd); - + const grp = schema.group![0]; assert.ok(grp.sequence); }); @@ -848,7 +851,7 @@ describe('parseXsd coverage', () => { `; const schema = parseXsd(xsd); - + const ag = schema.attributeGroup![0]; assert.equal(ag.name, 'myAttrGroup'); assert.equal(ag.id, 'ag1'); @@ -867,7 +870,7 @@ describe('parseXsd coverage', () => { `; const schema = parseXsd(xsd); - + const ag = schema.complexType![0].attributeGroup![0]; assert.equal(ag.ref, 'myAttrGroup'); assert.equal(ag.id, 'agRef1'); @@ -893,7 +896,7 @@ describe('parseXsd coverage', () => { `; const schema = parseXsd(xsd); - + const any = schema.complexType![0].sequence!.any![0]; assert.equal(any.id, 'any1'); assert.equal(any.minOccurs, '0'); @@ -918,7 +921,7 @@ describe('parseXsd coverage', () => { `; const schema = parseXsd(xsd); - + const aa = schema.complexType![0].anyAttribute!; assert.equal(aa.id, 'anyAttr1'); assert.equal(aa.namespace, '##local'); @@ -938,7 +941,7 @@ describe('parseXsd coverage', () => { `; const schema = parseXsd(xsd); - + const doc = schema.defaultOpenContent; assert.ok(doc); assert.equal(doc.id, 'doc1'); @@ -957,7 +960,7 @@ describe('parseXsd coverage', () => { `; const schema = parseXsd(xsd); - + const ann = schema.annotation![0]; assert.equal(ann.id, 'ann1'); assert.ok(ann.appinfo); @@ -973,7 +976,7 @@ describe('parseXsd coverage', () => { `; const schema = parseXsd(xsd); - + const doc = schema.annotation![0].documentation![0]; assert.equal(doc.source, 'http://docs.example.com'); assert.equal(doc['xml:lang'], 'en'); @@ -990,7 +993,7 @@ describe('parseXsd coverage', () => { `; const schema = parseXsd(xsd); - + const not = schema.notation![0]; assert.equal(not.name, 'jpeg'); assert.equal(not.id, 'not1'); diff --git a/packages/ts-xsd/tests/unit/parse.test.ts b/packages/ts-xsd/tests/unit/parse.test.ts index 9133a252..7448bce2 100644 --- a/packages/ts-xsd/tests/unit/parse.test.ts +++ b/packages/ts-xsd/tests/unit/parse.test.ts @@ -35,12 +35,17 @@ describe('parseXsd', () => { it('should parse simpleTypes with enumerations', () => { const schema = parseXsd(xsdContent); - const formChoice = schema.simpleType?.find(st => st.name === 'formChoice'); + const formChoice = schema.simpleType?.find( + (st) => st.name === 'formChoice', + ); assert.ok(formChoice, 'formChoice should exist'); assert.equal(formChoice?.restriction?.enumeration?.length, 2); assert.equal(formChoice?.restriction?.enumeration?.[0]?.value, 'qualified'); - assert.equal(formChoice?.restriction?.enumeration?.[1]?.value, 'unqualified'); + assert.equal( + formChoice?.restriction?.enumeration?.[1]?.value, + 'unqualified', + ); }); it('should parse groups', () => { @@ -65,7 +70,9 @@ describe('parseXsd', () => { const firstAnnotation = schema.annotation?.[0]; assert.ok(firstAnnotation?.documentation); - assert.ok(firstAnnotation?.documentation?.[0]?._text?.includes('Part 1 version')); + assert.ok( + firstAnnotation?.documentation?.[0]?._text?.includes('Part 1 version'), + ); }); }); @@ -73,7 +80,7 @@ describe('Schema type validation', () => { it('should satisfy Schema type', () => { // Parse W3C XSD and verify it satisfies Schema type const schema: Schema = parseXsd(xsdContent); - + assert.equal(schema.targetNamespace, 'http://www.w3.org/2001/XMLSchema'); }); }); @@ -81,7 +88,7 @@ describe('Schema type validation', () => { describe('$xmlns declarations', () => { it('should extract $xmlns declarations from schema root', () => { const schema = parseXsd(xsdContent); - + assert.ok(schema.$xmlns, '$xmlns should be present'); assert.equal(schema.$xmlns?.xs, 'http://www.w3.org/2001/XMLSchema'); }); @@ -96,7 +103,7 @@ describe('$xmlns declarations', () => { `; const schema = parseXsd(xsd); - + assert.ok(schema.$xmlns, '$xmlns should be present'); assert.equal(schema.$xmlns?.xs, 'http://www.w3.org/2001/XMLSchema'); assert.equal(schema.$xmlns?.tns, 'http://example.com/order'); @@ -112,7 +119,7 @@ describe('$xmlns declarations', () => { `; const schema = parseXsd(xsd); - + assert.ok(schema.$xmlns, '$xmlns should be present'); assert.equal(schema.$xmlns?.[''], 'http://www.w3.org/2001/XMLSchema'); assert.equal(schema.$xmlns?.tns, 'http://example.com/order'); diff --git a/packages/ts-xsd/tests/unit/resolve.test.ts b/packages/ts-xsd/tests/unit/resolve.test.ts index 5c0334e1..8b9fcbdc 100644 --- a/packages/ts-xsd/tests/unit/resolve.test.ts +++ b/packages/ts-xsd/tests/unit/resolve.test.ts @@ -1,6 +1,6 @@ /** * Unit tests for Schema Resolver - * + * * Tests the resolveSchema function that merges imports and expands * substitution groups into a single self-contained schema. */ @@ -18,9 +18,7 @@ describe('Schema Resolver', () => { const asxSchema = { $filename: 'asx.xsd', targetNamespace: 'http://www.sap.com/abapxml', - element: [ - { name: 'Schema', abstract: true }, - ], + element: [{ name: 'Schema', abstract: true }], complexType: [ { name: 'AbapValuesType', @@ -40,11 +38,21 @@ describe('Schema Resolver', () => { $imports: [asxSchema], element: [ { name: 'DD01V', type: 'Dd01vType', substitutionGroup: 'asx:Schema' }, - { name: 'DD07V_TAB', type: 'Dd07vTabType', substitutionGroup: 'asx:Schema' }, + { + name: 'DD07V_TAB', + type: 'Dd07vTabType', + substitutionGroup: 'asx:Schema', + }, ], complexType: [ - { name: 'Dd01vType', sequence: { element: [{ name: 'DOMNAME', type: 'xs:string' }] } }, - { name: 'Dd07vTabType', sequence: { element: [{ name: 'DD07V', type: 'Dd07vType' }] } }, + { + name: 'Dd01vType', + sequence: { element: [{ name: 'DOMNAME', type: 'xs:string' }] }, + }, + { + name: 'Dd07vTabType', + sequence: { element: [{ name: 'DD07V', type: 'Dd07vType' }] }, + }, ], }; @@ -52,27 +60,31 @@ describe('Schema Resolver', () => { // Should have merged types from import const complexTypes = resolved.complexType as { name?: string }[]; - const typeNames = complexTypes.map(ct => ct.name); - + const typeNames = complexTypes.map((ct) => ct.name); + assert.ok(typeNames.includes('Dd01vType'), 'Should have Dd01vType'); assert.ok(typeNames.includes('Dd07vTabType'), 'Should have Dd07vTabType'); - assert.ok(typeNames.includes('AbapValuesType'), 'Should have AbapValuesType from import'); - + assert.ok( + typeNames.includes('AbapValuesType'), + 'Should have AbapValuesType from import', + ); + // Should have merged elements const elements = resolved.element as { name?: string }[]; - const elementNames = elements.map(el => el.name); - + const elementNames = elements.map((el) => el.name); + assert.ok(elementNames.includes('DD01V'), 'Should have DD01V'); assert.ok(elementNames.includes('DD07V_TAB'), 'Should have DD07V_TAB'); - assert.ok(elementNames.includes('Schema'), 'Should have Schema from import'); + assert.ok( + elementNames.includes('Schema'), + 'Should have Schema from import', + ); }); it('should expand substitution groups in complex types', () => { const asxSchema = { $filename: 'asx.xsd', - element: [ - { name: 'Schema', abstract: true }, - ], + element: [{ name: 'Schema', abstract: true }], complexType: [ { name: 'AbapValuesType', @@ -90,32 +102,44 @@ describe('Schema Resolver', () => { $imports: [asxSchema], element: [ { name: 'DD01V', type: 'Dd01vType', substitutionGroup: 'asx:Schema' }, - { name: 'DD07V_TAB', type: 'Dd07vTabType', substitutionGroup: 'asx:Schema' }, - ], - complexType: [ - { name: 'Dd01vType' }, - { name: 'Dd07vTabType' }, + { + name: 'DD07V_TAB', + type: 'Dd07vTabType', + substitutionGroup: 'asx:Schema', + }, ], + complexType: [{ name: 'Dd01vType' }, { name: 'Dd07vTabType' }], }; const resolved = resolveSchema(domaSchema, { expandSubstitutions: true }); // Find AbapValuesType - const complexTypes = resolved.complexType as { name?: string; sequence?: { element?: { name?: string }[] } }[]; - const abapValuesType = complexTypes.find(ct => ct.name === 'AbapValuesType'); - + const complexTypes = resolved.complexType as { + name?: string; + sequence?: { element?: { name?: string }[] }; + }[]; + const abapValuesType = complexTypes.find( + (ct) => ct.name === 'AbapValuesType', + ); + assert.ok(abapValuesType, 'Should have AbapValuesType'); - + // The sequence should now have DD01V and DD07V_TAB instead of abstract Schema ref const elements = abapValuesType.sequence?.element ?? []; - const elementNames = elements.map(el => el.name); - + const elementNames = elements.map((el) => el.name); + assert.ok(elementNames.includes('DD01V'), 'Should have DD01V element'); - assert.ok(elementNames.includes('DD07V_TAB'), 'Should have DD07V_TAB element'); + assert.ok( + elementNames.includes('DD07V_TAB'), + 'Should have DD07V_TAB element', + ); }); it('should not include $imports in resolved schema by default', () => { - const baseSchema = { $filename: 'base.xsd', complexType: [{ name: 'BaseType' }] }; + const baseSchema = { + $filename: 'base.xsd', + complexType: [{ name: 'BaseType' }], + }; const mainSchema = { $filename: 'main.xsd', $imports: [baseSchema], @@ -123,12 +147,15 @@ describe('Schema Resolver', () => { }; const resolved = resolveSchema(mainSchema); - + assert.ok(!resolved.$imports, 'Should not have $imports by default'); }); it('should keep $imports reference when keepImportsRef is true', () => { - const baseSchema = { $filename: 'base.xsd', complexType: [{ name: 'BaseType' }] }; + const baseSchema = { + $filename: 'base.xsd', + complexType: [{ name: 'BaseType' }], + }; const mainSchema = { $filename: 'main.xsd', $imports: [baseSchema], @@ -136,8 +163,11 @@ describe('Schema Resolver', () => { }; const resolved = resolveSchema(mainSchema, { keepImportsRef: true }); - - assert.ok(resolved.$imports, 'Should have $imports when keepImportsRef is true'); + + assert.ok( + resolved.$imports, + 'Should have $imports when keepImportsRef is true', + ); }); it('should expand complexContent/extension', () => { @@ -167,17 +197,26 @@ describe('Schema Resolver', () => { const resolved = resolveSchema(schema, { expandExtensions: true }); // Find DerivedType - const complexTypes = resolved.complexType as { name?: string; all?: { element?: { name?: string }[] } }[]; - const derivedType = complexTypes.find(ct => ct.name === 'DerivedType'); - + const complexTypes = resolved.complexType as { + name?: string; + all?: { element?: { name?: string }[] }; + }[]; + const derivedType = complexTypes.find((ct) => ct.name === 'DerivedType'); + assert.ok(derivedType, 'Should have DerivedType'); - + // Should have merged elements from base and extension const elements = derivedType.all?.element ?? []; - const elementNames = elements.map(el => el.name); - - assert.ok(elementNames.includes('baseProp'), 'Should have baseProp from base type'); - assert.ok(elementNames.includes('derivedProp'), 'Should have derivedProp from extension'); + const elementNames = elements.map((el) => el.name); + + assert.ok( + elementNames.includes('baseProp'), + 'Should have baseProp from base type', + ); + assert.ok( + elementNames.includes('derivedProp'), + 'Should have derivedProp from extension', + ); }); it('should merge attributes from base type and extension', () => { @@ -186,9 +225,7 @@ describe('Schema Resolver', () => { complexType: [ { name: 'BaseType', - attribute: [ - { name: 'baseAttr', type: 'xs:string' }, - ], + attribute: [{ name: 'baseAttr', type: 'xs:string' }], sequence: { element: [{ name: 'baseProp', type: 'xs:string' }], }, @@ -198,9 +235,7 @@ describe('Schema Resolver', () => { complexContent: { extension: { base: 'BaseType', - attribute: [ - { name: 'derivedAttr', type: 'xs:string' }, - ], + attribute: [{ name: 'derivedAttr', type: 'xs:string' }], sequence: { element: [{ name: 'derivedProp', type: 'xs:string' }], }, @@ -213,17 +248,26 @@ describe('Schema Resolver', () => { const resolved = resolveSchema(schema, { expandExtensions: true }); // Find DerivedType - const complexTypes = resolved.complexType as { name?: string; attribute?: { name?: string }[] }[]; - const derivedType = complexTypes.find(ct => ct.name === 'DerivedType'); - + const complexTypes = resolved.complexType as { + name?: string; + attribute?: { name?: string }[]; + }[]; + const derivedType = complexTypes.find((ct) => ct.name === 'DerivedType'); + assert.ok(derivedType, 'Should have DerivedType'); - + // Should have merged attributes from base and extension const attributes = derivedType.attribute ?? []; - const attrNames = attributes.map(a => a.name); - - assert.ok(attrNames.includes('baseAttr'), 'Should have baseAttr from base type'); - assert.ok(attrNames.includes('derivedAttr'), 'Should have derivedAttr from extension'); + const attrNames = attributes.map((a) => a.name); + + assert.ok( + attrNames.includes('baseAttr'), + 'Should have baseAttr from base type', + ); + assert.ok( + attrNames.includes('derivedAttr'), + 'Should have derivedAttr from extension', + ); }); it('should handle extension without base type attributes', () => { @@ -242,9 +286,7 @@ describe('Schema Resolver', () => { complexContent: { extension: { base: 'BaseType', - attribute: [ - { name: 'derivedAttr', type: 'xs:string' }, - ], + attribute: [{ name: 'derivedAttr', type: 'xs:string' }], }, }, }, @@ -253,14 +295,21 @@ describe('Schema Resolver', () => { const resolved = resolveSchema(schema, { expandExtensions: true }); - const complexTypes = resolved.complexType as { name?: string; attribute?: { name?: string }[] }[]; - const derivedType = complexTypes.find(ct => ct.name === 'DerivedType'); - + const complexTypes = resolved.complexType as { + name?: string; + attribute?: { name?: string }[]; + }[]; + const derivedType = complexTypes.find((ct) => ct.name === 'DerivedType'); + assert.ok(derivedType, 'Should have DerivedType'); - + const attributes = derivedType.attribute ?? []; assert.strictEqual(attributes.length, 1, 'Should have 1 attribute'); - assert.strictEqual(attributes[0].name, 'derivedAttr', 'Should have derivedAttr'); + assert.strictEqual( + attributes[0].name, + 'derivedAttr', + 'Should have derivedAttr', + ); }); it('should handle extension without extension attributes', () => { @@ -269,9 +318,7 @@ describe('Schema Resolver', () => { complexType: [ { name: 'BaseType', - attribute: [ - { name: 'baseAttr', type: 'xs:string' }, - ], + attribute: [{ name: 'baseAttr', type: 'xs:string' }], sequence: { element: [{ name: 'baseProp', type: 'xs:string' }], }, @@ -293,26 +340,32 @@ describe('Schema Resolver', () => { const resolved = resolveSchema(schema, { expandExtensions: true }); - const complexTypes = resolved.complexType as { name?: string; attribute?: { name?: string }[] }[]; - const derivedType = complexTypes.find(ct => ct.name === 'DerivedType'); - + const complexTypes = resolved.complexType as { + name?: string; + attribute?: { name?: string }[]; + }[]; + const derivedType = complexTypes.find((ct) => ct.name === 'DerivedType'); + assert.ok(derivedType, 'Should have DerivedType'); - + const attributes = derivedType.attribute ?? []; assert.strictEqual(attributes.length, 1, 'Should have 1 attribute'); - assert.strictEqual(attributes[0].name, 'baseAttr', 'Should have baseAttr from base'); + assert.strictEqual( + attributes[0].name, + 'baseAttr', + 'Should have baseAttr from base', + ); }); it('should expand substitution groups in all group', () => { const asxSchema = { $filename: 'asx.xsd', - element: [ - { name: 'Schema', abstract: true }, - ], + element: [{ name: 'Schema', abstract: true }], complexType: [ { name: 'AbapValuesType', - all: { // Using 'all' instead of 'sequence' + all: { + // Using 'all' instead of 'sequence' element: [ { ref: 'asx:Schema', minOccurs: '0', maxOccurs: 'unbounded' }, ], @@ -327,33 +380,38 @@ describe('Schema Resolver', () => { element: [ { name: 'DD01V', type: 'Dd01vType', substitutionGroup: 'asx:Schema' }, ], - complexType: [ - { name: 'Dd01vType' }, - ], + complexType: [{ name: 'Dd01vType' }], }; const resolved = resolveSchema(domaSchema, { expandSubstitutions: true }); - const complexTypes = resolved.complexType as { name?: string; all?: { element?: { name?: string }[] } }[]; - const abapValuesType = complexTypes.find(ct => ct.name === 'AbapValuesType'); - + const complexTypes = resolved.complexType as { + name?: string; + all?: { element?: { name?: string }[] }; + }[]; + const abapValuesType = complexTypes.find( + (ct) => ct.name === 'AbapValuesType', + ); + assert.ok(abapValuesType, 'Should have AbapValuesType'); const elements = abapValuesType.all?.element ?? []; - const elementNames = elements.map(el => el.name); - - assert.ok(elementNames.includes('DD01V'), 'Should have DD01V element in all group'); + const elementNames = elements.map((el) => el.name); + + assert.ok( + elementNames.includes('DD01V'), + 'Should have DD01V element in all group', + ); }); it('should expand substitution groups in choice group', () => { const asxSchema = { $filename: 'asx.xsd', - element: [ - { name: 'Schema', abstract: true }, - ], + element: [{ name: 'Schema', abstract: true }], complexType: [ { name: 'AbapValuesType', - choice: { // Using 'choice' instead of 'sequence' + choice: { + // Using 'choice' instead of 'sequence' element: [ { ref: 'asx:Schema', minOccurs: '0', maxOccurs: 'unbounded' }, ], @@ -368,21 +426,27 @@ describe('Schema Resolver', () => { element: [ { name: 'DD01V', type: 'Dd01vType', substitutionGroup: 'asx:Schema' }, ], - complexType: [ - { name: 'Dd01vType' }, - ], + complexType: [{ name: 'Dd01vType' }], }; const resolved = resolveSchema(domaSchema, { expandSubstitutions: true }); - const complexTypes = resolved.complexType as { name?: string; choice?: { element?: { name?: string }[] } }[]; - const abapValuesType = complexTypes.find(ct => ct.name === 'AbapValuesType'); - + const complexTypes = resolved.complexType as { + name?: string; + choice?: { element?: { name?: string }[] }; + }[]; + const abapValuesType = complexTypes.find( + (ct) => ct.name === 'AbapValuesType', + ); + assert.ok(abapValuesType, 'Should have AbapValuesType'); const elements = abapValuesType.choice?.element ?? []; - const elementNames = elements.map(el => el.name); - - assert.ok(elementNames.includes('DD01V'), 'Should have DD01V element in choice group'); + const elementNames = elements.map((el) => el.name); + + assert.ok( + elementNames.includes('DD01V'), + 'Should have DD01V element in choice group', + ); }); it('should work with resolveImports disabled', () => { @@ -397,13 +461,16 @@ describe('Schema Resolver', () => { }; const resolved = resolveSchema(mainSchema, { resolveImports: false }); - + const complexTypes = resolved.complexType as { name?: string }[]; - const typeNames = complexTypes.map(ct => ct.name); - + const typeNames = complexTypes.map((ct) => ct.name); + // Should only have MainType, not BaseType from import assert.ok(typeNames.includes('MainType'), 'Should have MainType'); - assert.ok(!typeNames.includes('BaseType'), 'Should NOT have BaseType when resolveImports is false'); + assert.ok( + !typeNames.includes('BaseType'), + 'Should NOT have BaseType when resolveImports is false', + ); }); }); @@ -413,15 +480,25 @@ describe('Schema Resolver', () => { element: [ { name: 'Schema', abstract: true }, { name: 'DD01V', type: 'Dd01vType', substitutionGroup: 'asx:Schema' }, - { name: 'DD07V_TAB', type: 'Dd07vTabType', substitutionGroup: 'asx:Schema' }, + { + name: 'DD07V_TAB', + type: 'Dd07vTabType', + substitutionGroup: 'asx:Schema', + }, ], }; const substitutes = getSubstitutes('Schema', schema); - + assert.strictEqual(substitutes.length, 2, 'Should find 2 substitutes'); - assert.ok(substitutes.some(s => s.name === 'DD01V'), 'Should find DD01V'); - assert.ok(substitutes.some(s => s.name === 'DD07V_TAB'), 'Should find DD07V_TAB'); + assert.ok( + substitutes.some((s) => s.name === 'DD01V'), + 'Should find DD01V', + ); + assert.ok( + substitutes.some((s) => s.name === 'DD07V_TAB'), + 'Should find DD07V_TAB', + ); }); it('should find substitutes in $imports', () => { @@ -435,13 +512,21 @@ describe('Schema Resolver', () => { $imports: [importedSchema], element: [ { name: 'Schema', abstract: true }, - { name: 'DD07V_TAB', type: 'Dd07vTabType', substitutionGroup: 'asx:Schema' }, + { + name: 'DD07V_TAB', + type: 'Dd07vTabType', + substitutionGroup: 'asx:Schema', + }, ], }; const substitutes = getSubstitutes('Schema', schema); - - assert.strictEqual(substitutes.length, 2, 'Should find 2 substitutes (1 local + 1 imported)'); + + assert.strictEqual( + substitutes.length, + 2, + 'Should find 2 substitutes (1 local + 1 imported)', + ); }); }); }); diff --git a/packages/ts-xsd/tests/unit/substitution-group.test.ts b/packages/ts-xsd/tests/unit/substitution-group.test.ts index 0285e673..08f6aa1d 100644 --- a/packages/ts-xsd/tests/unit/substitution-group.test.ts +++ b/packages/ts-xsd/tests/unit/substitution-group.test.ts @@ -1,6 +1,6 @@ /** * Test for substitution group handling in interface generation - * + * * When a schema has elements that substitute an abstract element, * the generator should produce a complete type that includes all * substituting elements as optional properties. @@ -14,10 +14,10 @@ import type { Schema } from '../../src/xsd/types'; /** * Substitution group support is implemented in the resolver (resolveSchema). - * + * * The simplified generator expects pre-resolved schemas. Substitution group expansion * happens in src/xsd/resolve.ts (resolveSchema function). - * + * * When an element has substitutionGroup="ns:AbstractElement", the resolver: * 1. Collects all elements that substitute for the abstract element * 2. In types that reference the abstract element (via ref), expands to include all substitutes @@ -43,13 +43,9 @@ describe('substitution group interface generation', () => { { name: 'AbapType', sequence: { - element: [ - { name: 'values', type: 'asx:AbapValuesType' }, - ], + element: [{ name: 'values', type: 'asx:AbapValuesType' }], }, - attribute: [ - { name: 'version', type: 'xs:string' }, - ], + attribute: [{ name: 'version', type: 'xs:string' }], }, ], }; @@ -65,7 +61,11 @@ describe('substitution group interface generation', () => { }, element: [ { name: 'DD01V', type: 'Dd01vType', substitutionGroup: 'asx:Schema' }, - { name: 'DD07V_TAB', type: 'Dd07vTabType', substitutionGroup: 'asx:Schema' }, + { + name: 'DD07V_TAB', + type: 'Dd07vTabType', + substitutionGroup: 'asx:Schema', + }, ], complexType: [ { @@ -81,7 +81,12 @@ describe('substitution group interface generation', () => { name: 'Dd07vTabType', sequence: { element: [ - { name: 'DD07V', type: 'Dd07vType', minOccurs: '0', maxOccurs: 'unbounded' }, + { + name: 'DD07V', + type: 'Dd07vType', + minOccurs: '0', + maxOccurs: 'unbounded', + }, ], }, }, @@ -101,28 +106,52 @@ describe('substitution group interface generation', () => { // Merge schemas to resolve substitution groups const merged = resolveSchema(domaSchema); const { code: result } = generateInterfaces(merged); - + // Should have Dd01vType - assert.ok(result.includes('export interface Dd01vType'), 'Should have Dd01vType'); - assert.ok(result.includes('DOMNAME: string'), 'Should have DOMNAME property'); - + assert.ok( + result.includes('export interface Dd01vType'), + 'Should have Dd01vType', + ); + assert.ok( + result.includes('DOMNAME: string'), + 'Should have DOMNAME property', + ); + // Should have Dd07vTabType - assert.ok(result.includes('export interface Dd07vTabType'), 'Should have Dd07vTabType'); - assert.ok(result.includes('DD07V?: Dd07vType[]'), 'Should have DD07V array property'); - + assert.ok( + result.includes('export interface Dd07vTabType'), + 'Should have Dd07vTabType', + ); + assert.ok( + result.includes('DD07V?: Dd07vType[]'), + 'Should have DD07V array property', + ); + // Should have Dd07vType - assert.ok(result.includes('export interface Dd07vType'), 'Should have Dd07vType'); + assert.ok( + result.includes('export interface Dd07vType'), + 'Should have Dd07vType', + ); }); it('should expand substitution groups in AbapValuesType', () => { // Merge schemas to resolve substitution groups const merged = resolveSchema(domaSchema); const { code: result } = generateInterfaces(merged); - + // AbapValuesType should have DD01V and DD07V_TAB (substitutes for abstract Schema) // instead of the abstract Schema element - assert.ok(result.includes('export interface AbapValuesType'), 'Should have AbapValuesType'); - assert.ok(result.includes('DD01V?: Dd01vType[]'), 'Should have DD01V substitute'); - assert.ok(result.includes('DD07V_TAB?: Dd07vTabType[]'), 'Should have DD07V_TAB substitute'); + assert.ok( + result.includes('export interface AbapValuesType'), + 'Should have AbapValuesType', + ); + assert.ok( + result.includes('DD01V?: Dd01vType[]'), + 'Should have DD01V substitute', + ); + assert.ok( + result.includes('DD07V_TAB?: Dd07vTabType[]'), + 'Should have DD07V_TAB substitute', + ); }); }); diff --git a/packages/ts-xsd/tests/unit/traverser.test.ts b/packages/ts-xsd/tests/unit/traverser.test.ts index 932a57d6..bf29a4a6 100644 --- a/packages/ts-xsd/tests/unit/traverser.test.ts +++ b/packages/ts-xsd/tests/unit/traverser.test.ts @@ -1,6 +1,6 @@ /** * Schema Traverser Tests - * + * * Tests for the OO traverser pattern using real W3C XSD types. */ @@ -28,35 +28,24 @@ import type { const baseSchema: Schema = { targetNamespace: 'http://example.com/base', $xmlns: { xs: 'http://www.w3.org/2001/XMLSchema' }, - complexType: [ - { name: 'BaseType' }, - ], - simpleType: [ - { name: 'BaseSimpleType', restriction: { base: 'xs:string' } }, - ], + complexType: [{ name: 'BaseType' }], + simpleType: [{ name: 'BaseSimpleType', restriction: { base: 'xs:string' } }], }; const mainSchema: Schema = { targetNamespace: 'http://example.com', - $xmlns: { + $xmlns: { xs: 'http://www.w3.org/2001/XMLSchema', base: 'http://example.com/base', }, $imports: [baseSchema], - complexType: [ - { name: 'PersonType' }, - { name: 'AddressType' }, - ], - simpleType: [ - { name: 'PhoneType', restriction: { base: 'xs:string' } }, - ], + complexType: [{ name: 'PersonType' }, { name: 'AddressType' }], + simpleType: [{ name: 'PhoneType', restriction: { base: 'xs:string' } }], element: [ { name: 'person', type: 'PersonType' }, { name: 'address', type: 'AddressType' }, ], - group: [ - { name: 'ContactGroup', sequence: { element: [{ name: 'phone' }] } }, - ], + group: [{ name: 'ContactGroup', sequence: { element: [{ name: 'phone' }] } }], attributeGroup: [ { name: 'CommonAttrs', attribute: [{ name: 'id', type: 'xs:string' }] }, ], @@ -69,7 +58,9 @@ const schemaWithRedefine: Schema = { { schemaLocation: 'base.xsd', complexType: [{ name: 'RedefinedType' }], - simpleType: [{ name: 'RedefinedSimple', restriction: { base: 'xs:string' } }], + simpleType: [ + { name: 'RedefinedSimple', restriction: { base: 'xs:string' } }, + ], }, ], }; @@ -101,8 +92,16 @@ const schemaWithSubstitution: Schema = { targetNamespace: 'http://example.com', element: [ { name: 'abstractElement', abstract: true, type: 'xs:anyType' }, - { name: 'concreteElement1', substitutionGroup: 'abstractElement', type: 'xs:string' }, - { name: 'concreteElement2', substitutionGroup: 'abstractElement', type: 'xs:int' }, + { + name: 'concreteElement1', + substitutionGroup: 'abstractElement', + type: 'xs:string', + }, + { + name: 'concreteElement2', + substitutionGroup: 'abstractElement', + type: 'xs:int', + }, ], }; @@ -117,27 +116,27 @@ class TestCollector extends SchemaTraverser { readonly groups: string[] = []; readonly attributeGroups: string[] = []; readonly schemas: string[] = []; - + protected override onEnterSchema(schema: Schema): void { this.schemas.push(schema.targetNamespace ?? 'unknown'); } - + protected override onComplexType(ct: TopLevelComplexType): void { this.complexTypes.push(ct.name); } - + protected override onSimpleType(st: TopLevelSimpleType): void { this.simpleTypes.push(st.name); } - + protected override onElement(element: TopLevelElement): void { this.elements.push(element.name); } - + protected override onGroup(group: NamedGroup): void { this.groups.push(group.name); } - + protected override onAttributeGroup(group: NamedAttributeGroup): void { this.attributeGroups.push(group.name); } @@ -152,35 +151,42 @@ describe('SchemaTraverser', () => { it('visits all complexTypes in a schema', () => { const collector = new TestCollector(); collector.traverse(mainSchema); - - assert.deepEqual(collector.complexTypes.sort(), ['AddressType', 'BaseType', 'PersonType']); + + assert.deepEqual(collector.complexTypes.sort(), [ + 'AddressType', + 'BaseType', + 'PersonType', + ]); }); it('visits all simpleTypes in a schema', () => { const collector = new TestCollector(); collector.traverse(mainSchema); - - assert.deepEqual(collector.simpleTypes.sort(), ['BaseSimpleType', 'PhoneType']); + + assert.deepEqual(collector.simpleTypes.sort(), [ + 'BaseSimpleType', + 'PhoneType', + ]); }); it('visits all elements in a schema', () => { const collector = new TestCollector(); collector.traverse(mainSchema); - + assert.deepEqual(collector.elements.sort(), ['address', 'person']); }); it('visits all groups in a schema', () => { const collector = new TestCollector(); collector.traverse(mainSchema); - + assert.deepEqual(collector.groups, ['ContactGroup']); }); it('visits all attributeGroups in a schema', () => { const collector = new TestCollector(); collector.traverse(mainSchema); - + assert.deepEqual(collector.attributeGroups, ['CommonAttrs']); }); }); @@ -189,7 +195,7 @@ describe('SchemaTraverser', () => { it('visits complexTypes from redefine blocks', () => { const collector = new TestCollector(); collector.traverse(schemaWithRedefine); - + assert.ok(collector.complexTypes.includes('OriginalType')); assert.ok(collector.complexTypes.includes('RedefinedType')); }); @@ -197,7 +203,7 @@ describe('SchemaTraverser', () => { it('visits simpleTypes from redefine blocks', () => { const collector = new TestCollector(); collector.traverse(schemaWithRedefine); - + assert.ok(collector.simpleTypes.includes('RedefinedSimple')); }); }); @@ -206,7 +212,7 @@ describe('SchemaTraverser', () => { it('visits complexTypes from override blocks', () => { const collector = new TestCollector(); collector.traverse(schemaWithOverride); - + assert.ok(collector.complexTypes.includes('OriginalType')); assert.ok(collector.complexTypes.includes('OverriddenType')); }); @@ -214,7 +220,7 @@ describe('SchemaTraverser', () => { it('visits elements from override blocks', () => { const collector = new TestCollector(); collector.traverse(schemaWithOverride); - + assert.ok(collector.elements.includes('overriddenElement')); }); }); @@ -223,7 +229,7 @@ describe('SchemaTraverser', () => { it('traverses $imports by default', () => { const collector = new TestCollector(); collector.traverse(mainSchema); - + // Should include types from imported schema assert.ok(collector.complexTypes.includes('BaseType')); assert.ok(collector.simpleTypes.includes('BaseSimpleType')); @@ -232,11 +238,11 @@ describe('SchemaTraverser', () => { it('can skip $imports with includeImports: false', () => { const collector = new TestCollector(); collector.traverse(mainSchema, { includeImports: false }); - + // Should NOT include types from imported schema assert.ok(!collector.complexTypes.includes('BaseType')); assert.ok(!collector.simpleTypes.includes('BaseSimpleType')); - + // Should still include main schema types assert.ok(collector.complexTypes.includes('PersonType')); }); @@ -246,7 +252,7 @@ describe('SchemaTraverser', () => { it('traverses $includes by default', () => { const collector = new TestCollector(); collector.traverse(schemaWithIncludes); - + assert.ok(collector.complexTypes.includes('MainType')); assert.ok(collector.complexTypes.includes('IncludedType')); }); @@ -254,7 +260,7 @@ describe('SchemaTraverser', () => { it('can skip $includes with includeIncludes: false', () => { const collector = new TestCollector(); collector.traverse(schemaWithIncludes, { includeIncludes: false }); - + assert.ok(collector.complexTypes.includes('MainType')); assert.ok(!collector.complexTypes.includes('IncludedType')); }); @@ -274,10 +280,10 @@ describe('SchemaTraverser', () => { }; // eslint-disable-next-line @typescript-eslint/no-explicit-any (schemaA as any).$imports = [schemaB]; - + const collector = new TestCollector(); collector.traverse(schemaA); - + // Should visit both without infinite loop assert.ok(collector.complexTypes.includes('TypeA')); assert.ok(collector.complexTypes.includes('TypeB')); @@ -288,7 +294,7 @@ describe('SchemaTraverser', () => { it('respects maxDepth option', () => { const collector = new TestCollector(); collector.traverse(mainSchema, { maxDepth: 0 }); - + // Should only visit root schema, not imports assert.ok(collector.complexTypes.includes('PersonType')); assert.ok(!collector.complexTypes.includes('BaseType')); @@ -300,17 +306,17 @@ describe('SchemaResolver', () => { it('collects all types into Maps', () => { const resolver = new SchemaResolver(); resolver.traverse(mainSchema); - + assert.ok(resolver.complexTypes.has('PersonType')); assert.ok(resolver.complexTypes.has('AddressType')); assert.ok(resolver.complexTypes.has('BaseType')); - + assert.ok(resolver.simpleTypes.has('PhoneType')); assert.ok(resolver.simpleTypes.has('BaseSimpleType')); - + assert.ok(resolver.elements.has('person')); assert.ok(resolver.elements.has('address')); - + assert.ok(resolver.groups.has('ContactGroup')); assert.ok(resolver.attributeGroups.has('CommonAttrs')); }); @@ -318,12 +324,12 @@ describe('SchemaResolver', () => { it('tracks substitution groups', () => { const resolver = new SchemaResolver(); resolver.traverse(schemaWithSubstitution); - + const substitutes = resolver.substitutionGroups.get('abstractElement'); assert.ok(substitutes); assert.equal(substitutes.length, 2); - - const names = substitutes.map(e => e.name); + + const names = substitutes.map((e) => e.name); assert.ok(names.includes('concreteElement1')); assert.ok(names.includes('concreteElement2')); }); @@ -331,7 +337,7 @@ describe('SchemaResolver', () => { it('collects xmlns declarations', () => { const resolver = new SchemaResolver(); resolver.traverse(mainSchema); - + assert.equal(resolver.xmlns.get('xs'), 'http://www.w3.org/2001/XMLSchema'); assert.equal(resolver.xmlns.get('base'), 'http://example.com/base'); }); @@ -340,7 +346,7 @@ describe('SchemaResolver', () => { const resolver = new SchemaResolver(); resolver.traverse(mainSchema); const resolved = resolver.getResolved(); - + assert.ok(resolved.complexTypes instanceof Map); assert.ok(resolved.simpleTypes instanceof Map); assert.ok(resolved.elements instanceof Map); @@ -354,7 +360,7 @@ describe('SchemaResolver', () => { describe('resolveSchemaTypes', () => { it('is a convenience function for SchemaResolver', () => { const resolved = resolveSchemaTypes(mainSchema); - + assert.ok(resolved.complexTypes.has('PersonType')); assert.ok(resolved.simpleTypes.has('PhoneType')); assert.ok(resolved.elements.has('person')); @@ -362,7 +368,7 @@ describe('resolveSchemaTypes', () => { it('respects options', () => { const resolved = resolveSchemaTypes(mainSchema, { includeImports: false }); - + assert.ok(resolved.complexTypes.has('PersonType')); assert.ok(!resolved.complexTypes.has('BaseType')); }); @@ -370,8 +376,9 @@ describe('resolveSchemaTypes', () => { describe('context access in traverser', () => { it('provides access to currentSchema, source, and depth', () => { - const contexts: Array<{ schema: string; source: string; depth: number }> = []; - + const contexts: Array<{ schema: string; source: string; depth: number }> = + []; + class ContextTracker extends SchemaTraverser { protected override onComplexType(_ct: TopLevelComplexType): void { contexts.push({ @@ -381,35 +388,37 @@ describe('context access in traverser', () => { }); } } - + const tracker = new ContextTracker(); tracker.traverse(mainSchema); - + // Main schema types should have depth 0, source 'direct' - const mainTypes = contexts.filter(c => c.schema === 'http://example.com'); - assert.ok(mainTypes.every(c => c.depth === 0)); - assert.ok(mainTypes.every(c => c.source === 'direct')); - + const mainTypes = contexts.filter((c) => c.schema === 'http://example.com'); + assert.ok(mainTypes.every((c) => c.depth === 0)); + assert.ok(mainTypes.every((c) => c.source === 'direct')); + // Imported schema types should have depth 1, source 'import' - const importedTypes = contexts.filter(c => c.schema === 'http://example.com/base'); - assert.ok(importedTypes.every(c => c.depth === 1)); - assert.ok(importedTypes.every(c => c.source === 'import')); + const importedTypes = contexts.filter( + (c) => c.schema === 'http://example.com/base', + ); + assert.ok(importedTypes.every((c) => c.depth === 1)); + assert.ok(importedTypes.every((c) => c.source === 'import')); }); }); describe('SchemaTraverser additional coverage', () => { it('calls onLeaveSchema after processing', () => { const leaveOrder: string[] = []; - + class LeaveTracker extends SchemaTraverser { protected override onLeaveSchema(schema: Schema): void { leaveOrder.push(schema.targetNamespace ?? 'unknown'); } } - + const tracker = new LeaveTracker(); tracker.traverse(mainSchema); - + // Should have called onLeaveSchema for both schemas assert.ok(leaveOrder.includes('http://example.com')); assert.ok(leaveOrder.includes('http://example.com/base')); @@ -423,33 +432,33 @@ describe('SchemaTraverser additional coverage', () => { { name: 'globalAttr2', type: 'xs:int' }, ], }; - + const attrs: string[] = []; - + class AttrCollector extends SchemaTraverser { protected override onAttribute(attr: TopLevelAttribute): void { attrs.push(attr.name); } } - + const collector = new AttrCollector(); collector.traverse(schemaWithAttrs); - + assert.deepEqual(attrs.sort(), ['globalAttr1', 'globalAttr2']); }); it('visits simpleTypes from redefine blocks', () => { const simpleTypes: string[] = []; - + class SimpleTypeCollector extends SchemaTraverser { protected override onSimpleType(st: TopLevelSimpleType): void { simpleTypes.push(st.name); } } - + const collector = new SimpleTypeCollector(); collector.traverse(schemaWithRedefine); - + assert.ok(simpleTypes.includes('RedefinedSimple')); }); @@ -461,15 +470,17 @@ describe('SchemaTraverser additional coverage', () => { schemaLocation: 'base.xsd', group: [{ name: 'OverriddenGroup', sequence: { element: [] } }], attributeGroup: [{ name: 'OverriddenAttrGroup', attribute: [] }], - simpleType: [{ name: 'OverriddenSimple', restriction: { base: 'xs:string' } }], + simpleType: [ + { name: 'OverriddenSimple', restriction: { base: 'xs:string' } }, + ], }, ], }; - + const groups: string[] = []; const attrGroups: string[] = []; const simpleTypes: string[] = []; - + class OverrideCollector extends SchemaTraverser { protected override onGroup(group: NamedGroup): void { groups.push(group.name); @@ -481,10 +492,10 @@ describe('SchemaTraverser additional coverage', () => { simpleTypes.push(st.name); } } - + const collector = new OverrideCollector(); collector.traverse(schemaWithOverrideGroups); - + assert.ok(groups.includes('OverriddenGroup')); assert.ok(attrGroups.includes('OverriddenAttrGroup')); assert.ok(simpleTypes.includes('OverriddenSimple')); @@ -501,10 +512,10 @@ describe('SchemaTraverser additional coverage', () => { }, ], }; - + const groups: string[] = []; const attrGroups: string[] = []; - + class RedefineGroupCollector extends SchemaTraverser { protected override onGroup(group: NamedGroup): void { groups.push(group.name); @@ -513,48 +524,52 @@ describe('SchemaTraverser additional coverage', () => { attrGroups.push(group.name); } } - + const collector = new RedefineGroupCollector(); collector.traverse(schemaWithRedefineGroups); - + assert.ok(groups.includes('RedefinedGroup')); assert.ok(attrGroups.includes('RedefinedAttrGroup')); }); it('calls onRedefine callback', () => { const redefines: string[] = []; - + class RedefineTracker extends SchemaTraverser { - protected override onRedefine(redefine: { schemaLocation?: string }): void { + protected override onRedefine(redefine: { + schemaLocation?: string; + }): void { redefines.push(redefine.schemaLocation ?? 'unknown'); } } - + const tracker = new RedefineTracker(); tracker.traverse(schemaWithRedefine); - + assert.ok(redefines.includes('base.xsd')); }); it('calls onOverride callback', () => { const overrides: string[] = []; - + class OverrideTracker extends SchemaTraverser { - protected override onOverride(override: { schemaLocation?: string }): void { + protected override onOverride(override: { + schemaLocation?: string; + }): void { overrides.push(override.schemaLocation ?? 'unknown'); } } - + const tracker = new OverrideTracker(); tracker.traverse(schemaWithOverride); - + assert.ok(overrides.includes('base.xsd')); }); it('returns this from traverse for chaining', () => { const collector = new TestCollector(); const result = collector.traverse(mainSchema); - + assert.strictEqual(result, collector); }); }); diff --git a/packages/ts-xsd/tsdown.config.ts b/packages/ts-xsd/tsdown.config.ts index a1ef7edc..0ae7fb96 100644 --- a/packages/ts-xsd/tsdown.config.ts +++ b/packages/ts-xsd/tsdown.config.ts @@ -3,12 +3,6 @@ import baseConfig from '../../tsdown.config.ts'; export default defineConfig({ ...baseConfig, - entry: [ - 'src/index.ts', - 'src/generators/index.ts', - 'src/codegen/cli.ts', - ], - external: [ - /^node:/, - ], + entry: ['src/index.ts', 'src/generators/index.ts', 'src/codegen/cli.ts'], + external: [/^node:/], }); diff --git a/project.json b/project.json index 02b6754f..5592aa89 100644 --- a/project.json +++ b/project.json @@ -28,4 +28,3 @@ } } } - diff --git a/scripts/run-e2e-test.ts b/scripts/run-e2e-test.ts index ba01c3e5..63f7dd9f 100644 --- a/scripts/run-e2e-test.ts +++ b/scripts/run-e2e-test.ts @@ -13,7 +13,7 @@ async function runE2ETest() { const testFile = join( process.cwd(), - 'packages/adt-cli/src/lib/testing/e2e-transport-import.test.ts' + 'packages/adt-cli/src/lib/testing/e2e-transport-import.test.ts', ); return new Promise((resolve, reject) => { diff --git a/test-interface.abap b/test-interface.abap deleted file mode 100644 index e69de29b..00000000 diff --git a/tools/nx-sync/src/generators/nested-sync/generator.ts b/tools/nx-sync/src/generators/nested-sync/generator.ts index 48365f1a..6888d546 100644 --- a/tools/nx-sync/src/generators/nested-sync/generator.ts +++ b/tools/nx-sync/src/generators/nested-sync/generator.ts @@ -36,7 +36,7 @@ const SKIPPED_DIRECTORIES = new Set([ export default async function nestedSyncGenerator( tree: Tree, - _schema: NxNestedSyncGeneratorSchema + _schema: NxNestedSyncGeneratorSchema, ) { const nestedWorkspaces = findNestedWorkspaces(); @@ -75,8 +75,8 @@ export default async function nestedSyncGenerator( workspaces: pending.map((workspace) => workspace.relativePath), }, null, - 2 - ) + 2, + ), ); return { @@ -84,7 +84,7 @@ export default async function nestedSyncGenerator( pending.length === 1 ? '' : 's' } requiring sync.`, outOfSyncDetails: pending.flatMap((workspace) => - formatOutOfSyncDetail(workspace) + formatOutOfSyncDetail(workspace), ), callback: async () => { for (const workspace of pending) { @@ -122,7 +122,7 @@ function findNestedWorkspaces(): WorkspaceInfo[] { const absolutePath = join(current, entry.name); const relativePath = normalizeRelativePath( - relative(workspaceRoot, absolutePath) + relative(workspaceRoot, absolutePath), ); if (!relativePath || relativePath.startsWith('..')) { @@ -175,7 +175,7 @@ function checkWorkspace(workspace: WorkspaceInfo): WorkspaceCheckResult { throw new SyncError( `Failed to verify nested workspace "${workspace.relativePath}"`, - collectOutputLines(result) + collectOutputLines(result), ); } @@ -186,37 +186,33 @@ async function runNestedSync(workspace: PendingWorkspace) { if (result.status !== 0) { throw new SyncError( `Failed to sync nested workspace "${workspace.relativePath}"`, - collectOutputLines(result) + collectOutputLines(result), ); } } function runNxSyncCommand( workspace: WorkspaceInfo, - extraArgs: string[] + extraArgs: string[], ): SpawnSyncReturns { const nxBin = resolveNxBinary(workspace); - const result = spawnSync( - process.execPath, - [nxBin, 'sync', ...extraArgs], - { - cwd: workspace.absolutePath, - encoding: 'utf-8', - stdio: 'pipe', - } - ) as SpawnSyncReturns; + const result = spawnSync(process.execPath, [nxBin, 'sync', ...extraArgs], { + cwd: workspace.absolutePath, + encoding: 'utf-8', + stdio: 'pipe', + }) as SpawnSyncReturns; if (result.error) { throw new SyncError( `Failed to execute Nx inside "${workspace.relativePath}"`, - [result.error.message] + [result.error.message], ); } if (result.status === null) { throw new SyncError( `Nx exited unexpectedly while processing "${workspace.relativePath}"`, - collectOutputLines(result) + collectOutputLines(result), ); } @@ -243,7 +239,7 @@ function resolveNxBinary(workspace: WorkspaceInfo): string { `Unable to locate Nx CLI for "${workspace.relativePath}"`, [ 'Install dependencies for that workspace or ensure it is a valid Nx project.', - ] + ], ); } } diff --git a/tools/nx-sync/src/generators/nested-sync/schema.d.ts b/tools/nx-sync/src/generators/nested-sync/schema.d.ts index 188901b2..41adb645 100644 --- a/tools/nx-sync/src/generators/nested-sync/schema.d.ts +++ b/tools/nx-sync/src/generators/nested-sync/schema.d.ts @@ -1 +1,2 @@ +// eslint-disable-next-line @typescript-eslint/no-empty-object-type, @typescript-eslint/no-empty-interface export interface NxNestedSyncGeneratorSchema {} diff --git a/tools/nx-tsdown/src/plugin.ts b/tools/nx-tsdown/src/plugin.ts index 358e7c70..a39195b7 100644 --- a/tools/nx-tsdown/src/plugin.ts +++ b/tools/nx-tsdown/src/plugin.ts @@ -40,7 +40,7 @@ export const createNodesV2: CreateNodesV2 = [ if (verbose) { logger.info( - `[nx-tsdown] Processing ${configFiles.length} tsdown config files` + `[nx-tsdown] Processing ${configFiles.length} tsdown config files`, ); } diff --git a/tools/nx-vitest/src/plugin.ts b/tools/nx-vitest/src/plugin.ts index 0faa59af..10551312 100644 --- a/tools/nx-vitest/src/plugin.ts +++ b/tools/nx-vitest/src/plugin.ts @@ -98,7 +98,7 @@ function getRootVitestProjects(): string[] { function isProjectInVitestConfig( projectPath: string, - vitestProjects: string[] + vitestProjects: string[], ): boolean { const relativePath = relative(workspaceRoot, projectPath); @@ -116,8 +116,8 @@ function isProjectInVitestConfig( if (projectMatches.length > 0) { logDebug( `Project ${relativePath} matches pattern ${pattern} - found files: ${projectMatches.join( - ', ' - )}` + ', ', + )}`, ); return true; } @@ -127,7 +127,7 @@ function isProjectInVitestConfig( } logDebug( - `Project ${relativePath} does not match any vitest project patterns` + `Project ${relativePath} does not match any vitest project patterns`, ); return false; } @@ -139,7 +139,7 @@ export const createNodesV2: CreateNodesV2 = [ if (verbose) { logger.info( - `[nx-vitest] Processing ${configFiles.length} vitest config files` + `[nx-vitest] Processing ${configFiles.length} vitest config files`, ); } diff --git a/tools/p2-cli/README.md b/tools/p2-cli/README.md index 4d99f928..3c012771 100644 --- a/tools/p2-cli/README.md +++ b/tools/p2-cli/README.md @@ -31,6 +31,7 @@ p2 download https://tools.hana.ondemand.com/latest -o ./sdk --extract ``` **Options:** + - `-o, --output ` - Output directory (default: `./p2-download`) - `-f, --filter ` - Filter plugins by ID pattern (comma-separated) - `-e, --extract` - Also extract files after download @@ -56,12 +57,14 @@ p2 extract ./my-plugin.jar -o ./extracted ``` **Options:** + - `-o, --output ` - Output directory (default: `./extracted`) - `-p, --patterns ` - File patterns to extract (default: `*.xsd,*.ecore,*.genmodel,*.xml`) - `--no-organize` - Do not organize files by type (flat output) - `-v, --verbose` - Verbose output **Organized output structure:** + ``` extracted/ ├── schemas/ @@ -87,11 +90,13 @@ p2 decompile ./extracted/classes -o ./decompiled -d cfr ``` **Options:** + - `-o, --output ` - Output directory (default: `./decompiled`) - `-d, --decompiler ` - Decompiler to use (`cfr`, `procyon`, `fernflower`) - `-v, --verbose` - Verbose output **Supported decompilers:** + - **CFR** - `brew install cfr-decompiler` (macOS/Linux) - **Procyon** - Download from GitHub - **Fernflower** - Bundled with IntelliJ IDEA diff --git a/tools/p2-cli/src/cli.ts b/tools/p2-cli/src/cli.ts index af1ae32b..dedf699b 100644 --- a/tools/p2-cli/src/cli.ts +++ b/tools/p2-cli/src/cli.ts @@ -17,7 +17,9 @@ const program = new Command(); program .name('p2') - .description('CLI for Eclipse P2 repositories - download, extract, and decompile plugins') + .description( + 'CLI for Eclipse P2 repositories - download, extract, and decompile plugins', + ) .version('0.1.0'); // Download command @@ -25,17 +27,26 @@ program .command('download ') .description('Download plugins from a P2 repository') .option('-o, --output ', 'Output directory', './p2-download') - .option('-f, --filter ', 'Filter plugins by ID pattern (comma-separated)', '') + .option( + '-f, --filter ', + 'Filter plugins by ID pattern (comma-separated)', + '', + ) .option('-e, --extract', 'Also extract files after download') .option('--extract-output ', 'Output directory for extraction') - .option('--extract-patterns ', 'File patterns to extract (comma-separated, default: all)') + .option( + '--extract-patterns ', + 'File patterns to extract (comma-separated, default: all)', + ) .action(async (url: string, opts) => { await download(url, { output: opts.output, filter: opts.filter || undefined, extract: opts.extract, extractOutput: opts.extractOutput, - extractPatterns: opts.extractPatterns?.split(',').map((p: string) => p.trim()), + extractPatterns: opts.extractPatterns + ?.split(',') + .map((p: string) => p.trim()), }); }); @@ -44,12 +55,17 @@ program .command('extract ') .description('Extract files from JAR archives (preserves package structure)') .option('-o, --output ', 'Output directory', './extracted') - .option('-p, --patterns ', 'File patterns to extract (comma-separated, default: all)') + .option( + '-p, --patterns ', + 'File patterns to extract (comma-separated, default: all)', + ) .option('-v, --verbose', 'Verbose output') .action(async (input: string, opts) => { await extractJars(input, { output: opts.output, - patterns: opts.patterns ? opts.patterns.split(',').map((p: string) => p.trim()) : undefined, + patterns: opts.patterns + ? opts.patterns.split(',').map((p: string) => p.trim()) + : undefined, verbose: opts.verbose, }); }); @@ -59,8 +75,14 @@ program .command('decompile ') .description('Decompile Java class files or JAR files') .option('-o, --output ', 'Output directory', './decompiled') - .option('-f, --filter ', 'Filter JARs by name pattern (comma-separated)') - .option('-d, --decompiler ', 'Decompiler to use (cfr, procyon, fernflower)') + .option( + '-f, --filter ', + 'Filter JARs by name pattern (comma-separated)', + ) + .option( + '-d, --decompiler ', + 'Decompiler to use (cfr, procyon, fernflower)', + ) .option('-v, --verbose', 'Verbose output') .action(async (input: string, opts) => { await decompile(input, { diff --git a/tools/p2-cli/src/commands/decompile.ts b/tools/p2-cli/src/commands/decompile.ts index c95d7fc7..25863406 100644 --- a/tools/p2-cli/src/commands/decompile.ts +++ b/tools/p2-cli/src/commands/decompile.ts @@ -14,20 +14,25 @@ const DECOMPILERS = { cfr: { name: 'CFR', check: 'which cfr-decompiler', - command: (input: string, output: string) => `cfr-decompiler "${input}" --outputdir "${output}"`, - install: 'brew install cfr-decompiler (macOS/Linux) or download from https://www.benf.org/other/cfr/', + command: (input: string, output: string) => + `cfr-decompiler "${input}" --outputdir "${output}"`, + install: + 'brew install cfr-decompiler (macOS/Linux) or download from https://www.benf.org/other/cfr/', }, procyon: { name: 'Procyon', check: 'which procyon', - command: (input: string, output: string) => `procyon -o "${output}" "${input}"`, + command: (input: string, output: string) => + `procyon -o "${output}" "${input}"`, install: 'Download from https://github.com/mstrobel/procyon', }, fernflower: { name: 'Fernflower', check: 'test -f fernflower.jar', - command: (input: string, output: string) => `java -jar fernflower.jar "${input}" "${output}"`, - install: 'Find in IntelliJ IDEA: plugins/java-decompiler/lib/java-decompiler.jar', + command: (input: string, output: string) => + `java -jar fernflower.jar "${input}" "${output}"`, + install: + 'Find in IntelliJ IDEA: plugins/java-decompiler/lib/java-decompiler.jar', }, }; @@ -58,8 +63,16 @@ function findDecompiler(): keyof typeof DECOMPILERS | null { /** * Decompile Java class files or JAR files */ -export async function decompile(input: string, options: DecompileOptions): Promise { - const { output, decompiler: requestedDecompiler, filter, verbose = false } = options; +export async function decompile( + input: string, + options: DecompileOptions, +): Promise { + const { + output, + decompiler: requestedDecompiler, + filter, + verbose = false, + } = options; console.log(`🔧 Java Decompilation`); console.log(` Input: ${input}`); @@ -80,7 +93,9 @@ export async function decompile(input: string, options: DecompileOptions): Promi } if (requestedDecompiler && !isDecompilerAvailable(requestedDecompiler)) { - console.log(`❌ Requested decompiler '${requestedDecompiler}' is not available.`); + console.log( + `❌ Requested decompiler '${requestedDecompiler}' is not available.`, + ); console.log(` ${DECOMPILERS[requestedDecompiler].install}`); process.exit(1); } @@ -93,7 +108,7 @@ export async function decompile(input: string, options: DecompileOptions): Promi // Check if input is a JAR file, directory with JARs, or directory with classes let jarFiles = findFiles(input, '*.jar'); - + // Apply filter if specified if (filter && jarFiles.length > 0) { const patterns = filter.split(',').map((p) => p.trim()); @@ -106,7 +121,7 @@ export async function decompile(input: string, options: DecompileOptions): Promi }); console.log(`🎯 Filtered to ${jarFiles.length} JARs matching: ${filter}`); } - + if (jarFiles.length > 0) { // Decompile JAR files directly (much faster) console.log(`🔍 Found ${jarFiles.length} JAR files`); @@ -118,8 +133,10 @@ export async function decompile(input: string, options: DecompileOptions): Promi for (let i = 0; i < jarFiles.length; i++) { const jar = jarFiles[i]; const jarName = basename(jar, '.jar'); - - process.stdout.write(`\r Decompiling ${i + 1}/${jarFiles.length}: ${jarName.slice(0, 50).padEnd(50)}`); + + process.stdout.write( + `\r Decompiling ${i + 1}/${jarFiles.length}: ${jarName.slice(0, 50).padEnd(50)}`, + ); try { const cmd = config.command(jar, output); @@ -141,7 +158,7 @@ export async function decompile(input: string, options: DecompileOptions): Promi } else { // Decompile individual class files const classFiles = findFiles(input, '*.class'); - + if (classFiles.length === 0) { console.log('❌ No JAR or class files found'); return; @@ -155,9 +172,11 @@ export async function decompile(input: string, options: DecompileOptions): Promi for (let i = 0; i < classFiles.length; i++) { const classFile = classFiles[i]; - + if (verbose) { - process.stdout.write(`\r Decompiling ${i + 1}/${classFiles.length}: ${basename(classFile).slice(0, 50).padEnd(50)}`); + process.stdout.write( + `\r Decompiling ${i + 1}/${classFiles.length}: ${basename(classFile).slice(0, 50).padEnd(50)}`, + ); } try { diff --git a/tools/p2-cli/src/commands/download.ts b/tools/p2-cli/src/commands/download.ts index f90b4509..e5810b2e 100644 --- a/tools/p2-cli/src/commands/download.ts +++ b/tools/p2-cli/src/commands/download.ts @@ -21,7 +21,8 @@ interface DownloadOptions { */ function parseArtifacts(xml: string): Artifact[] { const artifacts: Artifact[] = []; - const regex = //g; + const regex = + //g; let match; while ((match = regex.exec(xml)) !== null) { @@ -38,7 +39,10 @@ function parseArtifacts(xml: string): Artifact[] { /** * Download P2 repository metadata and optionally plugins */ -export async function download(repoUrl: string, options: DownloadOptions): Promise { +export async function download( + repoUrl: string, + options: DownloadOptions, +): Promise { const { output, filter, extract, extractOutput, extractPatterns } = options; console.log(`🔧 P2 Repository Download`); @@ -57,7 +61,6 @@ export async function download(repoUrl: string, options: DownloadOptions): Promi console.log('📥 Downloading content.jar...'); execOutput(`wget -q "${repoUrl}/content.jar" -O "${contentJar}"`); - // Parse artifacts const xml = execOutput(`unzip -p "${artifactsJar}" artifacts.xml`); const artifacts = parseArtifacts(xml); @@ -76,9 +79,11 @@ export async function download(repoUrl: string, options: DownloadOptions): Promi return regex.test(a.id); } return a.id.startsWith(p); - }) + }), + ); + console.log( + `🎯 Filtered to ${toDownload.length} plugins matching: ${filter}`, ); - console.log(`🎯 Filtered to ${toDownload.length} plugins matching: ${filter}`); } if (toDownload.length === 0) { @@ -99,7 +104,7 @@ export async function download(repoUrl: string, options: DownloadOptions): Promi const targetPath = join(pluginsDir, fileName); process.stdout.write( - `\r Downloading ${i + 1}/${toDownload.length}: ${artifact.id.slice(0, 50).padEnd(50)}` + `\r Downloading ${i + 1}/${toDownload.length}: ${artifact.id.slice(0, 50).padEnd(50)}`, ); if (existsSync(targetPath)) { diff --git a/tools/p2-cli/src/commands/extract.ts b/tools/p2-cli/src/commands/extract.ts index 468aa3c6..f475e0a9 100644 --- a/tools/p2-cli/src/commands/extract.ts +++ b/tools/p2-cli/src/commands/extract.ts @@ -11,7 +11,10 @@ interface ExtractOptions { /** * Extract files from JAR archives - just unzip preserving package structure */ -export async function extractJars(input: string, options: ExtractOptions): Promise { +export async function extractJars( + input: string, + options: ExtractOptions, +): Promise { const { output, patterns, verbose = false } = options; console.log(`🔧 JAR Extraction`); @@ -47,14 +50,16 @@ export async function extractJars(input: string, options: ExtractOptions): Promi for (const jar of jars) { const jarName = basename(jar); - + if (verbose) { console.log(` 📦 ${jarName}`); } try { // Just unzip, preserving directory structure - execOutput(`unzip -o -q "${jar}" ${patternArgs} -d "${output}" 2>/dev/null || true`); + execOutput( + `unzip -o -q "${jar}" ${patternArgs} -d "${output}" 2>/dev/null || true`, + ); } catch { // unzip returns non-zero if no matches, that's ok } diff --git a/tools/p2-cli/src/lib/utils.ts b/tools/p2-cli/src/lib/utils.ts index a188372b..17243289 100644 --- a/tools/p2-cli/src/lib/utils.ts +++ b/tools/p2-cli/src/lib/utils.ts @@ -1,11 +1,20 @@ import { execSync } from 'node:child_process'; -import { existsSync, mkdirSync, readdirSync, copyFileSync, rmSync } from 'node:fs'; +import { + existsSync, + mkdirSync, + readdirSync, + copyFileSync, + rmSync, +} from 'node:fs'; import { join, basename } from 'node:path'; /** * Execute shell command */ -export function exec(cmd: string, options?: { silent?: boolean; maxBuffer?: number }): string { +export function exec( + cmd: string, + options?: { silent?: boolean; maxBuffer?: number }, +): string { return execSync(cmd, { encoding: 'utf-8', maxBuffer: options?.maxBuffer ?? 50 * 1024 * 1024, @@ -28,25 +37,24 @@ export function execOutput(cmd: string): string { */ export function findFiles(dir: string, pattern: string): string[] { if (!existsSync(dir)) return []; - + const files: string[] = []; const entries = readdirSync(dir, { withFileTypes: true, recursive: true }); - + // Convert glob to regex const regex = new RegExp( - '^' + pattern - .replace(/\./g, '\\.') - .replace(/\*/g, '.*') - .replace(/\?/g, '.') + '$' + '^' + + pattern.replace(/\./g, '\\.').replace(/\*/g, '.*').replace(/\?/g, '.') + + '$', ); - + for (const entry of entries) { if (entry.isFile() && regex.test(entry.name)) { const parentPath = entry.parentPath ?? entry.path ?? dir; files.push(join(parentPath, entry.name)); } } - + return files; }