diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c2c4d355..d3804ea1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -25,7 +25,8 @@ jobs: mutex, nestjs-exchange-rates, timer-examples, - sleep-for-days + sleep-for-days, + child-workflows ] include: - os: windows-latest diff --git a/child-workflows/package.json b/child-workflows/package.json index 42da3c06..660f0bbf 100644 --- a/child-workflows/package.json +++ b/child-workflows/package.json @@ -10,7 +10,8 @@ "lint": "eslint .", "start": "ts-node src/worker.ts", "start.watch": "nodemon src/worker.ts", - "workflow": "ts-node src/client.ts" + "workflow": "ts-node src/client.ts", + "test": "vitest run" }, "nodemonConfig": { "execMap": { @@ -22,10 +23,10 @@ ] }, "dependencies": { - "@temporalio/activity": "^1.13.0", - "@temporalio/client": "^1.13.0", - "@temporalio/worker": "^1.13.0", - "@temporalio/workflow": "^1.13.0" + "@temporalio/activity": "^1.11.1", + "@temporalio/client": "^1.11.3", + "@temporalio/worker": "^1.11.1", + "@temporalio/workflow": "^1.11.1" }, "devDependencies": { "@tsconfig/node18": "^18.2.4", @@ -38,6 +39,7 @@ "nodemon": "^3.1.7", "prettier": "^3.4.2", "ts-node": "^10.9.2", - "typescript": "^5.6.3" + "typescript": "^5.6.3", + "vitest": "^3.2.4" } } diff --git a/child-workflows/src/workflow-history.json b/child-workflows/src/workflow-history.json new file mode 100644 index 00000000..6c54b17d --- /dev/null +++ b/child-workflows/src/workflow-history.json @@ -0,0 +1,466 @@ +{ + "events": [ + { + "eventId": "1", + "eventTime": "2025-09-26T14:43:35.862440Z", + "eventType": "EVENT_TYPE_WORKFLOW_EXECUTION_STARTED", + "taskId": "1048587", + "workflowExecutionStartedEventAttributes": { + "workflowType": { + "name": "parentWorkflow" + }, + "taskQueue": { + "name": "child-workflows", + "kind": "TASK_QUEUE_KIND_NORMAL" + }, + "input": { + "payloads": [ + { + "metadata": { + "encoding": "anNvbi9wbGFpbg==" + }, + "data": "IkFsaWNlIg==" + }, + { + "metadata": { + "encoding": "anNvbi9wbGFpbg==" + }, + "data": "IkJvYiI=" + }, + { + "metadata": { + "encoding": "anNvbi9wbGFpbg==" + }, + "data": "IkNoYXJsaWUi" + } + ] + }, + "workflowTaskTimeout": "10s", + "originalExecutionRunId": "0199867a-c136-76ae-9f0e-4cb39c7bc304", + "identity": "88696@OVO-TW61N9YFD7.local", + "firstExecutionRunId": "0199867a-c136-76ae-9f0e-4cb39c7bc304", + "attempt": 1, + "firstWorkflowTaskBackoff": "0s", + "header": {}, + "workflowId": "parent-sample-0" + } + }, + { + "eventId": "2", + "eventTime": "2025-09-26T14:43:35.862950Z", + "eventType": "EVENT_TYPE_WORKFLOW_TASK_SCHEDULED", + "taskId": "1048588", + "workflowTaskScheduledEventAttributes": { + "taskQueue": { + "name": "child-workflows", + "kind": "TASK_QUEUE_KIND_NORMAL" + }, + "startToCloseTimeout": "10s", + "attempt": 1 + } + }, + { + "eventId": "3", + "eventTime": "2025-09-26T14:43:35.872200Z", + "eventType": "EVENT_TYPE_WORKFLOW_TASK_STARTED", + "taskId": "1048593", + "workflowTaskStartedEventAttributes": { + "scheduledEventId": "2", + "identity": "88648@OVO-TW61N9YFD7.local", + "requestId": "f4aa221a-19ad-4bc1-a68f-c750d8a25d1e", + "historySizeBytes": "363", + "workerVersion": { + "buildId": "@temporalio/worker@1.11.1+78ba8611360c4f1543b0c94f0ce201cb89776b571d8da953eeaed711648abc94" + } + } + }, + { + "eventId": "4", + "eventTime": "2025-09-26T14:43:35.942490Z", + "eventType": "EVENT_TYPE_WORKFLOW_TASK_COMPLETED", + "taskId": "1048597", + "workflowTaskCompletedEventAttributes": { + "scheduledEventId": "2", + "startedEventId": "3", + "identity": "88648@OVO-TW61N9YFD7.local", + "workerVersion": { + "buildId": "@temporalio/worker@1.11.1+78ba8611360c4f1543b0c94f0ce201cb89776b571d8da953eeaed711648abc94" + }, + "sdkMetadata": { + "coreUsedFlags": [ + 3, + 1, + 2 + ] + }, + "meteringMetadata": {} + } + }, + { + "eventId": "5", + "eventTime": "2025-09-26T14:43:35.942870Z", + "eventType": "EVENT_TYPE_START_CHILD_WORKFLOW_EXECUTION_INITIATED", + "taskId": "1048598", + "startChildWorkflowExecutionInitiatedEventAttributes": { + "namespace": "default", + "namespaceId": "0199867a-178d-7ef4-9a7b-cfe27bbcf765", + "workflowId": "4f2b7ad1-878d-4427-ae88-9c396ae42619", + "workflowType": { + "name": "childWorkflow" + }, + "taskQueue": { + "name": "child-workflows", + "kind": "TASK_QUEUE_KIND_NORMAL" + }, + "input": { + "payloads": [ + { + "metadata": { + "encoding": "anNvbi9wbGFpbg==" + }, + "data": "IkFsaWNlIg==" + } + ] + }, + "workflowRunTimeout": "0s", + "workflowTaskTimeout": "10s", + "parentClosePolicy": "PARENT_CLOSE_POLICY_TERMINATE", + "workflowTaskCompletedEventId": "4", + "workflowIdReusePolicy": "WORKFLOW_ID_REUSE_POLICY_ALLOW_DUPLICATE", + "header": {}, + "memo": {}, + "searchAttributes": {}, + "inheritBuildId": true + } + }, + { + "eventId": "6", + "eventTime": "2025-09-26T14:43:35.943112Z", + "eventType": "EVENT_TYPE_START_CHILD_WORKFLOW_EXECUTION_INITIATED", + "taskId": "1048599", + "startChildWorkflowExecutionInitiatedEventAttributes": { + "namespace": "default", + "namespaceId": "0199867a-178d-7ef4-9a7b-cfe27bbcf765", + "workflowId": "63b932e7-eb44-4ec0-97fd-5203cda422e7", + "workflowType": { + "name": "childWorkflow" + }, + "taskQueue": { + "name": "child-workflows", + "kind": "TASK_QUEUE_KIND_NORMAL" + }, + "input": { + "payloads": [ + { + "metadata": { + "encoding": "anNvbi9wbGFpbg==" + }, + "data": "IkJvYiI=" + } + ] + }, + "workflowRunTimeout": "0s", + "workflowTaskTimeout": "10s", + "parentClosePolicy": "PARENT_CLOSE_POLICY_TERMINATE", + "workflowTaskCompletedEventId": "4", + "workflowIdReusePolicy": "WORKFLOW_ID_REUSE_POLICY_ALLOW_DUPLICATE", + "header": {}, + "memo": {}, + "searchAttributes": {}, + "inheritBuildId": true + } + }, + { + "eventId": "7", + "eventTime": "2025-09-26T14:43:35.943175Z", + "eventType": "EVENT_TYPE_START_CHILD_WORKFLOW_EXECUTION_INITIATED", + "taskId": "1048600", + "startChildWorkflowExecutionInitiatedEventAttributes": { + "namespace": "default", + "namespaceId": "0199867a-178d-7ef4-9a7b-cfe27bbcf765", + "workflowId": "4f4dba02-e232-422e-9947-4cdf6f7eee25", + "workflowType": { + "name": "childWorkflow" + }, + "taskQueue": { + "name": "child-workflows", + "kind": "TASK_QUEUE_KIND_NORMAL" + }, + "input": { + "payloads": [ + { + "metadata": { + "encoding": "anNvbi9wbGFpbg==" + }, + "data": "IkNoYXJsaWUi" + } + ] + }, + "workflowRunTimeout": "0s", + "workflowTaskTimeout": "10s", + "parentClosePolicy": "PARENT_CLOSE_POLICY_TERMINATE", + "workflowTaskCompletedEventId": "4", + "workflowIdReusePolicy": "WORKFLOW_ID_REUSE_POLICY_ALLOW_DUPLICATE", + "header": {}, + "memo": {}, + "searchAttributes": {}, + "inheritBuildId": true + } + }, + { + "eventId": "8", + "eventTime": "2025-09-26T14:43:35.945237Z", + "eventType": "EVENT_TYPE_CHILD_WORKFLOW_EXECUTION_STARTED", + "taskId": "1048610", + "childWorkflowExecutionStartedEventAttributes": { + "namespace": "default", + "namespaceId": "0199867a-178d-7ef4-9a7b-cfe27bbcf765", + "initiatedEventId": "7", + "workflowExecution": { + "workflowId": "4f4dba02-e232-422e-9947-4cdf6f7eee25", + "runId": "0199867a-c188-78aa-ae81-848cb4e9ffd8" + }, + "workflowType": { + "name": "childWorkflow" + }, + "header": {} + } + }, + { + "eventId": "9", + "eventTime": "2025-09-26T14:43:35.945247Z", + "eventType": "EVENT_TYPE_WORKFLOW_TASK_SCHEDULED", + "taskId": "1048611", + "workflowTaskScheduledEventAttributes": { + "taskQueue": { + "name": "88648@OVO-TW61N9YFD7.local-42cb6bb914e4422981ab58f88ec75e11", + "kind": "TASK_QUEUE_KIND_STICKY", + "normalName": "child-workflows" + }, + "startToCloseTimeout": "10s", + "attempt": 1 + } + }, + { + "eventId": "10", + "eventTime": "2025-09-26T14:43:35.946134Z", + "eventType": "EVENT_TYPE_CHILD_WORKFLOW_EXECUTION_STARTED", + "taskId": "1048623", + "childWorkflowExecutionStartedEventAttributes": { + "namespace": "default", + "namespaceId": "0199867a-178d-7ef4-9a7b-cfe27bbcf765", + "initiatedEventId": "5", + "workflowExecution": { + "workflowId": "4f2b7ad1-878d-4427-ae88-9c396ae42619", + "runId": "0199867a-c189-7bbb-9338-c41000f74b9c" + }, + "workflowType": { + "name": "childWorkflow" + }, + "header": {} + } + }, + { + "eventId": "11", + "eventTime": "2025-09-26T14:43:35.948404Z", + "eventType": "EVENT_TYPE_CHILD_WORKFLOW_EXECUTION_STARTED", + "taskId": "1048635", + "childWorkflowExecutionStartedEventAttributes": { + "namespace": "default", + "namespaceId": "0199867a-178d-7ef4-9a7b-cfe27bbcf765", + "initiatedEventId": "6", + "workflowExecution": { + "workflowId": "63b932e7-eb44-4ec0-97fd-5203cda422e7", + "runId": "0199867a-c18b-7a2d-bafd-6ea43bc870be" + }, + "workflowType": { + "name": "childWorkflow" + }, + "header": {} + } + }, + { + "eventId": "12", + "eventTime": "2025-09-26T14:43:35.949413Z", + "eventType": "EVENT_TYPE_WORKFLOW_TASK_STARTED", + "taskId": "1048642", + "workflowTaskStartedEventAttributes": { + "scheduledEventId": "9", + "identity": "88648@OVO-TW61N9YFD7.local", + "requestId": "e20d3249-ff59-47cb-9a88-1d9b64739fb6", + "historySizeBytes": "1997", + "workerVersion": { + "buildId": "@temporalio/worker@1.11.1+78ba8611360c4f1543b0c94f0ce201cb89776b571d8da953eeaed711648abc94" + } + } + }, + { + "eventId": "13", + "eventTime": "2025-09-26T14:43:35.956478Z", + "eventType": "EVENT_TYPE_WORKFLOW_TASK_COMPLETED", + "taskId": "1048655", + "workflowTaskCompletedEventAttributes": { + "scheduledEventId": "9", + "startedEventId": "12", + "identity": "88648@OVO-TW61N9YFD7.local", + "workerVersion": { + "buildId": "@temporalio/worker@1.11.1+78ba8611360c4f1543b0c94f0ce201cb89776b571d8da953eeaed711648abc94" + }, + "sdkMetadata": {}, + "meteringMetadata": {} + } + }, + { + "eventId": "14", + "eventTime": "2025-09-26T14:43:35.957358Z", + "eventType": "EVENT_TYPE_CHILD_WORKFLOW_EXECUTION_COMPLETED", + "taskId": "1048672", + "childWorkflowExecutionCompletedEventAttributes": { + "result": { + "payloads": [ + { + "metadata": { + "encoding": "anNvbi9wbGFpbg==" + }, + "data": "IkkgYW0gYSBjaGlsZCBuYW1lZCBDaGFybGllIg==" + } + ] + }, + "namespace": "default", + "namespaceId": "0199867a-178d-7ef4-9a7b-cfe27bbcf765", + "workflowExecution": { + "workflowId": "4f4dba02-e232-422e-9947-4cdf6f7eee25", + "runId": "0199867a-c188-78aa-ae81-848cb4e9ffd8" + }, + "workflowType": { + "name": "childWorkflow" + }, + "initiatedEventId": "7", + "startedEventId": "8" + } + }, + { + "eventId": "15", + "eventTime": "2025-09-26T14:43:35.957361Z", + "eventType": "EVENT_TYPE_WORKFLOW_TASK_SCHEDULED", + "taskId": "1048673", + "workflowTaskScheduledEventAttributes": { + "taskQueue": { + "name": "88648@OVO-TW61N9YFD7.local-42cb6bb914e4422981ab58f88ec75e11", + "kind": "TASK_QUEUE_KIND_STICKY", + "normalName": "child-workflows" + }, + "startToCloseTimeout": "10s", + "attempt": 1 + } + }, + { + "eventId": "16", + "eventTime": "2025-09-26T14:43:35.959015Z", + "eventType": "EVENT_TYPE_CHILD_WORKFLOW_EXECUTION_COMPLETED", + "taskId": "1048680", + "childWorkflowExecutionCompletedEventAttributes": { + "result": { + "payloads": [ + { + "metadata": { + "encoding": "anNvbi9wbGFpbg==" + }, + "data": "IkkgYW0gYSBjaGlsZCBuYW1lZCBBbGljZSI=" + } + ] + }, + "namespace": "default", + "namespaceId": "0199867a-178d-7ef4-9a7b-cfe27bbcf765", + "workflowExecution": { + "workflowId": "4f2b7ad1-878d-4427-ae88-9c396ae42619", + "runId": "0199867a-c189-7bbb-9338-c41000f74b9c" + }, + "workflowType": { + "name": "childWorkflow" + }, + "initiatedEventId": "5", + "startedEventId": "10" + } + }, + { + "eventId": "17", + "eventTime": "2025-09-26T14:43:35.959727Z", + "eventType": "EVENT_TYPE_CHILD_WORKFLOW_EXECUTION_COMPLETED", + "taskId": "1048682", + "childWorkflowExecutionCompletedEventAttributes": { + "result": { + "payloads": [ + { + "metadata": { + "encoding": "anNvbi9wbGFpbg==" + }, + "data": "IkkgYW0gYSBjaGlsZCBuYW1lZCBCb2Ii" + } + ] + }, + "namespace": "default", + "namespaceId": "0199867a-178d-7ef4-9a7b-cfe27bbcf765", + "workflowExecution": { + "workflowId": "63b932e7-eb44-4ec0-97fd-5203cda422e7", + "runId": "0199867a-c18b-7a2d-bafd-6ea43bc870be" + }, + "workflowType": { + "name": "childWorkflow" + }, + "initiatedEventId": "6", + "startedEventId": "11" + } + }, + { + "eventId": "18", + "eventTime": "2025-09-26T14:43:35.960121Z", + "eventType": "EVENT_TYPE_WORKFLOW_TASK_STARTED", + "taskId": "1048684", + "workflowTaskStartedEventAttributes": { + "scheduledEventId": "15", + "identity": "88648@OVO-TW61N9YFD7.local", + "requestId": "21074772-d71f-4269-aa35-dfa8d9449b90", + "historySizeBytes": "3155", + "workerVersion": { + "buildId": "@temporalio/worker@1.11.1+78ba8611360c4f1543b0c94f0ce201cb89776b571d8da953eeaed711648abc94" + } + } + }, + { + "eventId": "19", + "eventTime": "2025-09-26T14:43:35.963393Z", + "eventType": "EVENT_TYPE_WORKFLOW_TASK_COMPLETED", + "taskId": "1048688", + "workflowTaskCompletedEventAttributes": { + "scheduledEventId": "15", + "startedEventId": "18", + "identity": "88648@OVO-TW61N9YFD7.local", + "workerVersion": { + "buildId": "@temporalio/worker@1.11.1+78ba8611360c4f1543b0c94f0ce201cb89776b571d8da953eeaed711648abc94" + }, + "sdkMetadata": {}, + "meteringMetadata": {} + } + }, + { + "eventId": "20", + "eventTime": "2025-09-26T14:43:35.963406Z", + "eventType": "EVENT_TYPE_WORKFLOW_EXECUTION_COMPLETED", + "taskId": "1048689", + "workflowExecutionCompletedEventAttributes": { + "result": { + "payloads": [ + { + "metadata": { + "encoding": "anNvbi9wbGFpbg==" + }, + "data": "IkkgYW0gYSBjaGlsZCBuYW1lZCBBbGljZVxuSSBhbSBhIGNoaWxkIG5hbWVkIEJvYlxuSSBhbSBhIGNoaWxkIG5hbWVkIENoYXJsaWUi" + } + ] + }, + "workflowTaskCompletedEventId": "19" + } + } + ] +} \ No newline at end of file diff --git a/child-workflows/src/workflows-history.test.ts b/child-workflows/src/workflows-history.test.ts new file mode 100644 index 00000000..8384eef2 --- /dev/null +++ b/child-workflows/src/workflows-history.test.ts @@ -0,0 +1,14 @@ +import { Worker } from '@temporalio/worker'; +import workflowHistory from './workflow-history.json'; +import path from 'path'; + +describe('Workflow history compatibility', () => { + test('Workflow history is compatible', async () => { + await Worker.runReplayHistory( + { + workflowsPath: require.resolve(path.join(__dirname, 'workflows.ts')), + }, + workflowHistory + ); + }); +}); diff --git a/child-workflows/tsconfig.json b/child-workflows/tsconfig.json index 9d36637f..329ad275 100644 --- a/child-workflows/tsconfig.json +++ b/child-workflows/tsconfig.json @@ -7,7 +7,9 @@ "declarationMap": true, "sourceMap": true, "rootDir": "./src", - "outDir": "./lib" + "outDir": "./lib", + "types": ["vitest/globals"], + "resolveJsonModule": true, }, "include": ["src/**/*.ts"] } diff --git a/child-workflows/vitest.config.ts b/child-workflows/vitest.config.ts new file mode 100644 index 00000000..32ae898f --- /dev/null +++ b/child-workflows/vitest.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + globals: true, + }, +}) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 92be5432..12683ef1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -233,16 +233,16 @@ importers: child-workflows: dependencies: '@temporalio/activity': - specifier: ^1.13.0 + specifier: ^1.11.1 version: 1.13.0 '@temporalio/client': - specifier: ^1.13.0 + specifier: ^1.11.3 version: 1.13.0 '@temporalio/worker': - specifier: ^1.13.0 + specifier: ^1.11.1 version: 1.13.0(@swc/helpers@0.5.15) '@temporalio/workflow': - specifier: ^1.13.0 + specifier: ^1.11.1 version: 1.13.0 devDependencies: '@tsconfig/node18': @@ -278,6 +278,9 @@ importers: typescript: specifier: ^5.6.3 version: 5.7.3 + vitest: + specifier: ^3.2.4 + version: 3.2.4(@edge-runtime/vm@2.1.2)(@types/debug@4.1.12)(@types/node@22.12.0)(jsdom@16.7.0)(terser@5.37.0) continue-as-new: dependencies: @@ -4811,6 +4814,9 @@ packages: '@jridgewell/sourcemap-codec@1.5.0': resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} @@ -6078,6 +6084,9 @@ packages: '@types/cacheable-request@6.0.3': resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} + '@types/chai@5.2.2': + resolution: {integrity: sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==} + '@types/connect-history-api-fallback@1.5.4': resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} @@ -6096,6 +6105,9 @@ packages: '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + '@types/deep-eql@4.0.2': + resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} + '@types/ejson@2.2.2': resolution: {integrity: sha512-4DEXy6yKJVr1DQx4xy+y7NV9mK6p1vgikvtbOITWgp2Prs6yhffqZ8XOjEtojX2pzC7B1KF9kcQe9Bv52E9K2A==} @@ -6579,6 +6591,35 @@ packages: '@vercel/static-config@2.0.17': resolution: {integrity: sha512-2f50OTVrN07x7pH+XNW0e7cj7T+Ufg+19+a2N3/XZBjQmV+FaMlmSLiaQ4tBxp2H8lWWHzENua7ZSSQPtRZ3/A==} + '@vitest/expect@3.2.4': + resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==} + + '@vitest/mocker@3.2.4': + resolution: {integrity: sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==} + peerDependencies: + msw: ^2.4.9 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + + '@vitest/pretty-format@3.2.4': + resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==} + + '@vitest/runner@3.2.4': + resolution: {integrity: sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==} + + '@vitest/snapshot@3.2.4': + resolution: {integrity: sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==} + + '@vitest/spy@3.2.4': + resolution: {integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==} + + '@vitest/utils@3.2.4': + resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==} + '@web3-storage/multipart-parser@1.0.0': resolution: {integrity: sha512-BEO6al7BYqcnfX15W2cnGR+Q566ACXAT9UQykORCWW80lmkpWsnEob6zJS1ZVBKsSJC8+7vJkHwlp+lXG1UCdw==} @@ -6882,6 +6923,10 @@ packages: asap@2.0.6: resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} + ast-types-flow@0.0.8: resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} @@ -7248,6 +7293,10 @@ packages: ccount@1.1.0: resolution: {integrity: sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==} + chai@5.3.3: + resolution: {integrity: sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==} + engines: {node: '>=18'} + chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} @@ -7296,6 +7345,10 @@ packages: chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + check-error@2.1.1: + resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} + engines: {node: '>= 16'} + check-types@11.2.3: resolution: {integrity: sha512-+67P1GkJRaxQD6PKK0Et9DhwQB+vGg3PM5+aavopCpZT1lj9jeqfvpgTLAWErNj8qApkkmXlu/Ug74kmhagkXg==} @@ -7818,6 +7871,15 @@ packages: supports-color: optional: true + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + decamelize@1.2.0: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} engines: {node: '>=0.10.0'} @@ -7847,6 +7909,10 @@ packages: babel-plugin-macros: optional: true + deep-eql@5.0.2: + resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} + engines: {node: '>=6'} + deep-equal@2.2.3: resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} engines: {node: '>= 0.4'} @@ -8179,6 +8245,9 @@ packages: es-module-lexer@1.6.0: resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==} + es-module-lexer@1.7.0: + resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} + es-object-atoms@1.1.1: resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} engines: {node: '>= 0.4'} @@ -8650,6 +8719,10 @@ packages: resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} engines: {node: '>=6'} + expect-type@1.2.2: + resolution: {integrity: sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==} + engines: {node: '>=12.0.0'} + expect@27.5.1: resolution: {integrity: sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -8726,6 +8799,15 @@ packages: fb-watchman@2.0.2: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + fecha@4.2.3: resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} @@ -10077,6 +10159,9 @@ packages: js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + js-tokens@9.0.1: + resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} + js-yaml@3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true @@ -10343,6 +10428,9 @@ packages: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true + loupe@3.2.1: + resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==} + lower-case@2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} @@ -10375,6 +10463,9 @@ packages: magic-string@0.25.9: resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} + magic-string@0.30.19: + resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==} + magic-string@0.30.8: resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==} engines: {node: '>=12'} @@ -11275,8 +11366,12 @@ packages: pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - pathe@2.0.2: - resolution: {integrity: sha512-15Ztpk+nov8DR524R4BF7uEuzESgzUEAV4Ah7CUMNGXdE5ELuvxElxGXndBl32vMSsWa1jpNf22Z+Er3sKwq+w==} + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + + pathval@2.0.1: + resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==} + engines: {node: '>= 14.16'} peek-stream@1.1.3: resolution: {integrity: sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA==} @@ -11315,6 +11410,10 @@ packages: resolution: {integrity: sha512-xUXwsxNjwTQ8K3GnT4pCJm+xq3RUPQbmkYJTP5aFIfNIvbcc/4MUxgBaaRSZJ6yGJZiGSyYlM6MzwTsRk8SYCg==} engines: {node: '>=12'} + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + engines: {node: '>=12'} + pidtree@0.3.1: resolution: {integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==} engines: {node: '>=0.10'} @@ -12580,6 +12679,9 @@ packages: resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} engines: {node: '>= 0.4'} + siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -12673,6 +12775,7 @@ packages: source-map@0.8.0-beta.0: resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} engines: {node: '>= 8'} + deprecated: The work that was done in this beta branch won't be included in future versions sourcemap-codec@1.4.8: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} @@ -12731,6 +12834,9 @@ packages: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} + stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + stackframe@1.3.4: resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} @@ -12748,6 +12854,9 @@ packages: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} + std-env@3.9.0: + resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} + stop-iteration-iterator@1.1.0: resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} engines: {node: '>= 0.4'} @@ -12871,6 +12980,9 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + strip-literal@3.0.0: + resolution: {integrity: sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==} + style-loader@3.3.4: resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==} engines: {node: '>= 12.13.0'} @@ -13085,6 +13197,28 @@ packages: resolution: {integrity: sha512-MyqZCTGLDZ77u4k+jqg4UlrzPTPZ49NDlaekU6uuFaJLzPIN1woaRXCbGeqOfxwc3Y37ZROGAJ614Rdv7Olt+g==} engines: {node: '>=10'} + tinybench@2.9.0: + resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} + + tinyexec@0.3.2: + resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + engines: {node: '>=12.0.0'} + + tinypool@1.1.1: + resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==} + engines: {node: ^18.0.0 || >=20.0.0} + + tinyrainbow@2.0.0: + resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} + engines: {node: '>=14.0.0'} + + tinyspy@4.0.4: + resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==} + engines: {node: '>=14.0.0'} + tmp@0.0.33: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} @@ -13570,6 +13704,11 @@ packages: engines: {node: ^18.0.0 || >=20.0.0} hasBin: true + vite-node@3.2.4: + resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + vite@5.4.14: resolution: {integrity: sha512-EK5cY7Q1D8JNhSaPKVK4pwBFvaTmZxEnoKXLG/U9gmdDcihQGNzFlgIvaxezFR4glP1LsuiedwMBqCXH3wZccA==} engines: {node: ^18.0.0 || >=20.0.0} @@ -13601,6 +13740,34 @@ packages: terser: optional: true + vitest@3.2.4: + resolution: {integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + 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: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/debug': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + vm2@3.9.19: resolution: {integrity: sha512-J637XF0DHDMV57R6JyVsTak7nIL8gy5KH4r1HiwWLf/4GBbb5MKL5y7LpmF4A8E2nR6XmzpmMFQ7V7ppPTmUQg==} engines: {node: '>=6.0'} @@ -13775,6 +13942,11 @@ packages: engines: {node: ^16.13.0 || >=18.0.0} hasBin: true + why-is-node-running@2.3.0: + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} + engines: {node: '>=8'} + hasBin: true + wide-align@1.1.3: resolution: {integrity: sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==} @@ -15855,6 +16027,8 @@ snapshots: '@jridgewell/sourcemap-codec@1.5.0': {} + '@jridgewell/sourcemap-codec@1.5.5': {} + '@jridgewell/trace-mapping@0.3.25': dependencies: '@jridgewell/resolve-uri': 3.1.2 @@ -17399,6 +17573,10 @@ snapshots: '@types/node': 22.12.0 '@types/responselike': 1.0.3 + '@types/chai@5.2.2': + dependencies: + '@types/deep-eql': 4.0.2 + '@types/connect-history-api-fallback@1.5.4': dependencies: '@types/express-serve-static-core': 5.0.6 @@ -17422,6 +17600,8 @@ snapshots: dependencies: '@types/ms': 0.7.34 + '@types/deep-eql@4.0.2': {} + '@types/ejson@2.2.2': {} '@types/eslint-scope@3.7.7': @@ -18203,6 +18383,48 @@ snapshots: json-schema-to-ts: 1.6.4 ts-morph: 12.0.0 + '@vitest/expect@3.2.4': + dependencies: + '@types/chai': 5.2.2 + '@vitest/spy': 3.2.4 + '@vitest/utils': 3.2.4 + chai: 5.3.3 + tinyrainbow: 2.0.0 + + '@vitest/mocker@3.2.4(vite@5.4.14(@types/node@22.12.0)(terser@5.37.0))': + dependencies: + '@vitest/spy': 3.2.4 + estree-walker: 3.0.3 + magic-string: 0.30.19 + optionalDependencies: + vite: 5.4.14(@types/node@22.12.0)(terser@5.37.0) + + '@vitest/pretty-format@3.2.4': + dependencies: + tinyrainbow: 2.0.0 + + '@vitest/runner@3.2.4': + dependencies: + '@vitest/utils': 3.2.4 + pathe: 2.0.3 + strip-literal: 3.0.0 + + '@vitest/snapshot@3.2.4': + dependencies: + '@vitest/pretty-format': 3.2.4 + magic-string: 0.30.19 + pathe: 2.0.3 + + '@vitest/spy@3.2.4': + dependencies: + tinyspy: 4.0.4 + + '@vitest/utils@3.2.4': + dependencies: + '@vitest/pretty-format': 3.2.4 + loupe: 3.2.1 + tinyrainbow: 2.0.0 + '@web3-storage/multipart-parser@1.0.0': {} '@webassemblyjs/ast@1.14.1': @@ -18551,6 +18773,8 @@ snapshots: asap@2.0.6: {} + assertion-error@2.0.1: {} + ast-types-flow@0.0.8: {} ast-types@0.13.4: @@ -19035,6 +19259,14 @@ snapshots: ccount@1.1.0: {} + chai@5.3.3: + dependencies: + assertion-error: 2.0.1 + check-error: 2.1.1 + deep-eql: 5.0.2 + loupe: 3.2.1 + pathval: 2.0.1 + chalk@2.4.2: dependencies: ansi-styles: 3.2.1 @@ -19073,6 +19305,8 @@ snapshots: chardet@0.7.0: {} + check-error@2.1.1: {} + check-types@11.2.3: {} chokidar@3.5.1: @@ -19612,6 +19846,10 @@ snapshots: optionalDependencies: supports-color: 5.5.0 + debug@4.4.3: + dependencies: + ms: 2.1.3 + decamelize@1.2.0: {} decamelize@4.0.0: {} @@ -19632,6 +19870,8 @@ snapshots: optionalDependencies: babel-plugin-macros: 3.1.0 + deep-eql@5.0.2: {} + deep-equal@2.2.3: dependencies: array-buffer-byte-length: 1.0.2 @@ -20013,6 +20253,8 @@ snapshots: es-module-lexer@1.6.0: {} + es-module-lexer@1.7.0: {} + es-object-atoms@1.1.1: dependencies: es-errors: 1.3.0 @@ -20629,6 +20871,8 @@ snapshots: expand-template@2.0.3: {} + expect-type@1.2.2: {} + expect@27.5.1: dependencies: '@jest/types': 27.5.1 @@ -20790,6 +21034,10 @@ snapshots: dependencies: bser: 2.1.1 + fdir@6.5.0(picomatch@4.0.3): + optionalDependencies: + picomatch: 4.0.3 + fecha@4.2.3: {} fetch-blob@3.2.0: @@ -21108,7 +21356,7 @@ snapshots: dependencies: '@tootallnate/once': 1.1.2 data-uri-to-buffer: 3.0.1 - debug: 4.4.0(supports-color@5.5.0) + debug: 4.4.3 file-uri-to-path: 2.0.0 fs-extra: 8.1.0 ftp: 0.3.10 @@ -21152,7 +21400,7 @@ snapshots: fs.realpath: 1.0.0 inflight: 1.0.6 inherits: 2.0.4 - minimatch: 3.0.4 + minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 @@ -22893,6 +23141,8 @@ snapshots: js-tokens@4.0.0: {} + js-tokens@9.0.1: {} + js-yaml@3.14.1: dependencies: argparse: 1.0.10 @@ -23185,6 +23435,8 @@ snapshots: dependencies: js-tokens: 4.0.0 + loupe@3.2.1: {} + lower-case@2.0.2: dependencies: tslib: 2.8.1 @@ -23211,6 +23463,10 @@ snapshots: dependencies: sourcemap-codec: 1.4.8 + magic-string@0.30.19: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + magic-string@0.30.8: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 @@ -23718,7 +23974,7 @@ snapshots: micromark@3.2.0: dependencies: '@types/debug': 4.1.12 - debug: 4.4.0(supports-color@5.5.0) + debug: 4.4.3 decode-named-character-reference: 1.0.2 micromark-core-commonmark: 1.1.0 micromark-factory-space: 1.1.0 @@ -23834,7 +24090,7 @@ snapshots: mlly@1.7.4: dependencies: acorn: 8.14.0 - pathe: 2.0.2 + pathe: 2.0.3 pkg-types: 1.3.1 ufo: 1.5.4 @@ -24309,7 +24565,7 @@ snapshots: dependencies: '@tootallnate/once': 1.1.2 agent-base: 6.0.2 - debug: 4.4.0(supports-color@5.5.0) + debug: 4.4.3 get-uri: 3.0.2 http-proxy-agent: 4.0.1 https-proxy-agent: 5.0.1 @@ -24431,7 +24687,9 @@ snapshots: pathe@1.1.2: {} - pathe@2.0.2: {} + pathe@2.0.3: {} + + pathval@2.0.1: {} peek-stream@1.1.3: dependencies: @@ -24469,6 +24727,8 @@ snapshots: picomatch@4.0.1: {} + picomatch@4.0.3: {} + pidtree@0.3.1: {} pify@2.3.0: {} @@ -24485,7 +24745,7 @@ snapshots: dependencies: confbox: 0.1.8 mlly: 1.7.4 - pathe: 2.0.2 + pathe: 2.0.3 pkg-up@3.1.0: dependencies: @@ -25111,7 +25371,7 @@ snapshots: proxy-agent@5.0.0: dependencies: agent-base: 6.0.2 - debug: 4.4.0(supports-color@5.5.0) + debug: 4.4.3 http-proxy-agent: 4.0.1 https-proxy-agent: 5.0.1 lru-cache: 5.1.1 @@ -25993,6 +26253,8 @@ snapshots: side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 + siginfo@2.0.0: {} + signal-exit@3.0.7: {} signal-exit@4.1.0: {} @@ -26039,7 +26301,7 @@ snapshots: socks-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.4.0(supports-color@5.5.0) + debug: 4.4.3 socks: 2.8.3 transitivePeerDependencies: - supports-color @@ -26163,6 +26425,8 @@ snapshots: dependencies: escape-string-regexp: 2.0.0 + stackback@0.0.2: {} + stackframe@1.3.4: {} standard-as-callback@2.1.0: {} @@ -26175,6 +26439,8 @@ snapshots: statuses@2.0.1: {} + std-env@3.9.0: {} + stop-iteration-iterator@1.1.0: dependencies: es-errors: 1.3.0 @@ -26329,6 +26595,10 @@ snapshots: strip-json-comments@3.1.1: {} + strip-literal@3.0.0: + dependencies: + js-tokens: 9.0.1 + style-loader@3.3.4(webpack@5.96.1(@swc/core@1.10.11(@swc/helpers@0.5.15))): dependencies: webpack: 5.96.1(@swc/core@1.10.11(@swc/helpers@0.5.15)) @@ -26654,6 +26924,21 @@ snapshots: dependencies: convert-hrtime: 3.0.0 + tinybench@2.9.0: {} + + tinyexec@0.3.2: {} + + tinyglobby@0.2.15: + dependencies: + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + + tinypool@1.1.1: {} + + tinyrainbow@2.0.0: {} + + tinyspy@4.0.4: {} + tmp@0.0.33: dependencies: os-tmpdir: 1.0.2 @@ -27206,7 +27491,7 @@ snapshots: vite-node@1.6.0(@types/node@22.12.0)(terser@5.37.0): dependencies: cac: 6.7.14 - debug: 4.4.0(supports-color@5.5.0) + debug: 4.4.3 pathe: 1.1.2 picocolors: 1.1.1 vite: 5.4.14(@types/node@22.12.0)(terser@5.37.0) @@ -27221,6 +27506,24 @@ snapshots: - supports-color - terser + vite-node@3.2.4(@types/node@22.12.0)(terser@5.37.0): + dependencies: + cac: 6.7.14 + debug: 4.4.3 + es-module-lexer: 1.7.0 + pathe: 2.0.3 + vite: 5.4.14(@types/node@22.12.0)(terser@5.37.0) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + vite@5.4.14(@types/node@22.12.0)(terser@5.37.0): dependencies: esbuild: 0.21.5 @@ -27231,6 +27534,47 @@ snapshots: fsevents: 2.3.3 terser: 5.37.0 + vitest@3.2.4(@edge-runtime/vm@2.1.2)(@types/debug@4.1.12)(@types/node@22.12.0)(jsdom@16.7.0)(terser@5.37.0): + dependencies: + '@types/chai': 5.2.2 + '@vitest/expect': 3.2.4 + '@vitest/mocker': 3.2.4(vite@5.4.14(@types/node@22.12.0)(terser@5.37.0)) + '@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.3.3 + debug: 4.4.3 + expect-type: 1.2.2 + magic-string: 0.30.19 + pathe: 2.0.3 + picomatch: 4.0.3 + std-env: 3.9.0 + tinybench: 2.9.0 + tinyexec: 0.3.2 + tinyglobby: 0.2.15 + tinypool: 1.1.1 + tinyrainbow: 2.0.0 + vite: 5.4.14(@types/node@22.12.0)(terser@5.37.0) + vite-node: 3.2.4(@types/node@22.12.0)(terser@5.37.0) + why-is-node-running: 2.3.0 + optionalDependencies: + '@edge-runtime/vm': 2.1.2 + '@types/debug': 4.1.12 + '@types/node': 22.12.0 + jsdom: 16.7.0 + transitivePeerDependencies: + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + vm2@3.9.19: dependencies: acorn: 8.14.0 @@ -27523,6 +27867,11 @@ snapshots: dependencies: isexe: 3.1.1 + why-is-node-running@2.3.0: + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + wide-align@1.1.3: dependencies: string-width: 2.1.1