From e9161fa657067c1076d3e906c356365710a0c1c4 Mon Sep 17 00:00:00 2001 From: Giles Roadnight <10414642+Roaders@users.noreply.github.com> Date: Thu, 25 Sep 2025 17:03:07 +0100 Subject: [PATCH 01/10] Update packages to publish as ESM --- .vscode/settings.json | 4 ++- package.json | 3 ++- packages/fdc3-agent-proxy/package.json | 11 ++++---- packages/fdc3-context/package.json | 8 +++--- ...tQuicktypeUtil.js => s2tQuicktypeUtil.cjs} | 0 packages/fdc3-get-agent/package.json | 26 +++++++++---------- packages/fdc3-get-agent/tsconfig.json | 2 ++ packages/fdc3-schema/package.json | 13 +++++----- ...tQuicktypeUtil.js => s2tQuicktypeUtil.cjs} | 0 packages/fdc3-standard/package.json | 11 ++++---- packages/fdc3/package.json | 15 ++++++----- packages/testing/package.json | 6 ++--- toolbox/fdc3-conformance/package.json | 4 +-- toolbox/fdc3-conformance/tsconfig.json | 2 ++ toolbox/fdc3-for-web/demo/package.json | 3 ++- .../fdc3-for-web/fdc3-web-impl/package.json | 8 +++--- tsconfig.root.json | 4 +-- 17 files changed, 66 insertions(+), 54 deletions(-) rename packages/fdc3-context/{s2tQuicktypeUtil.js => s2tQuicktypeUtil.cjs} (100%) rename packages/fdc3-schema/{s2tQuicktypeUtil.js => s2tQuicktypeUtil.cjs} (100%) diff --git a/.vscode/settings.json b/.vscode/settings.json index 55712c19f..321f54286 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,5 @@ { - "typescript.tsdk": "node_modules/typescript/lib" + "typescript.tsdk": "node_modules/typescript/lib", + "editor.tabSize": 2, + "editor.insertSpaces": true } \ No newline at end of file diff --git a/package.json b/package.json index 24cf04548..2d6ca4d0b 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,8 @@ "istanbul-merge": "^2.0.0", "lint-staged": "^15.2.10", "nyc": "17.1.0", - "prettier": "3.4.1" + "prettier": "3.4.1", + "tsx": "^4.20.5" }, "lint-staged": { "**/*": "prettier --write --ignore-unknown" diff --git a/packages/fdc3-agent-proxy/package.json b/packages/fdc3-agent-proxy/package.json index 87a0c6a06..0dc377ddd 100644 --- a/packages/fdc3-agent-proxy/package.json +++ b/packages/fdc3-agent-proxy/package.json @@ -1,6 +1,6 @@ { "name": "@finos/fdc3-agent-proxy", - "version": "2.2.2-beta.1", + "version": "2.2.0", "author": "Fintech Open Source Foundation (FINOS)", "homepage": "https://fdc3.finos.org", "repository": { @@ -17,13 +17,13 @@ "dist" ], "scripts": { - "build": "tsc --module es2022", + "build": "tsc", "test": "tsc && nyc --reporter=lcov --reporter=text --reporter json cucumber-js", "clean": "rimraf dist cucumber-report.html coverage .nyc_output node_modules test-results.xml", "lint": "eslint src/" }, "dependencies": { - "@finos/fdc3-standard": "2.2.2-beta.1" + "@finos/fdc3-standard": "2.2.0" }, "devDependencies": { "@cucumber/cucumber": "10.3.1", @@ -31,7 +31,7 @@ "@cucumber/messages": "^28.1.0", "@cucumber/pretty-formatter": "1.0.1", "@eslint/js": "^9.19.0", - "@finos/testing": "2.2.2-beta.1", + "@finos/testing": "2.2.0", "@types/expect": "24.3.0", "@types/lodash": "4.14.167", "@types/node": "^20.16.11", @@ -55,5 +55,6 @@ "typescript": "^5.6.3", "typescript-eslint": "^8.17.0", "uuid": "^9.0.1" - } + }, + "type": "module" } diff --git a/packages/fdc3-context/package.json b/packages/fdc3-context/package.json index 7eeede8a6..ec823966b 100644 --- a/packages/fdc3-context/package.json +++ b/packages/fdc3-context/package.json @@ -1,6 +1,6 @@ { "name": "@finos/fdc3-context", - "version": "2.2.2-beta.1", + "version": "2.2.0", "author": "Fintech Open Source Foundation (FINOS)", "homepage": "https://fdc3.finos.org", "repository": { @@ -20,10 +20,10 @@ "clean": "rimraf dist && rimraf generated", "mkdirs": "npx mkdirp generated/context", "generate": "npm run mkdirs && npm run typegen && npm run lint", - "build": "npm run generate && tsc --module es2022", + "build": "npm run generate && tsc", "lint": "eslint generated/ --fix && npx prettier generated/ --write", "test": "npm run generate && tsc && jest", - "typegen": "cd schemas && node ../s2tQuicktypeUtil.js context ../generated/context/ContextTypes.ts" + "typegen": "cd schemas && node ../s2tQuicktypeUtil.cjs context ../generated/context/ContextTypes.ts" }, "devDependencies": { "@eslint/eslintrc": "^3.2.0", @@ -50,4 +50,4 @@ "ajv": "8.18.0" } } -} +} \ No newline at end of file diff --git a/packages/fdc3-context/s2tQuicktypeUtil.js b/packages/fdc3-context/s2tQuicktypeUtil.cjs similarity index 100% rename from packages/fdc3-context/s2tQuicktypeUtil.js rename to packages/fdc3-context/s2tQuicktypeUtil.cjs diff --git a/packages/fdc3-get-agent/package.json b/packages/fdc3-get-agent/package.json index 1c28d92f0..30f57d18b 100644 --- a/packages/fdc3-get-agent/package.json +++ b/packages/fdc3-get-agent/package.json @@ -7,19 +7,16 @@ "type": "git", "url": "git+https://github.com/finos/FDC3.git" }, - "publishConfig": { - "tag": "latest" - }, + "publishConfig": {"tag": "latest"}, "license": "Apache-2.0", "main": "dist/src/index.js", "types": "dist/src/index.d.ts", - "files": [ - "dist" - ], + "files": ["dist"], "scripts": { - "build": "tsc --module es2022", - "test": "tsc && nyc --reporter=lcov --reporter=text --reporter json cucumber-js", - "clean": "rimraf dist cucumber-report.html coverage .nyc_output node_modules test-results.xml", + "build": "tsc", + "test": "tsc && vitest run", + "test:watch": "vitest", + "clean": "rimraf dist cucumber-report.html coverage node_modules test-results.xml", "lint": "eslint src/" }, "dependencies": { @@ -32,22 +29,25 @@ }, "devDependencies": { "@cucumber/cucumber": "10.3.1", - "@cucumber/messages": "^28.1.0", "@eslint/js": "^9.19.0", "@finos/fdc3-web-impl": "2.2.2-beta.1", "@finos/testing": "2.2.2-beta.1", "@types/node": "^20.16.11", "@types/wtfnode": "^0.7.3", + "@vitest/coverage-v8": "^3.0.4", + "ajv": "^8.17.1", + "ajv-formats": "^3.0.1", "eslint": "^9.32.0", "eslint-config-prettier": "^9.1.0", - "expect": "^29.7.0", "globals": "^15.14.0", "jsonpath-plus": "^10.1.0", - "nyc": "17.1.0", + "quickpickle": "^1.6.1", "rimraf": "^6.0.1", "tsx": "^4.19.1", "typescript": "^5.6.3", "typescript-eslint": "^8.17.0", + "vitest": "^3.0.4", "wtfnode": "^0.9.3" - } + }, + "type": "module" } diff --git a/packages/fdc3-get-agent/tsconfig.json b/packages/fdc3-get-agent/tsconfig.json index 050a5a5e9..b5a455715 100644 --- a/packages/fdc3-get-agent/tsconfig.json +++ b/packages/fdc3-get-agent/tsconfig.json @@ -1,6 +1,8 @@ { "extends": "../../tsconfig.root.json", "compilerOptions": { + "module": "NodeNext", + "moduleResolution": "NodeNext", "rootDirs": [ "src", "test" diff --git a/packages/fdc3-schema/package.json b/packages/fdc3-schema/package.json index 5d81302d1..cd27b3ba0 100644 --- a/packages/fdc3-schema/package.json +++ b/packages/fdc3-schema/package.json @@ -1,6 +1,6 @@ { "name": "@finos/fdc3-schema", - "version": "2.2.2-beta.1", + "version": "2.2.0", "author": "Fintech Open Source Foundation (FINOS)", "homepage": "https://fdc3.finos.org", "repository": { @@ -19,13 +19,13 @@ "scripts": { "clean": "npx rimraf dist && npx rimraf generated", "mkdirs": "npx mkdirp generated/api && npx mkdirp generated/bridging", - "generate-type-predicates": "ts-node code-generation/generate-type-predicates.ts", + "generate-type-predicates": "tsx code-generation/generate-type-predicates.ts", "generate": "npm run mkdirs && npm run typegen-browser && npm run typegen-bridging && npm run generate-type-predicates && npm run lint", - "build": "npm run generate && tsc --module es2022", + "build": "npm run generate && tsc", "lint": "eslint generated/ --fix && npx prettier generated/ --write", "test": "npm run generate && tsc", - "typegen-browser": "cd schemas && node ../s2tQuicktypeUtil.js api/api.schema.json api/common.schema.json ../../fdc3-context/schemas/context/context.schema.json api ../generated/api/BrowserTypes.ts", - "typegen-bridging": "cd schemas && node ../s2tQuicktypeUtil.js api/api.schema.json api/common.schema.json api/broadcastRequest.schema.json api/findInstancesRequest.schema.json api/findInstancesResponse.schema.json api/findIntentRequest.schema.json api/findIntentResponse.schema.json api/findIntentsByContextRequest.schema.json api/findIntentsByContextResponse.schema.json api/getAppMetadataRequest.schema.json api/getAppMetadataResponse.schema.json api/openRequest.schema.json api/openResponse.schema.json api/raiseIntentRequest.schema.json api/raiseIntentResponse.schema.json api/raiseIntentResultResponse.schema.json ../../fdc3-context/schemas/context/context.schema.json bridging ../generated/bridging/BridgingTypes.ts" + "typegen-browser": "cd schemas && node ../s2tQuicktypeUtil.cjs api/api.schema.json api/common.schema.json ../../fdc3-context/schemas/context/context.schema.json api ../generated/api/BrowserTypes.ts", + "typegen-bridging": "cd schemas && node ../s2tQuicktypeUtil.cjs api/api.schema.json api/common.schema.json api/broadcastRequest.schema.json api/findInstancesRequest.schema.json api/findInstancesResponse.schema.json api/findIntentRequest.schema.json api/findIntentResponse.schema.json api/findIntentsByContextRequest.schema.json api/findIntentsByContextResponse.schema.json api/getAppMetadataRequest.schema.json api/getAppMetadataResponse.schema.json api/openRequest.schema.json api/openResponse.schema.json api/raiseIntentRequest.schema.json api/raiseIntentResponse.schema.json api/raiseIntentResultResponse.schema.json ../../fdc3-context/schemas/context/context.schema.json bridging ../generated/bridging/BridgingTypes.ts" }, "devDependencies": { "@eslint/eslintrc": "^3.2.0", @@ -46,5 +46,6 @@ "ts-morph": "^24.0.0", "tslib": "^2.7.0", "typescript": "^5.6.3" - } + }, + "type": "module" } diff --git a/packages/fdc3-schema/s2tQuicktypeUtil.js b/packages/fdc3-schema/s2tQuicktypeUtil.cjs similarity index 100% rename from packages/fdc3-schema/s2tQuicktypeUtil.js rename to packages/fdc3-schema/s2tQuicktypeUtil.cjs diff --git a/packages/fdc3-standard/package.json b/packages/fdc3-standard/package.json index 39dcd437e..767cba370 100644 --- a/packages/fdc3-standard/package.json +++ b/packages/fdc3-standard/package.json @@ -1,6 +1,6 @@ { "name": "@finos/fdc3-standard", - "version": "2.2.2-beta.1", + "version": "2.2.0", "author": "Fintech Open Source Foundation (FINOS)", "homepage": "https://fdc3.finos.org", "repository": { @@ -18,7 +18,7 @@ ], "scripts": { "clean": "rimraf dist", - "build": "tsc --module es2022", + "build": "tsc", "test": "tsc && jest", "lint": "eslint src/ --fix" }, @@ -34,8 +34,8 @@ "outputName": "test-results.xml" }, "dependencies": { - "@finos/fdc3-context": "2.2.2-beta.1", - "@finos/fdc3-schema": "2.2.2-beta.1" + "@finos/fdc3-context": "2.2.0", + "@finos/fdc3-schema": "2.2.0" }, "devDependencies": { "@eslint/eslintrc": "^3.2.0", @@ -58,5 +58,6 @@ "ts-jest": "29.2.5", "tslib": "^2.7.0", "typescript": "^5.6.3" - } + }, + "type": "module" } diff --git a/packages/fdc3/package.json b/packages/fdc3/package.json index 987f1301c..81b9b6ab7 100644 --- a/packages/fdc3/package.json +++ b/packages/fdc3/package.json @@ -1,6 +1,6 @@ { "name": "@finos/fdc3", - "version": "2.2.2-beta.1", + "version": "2.2.0", "author": "Fintech Open Source Foundation (FINOS)", "homepage": "https://fdc3.finos.org", "repository": { @@ -18,12 +18,13 @@ ], "scripts": { "clean": "npx rimraf dist", - "build": "tsc --module es2022" + "build": "tsc" }, "dependencies": { - "@finos/fdc3-context": "2.2.2-beta.1", - "@finos/fdc3-get-agent": "2.2.2-beta.1", - "@finos/fdc3-schema": "2.2.2-beta.1", - "@finos/fdc3-standard": "2.2.2-beta.1" - } + "@finos/fdc3-context": "2.2.0", + "@finos/fdc3-get-agent": "2.2.0", + "@finos/fdc3-schema": "2.2.0", + "@finos/fdc3-standard": "2.2.0" + }, + "type": "module" } diff --git a/packages/testing/package.json b/packages/testing/package.json index 2d10c0869..348e283f0 100644 --- a/packages/testing/package.json +++ b/packages/testing/package.json @@ -1,6 +1,6 @@ { "name": "@finos/testing", - "version": "2.2.2-beta.1", + "version": "2.2.0", "author": "Fintech Open Source Foundation (FINOS)", "homepage": "https://fdc3.finos.org", "repository": { @@ -18,7 +18,7 @@ "main": "dist/src/index.js", "types": "dist/src/index.d.ts", "scripts": { - "build": "tsc --module es2022", + "build": "tsc", "clean": "rimraf dist", "test": "tsc" }, @@ -26,7 +26,7 @@ "@cucumber/cucumber": "10.3.1", "@cucumber/html-formatter": "11.0.4", "@cucumber/pretty-formatter": "1.0.1", - "@finos/fdc3-standard": "2.2.2-beta.1", + "@finos/fdc3-standard": "2.2.0", "@types/expect": "24.3.0", "@types/lodash": "4.14.167", "@types/node": "^20.16.11", diff --git a/toolbox/fdc3-conformance/package.json b/toolbox/fdc3-conformance/package.json index 1134722fa..c3ab9eefc 100644 --- a/toolbox/fdc3-conformance/package.json +++ b/toolbox/fdc3-conformance/package.json @@ -1,6 +1,6 @@ { "name": "fdc3-conformance", - "version": "2.2.2-beta.1", + "version": "2.2.0", "homepage": "https://fdc3.finos.org", "repository": { "type": "git", @@ -16,7 +16,7 @@ "clean": "rimraf dist" }, "dependencies": { - "@finos/fdc3": "2.2.2-beta.1", + "@finos/fdc3": "2.2.0", "buffer": "^6.0.3", "chai": "^4.3.6", "mocha": "^10.0.0", diff --git a/toolbox/fdc3-conformance/tsconfig.json b/toolbox/fdc3-conformance/tsconfig.json index 2526357ab..35a94656c 100644 --- a/toolbox/fdc3-conformance/tsconfig.json +++ b/toolbox/fdc3-conformance/tsconfig.json @@ -2,6 +2,8 @@ "extends": "../../tsconfig.root.json", "compilerOptions": { "rootDir": "src", + "moduleResolution": "node", + "module": "ESNext", "outDir": "dist", }, "include": [ diff --git a/toolbox/fdc3-for-web/demo/package.json b/toolbox/fdc3-for-web/demo/package.json index b6a057eb9..ee3229a79 100644 --- a/toolbox/fdc3-for-web/demo/package.json +++ b/toolbox/fdc3-for-web/demo/package.json @@ -32,5 +32,6 @@ "typescript": "^5.6.3", "uuid": "^9.0.1", "vite-express": "^0.15.0" - } + }, + "type": "module" } diff --git a/toolbox/fdc3-for-web/fdc3-web-impl/package.json b/toolbox/fdc3-for-web/fdc3-web-impl/package.json index b31753a5a..3c7fe7874 100644 --- a/toolbox/fdc3-for-web/fdc3-web-impl/package.json +++ b/toolbox/fdc3-for-web/fdc3-web-impl/package.json @@ -1,6 +1,6 @@ { "name": "@finos/fdc3-web-impl", - "version": "2.2.2-beta.1", + "version": "2.2.0", "author": "Fintech Open Source Foundation (FINOS)", "homepage": "https://fdc3.finos.org", "repository": { @@ -20,11 +20,11 @@ "clean": "rimraf dist cucumber-report.html coverage .nyc_output node_modules test-results.xml generated", "directory-openapi": "npx openapi-typescript ../../../packages/fdc3-standard/src/app-directory/specification/appd.schema.json --output generated/directory-schema.ts", "test": "npm run directory-openapi && tsc && nyc --reporter=lcov --reporter=text --reporter json cucumber-js", - "build": "npm run directory-openapi && tsc --module es2022", + "build": "npm run directory-openapi && tsc", "lint": "eslint src/" }, "dependencies": { - "@finos/fdc3-standard": "2.2.2-beta.1", + "@finos/fdc3-standard": "2.2.0", "@types/uuid": "^10.0.0", "uuid": "^9.0.1" }, @@ -34,7 +34,7 @@ "@cucumber/messages": "^28.1.0", "@cucumber/pretty-formatter": "1.0.1", "@eslint/js": "^9.19.0", - "@finos/testing": "2.2.2-beta.1", + "@finos/testing": "2.2.0", "@types/expect": "24.3.0", "@types/lodash": "4.14.167", "@types/node": "^20.16.11", diff --git a/tsconfig.root.json b/tsconfig.root.json index 07d7c1ec9..072bab668 100644 --- a/tsconfig.root.json +++ b/tsconfig.root.json @@ -2,8 +2,8 @@ "compilerOptions": { /* Basic Options */ "esModuleInterop": true, - "module": "CommonJS", - "moduleResolution": "node", + "module": "NodeNext", + "moduleResolution": "NodeNext", "allowSyntheticDefaultImports": true, "resolveJsonModule": true, "forceConsistentCasingInFileNames": true, From e9e9d43c9ddf608775d3f9fdf65dd0b5bd0ab1cc Mon Sep 17 00:00:00 2001 From: Giles Roadnight <10414642+Roaders@users.noreply.github.com> Date: Thu, 25 Sep 2025 17:38:49 +0100 Subject: [PATCH 02/10] update import file extensions --- .../fdc3-agent-proxy/src/DesktopAgentProxy.ts | 10 +- packages/fdc3-agent-proxy/src/Messaging.ts | 4 +- .../src/apps/DefaultAppSupport.ts | 10 +- .../src/channels/DefaultChannel.ts | 10 +- .../src/channels/DefaultChannelSupport.ts | 20 +- .../src/channels/DefaultPrivateChannel.ts | 12 +- .../src/heartbeat/DefaultHeartbeatSupport.ts | 6 +- packages/fdc3-agent-proxy/src/index.ts | 26 +-- .../src/intents/DefaultIntentResolution.ts | 2 +- .../src/intents/DefaultIntentSupport.ts | 16 +- .../src/listeners/AbstractListener.ts | 8 +- .../src/listeners/DefaultContextListener.ts | 8 +- .../src/listeners/DefaultIntentListener.ts | 6 +- .../src/listeners/EventListener.ts | 6 +- .../src/listeners/HeartbeatListener.ts | 8 +- .../listeners/PrivateChannelEventListener.ts | 6 +- .../src/listeners/RegisterableListener.ts | 2 +- .../listeners/UserChannelContextListener.ts | 2 +- .../src/messaging/AbstractMessaging.ts | 8 +- packages/fdc3-agent-proxy/src/util/Logger.ts | 2 +- .../src/util/throwIfUndefined.ts | 4 +- .../step-definitions/channelSelector.steps.ts | 8 +- .../test/step-definitions/channels.steps.ts | 4 +- .../test/step-definitions/generic.steps.ts | 8 +- .../test/step-definitions/intents.steps.ts | 4 +- .../test/step-definitions/util.steps.ts | 8 +- .../test/support/TestMessaging.ts | 40 ++-- .../test/support/responses/ChannelState.ts | 6 +- .../support/responses/CreatePrivateChannel.ts | 6 +- .../responses/DisconnectPrivateChannel.ts | 6 +- .../test/support/responses/FindInstances.ts | 6 +- .../test/support/responses/FindIntent.ts | 6 +- .../support/responses/FindIntentByContext.ts | 6 +- .../test/support/responses/GetAppMetadata.ts | 6 +- .../test/support/responses/GetInfo.ts | 6 +- .../support/responses/GetOrCreateChannel.ts | 6 +- .../test/support/responses/GetUserChannels.ts | 6 +- .../test/support/responses/IntentResult.ts | 4 +- .../test/support/responses/Open.ts | 6 +- .../test/support/responses/RaiseIntent.ts | 6 +- .../responses/RaiseIntentForContext.ts | 6 +- .../support/responses/RegisterListeners.ts | 6 +- .../support/responses/UnsubscribeListeners.ts | 8 +- .../test/support/responses/support.ts | 2 +- packages/fdc3-agent-proxy/test/world/index.ts | 2 +- packages/fdc3-context/src/index.ts | 2 +- packages/fdc3-get-agent/src/index.ts | 12 +- .../src/messaging/MessagePortMessaging.ts | 2 +- .../src/messaging/message-port.ts | 12 +- .../src/sessionStorage/DesktopAgentDetails.ts | 4 +- .../strategies/DesktopAgentPreloadLoader.ts | 6 +- .../src/strategies/FailoverHandler.ts | 12 +- .../src/strategies/HelloHandler.ts | 6 +- .../strategies/IdentityValidationHandler.ts | 4 +- .../src/strategies/PostMessageLoader.ts | 12 +- .../fdc3-get-agent/src/strategies/getAgent.ts | 14 +- .../src/ui/AbstractUIComponent.ts | 2 +- .../ui/DefaultDesktopAgentChannelSelector.ts | 4 +- .../ui/DefaultDesktopAgentIntentResolver.ts | 4 +- .../channel-selector.steps.ts | 14 +- .../desktop-agent-api.steps.ts | 2 +- .../step-definitions/desktop-agent.steps.ts | 18 +- .../step-definitions/intent-resolver.steps.ts | 10 +- .../step-definitions/port-creation.steps.ts | 6 +- .../test/step-definitions/util.steps.ts | 6 +- .../fdc3-get-agent/test/support/FrameTypes.ts | 10 +- .../test/support/MockDocument.ts | 6 +- .../test/support/MockElement.ts | 4 +- .../test/support/MockFDC3Server.ts | 20 +- .../fdc3-get-agent/test/support/MockIFrame.ts | 8 +- .../fdc3-get-agent/test/support/MockWindow.ts | 8 +- .../test/support/TestServerContext.ts | 2 +- .../support/responses/AutomaticResponses.ts | 2 +- .../test/support/responses/Broadcast.ts | 8 +- .../test/support/responses/CurrentChannel.ts | 6 +- .../test/support/responses/FindIntent.ts | 6 +- .../test/support/responses/GetInfo.ts | 6 +- .../test/support/responses/Handshake.ts | 6 +- .../test/support/responses/RaiseIntent.ts | 8 +- .../test/support/responses/UserChannels.ts | 6 +- packages/fdc3-get-agent/test/world/index.ts | 4 +- packages/fdc3-schema/README.md | 2 +- .../generate-type-predicates.ts | 5 +- packages/fdc3-schema/src/index.ts | 4 +- packages/fdc3-standard/src/api/AppIntent.ts | 4 +- packages/fdc3-standard/src/api/AppMetadata.ts | 6 +- packages/fdc3-standard/src/api/Channel.ts | 8 +- .../fdc3-standard/src/api/ContextMetadata.ts | 2 +- .../fdc3-standard/src/api/DesktopAgent.ts | 24 +-- packages/fdc3-standard/src/api/GetAgent.ts | 2 +- .../src/api/ImplementationMetadata.ts | 2 +- .../fdc3-standard/src/api/IntentMetadata.ts | 2 +- .../fdc3-standard/src/api/IntentResolution.ts | 6 +- packages/fdc3-standard/src/api/Methods.ts | 6 +- .../fdc3-standard/src/api/PrivateChannel.ts | 6 +- .../src/api/RecommendedChannels.ts | 2 +- packages/fdc3-standard/src/api/Types.ts | 4 +- packages/fdc3-standard/src/index.ts | 54 ++--- .../src/internal/contextConfiguration.ts | 4 +- .../src/internal/intentConfiguration.ts | 4 +- .../fdc3-standard/src/ui/ChannelSelector.ts | 4 +- .../fdc3-standard/src/ui/IntentResolver.ts | 6 +- packages/fdc3-standard/test/Methods.test.ts | 2 +- packages/testing/src/agent/index.ts | 12 +- packages/testing/src/index.ts | 8 +- packages/testing/src/steps/generic.steps.ts | 4 +- packages/testing/src/support/matching.ts | 2 +- .../fdc3-for-web/demo/src/client/apps/app3.ts | 4 +- .../demo/src/client/da/DemoServerContext.ts | 2 +- .../demo/src/client/da/dummy-desktop-agent.ts | 12 +- .../fdc3-for-web/demo/src/client/da/embed.ts | 6 +- .../fdc3-for-web/demo/src/client/da/util.ts | 2 +- .../demo/src/client/ui/channel-selector.ts | 6 +- .../fdc3-for-web/demo/src/client/ui/drag.ts | 2 +- .../demo/src/client/ui/intent-resolver.ts | 2 +- toolbox/fdc3-for-web/demo/src/server/main.ts | 2 +- .../fdc3-web-impl/src/BasicFDC3Server.ts | 16 +- .../fdc3-web-impl/src/FDC3Server.ts | 2 +- .../fdc3-web-impl/src/ServerContext.ts | 2 +- .../src/directory/BasicDirectory.ts | 2 +- .../src/directory/DirectoryInterface.ts | 2 +- .../src/handlers/BroadcastHandler.ts | 8 +- .../src/handlers/HeartbeatHandler.ts | 8 +- .../src/handlers/IntentHandler.ts | 10 +- .../fdc3-web-impl/src/handlers/OpenHandler.ts | 10 +- .../fdc3-web-impl/src/handlers/support.ts | 4 +- .../fdc3-for-web/fdc3-web-impl/src/index.ts | 16 +- .../step-definitions/app-channel.steps.ts | 4 +- .../test/step-definitions/broadcast.steps.ts | 6 +- .../test/step-definitions/generic.steps.ts | 10 +- .../test/step-definitions/heartbeat.steps.ts | 8 +- .../test/step-definitions/intents.steps.ts | 6 +- .../test/step-definitions/messaging.steps.ts | 2 +- .../step-definitions/private-channel.steps.ts | 4 +- .../test/step-definitions/start-app.steps.ts | 8 +- .../step-definitions/user-channel.steps.ts | 4 +- .../test/support/TestServerContext.ts | 12 +- .../fdc3-web-impl/test/world/index.ts | 6 +- .../reference-ui/src/channel_selector.ts | 4 +- .../reference-ui/src/intent_resolver.ts | 2 +- toolbox/fdc3-workbench/src/App.tsx | 20 +- .../src/components/AppChannels.tsx | 6 +- .../src/components/ChannelField.tsx | 18 +- .../src/components/Channels.tsx | 16 +- .../src/components/ContextCreate.tsx | 14 +- .../src/components/ContextLinking.tsx | 10 +- .../src/components/ContextTemplates.tsx | 4 +- .../fdc3-workbench/src/components/Header.tsx | 2 +- .../src/components/IntentResolutionField.tsx | 6 +- .../fdc3-workbench/src/components/Intents.tsx | 16 +- .../Workbench/AppChannelListeners.tsx | 116 +++++------ .../components/Workbench/ContextListeners.tsx | 118 +++++------ .../components/Workbench/CurrentContext.tsx | 82 ++++---- .../components/Workbench/IntentListeners.tsx | 124 +++++------ .../Workbench/PrivateChannelListeners.tsx | 116 +++++------ .../src/components/Workbench/SystemLog.tsx | 38 ++-- .../components/Workbench/SystemLogItem.tsx | 134 ++++++------ .../src/components/Workbench/Workbench.tsx | 194 +++++++++--------- .../src/components/common/AccordionList.tsx | 122 +++++------ .../src/components/common/CopyToClipboard.tsx | 22 +- .../fdc3-workbench/src/fixtures/contexts.ts | 2 +- .../src/fixtures/logMessages.ts | 2 +- toolbox/fdc3-workbench/src/index.tsx | 2 +- .../src/store/AppChannelStore.tsx | 4 +- .../fdc3-workbench/src/store/ChannelStore.ts | 4 +- .../fdc3-workbench/src/store/ContextStore.ts | 6 +- .../fdc3-workbench/src/store/IntentStore.ts | 10 +- .../src/store/PrivateChannelStore.tsx | 6 +- .../src/store/SystemLogStore.ts | 4 +- 169 files changed, 1105 insertions(+), 1102 deletions(-) diff --git a/packages/fdc3-agent-proxy/src/DesktopAgentProxy.ts b/packages/fdc3-agent-proxy/src/DesktopAgentProxy.ts index 78e618367..d2669e7a6 100644 --- a/packages/fdc3-agent-proxy/src/DesktopAgentProxy.ts +++ b/packages/fdc3-agent-proxy/src/DesktopAgentProxy.ts @@ -11,13 +11,13 @@ import { Listener, LogLevel, } from '@finos/fdc3-standard'; -import { ChannelSupport } from './channels/ChannelSupport'; -import { AppSupport } from './apps/AppSupport'; -import { IntentSupport } from './intents/IntentSupport'; +import { ChannelSupport } from './channels/ChannelSupport.js'; +import { AppSupport } from './apps/AppSupport.js'; +import { IntentSupport } from './intents/IntentSupport.js'; import { Connectable, Channel } from '@finos/fdc3-standard'; import { Context } from '@finos/fdc3-context'; -import { HeartbeatSupport } from './heartbeat/HeartbeatSupport'; -import { Logger } from './util/Logger'; +import { HeartbeatSupport } from './heartbeat/HeartbeatSupport.js'; +import { Logger } from './util/Logger.js'; /** * This splits out the functionality of the desktop agent into diff --git a/packages/fdc3-agent-proxy/src/Messaging.ts b/packages/fdc3-agent-proxy/src/Messaging.ts index dcf79e18b..8d8b937ba 100644 --- a/packages/fdc3-agent-proxy/src/Messaging.ts +++ b/packages/fdc3-agent-proxy/src/Messaging.ts @@ -1,10 +1,10 @@ import { AppIdentifier } from '@finos/fdc3-standard'; -import { RegisterableListener } from './listeners/RegisterableListener'; +import { RegisterableListener } from './listeners/RegisterableListener.js'; import { AppRequestMessage, AgentResponseMessage, WebConnectionProtocol6Goodbye, -} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; +} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; export interface Messaging { /** diff --git a/packages/fdc3-agent-proxy/src/apps/DefaultAppSupport.ts b/packages/fdc3-agent-proxy/src/apps/DefaultAppSupport.ts index fcce781cb..b1851caa9 100644 --- a/packages/fdc3-agent-proxy/src/apps/DefaultAppSupport.ts +++ b/packages/fdc3-agent-proxy/src/apps/DefaultAppSupport.ts @@ -1,7 +1,7 @@ import { AppIdentifier, AppMetadata, ImplementationMetadata, OpenError, ResolveError } from '@finos/fdc3-standard'; import { Context } from '@finos/fdc3-context'; -import { AppSupport } from './AppSupport'; -import { Messaging } from '../Messaging'; +import { AppSupport } from './AppSupport.js'; +import { Messaging } from '../Messaging.js'; import { FindInstancesRequest, FindInstancesResponse, @@ -11,9 +11,9 @@ import { GetInfoResponse, OpenRequest, OpenResponse, -} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; -import { throwIfUndefined } from '../util/throwIfUndefined'; -import { Logger } from '../util/Logger'; +} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; +import { throwIfUndefined } from '../util/throwIfUndefined.js'; +import { Logger } from '../util/Logger.js'; export class DefaultAppSupport implements AppSupport { readonly messaging: Messaging; diff --git a/packages/fdc3-agent-proxy/src/channels/DefaultChannel.ts b/packages/fdc3-agent-proxy/src/channels/DefaultChannel.ts index 7838c40f2..ce5cc1028 100644 --- a/packages/fdc3-agent-proxy/src/channels/DefaultChannel.ts +++ b/packages/fdc3-agent-proxy/src/channels/DefaultChannel.ts @@ -1,7 +1,7 @@ import { ContextHandler, DisplayMetadata, Listener, Channel, EventHandler } from '@finos/fdc3-standard'; import { Context } from '@finos/fdc3-context'; -import { Messaging } from '../Messaging'; -import { DefaultContextListener } from '../listeners/DefaultContextListener'; +import { Messaging } from '../Messaging.js'; +import { DefaultContextListener } from '../listeners/DefaultContextListener.js'; import { BroadcastRequest, BroadcastResponse, @@ -9,9 +9,9 @@ import { ClearContextResponse, GetCurrentContextRequest, GetCurrentContextResponse, -} from '@finos/fdc3-schema/generated/api/BrowserTypes'; -import { RegisterableListener } from '../listeners/RegisterableListener'; -import { EventListener } from '../listeners/EventListener'; +} from '@finos/fdc3-schema/generated/api/BrowserTypes.js'; +import { RegisterableListener } from '../listeners/RegisterableListener.js'; +import { EventListener } from '../listeners/EventListener.js'; export class DefaultChannel implements Channel { protected readonly messaging: Messaging; diff --git a/packages/fdc3-agent-proxy/src/channels/DefaultChannelSupport.ts b/packages/fdc3-agent-proxy/src/channels/DefaultChannelSupport.ts index 5f5eba02a..b370d6f06 100644 --- a/packages/fdc3-agent-proxy/src/channels/DefaultChannelSupport.ts +++ b/packages/fdc3-agent-proxy/src/channels/DefaultChannelSupport.ts @@ -10,11 +10,13 @@ import { FDC3ChannelChangedEvent, FDC3EventTypes, } from '@finos/fdc3-standard'; -import { Messaging } from '../Messaging'; -import { ChannelSupport } from './ChannelSupport'; -import { DefaultPrivateChannel } from './DefaultPrivateChannel'; -import { DefaultChannel } from './DefaultChannel'; -import { DefaultContextListener } from '../listeners/DefaultContextListener'; +import { Messaging } from '../Messaging.js'; +import { ChannelSupport } from './ChannelSupport.js'; +import { DefaultPrivateChannel } from './DefaultPrivateChannel.js'; +import { DefaultChannel } from './DefaultChannel.js'; +import { DefaultContextListener } from '../listeners/DefaultContextListener.js'; +import { UserChannelContextListener } from '../listeners/UserChannelContextListener.js'; +import { DesktopAgentEventListener } from '../listeners/DesktopAgentEventListener.js'; import { GetCurrentChannelResponse, GetCurrentChannelRequest, @@ -29,11 +31,9 @@ import { JoinUserChannelResponse, JoinUserChannelRequest, BroadcastEvent, -} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; -import { throwIfUndefined } from '../util/throwIfUndefined'; -import { Logger } from '../util/Logger'; -import { DesktopAgentEventListener } from '../listeners/DesktopAgentEventListener'; -import { UserChannelContextListener } from '../listeners/UserChannelContextListener'; +} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; +import { throwIfUndefined } from '../util/throwIfUndefined.js'; +import { Logger } from '../util/Logger.js'; export class DefaultChannelSupport implements ChannelSupport { readonly messaging: Messaging; diff --git a/packages/fdc3-agent-proxy/src/channels/DefaultPrivateChannel.ts b/packages/fdc3-agent-proxy/src/channels/DefaultPrivateChannel.ts index b78f26267..cb917693d 100644 --- a/packages/fdc3-agent-proxy/src/channels/DefaultPrivateChannel.ts +++ b/packages/fdc3-agent-proxy/src/channels/DefaultPrivateChannel.ts @@ -6,20 +6,20 @@ import { PrivateChannel, PrivateChannelEventTypes, } from '@finos/fdc3-standard'; -import { DefaultChannel } from './DefaultChannel'; -import { Messaging } from '../Messaging'; +import { DefaultChannel } from './DefaultChannel.js'; +import { Messaging } from '../Messaging.js'; import { PrivateChannelNullEventListener, PrivateChannelAddContextEventListener, PrivateChannelDisconnectEventListener, PrivateChannelUnsubscribeEventListener, -} from '../listeners/PrivateChannelEventListener'; -import { DefaultContextListener } from '../listeners/DefaultContextListener'; -import { RegisterableListener } from '../listeners/RegisterableListener'; +} from '../listeners/PrivateChannelEventListener.js'; +import { DefaultContextListener } from '../listeners/DefaultContextListener.js'; +import { RegisterableListener } from '../listeners/RegisterableListener.js'; import { PrivateChannelDisconnectRequest, PrivateChannelDisconnectResponse, -} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; +} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; export class DefaultPrivateChannel extends DefaultChannel implements PrivateChannel { constructor(messaging: Messaging, messageExchangeTimeout: number, id: string) { diff --git a/packages/fdc3-agent-proxy/src/heartbeat/DefaultHeartbeatSupport.ts b/packages/fdc3-agent-proxy/src/heartbeat/DefaultHeartbeatSupport.ts index 17e76e040..ef9cb66de 100644 --- a/packages/fdc3-agent-proxy/src/heartbeat/DefaultHeartbeatSupport.ts +++ b/packages/fdc3-agent-proxy/src/heartbeat/DefaultHeartbeatSupport.ts @@ -1,6 +1,6 @@ -import { HeartbeatListener } from '../listeners/HeartbeatListener'; -import { Messaging } from '../Messaging'; -import { HeartbeatSupport } from './HeartbeatSupport'; +import { HeartbeatListener } from '../listeners/HeartbeatListener.js'; +import { Messaging } from '../Messaging.js'; +import { HeartbeatSupport } from './HeartbeatSupport.js'; /** * Handles disconnection and heartbeats for the proxy. diff --git a/packages/fdc3-agent-proxy/src/index.ts b/packages/fdc3-agent-proxy/src/index.ts index df1207355..1338f6ab5 100644 --- a/packages/fdc3-agent-proxy/src/index.ts +++ b/packages/fdc3-agent-proxy/src/index.ts @@ -1,17 +1,17 @@ -import { DesktopAgentProxy } from './DesktopAgentProxy'; -import { Messaging } from './Messaging'; -import { AbstractMessaging } from './messaging/AbstractMessaging'; -import { DefaultChannel } from './channels/DefaultChannel'; -import { ChannelSupport } from './channels/ChannelSupport'; -import { DefaultIntentSupport } from './intents/DefaultIntentSupport'; -import { DefaultChannelSupport } from './channels/DefaultChannelSupport'; -import { IntentSupport } from './intents/IntentSupport'; -import { RegisterableListener } from './listeners/RegisterableListener'; -import { DefaultAppSupport } from './apps/DefaultAppSupport'; -import { AppSupport } from './apps/AppSupport'; -import { DefaultHeartbeatSupport } from './heartbeat/DefaultHeartbeatSupport'; +import { DesktopAgentProxy } from './DesktopAgentProxy.js'; +import { Messaging } from './Messaging.js'; +import { AbstractMessaging } from './messaging/AbstractMessaging.js'; +import { DefaultChannel } from './channels/DefaultChannel.js'; +import { ChannelSupport } from './channels/ChannelSupport.js'; +import { DefaultIntentSupport } from './intents/DefaultIntentSupport.js'; +import { DefaultChannelSupport } from './channels/DefaultChannelSupport.js'; +import { IntentSupport } from './intents/IntentSupport.js'; +import { RegisterableListener } from './listeners/RegisterableListener.js'; +import { DefaultAppSupport } from './apps/DefaultAppSupport.js'; +import { AppSupport } from './apps/AppSupport.js'; +import { DefaultHeartbeatSupport } from './heartbeat/DefaultHeartbeatSupport.js'; import { Connectable } from '@finos/fdc3-standard'; -import { AbstractFDC3Logger } from './util/AbstractFDC3Logger'; +import { AbstractFDC3Logger } from './util/AbstractFDC3Logger.js'; export { type Messaging, diff --git a/packages/fdc3-agent-proxy/src/intents/DefaultIntentResolution.ts b/packages/fdc3-agent-proxy/src/intents/DefaultIntentResolution.ts index 5d2fda4fa..07af778e5 100644 --- a/packages/fdc3-agent-proxy/src/intents/DefaultIntentResolution.ts +++ b/packages/fdc3-agent-proxy/src/intents/DefaultIntentResolution.ts @@ -1,5 +1,5 @@ import { AppIdentifier, IntentResolution, IntentResult } from '@finos/fdc3-standard'; -import { Messaging } from '../Messaging'; +import { Messaging } from '../Messaging.js'; export class DefaultIntentResolution implements IntentResolution { readonly messaging: Messaging; diff --git a/packages/fdc3-agent-proxy/src/intents/DefaultIntentSupport.ts b/packages/fdc3-agent-proxy/src/intents/DefaultIntentSupport.ts index 71111b8f4..cba424278 100644 --- a/packages/fdc3-agent-proxy/src/intents/DefaultIntentSupport.ts +++ b/packages/fdc3-agent-proxy/src/intents/DefaultIntentSupport.ts @@ -9,12 +9,12 @@ import { IntentResolver, IntentResolutionChoice, } from '@finos/fdc3-standard'; -import { IntentSupport } from './IntentSupport'; -import { Messaging } from '../Messaging'; -import { DefaultIntentResolution } from './DefaultIntentResolution'; -import { DefaultIntentListener } from '../listeners/DefaultIntentListener'; -import { DefaultChannel } from '../channels/DefaultChannel'; -import { DefaultPrivateChannel } from '../channels/DefaultPrivateChannel'; +import { IntentSupport } from './IntentSupport.js'; +import { Messaging } from '../Messaging.js'; +import { DefaultIntentResolution } from './DefaultIntentResolution.js'; +import { DefaultIntentListener } from '../listeners/DefaultIntentListener.js'; +import { DefaultChannel } from '../channels/DefaultChannel.js'; +import { DefaultPrivateChannel } from '../channels/DefaultPrivateChannel.js'; import { Context } from '@finos/fdc3-context'; import { FindIntentRequest, @@ -26,8 +26,8 @@ import { RaiseIntentRequest, RaiseIntentResponse, RaiseIntentResultResponse, -} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; -import { throwIfUndefined } from '../util/throwIfUndefined'; +} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; +import { throwIfUndefined } from '../util/throwIfUndefined.js'; const convertIntentResult = async ( { payload }: RaiseIntentResultResponse, diff --git a/packages/fdc3-agent-proxy/src/listeners/AbstractListener.ts b/packages/fdc3-agent-proxy/src/listeners/AbstractListener.ts index 44e69a265..bea06b798 100644 --- a/packages/fdc3-agent-proxy/src/listeners/AbstractListener.ts +++ b/packages/fdc3-agent-proxy/src/listeners/AbstractListener.ts @@ -16,10 +16,10 @@ import { IntentListenerUnsubscribeResponse, EventListenerUnsubscribeResponse, PrivateChannelUnsubscribeEventListenerResponse, -} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; -import { Messaging } from '../Messaging'; -import { RegisterableListener } from './RegisterableListener'; -import { throwIfUndefined } from '../util/throwIfUndefined'; +} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; +import { Messaging } from '../Messaging.js'; +import { RegisterableListener } from './RegisterableListener.js'; +import { throwIfUndefined } from '../util/throwIfUndefined.js'; import { ChannelError } from '@finos/fdc3-standard'; type SubscriptionRequest = diff --git a/packages/fdc3-agent-proxy/src/listeners/DefaultContextListener.ts b/packages/fdc3-agent-proxy/src/listeners/DefaultContextListener.ts index b54efe365..851fdddc2 100644 --- a/packages/fdc3-agent-proxy/src/listeners/DefaultContextListener.ts +++ b/packages/fdc3-agent-proxy/src/listeners/DefaultContextListener.ts @@ -1,8 +1,8 @@ import { ContextHandler } from '@finos/fdc3-standard'; -import { Messaging } from '../Messaging'; -import { AbstractListener } from './AbstractListener'; -import { AddContextListenerRequest, BroadcastEvent } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; -import { RegisterableListener } from './RegisterableListener'; +import { Messaging } from '../Messaging.js'; +import { AbstractListener } from './AbstractListener.js'; +import { AddContextListenerRequest, BroadcastEvent } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; +import { RegisterableListener } from './RegisterableListener.js'; export class DefaultContextListener extends AbstractListener diff --git a/packages/fdc3-agent-proxy/src/listeners/DefaultIntentListener.ts b/packages/fdc3-agent-proxy/src/listeners/DefaultIntentListener.ts index 0e71bc2ed..a3f525a04 100644 --- a/packages/fdc3-agent-proxy/src/listeners/DefaultIntentListener.ts +++ b/packages/fdc3-agent-proxy/src/listeners/DefaultIntentListener.ts @@ -1,14 +1,14 @@ import { IntentHandler, IntentResult, AppIdentifier } from '@finos/fdc3-standard'; import { Context } from '@finos/fdc3-context'; -import { Messaging } from '../Messaging'; -import { AbstractListener } from './AbstractListener'; +import { Messaging } from '../Messaging.js'; +import { AbstractListener } from './AbstractListener.js'; import { AddIntentListenerRequest, IntentEvent, IntentResultRequest, IntentResultResponse, //RaiseIntentResponse, -} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; +} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; export class DefaultIntentListener extends AbstractListener { readonly intent: string; diff --git a/packages/fdc3-agent-proxy/src/listeners/EventListener.ts b/packages/fdc3-agent-proxy/src/listeners/EventListener.ts index 99789cdaa..4e79f70a9 100644 --- a/packages/fdc3-agent-proxy/src/listeners/EventListener.ts +++ b/packages/fdc3-agent-proxy/src/listeners/EventListener.ts @@ -1,7 +1,7 @@ import { ApiEvent, EventHandler } from '@finos/fdc3-standard'; -import { Messaging } from '../Messaging'; -import { RegisterableListener } from './RegisterableListener'; -import { AgentEventMessage } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; +import { Messaging } from '../Messaging.js'; +import { RegisterableListener } from './RegisterableListener.js'; +import { AgentEventMessage } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; export class EventListener implements RegisterableListener { readonly id: string; diff --git a/packages/fdc3-agent-proxy/src/listeners/HeartbeatListener.ts b/packages/fdc3-agent-proxy/src/listeners/HeartbeatListener.ts index 90cbfb550..0c73e14fd 100644 --- a/packages/fdc3-agent-proxy/src/listeners/HeartbeatListener.ts +++ b/packages/fdc3-agent-proxy/src/listeners/HeartbeatListener.ts @@ -2,10 +2,10 @@ import { AgentEventMessage, HeartbeatAcknowledgementRequest, HeartbeatEvent, -} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; -import { Messaging } from '../Messaging'; -import { RegisterableListener } from './RegisterableListener'; -import { Logger } from '../util/Logger'; +} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; +import { Messaging } from '../Messaging.js'; +import { RegisterableListener } from './RegisterableListener.js'; +import { Logger } from '../util/Logger.js'; export class HeartbeatListener implements RegisterableListener { readonly id: string; diff --git a/packages/fdc3-agent-proxy/src/listeners/PrivateChannelEventListener.ts b/packages/fdc3-agent-proxy/src/listeners/PrivateChannelEventListener.ts index ea790ff5a..2d4ab68da 100644 --- a/packages/fdc3-agent-proxy/src/listeners/PrivateChannelEventListener.ts +++ b/packages/fdc3-agent-proxy/src/listeners/PrivateChannelEventListener.ts @@ -1,5 +1,5 @@ -import { Messaging } from '../Messaging'; -import { AbstractListener } from './AbstractListener'; +import { Messaging } from '../Messaging.js'; +import { AbstractListener } from './AbstractListener.js'; import { ApiEvent, EventHandler, @@ -10,7 +10,7 @@ import { PrivateChannelUnsubscribeEvent, } from '@finos/fdc3-standard'; import { BrowserTypes } from '@finos/fdc3-schema'; -import { Logger } from '../util/Logger'; +import { Logger } from '../util/Logger.js'; const { isPrivateChannelOnAddContextListenerEvent, isPrivateChannelOnDisconnectEvent, diff --git a/packages/fdc3-agent-proxy/src/listeners/RegisterableListener.ts b/packages/fdc3-agent-proxy/src/listeners/RegisterableListener.ts index 68ee3ba31..8bacc682e 100644 --- a/packages/fdc3-agent-proxy/src/listeners/RegisterableListener.ts +++ b/packages/fdc3-agent-proxy/src/listeners/RegisterableListener.ts @@ -1,4 +1,4 @@ -import { AgentEventMessage, AgentResponseMessage } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; +import { AgentEventMessage, AgentResponseMessage } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; import { Listener } from '@finos/fdc3-standard'; /** diff --git a/packages/fdc3-agent-proxy/src/listeners/UserChannelContextListener.ts b/packages/fdc3-agent-proxy/src/listeners/UserChannelContextListener.ts index bcf71d5c4..d2c02122c 100644 --- a/packages/fdc3-agent-proxy/src/listeners/UserChannelContextListener.ts +++ b/packages/fdc3-agent-proxy/src/listeners/UserChannelContextListener.ts @@ -1,5 +1,5 @@ import { Listener } from '@finos/fdc3-standard'; -import { RegisterableListener } from './RegisterableListener'; +import { RegisterableListener } from './RegisterableListener.js'; /** * This is a special version of a ContextListener created when the user calls the diff --git a/packages/fdc3-agent-proxy/src/messaging/AbstractMessaging.ts b/packages/fdc3-agent-proxy/src/messaging/AbstractMessaging.ts index 63e70b12f..a548b4ef0 100644 --- a/packages/fdc3-agent-proxy/src/messaging/AbstractMessaging.ts +++ b/packages/fdc3-agent-proxy/src/messaging/AbstractMessaging.ts @@ -1,12 +1,12 @@ import { AgentError, AppIdentifier } from '@finos/fdc3-standard'; -import { Messaging } from '../Messaging'; -import { RegisterableListener } from '../listeners/RegisterableListener'; +import { Messaging } from '../Messaging.js'; +import { RegisterableListener } from '../listeners/RegisterableListener.js'; import { AgentResponseMessage, AppRequestMessage, WebConnectionProtocol6Goodbye, -} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; -import { Logger } from '../util/Logger'; +} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; +import { Logger } from '../util/Logger.js'; export abstract class AbstractMessaging implements Messaging { private appIdentifier: AppIdentifier; diff --git a/packages/fdc3-agent-proxy/src/util/Logger.ts b/packages/fdc3-agent-proxy/src/util/Logger.ts index 774b3defc..e8d50d640 100644 --- a/packages/fdc3-agent-proxy/src/util/Logger.ts +++ b/packages/fdc3-agent-proxy/src/util/Logger.ts @@ -1,5 +1,5 @@ import { LogLevel } from '@finos/fdc3-standard'; -import { AbstractFDC3Logger } from './AbstractFDC3Logger'; +import { AbstractFDC3Logger } from './AbstractFDC3Logger.js'; /** * Logging utility used by the DesktopAgentProxy, which defaults to diff --git a/packages/fdc3-agent-proxy/src/util/throwIfUndefined.ts b/packages/fdc3-agent-proxy/src/util/throwIfUndefined.ts index 4bdd739a3..09447c3b7 100644 --- a/packages/fdc3-agent-proxy/src/util/throwIfUndefined.ts +++ b/packages/fdc3-agent-proxy/src/util/throwIfUndefined.ts @@ -1,6 +1,6 @@ -import { AgentEventMessage, AgentResponseMessage } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; +import { AgentEventMessage, AgentResponseMessage } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; import { ChannelError, OpenError, ResolveError } from '@finos/fdc3-standard'; -import { Logger } from './Logger'; +import { Logger } from './Logger.js'; export type ErrorMessages = ChannelError | OpenError | ResolveError; diff --git a/packages/fdc3-agent-proxy/test/step-definitions/channelSelector.steps.ts b/packages/fdc3-agent-proxy/test/step-definitions/channelSelector.steps.ts index d6f04cbff..e34c11dbd 100644 --- a/packages/fdc3-agent-proxy/test/step-definitions/channelSelector.steps.ts +++ b/packages/fdc3-agent-proxy/test/step-definitions/channelSelector.steps.ts @@ -1,6 +1,6 @@ import { Given, When } from '@cucumber/cucumber'; import { SimpleIntentResolver } from '@finos/testing'; -import { CustomWorld } from '../world/index'; +import { CustomWorld } from '../world/index.js'; import { CHANNEL_STATE } from '@finos/testing'; import { DefaultChannelSupport, @@ -8,9 +8,9 @@ import { DefaultIntentSupport, DefaultAppSupport, DesktopAgentProxy, -} from '../../src'; -import { TestChannelSelector } from '../support/TestChannelSelector'; -import { TestMessaging } from '../support/TestMessaging'; +} from '../../src/index.js'; +import { TestChannelSelector } from '../support/TestChannelSelector.js'; +import { TestMessaging } from '../support/TestMessaging.js'; import { LogLevel } from '@finos/fdc3-standard'; //Update this to enable debug output when debugging test failures diff --git a/packages/fdc3-agent-proxy/test/step-definitions/channels.steps.ts b/packages/fdc3-agent-proxy/test/step-definitions/channels.steps.ts index 7d9d51ec3..9547a9bdc 100644 --- a/packages/fdc3-agent-proxy/test/step-definitions/channels.steps.ts +++ b/packages/fdc3-agent-proxy/test/step-definitions/channels.steps.ts @@ -1,7 +1,7 @@ import { DataTable, Given, Then, When } from '@cucumber/cucumber'; import { Context } from '@finos/fdc3-context'; import { handleResolve, matchData } from '@finos/testing'; -import { CustomWorld } from '../world/index'; +import { CustomWorld } from '../world/index.js'; import { CHANNEL_STATE } from '@finos/testing'; import { ApiEvent } from '@finos/fdc3-standard'; import { @@ -10,7 +10,7 @@ import { PrivateChannelOnAddContextListenerEvent, PrivateChannelOnDisconnectEvent, PrivateChannelOnUnsubscribeEvent, -} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; +} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; const contextMap: Record = { 'fdc3.instrument': { diff --git a/packages/fdc3-agent-proxy/test/step-definitions/generic.steps.ts b/packages/fdc3-agent-proxy/test/step-definitions/generic.steps.ts index 3415ea232..187d096a5 100644 --- a/packages/fdc3-agent-proxy/test/step-definitions/generic.steps.ts +++ b/packages/fdc3-agent-proxy/test/step-definitions/generic.steps.ts @@ -1,16 +1,16 @@ -import { TestMessaging } from '../support/TestMessaging'; +import { TestMessaging } from '../support/TestMessaging.js'; import { Given, When } from '@cucumber/cucumber'; -import { CustomWorld } from '../world/index'; +import { CustomWorld } from '../world/index.js'; import { DesktopAgentProxy, DefaultAppSupport, DefaultChannelSupport, DefaultIntentSupport, DefaultHeartbeatSupport, -} from '../../src'; +} from '../../src/index.js'; import { SimpleIntentResolver, setupGenericSteps } from '@finos/testing'; import { CHANNEL_STATE, SimpleChannelSelector } from '@finos/testing/dist/src/agent'; -import { HeartbeatEvent } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; +import { HeartbeatEvent } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; import { LogLevel } from '@finos/fdc3-standard'; //Update this to enable debug output when debugging test failures diff --git a/packages/fdc3-agent-proxy/test/step-definitions/intents.steps.ts b/packages/fdc3-agent-proxy/test/step-definitions/intents.steps.ts index 2fad1583a..b2d9fc85e 100644 --- a/packages/fdc3-agent-proxy/test/step-definitions/intents.steps.ts +++ b/packages/fdc3-agent-proxy/test/step-definitions/intents.steps.ts @@ -1,9 +1,9 @@ import { Given } from '@cucumber/cucumber'; -import { CustomWorld } from '../world/index'; +import { CustomWorld } from '../world/index.js'; import { handleResolve } from '@finos/testing'; import { Context } from '@finos/fdc3-context'; import { ContextMetadata, ResolveError } from '@finos/fdc3-standard'; -import { IntentEvent } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; +import { IntentEvent } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; Given('app {string}', function (this: CustomWorld, appStr: string) { const [appId, instanceId] = appStr.split('/'); diff --git a/packages/fdc3-agent-proxy/test/step-definitions/util.steps.ts b/packages/fdc3-agent-proxy/test/step-definitions/util.steps.ts index 45f0501a8..18ac073ff 100644 --- a/packages/fdc3-agent-proxy/test/step-definitions/util.steps.ts +++ b/packages/fdc3-agent-proxy/test/step-definitions/util.steps.ts @@ -1,10 +1,10 @@ import { When } from '@cucumber/cucumber'; -import { CustomWorld } from '../world'; -import { throwIfUndefined } from '../../src/util/throwIfUndefined'; -import { AgentResponseMessage } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; +import { CustomWorld } from '../world/index.js'; +import { throwIfUndefined } from '../../src/util/throwIfUndefined.js'; +import { AgentResponseMessage } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; import { LogLevel, OpenError } from '@finos/fdc3-standard'; import expect from 'expect'; -import { Logger } from '../../src/util/Logger'; +import { Logger } from '../../src/util/Logger.js'; When('I call throwIfUndefined it throws if a specified property is not defined', async function (this: CustomWorld) { let thrown: Error | null = null; diff --git a/packages/fdc3-agent-proxy/test/support/TestMessaging.ts b/packages/fdc3-agent-proxy/test/support/TestMessaging.ts index b67a2982a..92baee5c8 100644 --- a/packages/fdc3-agent-proxy/test/support/TestMessaging.ts +++ b/packages/fdc3-agent-proxy/test/support/TestMessaging.ts @@ -1,32 +1,32 @@ import { AppIdentifier, ResolveError } from '@finos/fdc3-standard'; import { Context } from '@finos/fdc3-context'; import { v4 as uuidv4 } from 'uuid'; -import { AbstractMessaging } from '../../src/messaging/AbstractMessaging'; -import { RegisterableListener } from '../../src/listeners/RegisterableListener'; -import { FindIntent } from './responses/FindIntent'; -import { FindIntentByContext } from './responses/FindIntentByContext'; -import { RaiseIntent } from './responses/RaiseIntent'; -import { GetAppMetadata } from './responses/GetAppMetadata'; -import { FindInstances } from './responses/FindInstances'; -import { Open } from './responses/Open'; -import { GetOrCreateChannel } from './responses/GetOrCreateChannel'; -import { ChannelState } from './responses/ChannelState'; -import { GetUserChannels } from './responses/GetUserChannels'; -import { RegisterListeners } from './responses/RegisterListeners'; -import { UnsubscribeListeners } from './responses/UnsubscribeListeners'; -import { CreatePrivateChannel } from './responses/CreatePrivateChannel'; -import { DisconnectPrivateChannel } from './responses/DisconnectPrivateChannel'; -import { IntentResult } from './responses/IntentResult'; -import { RaiseIntentForContext } from './responses/RaiseIntentForContext'; +import { AbstractMessaging } from '../../src/messaging/AbstractMessaging.js'; +import { RegisterableListener } from '../../src/listeners/RegisterableListener.js'; +import { FindIntent } from './responses/FindIntent.js'; +import { FindIntentByContext } from './responses/FindIntentByContext.js'; +import { RaiseIntent } from './responses/RaiseIntent.js'; +import { GetAppMetadata } from './responses/GetAppMetadata.js'; +import { FindInstances } from './responses/FindInstances.js'; +import { Open } from './responses/Open.js'; +import { GetOrCreateChannel } from './responses/GetOrCreateChannel.js'; +import { ChannelState } from './responses/ChannelState.js'; +import { GetUserChannels } from './responses/GetUserChannels.js'; +import { RegisterListeners } from './responses/RegisterListeners.js'; +import { UnsubscribeListeners } from './responses/UnsubscribeListeners.js'; +import { CreatePrivateChannel } from './responses/CreatePrivateChannel.js'; +import { DisconnectPrivateChannel } from './responses/DisconnectPrivateChannel.js'; +import { IntentResult } from './responses/IntentResult.js'; +import { RaiseIntentForContext } from './responses/RaiseIntentForContext.js'; import { AgentEventMessage, AgentResponseMessage, AppRequestMessage, Channel, WebConnectionProtocol6Goodbye, -} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; -import { GetInfo } from './responses/GetInfo'; -import { AddEventListener } from './responses/AddEventListener'; +} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; +import { GetInfo } from './responses/GetInfo.js'; +import { AddEventListener } from './responses/AddEventListener.js'; export interface IntentDetail { app?: AppIdentifier; diff --git a/packages/fdc3-agent-proxy/test/support/responses/ChannelState.ts b/packages/fdc3-agent-proxy/test/support/responses/ChannelState.ts index 691fa5e10..2b0cd9f7b 100644 --- a/packages/fdc3-agent-proxy/test/support/responses/ChannelState.ts +++ b/packages/fdc3-agent-proxy/test/support/responses/ChannelState.ts @@ -1,6 +1,6 @@ -import { AutomaticResponse, TestMessaging } from '../TestMessaging'; +import { AutomaticResponse, TestMessaging } from '../TestMessaging.js'; import { Context } from '@finos/fdc3-context'; -import { createResponseMeta } from './support'; +import { createResponseMeta } from './support.js'; import { v4 as uuidv4 } from 'uuid'; import { AddContextListenerRequest, @@ -19,7 +19,7 @@ import { JoinUserChannelResponse, LeaveCurrentChannelRequest, LeaveCurrentChannelResponse, -} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; +} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; export class ChannelState implements AutomaticResponse { private channelId: string | null = null; diff --git a/packages/fdc3-agent-proxy/test/support/responses/CreatePrivateChannel.ts b/packages/fdc3-agent-proxy/test/support/responses/CreatePrivateChannel.ts index bb917bd84..c97f1079e 100644 --- a/packages/fdc3-agent-proxy/test/support/responses/CreatePrivateChannel.ts +++ b/packages/fdc3-agent-proxy/test/support/responses/CreatePrivateChannel.ts @@ -1,9 +1,9 @@ import { CreatePrivateChannelRequest, CreatePrivateChannelResponse, -} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; -import { AutomaticResponse, TestMessaging } from '../TestMessaging'; -import { createResponseMeta } from './support'; +} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; +import { AutomaticResponse, TestMessaging } from '../TestMessaging.js'; +import { createResponseMeta } from './support.js'; import { v4 as uuidv4 } from 'uuid'; export class CreatePrivateChannel implements AutomaticResponse { diff --git a/packages/fdc3-agent-proxy/test/support/responses/DisconnectPrivateChannel.ts b/packages/fdc3-agent-proxy/test/support/responses/DisconnectPrivateChannel.ts index cf0758f99..31a5d2708 100644 --- a/packages/fdc3-agent-proxy/test/support/responses/DisconnectPrivateChannel.ts +++ b/packages/fdc3-agent-proxy/test/support/responses/DisconnectPrivateChannel.ts @@ -1,9 +1,9 @@ -import { AutomaticResponse, TestMessaging } from '../TestMessaging'; -import { createResponseMeta } from './support'; +import { AutomaticResponse, TestMessaging } from '../TestMessaging.js'; +import { createResponseMeta } from './support.js'; import { PrivateChannelDisconnectRequest, PrivateChannelDisconnectResponse, -} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; +} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; export class DisconnectPrivateChannel implements AutomaticResponse { count: number = 0; diff --git a/packages/fdc3-agent-proxy/test/support/responses/FindInstances.ts b/packages/fdc3-agent-proxy/test/support/responses/FindInstances.ts index 823c5a6ab..d39ff7752 100644 --- a/packages/fdc3-agent-proxy/test/support/responses/FindInstances.ts +++ b/packages/fdc3-agent-proxy/test/support/responses/FindInstances.ts @@ -1,6 +1,6 @@ -import { FindInstancesRequest, FindInstancesResponse } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; -import { AutomaticResponse, TestMessaging } from '../TestMessaging'; -import { createResponseMeta } from './support'; +import { FindInstancesRequest, FindInstancesResponse } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; +import { AutomaticResponse, TestMessaging } from '../TestMessaging.js'; +import { createResponseMeta } from './support.js'; export class FindInstances implements AutomaticResponse { filter(t: string) { diff --git a/packages/fdc3-agent-proxy/test/support/responses/FindIntent.ts b/packages/fdc3-agent-proxy/test/support/responses/FindIntent.ts index cca73ddca..00fb8fbd9 100644 --- a/packages/fdc3-agent-proxy/test/support/responses/FindIntent.ts +++ b/packages/fdc3-agent-proxy/test/support/responses/FindIntent.ts @@ -1,11 +1,11 @@ import { AppMetadata } from '@finos/fdc3-standard'; -import { AutomaticResponse, IntentDetail, TestMessaging, intentDetailMatches } from '../TestMessaging'; +import { AutomaticResponse, IntentDetail, TestMessaging, intentDetailMatches } from '../TestMessaging.js'; import { AppRequestMessage, FindIntentRequest, FindIntentResponse, -} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; -import { createResponseMeta } from './support'; +} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; +import { createResponseMeta } from './support.js'; export class FindIntent implements AutomaticResponse { filter(t: string) { diff --git a/packages/fdc3-agent-proxy/test/support/responses/FindIntentByContext.ts b/packages/fdc3-agent-proxy/test/support/responses/FindIntentByContext.ts index ab3b26477..a217c3f69 100644 --- a/packages/fdc3-agent-proxy/test/support/responses/FindIntentByContext.ts +++ b/packages/fdc3-agent-proxy/test/support/responses/FindIntentByContext.ts @@ -1,9 +1,9 @@ import { FindIntentsByContextRequest, FindIntentsByContextResponse, -} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; -import { AutomaticResponse, IntentDetail, TestMessaging, intentDetailMatches } from '../TestMessaging'; -import { createResponseMeta } from './support'; +} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; +import { AutomaticResponse, IntentDetail, TestMessaging, intentDetailMatches } from '../TestMessaging.js'; +import { createResponseMeta } from './support.js'; export class FindIntentByContext implements AutomaticResponse { filter(t: string) { diff --git a/packages/fdc3-agent-proxy/test/support/responses/GetAppMetadata.ts b/packages/fdc3-agent-proxy/test/support/responses/GetAppMetadata.ts index a8c48839b..465503660 100644 --- a/packages/fdc3-agent-proxy/test/support/responses/GetAppMetadata.ts +++ b/packages/fdc3-agent-proxy/test/support/responses/GetAppMetadata.ts @@ -1,6 +1,6 @@ -import { GetAppMetadataRequest, GetAppMetadataResponse } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; -import { AutomaticResponse, TestMessaging } from '../TestMessaging'; -import { createResponseMeta } from './support'; +import { GetAppMetadataRequest, GetAppMetadataResponse } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; +import { AutomaticResponse, TestMessaging } from '../TestMessaging.js'; +import { createResponseMeta } from './support.js'; export class GetAppMetadata implements AutomaticResponse { filter(t: string) { diff --git a/packages/fdc3-agent-proxy/test/support/responses/GetInfo.ts b/packages/fdc3-agent-proxy/test/support/responses/GetInfo.ts index 3ede9978b..e31fad246 100644 --- a/packages/fdc3-agent-proxy/test/support/responses/GetInfo.ts +++ b/packages/fdc3-agent-proxy/test/support/responses/GetInfo.ts @@ -1,6 +1,6 @@ -import { AutomaticResponse, TestMessaging } from '../TestMessaging'; -import { createResponseMeta } from './support'; -import { GetInfoRequest, GetInfoResponse } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; +import { AutomaticResponse, TestMessaging } from '../TestMessaging.js'; +import { createResponseMeta } from './support.js'; +import { GetInfoRequest, GetInfoResponse } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; export class GetInfo implements AutomaticResponse { filter(t: string) { diff --git a/packages/fdc3-agent-proxy/test/support/responses/GetOrCreateChannel.ts b/packages/fdc3-agent-proxy/test/support/responses/GetOrCreateChannel.ts index 4aff3bec6..80e586b83 100644 --- a/packages/fdc3-agent-proxy/test/support/responses/GetOrCreateChannel.ts +++ b/packages/fdc3-agent-proxy/test/support/responses/GetOrCreateChannel.ts @@ -1,11 +1,11 @@ -import { AutomaticResponse, TestMessaging } from '../TestMessaging'; +import { AutomaticResponse, TestMessaging } from '../TestMessaging.js'; import { ChannelError } from '@finos/fdc3-standard'; -import { createResponseMeta } from './support'; +import { createResponseMeta } from './support.js'; import { AppRequestMessage, GetOrCreateChannelRequest, GetOrCreateChannelResponse, -} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; +} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; type ChannelType = { [channelId: string]: 'user' | 'app' | 'private' }; diff --git a/packages/fdc3-agent-proxy/test/support/responses/GetUserChannels.ts b/packages/fdc3-agent-proxy/test/support/responses/GetUserChannels.ts index 43652fd81..e9de4c500 100644 --- a/packages/fdc3-agent-proxy/test/support/responses/GetUserChannels.ts +++ b/packages/fdc3-agent-proxy/test/support/responses/GetUserChannels.ts @@ -2,9 +2,9 @@ import { Channel, GetUserChannelsRequest, GetUserChannelsResponse, -} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; -import { AutomaticResponse, TestMessaging } from '../TestMessaging'; -import { createResponseMeta } from './support'; +} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; +import { AutomaticResponse, TestMessaging } from '../TestMessaging.js'; +import { createResponseMeta } from './support.js'; export class GetUserChannels implements AutomaticResponse { filter(t: string) { diff --git a/packages/fdc3-agent-proxy/test/support/responses/IntentResult.ts b/packages/fdc3-agent-proxy/test/support/responses/IntentResult.ts index 720f71a7d..644ad726c 100644 --- a/packages/fdc3-agent-proxy/test/support/responses/IntentResult.ts +++ b/packages/fdc3-agent-proxy/test/support/responses/IntentResult.ts @@ -1,5 +1,5 @@ -import { IntentResultRequest, IntentResultResponse } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; -import { AutomaticResponse, TestMessaging } from '../TestMessaging'; +import { IntentResultRequest, IntentResultResponse } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; +import { AutomaticResponse, TestMessaging } from '../TestMessaging.js'; export class IntentResult implements AutomaticResponse { filter(t: string) { diff --git a/packages/fdc3-agent-proxy/test/support/responses/Open.ts b/packages/fdc3-agent-proxy/test/support/responses/Open.ts index 7ab916ae0..3e57293ea 100644 --- a/packages/fdc3-agent-proxy/test/support/responses/Open.ts +++ b/packages/fdc3-agent-proxy/test/support/responses/Open.ts @@ -1,6 +1,6 @@ -import { OpenRequest, OpenResponse } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; -import { AutomaticResponse, TestMessaging } from '../TestMessaging'; -import { createResponseMeta } from './support'; +import { OpenRequest, OpenResponse } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; +import { AutomaticResponse, TestMessaging } from '../TestMessaging.js'; +import { createResponseMeta } from './support.js'; export class Open implements AutomaticResponse { filter(t: string) { diff --git a/packages/fdc3-agent-proxy/test/support/responses/RaiseIntent.ts b/packages/fdc3-agent-proxy/test/support/responses/RaiseIntent.ts index 38cfd5384..41fba7d7c 100644 --- a/packages/fdc3-agent-proxy/test/support/responses/RaiseIntent.ts +++ b/packages/fdc3-agent-proxy/test/support/responses/RaiseIntent.ts @@ -2,10 +2,10 @@ import { RaiseIntentRequest, RaiseIntentResponse, RaiseIntentResultResponse, -} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; -import { AutomaticResponse, IntentDetail, intentDetailMatches, TestMessaging } from '../TestMessaging'; +} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; +import { AutomaticResponse, IntentDetail, intentDetailMatches, TestMessaging } from '../TestMessaging.js'; import { AppMetadata, ResolveError } from '@finos/fdc3-standard'; -import { createResponseMeta } from './support'; +import { createResponseMeta } from './support.js'; export class RaiseIntent implements AutomaticResponse { filter(t: string) { diff --git a/packages/fdc3-agent-proxy/test/support/responses/RaiseIntentForContext.ts b/packages/fdc3-agent-proxy/test/support/responses/RaiseIntentForContext.ts index e1a0de607..fd0248817 100644 --- a/packages/fdc3-agent-proxy/test/support/responses/RaiseIntentForContext.ts +++ b/packages/fdc3-agent-proxy/test/support/responses/RaiseIntentForContext.ts @@ -2,10 +2,10 @@ import { RaiseIntentForContextRequest, RaiseIntentForContextResponse, RaiseIntentResultResponse, -} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; -import { AutomaticResponse, IntentDetail, intentDetailMatches, TestMessaging } from '../TestMessaging'; +} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; +import { AutomaticResponse, IntentDetail, intentDetailMatches, TestMessaging } from '../TestMessaging.js'; import { AppIdentifier, AppIntent, ResolveError } from '@finos/fdc3-standard'; -import { createResponseMeta } from './support'; +import { createResponseMeta } from './support.js'; export class RaiseIntentForContext implements AutomaticResponse { filter(t: string) { diff --git a/packages/fdc3-agent-proxy/test/support/responses/RegisterListeners.ts b/packages/fdc3-agent-proxy/test/support/responses/RegisterListeners.ts index 561d8c5c8..7697912bb 100644 --- a/packages/fdc3-agent-proxy/test/support/responses/RegisterListeners.ts +++ b/packages/fdc3-agent-proxy/test/support/responses/RegisterListeners.ts @@ -8,9 +8,9 @@ import { AppRequestMessage, PrivateChannelAddEventListenerRequest, PrivateChannelAddEventListenerResponse, -} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; -import { AutomaticResponse, TestMessaging } from '../TestMessaging'; -import { createResponseMeta } from './support'; +} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; +import { AutomaticResponse, TestMessaging } from '../TestMessaging.js'; +import { createResponseMeta } from './support.js'; import { v4 as uuidv4 } from 'uuid'; type Requests = diff --git a/packages/fdc3-agent-proxy/test/support/responses/UnsubscribeListeners.ts b/packages/fdc3-agent-proxy/test/support/responses/UnsubscribeListeners.ts index 203dac233..fb909ea5d 100644 --- a/packages/fdc3-agent-proxy/test/support/responses/UnsubscribeListeners.ts +++ b/packages/fdc3-agent-proxy/test/support/responses/UnsubscribeListeners.ts @@ -7,10 +7,10 @@ import { IntentListenerUnsubscribeResponse, PrivateChannelUnsubscribeEventListenerRequest, PrivateChannelUnsubscribeEventListenerResponse, -} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; -import { AutomaticResponse, TestMessaging } from '../TestMessaging'; -import { createResponseMeta } from './support'; -import { EventListenerUnsubscribeResponse } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; +} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; +import { AutomaticResponse, TestMessaging } from '../TestMessaging.js'; +import { createResponseMeta } from './support.js'; +import { EventListenerUnsubscribeResponse } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; type Requests = | IntentListenerUnsubscribeRequest diff --git a/packages/fdc3-agent-proxy/test/support/responses/support.ts b/packages/fdc3-agent-proxy/test/support/responses/support.ts index f0f6fe8b4..52ce5376a 100644 --- a/packages/fdc3-agent-proxy/test/support/responses/support.ts +++ b/packages/fdc3-agent-proxy/test/support/responses/support.ts @@ -1,4 +1,4 @@ -import { AppRequestMessageMeta, AgentResponseMessage } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; +import { AppRequestMessageMeta, AgentResponseMessage } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; import { v4 as uuidv4 } from 'uuid'; export function createResponseMeta(m: AppRequestMessageMeta): AgentResponseMessage['meta'] { diff --git a/packages/fdc3-agent-proxy/test/world/index.ts b/packages/fdc3-agent-proxy/test/world/index.ts index 8010a0742..93024c118 100644 --- a/packages/fdc3-agent-proxy/test/world/index.ts +++ b/packages/fdc3-agent-proxy/test/world/index.ts @@ -1,5 +1,5 @@ import { setWorldConstructor } from '@cucumber/cucumber'; -import { TestMessaging } from '../support/TestMessaging'; +import { TestMessaging } from '../support/TestMessaging.js'; import { PropsWorld } from '@finos/testing'; export class CustomWorld extends PropsWorld { diff --git a/packages/fdc3-context/src/index.ts b/packages/fdc3-context/src/index.ts index 996ccfffb..0211a09c8 100644 --- a/packages/fdc3-context/src/index.ts +++ b/packages/fdc3-context/src/index.ts @@ -1 +1 @@ -export * from '../generated/context/ContextTypes'; +export * from '../generated/context/ContextTypes.js'; diff --git a/packages/fdc3-get-agent/src/index.ts b/packages/fdc3-get-agent/src/index.ts index 5dece7ca9..4d38276e9 100644 --- a/packages/fdc3-get-agent/src/index.ts +++ b/packages/fdc3-get-agent/src/index.ts @@ -1,10 +1,10 @@ import { DesktopAgent } from '@finos/fdc3-standard'; -import { getAgent } from './strategies/getAgent'; -import { AbstractUIComponent } from './ui/AbstractUIComponent'; -import { DefaultDesktopAgentChannelSelector } from './ui/DefaultDesktopAgentChannelSelector'; -import { DefaultDesktopAgentIntentResolver } from './ui/DefaultDesktopAgentIntentResolver'; -import { NullChannelSelector } from './ui/NullChannelSelector'; -import { NullIntentResolver } from './ui/NullIntentResolver'; +import { getAgent } from './strategies/getAgent.js'; +import { AbstractUIComponent } from './ui/AbstractUIComponent.js'; +import { DefaultDesktopAgentChannelSelector } from './ui/DefaultDesktopAgentChannelSelector.js'; +import { DefaultDesktopAgentIntentResolver } from './ui/DefaultDesktopAgentIntentResolver.js'; +import { NullChannelSelector } from './ui/NullChannelSelector.js'; +import { NullIntentResolver } from './ui/NullIntentResolver.js'; const DEFAULT_WAIT_FOR_MS = 20000; diff --git a/packages/fdc3-get-agent/src/messaging/MessagePortMessaging.ts b/packages/fdc3-get-agent/src/messaging/MessagePortMessaging.ts index 54422c45c..60aa31164 100644 --- a/packages/fdc3-get-agent/src/messaging/MessagePortMessaging.ts +++ b/packages/fdc3-get-agent/src/messaging/MessagePortMessaging.ts @@ -5,7 +5,7 @@ import { AppRequestMessage, WebConnectionProtocol3Handshake, WebConnectionProtocol6Goodbye, -} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; +} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; /** * Details needed to set up the Messaging instance and Desktop AgentDetails record diff --git a/packages/fdc3-get-agent/src/messaging/message-port.ts b/packages/fdc3-get-agent/src/messaging/message-port.ts index ea1d24d54..c9f3c3de1 100644 --- a/packages/fdc3-get-agent/src/messaging/message-port.ts +++ b/packages/fdc3-get-agent/src/messaging/message-port.ts @@ -7,13 +7,13 @@ import { ChannelSupport, DefaultHeartbeatSupport, } from '@finos/fdc3-agent-proxy'; -import { ConnectionDetails, MessagePortMessaging } from './MessagePortMessaging'; -import { DefaultDesktopAgentIntentResolver } from '../ui/DefaultDesktopAgentIntentResolver'; -import { DefaultDesktopAgentChannelSelector } from '../ui/DefaultDesktopAgentChannelSelector'; -import { NullIntentResolver } from '../ui/NullIntentResolver'; -import { NullChannelSelector } from '../ui/NullChannelSelector'; +import { ConnectionDetails, MessagePortMessaging } from './MessagePortMessaging.js'; +import { DefaultDesktopAgentIntentResolver } from '../ui/DefaultDesktopAgentIntentResolver.js'; +import { DefaultDesktopAgentChannelSelector } from '../ui/DefaultDesktopAgentChannelSelector.js'; +import { NullIntentResolver } from '../ui/NullIntentResolver.js'; +import { NullChannelSelector } from '../ui/NullChannelSelector.js'; import { ChannelSelector } from '@finos/fdc3-standard'; -import { Logger } from '../util/Logger'; +import { Logger } from '../util/Logger.js'; /** * Given a message port, constructs a desktop agent to communicate via that. diff --git a/packages/fdc3-get-agent/src/sessionStorage/DesktopAgentDetails.ts b/packages/fdc3-get-agent/src/sessionStorage/DesktopAgentDetails.ts index d30cf1082..9f69bf698 100644 --- a/packages/fdc3-get-agent/src/sessionStorage/DesktopAgentDetails.ts +++ b/packages/fdc3-get-agent/src/sessionStorage/DesktopAgentDetails.ts @@ -1,6 +1,6 @@ import { DesktopAgentDetails, DESKTOP_AGENT_SESSION_STORAGE_KEY_PREFIX } from '@finos/fdc3-standard'; -import { Logger } from '../util/Logger'; -import { createUUID } from '../util/Uuid'; +import { Logger } from '../util/Logger.js'; +import { createUUID } from '../util/Uuid.js'; /** * Note that we also key by the window name as well, in case multiple iframes are using the same session storage. diff --git a/packages/fdc3-get-agent/src/strategies/DesktopAgentPreloadLoader.ts b/packages/fdc3-get-agent/src/strategies/DesktopAgentPreloadLoader.ts index 04ada2382..c9c2634f5 100644 --- a/packages/fdc3-get-agent/src/strategies/DesktopAgentPreloadLoader.ts +++ b/packages/fdc3-get-agent/src/strategies/DesktopAgentPreloadLoader.ts @@ -1,8 +1,8 @@ import { AgentError, DesktopAgent, WebDesktopAgentType } from '@finos/fdc3-standard'; import { GetAgentParams } from '@finos/fdc3-standard'; -import { DesktopAgentSelection, Loader } from './Loader'; -import { Logger } from '../util/Logger'; -import { DEFAULT_GETAGENT_TIMEOUT_MS } from './Timeouts'; +import { DesktopAgentSelection, Loader } from './Loader.js'; +import { Logger } from '../util/Logger.js'; +import { DEFAULT_GETAGENT_TIMEOUT_MS } from './Timeouts.js'; /** * This approach will resolve the loader promise if the fdc3Ready event occurs. diff --git a/packages/fdc3-get-agent/src/strategies/FailoverHandler.ts b/packages/fdc3-get-agent/src/strategies/FailoverHandler.ts index ec55e7d84..c85081b21 100644 --- a/packages/fdc3-get-agent/src/strategies/FailoverHandler.ts +++ b/packages/fdc3-get-agent/src/strategies/FailoverHandler.ts @@ -6,13 +6,13 @@ import { AppIdentifier, LogLevel, } from '@finos/fdc3-standard'; -import { createDesktopAgentAPI } from '../messaging/message-port'; -import { DesktopAgentSelection } from './Loader'; +import { createDesktopAgentAPI } from '../messaging/message-port.js'; +import { DesktopAgentSelection } from './Loader.js'; import { v4 as uuidv4 } from 'uuid'; -import { HelloHandler } from './HelloHandler'; -import { IdentityValidationHandler } from './IdentityValidationHandler'; -import { Logger } from '../util/Logger'; -import { ConnectionDetails } from '../messaging/MessagePortMessaging'; +import { HelloHandler } from './HelloHandler.js'; +import { IdentityValidationHandler } from './IdentityValidationHandler.js'; +import { Logger } from '../util/Logger.js'; +import { ConnectionDetails } from '../messaging/MessagePortMessaging.js'; /** TypeGuard for a Desktop Agent */ function isDesktopAgent(da: WindowProxy | DesktopAgent): da is DesktopAgent { diff --git a/packages/fdc3-get-agent/src/strategies/HelloHandler.ts b/packages/fdc3-get-agent/src/strategies/HelloHandler.ts index a974622bf..18226c9ca 100644 --- a/packages/fdc3-get-agent/src/strategies/HelloHandler.ts +++ b/packages/fdc3-get-agent/src/strategies/HelloHandler.ts @@ -1,8 +1,8 @@ import { FDC3_VERSION, GetAgentParams, WebDesktopAgentType } from '@finos/fdc3-standard'; -import { ConnectionDetails } from '../messaging/MessagePortMessaging'; -import { Logger } from '../util/Logger'; +import { ConnectionDetails } from '../messaging/MessagePortMessaging.js'; +import { Logger } from '../util/Logger.js'; import { BrowserTypes } from '@finos/fdc3-schema'; -import { DEFAULT_MESSAGE_EXCHANGE_TIMEOUT_MS, DEFAULT_APP_LAUNCH_TIMEOUT_MS } from './Timeouts'; +import { DEFAULT_MESSAGE_EXCHANGE_TIMEOUT_MS, DEFAULT_APP_LAUNCH_TIMEOUT_MS } from './Timeouts.js'; const { isWebConnectionProtocol2LoadURL, isWebConnectionProtocol3Handshake } = BrowserTypes; type WebConnectionProtocolMessage = BrowserTypes.WebConnectionProtocolMessage; type WebConnectionProtocol1Hello = BrowserTypes.WebConnectionProtocol1Hello; diff --git a/packages/fdc3-get-agent/src/strategies/IdentityValidationHandler.ts b/packages/fdc3-get-agent/src/strategies/IdentityValidationHandler.ts index 7b4a1a550..64a1b9d8c 100644 --- a/packages/fdc3-get-agent/src/strategies/IdentityValidationHandler.ts +++ b/packages/fdc3-get-agent/src/strategies/IdentityValidationHandler.ts @@ -1,6 +1,6 @@ import { GetAgentParams, AgentError } from '@finos/fdc3-standard'; -import { retrieveDesktopAgentDetails } from '../sessionStorage/DesktopAgentDetails'; -import { Logger } from '../util/Logger'; +import { retrieveDesktopAgentDetails } from '../sessionStorage/DesktopAgentDetails.js'; +import { Logger } from '../util/Logger.js'; import { BrowserTypes } from '@finos/fdc3-schema'; const { diff --git a/packages/fdc3-get-agent/src/strategies/PostMessageLoader.ts b/packages/fdc3-get-agent/src/strategies/PostMessageLoader.ts index f47173599..893c2480e 100644 --- a/packages/fdc3-get-agent/src/strategies/PostMessageLoader.ts +++ b/packages/fdc3-get-agent/src/strategies/PostMessageLoader.ts @@ -1,11 +1,11 @@ import { AgentError, AppIdentifier, GetAgentParams, LogLevel } from '@finos/fdc3-standard'; -import { createDesktopAgentAPI } from '../messaging/message-port'; +import { createDesktopAgentAPI } from '../messaging/message-port.js'; import { v4 as uuidv4 } from 'uuid'; -import { DesktopAgentSelection, Loader } from './Loader'; -import { HelloHandler } from './HelloHandler'; -import { IdentityValidationHandler } from './IdentityValidationHandler'; -import { Logger } from '../util/Logger'; -import { DEFAULT_GETAGENT_TIMEOUT_MS } from './Timeouts'; +import { DesktopAgentSelection, Loader } from './Loader.js'; +import { HelloHandler } from './HelloHandler.js'; +import { IdentityValidationHandler } from './IdentityValidationHandler.js'; +import { Logger } from '../util/Logger.js'; +import { DEFAULT_GETAGENT_TIMEOUT_MS } from './Timeouts.js'; /** * Recursive search for all possible parent frames (windows) that we may diff --git a/packages/fdc3-get-agent/src/strategies/getAgent.ts b/packages/fdc3-get-agent/src/strategies/getAgent.ts index 6485123ce..06b64d60b 100644 --- a/packages/fdc3-get-agent/src/strategies/getAgent.ts +++ b/packages/fdc3-get-agent/src/strategies/getAgent.ts @@ -6,13 +6,13 @@ import { DesktopAgentDetails, WebDesktopAgentType, } from '@finos/fdc3-standard'; -import { DesktopAgentPreloadLoader } from './DesktopAgentPreloadLoader'; -import { PostMessageLoader } from './PostMessageLoader'; -import { retrieveDesktopAgentDetails, storeDesktopAgentDetails } from '../sessionStorage/DesktopAgentDetails'; -import { FailoverHandler } from './FailoverHandler'; -import { Loader } from './Loader'; -import { Logger } from '../util/Logger'; -import { DEFAULT_GETAGENT_TIMEOUT_MS } from './Timeouts'; +import { DesktopAgentPreloadLoader } from './DesktopAgentPreloadLoader.js'; +import { PostMessageLoader } from './PostMessageLoader.js'; +import { retrieveDesktopAgentDetails, storeDesktopAgentDetails } from '../sessionStorage/DesktopAgentDetails.js'; +import { FailoverHandler } from './FailoverHandler.js'; +import { Loader } from './Loader.js'; +import { Logger } from '../util/Logger.js'; +import { DEFAULT_GETAGENT_TIMEOUT_MS } from './Timeouts.js'; // TypeGuards used to examine results of Loaders const isRejected = (input: PromiseSettledResult): input is PromiseRejectedResult => diff --git a/packages/fdc3-get-agent/src/ui/AbstractUIComponent.ts b/packages/fdc3-get-agent/src/ui/AbstractUIComponent.ts index d520b6210..b8bd66a79 100644 --- a/packages/fdc3-get-agent/src/ui/AbstractUIComponent.ts +++ b/packages/fdc3-get-agent/src/ui/AbstractUIComponent.ts @@ -1,5 +1,5 @@ import { Connectable, FDC3_VERSION } from '@finos/fdc3-standard'; -import { Logger } from '../util/Logger'; +import { Logger } from '../util/Logger.js'; import { BrowserTypes } from '@finos/fdc3-schema'; const { isFdc3UserInterfaceHello, isFdc3UserInterfaceRestyle } = BrowserTypes; type Fdc3UserInterfaceHandshake = BrowserTypes.Fdc3UserInterfaceHandshake; diff --git a/packages/fdc3-get-agent/src/ui/DefaultDesktopAgentChannelSelector.ts b/packages/fdc3-get-agent/src/ui/DefaultDesktopAgentChannelSelector.ts index 9ceb4fa75..8a3d21b59 100644 --- a/packages/fdc3-get-agent/src/ui/DefaultDesktopAgentChannelSelector.ts +++ b/packages/fdc3-get-agent/src/ui/DefaultDesktopAgentChannelSelector.ts @@ -1,8 +1,8 @@ import { Channel } from '@finos/fdc3-standard'; import { ChannelSelector } from '@finos/fdc3-standard'; -import { AbstractUIComponent, DEFAULT_UI_ROOT_URL } from './AbstractUIComponent'; +import { AbstractUIComponent, DEFAULT_UI_ROOT_URL } from './AbstractUIComponent.js'; import { BrowserTypes } from '@finos/fdc3-schema'; -import { Logger } from '../util/Logger'; +import { Logger } from '../util/Logger.js'; const { isFdc3UserInterfaceChannelSelected } = BrowserTypes; type Fdc3UserInterfaceChannels = BrowserTypes.Fdc3UserInterfaceChannels; diff --git a/packages/fdc3-get-agent/src/ui/DefaultDesktopAgentIntentResolver.ts b/packages/fdc3-get-agent/src/ui/DefaultDesktopAgentIntentResolver.ts index 23cd6231b..bc3c7bf60 100644 --- a/packages/fdc3-get-agent/src/ui/DefaultDesktopAgentIntentResolver.ts +++ b/packages/fdc3-get-agent/src/ui/DefaultDesktopAgentIntentResolver.ts @@ -1,8 +1,8 @@ import { AppIntent } from '@finos/fdc3-standard'; import { IntentResolver, IntentResolutionChoice } from '@finos/fdc3-standard'; -import { AbstractUIComponent, DEFAULT_UI_ROOT_URL } from './AbstractUIComponent'; +import { AbstractUIComponent, DEFAULT_UI_ROOT_URL } from './AbstractUIComponent.js'; import { Context } from '@finos/fdc3-context'; -import { Logger } from '../util/Logger'; +import { Logger } from '../util/Logger.js'; import { BrowserTypes } from '@finos/fdc3-schema'; const { isFdc3UserInterfaceResolveAction } = BrowserTypes; type Fdc3UserInterfaceResolve = BrowserTypes.Fdc3UserInterfaceResolve; diff --git a/packages/fdc3-get-agent/test/step-definitions/channel-selector.steps.ts b/packages/fdc3-get-agent/test/step-definitions/channel-selector.steps.ts index e419a78c5..695245b6c 100644 --- a/packages/fdc3-get-agent/test/step-definitions/channel-selector.steps.ts +++ b/packages/fdc3-get-agent/test/step-definitions/channel-selector.steps.ts @@ -1,12 +1,12 @@ import { Given } from '@cucumber/cucumber'; import { handleResolve } from '@finos/testing'; -import { DefaultDesktopAgentChannelSelector } from '../../src/ui/DefaultDesktopAgentChannelSelector'; -import { CHANNEL_SELECTOR_URL } from '../support/MockFDC3Server'; -import { USER_CHANNELS } from '../support/responses/UserChannels'; -import { CustomWorld } from '../world'; -import { Fdc3UserInterfaceChannelSelected } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; -import { Logger } from '../../src/util/Logger'; -import { loggingSettings } from './desktop-agent.steps'; +import { DefaultDesktopAgentChannelSelector } from '../../src/ui/DefaultDesktopAgentChannelSelector.js'; +import { CHANNEL_SELECTOR_URL } from '../support/MockFDC3Server.js'; +import { USER_CHANNELS } from '../support/responses/UserChannels.js'; +import { CustomWorld } from '../world/index.js'; +import { Fdc3UserInterfaceChannelSelected } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; +import { Logger } from '../../src/util/Logger.js'; +import { loggingSettings } from './desktop-agent.steps.js'; Given( 'A Channel Selector in {string} with callback piping to {string}', diff --git a/packages/fdc3-get-agent/test/step-definitions/desktop-agent-api.steps.ts b/packages/fdc3-get-agent/test/step-definitions/desktop-agent-api.steps.ts index e44bec465..96ff4dcd7 100644 --- a/packages/fdc3-get-agent/test/step-definitions/desktop-agent-api.steps.ts +++ b/packages/fdc3-get-agent/test/step-definitions/desktop-agent-api.steps.ts @@ -1,6 +1,6 @@ import { When } from '@cucumber/cucumber'; import { handleResolve } from '@finos/testing'; -import { CustomWorld } from '../world'; +import { CustomWorld } from '../world/index.js'; import { DesktopAgent } from '@finos/fdc3-standard'; import { Instrument } from '@finos/fdc3-context'; diff --git a/packages/fdc3-get-agent/test/step-definitions/desktop-agent.steps.ts b/packages/fdc3-get-agent/test/step-definitions/desktop-agent.steps.ts index eeea07ffb..a8d786a10 100644 --- a/packages/fdc3-get-agent/test/step-definitions/desktop-agent.steps.ts +++ b/packages/fdc3-get-agent/test/step-definitions/desktop-agent.steps.ts @@ -1,9 +1,9 @@ import { After, DataTable, Given, Then, When } from '@cucumber/cucumber'; -import { CustomWorld } from '../world'; +import { CustomWorld } from '../world/index.js'; import { doesRowMatch, handleResolve, setupGenericSteps } from '@finos/testing'; -import { MockDocument } from '../support/MockDocument'; -import { MockWindow } from '../support/MockWindow'; -import { fdc3Ready, getAgent } from '../../src'; +import { MockDocument } from '../support/MockDocument.js'; +import { MockWindow } from '../support/MockWindow.js'; +import { fdc3Ready, getAgent } from '../../src/index.js'; import { DESKTOP_AGENT_SESSION_STORAGE_KEY_PREFIX, DesktopAgentDetails, @@ -11,13 +11,13 @@ import { GetAgentParams, LogLevel, } from '@finos/fdc3-standard'; -import { EMBED_URL, MockFDC3Server } from '../support/MockFDC3Server'; -import { MockStorage } from '../support/MockStorage'; +import { EMBED_URL, MockFDC3Server } from '../support/MockFDC3Server.js'; +import { MockStorage } from '../support/MockStorage.js'; import { DesktopAgent, ImplementationMetadata } from '@finos/fdc3-standard'; -import { clearAgentPromise } from '../../src/strategies/getAgent'; +import { clearAgentPromise } from '../../src/strategies/getAgent.js'; import expect from 'expect'; -import { dummyInstanceDetails } from '../support/TestServerContext'; -import { MockIFrame } from '../support/MockIFrame'; +import { dummyInstanceDetails } from '../support/TestServerContext.js'; +import { MockIFrame } from '../support/MockIFrame.js'; interface MockPageTransitionEvent extends Event { persisted?: boolean; diff --git a/packages/fdc3-get-agent/test/step-definitions/intent-resolver.steps.ts b/packages/fdc3-get-agent/test/step-definitions/intent-resolver.steps.ts index c84f5c095..6c27db176 100644 --- a/packages/fdc3-get-agent/test/step-definitions/intent-resolver.steps.ts +++ b/packages/fdc3-get-agent/test/step-definitions/intent-resolver.steps.ts @@ -1,11 +1,11 @@ import { Given, When } from '@cucumber/cucumber'; -import { CustomWorld } from '../world'; +import { CustomWorld } from '../world/index.js'; import { handleResolve } from '@finos/testing'; -import { DefaultDesktopAgentIntentResolver } from '../../src/ui/DefaultDesktopAgentIntentResolver'; -import { INTENT_RESOLVER_URL } from '../support/MockFDC3Server'; -import { FDC3_USER_INTERFACE_RESOLVE_ACTION_TYPE } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; +import { DefaultDesktopAgentIntentResolver } from '../../src/ui/DefaultDesktopAgentIntentResolver.js'; +import { INTENT_RESOLVER_URL } from '../support/MockFDC3Server.js'; +import { FDC3_USER_INTERFACE_RESOLVE_ACTION_TYPE } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; import { Context } from '@finos/fdc3-context'; -import { loggingSettings } from './desktop-agent.steps'; +import { loggingSettings } from './desktop-agent.steps.js'; import { Logger } from '@finos/fdc3-agent-proxy/src/util/Logger'; Logger.setLogLevel(loggingSettings.connection); diff --git a/packages/fdc3-get-agent/test/step-definitions/port-creation.steps.ts b/packages/fdc3-get-agent/test/step-definitions/port-creation.steps.ts index f58c723d7..71aaff65b 100644 --- a/packages/fdc3-get-agent/test/step-definitions/port-creation.steps.ts +++ b/packages/fdc3-get-agent/test/step-definitions/port-creation.steps.ts @@ -1,10 +1,10 @@ import { Given, Then } from '@cucumber/cucumber'; -import { CustomWorld } from '../world'; +import { CustomWorld } from '../world/index.js'; import { handleResolve } from '@finos/testing'; +import wtf from 'wtfnode'; + // used to debug tests not ending - only available as a commonJs module // eslint-disable-next-line @typescript-eslint/no-require-imports -const wtf = require('wtfnode'); - Given( '{string} receives a {string} message for the {string} and creates port {string}', async function (this: CustomWorld, frame: string, type: string, _item: string, port: string) { diff --git a/packages/fdc3-get-agent/test/step-definitions/util.steps.ts b/packages/fdc3-get-agent/test/step-definitions/util.steps.ts index b330186af..0ec401347 100644 --- a/packages/fdc3-get-agent/test/step-definitions/util.steps.ts +++ b/packages/fdc3-get-agent/test/step-definitions/util.steps.ts @@ -1,7 +1,7 @@ import { When } from '@cucumber/cucumber'; -import { CustomWorld } from '../world'; -import { Logger } from '../../src/util/Logger'; -import { createUUID } from '../../src/util/Uuid'; +import { CustomWorld } from '../world/index.js'; +import { Logger } from '../../src/util/Logger.js'; +import { createUUID } from '../../src/util/Uuid.js'; const TEST_ERROR = 'Test error - This is expected on the console'; diff --git a/packages/fdc3-get-agent/test/support/FrameTypes.ts b/packages/fdc3-get-agent/test/support/FrameTypes.ts index d8f5b6ca1..79c9e6515 100644 --- a/packages/fdc3-get-agent/test/support/FrameTypes.ts +++ b/packages/fdc3-get-agent/test/support/FrameTypes.ts @@ -1,13 +1,13 @@ -import { CustomWorld } from '../world'; -import { MockWindow } from './MockWindow'; -import { CHANNEL_SELECTOR_URL, INTENT_RESOLVER_URL } from './MockFDC3Server'; -import { isWebConnectionProtocol1Hello } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; +import { CustomWorld } from '../world/index.js'; +import { MockWindow } from './MockWindow.js'; +import { CHANNEL_SELECTOR_URL, INTENT_RESOLVER_URL } from './MockFDC3Server.js'; +import { isWebConnectionProtocol1Hello } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; import { Fdc3UserInterfaceHello, Fdc3UserInterfaceRestyle, isFdc3UserInterfaceHandshake, WebConnectionProtocol3Handshake, -} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; +} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; /** * This handles the frame communications when we're using the embedded iframe approach diff --git a/packages/fdc3-get-agent/test/support/MockDocument.ts b/packages/fdc3-get-agent/test/support/MockDocument.ts index 57ef1e42e..951b79465 100644 --- a/packages/fdc3-get-agent/test/support/MockDocument.ts +++ b/packages/fdc3-get-agent/test/support/MockDocument.ts @@ -1,6 +1,6 @@ -import { MockWindow } from './MockWindow'; -import { MockIFrame } from './MockIFrame'; -import { MockElement } from './MockElement'; +import { MockWindow } from './MockWindow.js'; +import { MockIFrame } from './MockIFrame.js'; +import { MockElement } from './MockElement.js'; export class MockDocument { name: string; diff --git a/packages/fdc3-get-agent/test/support/MockElement.ts b/packages/fdc3-get-agent/test/support/MockElement.ts index 586526a77..ba0ab4dd8 100644 --- a/packages/fdc3-get-agent/test/support/MockElement.ts +++ b/packages/fdc3-get-agent/test/support/MockElement.ts @@ -1,5 +1,5 @@ -import { MockCSSStyleDeclaration } from './MockCSSStyleDeclaration'; -import { MockIFrame } from './MockIFrame'; +import { MockCSSStyleDeclaration } from './MockCSSStyleDeclaration.js'; +import { MockIFrame } from './MockIFrame.js'; export class MockElement { public tag: string; diff --git a/packages/fdc3-get-agent/test/support/MockFDC3Server.ts b/packages/fdc3-get-agent/test/support/MockFDC3Server.ts index 707032fde..0eb96cf69 100644 --- a/packages/fdc3-get-agent/test/support/MockFDC3Server.ts +++ b/packages/fdc3-get-agent/test/support/MockFDC3Server.ts @@ -1,14 +1,14 @@ import { FDC3Server, InstanceID, State } from '@finos/fdc3-web-impl'; -import { TestServerContext } from './TestServerContext'; -import { MockWindow } from './MockWindow'; -import { AutomaticResponse } from './responses/AutomaticResponses'; -import { Broadcast } from './responses/Broadcast'; -import { FindIntent } from './responses/FindIntent'; -import { RaiseIntent } from './responses/RaiseIntent'; -import { Handshake } from './responses/Handshake'; -import { UserChannels } from './responses/UserChannels'; -import { CurrentChannel } from './responses/CurrentChannel'; -import { GetInfo } from './responses/GetInfo'; +import { TestServerContext } from './TestServerContext.js'; +import { MockWindow } from './MockWindow.js'; +import { AutomaticResponse } from './responses/AutomaticResponses.js'; +import { Broadcast } from './responses/Broadcast.js'; +import { FindIntent } from './responses/FindIntent.js'; +import { RaiseIntent } from './responses/RaiseIntent.js'; +import { Handshake } from './responses/Handshake.js'; +import { UserChannels } from './responses/UserChannels.js'; +import { CurrentChannel } from './responses/CurrentChannel.js'; +import { GetInfo } from './responses/GetInfo.js'; import { AppRequestMessage, WebConnectionProtocol2LoadURL, diff --git a/packages/fdc3-get-agent/test/support/MockIFrame.ts b/packages/fdc3-get-agent/test/support/MockIFrame.ts index 3aeb378d0..180cc6af1 100644 --- a/packages/fdc3-get-agent/test/support/MockIFrame.ts +++ b/packages/fdc3-get-agent/test/support/MockIFrame.ts @@ -1,7 +1,7 @@ -import { CustomWorld } from '../world'; -import { handleChannelSelectorComms, handleEmbeddedIframeComms, handleIntentResolverComms } from './FrameTypes'; -import { EMBED_URL, CHANNEL_SELECTOR_URL, INTENT_RESOLVER_URL } from './MockFDC3Server'; -import { MockWindow } from './MockWindow'; +import { CustomWorld } from '../world/index.js'; +import { handleChannelSelectorComms, handleEmbeddedIframeComms, handleIntentResolverComms } from './FrameTypes.js'; +import { EMBED_URL, CHANNEL_SELECTOR_URL, INTENT_RESOLVER_URL } from './MockFDC3Server.js'; +import { MockWindow } from './MockWindow.js'; export class MockIFrame extends MockWindow { contentWindow: MockWindow; diff --git a/packages/fdc3-get-agent/test/support/MockWindow.ts b/packages/fdc3-get-agent/test/support/MockWindow.ts index 12e30eca3..b025d301d 100644 --- a/packages/fdc3-get-agent/test/support/MockWindow.ts +++ b/packages/fdc3-get-agent/test/support/MockWindow.ts @@ -1,7 +1,7 @@ import { DesktopAgent } from '@finos/fdc3-standard'; -import { CustomWorld } from '../world'; -import { EventHandler } from './EventHandler'; -import { MockElement } from './MockElement'; +import { CustomWorld } from '../world/index.js'; +import { EventHandler } from './EventHandler.js'; +import { MockElement } from './MockElement.js'; import { AgentEventMessage, AgentResponseMessage, @@ -9,7 +9,7 @@ import { Fdc3UserInterfaceMessage, isFdc3UserInterfaceHello, WebConnectionProtocolMessage, -} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; +} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; type STANDARD_MESSAGES = | AppRequestMessage diff --git a/packages/fdc3-get-agent/test/support/TestServerContext.ts b/packages/fdc3-get-agent/test/support/TestServerContext.ts index 06c047153..aaebf3b31 100644 --- a/packages/fdc3-get-agent/test/support/TestServerContext.ts +++ b/packages/fdc3-get-agent/test/support/TestServerContext.ts @@ -1,5 +1,5 @@ import { ServerContext, InstanceID, FDC3Server } from '@finos/fdc3-web-impl'; -import { CustomWorld } from '../world'; +import { CustomWorld } from '../world/index.js'; import { OpenError, AppIdentifier, AppIntent } from '@finos/fdc3-standard'; import { AppRegistration, State } from '@finos/fdc3-web-impl'; diff --git a/packages/fdc3-get-agent/test/support/responses/AutomaticResponses.ts b/packages/fdc3-get-agent/test/support/responses/AutomaticResponses.ts index 779133c83..1c5a7e167 100644 --- a/packages/fdc3-get-agent/test/support/responses/AutomaticResponses.ts +++ b/packages/fdc3-get-agent/test/support/responses/AutomaticResponses.ts @@ -1,5 +1,5 @@ import { InstanceID } from '@finos/fdc3-web-impl'; -import { TestServerContext } from '../TestServerContext'; +import { TestServerContext } from '../TestServerContext.js'; export interface AutomaticResponse { filter: (t: string) => boolean; diff --git a/packages/fdc3-get-agent/test/support/responses/Broadcast.ts b/packages/fdc3-get-agent/test/support/responses/Broadcast.ts index fee8559d9..11e741dd4 100644 --- a/packages/fdc3-get-agent/test/support/responses/Broadcast.ts +++ b/packages/fdc3-get-agent/test/support/responses/Broadcast.ts @@ -1,8 +1,8 @@ -import { TestServerContext } from '../TestServerContext'; +import { TestServerContext } from '../TestServerContext.js'; import { InstanceID } from '@finos/fdc3-web-impl'; -import { AutomaticResponse } from './AutomaticResponses'; -import { BroadcastRequest, BroadcastResponse } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; -import { createUUID } from '../../../src/util/Uuid'; +import { AutomaticResponse } from './AutomaticResponses.js'; +import { BroadcastRequest, BroadcastResponse } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; +import { createUUID } from '../../../src/util/Uuid.js'; export class Broadcast implements AutomaticResponse { filter(t: string) { diff --git a/packages/fdc3-get-agent/test/support/responses/CurrentChannel.ts b/packages/fdc3-get-agent/test/support/responses/CurrentChannel.ts index 31408db8a..6921578d0 100644 --- a/packages/fdc3-get-agent/test/support/responses/CurrentChannel.ts +++ b/packages/fdc3-get-agent/test/support/responses/CurrentChannel.ts @@ -1,10 +1,10 @@ -import { TestServerContext } from '../TestServerContext'; +import { TestServerContext } from '../TestServerContext.js'; import { InstanceID } from '@finos/fdc3-web-impl'; -import { AutomaticResponse } from './AutomaticResponses'; +import { AutomaticResponse } from './AutomaticResponses.js'; import { GetCurrentChannelRequest, GetCurrentChannelResponse, -} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; +} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; export class CurrentChannel implements AutomaticResponse { filter(t: string) { diff --git a/packages/fdc3-get-agent/test/support/responses/FindIntent.ts b/packages/fdc3-get-agent/test/support/responses/FindIntent.ts index 46b70fe1e..127c1b486 100644 --- a/packages/fdc3-get-agent/test/support/responses/FindIntent.ts +++ b/packages/fdc3-get-agent/test/support/responses/FindIntent.ts @@ -1,8 +1,8 @@ -import { TestServerContext } from '../TestServerContext'; +import { TestServerContext } from '../TestServerContext.js'; import { InstanceID } from '@finos/fdc3-web-impl'; -import { AutomaticResponse } from './AutomaticResponses'; +import { AutomaticResponse } from './AutomaticResponses.js'; import { FindIntentRequest, FindIntentResponse } from '@finos/fdc3-schema/generated/api/BrowserTypes'; -import { createUUID } from '../../../src/util/Uuid'; +import { createUUID } from '../../../src/util/Uuid.js'; export class FindIntent implements AutomaticResponse { filter(t: string) { diff --git a/packages/fdc3-get-agent/test/support/responses/GetInfo.ts b/packages/fdc3-get-agent/test/support/responses/GetInfo.ts index 3c96cee59..98f250656 100644 --- a/packages/fdc3-get-agent/test/support/responses/GetInfo.ts +++ b/packages/fdc3-get-agent/test/support/responses/GetInfo.ts @@ -1,7 +1,7 @@ -import { TestServerContext } from '../TestServerContext'; +import { TestServerContext } from '../TestServerContext.js'; import { InstanceID } from '@finos/fdc3-web-impl'; -import { AutomaticResponse } from './AutomaticResponses'; -import { GetInfoRequest, GetInfoResponse } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; +import { AutomaticResponse } from './AutomaticResponses.js'; +import { GetInfoRequest, GetInfoResponse } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; export class GetInfo implements AutomaticResponse { filter(t: string) { diff --git a/packages/fdc3-get-agent/test/support/responses/Handshake.ts b/packages/fdc3-get-agent/test/support/responses/Handshake.ts index 3f9c88214..b8e192aad 100644 --- a/packages/fdc3-get-agent/test/support/responses/Handshake.ts +++ b/packages/fdc3-get-agent/test/support/responses/Handshake.ts @@ -1,11 +1,11 @@ -import { TestServerContext } from '../TestServerContext'; +import { TestServerContext } from '../TestServerContext.js'; import { InstanceID } from '@finos/fdc3-web-impl'; -import { AutomaticResponse } from './AutomaticResponses'; +import { AutomaticResponse } from './AutomaticResponses.js'; import { WebConnectionProtocol4ValidateAppIdentity, WebConnectionProtocol5ValidateAppIdentityFailedResponse, WebConnectionProtocol5ValidateAppIdentitySuccessResponse, -} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; +} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; export const BAD_INSTANCE_ID = 'BAD_INSTANCE'; export const EXPECTED_IDENTITY_URL = 'https://dummyOrigin.test/path'; diff --git a/packages/fdc3-get-agent/test/support/responses/RaiseIntent.ts b/packages/fdc3-get-agent/test/support/responses/RaiseIntent.ts index 8138ba0af..cbbb5ba3b 100644 --- a/packages/fdc3-get-agent/test/support/responses/RaiseIntent.ts +++ b/packages/fdc3-get-agent/test/support/responses/RaiseIntent.ts @@ -1,7 +1,7 @@ -import { TestServerContext } from '../TestServerContext'; +import { TestServerContext } from '../TestServerContext.js'; import { InstanceID } from '@finos/fdc3-web-impl'; -import { AutomaticResponse } from './AutomaticResponses'; -import { RaiseIntentRequest, RaiseIntentResponse } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; +import { AutomaticResponse } from './AutomaticResponses.js'; +import { RaiseIntentRequest, RaiseIntentResponse } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; export class RaiseIntent implements AutomaticResponse { filter(t: string) { @@ -17,7 +17,7 @@ export class RaiseIntent implements AutomaticResponse { payload: { intentResolution: { intent: intentRequest.payload.intent, - source: intentRequest.payload.app!!, + source: intentRequest.payload.app!, }, }, type: 'raiseIntentResponse', diff --git a/packages/fdc3-get-agent/test/support/responses/UserChannels.ts b/packages/fdc3-get-agent/test/support/responses/UserChannels.ts index b0ba19a06..38b912fd8 100644 --- a/packages/fdc3-get-agent/test/support/responses/UserChannels.ts +++ b/packages/fdc3-get-agent/test/support/responses/UserChannels.ts @@ -1,7 +1,7 @@ -import { TestServerContext } from '../TestServerContext'; +import { TestServerContext } from '../TestServerContext.js'; import { InstanceID } from '@finos/fdc3-web-impl'; -import { AutomaticResponse } from './AutomaticResponses'; -import { GetUserChannelsRequest, GetUserChannelsResponse } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; +import { AutomaticResponse } from './AutomaticResponses.js'; +import { GetUserChannelsRequest, GetUserChannelsResponse } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; export const USER_CHANNELS = [ { diff --git a/packages/fdc3-get-agent/test/world/index.ts b/packages/fdc3-get-agent/test/world/index.ts index 65c4ef1ab..1867a5e68 100644 --- a/packages/fdc3-get-agent/test/world/index.ts +++ b/packages/fdc3-get-agent/test/world/index.ts @@ -1,7 +1,7 @@ import { setWorldConstructor } from '@cucumber/cucumber'; import { PropsWorld } from '@finos/testing'; -import { MockFDC3Server } from '../support/MockFDC3Server'; -import { TestServerContext } from '../support/TestServerContext'; +import { MockFDC3Server } from '../support/MockFDC3Server.js'; +import { TestServerContext } from '../support/TestServerContext.js'; export class CustomWorld extends PropsWorld { mockFDC3Server: MockFDC3Server | null = null; diff --git a/packages/fdc3-schema/README.md b/packages/fdc3-schema/README.md index 6d9ec827a..1032fc947 100644 --- a/packages/fdc3-schema/README.md +++ b/packages/fdc3-schema/README.md @@ -17,7 +17,7 @@ import { GetUserChannelsRequest, JoinUserChannelRequest, LeaveCurrentChannelRequest -} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; +} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; ``` Further details: diff --git a/packages/fdc3-schema/code-generation/generate-type-predicates.ts b/packages/fdc3-schema/code-generation/generate-type-predicates.ts index 88f3beb49..7bb785101 100644 --- a/packages/fdc3-schema/code-generation/generate-type-predicates.ts +++ b/packages/fdc3-schema/code-generation/generate-type-predicates.ts @@ -6,7 +6,10 @@ import { SyntaxKind, TypeAliasDeclaration, } from 'ts-morph'; -import print from 'message-await'; +import messageAwait, { MessageAwait } from 'message-await'; + +// Normalise export of message-await so it works with tsx and ts-node +const print: typeof messageAwait = (messageAwait as any).default ?? messageAwait; // open a new project with just BrowserTypes as the only source file const project = new Project(); diff --git a/packages/fdc3-schema/src/index.ts b/packages/fdc3-schema/src/index.ts index 7d7982455..35a145003 100644 --- a/packages/fdc3-schema/src/index.ts +++ b/packages/fdc3-schema/src/index.ts @@ -1,4 +1,4 @@ -import * as BrowserTypes from '../generated/api/BrowserTypes'; -import * as BridgingTypes from '../generated/bridging/BridgingTypes'; +import * as BrowserTypes from '../generated/api/BrowserTypes.js'; +import * as BridgingTypes from '../generated/bridging/BridgingTypes.js'; export { BrowserTypes, BridgingTypes }; diff --git a/packages/fdc3-standard/src/api/AppIntent.ts b/packages/fdc3-standard/src/api/AppIntent.ts index a79beeeeb..519d22414 100644 --- a/packages/fdc3-standard/src/api/AppIntent.ts +++ b/packages/fdc3-standard/src/api/AppIntent.ts @@ -3,8 +3,8 @@ * Copyright FINOS FDC3 contributors - see NOTICE file */ -import { AppMetadata } from './AppMetadata'; -import { IntentMetadata } from './IntentMetadata'; +import { AppMetadata } from './AppMetadata.js'; +import { IntentMetadata } from './IntentMetadata.js'; /** * An interface that relates an intent to apps diff --git a/packages/fdc3-standard/src/api/AppMetadata.ts b/packages/fdc3-standard/src/api/AppMetadata.ts index 3d6aa3f72..4646acbf2 100644 --- a/packages/fdc3-standard/src/api/AppMetadata.ts +++ b/packages/fdc3-standard/src/api/AppMetadata.ts @@ -3,9 +3,9 @@ * Copyright FINOS FDC3 contributors - see NOTICE file */ -import { AppIdentifier } from './AppIdentifier'; -import { Icon } from './Icon'; -import { Image } from './Image'; +import { AppIdentifier } from './AppIdentifier.js'; +import { Icon } from './Icon.js'; +import { Image } from './Image.js'; /** * Extends an `AppIdentifier`, describing an application or instance of an application, with additional descriptive metadata that is usually provided by an FDC3 App Directory that the desktop agent connects to. diff --git a/packages/fdc3-standard/src/api/Channel.ts b/packages/fdc3-standard/src/api/Channel.ts index a11f5178c..c49c23c2d 100644 --- a/packages/fdc3-standard/src/api/Channel.ts +++ b/packages/fdc3-standard/src/api/Channel.ts @@ -4,10 +4,10 @@ */ import { Context } from '@finos/fdc3-context'; -import { ContextHandler } from './Types'; -import { DisplayMetadata } from './DisplayMetadata'; -import { Listener } from './Listener'; -import { EventHandler } from './Events'; +import { ContextHandler } from './Types.js'; +import { DisplayMetadata } from './DisplayMetadata.js'; +import { Listener } from './Listener.js'; +import { EventHandler } from './Events.js'; /** * Represents a context channel that applications can use to send and receive diff --git a/packages/fdc3-standard/src/api/ContextMetadata.ts b/packages/fdc3-standard/src/api/ContextMetadata.ts index ae73d9938..eae0a8017 100644 --- a/packages/fdc3-standard/src/api/ContextMetadata.ts +++ b/packages/fdc3-standard/src/api/ContextMetadata.ts @@ -3,7 +3,7 @@ * Copyright FINOS FDC3 contributors - see NOTICE file */ -import { AppIdentifier } from './AppIdentifier'; +import { AppIdentifier } from './AppIdentifier.js'; /** * Metadata relating to a context or intent and context received through the diff --git a/packages/fdc3-standard/src/api/DesktopAgent.ts b/packages/fdc3-standard/src/api/DesktopAgent.ts index 49fa8935e..9b930aa0d 100644 --- a/packages/fdc3-standard/src/api/DesktopAgent.ts +++ b/packages/fdc3-standard/src/api/DesktopAgent.ts @@ -3,19 +3,19 @@ * Copyright FINOS FDC3 contributors - see NOTICE file */ -import { AppIntent } from './AppIntent'; -import { Channel } from './Channel'; -import { ContextHandler, IntentHandler } from './Types'; -import { IntentResolution } from './IntentResolution'; -import { Listener } from './Listener'; +import { AppIntent } from './AppIntent.js'; +import { Channel } from './Channel.js'; +import { ContextHandler, IntentHandler } from './Types.js'; +import { IntentResolution } from './IntentResolution.js'; +import { Listener } from './Listener.js'; import { Context } from '@finos/fdc3-context'; -import { ImplementationMetadata } from './ImplementationMetadata'; -import { PrivateChannel } from './PrivateChannel'; -import { AppIdentifier } from './AppIdentifier'; -import { AppMetadata } from './AppMetadata'; -import { Intent } from '../intents/Intents'; -import { ContextType } from '../context/ContextType'; -import { EventHandler, FDC3EventTypes } from './Events'; +import { ImplementationMetadata } from './ImplementationMetadata.js'; +import { PrivateChannel } from './PrivateChannel.js'; +import { AppIdentifier } from './AppIdentifier.js'; +import { AppMetadata } from './AppMetadata.js'; +import { Intent } from '../intents/Intents.js'; +import { ContextType } from '../context/ContextType.js'; +import { EventHandler, FDC3EventTypes } from './Events.js'; /** * A Desktop Agent is a desktop component (or aggregate of components) that serves as a diff --git a/packages/fdc3-standard/src/api/GetAgent.ts b/packages/fdc3-standard/src/api/GetAgent.ts index 92aea0d9f..ef5263560 100644 --- a/packages/fdc3-standard/src/api/GetAgent.ts +++ b/packages/fdc3-standard/src/api/GetAgent.ts @@ -2,7 +2,7 @@ * Typescript related to the getAgent() function. Note that GetAgent.md is a copy of this file which has been modified * for display in markdown format. */ -import { DesktopAgent } from './DesktopAgent'; +import { DesktopAgent } from './DesktopAgent.js'; /** * Function used to retrieve an FDC3 Desktop Agent API instance, which diff --git a/packages/fdc3-standard/src/api/ImplementationMetadata.ts b/packages/fdc3-standard/src/api/ImplementationMetadata.ts index b2ede29a5..7d382a6e7 100644 --- a/packages/fdc3-standard/src/api/ImplementationMetadata.ts +++ b/packages/fdc3-standard/src/api/ImplementationMetadata.ts @@ -3,7 +3,7 @@ * Copyright FINOS FDC3 contributors - see NOTICE file */ -import { AppMetadata } from './AppMetadata'; +import { AppMetadata } from './AppMetadata.js'; /** * Metadata relating to the FDC3 Desktop Agent implementation and its provider. diff --git a/packages/fdc3-standard/src/api/IntentMetadata.ts b/packages/fdc3-standard/src/api/IntentMetadata.ts index 97d539cd2..f211cd13e 100644 --- a/packages/fdc3-standard/src/api/IntentMetadata.ts +++ b/packages/fdc3-standard/src/api/IntentMetadata.ts @@ -3,7 +3,7 @@ * Copyright FINOS FDC3 contributors - see NOTICE file */ -import { Intent } from '../intents/Intents'; +import { Intent } from '../intents/Intents.js'; /** * Intent descriptor diff --git a/packages/fdc3-standard/src/api/IntentResolution.ts b/packages/fdc3-standard/src/api/IntentResolution.ts index fe7f2144b..9f8b23209 100644 --- a/packages/fdc3-standard/src/api/IntentResolution.ts +++ b/packages/fdc3-standard/src/api/IntentResolution.ts @@ -3,9 +3,9 @@ * Copyright FINOS FDC3 contributors - see NOTICE file */ -import { IntentResult } from './Types'; -import { AppIdentifier } from './AppIdentifier'; -import { Intent } from '../intents/Intents'; +import { IntentResult } from './Types.js'; +import { AppIdentifier } from './AppIdentifier.js'; +import { Intent } from '../intents/Intents.js'; /** * IntentResolution provides a standard format for data returned upon resolving an intent. diff --git a/packages/fdc3-standard/src/api/Methods.ts b/packages/fdc3-standard/src/api/Methods.ts index a32357d4d..24b1c6161 100644 --- a/packages/fdc3-standard/src/api/Methods.ts +++ b/packages/fdc3-standard/src/api/Methods.ts @@ -20,9 +20,9 @@ import { FDC3EventTypes, EventHandler, DesktopAgent, -} from '..'; -import { StandardContextsSet } from '../internal/contextConfiguration'; -import { StandardIntentsSet } from '../internal/intentConfiguration'; +} from '../index.js'; +import { StandardContextsSet } from '../internal/contextConfiguration.js'; +import { StandardIntentsSet } from '../internal/intentConfiguration.js'; import { Context } from '@finos/fdc3-context'; const UnavailableError = new Error('FDC3 DesktopAgent not available at `window.fdc3`.'); diff --git a/packages/fdc3-standard/src/api/PrivateChannel.ts b/packages/fdc3-standard/src/api/PrivateChannel.ts index 922411466..7fa2c4020 100644 --- a/packages/fdc3-standard/src/api/PrivateChannel.ts +++ b/packages/fdc3-standard/src/api/PrivateChannel.ts @@ -3,9 +3,9 @@ * Copyright 2021 FINOS FDC3 contributors - see NOTICE file */ -import { Listener } from './Listener'; -import { Channel } from './Channel'; -import { EventHandler, PrivateChannelEventTypes } from './Events'; +import { Listener } from './Listener.js'; +import { Channel } from './Channel.js'; +import { EventHandler, PrivateChannelEventTypes } from './Events.js'; /** * Object representing a private context channel, which is intended to support diff --git a/packages/fdc3-standard/src/api/RecommendedChannels.ts b/packages/fdc3-standard/src/api/RecommendedChannels.ts index 502181a85..d01cf858c 100644 --- a/packages/fdc3-standard/src/api/RecommendedChannels.ts +++ b/packages/fdc3-standard/src/api/RecommendedChannels.ts @@ -3,7 +3,7 @@ * Copyright FINOS FDC3 contributors - see NOTICE file */ -import { DisplayMetadata } from './DisplayMetadata'; +import { DisplayMetadata } from './DisplayMetadata.js'; /** Interface representing the data fields of a user channel, without the functions. */ interface UserChannelTemplate { diff --git a/packages/fdc3-standard/src/api/Types.ts b/packages/fdc3-standard/src/api/Types.ts index ac6bf6e2c..b0a494c0d 100644 --- a/packages/fdc3-standard/src/api/Types.ts +++ b/packages/fdc3-standard/src/api/Types.ts @@ -4,8 +4,8 @@ */ import { Context } from '@finos/fdc3-context'; -import { Channel } from './Channel'; -import { ContextMetadata } from './ContextMetadata'; +import { Channel } from './Channel.js'; +import { ContextMetadata } from './ContextMetadata.js'; /** * Describes a callback that handles a context event. diff --git a/packages/fdc3-standard/src/index.ts b/packages/fdc3-standard/src/index.ts index 8450f5ebc..fb951fde6 100644 --- a/packages/fdc3-standard/src/index.ts +++ b/packages/fdc3-standard/src/index.ts @@ -3,35 +3,35 @@ * Copyright 2019 FINOS FDC3 contributors - see NOTICE file */ -import { DesktopAgent } from './api/DesktopAgent'; +import { DesktopAgent } from './api/DesktopAgent.js'; //explicit overwrite of conflicting & equivalent export from ContextTypes -export { AppIdentifier } from './api/AppIdentifier'; -export * from './api/AppIntent'; -export * from './api/AppMetadata'; -export * from './api/Channel'; -export * from './api/ContextMetadata'; -export * from './api/DesktopAgent'; -export * from './api/DisplayMetadata'; -export * from './api/Errors'; -export * from './api/GetAgent'; -export * from './api/Icon'; -export * from './api/Image'; -export * from './api/ImplementationMetadata'; -export * from './api/IntentMetadata'; -export * from './api/IntentResolution'; -export * from './api/Listener'; -export * from './api/Methods'; -export * from './api/PrivateChannel'; -export * from './api/RecommendedChannels'; -export * from './api/Types'; -export * from './api/Events'; -export * from './api/GetAgent'; -export * from './context/ContextType'; -export * from './intents/Intents'; -export * from './ui/IntentResolver'; -export * from './ui/ChannelSelector'; -export * from './ui/Connectable'; +export { AppIdentifier } from './api/AppIdentifier.js'; +export * from './api/AppIntent.js'; +export * from './api/AppMetadata.js'; +export * from './api/Channel.js'; +export * from './api/ContextMetadata.js'; +export * from './api/DesktopAgent.js'; +export * from './api/DisplayMetadata.js'; +export * from './api/Errors.js'; +export * from './api/GetAgent.js'; +export * from './api/Icon.js'; +export * from './api/Image.js'; +export * from './api/ImplementationMetadata.js'; +export * from './api/IntentMetadata.js'; +export * from './api/IntentResolution.js'; +export * from './api/Listener.js'; +export * from './api/Methods.js'; +export * from './api/PrivateChannel.js'; +export * from './api/RecommendedChannels.js'; +export * from './api/Types.js'; +export * from './api/Events.js'; +export * from './api/GetAgent.js'; +export * from './context/ContextType.js'; +export * from './intents/Intents.js'; +export * from './ui/IntentResolver.js'; +export * from './ui/ChannelSelector.js'; +export * from './ui/Connectable.js'; export const FDC3_VERSION = '2.2'; diff --git a/packages/fdc3-standard/src/internal/contextConfiguration.ts b/packages/fdc3-standard/src/internal/contextConfiguration.ts index 8869aa0f2..09cdbb632 100644 --- a/packages/fdc3-standard/src/internal/contextConfiguration.ts +++ b/packages/fdc3-standard/src/internal/contextConfiguration.ts @@ -1,5 +1,5 @@ -import { StandardContextType } from '../context/ContextType'; -import { exhaustiveStringTuple } from './typeHelpers'; +import { StandardContextType } from '../context/ContextType.js'; +import { exhaustiveStringTuple } from './typeHelpers.js'; const STANDARD_CONTEXT_TYPES = exhaustiveStringTuple()( 'fdc3.action', diff --git a/packages/fdc3-standard/src/internal/intentConfiguration.ts b/packages/fdc3-standard/src/internal/intentConfiguration.ts index 35ee8da4a..97d074e66 100644 --- a/packages/fdc3-standard/src/internal/intentConfiguration.ts +++ b/packages/fdc3-standard/src/internal/intentConfiguration.ts @@ -1,5 +1,5 @@ -import { StandardIntent } from '../intents/Intents'; -import { exhaustiveStringTuple } from './typeHelpers'; +import { StandardIntent } from '../intents/Intents.js'; +import { exhaustiveStringTuple } from './typeHelpers.js'; const STANDARD_INTENTS = exhaustiveStringTuple()( 'CreateInteraction', diff --git a/packages/fdc3-standard/src/ui/ChannelSelector.ts b/packages/fdc3-standard/src/ui/ChannelSelector.ts index d5e95caa0..79d5f8f39 100644 --- a/packages/fdc3-standard/src/ui/ChannelSelector.ts +++ b/packages/fdc3-standard/src/ui/ChannelSelector.ts @@ -1,5 +1,5 @@ -import { Channel } from '../api/Channel'; -import { Connectable } from '../ui/Connectable'; +import { Channel } from '../api/Channel.js'; +import { Connectable } from '../ui/Connectable.js'; /** * Interface used by the desktop agent proxy to handle the channel selection process. diff --git a/packages/fdc3-standard/src/ui/IntentResolver.ts b/packages/fdc3-standard/src/ui/IntentResolver.ts index 6c4ff2b58..33e15f8be 100644 --- a/packages/fdc3-standard/src/ui/IntentResolver.ts +++ b/packages/fdc3-standard/src/ui/IntentResolver.ts @@ -1,7 +1,7 @@ import { Context } from '@finos/fdc3-context'; -import { AppIdentifier } from '../api/AppIdentifier'; -import { AppIntent } from '../api/AppIntent'; -import { Connectable } from './Connectable'; +import { AppIdentifier } from '../api/AppIdentifier.js'; +import { AppIntent } from '../api/AppIntent.js'; +import { Connectable } from './Connectable.js'; export type IntentResolutionChoice = { intent: string; diff --git a/packages/fdc3-standard/test/Methods.test.ts b/packages/fdc3-standard/test/Methods.test.ts index 33ba75733..b911f5cdd 100644 --- a/packages/fdc3-standard/test/Methods.test.ts +++ b/packages/fdc3-standard/test/Methods.test.ts @@ -27,7 +27,7 @@ import { findInstances, isStandardContextType, isStandardIntent, -} from '../src'; +} from '../src/index.js'; const UnavailableError = new Error('FDC3 DesktopAgent not available at `window.fdc3`.'); const TimeoutError = new Error('Timed out waiting for `fdc3Ready` event.'); diff --git a/packages/testing/src/agent/index.ts b/packages/testing/src/agent/index.ts index d324268b2..2a233a8d4 100644 --- a/packages/testing/src/agent/index.ts +++ b/packages/testing/src/agent/index.ts @@ -1,7 +1,7 @@ import { AppIntent, Channel, IntentResult } from '@finos/fdc3-standard'; import { Context } from '@finos/fdc3-context'; import { IntentResolver, IntentResolutionChoice, ChannelSelector } from '@finos/fdc3-standard'; -import { PropsWorld } from '../world'; +import { PropsWorld } from '../world/index.js'; /** * This super-simple intent resolver just resolves to the first @@ -14,9 +14,9 @@ export class SimpleIntentResolver implements IntentResolver { this.cw = cw; } - async connect(): Promise { } + async connect(): Promise {} - async disconnect(): Promise { } + async disconnect(): Promise {} async intentChosen(ir: IntentResult): Promise { this.cw.props['intent-result'] = ir; @@ -55,9 +55,9 @@ export class SimpleChannelSelector implements ChannelSelector { this.cw.props['channels'] = availableChannels; } - setChannelChangeCallback(_callback: (channelId: string | null) => void): void { } + setChannelChangeCallback(_callback: (channelId: string | null) => void): void {} - async connect(): Promise { } + async connect(): Promise {} - async disconnect(): Promise { } + async disconnect(): Promise {} } diff --git a/packages/testing/src/index.ts b/packages/testing/src/index.ts index 5c99d48c6..4800e34c9 100644 --- a/packages/testing/src/index.ts +++ b/packages/testing/src/index.ts @@ -1,9 +1,9 @@ -import { setupGenericSteps } from './steps/generic.steps'; -import { doesRowMatch, handleResolve, indexOf, matchData } from './support/matching'; -import { PropsWorld } from './world'; +import { setupGenericSteps } from './steps/generic.steps.js'; +import { doesRowMatch, handleResolve, indexOf, matchData } from './support/matching.js'; +import { PropsWorld } from './world/index.js'; import Ajv2019 from 'ajv/dist/2019'; import addFormats from 'ajv-formats'; -import { SimpleIntentResolver, CHANNEL_STATE } from './agent'; +import { SimpleIntentResolver, CHANNEL_STATE } from './agent/index.js'; export { PropsWorld, diff --git a/packages/testing/src/steps/generic.steps.ts b/packages/testing/src/steps/generic.steps.ts index 957758c26..903bd8853 100644 --- a/packages/testing/src/steps/generic.steps.ts +++ b/packages/testing/src/steps/generic.steps.ts @@ -3,8 +3,8 @@ import Ajv2019 from 'ajv/dist/2019'; import * as draft7MetaSchema from 'ajv/dist/refs/json-schema-draft-07.json'; import addFormats from 'ajv-formats'; import { expect } from 'expect'; -import { doesRowMatch, handleResolve, matchData } from '../support/matching'; -import { PropsWorld } from '../world'; +import { doesRowMatch, handleResolve, matchData } from '../support/matching.js'; +import { PropsWorld } from '../world/index.js'; import fs from 'fs'; import path from 'path'; diff --git a/packages/testing/src/support/matching.ts b/packages/testing/src/support/matching.ts index c4b772372..205648b93 100644 --- a/packages/testing/src/support/matching.ts +++ b/packages/testing/src/support/matching.ts @@ -1,5 +1,5 @@ import { JSONPath } from 'jsonpath-plus'; -import { PropsWorld } from '../world'; +import { PropsWorld } from '../world/index.js'; import expect from 'expect'; import { DataTable } from '@cucumber/cucumber'; import Ajv from 'ajv/dist/2019'; diff --git a/toolbox/fdc3-for-web/demo/src/client/apps/app3.ts b/toolbox/fdc3-for-web/demo/src/client/apps/app3.ts index 125001577..5b806b3f3 100644 --- a/toolbox/fdc3-for-web/demo/src/client/apps/app3.ts +++ b/toolbox/fdc3-for-web/demo/src/client/apps/app3.ts @@ -1,5 +1,5 @@ -import './app1'; -import './app2'; +import './app1.js'; +import './app2.js'; /** * This demonstrates getting two separate APIs in the same app, and using them for diff --git a/toolbox/fdc3-for-web/demo/src/client/da/DemoServerContext.ts b/toolbox/fdc3-for-web/demo/src/client/da/DemoServerContext.ts index 641dd6fd6..a99f519da 100644 --- a/toolbox/fdc3-for-web/demo/src/client/da/DemoServerContext.ts +++ b/toolbox/fdc3-for-web/demo/src/client/da/DemoServerContext.ts @@ -9,7 +9,7 @@ import { } from '@finos/fdc3-web-impl'; import { Socket } from 'socket.io-client'; import { v4 as uuid } from 'uuid'; -import { FDC3_DA_EVENT } from '../../message-types'; +import { FDC3_DA_EVENT } from '../../message-types.js'; import { AppIdentifier, AppIntent, OpenError } from '@finos/fdc3'; enum Opener { diff --git a/toolbox/fdc3-for-web/demo/src/client/da/dummy-desktop-agent.ts b/toolbox/fdc3-for-web/demo/src/client/da/dummy-desktop-agent.ts index 9e6f60335..4dae18396 100644 --- a/toolbox/fdc3-for-web/demo/src/client/da/dummy-desktop-agent.ts +++ b/toolbox/fdc3-for-web/demo/src/client/da/dummy-desktop-agent.ts @@ -1,13 +1,13 @@ import { io } from 'socket.io-client'; import { v4 as uuid } from 'uuid'; -import { APP_GOODBYE, DA_HELLO, FDC3_APP_EVENT } from '../../message-types'; -import { DemoServerContext } from './DemoServerContext'; -import { FDC3_2_1_JSONDirectory } from './FDC3_2_1_JSONDirectory'; +import { APP_GOODBYE, DA_HELLO, FDC3_APP_EVENT } from '../../message-types.js'; +import { DemoServerContext } from './DemoServerContext.js'; +import { FDC3_2_1_JSONDirectory } from './FDC3_2_1_JSONDirectory.js'; import { AppRegistration, DefaultFDC3Server, DirectoryApp, ServerContext } from '@finos/fdc3-web-impl'; -import { ChannelState, ChannelType } from '@finos/fdc3-web-impl/src/handlers/BroadcastHandler'; -import { UI, UI_URLS } from './util'; +import { ChannelState, ChannelType } from '@finos/fdc3-web-impl/src/handlers/BroadcastHandler.js'; +import { UI, UI_URLS } from './util.js'; import { BrowserTypes } from '@finos/fdc3-schema'; -import { WebConnectionProtocol3Handshake } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; +import { WebConnectionProtocol3Handshake } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; type WebConnectionProtocol2LoadURL = BrowserTypes.WebConnectionProtocol2LoadURL; diff --git a/toolbox/fdc3-for-web/demo/src/client/da/embed.ts b/toolbox/fdc3-for-web/demo/src/client/da/embed.ts index b0d66dacf..530dec5d0 100644 --- a/toolbox/fdc3-for-web/demo/src/client/da/embed.ts +++ b/toolbox/fdc3-for-web/demo/src/client/da/embed.ts @@ -1,7 +1,7 @@ import { io } from 'socket.io-client'; -import { link, UI, UI_URLS } from './util'; -import { APP_HELLO } from '../../message-types'; -import { isWebConnectionProtocol1Hello } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; +import { link, UI, UI_URLS } from './util.js'; +import { APP_HELLO } from '../../message-types.js'; +import { isWebConnectionProtocol1Hello } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; const appWindow = window.parent; diff --git a/toolbox/fdc3-for-web/demo/src/client/da/util.ts b/toolbox/fdc3-for-web/demo/src/client/da/util.ts index 2bf22b3b3..5ef5b4ad6 100644 --- a/toolbox/fdc3-for-web/demo/src/client/da/util.ts +++ b/toolbox/fdc3-for-web/demo/src/client/da/util.ts @@ -1,6 +1,6 @@ import { InstanceID } from '@finos/fdc3-web-impl'; import { Socket } from 'socket.io-client'; -import { FDC3_APP_EVENT, FDC3_DA_EVENT } from '../../message-types'; +import { FDC3_APP_EVENT, FDC3_DA_EVENT } from '../../message-types.js'; export enum UI { DEFAULT, diff --git a/toolbox/fdc3-for-web/demo/src/client/ui/channel-selector.ts b/toolbox/fdc3-for-web/demo/src/client/ui/channel-selector.ts index 34100b626..8fe457f39 100644 --- a/toolbox/fdc3-for-web/demo/src/client/ui/channel-selector.ts +++ b/toolbox/fdc3-for-web/demo/src/client/ui/channel-selector.ts @@ -1,5 +1,5 @@ -import { selectHighestContrast } from './contrast'; -import { dragElement } from './drag'; +import { selectHighestContrast } from './contrast.js'; +import { dragElement } from './drag.js'; import { Channel, Fdc3UserInterfaceChannelSelected, @@ -8,7 +8,7 @@ import { isFdc3UserInterfaceChannels, isFdc3UserInterfaceHandshake, UpdatedCSS, -} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; +} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; let channels: Channel[] = []; let channelId: string | null = null; diff --git a/toolbox/fdc3-for-web/demo/src/client/ui/drag.ts b/toolbox/fdc3-for-web/demo/src/client/ui/drag.ts index d551712b3..6b76f734a 100644 --- a/toolbox/fdc3-for-web/demo/src/client/ui/drag.ts +++ b/toolbox/fdc3-for-web/demo/src/client/ui/drag.ts @@ -1,4 +1,4 @@ -import { Position } from './channel-selector'; +import { Position } from './channel-selector.js'; export function dragElement(drag: HTMLElement, selector: HTMLElement, position: Position) { let posXDrag = 0, diff --git a/toolbox/fdc3-for-web/demo/src/client/ui/intent-resolver.ts b/toolbox/fdc3-for-web/demo/src/client/ui/intent-resolver.ts index e38911d99..c4ad0a78a 100644 --- a/toolbox/fdc3-for-web/demo/src/client/ui/intent-resolver.ts +++ b/toolbox/fdc3-for-web/demo/src/client/ui/intent-resolver.ts @@ -5,7 +5,7 @@ import { Fdc3UserInterfaceRestyle, isFdc3UserInterfaceHandshake, isFdc3UserInterfaceResolve, -} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; +} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; import { AppIdentifier } from '@finos/fdc3-standard'; const DEFAULT_COLLAPSED_CSS = { diff --git a/toolbox/fdc3-for-web/demo/src/server/main.ts b/toolbox/fdc3-for-web/demo/src/server/main.ts index 023151574..91cbc00f5 100644 --- a/toolbox/fdc3-for-web/demo/src/server/main.ts +++ b/toolbox/fdc3-for-web/demo/src/server/main.ts @@ -1,7 +1,7 @@ import express from 'express'; import ViteExpress from 'vite-express'; import { Server, Socket } from 'socket.io'; -import { APP_GOODBYE, APP_HELLO, DA_HELLO, FDC3_APP_EVENT, FDC3_DA_EVENT } from '../message-types'; +import { APP_GOODBYE, APP_HELLO, DA_HELLO, FDC3_APP_EVENT, FDC3_DA_EVENT } from '../message-types.js'; const app = express(); diff --git a/toolbox/fdc3-for-web/fdc3-web-impl/src/BasicFDC3Server.ts b/toolbox/fdc3-for-web/fdc3-web-impl/src/BasicFDC3Server.ts index d5cefd69f..a924bb05a 100644 --- a/toolbox/fdc3-for-web/fdc3-web-impl/src/BasicFDC3Server.ts +++ b/toolbox/fdc3-for-web/fdc3-web-impl/src/BasicFDC3Server.ts @@ -1,15 +1,15 @@ -import { FDC3Server } from './FDC3Server'; -import { AppRegistration, InstanceID, ServerContext, State } from './ServerContext'; -import { BroadcastHandler, ChannelState } from './handlers/BroadcastHandler'; -import { IntentHandler } from './handlers/IntentHandler'; -import { Directory } from './directory/DirectoryInterface'; -import { OpenHandler } from './handlers/OpenHandler'; -import { HeartbeatHandler } from './handlers/HeartbeatHandler'; +import { FDC3Server } from './FDC3Server.js'; +import { AppRegistration, InstanceID, ServerContext, State } from './ServerContext.js'; +import { BroadcastHandler, ChannelState } from './handlers/BroadcastHandler.js'; +import { IntentHandler } from './handlers/IntentHandler.js'; +import { Directory } from './directory/DirectoryInterface.js'; +import { OpenHandler } from './handlers/OpenHandler.js'; +import { HeartbeatHandler } from './handlers/HeartbeatHandler.js'; import { AppRequestMessage, WebConnectionProtocol4ValidateAppIdentity, WebConnectionProtocol6Goodbye, -} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; +} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; export interface MessageHandler { /** diff --git a/toolbox/fdc3-for-web/fdc3-web-impl/src/FDC3Server.ts b/toolbox/fdc3-for-web/fdc3-web-impl/src/FDC3Server.ts index 1f4f8c6af..f96ab280e 100644 --- a/toolbox/fdc3-for-web/fdc3-web-impl/src/FDC3Server.ts +++ b/toolbox/fdc3-for-web/fdc3-web-impl/src/FDC3Server.ts @@ -1,4 +1,4 @@ -import { InstanceID } from './ServerContext'; +import { InstanceID } from './ServerContext.js'; import { BrowserTypes } from '@finos/fdc3-schema'; type AppRequestMessage = BrowserTypes.AppRequestMessage; diff --git a/toolbox/fdc3-for-web/fdc3-web-impl/src/ServerContext.ts b/toolbox/fdc3-for-web/fdc3-web-impl/src/ServerContext.ts index f59cec41f..8e8ca067c 100644 --- a/toolbox/fdc3-for-web/fdc3-web-impl/src/ServerContext.ts +++ b/toolbox/fdc3-for-web/fdc3-web-impl/src/ServerContext.ts @@ -1,6 +1,6 @@ import { AppIdentifier, AppIntent } from '@finos/fdc3-standard'; import { Context } from '@finos/fdc3-context'; -import { FDC3Server } from './FDC3Server'; +import { FDC3Server } from './FDC3Server.js'; export enum State { Pending /* App has started, but not completed FDC3 Handshake */, diff --git a/toolbox/fdc3-for-web/fdc3-web-impl/src/directory/BasicDirectory.ts b/toolbox/fdc3-for-web/fdc3-web-impl/src/directory/BasicDirectory.ts index fc007ff39..3a8ef3901 100644 --- a/toolbox/fdc3-for-web/fdc3-web-impl/src/directory/BasicDirectory.ts +++ b/toolbox/fdc3-for-web/fdc3-web-impl/src/directory/BasicDirectory.ts @@ -1,4 +1,4 @@ -import { Directory, DirectoryApp, DirectoryIntent } from './DirectoryInterface'; +import { Directory, DirectoryApp, DirectoryIntent } from './DirectoryInterface.js'; export function genericResultTypeSame(real: string | undefined, required: string | undefined) { if (required == undefined) { diff --git a/toolbox/fdc3-for-web/fdc3-web-impl/src/directory/DirectoryInterface.ts b/toolbox/fdc3-for-web/fdc3-web-impl/src/directory/DirectoryInterface.ts index 29778f6d2..7d44b9223 100644 --- a/toolbox/fdc3-for-web/fdc3-web-impl/src/directory/DirectoryInterface.ts +++ b/toolbox/fdc3-for-web/fdc3-web-impl/src/directory/DirectoryInterface.ts @@ -1,4 +1,4 @@ -import { components } from '../../generated/directory-schema'; +import { components } from '../../generated/directory-schema.js'; type schemas = components['schemas']; diff --git a/toolbox/fdc3-for-web/fdc3-web-impl/src/handlers/BroadcastHandler.ts b/toolbox/fdc3-for-web/fdc3-web-impl/src/handlers/BroadcastHandler.ts index f0b2a2fe2..8de807c5c 100644 --- a/toolbox/fdc3-for-web/fdc3-web-impl/src/handlers/BroadcastHandler.ts +++ b/toolbox/fdc3-for-web/fdc3-web-impl/src/handlers/BroadcastHandler.ts @@ -1,7 +1,7 @@ -import { MessageHandler } from '../BasicFDC3Server'; -import { AppRegistration, InstanceID, ServerContext } from '../ServerContext'; +import { MessageHandler } from '../BasicFDC3Server.js'; +import { AppRegistration, InstanceID, ServerContext } from '../ServerContext.js'; import { AppIdentifier, ChannelError, DisplayMetadata, PrivateChannelEventTypes } from '@finos/fdc3-standard'; -import { successResponse, errorResponse, FullAppIdentifier } from './support'; +import { successResponse, errorResponse, FullAppIdentifier } from './support.js'; import { AddContextListenerRequest, AddEventListenerRequest, @@ -24,7 +24,7 @@ import { PrivateChannelOnDisconnectEvent, PrivateChannelOnUnsubscribeEvent, PrivateChannelUnsubscribeEventListenerRequest, -} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; +} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; import { Context } from '@finos/fdc3-context'; type PrivateChannelEvents = diff --git a/toolbox/fdc3-for-web/fdc3-web-impl/src/handlers/HeartbeatHandler.ts b/toolbox/fdc3-for-web/fdc3-web-impl/src/handlers/HeartbeatHandler.ts index a1c0cbbbe..f346a647e 100644 --- a/toolbox/fdc3-for-web/fdc3-web-impl/src/handlers/HeartbeatHandler.ts +++ b/toolbox/fdc3-for-web/fdc3-web-impl/src/handlers/HeartbeatHandler.ts @@ -1,11 +1,11 @@ -import { MessageHandler } from '../BasicFDC3Server'; -import { AppRegistration, InstanceID, ServerContext, State } from '../ServerContext'; +import { MessageHandler } from '../BasicFDC3Server.js'; +import { AppRegistration, InstanceID, ServerContext, State } from '../ServerContext.js'; import { AppRequestMessage, HeartbeatEvent, WebConnectionProtocol6Goodbye, -} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; -import { FullAppIdentifier } from './support'; +} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; +import { FullAppIdentifier } from './support.js'; type HeartbeatDetails = { instanceId: string; diff --git a/toolbox/fdc3-for-web/fdc3-web-impl/src/handlers/IntentHandler.ts b/toolbox/fdc3-for-web/fdc3-web-impl/src/handlers/IntentHandler.ts index c58147c7c..b24443064 100644 --- a/toolbox/fdc3-for-web/fdc3-web-impl/src/handlers/IntentHandler.ts +++ b/toolbox/fdc3-for-web/fdc3-web-impl/src/handlers/IntentHandler.ts @@ -1,6 +1,6 @@ -import { MessageHandler } from '../BasicFDC3Server'; -import { AppRegistration, InstanceID, ServerContext, State } from '../ServerContext'; -import { Directory, DirectoryIntent } from '../directory/DirectoryInterface'; +import { MessageHandler } from '../BasicFDC3Server.js'; +import { AppRegistration, InstanceID, ServerContext, State } from '../ServerContext.js'; +import { Directory, DirectoryIntent } from '../directory/DirectoryInterface.js'; import { Context } from '@finos/fdc3-context'; import { AppIntent, ResolveError, AppIdentifier } from '@finos/fdc3-standard'; import { @@ -10,7 +10,7 @@ import { isFullAppIdentifier, successResponse, successResponseId, -} from './support'; +} from './support.js'; import { IntentEvent, FindIntentsByContextRequest, @@ -22,7 +22,7 @@ import { IntentResultRequest, AppRequestMessage, AgentResponseMessage, -} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; +} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; type ListenerRegistration = { appId: string; diff --git a/toolbox/fdc3-for-web/fdc3-web-impl/src/handlers/OpenHandler.ts b/toolbox/fdc3-for-web/fdc3-web-impl/src/handlers/OpenHandler.ts index e374a0e8f..d7cfc9734 100644 --- a/toolbox/fdc3-for-web/fdc3-web-impl/src/handlers/OpenHandler.ts +++ b/toolbox/fdc3-for-web/fdc3-web-impl/src/handlers/OpenHandler.ts @@ -1,10 +1,10 @@ -import { MessageHandler } from '../BasicFDC3Server'; -import { AppRegistration, InstanceID, ServerContext, State } from '../ServerContext'; -import { Directory, DirectoryApp } from '../directory/DirectoryInterface'; +import { MessageHandler } from '../BasicFDC3Server.js'; +import { AppRegistration, InstanceID, ServerContext, State } from '../ServerContext.js'; +import { Directory, DirectoryApp } from '../directory/DirectoryInterface.js'; import { ContextElement } from '@finos/fdc3-context'; import { OpenError, ResolveError, AppIdentifier, AppMetadata, ImplementationMetadata } from '@finos/fdc3-standard'; import { BrowserTypes } from '@finos/fdc3-schema'; -import { errorResponse, FullAppIdentifier, successResponse } from './support'; +import { errorResponse, FullAppIdentifier, successResponse } from './support.js'; import { AgentResponseMessage, AppRequestMessage, @@ -15,7 +15,7 @@ import { isGetInfoRequest, isOpenRequest, isWebConnectionProtocol4ValidateAppIdentity, -} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; +} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; type BroadcastEvent = BrowserTypes.BroadcastEvent; type AddContextListenerRequest = BrowserTypes.AddContextListenerRequest; diff --git a/toolbox/fdc3-for-web/fdc3-web-impl/src/handlers/support.ts b/toolbox/fdc3-for-web/fdc3-web-impl/src/handlers/support.ts index bba84d7e8..46bcf151f 100644 --- a/toolbox/fdc3-for-web/fdc3-web-impl/src/handlers/support.ts +++ b/toolbox/fdc3-for-web/fdc3-web-impl/src/handlers/support.ts @@ -1,5 +1,5 @@ -import { AgentResponseMessage, AppRequestMessage } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; -import { AppRegistration, ServerContext } from '../ServerContext'; +import { AgentResponseMessage, AppRequestMessage } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; +import { AppRegistration, ServerContext } from '../ServerContext.js'; import { AppIdentifier } from '@finos/fdc3-standard'; /** Interface representing a full specified app identifier (instanceId is optional in the API type). */ diff --git a/toolbox/fdc3-for-web/fdc3-web-impl/src/index.ts b/toolbox/fdc3-for-web/fdc3-web-impl/src/index.ts index 1fef23ec3..bb9b1e8a4 100644 --- a/toolbox/fdc3-for-web/fdc3-web-impl/src/index.ts +++ b/toolbox/fdc3-for-web/fdc3-web-impl/src/index.ts @@ -1,11 +1,11 @@ -import { ServerContext, InstanceID, State, AppRegistration } from './ServerContext'; -import { BasicFDC3Server, DefaultFDC3Server } from './BasicFDC3Server'; -import { FDC3Server } from './FDC3Server'; -import { Directory, DirectoryApp, DirectoryIntent, WebAppDetails } from './directory/DirectoryInterface'; -import { BasicDirectory } from './directory/BasicDirectory'; -import { BroadcastHandler, ChannelState, ChannelType } from './handlers/BroadcastHandler'; -import { IntentHandler } from './handlers/IntentHandler'; -import { OpenHandler } from './handlers/OpenHandler'; +import { ServerContext, InstanceID, State, AppRegistration } from './ServerContext.js'; +import { BasicFDC3Server, DefaultFDC3Server } from './BasicFDC3Server.js'; +import { FDC3Server } from './FDC3Server.js'; +import { Directory, DirectoryApp, DirectoryIntent, WebAppDetails } from './directory/DirectoryInterface.js'; +import { BasicDirectory } from './directory/BasicDirectory.js'; +import { BroadcastHandler, ChannelState, ChannelType } from './handlers/BroadcastHandler.js'; +import { IntentHandler } from './handlers/IntentHandler.js'; +import { OpenHandler } from './handlers/OpenHandler.js'; export { type InstanceID, diff --git a/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/app-channel.steps.ts b/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/app-channel.steps.ts index 94218223b..d8298df05 100644 --- a/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/app-channel.steps.ts +++ b/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/app-channel.steps.ts @@ -1,6 +1,6 @@ import { When } from '@cucumber/cucumber'; -import { CustomWorld } from '../world'; -import { createMeta } from './generic.steps'; +import { CustomWorld } from '../world/index.js'; +import { createMeta } from './generic.steps.js'; import { handleResolve } from '@finos/testing'; import { BrowserTypes } from '@finos/fdc3-schema'; type GetOrCreateChannelRequest = BrowserTypes.GetOrCreateChannelRequest; diff --git a/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/broadcast.steps.ts b/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/broadcast.steps.ts index 94ae44c66..e74e408c1 100644 --- a/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/broadcast.steps.ts +++ b/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/broadcast.steps.ts @@ -1,9 +1,9 @@ import { When } from '@cucumber/cucumber'; -import { CustomWorld } from '../world'; -import { createMeta } from './generic.steps'; +import { CustomWorld } from '../world/index.js'; +import { createMeta } from './generic.steps.js'; import {} from '@finos/fdc3-standard'; import { handleResolve } from '@finos/testing'; -import { contextMap } from './generic.steps'; +import { contextMap } from './generic.steps.js'; import { BrowserTypes } from '@finos/fdc3-schema'; type AddContextListenerRequest = BrowserTypes.AddContextListenerRequest; diff --git a/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/generic.steps.ts b/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/generic.steps.ts index 1ee6f8398..cfd1a4f3d 100644 --- a/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/generic.steps.ts +++ b/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/generic.steps.ts @@ -1,9 +1,9 @@ import { Given, When } from '@cucumber/cucumber'; -import { CustomWorld } from '../world'; -import { TestServerContext } from '../support/TestServerContext'; -import { DefaultFDC3Server } from '../../src/BasicFDC3Server'; -import { BasicDirectory } from '../../src/directory/BasicDirectory'; -import { ChannelType } from '../../src/handlers/BroadcastHandler'; +import { CustomWorld } from '../world/index.js'; +import { TestServerContext } from '../support/TestServerContext.js'; +import { DefaultFDC3Server } from '../../src/BasicFDC3Server.js'; +import { BasicDirectory } from '../../src/directory/BasicDirectory.js'; +import { ChannelType } from '../../src/handlers/BroadcastHandler.js'; import { Context } from '@finos/fdc3-context'; import { AppIdentifier } from '@finos/fdc3-standard'; diff --git a/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/heartbeat.steps.ts b/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/heartbeat.steps.ts index 733b03066..375c1759c 100644 --- a/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/heartbeat.steps.ts +++ b/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/heartbeat.steps.ts @@ -1,11 +1,11 @@ import { Given, Then } from '@cucumber/cucumber'; -import { CustomWorld } from '../world'; +import { CustomWorld } from '../world/index.js'; import { HeartbeatAcknowledgementRequest, WebConnectionProtocol6Goodbye, -} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; -import { createMeta } from './generic.steps'; -import { HeartbeatHandler } from '../../src/handlers/HeartbeatHandler'; +} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; +import { createMeta } from './generic.steps.js'; +import { HeartbeatHandler } from '../../src/handlers/HeartbeatHandler.js'; Given( '{string} sends a heartbeat response to eventUuid {string}', diff --git a/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/intents.steps.ts b/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/intents.steps.ts index 66d3b18bf..81e2739f4 100644 --- a/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/intents.steps.ts +++ b/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/intents.steps.ts @@ -1,7 +1,7 @@ import { DataTable, Given, When } from '@cucumber/cucumber'; -import { CustomWorld } from '../world'; -import { DirectoryApp } from '../../src/directory/DirectoryInterface'; -import { APP_FIELD, contextMap, createMeta } from './generic.steps'; +import { CustomWorld } from '../world/index.js'; +import { DirectoryApp } from '../../src/directory/DirectoryInterface.js'; +import { APP_FIELD, contextMap, createMeta } from './generic.steps.js'; import { handleResolve } from '@finos/testing'; import { BrowserTypes } from '@finos/fdc3-schema'; diff --git a/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/messaging.steps.ts b/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/messaging.steps.ts index 3e01dce25..2b8bf3332 100644 --- a/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/messaging.steps.ts +++ b/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/messaging.steps.ts @@ -1,5 +1,5 @@ import { DataTable, Then } from '@cucumber/cucumber'; -import { CustomWorld } from '../world'; +import { CustomWorld } from '../world/index.js'; import expect from 'expect'; import { setupGenericSteps, matchData } from '@finos/testing'; diff --git a/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/private-channel.steps.ts b/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/private-channel.steps.ts index 13d5bdc4b..b21d096d5 100644 --- a/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/private-channel.steps.ts +++ b/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/private-channel.steps.ts @@ -1,6 +1,6 @@ import { When } from '@cucumber/cucumber'; -import { CustomWorld } from '../world'; -import { createMeta } from './generic.steps'; +import { CustomWorld } from '../world/index.js'; +import { createMeta } from './generic.steps.js'; import { BrowserTypes } from '@finos/fdc3-schema'; import { handleResolve } from '@finos/testing'; diff --git a/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/start-app.steps.ts b/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/start-app.steps.ts index 009fde6ec..9b081cd7f 100644 --- a/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/start-app.steps.ts +++ b/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/start-app.steps.ts @@ -1,10 +1,10 @@ import { DataTable, Then, When } from '@cucumber/cucumber'; -import { CustomWorld } from '../world'; -import { contextMap, createMeta } from './generic.steps'; +import { CustomWorld } from '../world/index.js'; +import { contextMap, createMeta } from './generic.steps.js'; import { matchData } from '@finos/testing'; import { BrowserTypes } from '@finos/fdc3-schema'; -import { State } from '../../src/ServerContext'; -import { GetInfoRequest } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; +import { State } from '../../src/ServerContext.js'; +import { GetInfoRequest } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; type OpenRequest = BrowserTypes.OpenRequest; type GetAppMetadataRequest = BrowserTypes.GetAppMetadataRequest; diff --git a/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/user-channel.steps.ts b/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/user-channel.steps.ts index 1be54d6f3..fa7a34b45 100644 --- a/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/user-channel.steps.ts +++ b/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/user-channel.steps.ts @@ -1,6 +1,6 @@ import { When } from '@cucumber/cucumber'; -import { CustomWorld } from '../world'; -import { createMeta } from './generic.steps'; +import { CustomWorld } from '../world/index.js'; +import { createMeta } from './generic.steps.js'; import { BrowserTypes } from '@finos/fdc3-schema'; import { handleResolve } from '@finos/testing'; diff --git a/toolbox/fdc3-for-web/fdc3-web-impl/test/support/TestServerContext.ts b/toolbox/fdc3-for-web/fdc3-web-impl/test/support/TestServerContext.ts index a2140e188..0be7e665a 100644 --- a/toolbox/fdc3-for-web/fdc3-web-impl/test/support/TestServerContext.ts +++ b/toolbox/fdc3-for-web/fdc3-web-impl/test/support/TestServerContext.ts @@ -1,6 +1,6 @@ -import { FDC3Server } from '../../src/FDC3Server'; -import { ServerContext, InstanceID, State, AppRegistration } from '../../src/ServerContext'; -import { CustomWorld } from '../world'; +import { FDC3Server } from '../../src/FDC3Server.js'; +import { ServerContext, InstanceID, State, AppRegistration } from '../../src/ServerContext.js'; +import { CustomWorld } from '../world/index.js'; import { Context } from '@finos/fdc3-context'; import { OpenError, AppIdentifier, AppIntent } from '@finos/fdc3-standard'; @@ -109,9 +109,9 @@ export class TestServerContext implements ServerContext { const id = this.getInstanceDetails(to); const app = id ? { - appId: id!.appId, - instanceId: id!.instanceId, - } + appId: id!.appId, + instanceId: id!.instanceId, + } : undefined; this.postedMessages.push({ msg, diff --git a/toolbox/fdc3-for-web/fdc3-web-impl/test/world/index.ts b/toolbox/fdc3-for-web/fdc3-web-impl/test/world/index.ts index d37b030b6..d28fc1c9a 100644 --- a/toolbox/fdc3-for-web/fdc3-web-impl/test/world/index.ts +++ b/toolbox/fdc3-for-web/fdc3-web-impl/test/world/index.ts @@ -1,7 +1,7 @@ import { World, setWorldConstructor } from '@cucumber/cucumber'; -import { TestServerContext } from '../support/TestServerContext'; -import { DefaultFDC3Server } from '../../src/BasicFDC3Server'; -import { BasicDirectory } from '../../src/directory/BasicDirectory'; +import { TestServerContext } from '../support/TestServerContext.js'; +import { DefaultFDC3Server } from '../../src/BasicFDC3Server.js'; +import { BasicDirectory } from '../../src/directory/BasicDirectory.js'; export class CustomWorld extends World { sc = new TestServerContext(this); diff --git a/toolbox/fdc3-for-web/reference-ui/src/channel_selector.ts b/toolbox/fdc3-for-web/reference-ui/src/channel_selector.ts index 2331574d0..ffd463c3c 100644 --- a/toolbox/fdc3-for-web/reference-ui/src/channel_selector.ts +++ b/toolbox/fdc3-for-web/reference-ui/src/channel_selector.ts @@ -5,8 +5,8 @@ import { Fdc3UserInterfaceRestyle, isFdc3UserInterfaceChannels, isFdc3UserInterfaceHandshake, -} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; -import { selectHighestContrast } from './contrast'; +} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; +import { selectHighestContrast } from './contrast.js'; const fillChannels = (data: Channel[], selected: string | null, messageClickedChannel: (s: string | null) => void) => { const list = document.getElementById('list')!; diff --git a/toolbox/fdc3-for-web/reference-ui/src/intent_resolver.ts b/toolbox/fdc3-for-web/reference-ui/src/intent_resolver.ts index 25ee808c0..43fdcaf94 100644 --- a/toolbox/fdc3-for-web/reference-ui/src/intent_resolver.ts +++ b/toolbox/fdc3-for-web/reference-ui/src/intent_resolver.ts @@ -6,7 +6,7 @@ import { Fdc3UserInterfaceResolveAction, Fdc3UserInterfaceRestyle, isFdc3UserInterfaceResolve, -} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; +} from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; const setup = ( data: Fdc3UserInterfaceResolve['payload'], diff --git a/toolbox/fdc3-workbench/src/App.tsx b/toolbox/fdc3-workbench/src/App.tsx index 6a5e8c3ef..c942713ac 100644 --- a/toolbox/fdc3-workbench/src/App.tsx +++ b/toolbox/fdc3-workbench/src/App.tsx @@ -14,16 +14,16 @@ import Alert from '@material-ui/lab/Alert'; import 'normalize.css'; import '@fontsource/roboto'; import '@fontsource/source-code-pro'; -import { TabPanel } from './components/common/TabPanel'; -import { Header } from './components/Header'; -import { Channels } from './components/Channels'; -import { Workbench } from './components/Workbench/Workbench'; -import { ContextCreate } from './components/ContextCreate'; -import { Intents } from './components/Intents'; -import { AppChannels } from './components/AppChannels'; -import snackbarStore from './store/SnackbarStore'; -import './App.css'; -import { getWorkbenchAgent } from './utility/Fdc3Api'; +import { TabPanel } from './components/common/TabPanel.js'; +import { Header } from './components/Header.js'; +import { Channels } from './components/Channels.js'; +import { Workbench } from './components/Workbench/Workbench.js'; +import { ContextCreate } from './components/ContextCreate.js'; +import { Intents } from './components/Intents.js'; +import { AppChannels } from './components/AppChannels.js'; +import snackbarStore from './store/SnackbarStore.js'; +import './App.css' with { type: 'css' }; +import { getWorkbenchAgent } from './utility/Fdc3Api.js'; const mainTheme = createTheme({ palette: { diff --git a/toolbox/fdc3-workbench/src/components/AppChannels.tsx b/toolbox/fdc3-workbench/src/components/AppChannels.tsx index 086f2c4fa..7c2aa683f 100644 --- a/toolbox/fdc3-workbench/src/components/AppChannels.tsx +++ b/toolbox/fdc3-workbench/src/components/AppChannels.tsx @@ -7,9 +7,9 @@ import React, { FormEvent, useState } from 'react'; import { createStyles, makeStyles, Theme } from '@material-ui/core/styles'; import { Button, Typography, Grid, TextField } from '@material-ui/core'; import { observer } from 'mobx-react'; -import contextStore from '../store/ContextStore'; -import appChannelStore from '../store/AppChannelStore'; -import { ChannelField } from './ChannelField'; +import contextStore from '../store/ContextStore.js'; +import appChannelStore from '../store/AppChannelStore.js'; +import { ChannelField } from './ChannelField.js'; const useStyles = makeStyles((theme: Theme) => createStyles({ diff --git a/toolbox/fdc3-workbench/src/components/ChannelField.tsx b/toolbox/fdc3-workbench/src/components/ChannelField.tsx index 4dff26c69..6f16021f2 100644 --- a/toolbox/fdc3-workbench/src/components/ChannelField.tsx +++ b/toolbox/fdc3-workbench/src/components/ChannelField.tsx @@ -7,18 +7,18 @@ import React, { useEffect, useState } from 'react'; import { observer } from 'mobx-react'; import { runInAction } from 'mobx'; import { createStyles, makeStyles, Theme } from '@material-ui/core/styles'; -import appChannelStore from '../store/AppChannelStore'; -import privateChannelStore from '../store/PrivateChannelStore'; +import appChannelStore from '../store/AppChannelStore.js'; +import privateChannelStore from '../store/PrivateChannelStore.js'; import { Button, IconButton, Tooltip, Typography, Grid, Link } from '@material-ui/core'; -import { ContextTemplates } from './ContextTemplates'; -import { ContextType, Fdc3Listener } from '../utility/Fdc3Api'; -import { copyToClipboard } from './common/CopyToClipboard'; -import { codeExamples } from '../fixtures/codeExamples'; -import { openApiDocsLink } from '../fixtures/openApiDocs'; +import { ContextTemplates } from './ContextTemplates.js'; +import { ContextType, Fdc3Listener } from '../utility/Fdc3Api.js'; +import { copyToClipboard } from './common/CopyToClipboard.js'; +import { codeExamples } from '../fixtures/codeExamples.js'; +import { openApiDocsLink } from '../fixtures/openApiDocs.js'; import FileCopyIcon from '@material-ui/icons/FileCopy'; import Autocomplete, { createFilterOptions } from '@material-ui/lab/Autocomplete'; -import contextStore from '../store/ContextStore'; -import { TemplateTextField } from './common/TemplateTextField'; +import contextStore from '../store/ContextStore.js'; +import { TemplateTextField } from './common/TemplateTextField.js'; import InfoOutlinedIcon from '@material-ui/icons/InfoOutlined'; interface ListenerOptionType { diff --git a/toolbox/fdc3-workbench/src/components/Channels.tsx b/toolbox/fdc3-workbench/src/components/Channels.tsx index a9ac7adfe..3e0abade5 100644 --- a/toolbox/fdc3-workbench/src/components/Channels.tsx +++ b/toolbox/fdc3-workbench/src/components/Channels.tsx @@ -20,14 +20,14 @@ import { } from '@material-ui/core'; import { createStyles, makeStyles, Theme } from '@material-ui/core/styles'; import FileCopyIcon from '@material-ui/icons/FileCopy'; -import channelStore from '../store/ChannelStore'; -import { codeExamples } from '../fixtures/codeExamples'; -import { copyToClipboard } from './common/CopyToClipboard'; -import { openApiDocsLink } from '../fixtures/openApiDocs'; -import { ContextLinking } from './ContextLinking'; -import contextStore from '../store/ContextStore'; -import { ContextTemplates } from './ContextTemplates'; -import { ContextType } from '../utility/Fdc3Api'; +import channelStore from '../store/ChannelStore.js'; +import { codeExamples } from '../fixtures/codeExamples.js'; +import { copyToClipboard } from './common/CopyToClipboard.js'; +import { openApiDocsLink } from '../fixtures/openApiDocs.js'; +import { ContextLinking } from './ContextLinking.js'; +import contextStore from '../store/ContextStore.js'; +import { ContextTemplates } from './ContextTemplates.js'; +import { ContextType } from '../utility/Fdc3Api.js'; import InfoOutlinedIcon from '@material-ui/icons/InfoOutlined'; const useStyles = makeStyles((theme: Theme) => diff --git a/toolbox/fdc3-workbench/src/components/ContextCreate.tsx b/toolbox/fdc3-workbench/src/components/ContextCreate.tsx index 0b982b530..a272c46ec 100644 --- a/toolbox/fdc3-workbench/src/components/ContextCreate.tsx +++ b/toolbox/fdc3-workbench/src/components/ContextCreate.tsx @@ -21,13 +21,13 @@ import { import FileCopyIcon from '@material-ui/icons/FileCopy'; import FileCopyOutlinedIcon from '@material-ui/icons/FileCopyOutlined'; import DeleteOutlinedIcon from '@material-ui/icons/DeleteOutlined'; -import contextStore, { ContextItem } from '../store/ContextStore'; -import systemLogStore from '../store/SystemLogStore'; -import { JsonInput } from './common/JsonInput'; -import { DialogModal } from './common/DialogModal'; -import { TemplateTextField } from './common/TemplateTextField'; -import { copyToClipboard } from './common/CopyToClipboard'; -import { ContextType } from '../utility/Fdc3Api'; +import contextStore, { ContextItem } from '../store/ContextStore.js'; +import systemLogStore from '../store/SystemLogStore.js'; +import { JsonInput } from './common/JsonInput.js'; +import { DialogModal } from './common/DialogModal.js'; +import { TemplateTextField } from './common/TemplateTextField.js'; +import { copyToClipboard } from './common/CopyToClipboard.js'; +import { ContextType } from '../utility/Fdc3Api.js'; interface OptionType { title: string; diff --git a/toolbox/fdc3-workbench/src/components/ContextLinking.tsx b/toolbox/fdc3-workbench/src/components/ContextLinking.tsx index 2c11fe131..552284b15 100644 --- a/toolbox/fdc3-workbench/src/components/ContextLinking.tsx +++ b/toolbox/fdc3-workbench/src/components/ContextLinking.tsx @@ -7,13 +7,13 @@ import React, { FormEvent, useState } from 'react'; import { observer } from 'mobx-react'; import { createStyles, makeStyles, Theme } from '@material-ui/core/styles'; import { Typography, Grid, Button, IconButton, Tooltip, Link } from '@material-ui/core'; -import { codeExamples } from '../fixtures/codeExamples'; -import { openApiDocsLink } from '../fixtures/openApiDocs'; +import { codeExamples } from '../fixtures/codeExamples.js'; +import { openApiDocsLink } from '../fixtures/openApiDocs.js'; import FileCopyIcon from '@material-ui/icons/FileCopy'; import Autocomplete, { createFilterOptions } from '@material-ui/lab/Autocomplete'; -import contextStore from '../store/ContextStore'; -import { TemplateTextField } from './common/TemplateTextField'; -import { copyToClipboard } from './common/CopyToClipboard'; +import contextStore from '../store/ContextStore.js'; +import { TemplateTextField } from './common/TemplateTextField.js'; +import { copyToClipboard } from './common/CopyToClipboard.js'; import InfoOutlinedIcon from '@material-ui/icons/InfoOutlined'; // interface copied from lib @material-ui/lab/Autocomplete diff --git a/toolbox/fdc3-workbench/src/components/ContextTemplates.tsx b/toolbox/fdc3-workbench/src/components/ContextTemplates.tsx index c81ac679c..1b0e8d7a6 100644 --- a/toolbox/fdc3-workbench/src/components/ContextTemplates.tsx +++ b/toolbox/fdc3-workbench/src/components/ContextTemplates.tsx @@ -8,8 +8,8 @@ import { observer } from 'mobx-react'; import { createStyles, makeStyles, Theme } from '@material-ui/core/styles'; import { Grid } from '@material-ui/core'; import Autocomplete, { createFilterOptions } from '@material-ui/lab/Autocomplete'; -import contextStore from '../store/ContextStore'; -import { TemplateTextField } from './common/TemplateTextField'; +import contextStore from '../store/ContextStore.js'; +import { TemplateTextField } from './common/TemplateTextField.js'; interface FilterOptionsState { inputValue: string; diff --git a/toolbox/fdc3-workbench/src/components/Header.tsx b/toolbox/fdc3-workbench/src/components/Header.tsx index 53d2b20fe..b88f7a4ff 100644 --- a/toolbox/fdc3-workbench/src/components/Header.tsx +++ b/toolbox/fdc3-workbench/src/components/Header.tsx @@ -7,7 +7,7 @@ import React, { useEffect, useState } from 'react'; import { createStyles, makeStyles, Theme } from '@material-ui/core/styles'; import { AppBar, Toolbar, Tooltip, Typography } from '@material-ui/core'; import WarningIcon from '@material-ui/icons/Warning'; -import { getWorkbenchAgent, ImplementationMetadata } from '../utility/Fdc3Api'; +import { getWorkbenchAgent, ImplementationMetadata } from '../utility/Fdc3Api.js'; declare global { interface Window { diff --git a/toolbox/fdc3-workbench/src/components/IntentResolutionField.tsx b/toolbox/fdc3-workbench/src/components/IntentResolutionField.tsx index ecb6ac198..3f1e1bda7 100644 --- a/toolbox/fdc3-workbench/src/components/IntentResolutionField.tsx +++ b/toolbox/fdc3-workbench/src/components/IntentResolutionField.tsx @@ -7,9 +7,9 @@ import React, { useEffect, useState } from 'react'; import { observer } from 'mobx-react'; import { TextField } from '@material-ui/core'; import { createStyles, makeStyles, Theme } from '@material-ui/core/styles'; -import { ChannelField } from './ChannelField'; -import appChannelStore from '../store/AppChannelStore'; -import privateChannelStore from '../store/PrivateChannelStore'; +import { ChannelField } from './ChannelField.js'; +import appChannelStore from '../store/AppChannelStore.js'; +import privateChannelStore from '../store/PrivateChannelStore.js'; const useStyles = makeStyles((theme: Theme) => createStyles({ diff --git a/toolbox/fdc3-workbench/src/components/Intents.tsx b/toolbox/fdc3-workbench/src/components/Intents.tsx index 88130c26d..ffa48ebd2 100644 --- a/toolbox/fdc3-workbench/src/components/Intents.tsx +++ b/toolbox/fdc3-workbench/src/components/Intents.tsx @@ -12,7 +12,7 @@ import { getWorkbenchAgent, IntentResolution, IntentTargetOption, -} from '../utility/Fdc3Api'; +} from '../utility/Fdc3Api.js'; import { toJS } from 'mobx'; import { createStyles, makeStyles, Theme } from '@material-ui/core/styles'; import { @@ -35,13 +35,13 @@ import { observer } from 'mobx-react'; import FileCopyIcon from '@material-ui/icons/FileCopy'; import AddCircleOutlineIcon from '@material-ui/icons/AddCircleOutline'; import Autocomplete, { createFilterOptions } from '@material-ui/lab/Autocomplete'; -import { ContextTemplates } from '../components/ContextTemplates'; -import intentStore from '../store/IntentStore'; -import { codeExamples } from '../fixtures/codeExamples'; -import { openApiDocsLink } from '../fixtures/openApiDocs'; -import { TemplateTextField } from './common/TemplateTextField'; -import { copyToClipboard } from './common/CopyToClipboard'; -import { IntentResolutionField } from './IntentResolutionField'; +import { ContextTemplates } from '../components/ContextTemplates.js'; +import intentStore from '../store/IntentStore.js'; +import { codeExamples } from '../fixtures/codeExamples.js'; +import { openApiDocsLink } from '../fixtures/openApiDocs.js'; +import { TemplateTextField } from './common/TemplateTextField.js'; +import { copyToClipboard } from './common/CopyToClipboard.js'; +import { IntentResolutionField } from './IntentResolutionField.js'; import { Checkbox } from '@material-ui/core'; import { FormGroup } from '@material-ui/core'; diff --git a/toolbox/fdc3-workbench/src/components/Workbench/AppChannelListeners.tsx b/toolbox/fdc3-workbench/src/components/Workbench/AppChannelListeners.tsx index 12bbd083f..1710643e7 100644 --- a/toolbox/fdc3-workbench/src/components/Workbench/AppChannelListeners.tsx +++ b/toolbox/fdc3-workbench/src/components/Workbench/AppChannelListeners.tsx @@ -3,72 +3,72 @@ * Copyright FINOS FDC3 contributors - see NOTICE file */ -import React from "react"; -import { observer } from "mobx-react"; -import appChannelStore from "../../store/AppChannelStore"; -import { AccordionList, AccordionListItem } from "../common/AccordionList"; -import { TextField } from "@material-ui/core"; -import { createStyles, makeStyles, Theme } from "@material-ui/core/styles"; -import { ReceivedField } from "./ReceivedField"; +import React from 'react'; +import { observer } from 'mobx-react'; +import appChannelStore from '../../store/AppChannelStore.js'; +import { AccordionList, AccordionListItem } from '../common/AccordionList.js'; +import { TextField } from '@material-ui/core'; +import { createStyles, makeStyles, Theme } from '@material-ui/core/styles'; +import { ReceivedField } from './ReceivedField.js'; const useStyles = makeStyles((theme: Theme) => - createStyles({ - textField: { - marginTop: theme.spacing(2), - width: "100%", - }, - input: { - fontSize: "14px", - }, - }) + createStyles({ + textField: { + marginTop: theme.spacing(2), + width: '100%', + }, + input: { + fontSize: '14px', + }, + }) ); export const AppChannelListeners = observer(() => { - const classes = useStyles(); + const classes = useStyles(); - let contextListeners: AccordionListItem[] = []; + let contextListeners: AccordionListItem[] = []; - appChannelStore.channelListeners.forEach(({ id, channelId, type, lastReceivedContext, metaData }) => { - const receivedContextListenerValue = lastReceivedContext ? JSON.stringify(lastReceivedContext, undefined, 4) : ""; - const contextField = ( -
- - {window.fdc3Version === "2.0" && } -
- ); + appChannelStore.channelListeners.forEach(({ id, channelId, type, lastReceivedContext, metaData }) => { + const receivedContextListenerValue = lastReceivedContext ? JSON.stringify(lastReceivedContext, undefined, 4) : ''; + const contextField = ( +
+ + {window.fdc3Version === '2.0' && } +
+ ); - contextListeners.push({ id, textPrimary: `${channelId}: ${type}`, afterEachElement: contextField }); - }); + contextListeners.push({ id, textPrimary: `${channelId}: ${type}`, afterEachElement: contextField }); + }); - const handleDeleteListener = (id: string) => { - appChannelStore.removeContextListener(id); - }; + const handleDeleteListener = (id: string) => { + appChannelStore.removeContextListener(id); + }; - return ( - - ); + return ( + + ); }); diff --git a/toolbox/fdc3-workbench/src/components/Workbench/ContextListeners.tsx b/toolbox/fdc3-workbench/src/components/Workbench/ContextListeners.tsx index 965f1f857..c4d652b36 100644 --- a/toolbox/fdc3-workbench/src/components/Workbench/ContextListeners.tsx +++ b/toolbox/fdc3-workbench/src/components/Workbench/ContextListeners.tsx @@ -3,72 +3,72 @@ * Copyright FINOS FDC3 contributors - see NOTICE file */ -import React from "react"; -import { observer } from "mobx-react"; -import contextStore from "../../store/ContextStore"; -import { AccordionList, AccordionListItem } from "../common/AccordionList"; -import { TextField } from "@material-ui/core"; -import { createStyles, makeStyles, Theme } from "@material-ui/core/styles"; -import { ReceivedField } from "./ReceivedField"; +import React from 'react'; +import { observer } from 'mobx-react'; +import contextStore from '../../store/ContextStore.js'; +import { AccordionList, AccordionListItem } from '../common/AccordionList.js'; +import { TextField } from '@material-ui/core'; +import { createStyles, makeStyles, Theme } from '@material-ui/core/styles'; +import { ReceivedField } from './ReceivedField.js'; const useStyles = makeStyles((theme: Theme) => - createStyles({ - textField: { - marginTop: theme.spacing(2), - width: "100%", - }, - input: { - fontSize: "14px", - }, - }) + createStyles({ + textField: { + marginTop: theme.spacing(2), + width: '100%', + }, + input: { + fontSize: '14px', + }, + }) ); export const ContextListeners = observer(() => { - const classes = useStyles(); - const contextListeners: AccordionListItem[] = contextStore.contextListeners.map( - ({ id, type, lastReceivedContext, metaData }) => { - const receivedContextListenerValue = lastReceivedContext ? JSON.stringify(lastReceivedContext, undefined, 4) : ""; + const classes = useStyles(); + const contextListeners: AccordionListItem[] = contextStore.contextListeners.map( + ({ id, type, lastReceivedContext, metaData }) => { + const receivedContextListenerValue = lastReceivedContext ? JSON.stringify(lastReceivedContext, undefined, 4) : ''; - const contextField = ( -
- - {window.fdc3Version === "2.0" && } -
- ); + const contextField = ( +
+ + {window.fdc3Version === '2.0' && } +
+ ); - return { id, textPrimary: `${type}`, afterEachElement: contextField }; - } - ); + return { id, textPrimary: `${type}`, afterEachElement: contextField }; + } + ); - const handleDeleteListener = (id: string) => { - contextStore.removeContextListener(id); - }; + const handleDeleteListener = (id: string) => { + contextStore.removeContextListener(id); + }; - return ( - - ); + return ( + + ); }); diff --git a/toolbox/fdc3-workbench/src/components/Workbench/CurrentContext.tsx b/toolbox/fdc3-workbench/src/components/Workbench/CurrentContext.tsx index a82ec4daa..babbf80bf 100644 --- a/toolbox/fdc3-workbench/src/components/Workbench/CurrentContext.tsx +++ b/toolbox/fdc3-workbench/src/components/Workbench/CurrentContext.tsx @@ -3,51 +3,51 @@ * Copyright FINOS FDC3 contributors - see NOTICE file */ -import React from "react"; -import { observer } from "mobx-react"; -import { TextField } from "@material-ui/core"; -import { createStyles, makeStyles, Theme } from "@material-ui/core/styles"; -import { AccordionContent } from "../common/AccordionContent"; -import contextStore from "../../store/ContextStore"; +import React from 'react'; +import { observer } from 'mobx-react'; +import { TextField } from '@material-ui/core'; +import { createStyles, makeStyles, Theme } from '@material-ui/core/styles'; +import { AccordionContent } from '../common/AccordionContent.js'; +import contextStore from '../../store/ContextStore.js'; const useStyles = makeStyles((theme: Theme) => - createStyles({ - textField: { - marginTop: theme.spacing(2), - width: "100%", - }, - input: { - fontSize: "14px", - color: theme.palette.text.primary, - }, - "& .Mui-disabled": { - borderColor: theme.palette.text.primary, - }, - }) + createStyles({ + textField: { + marginTop: theme.spacing(2), + width: '100%', + }, + input: { + fontSize: '14px', + color: theme.palette.text.primary, + }, + '& .Mui-disabled': { + borderColor: theme.palette.text.primary, + }, + }) ); export const CurrentContext = observer(() => { - const classes = useStyles(); - const context = JSON.stringify(contextStore.currentContext, undefined, 4); + const classes = useStyles(); + const context = JSON.stringify(contextStore.currentContext, undefined, 4); - return ( - - - - ); + return ( + + + + ); }); diff --git a/toolbox/fdc3-workbench/src/components/Workbench/IntentListeners.tsx b/toolbox/fdc3-workbench/src/components/Workbench/IntentListeners.tsx index ebd832e9e..4fdf6ef52 100644 --- a/toolbox/fdc3-workbench/src/components/Workbench/IntentListeners.tsx +++ b/toolbox/fdc3-workbench/src/components/Workbench/IntentListeners.tsx @@ -3,75 +3,75 @@ * Copyright FINOS FDC3 contributors - see NOTICE file */ -import React from "react"; -import { observer } from "mobx-react"; -import intentStore from "../../store/IntentStore"; -import { AccordionList, AccordionListItem } from "../common/AccordionList"; -import { TextField } from "@material-ui/core"; -import { createStyles, makeStyles, Theme } from "@material-ui/core/styles"; -import { ReceivedField } from "./ReceivedField"; +import React from 'react'; +import { observer } from 'mobx-react'; +import intentStore from '../../store/IntentStore.js'; +import { AccordionList, AccordionListItem } from '../common/AccordionList.js'; +import { TextField } from '@material-ui/core'; +import { createStyles, makeStyles, Theme } from '@material-ui/core/styles'; +import { ReceivedField } from './ReceivedField.js'; const useStyles = makeStyles((theme: Theme) => - createStyles({ - textField: { - marginTop: theme.spacing(2), - width: "100%", - }, - input: { - fontSize: "14px", - color: "rgba(0, 0, 0, 0.6)", - }, - "& .Mui-disabled": { - borderColor: theme.palette.text.primary, - }, - }) + createStyles({ + textField: { + marginTop: theme.spacing(2), + width: '100%', + }, + input: { + fontSize: '14px', + color: 'rgba(0, 0, 0, 0.6)', + }, + '& .Mui-disabled': { + borderColor: theme.palette.text.primary, + }, + }) ); export const IntentListeners = observer(() => { - const classes = useStyles(); - const intentListeners: AccordionListItem[] = intentStore.intentListeners.map( - ({ id, type, lastReceivedContext, metaData }) => { - const receivedContextListenerValue = lastReceivedContext ? JSON.stringify(lastReceivedContext, undefined, 4) : ""; + const classes = useStyles(); + const intentListeners: AccordionListItem[] = intentStore.intentListeners.map( + ({ id, type, lastReceivedContext, metaData }) => { + const receivedContextListenerValue = lastReceivedContext ? JSON.stringify(lastReceivedContext, undefined, 4) : ''; - const contextField = ( -
- - {window.fdc3Version === "2.0" && } -
- ); + const contextField = ( +
+ + {window.fdc3Version === '2.0' && } +
+ ); - return { id, textPrimary: `${type}`, afterEachElement: contextField }; - } - ); + return { id, textPrimary: `${type}`, afterEachElement: contextField }; + } + ); - const handleDeleteListener = (id: string) => { - intentStore.removeIntentListener(id); - }; + const handleDeleteListener = (id: string) => { + intentStore.removeIntentListener(id); + }; - return ( - - ); + return ( + + ); }); diff --git a/toolbox/fdc3-workbench/src/components/Workbench/PrivateChannelListeners.tsx b/toolbox/fdc3-workbench/src/components/Workbench/PrivateChannelListeners.tsx index 32572b2dc..5f97335d8 100644 --- a/toolbox/fdc3-workbench/src/components/Workbench/PrivateChannelListeners.tsx +++ b/toolbox/fdc3-workbench/src/components/Workbench/PrivateChannelListeners.tsx @@ -3,72 +3,72 @@ * Copyright FINOS FDC3 contributors - see NOTICE file */ -import React from "react"; -import { observer } from "mobx-react"; -import privateChannelStore from "../../store/PrivateChannelStore"; -import { AccordionList, AccordionListItem } from "../common/AccordionList"; -import { TextField } from "@material-ui/core"; -import { createStyles, makeStyles, Theme } from "@material-ui/core/styles"; -import { ReceivedField } from "./ReceivedField"; +import React from 'react'; +import { observer } from 'mobx-react'; +import privateChannelStore from '../../store/PrivateChannelStore.js'; +import { AccordionList, AccordionListItem } from '../common/AccordionList.js'; +import { TextField } from '@material-ui/core'; +import { createStyles, makeStyles, Theme } from '@material-ui/core/styles'; +import { ReceivedField } from './ReceivedField.js'; const useStyles = makeStyles((theme: Theme) => - createStyles({ - textField: { - marginTop: theme.spacing(2), - width: "100%", - }, - input: { - fontSize: "14px", - }, - }) + createStyles({ + textField: { + marginTop: theme.spacing(2), + width: '100%', + }, + input: { + fontSize: '14px', + }, + }) ); export const PrivateChannelListeners = observer(() => { - const classes = useStyles(); + const classes = useStyles(); - let contextListeners: AccordionListItem[] = []; + let contextListeners: AccordionListItem[] = []; - privateChannelStore.channelListeners.forEach(({ id, channelId, type, lastReceivedContext, metaData }) => { - const receivedContextListenerValue = lastReceivedContext ? JSON.stringify(lastReceivedContext, undefined, 4) : ""; - const contextField = ( -
- - {window.fdc3Version === "2.0" && } -
- ); + privateChannelStore.channelListeners.forEach(({ id, channelId, type, lastReceivedContext, metaData }) => { + const receivedContextListenerValue = lastReceivedContext ? JSON.stringify(lastReceivedContext, undefined, 4) : ''; + const contextField = ( +
+ + {window.fdc3Version === '2.0' && } +
+ ); - contextListeners.push({ id, textPrimary: `Channel Id: ${channelId}: ${type}`, afterEachElement: contextField }); - }); + contextListeners.push({ id, textPrimary: `Channel Id: ${channelId}: ${type}`, afterEachElement: contextField }); + }); - const handleDeleteListener = (id: string) => { - privateChannelStore.removeContextListener(id); - }; + const handleDeleteListener = (id: string) => { + privateChannelStore.removeContextListener(id); + }; - return ( - - ); + return ( + + ); }); diff --git a/toolbox/fdc3-workbench/src/components/Workbench/SystemLog.tsx b/toolbox/fdc3-workbench/src/components/Workbench/SystemLog.tsx index 834174978..952990d9b 100644 --- a/toolbox/fdc3-workbench/src/components/Workbench/SystemLog.tsx +++ b/toolbox/fdc3-workbench/src/components/Workbench/SystemLog.tsx @@ -3,29 +3,29 @@ * Copyright FINOS FDC3 contributors - see NOTICE file */ -import React from "react"; -import { observer } from "mobx-react"; -import { createStyles, makeStyles } from "@material-ui/core/styles"; -import { List } from "@material-ui/core"; -import systemLogStore from "../../store/SystemLogStore"; -import { SystemLogItem } from "./SystemLogItem"; +import React from 'react'; +import { observer } from 'mobx-react'; +import { createStyles, makeStyles } from '@material-ui/core/styles'; +import { List } from '@material-ui/core'; +import systemLogStore from '../../store/SystemLogStore.js'; +import { SystemLogItem } from './SystemLogItem.js'; const useStyles = makeStyles(() => - createStyles({ - root: { - width: "100%", - }, - }) + createStyles({ + root: { + width: '100%', + }, + }) ); export const SystemLog = observer(() => { - const classes = useStyles(); + const classes = useStyles(); - return ( - - {systemLogStore.logList.map((logItem) => ( - - ))} - - ); + return ( + + {systemLogStore.logList.map(logItem => ( + + ))} + + ); }); diff --git a/toolbox/fdc3-workbench/src/components/Workbench/SystemLogItem.tsx b/toolbox/fdc3-workbench/src/components/Workbench/SystemLogItem.tsx index 079c73b5a..d097a5aa8 100644 --- a/toolbox/fdc3-workbench/src/components/Workbench/SystemLogItem.tsx +++ b/toolbox/fdc3-workbench/src/components/Workbench/SystemLogItem.tsx @@ -3,82 +3,82 @@ * Copyright FINOS FDC3 contributors - see NOTICE file */ -import React from "react"; -import { ListItem, TextField, Typography } from "@material-ui/core"; -import { LogItem } from "../../store/SystemLogStore"; -import { createStyles, makeStyles, Theme } from "@material-ui/core/styles"; +import React from 'react'; +import { ListItem, TextField, Typography } from '@material-ui/core'; +import { LogItem } from '../../store/SystemLogStore.js'; +import { createStyles, makeStyles, Theme } from '@material-ui/core/styles'; interface SystemLogItemProps { - logItem: LogItem; + logItem: LogItem; } const useStyles = (props: SystemLogItemProps) => - makeStyles((theme: Theme) => - createStyles({ - root: { - flexDirection: "column", - justifyContent: "flex-start", - alignItems: "flex-start", - padding: theme.spacing(3, 0), - "&:first-child": { - borderTop: "1px solid rgba(0, 0, 0, 0.12)", - }, - }, - message: { - color: theme.palette[props.logItem.type].dark, - }, - textField: { - width: "100%", - }, - input: { - fontSize: "14px", - color: theme.palette.text.primary, - }, - "& .Mui-disabled": { - borderColor: theme.palette.text.primary, - }, - }) - ); + makeStyles((theme: Theme) => + createStyles({ + root: { + flexDirection: 'column', + justifyContent: 'flex-start', + alignItems: 'flex-start', + padding: theme.spacing(3, 0), + '&:first-child': { + borderTop: '1px solid rgba(0, 0, 0, 0.12)', + }, + }, + message: { + color: theme.palette[props.logItem.type].dark, + }, + textField: { + width: '100%', + }, + input: { + fontSize: '14px', + color: theme.palette.text.primary, + }, + '& .Mui-disabled': { + borderColor: theme.palette.text.primary, + }, + }) + ); export const SystemLogItem: React.FC = (props: SystemLogItemProps) => { - const { logItem } = props; - const classes = useStyles(props)(); + const { logItem } = props; + const classes = useStyles(props)(); - return ( - - - {logItem.message} - + return ( + + + {logItem.message} + - {logItem.variant === "code" && ( - - )} + {logItem.variant === 'code' && ( + + )} - {logItem.variant === "text" && logItem.body && ( - - {logItem.type === "error" && "ERROR:"} - {logItem.type === "warning" && "WARNING:"} - {logItem.type === "info" && "INFO:"} - {logItem.type === "success" && "SUCCESS:"} + {logItem.variant === 'text' && logItem.body && ( + + {logItem.type === 'error' && 'ERROR:'} + {logItem.type === 'warning' && 'WARNING:'} + {logItem.type === 'info' && 'INFO:'} + {logItem.type === 'success' && 'SUCCESS:'} - {logItem.body} - - )} - - ); + {logItem.body} + + )} + + ); }; diff --git a/toolbox/fdc3-workbench/src/components/Workbench/Workbench.tsx b/toolbox/fdc3-workbench/src/components/Workbench/Workbench.tsx index a71d2ea8f..7247fb21d 100644 --- a/toolbox/fdc3-workbench/src/components/Workbench/Workbench.tsx +++ b/toolbox/fdc3-workbench/src/components/Workbench/Workbench.tsx @@ -3,113 +3,113 @@ * Copyright FINOS FDC3 contributors - see NOTICE file */ -import React, { useState } from "react"; -import { observer } from "mobx-react"; -import { createStyles, makeStyles, Theme } from "@material-ui/core/styles"; -import { Tooltip } from "@material-ui/core"; -import InfoIcon from "@material-ui/icons/Info"; -import { Tabs, Tab } from "@material-ui/core"; -import { TabPanel } from "../common/TabPanel"; -import { ContextListeners } from "./ContextListeners"; -import { IntentListeners } from "./IntentListeners"; -import { AppChannelListeners } from "./AppChannelListeners"; -import { SystemLog } from "./SystemLog"; -import { PrivateChannelListeners } from "./PrivateChannelListeners"; +import React, { useState } from 'react'; +import { observer } from 'mobx-react'; +import { createStyles, makeStyles, Theme } from '@material-ui/core/styles'; +import { Tooltip } from '@material-ui/core'; +import InfoIcon from '@material-ui/icons/Info'; +import { Tabs, Tab } from '@material-ui/core'; +import { TabPanel } from '../common/TabPanel.js'; +import { ContextListeners } from './ContextListeners.js'; +import { IntentListeners } from './IntentListeners.js'; +import { AppChannelListeners } from './AppChannelListeners.js'; +import { SystemLog } from './SystemLog.js'; +import { PrivateChannelListeners } from './PrivateChannelListeners.js'; const useStyles = makeStyles((theme: Theme) => - createStyles({ - "@global": { - ".MuiTab-wrapper": { - flexDirection: "row !important", - }, - }, - root: { - flexGrow: 1, - }, - paper: { - marginTop: theme.spacing(2), - padding: theme.spacing(2), - "&:first-child": { - marginTop: 0, - }, - }, - systemLog: { - maxHeight: "1000px", - overflowY: "scroll", - }, - indicator: { - backgroundColor: "#00bbe1", - }, - tabs: { - borderBottomColor: "#acb2c0", - borderBottomStyle: "solid", - borderBottomWidth: "1px", - minHeight: "28px", - }, - icon: { - marginBottom: "3px !important", - fontSize: "15px", - marginRight: "3px", - }, - }) + createStyles({ + '@global': { + '.MuiTab-wrapper': { + flexDirection: 'row !important', + }, + }, + root: { + flexGrow: 1, + }, + paper: { + marginTop: theme.spacing(2), + padding: theme.spacing(2), + '&:first-child': { + marginTop: 0, + }, + }, + systemLog: { + maxHeight: '1000px', + overflowY: 'scroll', + }, + indicator: { + backgroundColor: '#00bbe1', + }, + tabs: { + borderBottomColor: '#acb2c0', + borderBottomStyle: 'solid', + borderBottomWidth: '1px', + minHeight: '28px', + }, + icon: { + marginBottom: '3px !important', + fontSize: '15px', + marginRight: '3px', + }, + }) ); const a11yProps = (index: any) => { - return { - id: `scrollable-auto-tab-${index}`, - "aria-controls": `scrollable-auto-tabpanel-${index}`, - }; + return { + id: `scrollable-auto-tab-${index}`, + 'aria-controls': `scrollable-auto-tabpanel-${index}`, + }; }; export const Workbench = observer(() => { - const classes = useStyles(); - const [tabValue, setTabValue] = useState(0); + const classes = useStyles(); + const [tabValue, setTabValue] = useState(0); - const handleTabChange = (event: React.ChangeEvent<{}>, newValue: number) => { - setTabValue(newValue); - }; + const handleTabChange = (event: React.ChangeEvent<{}>, newValue: number) => { + setTabValue(newValue); + }; - return ( -
- - - - - } - /> - - + return ( +
+ + + + + } + /> + + - - - - - - + + + + + + -
- - - -
-
- ); +
+ + + +
+
+ ); }); diff --git a/toolbox/fdc3-workbench/src/components/common/AccordionList.tsx b/toolbox/fdc3-workbench/src/components/common/AccordionList.tsx index a76633611..969015568 100644 --- a/toolbox/fdc3-workbench/src/components/common/AccordionList.tsx +++ b/toolbox/fdc3-workbench/src/components/common/AccordionList.tsx @@ -3,79 +3,79 @@ * Copyright FINOS FDC3 contributors - see NOTICE file */ -import React from "react"; -import { List, ListItem, ListItemText, Typography, ListItemSecondaryAction, IconButton } from "@material-ui/core"; -import { createStyles, makeStyles, Theme } from "@material-ui/core/styles"; -import { AccordionContent } from "./AccordionContent"; -import DeleteIcon from "@material-ui/icons/Delete"; +import React from 'react'; +import { List, ListItem, ListItemText, Typography, ListItemSecondaryAction, IconButton } from '@material-ui/core'; +import { createStyles, makeStyles, Theme } from '@material-ui/core/styles'; +import { AccordionContent } from './AccordionContent.js'; +import DeleteIcon from '@material-ui/icons/Delete'; export interface AccordionListItem { - id: string; - textPrimary: string; - afterEachElement?: React.ReactNode; + id: string; + textPrimary: string; + afterEachElement?: React.ReactNode; } export interface AccordionListProps { - title: string; - icon?: string; - listItems: AccordionListItem[]; - noItemsText: string; - onDelete?: (id: string) => void; + title: string; + icon?: string; + listItems: AccordionListItem[]; + noItemsText: string; + onDelete?: (id: string) => void; } const useStyles = makeStyles((theme: Theme) => - createStyles({ - list: { - padding: 0, - width: "100%", - }, - listItem: { - padding: 0, - "&.MuiListItem-secondaryAction": { - paddingRight: theme.spacing(6), - }, - }, - listAction: { - top: "2px", - transform: "none", - }, - }) + createStyles({ + list: { + padding: 0, + width: '100%', + }, + listItem: { + padding: 0, + '&.MuiListItem-secondaryAction': { + paddingRight: theme.spacing(6), + }, + }, + listAction: { + top: '2px', + transform: 'none', + }, + }) ); export const AccordionList: React.FC = ({ - title, - icon, - listItems, - noItemsText, - onDelete, + title, + icon, + listItems, + noItemsText, + onDelete, }: AccordionListProps) => { - const classes = useStyles(); + const classes = useStyles(); - const handleDelete = (id: string) => () => { - if (onDelete) { - onDelete(id); - } - }; + const handleDelete = (id: string) => () => { + if (onDelete) { + onDelete(id); + } + }; - return ( - - {!listItems.length && {noItemsText}} - {!!listItems.length && ( - - {listItems.map(({ id, textPrimary, afterEachElement }) => ( - - - - {onDelete && ( - - - - )} - - - ))} - - )} - - ); + return ( + + {!listItems.length && {noItemsText}} + {!!listItems.length && ( + + {listItems.map(({ id, textPrimary, afterEachElement }) => ( + + + + {onDelete && ( + + + + )} + + + ))} + + )} + + ); }; diff --git a/toolbox/fdc3-workbench/src/components/common/CopyToClipboard.tsx b/toolbox/fdc3-workbench/src/components/common/CopyToClipboard.tsx index 7e678794f..abaf5a9f9 100644 --- a/toolbox/fdc3-workbench/src/components/common/CopyToClipboard.tsx +++ b/toolbox/fdc3-workbench/src/components/common/CopyToClipboard.tsx @@ -3,17 +3,17 @@ * Copyright FINOS FDC3 contributors - see NOTICE file */ -import { runInAction } from "mobx"; -import systemLogStore from "../../store/SystemLogStore"; +import { runInAction } from 'mobx'; +import systemLogStore from '../../store/SystemLogStore.js'; export const copyToClipboard = (text: string, name: string) => () => { - navigator.clipboard.writeText(text); - runInAction(() => { - systemLogStore.addLog({ - name: "copyToClipboard", - type: "info", - value: name, - variant: "text", - }); - }); + navigator.clipboard.writeText(text); + runInAction(() => { + systemLogStore.addLog({ + name: 'copyToClipboard', + type: 'info', + value: name, + variant: 'text', + }); + }); }; diff --git a/toolbox/fdc3-workbench/src/fixtures/contexts.ts b/toolbox/fdc3-workbench/src/fixtures/contexts.ts index f5b4b6734..0469a9014 100644 --- a/toolbox/fdc3-workbench/src/fixtures/contexts.ts +++ b/toolbox/fdc3-workbench/src/fixtures/contexts.ts @@ -2,7 +2,7 @@ * SPDX-License-Identifier: Apache-2.0 * Copyright FINOS FDC3 contributors - see NOTICE file */ -import { ContextItem } from '../store/ContextStore'; +import { ContextItem } from '../store/ContextStore.js'; import { v4 as uuidv4 } from 'uuid'; export const contexts: ContextItem[] = [ diff --git a/toolbox/fdc3-workbench/src/fixtures/logMessages.ts b/toolbox/fdc3-workbench/src/fixtures/logMessages.ts index 278b11d53..5cf2ee85b 100644 --- a/toolbox/fdc3-workbench/src/fixtures/logMessages.ts +++ b/toolbox/fdc3-workbench/src/fixtures/logMessages.ts @@ -2,7 +2,7 @@ * SPDX-License-Identifier: Apache-2.0 * Copyright FINOS FDC3 contributors - see NOTICE file */ -import { logMessagesName, logMessagesType } from '../store/SystemLogStore'; +import { logMessagesName, logMessagesType } from '../store/SystemLogStore.js'; type LogMessages = Record>>; diff --git a/toolbox/fdc3-workbench/src/index.tsx b/toolbox/fdc3-workbench/src/index.tsx index dcb4a5adc..1f889bade 100644 --- a/toolbox/fdc3-workbench/src/index.tsx +++ b/toolbox/fdc3-workbench/src/index.tsx @@ -5,7 +5,7 @@ import React from 'react'; import ReactDOM from 'react-dom'; -import App from './App'; +import App from './App.js'; //make sure URL ends with trailing / for resolution of image paths if (!window.location.href.endsWith('/')) { diff --git a/toolbox/fdc3-workbench/src/store/AppChannelStore.tsx b/toolbox/fdc3-workbench/src/store/AppChannelStore.tsx index 83a624f74..5c3a03518 100644 --- a/toolbox/fdc3-workbench/src/store/AppChannelStore.tsx +++ b/toolbox/fdc3-workbench/src/store/AppChannelStore.tsx @@ -3,8 +3,8 @@ * Copyright FINOS FDC3 contributors - see NOTICE file */ import { makeObservable, observable, action, runInAction, toJS } from 'mobx'; -import { ContextType, Fdc3Listener, getWorkbenchAgent } from '../utility/Fdc3Api'; -import systemLogStore from './SystemLogStore'; +import { ContextType, Fdc3Listener, getWorkbenchAgent } from '../utility/Fdc3Api.js'; +import systemLogStore from './SystemLogStore.js'; import { nanoid } from 'nanoid'; import { Channel } from '@finos/fdc3'; diff --git a/toolbox/fdc3-workbench/src/store/ChannelStore.ts b/toolbox/fdc3-workbench/src/store/ChannelStore.ts index 7ecf82445..f58a502c7 100644 --- a/toolbox/fdc3-workbench/src/store/ChannelStore.ts +++ b/toolbox/fdc3-workbench/src/store/ChannelStore.ts @@ -3,9 +3,9 @@ * Copyright FINOS FDC3 contributors - see NOTICE file */ import { makeObservable, observable, action, runInAction } from 'mobx'; -import systemLogStore from './SystemLogStore'; +import systemLogStore from './SystemLogStore.js'; import { Channel } from '@finos/fdc3'; -import { getWorkbenchAgent } from '../utility/Fdc3Api'; +import { getWorkbenchAgent } from '../utility/Fdc3Api.js'; class ChannelStore { userChannels: Channel[] = []; diff --git a/toolbox/fdc3-workbench/src/store/ContextStore.ts b/toolbox/fdc3-workbench/src/store/ContextStore.ts index 13b651da4..d52485761 100644 --- a/toolbox/fdc3-workbench/src/store/ContextStore.ts +++ b/toolbox/fdc3-workbench/src/store/ContextStore.ts @@ -3,10 +3,10 @@ * Copyright FINOS FDC3 contributors - see NOTICE file */ import { makeObservable, observable, runInAction, action, toJS } from 'mobx'; -import { ContextType, Fdc3Listener, getWorkbenchAgent } from '../utility/Fdc3Api'; +import { ContextType, Fdc3Listener, getWorkbenchAgent } from '../utility/Fdc3Api.js'; import { nanoid } from 'nanoid'; -import { contexts } from '../fixtures/contexts'; -import systemLogStore from './SystemLogStore'; +import { contexts } from '../fixtures/contexts.js'; +import systemLogStore from './SystemLogStore.js'; import { v4 as uuidv4 } from 'uuid'; export type ContextItem = { diff --git a/toolbox/fdc3-workbench/src/store/IntentStore.ts b/toolbox/fdc3-workbench/src/store/IntentStore.ts index 29dcfc465..dd4c4c69c 100644 --- a/toolbox/fdc3-workbench/src/store/IntentStore.ts +++ b/toolbox/fdc3-workbench/src/store/IntentStore.ts @@ -10,12 +10,12 @@ import { AppMetadata, PrivateChannel, getWorkbenchAgent, -} from '../utility/Fdc3Api'; +} from '../utility/Fdc3Api.js'; import { nanoid } from 'nanoid'; -import { intentTypes } from '../fixtures/intentTypes'; -import systemLogStore from './SystemLogStore'; -import appChannelStore from './AppChannelStore'; -import privateChannelStore from './PrivateChannelStore'; +import { intentTypes } from '../fixtures/intentTypes.js'; +import systemLogStore from './SystemLogStore.js'; +import appChannelStore from './AppChannelStore.js'; +import privateChannelStore from './PrivateChannelStore.js'; import { Channel, IntentResult } from '@finos/fdc3'; type IntentItem = { title: string; value: string }; diff --git a/toolbox/fdc3-workbench/src/store/PrivateChannelStore.tsx b/toolbox/fdc3-workbench/src/store/PrivateChannelStore.tsx index fb9965d1b..97fe27178 100644 --- a/toolbox/fdc3-workbench/src/store/PrivateChannelStore.tsx +++ b/toolbox/fdc3-workbench/src/store/PrivateChannelStore.tsx @@ -3,10 +3,10 @@ * Copyright FINOS FDC3 contributors - see NOTICE file */ import { makeObservable, observable, action, runInAction, toJS } from 'mobx'; -import { ContextType, Fdc3Listener, PrivateChannel } from '../utility/Fdc3Api'; -import systemLogStore from './SystemLogStore'; +import { ContextType, Fdc3Listener, PrivateChannel } from '../utility/Fdc3Api.js'; +import systemLogStore from './SystemLogStore.js'; import { nanoid } from 'nanoid'; -import { getWorkbenchAgent } from '../utility/Fdc3Api'; +import { getWorkbenchAgent } from '../utility/Fdc3Api.js'; // interface ListenerOptionType { // title: string; // value: string; diff --git a/toolbox/fdc3-workbench/src/store/SystemLogStore.ts b/toolbox/fdc3-workbench/src/store/SystemLogStore.ts index eb4816c61..38b538755 100644 --- a/toolbox/fdc3-workbench/src/store/SystemLogStore.ts +++ b/toolbox/fdc3-workbench/src/store/SystemLogStore.ts @@ -4,8 +4,8 @@ */ import { makeObservable, observable, action } from 'mobx'; import { nanoid } from 'nanoid'; -import { getLogMessage } from '../fixtures/logMessages'; -import snackbarStore from './SnackbarStore'; +import { getLogMessage } from '../fixtures/logMessages.js'; +import snackbarStore from './SnackbarStore.js'; export type logMessagesName = | 'getFdc3' From fdf318835353c37a6d6f1516a790e991659e7534 Mon Sep 17 00:00:00 2001 From: Giles Roadnight <10414642+Roaders@users.noreply.github.com> Date: Tue, 14 Oct 2025 16:45:02 +0100 Subject: [PATCH 03/10] esm config --- packages/fdc3-agent-proxy/cucumber.yml | 2 +- packages/fdc3-context/{jest.config.js => jest.config.cjs} | 0 toolbox/fdc3-for-web/demo/package.json | 6 +++--- 3 files changed, 4 insertions(+), 4 deletions(-) rename packages/fdc3-context/{jest.config.js => jest.config.cjs} (100%) diff --git a/packages/fdc3-agent-proxy/cucumber.yml b/packages/fdc3-agent-proxy/cucumber.yml index 2572a0c7b..bacf6c69b 100644 --- a/packages/fdc3-agent-proxy/cucumber.yml +++ b/packages/fdc3-agent-proxy/cucumber.yml @@ -5,7 +5,7 @@ default: - junit:test-results.xml paths: - test/features/*.feature - require: + import: - test/step-definitions/*.steps.ts - test/support/*.ts - test/world/index.ts diff --git a/packages/fdc3-context/jest.config.js b/packages/fdc3-context/jest.config.cjs similarity index 100% rename from packages/fdc3-context/jest.config.js rename to packages/fdc3-context/jest.config.cjs diff --git a/toolbox/fdc3-for-web/demo/package.json b/toolbox/fdc3-for-web/demo/package.json index ee3229a79..4e4c0fd86 100644 --- a/toolbox/fdc3-for-web/demo/package.json +++ b/toolbox/fdc3-for-web/demo/package.json @@ -1,10 +1,10 @@ { "name": "@finos/demo", "private": true, - "version": "2.2.2-beta.1", + "version": "2.2.0", "license": "Apache-2.0", "scripts": { - "dev": "nodemon -w src/server src/server/main.ts", + "dev": "tsx src/server/main.ts", "lint": "eslint src/" }, "devDependencies": { @@ -22,7 +22,7 @@ "vite": "^6.4.1" }, "dependencies": { - "@finos/fdc3": "2.2.2-beta.1", + "@finos/fdc3": "2.2.0", "@types/uuid": "^10.0.0", "@types/ws": "^8.5.12", "express": "^4.21.1", From 88f67e6cc3c6badd3df230fed051af16bf566ec6 Mon Sep 17 00:00:00 2001 From: Kris West Date: Tue, 4 Nov 2025 09:43:56 +0000 Subject: [PATCH 04/10] Update .semgrepignore --- .semgrepignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.semgrepignore b/.semgrepignore index 9509aecef..174b73ba3 100644 --- a/.semgrepignore +++ b/.semgrepignore @@ -1,7 +1,7 @@ website/** # Just used for build so ignoring -s2tQuicktypeUtil.js +s2tQuicktypeUtil.cjs t2sQuicktypeUtil.js # API schema set for localhost gets picked up by semgrep rule From dbd88593d01065cfd34c01ed5c2cbb4dabe8fc86 Mon Sep 17 00:00:00 2001 From: "Giles R. Roadnight" <10414642+Roaders@users.noreply.github.com> Date: Thu, 15 Jan 2026 09:16:48 +0000 Subject: [PATCH 05/10] migrate all tests to vitest --- package-lock.json | 15587 +++++++++------- package.json | 4 +- packages/fdc3-agent-proxy/package.json | 30 +- .../listeners/DesktopAgentEventListener.ts | 6 +- .../step-definitions/channelSelector.steps.ts | 34 +- .../test/step-definitions/channels.steps.ts | 184 +- .../test/step-definitions/generic.steps.ts | 40 +- .../test/step-definitions/intents.steps.ts | 96 +- .../test/step-definitions/util.steps.ts | 61 +- packages/fdc3-agent-proxy/test/steps.ts | 15 + .../support/responses/AddEventListener.ts | 2 +- packages/fdc3-agent-proxy/test/world/index.ts | 18 +- packages/fdc3-agent-proxy/vitest.config.ts | 23 + packages/fdc3-context/jest.config.cjs | 9 - packages/fdc3-context/package.json | 21 +- .../test/validate-schema-examples.test.ts | 9 +- packages/fdc3-context/vitest.config.ts | 7 + packages/fdc3-get-agent/package.json | 1 + .../channel-selector.steps.ts | 16 +- .../desktop-agent-api.steps.ts | 33 +- .../step-definitions/desktop-agent.steps.ts | 281 +- .../test/step-definitions/generic.steps.ts | 6 + .../step-definitions/intent-resolver.steps.ts | 65 +- .../step-definitions/port-creation.steps.ts | 25 +- .../test/step-definitions/util.steps.ts | 8 +- packages/fdc3-get-agent/test/steps.ts | 17 + packages/fdc3-get-agent/test/world/index.ts | 22 +- packages/fdc3-get-agent/vitest.config.ts | 23 + .../generate-type-predicates.ts | 2 +- packages/fdc3-schema/eslint.config.mjs | 1 - packages/fdc3-schema/package.json | 5 +- packages/fdc3-standard/jest.config.js | 13 - packages/fdc3-standard/package.json | 26 +- .../fdc3-standard/test/ContextTypes.test.ts | 1 + packages/fdc3-standard/test/Methods.test.ts | 137 +- packages/fdc3-standard/test/window.test.ts | 2 + packages/fdc3-standard/vitest.config.ts | 16 + packages/fdc3/package.json | 2 +- packages/testing/package.json | 14 +- packages/testing/src/agent/index.ts | 10 +- packages/testing/src/index.ts | 12 +- packages/testing/src/steps/generic.impl.ts | 219 + packages/testing/src/steps/generic.steps.ts | 211 +- packages/testing/src/support/matching.ts | 24 +- packages/testing/src/world/PropsWorldLike.ts | 5 + packages/testing/src/world/index.ts | 5 - .../fdc3-for-web/fdc3-web-impl/package.json | 20 +- .../step-definitions/app-channel.steps.ts | 29 +- .../test/step-definitions/broadcast.steps.ts | 52 +- .../step-definitions/event-listeners.steps.ts | 24 +- .../test/step-definitions/generic.steps.ts | 28 +- .../test/step-definitions/heartbeat.steps.ts | 30 +- .../test/step-definitions/intents.steps.ts | 161 +- .../test/step-definitions/messaging.steps.ts | 20 +- .../step-definitions/private-channel.steps.ts | 55 +- .../test/step-definitions/start-app.steps.ts | 79 +- .../step-definitions/user-channel.steps.ts | 48 +- .../fdc3-for-web/fdc3-web-impl/test/steps.ts | 20 + .../fdc3-web-impl/test/world/index.ts | 21 +- .../fdc3-web-impl/vitest.config.ts | 23 + .../src/components/ChannelField.tsx | 2 +- 61 files changed, 9671 insertions(+), 8289 deletions(-) create mode 100644 packages/fdc3-agent-proxy/test/steps.ts create mode 100644 packages/fdc3-agent-proxy/vitest.config.ts delete mode 100644 packages/fdc3-context/jest.config.cjs create mode 100644 packages/fdc3-context/vitest.config.ts create mode 100644 packages/fdc3-get-agent/test/step-definitions/generic.steps.ts create mode 100644 packages/fdc3-get-agent/test/steps.ts create mode 100644 packages/fdc3-get-agent/vitest.config.ts delete mode 100644 packages/fdc3-standard/jest.config.js create mode 100644 packages/fdc3-standard/vitest.config.ts create mode 100644 packages/testing/src/steps/generic.impl.ts create mode 100644 packages/testing/src/world/PropsWorldLike.ts delete mode 100644 packages/testing/src/world/index.ts create mode 100644 toolbox/fdc3-for-web/fdc3-web-impl/test/steps.ts create mode 100644 toolbox/fdc3-for-web/fdc3-web-impl/vitest.config.ts diff --git a/package-lock.json b/package-lock.json index 8fcb2bf2c..79e064a96 100644 --- a/package-lock.json +++ b/package-lock.json @@ -34,7 +34,31 @@ "istanbul-merge": "^2.0.0", "lint-staged": "^15.2.10", "nyc": "17.1.0", - "prettier": "3.4.1" + "pixelmatch": "^7.1.0", + "prettier": "3.4.1", + "tsx": "^4.20.5", + "vitest-mock-extended": "^2.0.0" + } + }, + "node_modules/@a11y-tools/aria-roles": { + "version": "1.0.0", + "integrity": "sha512-9rLDOQxgwJ6l9zhikwPx1L3fmsCO1aR19C0mBY5Zfdge9HmpbRNksynEjckqY8uSL/58mRTfSfZ3/uLWGUCwoA==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" } }, "node_modules/@apidevtools/json-schema-ref-parser": { @@ -506,57 +530,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-syntax-import-assertions": { "version": "7.28.6", "integrity": "sha512-pSJUpFHdx9z5nqTSirOCMtYVP2wFgoWhP0p3g8ONK/4IHhLIBd0B9NYqAvIUAhq+OkhO4VM1tENCt0cjlsNShw==", @@ -587,162 +560,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.28.6", - "integrity": "sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.28.6", - "integrity": "sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-syntax-unicode-sets-regex": { "version": "7.18.6", "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", @@ -3113,347 +2930,74 @@ "node": ">=8" } }, - "node_modules/@jest/console": { + "node_modules/@jest/expect-utils": { "version": "29.7.0", - "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", - "dev": true, + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0" + "jest-get-type": "^29.6.3" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/core": { - "version": "29.7.0", - "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", - "dev": true, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "license": "MIT", "dependencies": { - "@jest/console": "^29.7.0", - "@jest/reporters": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.7.0", - "jest-config": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-resolve-dependencies": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "jest-watcher": "^29.7.0", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" + "@sinclair/typebox": "^0.27.8" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/core/node_modules/ci-info": { - "version": "3.9.0", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "license": "MIT", - "engines": { - "node": ">=8" } }, - "node_modules/@jest/environment": { - "version": "29.7.0", - "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", - "dev": true, + "node_modules/@jest/types": { + "version": "29.6.3", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "license": "MIT", "dependencies": { - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", "@types/node": "*", - "jest-mock": "^29.7.0" + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/expect": { - "version": "29.7.0", - "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", - "dev": true, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", "license": "MIT", "dependencies": { - "expect": "^29.7.0", - "jest-snapshot": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" } }, - "node_modules/@jest/expect-utils": { - "version": "29.7.0", - "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", "license": "MIT", "dependencies": { - "jest-get-type": "^29.6.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" } }, - "node_modules/@jest/fake-timers": { - "version": "29.7.0", - "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", - "dev": true, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@sinonjs/fake-timers": "^10.0.2", - "@types/node": "*", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/globals": { - "version": "29.7.0", - "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/types": "^29.6.3", - "jest-mock": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/reporters": { - "version": "29.7.0", - "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^6.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "v8-to-istanbul": "^9.0.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/reporters/node_modules/glob": { - "version": "7.2.3", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "license": "ISC", - "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" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "license": "MIT", - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/source-map": { - "version": "29.6.3", - "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.18", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/test-result": { - "version": "29.7.0", - "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "29.7.0", - "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/test-result": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/transform": { - "version": "29.7.0", - "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.2" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/types": { - "version": "29.6.3", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.13", - "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/remapping": { - "version": "2.3.5", - "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" + "node": ">=6.0.0" } }, "node_modules/@jridgewell/source-map": { "version": "0.3.11", "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", @@ -4086,12 +3630,12 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "android" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-android-arm64": { "version": "4.59.0", @@ -4099,12 +3643,12 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "android" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-darwin-arm64": { "version": "4.59.0", @@ -4112,12 +3656,12 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "darwin" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-darwin-x64": { "version": "4.59.0", @@ -4125,12 +3669,12 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "darwin" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-freebsd-arm64": { "version": "4.59.0", @@ -4138,12 +3682,12 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "freebsd" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-freebsd-x64": { "version": "4.59.0", @@ -4151,12 +3695,12 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "freebsd" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { "version": "4.59.0", @@ -4164,12 +3708,12 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { "version": "4.59.0", @@ -4177,12 +3721,12 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-linux-arm64-gnu": { "version": "4.59.0", @@ -4190,12 +3734,12 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-linux-arm64-musl": { "version": "4.59.0", @@ -4203,12 +3747,12 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-linux-loong64-gnu": { "version": "4.59.0", @@ -4216,12 +3760,12 @@ "cpu": [ "loong64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-linux-loong64-musl": { "version": "4.59.0", @@ -4229,12 +3773,12 @@ "cpu": [ "loong64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-linux-ppc64-gnu": { "version": "4.59.0", @@ -4242,12 +3786,12 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-linux-ppc64-musl": { "version": "4.59.0", @@ -4255,12 +3799,12 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { "version": "4.59.0", @@ -4268,12 +3812,12 @@ "cpu": [ "riscv64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-linux-riscv64-musl": { "version": "4.59.0", @@ -4281,12 +3825,12 @@ "cpu": [ "riscv64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-linux-s390x-gnu": { "version": "4.59.0", @@ -4294,12 +3838,12 @@ "cpu": [ "s390x" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-linux-x64-gnu": { "version": "4.59.0", @@ -4307,12 +3851,12 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-linux-x64-musl": { "version": "4.59.0", @@ -4320,12 +3864,12 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-openbsd-x64": { "version": "4.59.0", @@ -4333,12 +3877,12 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "openbsd" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-openharmony-arm64": { "version": "4.59.0", @@ -4346,12 +3890,12 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "openharmony" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-win32-arm64-msvc": { "version": "4.59.0", @@ -4359,12 +3903,12 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "win32" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-win32-ia32-msvc": { "version": "4.59.0", @@ -4372,12 +3916,12 @@ "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "win32" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-win32-x64-gnu": { "version": "4.59.0", @@ -4385,12 +3929,12 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "win32" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-win32-x64-msvc": { "version": "4.59.0", @@ -4398,12 +3942,12 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "win32" - ] + ], + "peer": true }, "node_modules/@rtsao/scc": { "version": "1.1.0", @@ -4415,24 +3959,6 @@ "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", "license": "MIT" }, - "node_modules/@sinonjs/commons": { - "version": "3.0.1", - "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "10.3.0", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.0" - } - }, "node_modules/@socket.io/component-emitter": { "version": "3.1.2", "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", @@ -4455,8 +3981,9 @@ "node_modules/@tootallnate/once": { "version": "2.0.0", "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true, "license": "MIT", + "optional": true, + "peer": true, "engines": { "node": ">= 10" } @@ -4632,6 +4159,12 @@ "@types/node": "*" } }, + "node_modules/@types/deep-eql": { + "version": "4.0.2", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/elasticlunr": { "version": "0.9.9", "integrity": "sha512-59TMY+u8jKLqSg0AZStCz4n8A7l/nVenmum6fFQa9bUOH26GNMEgDseiN813IxXmTQ0AivefnMlbileBggCf5g==", @@ -4695,15 +4228,6 @@ "@types/send": "*" } }, - "node_modules/@types/graceful-fs": { - "version": "4.1.9", - "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/http-errors": { "version": "2.0.5", "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", @@ -4731,27 +4255,6 @@ "@types/istanbul-lib-report": "*" } }, - "node_modules/@types/jest": { - "version": "29.5.13", - "integrity": "sha512-wd+MVEZCHt23V0/L642O5APvspWply/rGY5BcW4SUETo2UzPU3Z26qr8jC2qxpimI2jjx9h7+2cj2FwIr01bXg==", - "dev": true, - "license": "MIT", - "dependencies": { - "expect": "^29.0.0", - "pretty-format": "^29.0.0" - } - }, - "node_modules/@types/jsdom": { - "version": "20.0.1", - "integrity": "sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/tough-cookie": "*", - "parse5": "^7.0.0" - } - }, "node_modules/@types/json-schema": { "version": "7.0.15", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", @@ -4906,12 +4409,6 @@ "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", "license": "MIT" }, - "node_modules/@types/tough-cookie": { - "version": "4.0.5", - "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/unist": { "version": "2.0.11", "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", @@ -5264,20 +4761,291 @@ "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" } }, - "node_modules/@webassemblyjs/ast": { - "version": "1.14.1", - "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "node_modules/@vitest/coverage-v8": { + "version": "2.1.9", + "integrity": "sha512-Z2cOr0ksM00MpEfyVE8KXIYPEcBFxdbLSs56L8PO0QQMxt/6bDj45uQfxoc96v05KW3clk7vvgP0qfDit9DmfQ==", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/helper-numbers": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.13.2", - "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", - "dev": true, + "@ampproject/remapping": "^2.3.0", + "@bcoe/v8-coverage": "^0.2.3", + "debug": "^4.3.7", + "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.12", + "magicast": "^0.3.5", + "std-env": "^3.8.0", + "test-exclude": "^7.0.1", + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@vitest/browser": "2.1.9", + "vitest": "2.1.9" + }, + "peerDependenciesMeta": { + "@vitest/browser": { + "optional": true + } + } + }, + "node_modules/@vitest/coverage-v8/node_modules/brace-expansion": { + "version": "2.0.2", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@vitest/coverage-v8/node_modules/istanbul-lib-source-maps": { + "version": "5.0.6", + "integrity": "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.23", + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@vitest/coverage-v8/node_modules/minimatch": { + "version": "9.0.5", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@vitest/coverage-v8/node_modules/test-exclude": { + "version": "7.0.1", + "integrity": "sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^10.4.1", + "minimatch": "^9.0.4" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@vitest/expect": { + "version": "2.1.9", + "integrity": "sha512-UJCIkTBenHeKT1TTlKMJWy1laZewsRIzYighyYiJKZreqtdxSos/S1t+ktRMQWu2CKqaarrkeszJx1cgC5tGZw==", + "license": "MIT", + "dependencies": { + "@vitest/spy": "2.1.9", + "@vitest/utils": "2.1.9", + "chai": "^5.1.2", + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/expect/node_modules/assertion-error": { + "version": "2.0.1", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/@vitest/expect/node_modules/chai": { + "version": "5.3.3", + "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@vitest/expect/node_modules/check-error": { + "version": "2.1.3", + "integrity": "sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==", + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, + "node_modules/@vitest/expect/node_modules/deep-eql": { + "version": "5.0.2", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@vitest/expect/node_modules/loupe": { + "version": "3.2.1", + "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==", + "license": "MIT" + }, + "node_modules/@vitest/expect/node_modules/pathval": { + "version": "2.0.1", + "integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==", + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, + "node_modules/@vitest/mocker": { + "version": "3.2.4", + "integrity": "sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "3.2.4", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.17" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@vitest/mocker/node_modules/@vitest/spy": { + "version": "3.2.4", + "integrity": "sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyspy": "^4.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/mocker/node_modules/estree-walker": { + "version": "3.0.3", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/@vitest/mocker/node_modules/tinyspy": { + "version": "4.0.4", + "integrity": "sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@vitest/pretty-format": { + "version": "2.1.9", + "integrity": "sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ==", + "license": "MIT", + "dependencies": { + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "2.1.9", + "integrity": "sha512-ZXSSqTFIrzduD63btIfEyOmNcBmQvgOVsPNPe0jYtESiXkhd8u2erDLnMxmGrDCwHCCHE7hxwRDCT3pt0esT4g==", + "license": "MIT", + "dependencies": { + "@vitest/utils": "2.1.9", + "pathe": "^1.1.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "2.1.9", + "integrity": "sha512-oBO82rEjsxLNJincVhLhaxxZdEtV0EFHMK5Kmx5sJ6H9L183dHECjiefOAdnqpIgT5eZwT04PoggUnW88vOBNQ==", + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "2.1.9", + "magic-string": "^0.30.12", + "pathe": "^1.1.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "2.1.9", + "integrity": "sha512-E1B35FwzXXTs9FHNK6bDszs7mtydNi5MIfUWpceJ8Xbfb1gBMscAnwLbEu+B44ed6W3XjL9/ehLPHR1fkf1KLQ==", + "license": "MIT", + "dependencies": { + "tinyspy": "^3.0.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "2.1.9", + "integrity": "sha512-v0psaMSkNJ3A2NMrUEHFRzJtDPFn+/VWZ5WxImB21T9fjucJRmS7xCS3ppEnARb9y11OAzaD+P2Ps+b+BGX5iQ==", + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "2.1.9", + "loupe": "^3.1.2", + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils/node_modules/loupe": { + "version": "3.2.1", + "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/helper-api-error": { @@ -5462,8 +5230,9 @@ "version": "2.0.6", "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", "deprecated": "Use your platform's native atob() and btoa() methods instead", - "dev": true, - "license": "BSD-3-Clause" + "license": "BSD-3-Clause", + "optional": true, + "peer": true }, "node_modules/abort-controller": { "version": "3.0.0", @@ -5509,8 +5278,9 @@ "node_modules/acorn-globals": { "version": "7.0.1", "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", - "dev": true, "license": "MIT", + "optional": true, + "peer": true, "dependencies": { "acorn": "^8.1.0", "acorn-walk": "^8.0.2" @@ -5550,8 +5320,9 @@ "node_modules/agent-base": { "version": "6.0.2", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, "license": "MIT", + "optional": true, + "peer": true, "dependencies": { "debug": "4" }, @@ -5630,33 +5401,6 @@ "node": ">=6" } }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/ansi-regex": { "version": "4.1.1", "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", @@ -5959,6 +5703,32 @@ "dev": true, "license": "MIT" }, + "node_modules/ast-v8-to-istanbul": { + "version": "0.3.11", + "integrity": "sha512-Qya9fkoofMjCBNVdWINMjB5KZvkYfaO9/anwkWnjxibpWUxo5iHl2sOdP7/uAqaRuUYuoo8rDwnbaaKVFxoUvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.31", + "estree-walker": "^3.0.3", + "js-tokens": "^10.0.0" + } + }, + "node_modules/ast-v8-to-istanbul/node_modules/estree-walker": { + "version": "3.0.3", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/ast-v8-to-istanbul/node_modules/js-tokens": { + "version": "10.0.0", + "integrity": "sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==", + "dev": true, + "license": "MIT" + }, "node_modules/async": { "version": "3.2.6", "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", @@ -5976,8 +5746,9 @@ "node_modules/asynckit": { "version": "0.4.0", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true, - "license": "MIT" + "license": "MIT", + "optional": true, + "peer": true }, "node_modules/available-typed-arrays": { "version": "1.0.7", @@ -6011,109 +5782,32 @@ "node": ">= 0.4" } }, - "node_modules/babel-jest": { - "version": "29.7.0", - "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.15", + "integrity": "sha512-hR3GwrRwHUfYwGfrisXPIDP3JcYfBrW7wKE7+Au6wDYl7fm/ka1NEII6kORzxNU556JjfidZeBsO10kYvtV1aw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/transform": "^29.7.0", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.6.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "@babel/compat-data": "^7.28.6", + "@babel/helper-define-polyfill-provider": "^0.6.6", + "semver": "^6.3.1" }, "peerDependencies": { - "@babel/core": "^7.8.0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" + "license": "ISC", + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/semver": { - "version": "6.3.1", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "29.6.3", - "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.15", - "integrity": "sha512-hR3GwrRwHUfYwGfrisXPIDP3JcYfBrW7wKE7+Au6wDYl7fm/ka1NEII6kORzxNU556JjfidZeBsO10kYvtV1aw==", - "dev": true, - "license": "MIT", - "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" - } - }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.1", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.13.0", - "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.13.0", + "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", "dev": true, "license": "MIT", "dependencies": { @@ -6136,48 +5830,6 @@ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.2.0", - "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==", - "dev": true, - "license": "MIT", - "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" - } - }, - "node_modules/babel-preset-jest": { - "version": "29.6.3", - "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", - "dev": true, - "license": "MIT", - "dependencies": { - "babel-plugin-jest-hoist": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, "node_modules/bail": { "version": "1.0.5", "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", @@ -6516,27 +6168,6 @@ "browserslist": "*" } }, - "node_modules/bs-logger": { - "version": "0.2.6", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-json-stable-stringify": "2.x" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "node-int64": "^0.4.0" - } - }, "node_modules/buffer": { "version": "6.0.3", "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", @@ -6585,6 +6216,14 @@ "node": ">= 0.8" } }, + "node_modules/cac": { + "version": "6.7.14", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/caching-transform": { "version": "4.0.0", "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", @@ -6792,15 +6431,6 @@ "node": ">=8" } }, - "node_modules/char-regex": { - "version": "1.0.2", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, "node_modules/character-entities": { "version": "1.2.4", "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", @@ -6901,12 +6531,6 @@ "node": ">= 0.10" } }, - "node_modules/cjs-module-lexer": { - "version": "1.4.3", - "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==", - "dev": true, - "license": "MIT" - }, "node_modules/class-transformer": { "version": "0.5.1", "integrity": "sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==", @@ -7069,28 +6693,12 @@ "node": ">=6" } }, - "node_modules/co": { - "version": "4.6.0", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, "node_modules/code-block-writer": { "version": "13.0.3", "integrity": "sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==", "dev": true, "license": "MIT" }, - "node_modules/collect-v8-coverage": { - "version": "1.0.3", - "integrity": "sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==", - "dev": true, - "license": "MIT" - }, "node_modules/collection-utils": { "version": "1.0.1", "integrity": "sha512-LA2YTIlR7biSpXkKYwwuzGjwL5rjWEZVOSnvdUc7gObvWe4WkjxOpfrdhoP7Hs09YWDVfg0Mal9BpAqLfVEzQg==", @@ -7153,8 +6761,9 @@ "node_modules/combined-stream": { "version": "1.0.8", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, "license": "MIT", + "optional": true, + "peer": true, "dependencies": { "delayed-stream": "~1.0.0" }, @@ -7401,27 +7010,6 @@ "sha.js": "^2.4.8" } }, - "node_modules/create-jest": { - "version": "29.7.0", - "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "prompts": "^2.0.1" - }, - "bin": { - "create-jest": "bin/create-jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, "node_modules/create-require": { "version": "1.1.1", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", @@ -7547,14 +7135,16 @@ "node_modules/cssom": { "version": "0.5.0", "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", - "dev": true, - "license": "MIT" + "license": "MIT", + "optional": true, + "peer": true }, "node_modules/cssstyle": { "version": "2.3.0", "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, "license": "MIT", + "optional": true, + "peer": true, "dependencies": { "cssom": "~0.3.6" }, @@ -7565,8 +7155,9 @@ "node_modules/cssstyle/node_modules/cssom": { "version": "0.3.8", "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true, - "license": "MIT" + "license": "MIT", + "optional": true, + "peer": true }, "node_modules/csstype": { "version": "3.2.3", @@ -7576,6 +7167,7 @@ "node_modules/cucumber-console-formatter": { "version": "1.0.0", "integrity": "sha512-2DtwlLDE+URsh6/optsjH4/JLF01p9pkBMxBhH702neUrtU/FXm9FEyBYqhg5355MIq2FgEdRB3AcoVfBxO8hw==", + "dev": true, "license": "ISC", "dependencies": { "@types/lodash": "4.14.167" @@ -7596,8 +7188,9 @@ "node_modules/data-urls": { "version": "3.0.2", "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", - "dev": true, "license": "MIT", + "optional": true, + "peer": true, "dependencies": { "abab": "^2.0.6", "whatwg-mimetype": "^3.0.0", @@ -7610,8 +7203,9 @@ "node_modules/data-urls/node_modules/tr46": { "version": "3.0.0", "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", - "dev": true, "license": "MIT", + "optional": true, + "peer": true, "dependencies": { "punycode": "^2.1.1" }, @@ -7622,8 +7216,9 @@ "node_modules/data-urls/node_modules/webidl-conversions": { "version": "7.0.0", "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "dev": true, "license": "BSD-2-Clause", + "optional": true, + "peer": true, "engines": { "node": ">=12" } @@ -7631,8 +7226,9 @@ "node_modules/data-urls/node_modules/whatwg-url": { "version": "11.0.0", "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", - "dev": true, "license": "MIT", + "optional": true, + "peer": true, "dependencies": { "tr46": "^3.0.0", "webidl-conversions": "^7.0.0" @@ -7732,22 +7328,9 @@ "node_modules/decimal.js": { "version": "10.6.0", "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", - "dev": true, - "license": "MIT" - }, - "node_modules/dedent": { - "version": "1.7.1", - "integrity": "sha512-9JmrhGZpOlEgOLdQgSm0zxFaYoQon408V1v49aqTWuXENVlnCuY9JBZcXZiCsZQWDjTm5Qf/nIvAy77mXDAjEg==", - "dev": true, "license": "MIT", - "peerDependencies": { - "babel-plugin-macros": "^3.1.0" - }, - "peerDependenciesMeta": { - "babel-plugin-macros": { - "optional": true - } - } + "optional": true, + "peer": true }, "node_modules/deep-eql": { "version": "4.1.4", @@ -7823,8 +7406,9 @@ "node_modules/delayed-stream": { "version": "1.0.0", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, "license": "MIT", + "optional": true, + "peer": true, "engines": { "node": ">=0.4.0" } @@ -7856,15 +7440,6 @@ "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/detect-newline": { - "version": "3.1.0", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/diff": { "version": "4.0.4", "integrity": "sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ==", @@ -7970,8 +7545,9 @@ "version": "4.0.0", "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", "deprecated": "Use your platform's native DOMException instead", - "dev": true, "license": "MIT", + "optional": true, + "peer": true, "dependencies": { "webidl-conversions": "^7.0.0" }, @@ -7982,8 +7558,9 @@ "node_modules/domexception/node_modules/webidl-conversions": { "version": "7.0.0", "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "dev": true, "license": "BSD-2-Clause", + "optional": true, + "peer": true, "engines": { "node": ">=12" } @@ -8038,21 +7615,6 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", "license": "MIT" }, - "node_modules/ejs": { - "version": "3.1.10", - "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "jake": "^10.8.5" - }, - "bin": { - "ejs": "bin/cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/elasticlunr": { "version": "0.9.5", "integrity": "sha512-5YM9LFQgVYfuLNEoqMqVWIBuF2UNCA+xu/jz1TyryLN/wmBcQSb+GNAwvLKvEpGESwgGN8XA1nbLAt6rKlyHYQ==", @@ -8084,18 +7646,6 @@ "dev": true, "license": "MIT" }, - "node_modules/emittery": { - "version": "0.13.1", - "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, "node_modules/emoji-regex": { "version": "9.2.2", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", @@ -8449,8 +7999,9 @@ "node_modules/escodegen": { "version": "2.1.0", "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "dev": true, "license": "BSD-2-Clause", + "optional": true, + "peer": true, "dependencies": { "esprima": "^4.0.1", "estraverse": "^5.2.0", @@ -8626,31 +8177,6 @@ "semver": "bin/semver.js" } }, - "node_modules/eslint-plugin-jest": { - "version": "28.8.3", - "integrity": "sha512-HIQ3t9hASLKm2IhIOqnu+ifw7uLZkIlR7RYNv7fMcEi/p0CIiJmfriStQS2LDkgtY4nyLbIZAD+JL347Yc2ETQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/utils": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "engines": { - "node": "^16.10.0 || ^18.12.0 || >=20.0.0" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^6.0.0 || ^7.0.0 || ^8.0.0", - "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0", - "jest": "*" - }, - "peerDependenciesMeta": { - "@typescript-eslint/eslint-plugin": { - "optional": true - }, - "jest": { - "optional": true - } - } - }, "node_modules/eslint-plugin-jsx-a11y": { "version": "6.10.2", "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", @@ -8898,43 +8424,6 @@ "safe-buffer": "^5.1.1" } }, - "node_modules/execa": { - "version": "5.1.1", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "license": "MIT", - "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" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/execa/node_modules/signal-exit": { - "version": "3.0.7", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/exit": { - "version": "0.1.2", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/expect": { "version": "29.7.0", "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", @@ -8950,6 +8439,14 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/expect-type": { + "version": "1.3.0", + "integrity": "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==", + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/express": { "version": "4.22.1", "integrity": "sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==", @@ -9094,15 +8591,6 @@ "reusify": "^1.0.4" } }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "bser": "2.1.1" - } - }, "node_modules/fdc3-1.2": { "name": "@finos/fdc3", "version": "1.2.0", @@ -9158,40 +8646,10 @@ "node": ">=16.0.0" } }, - "node_modules/filelist": { - "version": "1.0.4", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "minimatch": "^5.0.1" - } - }, - "node_modules/filelist/node_modules/brace-expansion": { - "version": "2.0.2", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/filelist/node_modules/minimatch": { - "version": "5.1.7", - "integrity": "sha512-FjiwU9HaHW6YB3H4a1sFudnv93lvydNjz2lmyUXR6IwKhGI+bgL3SOZrBGn6kvvX2pJvhEkGSGjyTHN47O4rqA==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "license": "MIT", + "node_modules/fill-range": { + "version": "7.1.1", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -9371,8 +8829,9 @@ "node_modules/form-data": { "version": "4.0.5", "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", - "dev": true, "license": "MIT", + "optional": true, + "peer": true, "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -9559,18 +9018,6 @@ "node": ">= 0.4" } }, - "node_modules/get-stream": { - "version": "6.0.1", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/get-symbol-description": { "version": "1.1.0", "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", @@ -9922,7 +9369,7 @@ "node_modules/html-encoding-sniffer": { "version": "3.0.0", "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "whatwg-encoding": "^2.0.0" @@ -10014,8 +9461,9 @@ "node_modules/http-proxy-agent": { "version": "5.0.0", "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dev": true, "license": "MIT", + "optional": true, + "peer": true, "dependencies": { "@tootallnate/once": "2", "agent-base": "6", @@ -10067,8 +9515,9 @@ "node_modules/https-proxy-agent": { "version": "5.0.1", "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, "license": "MIT", + "optional": true, + "peer": true, "dependencies": { "agent-base": "6", "debug": "4" @@ -10077,15 +9526,6 @@ "node": ">= 6" } }, - "node_modules/human-signals": { - "version": "2.1.0", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.17.0" - } - }, "node_modules/husky": { "version": "9.1.7", "integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==", @@ -10163,6 +9603,11 @@ "dev": true, "license": "ISC" }, + "node_modules/image-crop-or-pad": { + "version": "1.0.1", + "integrity": "sha512-0Gu+rHoFyKLZ14oaj+CJCElQz/5EOlMHvO9WwsANukerPSGG4MFpC81oDbvsN1wMbSzAhsgTPvgbBICl7ecazg==", + "license": "ISC" + }, "node_modules/import-fresh": { "version": "3.3.1", "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", @@ -10514,15 +9959,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/is-generator-function": { "version": "1.1.2", "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", @@ -10680,8 +10116,9 @@ "node_modules/is-potential-custom-element-name": { "version": "1.0.1", "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true, - "license": "MIT" + "license": "MIT", + "optional": true, + "peer": true }, "node_modules/is-reference": { "version": "1.2.1", @@ -11241,182 +10678,86 @@ "@pkgjs/parseargs": "^0.11.0" } }, - "node_modules/jake": { - "version": "10.9.4", - "integrity": "sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "async": "^3.2.6", - "filelist": "^1.0.4", - "picocolors": "^1.1.1" - }, - "bin": { - "jake": "bin/cli.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/javascript-natural-sort": { "version": "0.7.1", "integrity": "sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==", "dev": true, "license": "MIT" }, - "node_modules/jest": { + "node_modules/jest-diff": { "version": "29.7.0", - "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", - "dev": true, + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "license": "MIT", "dependencies": { - "@jest/core": "^29.7.0", - "@jest/types": "^29.6.3", - "import-local": "^3.0.2", - "jest-cli": "^29.7.0" - }, - "bin": { - "jest": "bin/jest.js" + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } } }, - "node_modules/jest-changed-files": { - "version": "29.7.0", - "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", - "dev": true, + "node_modules/jest-get-type": { + "version": "29.6.3", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "license": "MIT", - "dependencies": { - "execa": "^5.0.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0" - }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-circus": { + "node_modules/jest-matcher-utils": { "version": "29.7.0", - "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", - "dev": true, + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "license": "MIT", "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^1.0.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^29.7.0", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0", - "pretty-format": "^29.7.0", - "pure-rand": "^6.0.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-cli": { + "node_modules/jest-message-util": { "version": "29.7.0", - "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", - "dev": true, + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "license": "MIT", "dependencies": { - "@jest/core": "^29.7.0", - "@jest/test-result": "^29.7.0", + "@babel/code-frame": "^7.12.13", "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", - "create-jest": "^29.7.0", - "exit": "^0.1.2", - "import-local": "^3.0.2", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "yargs": "^17.3.1" - }, - "bin": { - "jest": "bin/jest.js" + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } } }, - "node_modules/jest-config": { + "node_modules/jest-util": { "version": "29.7.0", - "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", - "dev": true, + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "license": "MIT", "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.7.0", "@jest/types": "^29.6.3", - "babel-jest": "^29.7.0", + "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-circus": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" + "picomatch": "^2.2.3" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@types/node": "*", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } } }, - "node_modules/jest-config/node_modules/ci-info": { + "node_modules/jest-util/node_modules/ci-info": { "version": "3.9.0", "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "dev": true, "funding": [ { "type": "github", @@ -11428,1350 +10769,1230 @@ "node": ">=8" } }, - "node_modules/jest-config/node_modules/glob": { - "version": "7.2.3", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "node_modules/jmespath": { + "version": "0.16.0", + "integrity": "sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==", "dev": true, - "license": "ISC", - "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" - }, + "license": "Apache-2.0", "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">= 0.6.0" } }, - "node_modules/jest-diff": { - "version": "29.7.0", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "node_modules/js-base64": { + "version": "3.7.8", + "integrity": "sha512-hNngCeKxIUQiEUN3GPJOkz4wF/YvdUdbNL9hsBcMQTkKzboD7T/q3OYOuuPZLUE6dBxSGpwhk5mwuDud7JVAow==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.1", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "license": "MIT", "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" + "argparse": "^2.0.1" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jest-docblock": { - "version": "29.7.0", - "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", - "dev": true, + "node_modules/jsdom": { + "version": "20.0.3", + "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==", "license": "MIT", + "optional": true, + "peer": true, "dependencies": { - "detect-newline": "^3.0.0" + "abab": "^2.0.6", + "acorn": "^8.8.1", + "acorn-globals": "^7.0.0", + "cssom": "^0.5.0", + "cssstyle": "^2.3.0", + "data-urls": "^3.0.2", + "decimal.js": "^10.4.2", + "domexception": "^4.0.0", + "escodegen": "^2.0.0", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.1", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.2", + "parse5": "^7.1.1", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.1.2", + "w3c-xmlserializer": "^4.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0", + "ws": "^8.11.0", + "xml-name-validator": "^4.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=14" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } } }, - "node_modules/jest-each": { - "version": "29.7.0", - "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", - "dev": true, + "node_modules/jsdom/node_modules/tr46": { + "version": "3.0.0", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", "license": "MIT", + "optional": true, + "peer": true, "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "jest-util": "^29.7.0", - "pretty-format": "^29.7.0" + "punycode": "^2.1.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=12" } }, - "node_modules/jest-environment-jsdom": { - "version": "29.7.0", - "integrity": "sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==", - "dev": true, + "node_modules/jsdom/node_modules/webidl-conversions": { + "version": "7.0.0", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "license": "BSD-2-Clause", + "optional": true, + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/jsdom/node_modules/whatwg-url": { + "version": "11.0.0", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", "license": "MIT", + "optional": true, + "peer": true, "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/jsdom": "^20.0.0", - "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0", - "jsdom": "^20.0.0" + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } + "node": ">=12" } }, - "node_modules/jest-environment-node": { - "version": "29.7.0", - "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", - "dev": true, + "node_modules/jsep": { + "version": "1.4.0", + "integrity": "sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==", "license": "MIT", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 10.16.0" } }, - "node_modules/jest-get-type": { - "version": "29.6.3", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "node_modules/jsesc": { + "version": "3.1.0", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6" } }, - "node_modules/jest-haste-map": { - "version": "29.7.0", - "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "node_modules/json-buffer": { + "version": "3.0.1", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" + }, + "node_modules/json-source-map": { + "version": "0.6.1", + "integrity": "sha512-1QoztHPsMQqhDq0hlXY5ZqcEdUzxQEIxgFkKl4WUp2pgShObl+9ovi4kRh2TfvAfxAoHOJ9vIMEqk3k4iex7tg==", "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "micromatch": "^4.0.4", - "walker": "^1.0.8" + "bin": { + "json5": "lib/cli.js" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" + "node": ">=6" } }, - "node_modules/jest-junit": { - "version": "16.0.0", - "integrity": "sha512-A94mmw6NfJab4Fg/BlvVOUXzXgF0XIH6EmTgJ5NDPp4xoKq0Kr7sErb+4Xs9nZvu58pJojz5RFGpqnZYJTrRfQ==", + "node_modules/jsoneditor": { + "version": "9.10.5", + "integrity": "sha512-fVZ0NMt+zm4rqTKBv2x7zPdLeaRyKo1EjJkaR1QjK4gEM1rMwICILYSW1OPxSc1qqyAoDaA/eeNrluKoxOocCA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "mkdirp": "^1.0.4", - "strip-ansi": "^6.0.1", - "uuid": "^8.3.2", - "xml": "^1.0.1" - }, - "engines": { - "node": ">=10.12.0" + "ace-builds": "^1.31.1", + "ajv": "^6.12.6", + "javascript-natural-sort": "^0.7.1", + "jmespath": "^0.16.0", + "json-source-map": "^0.6.1", + "jsonrepair": "3.1.0", + "mobius1-selectr": "^2.4.13", + "picomodal": "^3.0.0", + "vanilla-picker": "^2.12.2" } }, - "node_modules/jest-junit/node_modules/mkdirp": { - "version": "1.0.4", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, + "node_modules/jsonpath-plus": { + "version": "10.3.0", + "integrity": "sha512-8TNmfeTCk2Le33A3vRRwtuworG/L5RrgMvdjhKZxvyShO+mBu2fP50OWUjRLNtvw344DdDarFh9buFAZs5ujeA==", "license": "MIT", + "dependencies": { + "@jsep-plugin/assignment": "^1.3.0", + "@jsep-plugin/regex": "^1.0.4", + "jsep": "^1.4.0" + }, "bin": { - "mkdirp": "bin/cmd.js" + "jsonpath": "bin/jsonpath-cli.js", + "jsonpath-plus": "bin/jsonpath-cli.js" }, "engines": { - "node": ">=10" + "node": ">=18.0.0" } }, - "node_modules/jest-junit/node_modules/uuid": { - "version": "8.3.2", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "node_modules/jsonrepair": { + "version": "3.1.0", + "integrity": "sha512-idqReg23J0PVRAADmZMc5xQM3xeOX5bTB6OTyMnzq33IXJXmn9iJuWIEvGmrN80rQf4d7uLTMEDwpzujNcI0Rg==", "dev": true, - "license": "MIT", + "license": "ISC", "bin": { - "uuid": "dist/bin/uuid" + "jsonrepair": "bin/cli.js" } }, - "node_modules/jest-leak-detector": { - "version": "29.7.0", - "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "node_modules/jss": { + "version": "10.10.0", + "integrity": "sha512-cqsOTS7jqPsPMjtKYDUpdFC0AbhYFLTcuGRqymgmdJIeQ8cH7+AgX7YSgQy79wXloZq2VvATYxUOUQEvS1V/Zw==", "dev": true, "license": "MIT", "dependencies": { - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" + "@babel/runtime": "^7.3.1", + "csstype": "^3.0.2", + "is-in-browser": "^1.1.3", + "tiny-warning": "^1.0.2" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/jss" } }, - "node_modules/jest-matcher-utils": { - "version": "29.7.0", - "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "node_modules/jss-plugin-camel-case": { + "version": "10.10.0", + "integrity": "sha512-z+HETfj5IYgFxh1wJnUAU8jByI48ED+v0fuTuhKrPR+pRBYS2EDwbusU8aFOpCdYhtRc9zhN+PJ7iNE8pAWyPw==", + "dev": true, "license": "MIT", "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "@babel/runtime": "^7.3.1", + "hyphenate-style-name": "^1.0.3", + "jss": "10.10.0" } }, - "node_modules/jest-message-util": { - "version": "29.7.0", - "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "node_modules/jss-plugin-default-unit": { + "version": "10.10.0", + "integrity": "sha512-SvpajxIECi4JDUbGLefvNckmI+c2VWmP43qnEy/0eiwzRUsafg5DVSIWSzZe4d2vFX1u9nRDP46WCFV/PXVBGQ==", + "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "@babel/runtime": "^7.3.1", + "jss": "10.10.0" } }, - "node_modules/jest-mock": { - "version": "29.7.0", - "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "node_modules/jss-plugin-global": { + "version": "10.10.0", + "integrity": "sha512-icXEYbMufiNuWfuazLeN+BNJO16Ge88OcXU5ZDC2vLqElmMybA31Wi7lZ3lf+vgufRocvPj8443irhYRgWxP+A==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "@babel/runtime": "^7.3.1", + "jss": "10.10.0" } }, - "node_modules/jest-mock-extended": { - "version": "3.0.5", - "integrity": "sha512-/eHdaNPUAXe7f65gHH5urc8SbRVWjYxBqmCgax2uqOBJy8UUcCBMN1upj1eZ8y/i+IqpyEm4Kq0VKss/GCCTdw==", + "node_modules/jss-plugin-nested": { + "version": "10.10.0", + "integrity": "sha512-9R4JHxxGgiZhurDo3q7LdIiDEgtA1bTGzAbhSPyIOWb7ZubrjQe8acwhEQ6OEKydzpl8XHMtTnEwHXCARLYqYA==", "dev": true, "license": "MIT", "dependencies": { - "ts-essentials": "^7.0.3" - }, - "peerDependencies": { - "jest": "^24.0.0 || ^25.0.0 || ^26.0.0 || ^27.0.0 || ^28.0.0 || ^29.0.0", - "typescript": "^3.0.0 || ^4.0.0 || ^5.0.0" + "@babel/runtime": "^7.3.1", + "jss": "10.10.0", + "tiny-warning": "^1.0.2" } }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "node_modules/jss-plugin-props-sort": { + "version": "10.10.0", + "integrity": "sha512-5VNJvQJbnq/vRfje6uZLe/FyaOpzP/IH1LP+0fr88QamVrGJa0hpRRyAa0ea4U/3LcorJfBFVyC4yN2QC73lJg==", "dev": true, "license": "MIT", - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } + "dependencies": { + "@babel/runtime": "^7.3.1", + "jss": "10.10.0" } }, - "node_modules/jest-regex-util": { - "version": "29.6.3", - "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "node_modules/jss-plugin-rule-value-function": { + "version": "10.10.0", + "integrity": "sha512-uEFJFgaCtkXeIPgki8ICw3Y7VMkL9GEan6SqmT9tqpwM+/t+hxfMUdU4wQ0MtOiMNWhwnckBV0IebrKcZM9C0g==", "dev": true, "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "dependencies": { + "@babel/runtime": "^7.3.1", + "jss": "10.10.0", + "tiny-warning": "^1.0.2" } }, - "node_modules/jest-resolve": { - "version": "29.7.0", - "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "node_modules/jss-plugin-vendor-prefixer": { + "version": "10.10.0", + "integrity": "sha512-UY/41WumgjW8r1qMCO8l1ARg7NHnfRVWRhZ2E2m0DMYsr2DD91qIXLyNhiX83hHswR7Wm4D+oDYNC1zWCJWtqg==", "dev": true, "license": "MIT", "dependencies": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "resolve": "^1.20.0", - "resolve.exports": "^2.0.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "@babel/runtime": "^7.3.1", + "css-vendor": "^2.0.8", + "jss": "10.10.0" } }, - "node_modules/jest-resolve-dependencies": { - "version": "29.7.0", - "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", "dev": true, "license": "MIT", "dependencies": { - "jest-regex-util": "^29.6.3", - "jest-snapshot": "^29.7.0" + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=4.0" } }, - "node_modules/jest-runner": { - "version": "29.7.0", - "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", - "dev": true, + "node_modules/keyv": { + "version": "4.5.4", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "license": "MIT", "dependencies": { - "@jest/console": "^29.7.0", - "@jest/environment": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-leak-detector": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-resolve": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-util": "^29.7.0", - "jest-watcher": "^29.7.0", - "jest-worker": "^29.7.0", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "json-buffer": "3.0.1" } }, - "node_modules/jest-runner/node_modules/source-map-support": { - "version": "0.5.13", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "node_modules/kind-of": { + "version": "6.0.3", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/knuth-shuffle-seeded": { + "version": "1.0.6", + "integrity": "sha512-9pFH0SplrfyKyojCLxZfMcvkhf5hH0d+UwR9nTVJ/DDQJGuzcXjTwB7TP7sDfehSudlGGaOLblmEWqv04ERVWg==", + "license": "Apache-2.0", "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "seed-random": "~2.2.0" } }, - "node_modules/jest-runtime": { - "version": "29.7.0", - "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "node_modules/language-subtag-registry": { + "version": "0.3.23", + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/language-tags": { + "version": "1.0.9", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/globals": "^29.7.0", - "@jest/source-map": "^29.6.3", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" + "language-subtag-registry": "^0.3.20" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=0.10" } }, - "node_modules/jest-runtime/node_modules/glob": { - "version": "7.2.3", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "license": "ISC", + "node_modules/levn": { + "version": "0.4.1", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "license": "MIT", "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" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" }, "engines": { - "node": "*" + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/antonk52" } }, - "node_modules/jest-snapshot": { - "version": "29.7.0", - "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "node_modules/lines-and-columns": { + "version": "1.2.4", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, + "node_modules/lint-staged": { + "version": "15.5.2", + "integrity": "sha512-YUSOLq9VeRNAo/CTaVmhGDKG+LBtA8KF1X4K5+ykMSwWST1vDxJRB2kv2COgLb1fvpCo+A/y9A0G0znNVmdx4w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-jsx": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "natural-compare": "^1.4.0", - "pretty-format": "^29.7.0", - "semver": "^7.5.3" + "chalk": "^5.4.1", + "commander": "^13.1.0", + "debug": "^4.4.0", + "execa": "^8.0.1", + "lilconfig": "^3.1.3", + "listr2": "^8.2.5", + "micromatch": "^4.0.8", + "pidtree": "^0.6.0", + "string-argv": "^0.3.2", + "yaml": "^2.7.0" + }, + "bin": { + "lint-staged": "bin/lint-staged.js" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=18.12.0" + }, + "funding": { + "url": "https://opencollective.com/lint-staged" } }, - "node_modules/jest-util": { - "version": "29.7.0", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "node_modules/lint-staged/node_modules/chalk": { + "version": "5.6.2", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "dev": true, "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-util/node_modules/ci-info": { - "version": "3.9.0", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], + "node_modules/lint-staged/node_modules/commander": { + "version": "13.1.0", + "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==", + "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=18" } }, - "node_modules/jest-validate": { - "version": "29.7.0", - "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "node_modules/lint-staged/node_modules/execa": { + "version": "8.0.1", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "leven": "^3.1.0", - "pretty-format": "^29.7.0" + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "node_modules/lint-staged/node_modules/get-stream": { + "version": "8.0.1", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", "dev": true, "license": "MIT", "engines": { - "node": ">=10" + "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-watcher": { - "version": "29.7.0", - "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "node_modules/lint-staged/node_modules/human-signals": { + "version": "5.0.0", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", "dev": true, - "license": "MIT", - "dependencies": { - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "jest-util": "^29.7.0", - "string-length": "^4.0.1" - }, + "license": "Apache-2.0", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=16.17.0" } }, - "node_modules/jest-worker": { - "version": "29.7.0", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "node_modules/lint-staged/node_modules/is-stream": { + "version": "3.0.0", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, "license": "MIT", - "dependencies": { - "@types/node": "*", - "jest-util": "^29.7.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jmespath": { - "version": "0.16.0", - "integrity": "sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==", + "node_modules/lint-staged/node_modules/mimic-fn": { + "version": "4.0.0", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "engines": { - "node": ">= 0.6.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/js-base64": { - "version": "3.7.8", - "integrity": "sha512-hNngCeKxIUQiEUN3GPJOkz4wF/YvdUdbNL9hsBcMQTkKzboD7T/q3OYOuuPZLUE6dBxSGpwhk5mwuDud7JVAow==", + "node_modules/lint-staged/node_modules/npm-run-path": { + "version": "5.3.0", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "4.1.1", - "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "license": "MIT", "dependencies": { - "argparse": "^2.0.1" + "path-key": "^4.0.0" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jsdom": { - "version": "20.0.3", - "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==", + "node_modules/lint-staged/node_modules/onetime": { + "version": "6.0.0", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, "license": "MIT", "dependencies": { - "abab": "^2.0.6", - "acorn": "^8.8.1", - "acorn-globals": "^7.0.0", - "cssom": "^0.5.0", - "cssstyle": "^2.3.0", - "data-urls": "^3.0.2", - "decimal.js": "^10.4.2", - "domexception": "^4.0.0", - "escodegen": "^2.0.0", - "form-data": "^4.0.0", - "html-encoding-sniffer": "^3.0.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.1", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.2", - "parse5": "^7.1.1", - "saxes": "^6.0.0", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.1.2", - "w3c-xmlserializer": "^4.0.0", - "webidl-conversions": "^7.0.0", - "whatwg-encoding": "^2.0.0", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0", - "ws": "^8.11.0", - "xml-name-validator": "^4.0.0" + "mimic-fn": "^4.0.0" }, "engines": { - "node": ">=14" - }, - "peerDependencies": { - "canvas": "^2.5.0" + "node": ">=12" }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jsdom/node_modules/tr46": { - "version": "3.0.0", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "node_modules/lint-staged/node_modules/path-key": { + "version": "4.0.0", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", "dev": true, "license": "MIT", - "dependencies": { - "punycode": "^2.1.1" - }, "engines": { "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jsdom/node_modules/webidl-conversions": { - "version": "7.0.0", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "node_modules/lint-staged/node_modules/string-argv": { + "version": "0.3.2", + "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", + "engines": { + "node": ">=0.6.19" + } + }, + "node_modules/lint-staged/node_modules/strip-final-newline": { + "version": "3.0.0", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "license": "MIT", "engines": { "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jsdom/node_modules/whatwg-url": { - "version": "11.0.0", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "node_modules/listr2": { + "version": "8.3.3", + "integrity": "sha512-LWzX2KsqcB1wqQ4AHgYb4RsDXauQiqhjLk+6hjbaeHG4zpjjVAB6wC/gz6X0l+Du1cN3pUB5ZlrvTbhGSNnUQQ==", "dev": true, "license": "MIT", "dependencies": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" + "cli-truncate": "^4.0.0", + "colorette": "^2.0.20", + "eventemitter3": "^5.0.1", + "log-update": "^6.1.0", + "rfdc": "^1.4.1", + "wrap-ansi": "^9.0.0" }, "engines": { - "node": ">=12" + "node": ">=18.0.0" } }, - "node_modules/jsep": { - "version": "1.4.0", - "integrity": "sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==", + "node_modules/listr2/node_modules/ansi-regex": { + "version": "6.2.2", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, "license": "MIT", "engines": { - "node": ">= 10.16.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/jsesc": { - "version": "3.1.0", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "node_modules/listr2/node_modules/ansi-styles": { + "version": "6.2.3", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "dev": true, "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, "engines": { - "node": ">=6" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/json-buffer": { - "version": "3.0.1", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "license": "MIT" - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "license": "MIT" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "license": "MIT" - }, - "node_modules/json-source-map": { - "version": "0.6.1", - "integrity": "sha512-1QoztHPsMQqhDq0hlXY5ZqcEdUzxQEIxgFkKl4WUp2pgShObl+9ovi4kRh2TfvAfxAoHOJ9vIMEqk3k4iex7tg==", + "node_modules/listr2/node_modules/emoji-regex": { + "version": "10.6.0", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", "dev": true, "license": "MIT" }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "license": "MIT" - }, - "node_modules/json5": { - "version": "2.2.3", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "node_modules/listr2/node_modules/string-width": { + "version": "7.2.0", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, "license": "MIT", - "bin": { - "json5": "lib/cli.js" + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=6" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jsoneditor": { - "version": "9.10.5", - "integrity": "sha512-fVZ0NMt+zm4rqTKBv2x7zPdLeaRyKo1EjJkaR1QjK4gEM1rMwICILYSW1OPxSc1qqyAoDaA/eeNrluKoxOocCA==", + "node_modules/listr2/node_modules/strip-ansi": { + "version": "7.1.2", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", "dev": true, - "license": "Apache-2.0", - "dependencies": { - "ace-builds": "^1.31.1", - "ajv": "^6.12.6", - "javascript-natural-sort": "^0.7.1", - "jmespath": "^0.16.0", - "json-source-map": "^0.6.1", - "jsonrepair": "3.1.0", - "mobius1-selectr": "^2.4.13", - "picomodal": "^3.0.0", - "vanilla-picker": "^2.12.2" - } - }, - "node_modules/jsonpath-plus": { - "version": "10.3.0", - "integrity": "sha512-8TNmfeTCk2Le33A3vRRwtuworG/L5RrgMvdjhKZxvyShO+mBu2fP50OWUjRLNtvw344DdDarFh9buFAZs5ujeA==", "license": "MIT", "dependencies": { - "@jsep-plugin/assignment": "^1.3.0", - "@jsep-plugin/regex": "^1.0.4", - "jsep": "^1.4.0" - }, - "bin": { - "jsonpath": "bin/jsonpath-cli.js", - "jsonpath-plus": "bin/jsonpath-cli.js" + "ansi-regex": "^6.0.1" }, "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/jsonrepair": { - "version": "3.1.0", - "integrity": "sha512-idqReg23J0PVRAADmZMc5xQM3xeOX5bTB6OTyMnzq33IXJXmn9iJuWIEvGmrN80rQf4d7uLTMEDwpzujNcI0Rg==", - "dev": true, - "license": "ISC", - "bin": { - "jsonrepair": "bin/cli.js" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/jss": { - "version": "10.10.0", - "integrity": "sha512-cqsOTS7jqPsPMjtKYDUpdFC0AbhYFLTcuGRqymgmdJIeQ8cH7+AgX7YSgQy79wXloZq2VvATYxUOUQEvS1V/Zw==", + "node_modules/listr2/node_modules/wrap-ansi": { + "version": "9.0.2", + "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", "dev": true, "license": "MIT", "dependencies": { - "@babel/runtime": "^7.3.1", - "csstype": "^3.0.2", - "is-in-browser": "^1.1.3", - "tiny-warning": "^1.0.2" + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/jss" + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/jss-plugin-camel-case": { - "version": "10.10.0", - "integrity": "sha512-z+HETfj5IYgFxh1wJnUAU8jByI48ED+v0fuTuhKrPR+pRBYS2EDwbusU8aFOpCdYhtRc9zhN+PJ7iNE8pAWyPw==", + "node_modules/loader-runner": { + "version": "4.3.1", + "integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==", "dev": true, "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.3.1", - "hyphenate-style-name": "^1.0.3", - "jss": "10.10.0" + "engines": { + "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "node_modules/jss-plugin-default-unit": { - "version": "10.10.0", - "integrity": "sha512-SvpajxIECi4JDUbGLefvNckmI+c2VWmP43qnEy/0eiwzRUsafg5DVSIWSzZe4d2vFX1u9nRDP46WCFV/PXVBGQ==", - "dev": true, + "node_modules/locate-path": { + "version": "6.0.0", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.3.1", - "jss": "10.10.0" + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jss-plugin-global": { - "version": "10.10.0", - "integrity": "sha512-icXEYbMufiNuWfuazLeN+BNJO16Ge88OcXU5ZDC2vLqElmMybA31Wi7lZ3lf+vgufRocvPj8443irhYRgWxP+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.3.1", - "jss": "10.10.0" - } + "node_modules/lodash": { + "version": "4.17.23", + "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", + "license": "MIT" }, - "node_modules/jss-plugin-nested": { - "version": "10.10.0", - "integrity": "sha512-9R4JHxxGgiZhurDo3q7LdIiDEgtA1bTGzAbhSPyIOWb7ZubrjQe8acwhEQ6OEKydzpl8XHMtTnEwHXCARLYqYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.3.1", - "jss": "10.10.0", - "tiny-warning": "^1.0.2" - } + "node_modules/lodash-es": { + "version": "4.17.23", + "integrity": "sha512-kVI48u3PZr38HdYz98UmfPnXl2DXrpdctLrFLCd3kOx1xUkOmpFPx7gCWWM5MPkL/fD8zb+Ph0QzjGFs4+hHWg==", + "license": "MIT" }, - "node_modules/jss-plugin-props-sort": { - "version": "10.10.0", - "integrity": "sha512-5VNJvQJbnq/vRfje6uZLe/FyaOpzP/IH1LP+0fr88QamVrGJa0hpRRyAa0ea4U/3LcorJfBFVyC4yN2QC73lJg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.3.1", - "jss": "10.10.0" - } + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "license": "MIT" }, - "node_modules/jss-plugin-rule-value-function": { - "version": "10.10.0", - "integrity": "sha512-uEFJFgaCtkXeIPgki8ICw3Y7VMkL9GEan6SqmT9tqpwM+/t+hxfMUdU4wQ0MtOiMNWhwnckBV0IebrKcZM9C0g==", + "node_modules/lodash.debounce": { + "version": "4.0.8", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.3.1", - "jss": "10.10.0", - "tiny-warning": "^1.0.2" - } + "license": "MIT" }, - "node_modules/jss-plugin-vendor-prefixer": { - "version": "10.10.0", - "integrity": "sha512-UY/41WumgjW8r1qMCO8l1ARg7NHnfRVWRhZ2E2m0DMYsr2DD91qIXLyNhiX83hHswR7Wm4D+oDYNC1zWCJWtqg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.3.1", - "css-vendor": "^2.0.8", - "jss": "10.10.0" - } + "node_modules/lodash.flattendeep": { + "version": "4.4.0", + "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", + "license": "MIT" }, - "node_modules/jsx-ast-utils": { - "version": "3.3.5", - "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "node_modules/lodash.merge": { + "version": "4.6.2", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "license": "MIT" + }, + "node_modules/lodash.mergewith": { + "version": "4.6.2", + "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", + "license": "MIT" + }, + "node_modules/log-update": { + "version": "6.1.0", + "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", "dev": true, "license": "MIT", "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "object.assign": "^4.1.4", - "object.values": "^1.1.6" + "ansi-escapes": "^7.0.0", + "cli-cursor": "^5.0.0", + "slice-ansi": "^7.1.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" }, "engines": { - "node": ">=4.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/keyv": { - "version": "4.5.4", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "node_modules/log-update/node_modules/ansi-escapes": { + "version": "7.2.0", + "integrity": "sha512-g6LhBsl+GBPRWGWsBtutpzBYuIIdBkLEvad5C/va/74Db018+5TZiyA26cZJAr3Rft5lprVqOIPxf5Vid6tqAw==", + "dev": true, "license": "MIT", "dependencies": { - "json-buffer": "3.0.1" + "environment": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/kind-of": { - "version": "6.0.3", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "node_modules/log-update/node_modules/ansi-regex": { + "version": "6.2.2", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/kleur": { - "version": "3.0.3", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "node_modules/log-update/node_modules/ansi-styles": { + "version": "6.2.3", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "dev": true, "license": "MIT", "engines": { - "node": ">=6" - } - }, - "node_modules/knuth-shuffle-seeded": { - "version": "1.0.6", - "integrity": "sha512-9pFH0SplrfyKyojCLxZfMcvkhf5hH0d+UwR9nTVJ/DDQJGuzcXjTwB7TP7sDfehSudlGGaOLblmEWqv04ERVWg==", - "license": "Apache-2.0", - "dependencies": { - "seed-random": "~2.2.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/language-subtag-registry": { - "version": "0.3.23", - "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", + "node_modules/log-update/node_modules/emoji-regex": { + "version": "10.6.0", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", "dev": true, - "license": "CC0-1.0" + "license": "MIT" }, - "node_modules/language-tags": { - "version": "1.0.9", - "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "node_modules/log-update/node_modules/is-fullwidth-code-point": { + "version": "5.1.0", + "integrity": "sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==", "dev": true, "license": "MIT", "dependencies": { - "language-subtag-registry": "^0.3.20" + "get-east-asian-width": "^1.3.1" }, "engines": { - "node": ">=0.10" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/leven": { - "version": "3.1.0", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "node_modules/log-update/node_modules/slice-ansi": { + "version": "7.1.2", + "integrity": "sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==", "dev": true, "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "license": "MIT", "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^5.0.0" }, "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lilconfig": { - "version": "3.1.3", - "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" + "node": ">=18" }, "funding": { - "url": "https://github.com/sponsors/antonk52" + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "license": "MIT" - }, - "node_modules/lint-staged": { - "version": "15.5.2", - "integrity": "sha512-YUSOLq9VeRNAo/CTaVmhGDKG+LBtA8KF1X4K5+ykMSwWST1vDxJRB2kv2COgLb1fvpCo+A/y9A0G0znNVmdx4w==", + "node_modules/log-update/node_modules/string-width": { + "version": "7.2.0", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "dev": true, "license": "MIT", "dependencies": { - "chalk": "^5.4.1", - "commander": "^13.1.0", - "debug": "^4.4.0", - "execa": "^8.0.1", - "lilconfig": "^3.1.3", - "listr2": "^8.2.5", - "micromatch": "^4.0.8", - "pidtree": "^0.6.0", - "string-argv": "^0.3.2", - "yaml": "^2.7.0" - }, - "bin": { - "lint-staged": "bin/lint-staged.js" + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=18.12.0" + "node": ">=18" }, "funding": { - "url": "https://opencollective.com/lint-staged" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lint-staged/node_modules/chalk": { - "version": "5.6.2", - "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "node_modules/log-update/node_modules/strip-ansi": { + "version": "7.1.2", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", "dev": true, "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" + "node": ">=12" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/lint-staged/node_modules/commander": { - "version": "13.1.0", - "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==", + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "9.0.2", + "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", "dev": true, "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, "engines": { "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/lint-staged/node_modules/execa": { - "version": "8.0.1", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", - "dev": true, + "node_modules/long": { + "version": "4.0.0", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==", + "license": "Apache-2.0" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "license": "MIT", "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^8.0.1", - "human-signals": "^5.0.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^4.1.0", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": ">=16.17" + "js-tokens": "^3.0.0 || ^4.0.0" }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "bin": { + "loose-envify": "cli.js" } }, - "node_modules/lint-staged/node_modules/get-stream": { - "version": "8.0.1", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", - "dev": true, + "node_modules/loupe": { + "version": "2.3.7", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", "license": "MIT", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "get-func-name": "^2.0.1" } }, - "node_modules/lint-staged/node_modules/human-signals": { - "version": "5.0.0", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=16.17.0" + "node_modules/lower-case": { + "version": "2.0.2", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" } }, - "node_modules/lint-staged/node_modules/is-stream": { - "version": "3.0.0", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node_modules/lru-cache": { + "version": "5.1.1", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" } }, - "node_modules/lint-staged/node_modules/mimic-fn": { - "version": "4.0.0", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true, + "node_modules/luxon": { + "version": "3.2.1", + "integrity": "sha512-QrwPArQCNLAKGO/C+ZIilgIuDnEnKx5QYODdDtbFaxzsbZcc/a7WFq7MhsVYgRlwawLtvOUESTlfJ+hc/USqPg==", "license": "MIT", "engines": { "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lint-staged/node_modules/npm-run-path": { - "version": "5.3.0", - "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", - "dev": true, + "node_modules/magic-string": { + "version": "0.30.21", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", "license": "MIT", "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "@jridgewell/sourcemap-codec": "^1.5.5" } }, - "node_modules/lint-staged/node_modules/onetime": { - "version": "6.0.0", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "node_modules/magicast": { + "version": "0.3.5", + "integrity": "sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==", "dev": true, "license": "MIT", "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "@babel/parser": "^7.25.4", + "@babel/types": "^7.25.4", + "source-map-js": "^1.2.0" } }, - "node_modules/lint-staged/node_modules/path-key": { + "node_modules/make-dir": { "version": "4.0.0", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lint-staged/node_modules/string-argv": { - "version": "0.3.2", - "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", - "dev": true, + "node_modules/make-error": { + "version": "1.3.6", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "license": "ISC" + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", "license": "MIT", "engines": { - "node": ">=0.6.19" + "node": ">= 0.4" } }, - "node_modules/lint-staged/node_modules/strip-final-newline": { - "version": "3.0.0", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "node_modules/md5.js": { + "version": "1.3.5", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "dev": true, "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, - "node_modules/listr2": { - "version": "8.3.3", - "integrity": "sha512-LWzX2KsqcB1wqQ4AHgYb4RsDXauQiqhjLk+6hjbaeHG4zpjjVAB6wC/gz6X0l+Du1cN3pUB5ZlrvTbhGSNnUQQ==", - "dev": true, + "node_modules/mdast-add-list-metadata": { + "version": "1.0.1", + "integrity": "sha512-fB/VP4MJ0LaRsog7hGPxgOrSL3gE/2uEdZyDuSEnKCv/8IkYHiDkIQSbChiJoHyxZZXZ9bzckyRk+vNxFzh8rA==", "license": "MIT", "dependencies": { - "cli-truncate": "^4.0.0", - "colorette": "^2.0.20", - "eventemitter3": "^5.0.1", - "log-update": "^6.1.0", - "rfdc": "^1.4.1", - "wrap-ansi": "^9.0.0" + "unist-util-visit-parents": "1.1.2" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "0.8.5", + "integrity": "sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-to-string": "^2.0.0", + "micromark": "~2.11.0", + "parse-entities": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "2.0.0", + "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", "engines": { - "node": ">=18.0.0" + "node": ">= 0.6" } }, - "node_modules/listr2/node_modules/ansi-regex": { - "version": "6.2.2", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "node_modules/meow": { + "version": "13.2.0", + "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", "dev": true, "license": "MIT", "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/listr2/node_modules/ansi-styles": { - "version": "6.2.3", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", - "dev": true, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", "license": "MIT", - "engines": { - "node": ">=12" - }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/listr2/node_modules/emoji-regex": { - "version": "10.6.0", - "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", + "node_modules/merge-stream": { + "version": "2.0.0", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true, "license": "MIT" }, - "node_modules/listr2/node_modules/string-width": { - "version": "7.2.0", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "node_modules/merge2": { + "version": "1.4.1", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/message-await": { + "version": "1.1.0", + "integrity": "sha512-kvvy5kkCgqF7tM3tWSOalpw46dtIzmHtAYvEqiuLK8Bv7tLK4V92tPW/T4Iu8jNr9JSexK3b2s9JekUziuZ9sg==", + "dev": true, + "license": "ISC", "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" + "cli-cursor": "^3.1.0", + "log-symbols": "^4.1.0" + } + }, + "node_modules/message-await/node_modules/cli-cursor": { + "version": "3.1.0", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" }, "engines": { - "node": ">=18" + "node": ">=8" + } + }, + "node_modules/message-await/node_modules/is-unicode-supported": { + "version": "0.1.0", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/listr2/node_modules/strip-ansi": { - "version": "7.1.2", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "node_modules/message-await/node_modules/log-symbols": { + "version": "4.1.0", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^6.0.1" + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" }, "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/listr2/node_modules/wrap-ansi": { - "version": "9.0.2", - "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", + "node_modules/message-await/node_modules/restore-cursor": { + "version": "3.1.0", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^6.2.1", - "string-width": "^7.0.0", - "strip-ansi": "^7.1.0" + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "node": ">=8" } }, - "node_modules/loader-runner": { - "version": "4.3.1", - "integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==", + "node_modules/message-await/node_modules/signal-exit": { + "version": "3.0.7", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true, + "license": "ISC" + }, + "node_modules/methods": { + "version": "1.1.2", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", "license": "MIT", "engines": { - "node": ">=6.11.5" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "node": ">= 0.6" } }, - "node_modules/locate-path": { - "version": "6.0.0", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "node_modules/micromark": { + "version": "2.11.4", + "integrity": "sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "debug": "^4.0.0", + "parse-entities": "^2.0.0" } }, - "node_modules/lodash": { - "version": "4.17.23", - "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", - "license": "MIT" - }, - "node_modules/lodash.debounce": { + "node_modules/micromatch": { "version": "4.0.8", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.flattendeep": { - "version": "4.4.0", - "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", - "license": "MIT" - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "license": "MIT" - }, - "node_modules/lodash.mergewith": { - "version": "4.6.2", - "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", - "license": "MIT" - }, - "node_modules/log-update": { - "version": "6.1.0", - "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", - "dev": true, + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "license": "MIT", "dependencies": { - "ansi-escapes": "^7.0.0", - "cli-cursor": "^5.0.0", - "slice-ansi": "^7.1.0", - "strip-ansi": "^7.1.0", - "wrap-ansi": "^9.0.0" + "braces": "^3.0.3", + "picomatch": "^2.3.1" }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8.6" } }, - "node_modules/log-update/node_modules/ansi-escapes": { - "version": "7.2.0", - "integrity": "sha512-g6LhBsl+GBPRWGWsBtutpzBYuIIdBkLEvad5C/va/74Db018+5TZiyA26cZJAr3Rft5lprVqOIPxf5Vid6tqAw==", + "node_modules/miller-rabin": { + "version": "4.0.1", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", "dev": true, "license": "MIT", "dependencies": { - "environment": "^1.0.0" - }, - "engines": { - "node": ">=18" + "bn.js": "^4.0.0", + "brorand": "^1.0.1" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "miller-rabin": "bin/miller-rabin" } }, - "node_modules/log-update/node_modules/ansi-regex": { - "version": "6.2.2", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.2", + "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==", "dev": true, + "license": "MIT" + }, + "node_modules/mime": { + "version": "1.6.0", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "license": "MIT", - "engines": { - "node": ">=12" + "bin": { + "mime": "cli.js" }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "engines": { + "node": ">=4" } }, - "node_modules/log-update/node_modules/ansi-styles": { - "version": "6.2.3", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", - "dev": true, + "node_modules/mime-db": { + "version": "1.52.0", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "license": "MIT", "engines": { - "node": ">=12" + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "engines": { + "node": ">= 0.6" } }, - "node_modules/log-update/node_modules/emoji-regex": { - "version": "10.6.0", - "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", + "node_modules/mimic-fn": { + "version": "2.1.0", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=6" + } }, - "node_modules/log-update/node_modules/is-fullwidth-code-point": { - "version": "5.1.0", - "integrity": "sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==", + "node_modules/mimic-function": { + "version": "5.0.1", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", "dev": true, "license": "MIT", - "dependencies": { - "get-east-asian-width": "^1.3.1" - }, "engines": { "node": ">=18" }, @@ -12779,134 +12000,220 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-update/node_modules/slice-ansi": { - "version": "7.1.2", - "integrity": "sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==", + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", "dev": true, - "license": "MIT", + "license": "ISC" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "dev": true, + "license": "MIT" + }, + "node_modules/minimatch": { + "version": "3.1.3", + "integrity": "sha512-M2GCs7Vk83NxkUyQV1bkABc4yxgz9kILhHImZiBPAZ9ybuvCb0/H7lEl5XvIg3g+9d4eNotkZA5IWwYl0tibaA==", + "license": "ISC", "dependencies": { - "ansi-styles": "^6.2.1", - "is-fullwidth-code-point": "^5.0.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" + "node": "*" } }, - "node_modules/log-update/node_modules/string-width": { - "version": "7.2.0", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", - "dev": true, + "node_modules/minimist": { + "version": "1.2.8", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "license": "MIT", - "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/log-update/node_modules/strip-ansi": { + "node_modules/minipass": { "version": "7.1.2", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mkdirp": { + "version": "3.0.1", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", "dev": true, "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" + "bin": { + "mkdirp": "dist/cjs/src/bin.js" }, "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/log-update/node_modules/wrap-ansi": { - "version": "9.0.2", - "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", + "node_modules/mobius1-selectr": { + "version": "2.4.13", + "integrity": "sha512-Mk9qDrvU44UUL0EBhbAA1phfQZ7aMZPjwtL7wkpiBzGh8dETGqfsh50mWoX9EkjDlkONlErWXArHCKfoxVg0Bw==", + "dev": true, + "license": "MIT" + }, + "node_modules/mobx": { + "version": "6.15.0", + "integrity": "sha512-UczzB+0nnwGotYSgllfARAqWCJ5e/skuV2K/l+Zyck/H6pJIhLXuBnz+6vn2i211o7DtbE78HQtsYEKICHGI+g==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mobx" + } + }, + "node_modules/mobx-react": { + "version": "7.6.0", + "integrity": "sha512-+HQUNuh7AoQ9ZnU6c4rvbiVVl+wEkb9WqYsVDzGLng+Dqj1XntHu79PvEWKtSMoMj67vFp/ZPXcElosuJO8ckA==", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^6.2.1", - "string-width": "^7.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" + "mobx-react-lite": "^3.4.0" }, "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/mobx" + }, + "peerDependencies": { + "mobx": "^6.1.0", + "react": "^16.8.0 || ^17 || ^18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } } }, - "node_modules/long": { - "version": "4.0.0", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==", - "license": "Apache-2.0" - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "node_modules/mobx-react-lite": { + "version": "3.4.3", + "integrity": "sha512-NkJREyFTSUXR772Qaai51BnE1voWx56LOL80xG7qkZr6vo8vEaLF3sz1JNUVh+rxmUzxYaqOhfuxTfqUh0FXUg==", + "dev": true, "license": "MIT", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mobx" }, - "bin": { - "loose-envify": "cli.js" + "peerDependencies": { + "mobx": "^6.1.0", + "react": "^16.8.0 || ^17 || ^18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } } }, - "node_modules/loupe": { - "version": "2.3.7", - "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "node_modules/mocha": { + "version": "10.8.2", + "integrity": "sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg==", "license": "MIT", "dependencies": { - "get-func-name": "^2.0.1" + "ansi-colors": "^4.1.3", + "browser-stdout": "^1.3.1", + "chokidar": "^3.5.3", + "debug": "^4.3.5", + "diff": "^5.2.0", + "escape-string-regexp": "^4.0.0", + "find-up": "^5.0.0", + "glob": "^8.1.0", + "he": "^1.2.0", + "js-yaml": "^4.1.0", + "log-symbols": "^4.1.0", + "minimatch": "^5.1.6", + "ms": "^2.1.3", + "serialize-javascript": "^6.0.2", + "strip-json-comments": "^3.1.1", + "supports-color": "^8.1.1", + "workerpool": "^6.5.1", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9", + "yargs-unparser": "^2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha.js" + }, + "engines": { + "node": ">= 14.0.0" } }, - "node_modules/lower-case": { + "node_modules/mocha/node_modules/brace-expansion": { "version": "2.0.2", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "license": "MIT", "dependencies": { - "tslib": "^2.0.3" + "balanced-match": "^1.0.0" } }, - "node_modules/lru-cache": { - "version": "5.1.1", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "node_modules/mocha/node_modules/cliui": { + "version": "7.0.4", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "license": "ISC", "dependencies": { - "yallist": "^3.0.2" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "node_modules/luxon": { - "version": "3.2.1", - "integrity": "sha512-QrwPArQCNLAKGO/C+ZIilgIuDnEnKx5QYODdDtbFaxzsbZcc/a7WFq7MhsVYgRlwawLtvOUESTlfJ+hc/USqPg==", - "license": "MIT", + "node_modules/mocha/node_modules/diff": { + "version": "5.2.2", + "integrity": "sha512-vtcDfH3TOjP8UekytvnHH1o1P4FcUdt4eQ1Y+Abap1tk/OB2MWQvcwS2ClCd1zuIhc3JKOx6p3kod8Vfys3E+A==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/mocha/node_modules/glob": { + "version": "8.1.0", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, "engines": { "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/magic-string": { - "version": "0.30.21", - "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", - "dev": true, + "node_modules/mocha/node_modules/is-unicode-supported": { + "version": "0.1.0", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.5" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/make-dir": { - "version": "4.0.0", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "node_modules/mocha/node_modules/log-symbols": { + "version": "4.1.0", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "license": "MIT", "dependencies": { - "semver": "^7.5.3" + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" }, "engines": { "node": ">=10" @@ -12915,529 +12222,531 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/make-error": { - "version": "1.3.6", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "license": "ISC" - }, - "node_modules/makeerror": { - "version": "1.0.12", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "license": "BSD-3-Clause", + "node_modules/mocha/node_modules/minimatch": { + "version": "5.1.7", + "integrity": "sha512-FjiwU9HaHW6YB3H4a1sFudnv93lvydNjz2lmyUXR6IwKhGI+bgL3SOZrBGn6kvvX2pJvhEkGSGjyTHN47O4rqA==", + "license": "ISC", "dependencies": { - "tmpl": "1.0.5" + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" } }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "node_modules/mocha/node_modules/wrap-ansi": { + "version": "7.0.0", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, "engines": { - "node": ">= 0.4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/md5.js": { - "version": "1.3.5", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, + "node_modules/mocha/node_modules/yargs": { + "version": "16.2.0", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "license": "MIT", "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" } }, - "node_modules/mdast-add-list-metadata": { - "version": "1.0.1", - "integrity": "sha512-fB/VP4MJ0LaRsog7hGPxgOrSL3gE/2uEdZyDuSEnKCv/8IkYHiDkIQSbChiJoHyxZZXZ9bzckyRk+vNxFzh8rA==", - "license": "MIT", - "dependencies": { - "unist-util-visit-parents": "1.1.2" + "node_modules/mocha/node_modules/yargs-parser": { + "version": "20.2.9", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "license": "ISC", + "engines": { + "node": ">=10" } }, - "node_modules/mdast-util-from-markdown": { - "version": "0.8.5", - "integrity": "sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==", + "node_modules/moment": { + "version": "2.30.1", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "dev": true, "license": "MIT", - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-string": "^2.0.0", - "micromark": "~2.11.0", - "parse-entities": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": "*" } }, - "node_modules/mdast-util-to-string": { - "version": "2.0.0", - "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "node_modules/mri": { + "version": "1.2.0", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=4" } }, - "node_modules/meow": { - "version": "13.2.0", - "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", - "dev": true, + "node_modules/ms": { + "version": "2.1.3", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/mz": { + "version": "2.7.0", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" } }, - "node_modules/merge-descriptors": { - "version": "1.0.3", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "node_modules/nanoid": { + "version": "3.3.11", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/merge-stream": { - "version": "2.0.0", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true, + "node_modules/natural-compare": { + "version": "1.4.0", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "license": "MIT" }, - "node_modules/merge2": { - "version": "1.4.1", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, + "node_modules/negotiator": { + "version": "0.6.3", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "license": "MIT", "engines": { - "node": ">= 8" + "node": ">= 0.6" } }, - "node_modules/message-await": { - "version": "1.1.0", - "integrity": "sha512-kvvy5kkCgqF7tM3tWSOalpw46dtIzmHtAYvEqiuLK8Bv7tLK4V92tPW/T4Iu8jNr9JSexK3b2s9JekUziuZ9sg==", + "node_modules/neo-async": { + "version": "2.6.2", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true, - "license": "ISC", - "dependencies": { - "cli-cursor": "^3.1.0", - "log-symbols": "^4.1.0" - } + "license": "MIT" }, - "node_modules/message-await/node_modules/cli-cursor": { - "version": "3.1.0", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, + "node_modules/no-case": { + "version": "3.0.4", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", "license": "MIT", "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/message-await/node_modules/is-unicode-supported": { - "version": "0.1.0", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "lower-case": "^2.0.2", + "tslib": "^2.0.3" } }, - "node_modules/message-await/node_modules/log-symbols": { - "version": "4.1.0", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "node_modules/node-fetch": { + "version": "2.7.0", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "dev": true, "license": "MIT", "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" + "whatwg-url": "^5.0.0" }, "engines": { - "node": ">=10" + "node": "4.x || >=6.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "node_modules/message-await/node_modules/restore-cursor": { - "version": "3.1.0", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, + "node_modules/node-preload": { + "version": "0.2.1", + "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", "license": "MIT", "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" + "process-on-spawn": "^1.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/message-await/node_modules/signal-exit": { - "version": "3.0.7", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "license": "ISC" + "node_modules/node-releases": { + "version": "2.0.27", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", + "license": "MIT" }, - "node_modules/methods": { - "version": "1.1.2", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "node_modules/node-stdlib-browser": { + "version": "1.3.1", + "integrity": "sha512-X75ZN8DCLftGM5iKwoYLA3rjnrAEs97MkzvSd4q2746Tgpg8b8XWiBGiBG4ZpgcAqBgtgPHTiAc8ZMCvZuikDw==", + "dev": true, "license": "MIT", + "dependencies": { + "assert": "^2.0.0", + "browser-resolve": "^2.0.0", + "browserify-zlib": "^0.2.0", + "buffer": "^5.7.1", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "create-require": "^1.1.1", + "crypto-browserify": "^3.12.1", + "domain-browser": "4.22.0", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "isomorphic-timers-promises": "^1.0.1", + "os-browserify": "^0.3.0", + "path-browserify": "^1.0.1", + "pkg-dir": "^5.0.0", + "process": "^0.11.10", + "punycode": "^1.4.1", + "querystring-es3": "^0.2.1", + "readable-stream": "^3.6.0", + "stream-browserify": "^3.0.0", + "stream-http": "^3.2.0", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.1", + "url": "^0.11.4", + "util": "^0.12.4", + "vm-browserify": "^1.0.1" + }, "engines": { - "node": ">= 0.6" + "node": ">=10" } }, - "node_modules/micromark": { - "version": "2.11.4", - "integrity": "sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==", + "node_modules/node-stdlib-browser/node_modules/buffer": { + "version": "5.7.1", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, "funding": [ { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" + "type": "github", + "url": "https://github.com/sponsors/feross" }, { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" } ], "license": "MIT", "dependencies": { - "debug": "^4.0.0", - "parse-entities": "^2.0.0" - } - }, - "node_modules/micromatch": { - "version": "4.0.8", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" } }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "node_modules/node-stdlib-browser/node_modules/pkg-dir": { + "version": "5.0.0", + "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", "dev": true, "license": "MIT", "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" + "find-up": "^5.0.0" }, - "bin": { - "miller-rabin": "bin/miller-rabin" + "engines": { + "node": ">=10" } }, - "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.12.2", - "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==", + "node_modules/node-stdlib-browser/node_modules/punycode": { + "version": "1.4.1", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", "dev": true, "license": "MIT" }, - "node_modules/mime": { - "version": "1.6.0", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "node_modules/node-stdlib-browser/node_modules/readable-stream": { + "version": "3.6.2", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, "license": "MIT", - "bin": { - "mime": "cli.js" + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": ">=4" + "node": ">= 6" } }, - "node_modules/mime-db": { - "version": "1.52.0", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "node_modules/nodemon": { + "version": "3.1.11", + "integrity": "sha512-is96t8F/1//UHAjNPHpbsNY46ELPpftGUoSVNXwUfMk/qdjSylYrWSu1XavVTBOn526kFiOR733ATgNBCQyH0g==", + "dev": true, "license": "MIT", "dependencies": { - "mime-db": "1.52.0" + "chokidar": "^3.5.2", + "debug": "^4", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" }, "engines": { - "node": ">= 0.6" + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" } }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "node_modules/nodemon/node_modules/has-flag": { + "version": "3.0.0", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, "license": "MIT", "engines": { - "node": ">=6" + "node": ">=4" } }, - "node_modules/mimic-function": { - "version": "5.0.1", - "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "node_modules/nodemon/node_modules/supports-color": { + "version": "5.5.0", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "license": "MIT", - "engines": { - "node": ">=18" + "dependencies": { + "has-flag": "^3.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=4" } }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true, - "license": "ISC" + "node_modules/normalize-package-data": { + "version": "2.5.0", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.2", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize.css": { + "version": "8.0.1", + "integrity": "sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg==", "dev": true, "license": "MIT" }, - "node_modules/minimatch": { - "version": "3.1.3", - "integrity": "sha512-M2GCs7Vk83NxkUyQV1bkABc4yxgz9kILhHImZiBPAZ9ybuvCb0/H7lEl5XvIg3g+9d4eNotkZA5IWwYl0tibaA==", + "node_modules/nwsapi": { + "version": "2.2.23", + "integrity": "sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ==", + "license": "MIT", + "optional": true, + "peer": true + }, + "node_modules/nyc": { + "version": "17.1.0", + "integrity": "sha512-U42vQ4czpKa0QdI1hu950XuNhYqgoM+ZF1HT+VuUHL9hPfDPVvNQyltmMqdE9bUHMVa+8yNbc3QKTj8zQhlVxQ==", "license": "ISC", "dependencies": { - "brace-expansion": "^1.1.7" + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "caching-transform": "^4.0.0", + "convert-source-map": "^1.7.0", + "decamelize": "^1.2.0", + "find-cache-dir": "^3.2.0", + "find-up": "^4.1.0", + "foreground-child": "^3.3.0", + "get-package-type": "^0.1.0", + "glob": "^7.1.6", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-hook": "^3.0.0", + "istanbul-lib-instrument": "^6.0.2", + "istanbul-lib-processinfo": "^2.0.2", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "make-dir": "^3.0.0", + "node-preload": "^0.2.1", + "p-map": "^3.0.0", + "process-on-spawn": "^1.0.0", + "resolve-from": "^5.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "spawn-wrap": "^2.0.0", + "test-exclude": "^6.0.0", + "yargs": "^15.0.2" + }, + "bin": { + "nyc": "bin/nyc.js" }, "engines": { - "node": "*" + "node": ">=18" } }, - "node_modules/minimist": { - "version": "1.2.8", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node_modules/nyc/node_modules/cliui": { + "version": "6.0.0", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" } }, - "node_modules/minipass": { - "version": "7.1.2", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", + "node_modules/nyc/node_modules/convert-source-map": { + "version": "1.9.0", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "license": "MIT" + }, + "node_modules/nyc/node_modules/find-up": { + "version": "4.1.0", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=8" } }, - "node_modules/mkdirp": { - "version": "3.0.1", - "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", - "dev": true, - "license": "MIT", - "bin": { - "mkdirp": "dist/cjs/src/bin.js" + "node_modules/nyc/node_modules/glob": { + "version": "7.2.3", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "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" }, "engines": { - "node": ">=10" + "node": "*" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/mobius1-selectr": { - "version": "2.4.13", - "integrity": "sha512-Mk9qDrvU44UUL0EBhbAA1phfQZ7aMZPjwtL7wkpiBzGh8dETGqfsh50mWoX9EkjDlkONlErWXArHCKfoxVg0Bw==", - "dev": true, - "license": "MIT" - }, - "node_modules/mobx": { - "version": "6.15.0", - "integrity": "sha512-UczzB+0nnwGotYSgllfARAqWCJ5e/skuV2K/l+Zyck/H6pJIhLXuBnz+6vn2i211o7DtbE78HQtsYEKICHGI+g==", - "dev": true, + "node_modules/nyc/node_modules/locate-path": { + "version": "5.0.0", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mobx" + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/mobx-react": { - "version": "7.6.0", - "integrity": "sha512-+HQUNuh7AoQ9ZnU6c4rvbiVVl+wEkb9WqYsVDzGLng+Dqj1XntHu79PvEWKtSMoMj67vFp/ZPXcElosuJO8ckA==", - "dev": true, + "node_modules/nyc/node_modules/make-dir": { + "version": "3.1.0", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "license": "MIT", "dependencies": { - "mobx-react-lite": "^3.4.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mobx" + "semver": "^6.0.0" }, - "peerDependencies": { - "mobx": "^6.1.0", - "react": "^16.8.0 || ^17 || ^18" + "engines": { + "node": ">=8" }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mobx-react-lite": { - "version": "3.4.3", - "integrity": "sha512-NkJREyFTSUXR772Qaai51BnE1voWx56LOL80xG7qkZr6vo8vEaLF3sz1JNUVh+rxmUzxYaqOhfuxTfqUh0FXUg==", - "dev": true, + "node_modules/nyc/node_modules/p-limit": { + "version": "2.3.0", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mobx" - }, - "peerDependencies": { - "mobx": "^6.1.0", - "react": "^16.8.0 || ^17 || ^18" + "dependencies": { + "p-try": "^2.0.0" }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - } + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mocha": { - "version": "10.8.2", - "integrity": "sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg==", + "node_modules/nyc/node_modules/p-locate": { + "version": "4.1.0", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "license": "MIT", "dependencies": { - "ansi-colors": "^4.1.3", - "browser-stdout": "^1.3.1", - "chokidar": "^3.5.3", - "debug": "^4.3.5", - "diff": "^5.2.0", - "escape-string-regexp": "^4.0.0", - "find-up": "^5.0.0", - "glob": "^8.1.0", - "he": "^1.2.0", - "js-yaml": "^4.1.0", - "log-symbols": "^4.1.0", - "minimatch": "^5.1.6", - "ms": "^2.1.3", - "serialize-javascript": "^6.0.2", - "strip-json-comments": "^3.1.1", - "supports-color": "^8.1.1", - "workerpool": "^6.5.1", - "yargs": "^16.2.0", - "yargs-parser": "^20.2.9", - "yargs-unparser": "^2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha.js" + "p-limit": "^2.2.0" }, "engines": { - "node": ">= 14.0.0" + "node": ">=8" } }, - "node_modules/mocha/node_modules/brace-expansion": { - "version": "2.0.2", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "node_modules/nyc/node_modules/resolve-from": { + "version": "5.0.0", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/mocha/node_modules/cliui": { - "version": "7.0.4", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/mocha/node_modules/diff": { - "version": "5.2.2", - "integrity": "sha512-vtcDfH3TOjP8UekytvnHH1o1P4FcUdt4eQ1Y+Abap1tk/OB2MWQvcwS2ClCd1zuIhc3JKOx6p3kod8Vfys3E+A==", - "license": "BSD-3-Clause", "engines": { - "node": ">=0.3.1" + "node": ">=8" } }, - "node_modules/mocha/node_modules/glob": { - "version": "8.1.0", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "node_modules/nyc/node_modules/rimraf": { + "version": "3.0.2", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "license": "ISC", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "glob": "^7.1.3" }, - "engines": { - "node": ">=12" + "bin": { + "rimraf": "bin.js" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/mocha/node_modules/is-unicode-supported": { - "version": "0.1.0", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/log-symbols": { - "version": "4.1.0", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "license": "MIT", - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/minimatch": { - "version": "5.1.7", - "integrity": "sha512-FjiwU9HaHW6YB3H4a1sFudnv93lvydNjz2lmyUXR6IwKhGI+bgL3SOZrBGn6kvvX2pJvhEkGSGjyTHN47O4rqA==", + "node_modules/nyc/node_modules/semver": { + "version": "6.3.1", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/mocha/node_modules/wrap-ansi": { - "version": "7.0.0", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "node_modules/nyc/node_modules/signal-exit": { + "version": "3.0.7", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, + "node_modules/nyc/node_modules/wrap-ansi": { + "version": "6.2.0", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", @@ -13445,456 +12754,417 @@ "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "node": ">=8" } }, - "node_modules/mocha/node_modules/yargs": { - "version": "16.2.0", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "node_modules/nyc/node_modules/y18n": { + "version": "4.0.3", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "license": "ISC" + }, + "node_modules/nyc/node_modules/yargs": { + "version": "15.4.1", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "license": "MIT", "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/mocha/node_modules/yargs-parser": { - "version": "20.2.9", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "node_modules/nyc/node_modules/yargs-parser": { + "version": "18.1.3", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "license": "ISC", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, "engines": { - "node": ">=10" + "node": ">=6" } }, - "node_modules/moment": { - "version": "2.30.1", - "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", - "dev": true, + "node_modules/object-assign": { + "version": "4.1.1", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "license": "MIT", "engines": { - "node": "*" + "node": ">=0.10.0" } }, - "node_modules/mri": { - "version": "1.2.0", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", - "dev": true, + "node_modules/object-inspect": { + "version": "1.13.4", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", "license": "MIT", "engines": { - "node": ">=4" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/mz": { - "version": "2.7.0", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "license": "MIT", - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/nanoid": { - "version": "3.3.11", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "node_modules/object-is": { + "version": "1.1.6", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" }, "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/natural-compare": { - "version": "1.4.0", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "license": "MIT" - }, - "node_modules/negotiator": { - "version": "0.6.3", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "node_modules/object-keys": { + "version": "1.1.1", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">= 0.4" } }, - "node_modules/neo-async": { - "version": "2.6.2", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true, - "license": "MIT" - }, - "node_modules/no-case": { - "version": "3.0.4", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "node_modules/object.assign": { + "version": "4.1.7", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", "license": "MIT", "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/node-fetch": { - "version": "2.7.0", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "node_modules/object.entries": { + "version": "1.1.9", + "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", "dev": true, "license": "MIT", "dependencies": { - "whatwg-url": "^5.0.0" + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.1.1" }, "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "node": ">= 0.4" } }, - "node_modules/node-int64": { - "version": "0.4.0", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true, - "license": "MIT" - }, - "node_modules/node-preload": { - "version": "0.2.1", - "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", + "node_modules/object.fromentries": { + "version": "2.0.8", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "license": "MIT", "dependencies": { - "process-on-spawn": "^1.0.0" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/node-releases": { - "version": "2.0.27", - "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", - "license": "MIT" - }, - "node_modules/node-stdlib-browser": { - "version": "1.3.1", - "integrity": "sha512-X75ZN8DCLftGM5iKwoYLA3rjnrAEs97MkzvSd4q2746Tgpg8b8XWiBGiBG4ZpgcAqBgtgPHTiAc8ZMCvZuikDw==", - "dev": true, + "node_modules/object.groupby": { + "version": "1.0.3", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", "license": "MIT", "dependencies": { - "assert": "^2.0.0", - "browser-resolve": "^2.0.0", - "browserify-zlib": "^0.2.0", - "buffer": "^5.7.1", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "create-require": "^1.1.1", - "crypto-browserify": "^3.12.1", - "domain-browser": "4.22.0", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "isomorphic-timers-promises": "^1.0.1", - "os-browserify": "^0.3.0", - "path-browserify": "^1.0.1", - "pkg-dir": "^5.0.0", - "process": "^0.11.10", - "punycode": "^1.4.1", - "querystring-es3": "^0.2.1", - "readable-stream": "^3.6.0", - "stream-browserify": "^3.0.0", - "stream-http": "^3.2.0", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.1", - "url": "^0.11.4", - "util": "^0.12.4", - "vm-browserify": "^1.0.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" }, "engines": { - "node": ">=10" + "node": ">= 0.4" } }, - "node_modules/node-stdlib-browser/node_modules/buffer": { - "version": "5.7.1", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], + "node_modules/object.values": { + "version": "1.2.1", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", "license": "MIT", "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/node-stdlib-browser/node_modules/pkg-dir": { - "version": "5.0.0", - "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", - "dev": true, + "node_modules/on-finished": { + "version": "2.4.1", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "license": "MIT", "dependencies": { - "find-up": "^5.0.0" + "ee-first": "1.1.1" }, "engines": { - "node": ">=10" + "node": ">= 0.8" } }, - "node_modules/node-stdlib-browser/node_modules/punycode": { - "version": "1.4.1", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "dev": true, - "license": "MIT" + "node_modules/once": { + "version": "1.4.0", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } }, - "node_modules/node-stdlib-browser/node_modules/readable-stream": { - "version": "3.6.2", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "node_modules/onetime": { + "version": "5.1.2", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "mimic-fn": "^2.1.0" }, "engines": { - "node": ">= 6" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/nodemon": { - "version": "3.1.11", - "integrity": "sha512-is96t8F/1//UHAjNPHpbsNY46ELPpftGUoSVNXwUfMk/qdjSylYrWSu1XavVTBOn526kFiOR733ATgNBCQyH0g==", + "node_modules/openapi-typescript": { + "version": "6.7.6", + "integrity": "sha512-c/hfooPx+RBIOPM09GSxABOZhYPblDoyaGhqBkD/59vtpN21jEuWKDlM0KYTvqJVlSYjKs0tBcIdeXKChlSPtw==", "dev": true, "license": "MIT", "dependencies": { - "chokidar": "^3.5.2", - "debug": "^4", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.1.2", - "pstree.remy": "^1.1.8", - "semver": "^7.5.3", - "simple-update-notifier": "^2.0.0", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.5" + "ansi-colors": "^4.1.3", + "fast-glob": "^3.3.2", + "js-yaml": "^4.1.0", + "supports-color": "^9.4.0", + "undici": "^5.28.4", + "yargs-parser": "^21.1.1" }, "bin": { - "nodemon": "bin/nodemon.js" - }, + "openapi-typescript": "bin/cli.js" + } + }, + "node_modules/openapi-typescript/node_modules/supports-color": { + "version": "9.4.0", + "integrity": "sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nodemon" + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/nodemon/node_modules/has-flag": { - "version": "3.0.0", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "node_modules/opener": { + "version": "1.5.2", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", "dev": true, + "license": "(WTFPL OR MIT)", + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "license": "MIT", + "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" + }, "engines": { - "node": ">=4" + "node": ">= 0.8.0" } }, - "node_modules/nodemon/node_modules/supports-color": { - "version": "5.5.0", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/os-browserify": { + "version": "0.3.0", + "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", "dev": true, + "license": "MIT" + }, + "node_modules/own-keys": { + "version": "1.0.1", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" }, "engines": { - "node": ">=4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "license": "BSD-2-Clause", + "node_modules/p-limit": { + "version": "3.1.0", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "license": "MIT", "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.2", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "license": "ISC", - "bin": { - "semver": "bin/semver" + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/normalize-path": { - "version": "3.0.0", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "node_modules/p-locate": { + "version": "5.0.0", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/normalize.css": { - "version": "8.0.1", - "integrity": "sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg==", - "dev": true, - "license": "MIT" - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, + "node_modules/p-map": { + "version": "3.0.0", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", "license": "MIT", "dependencies": { - "path-key": "^3.0.0" + "aggregate-error": "^3.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/nwsapi": { - "version": "2.2.23", - "integrity": "sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ==", - "dev": true, - "license": "MIT" + "node_modules/p-try": { + "version": "2.2.0", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } }, - "node_modules/nyc": { - "version": "17.1.0", - "integrity": "sha512-U42vQ4czpKa0QdI1hu950XuNhYqgoM+ZF1HT+VuUHL9hPfDPVvNQyltmMqdE9bUHMVa+8yNbc3QKTj8zQhlVxQ==", + "node_modules/package-hash": { + "version": "4.0.0", + "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", "license": "ISC", "dependencies": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^3.3.0", - "get-package-type": "^0.1.0", - "glob": "^7.1.6", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^6.0.2", - "istanbul-lib-processinfo": "^2.0.2", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "make-dir": "^3.0.0", - "node-preload": "^0.2.1", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "resolve-from": "^5.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "spawn-wrap": "^2.0.0", - "test-exclude": "^6.0.0", - "yargs": "^15.0.2" - }, - "bin": { - "nyc": "bin/nyc.js" + "graceful-fs": "^4.1.15", + "hasha": "^5.0.0", + "lodash.flattendeep": "^4.4.0", + "release-zalgo": "^1.0.0" }, "engines": { - "node": ">=18" + "node": ">=8" } }, - "node_modules/nyc/node_modules/cliui": { - "version": "6.0.0", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "license": "ISC", + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "license": "BlueOak-1.0.0" + }, + "node_modules/pad-right": { + "version": "0.2.2", + "integrity": "sha512-4cy8M95ioIGolCoMmm2cMntGR1lPLEbOMzOKu8bzjuJP6JpzEMQcDHmh7hHLYGgob+nKe1YHFMaG4V59HQa89g==", + "license": "MIT", "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" + "repeat-string": "^1.5.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/nyc/node_modules/convert-source-map": { - "version": "1.9.0", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "license": "MIT" + "node_modules/pako": { + "version": "1.0.11", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true, + "license": "(MIT AND Zlib)" }, - "node_modules/nyc/node_modules/find-up": { - "version": "4.1.0", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/parent-module": { + "version": "1.0.1", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "license": "MIT", "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "callsites": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/nyc/node_modules/glob": { - "version": "7.2.3", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "node_modules/parse-asn1": { + "version": "5.1.9", + "integrity": "sha512-fIYNuZ/HastSb80baGOuPRo1O9cf4baWw5WsAp7dBuUzeTD/BoaG8sVTdlPFksBE2lF21dN+A1AnrpIjSWqHHg==", + "dev": true, "license": "ISC", "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" + "asn1.js": "^4.10.1", + "browserify-aes": "^1.2.0", + "evp_bytestokey": "^1.0.3", + "pbkdf2": "^3.1.5", + "safe-buffer": "^5.2.1" }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">= 0.10" } }, - "node_modules/nyc/node_modules/locate-path": { - "version": "5.0.0", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/parse-entities": { + "version": "2.0.0", + "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", "license": "MIT", "dependencies": { - "p-locate": "^4.1.0" + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" }, - "engines": { - "node": ">=8" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/nyc/node_modules/make-dir": { - "version": "3.1.0", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "node_modules/parse-json": { + "version": "5.2.0", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "license": "MIT", "dependencies": { - "semver": "^6.0.0" + "@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" }, "engines": { "node": ">=8" @@ -13903,2224 +13173,2209 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/nyc/node_modules/p-limit": { - "version": "2.3.0", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/parse5": { + "version": "7.3.0", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", "license": "MIT", + "optional": true, + "peer": true, "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" + "entities": "^6.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "node_modules/nyc/node_modules/p-locate": { - "version": "4.1.0", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, + "node_modules/parse5/node_modules/entities": { + "version": "6.0.1", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "license": "BSD-2-Clause", + "optional": true, + "peer": true, "engines": { - "node": ">=8" + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/nyc/node_modules/resolve-from": { - "version": "5.0.0", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "node_modules/parseurl": { + "version": "1.3.3", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 0.8" } }, - "node_modules/nyc/node_modules/rimraf": { - "version": "3.0.2", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/nyc/node_modules/semver": { - "version": "6.3.1", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } + "node_modules/path-browserify": { + "version": "1.0.1", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true, + "license": "MIT" }, - "node_modules/nyc/node_modules/signal-exit": { - "version": "3.0.7", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "license": "ISC" + "node_modules/path-equal": { + "version": "1.2.5", + "integrity": "sha512-i73IctDr3F2W+bsOWDyyVm/lqsXO47aY9nsFZUjTT/aljSbkxHxxCoyZ9UUrM8jK0JVod+An+rl48RCsvWM+9g==", + "dev": true, + "license": "MIT" }, - "node_modules/nyc/node_modules/wrap-ansi": { - "version": "6.2.0", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "node_modules/path-exists": { + "version": "4.0.0", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, "engines": { "node": ">=8" } }, - "node_modules/nyc/node_modules/y18n": { - "version": "4.0.3", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "license": "ISC" + "node_modules/path-is-absolute": { + "version": "1.0.1", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/nyc/node_modules/yargs": { - "version": "15.4.1", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "node_modules/path-key": { + "version": "3.1.1", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "license": "MIT", - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, "engines": { "node": ">=8" } }, - "node_modules/nyc/node_modules/yargs-parser": { - "version": "18.1.3", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "license": "ISC", + "node_modules/path-parse": { + "version": "1.0.7", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "license": "BlueOak-1.0.0", "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": ">=6" + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/object-assign": { - "version": "4.1.1", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" }, - "node_modules/object-inspect": { - "version": "1.13.4", - "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "node_modules/path-to-regexp": { + "version": "0.1.12", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", + "license": "MIT" + }, + "node_modules/pathe": { + "version": "1.1.2", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "license": "MIT" + }, + "node_modules/pathval": { + "version": "1.1.1", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "license": "MIT", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "*" } }, - "node_modules/object-is": { - "version": "1.1.6", - "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "node_modules/pbkdf2": { + "version": "3.1.5", + "integrity": "sha512-Q3CG/cYvCO1ye4QKkuH7EXxs3VC/rI1/trd+qX2+PolbaKG0H+bgcZzrTt96mMyRtejk+JMCiLUn3y29W8qmFQ==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1" + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "ripemd160": "^2.0.3", + "safe-buffer": "^5.2.1", + "sha.js": "^2.4.12", + "to-buffer": "^1.2.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 0.10" } }, - "node_modules/object-keys": { + "node_modules/picocolors": { "version": "1.1.1", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/object.assign": { - "version": "4.1.7", - "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "node_modules/picomodal": { + "version": "3.0.0", + "integrity": "sha512-FoR3TDfuLlqUvcEeK5ifpKSVVns6B4BQvc8SDF6THVMuadya6LLtji0QgUDSStw0ZR2J7I6UGi5V2V23rnPWTw==", + "dev": true, + "license": "MIT" + }, + "node_modules/pidtree": { + "version": "0.6.0", + "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", + "dev": true, "license": "MIT", - "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" + "bin": { + "pidtree": "bin/pidtree.js" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10" } }, - "node_modules/object.entries": { - "version": "1.1.9", - "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", + "node_modules/pixelmatch": { + "version": "7.1.0", + "integrity": "sha512-1wrVzJ2STrpmONHKBy228LM1b84msXDUoAzVEl0R8Mz4Ce6EPr+IVtxm8+yvrqLYMHswREkjYFaMxnyGnaY3Ng==", "dev": true, + "license": "ISC", + "dependencies": { + "pngjs": "^7.0.0" + }, + "bin": { + "pixelmatch": "bin/pixelmatch" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.1.1" + "find-up": "^4.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=8" } }, - "node_modules/object.fromentries": { - "version": "2.0.8", - "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/object.groupby": { - "version": "1.0.3", - "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2" + "p-locate": "^4.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=8" } }, - "node_modules/object.values": { - "version": "1.2.1", - "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" + "p-try": "^2.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=6" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/on-finished": { - "version": "2.4.1", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "license": "MIT", "dependencies": { - "ee-first": "1.1.1" + "p-limit": "^2.2.0" }, "engines": { - "node": ">= 0.8" + "node": ">=8" } }, - "node_modules/once": { - "version": "1.4.0", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "license": "ISC", - "dependencies": { - "wrappy": "1" + "node_modules/pluralize": { + "version": "8.0.0", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" } }, - "node_modules/onetime": { - "version": "5.1.2", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, + "node_modules/pngjs": { + "version": "7.0.0", + "integrity": "sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==", "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=14.19.0" } }, - "node_modules/openapi-typescript": { - "version": "6.7.6", - "integrity": "sha512-c/hfooPx+RBIOPM09GSxABOZhYPblDoyaGhqBkD/59vtpN21jEuWKDlM0KYTvqJVlSYjKs0tBcIdeXKChlSPtw==", + "node_modules/popper.js": { + "version": "1.16.1-lts", + "integrity": "sha512-Kjw8nKRl1m+VrSFCoVGPph93W/qrSO7ZkqPpTf7F4bk/sqcfWK019dWBUpE/fBOsOQY1dks/Bmcbfn1heM/IsA==", + "dev": true, + "license": "MIT" + }, + "node_modules/portfinder": { + "version": "1.0.38", + "integrity": "sha512-rEwq/ZHlJIKw++XtLAO8PPuOQA/zaPJOZJ37BVuN97nLpMJeuDVLVGRwbFoBgLudgdTMP2hdRJP++H+8QOA3vg==", "dev": true, "license": "MIT", "dependencies": { - "ansi-colors": "^4.1.3", - "fast-glob": "^3.3.2", - "js-yaml": "^4.1.0", - "supports-color": "^9.4.0", - "undici": "^5.28.4", - "yargs-parser": "^21.1.1" + "async": "^3.2.6", + "debug": "^4.3.6" }, - "bin": { - "openapi-typescript": "bin/cli.js" + "engines": { + "node": ">= 10.12" } }, - "node_modules/openapi-typescript/node_modules/supports-color": { - "version": "9.4.0", - "integrity": "sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==", - "dev": true, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/opener": { - "version": "1.5.2", - "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", - "dev": true, - "license": "(WTFPL OR MIT)", - "bin": { - "opener": "bin/opener-bin.js" + "node": ">= 0.4" } }, - "node_modules/optionator": { - "version": "0.9.4", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "node_modules/postcss": { + "version": "8.5.6", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", "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" + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { - "node": ">= 0.8.0" + "node": "^10 || ^12 || >=14" } }, - "node_modules/os-browserify": { - "version": "0.3.0", - "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", + "node_modules/postcss-modules-extract-imports": { + "version": "3.1.0", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", "dev": true, - "license": "MIT" + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } }, - "node_modules/own-keys": { - "version": "1.0.1", - "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "node_modules/postcss-modules-local-by-default": { + "version": "4.2.0", + "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", + "dev": true, "license": "MIT", "dependencies": { - "get-intrinsic": "^1.2.6", - "object-keys": "^1.1.1", - "safe-push-apply": "^1.0.0" + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.1.0" }, "engines": { - "node": ">= 0.4" + "node": "^10 || ^12 || >= 14" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "postcss": "^8.1.0" } }, - "node_modules/p-limit": { - "version": "3.1.0", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "license": "MIT", + "node_modules/postcss-modules-scope": { + "version": "3.2.1", + "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", + "dev": true, + "license": "ISC", "dependencies": { - "yocto-queue": "^0.1.0" + "postcss-selector-parser": "^7.0.0" }, "engines": { - "node": ">=10" + "node": "^10 || ^12 || >= 14" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "postcss": "^8.1.0" } }, - "node_modules/p-locate": { - "version": "5.0.0", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "license": "MIT", + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "license": "ISC", "dependencies": { - "p-limit": "^3.0.2" + "icss-utils": "^5.0.0" }, "engines": { - "node": ">=10" + "node": "^10 || ^12 || >= 14" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "postcss": "^8.1.0" } }, - "node_modules/p-map": { - "version": "3.0.0", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "node_modules/postcss-selector-parser": { + "version": "7.1.1", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "dev": true, "license": "MIT", "dependencies": { - "aggregate-error": "^3.0.0" + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/p-try": { - "version": "2.2.0", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "license": "MIT", "engines": { - "node": ">=6" + "node": ">= 0.8.0" } }, - "node_modules/package-hash": { - "version": "4.0.0", - "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", - "license": "ISC", - "dependencies": { - "graceful-fs": "^4.1.15", - "hasha": "^5.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" + "node_modules/prettier": { + "version": "3.4.1", + "integrity": "sha512-G+YdqtITVZmOJje6QkXQWzl3fSfMxFwm1tjTyo9exhkmWSqC4Yhd1+lug++IlR2mvRVAxEDDWYkQdeSztajqgg==", + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" }, "engines": { - "node": ">=8" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/package-json-from-dist": { + "node_modules/prettier-linter-helpers": { "version": "1.0.1", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "license": "BlueOak-1.0.0" - }, - "node_modules/pad-right": { - "version": "0.2.2", - "integrity": "sha512-4cy8M95ioIGolCoMmm2cMntGR1lPLEbOMzOKu8bzjuJP6JpzEMQcDHmh7hHLYGgob+nKe1YHFMaG4V59HQa89g==", + "integrity": "sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==", "license": "MIT", "dependencies": { - "repeat-string": "^1.5.2" + "fast-diff": "^1.1.2" }, "engines": { - "node": ">=0.10.0" + "node": ">=6.0.0" } }, - "node_modules/pako": { - "version": "1.0.11", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true, - "license": "(MIT AND Zlib)" - }, - "node_modules/parent-module": { - "version": "1.0.1", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "node_modules/pretty-format": { + "version": "29.7.0", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "license": "MIT", "dependencies": { - "callsites": "^3.0.0" + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" }, "engines": { - "node": ">=6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/parse-asn1": { - "version": "5.1.9", - "integrity": "sha512-fIYNuZ/HastSb80baGOuPRo1O9cf4baWw5WsAp7dBuUzeTD/BoaG8sVTdlPFksBE2lF21dN+A1AnrpIjSWqHHg==", - "dev": true, - "license": "ISC", - "dependencies": { - "asn1.js": "^4.10.1", - "browserify-aes": "^1.2.0", - "evp_bytestokey": "^1.0.3", - "pbkdf2": "^3.1.5", - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/parse-entities": { - "version": "2.0.0", - "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "license": "MIT", - "dependencies": { - "character-entities": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "character-reference-invalid": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-hexadecimal": "^1.0.0" + "engines": { + "node": ">=10" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/parse-json": { - "version": "5.2.0", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "node_modules/pretty-quick": { + "version": "4.2.2", + "integrity": "sha512-uAh96tBW1SsD34VhhDmWuEmqbpfYc/B3j++5MC/6b3Cb8Ow7NJsvKFhg0eoGu2xXX+o9RkahkTK6sUdd8E7g5w==", + "dev": true, "license": "MIT", "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" + "@pkgr/core": "^0.2.7", + "ignore": "^7.0.5", + "mri": "^1.2.0", + "picocolors": "^1.1.1", + "picomatch": "^4.0.2", + "tinyexec": "^0.3.2", + "tslib": "^2.8.1" + }, + "bin": { + "pretty-quick": "lib/cli.mjs" }, "engines": { - "node": ">=8" + "node": ">=14" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://opencollective.com/pretty-quick" + }, + "peerDependencies": { + "prettier": "^3.0.0" } }, - "node_modules/parse5": { - "version": "7.3.0", - "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "node_modules/pretty-quick/node_modules/ignore": { + "version": "7.0.5", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", "dev": true, "license": "MIT", - "dependencies": { - "entities": "^6.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" + "engines": { + "node": ">= 4" } }, - "node_modules/parse5/node_modules/entities": { - "version": "6.0.1", - "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "node_modules/pretty-quick/node_modules/picomatch": { + "version": "4.0.3", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "engines": { - "node": ">=0.12" + "node": ">=12" }, "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/parseurl": { - "version": "1.3.3", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "node_modules/process": { + "version": "0.11.10", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">= 0.6.0" } }, - "node_modules/path-browserify": { - "version": "1.0.1", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "dev": true, - "license": "MIT" - }, - "node_modules/path-equal": { - "version": "1.2.5", - "integrity": "sha512-i73IctDr3F2W+bsOWDyyVm/lqsXO47aY9nsFZUjTT/aljSbkxHxxCoyZ9UUrM8jK0JVod+An+rl48RCsvWM+9g==", + "node_modules/process-nextick-args": { + "version": "2.0.1", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true, "license": "MIT" }, - "node_modules/path-exists": { - "version": "4.0.0", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "node_modules/process-on-spawn": { + "version": "1.1.0", + "integrity": "sha512-JOnOPQ/8TZgjs1JIH/m9ni7FfimjNa/PRx7y/Wb5qdItsnhO0jE4AT7fC0HjC28DUQWDr50dwSYZLdRMlqDq3Q==", "license": "MIT", + "dependencies": { + "fromentries": "^1.2.0" + }, "engines": { "node": ">=8" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "node_modules/progress": { + "version": "2.0.3", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=0.4.0" } }, - "node_modules/path-key": { - "version": "3.1.1", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "node_modules/prop-types": { + "version": "15.8.1", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "license": "MIT" - }, - "node_modules/path-scurry": { - "version": "1.11.1", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "license": "BlueOak-1.0.0", "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" } }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.4.3", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "license": "ISC" + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" }, - "node_modules/path-to-regexp": { - "version": "0.1.12", - "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", + "node_modules/property-expr": { + "version": "2.0.6", + "integrity": "sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==", "license": "MIT" }, - "node_modules/pathval": { - "version": "1.1.1", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "license": "MIT", - "engines": { - "node": "*" + "node_modules/protobufjs": { + "version": "6.11.4", + "integrity": "sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw==", + "hasInstallScript": true, + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + }, + "bin": { + "pbjs": "bin/pbjs", + "pbts": "bin/pbts" } }, - "node_modules/pbkdf2": { - "version": "3.1.5", - "integrity": "sha512-Q3CG/cYvCO1ye4QKkuH7EXxs3VC/rI1/trd+qX2+PolbaKG0H+bgcZzrTt96mMyRtejk+JMCiLUn3y29W8qmFQ==", - "dev": true, + "node_modules/proxy-addr": { + "version": "2.0.7", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "license": "MIT", "dependencies": { - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "ripemd160": "^2.0.3", - "safe-buffer": "^5.2.1", - "sha.js": "^2.4.12", - "to-buffer": "^1.2.1" + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" }, "engines": { "node": ">= 0.10" } }, - "node_modules/picocolors": { - "version": "1.1.1", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "node_modules/psl": { + "version": "1.15.0", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", "license": "MIT", - "engines": { - "node": ">=8.6" + "optional": true, + "peer": true, + "dependencies": { + "punycode": "^2.3.1" }, "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "url": "https://github.com/sponsors/lupomontero" } }, - "node_modules/picomodal": { - "version": "3.0.0", - "integrity": "sha512-FoR3TDfuLlqUvcEeK5ifpKSVVns6B4BQvc8SDF6THVMuadya6LLtji0QgUDSStw0ZR2J7I6UGi5V2V23rnPWTw==", + "node_modules/pstree.remy": { + "version": "1.1.8", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", "dev": true, "license": "MIT" }, - "node_modules/pidtree": { - "version": "0.6.0", - "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", + "node_modules/public-encrypt": { + "version": "4.0.3", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", "dev": true, "license": "MIT", - "bin": { - "pidtree": "bin/pidtree.js" - }, - "engines": { - "node": ">=0.10" + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" } }, - "node_modules/pirates": { - "version": "4.0.7", - "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.12.2", + "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==", "dev": true, + "license": "MIT" + }, + "node_modules/punycode": { + "version": "2.3.1", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "license": "MIT", "engines": { - "node": ">= 6" + "node": ">=6" } }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" + "node_modules/qs": { + "version": "6.14.2", + "integrity": "sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" }, "engines": { - "node": ">=8" + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", + "dev": true, "engines": { - "node": ">=8" + "node": ">=0.4.x" } }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/querystringify": { + "version": "2.2.0", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } + "optional": true, + "peer": true }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/queue-microtask": { + "version": "1.2.3", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/quickpickle": { + "version": "1.11.0", + "integrity": "sha512-nnkvCjeE41KkjqFqWLJWSj90m8ejiL/xR6nChzUgqqMV27H1FKAzzuyM3rf7SgsEPHUJqQfXZ9ughGSSAmfkDA==", "license": "MIT", "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" + "@a11y-tools/aria-roles": "^1.0.0", + "@cucumber/cucumber-expressions": "^18.0.1", + "@cucumber/gherkin": "^32.1.0", + "@cucumber/messages": "^27.2.0", + "@cucumber/tag-expressions": "^6.1.2", + "buffer": "^6.0.3", + "image-crop-or-pad": "^1.0.1", + "js-yaml": "^4.1.1", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "pngjs": "^7.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "vitest": "^1.0.0 || >=2.0.0" } }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/quickpickle/node_modules/@cucumber/cucumber-expressions": { + "version": "18.1.0", + "integrity": "sha512-9yc+wForrn15FaqLWNjYb19iQ/gPXhcq1kc4X1Ex1lR7NcJpa5pGnCow3bc1HERVM5IoYH+gwwrcJogSMsf+Vw==", "license": "MIT", "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" + "regexp-match-indices": "1.0.2" } }, - "node_modules/pluralize": { - "version": "8.0.0", - "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", - "dev": true, + "node_modules/quickpickle/node_modules/@cucumber/gherkin": { + "version": "32.2.0", + "integrity": "sha512-X8xuVhSIqlUjxSRifRJ7t0TycVWyX58fygJH3wDNmHINLg9sYEkvQT0SO2G5YlRZnYc11TIFr4YPenscvdlBIw==", "license": "MIT", - "engines": { - "node": ">=4" + "dependencies": { + "@cucumber/messages": ">=19.1.4 <28" } }, - "node_modules/popper.js": { - "version": "1.16.1-lts", - "integrity": "sha512-Kjw8nKRl1m+VrSFCoVGPph93W/qrSO7ZkqPpTf7F4bk/sqcfWK019dWBUpE/fBOsOQY1dks/Bmcbfn1heM/IsA==", - "dev": true, - "license": "MIT" - }, - "node_modules/portfinder": { - "version": "1.0.38", - "integrity": "sha512-rEwq/ZHlJIKw++XtLAO8PPuOQA/zaPJOZJ37BVuN97nLpMJeuDVLVGRwbFoBgLudgdTMP2hdRJP++H+8QOA3vg==", - "dev": true, + "node_modules/quickpickle/node_modules/@cucumber/messages": { + "version": "27.2.0", + "integrity": "sha512-f2o/HqKHgsqzFLdq6fAhfG1FNOQPdBdyMGpKwhb7hZqg0yZtx9BVqkTyuoNk83Fcvk3wjMVfouFXXHNEk4nddA==", "license": "MIT", "dependencies": { - "async": "^3.2.6", - "debug": "^4.3.6" - }, - "engines": { - "node": ">= 10.12" + "@types/uuid": "10.0.0", + "class-transformer": "0.5.1", + "reflect-metadata": "0.2.2", + "uuid": "11.0.5" } }, - "node_modules/possible-typed-array-names": { - "version": "1.1.0", - "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "node_modules/quickpickle/node_modules/@cucumber/tag-expressions": { + "version": "6.2.0", + "integrity": "sha512-KIF0eLcafHbWOuSDWFw0lMmgJOLdDRWjEL1kfXEWrqHmx2119HxVAr35WuEd9z542d3Yyg+XNqSr+81rIKqEdg==", + "license": "MIT" + }, + "node_modules/quickpickle/node_modules/uuid": { + "version": "11.0.5", + "integrity": "sha512-508e6IcKLrhxKdBbcA2b4KQZlLVp2+J5UwQ6F7Drckkc5N9ZJwFa4TgWtsww9UG8fGHbm6gbV19TdM5pQ4GaIA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], "license": "MIT", - "engines": { - "node": ">= 0.4" + "bin": { + "uuid": "dist/esm/bin/uuid" } }, - "node_modules/postcss": { - "version": "8.5.6", - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "node_modules/quicktype": { + "version": "23.0.78", + "integrity": "sha512-KeF1KNwfcnoi349hmbvJpxGccNKF6xvyUnPZ4uOQ8NA1Ipb/2f2HPvx6UIUtGYUY2AM9PJSIMjwMAg1dfB5MtA==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } + "license": "Apache-2.0", + "workspaces": [ + "./packages/quicktype-core", + "./packages/quicktype-graphql-input", + "./packages/quicktype-typescript-input" ], - "license": "MIT", "dependencies": { - "nanoid": "^3.3.11", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" + "@glideapps/ts-necessities": "^2.1.3", + "chalk": "^4.1.2", + "collection-utils": "^1.0.1", + "command-line-args": "^5.2.1", + "command-line-usage": "^7.0.1", + "cross-fetch": "^4.0.0", + "graphql": "^0.11.7", + "lodash": "^4.17.21", + "moment": "^2.29.4", + "quicktype-core": "23.0.78", + "quicktype-graphql-input": "23.0.78", + "quicktype-typescript-input": "23.0.78", + "readable-stream": "^4.4.2", + "stream-json": "1.8.0", + "string-to-stream": "^3.0.1", + "typescript": "4.9.5" + }, + "bin": { + "quicktype": "dist/index.js" }, "engines": { - "node": "^10 || ^12 || >=14" + "node": ">=18.12.0" } }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.1.0", - "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "node_modules/quicktype-core": { + "version": "23.0.78", + "integrity": "sha512-df+wJfOudbKWV7u82qRvJLCPR86T9ObpRWjs+2DKQoNm/b9ku5PH74GRgaTkaQ942CwISH1hbXiFxAGoeNEaFg==", "dev": true, - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" + "license": "Apache-2.0", + "dependencies": { + "@glideapps/ts-necessities": "2.1.3", + "@types/urijs": "^1.19.19", + "browser-or-node": "^2.1.1", + "collection-utils": "^1.0.1", + "cross-fetch": "^4.0.0", + "is-url": "^1.2.4", + "js-base64": "^3.7.5", + "lodash": "^4.17.21", + "pako": "^1.0.6", + "pluralize": "^8.0.0", + "readable-stream": "4.4.2", + "unicode-properties": "^1.4.1", + "urijs": "^1.19.1", + "wordwrap": "^1.0.0", + "yaml": "^2.3.1" } }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.2.0", - "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", + "node_modules/quicktype-core/node_modules/@glideapps/ts-necessities": { + "version": "2.1.3", + "integrity": "sha512-q9U8v/n9qbkd2zDYjuX3qtlbl+OIyI9zF+zQhZjfYOE9VMDH7tfcUSJ9p0lXoY3lxmGFne09yi4iiNeQUwV7AA==", + "dev": true, + "license": "MIT" + }, + "node_modules/quicktype-core/node_modules/readable-stream": { + "version": "4.4.2", + "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==", "dev": true, "license": "MIT", "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^7.0.0", - "postcss-value-parser": "^4.1.0" + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" }, "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/postcss-modules-scope": { - "version": "3.2.1", - "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", + "node_modules/quicktype-graphql-input": { + "version": "23.0.78", + "integrity": "sha512-KyGSdzC8HwCWAJpw1UnmWDhNJTm2Nx+rlySopeFX9tndJIhv69Jg+Drk6XIUEq/YrenjB/+bmgpz/41ugtncTA==", "dev": true, - "license": "ISC", + "license": "Apache-2.0", "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" + "collection-utils": "^1.0.1", + "graphql": "^0.11.7", + "quicktype-core": "23.0.78" } }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "node_modules/quicktype-typescript-input": { + "version": "23.0.78", + "integrity": "sha512-OaEfS4n4OjgAUe5IpuZiBPe675GnvSGyP1/3WUrX5T558SoorjA1RcqiPmitUh0MikhYQLBR9j/L2AaM4OkLWQ==", "dev": true, - "license": "ISC", + "license": "Apache-2.0", "dependencies": { - "icss-utils": "^5.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } + "@mark.probst/typescript-json-schema": "0.55.0", + "quicktype-core": "23.0.78", + "typescript": "4.9.5" + } }, - "node_modules/postcss-selector-parser": { - "version": "7.1.1", - "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "node_modules/quicktype-typescript-input/node_modules/typescript": { + "version": "4.9.5", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "dev": true, - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" }, "engines": { - "node": ">=4" + "node": ">=4.2.0" } }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "node_modules/quicktype/node_modules/typescript": { + "version": "4.9.5", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "dev": true, - "license": "MIT" + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "node_modules/randombytes": { + "version": "2.1.0", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "license": "MIT", - "engines": { - "node": ">= 0.8.0" + "dependencies": { + "safe-buffer": "^5.1.0" } }, - "node_modules/prettier": { - "version": "3.4.1", - "integrity": "sha512-G+YdqtITVZmOJje6QkXQWzl3fSfMxFwm1tjTyo9exhkmWSqC4Yhd1+lug++IlR2mvRVAxEDDWYkQdeSztajqgg==", + "node_modules/randomfill": { + "version": "1.0.4", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "license": "MIT", - "bin": { - "prettier": "bin/prettier.cjs" - }, "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" + "node": ">= 0.6" } }, - "node_modules/prettier-linter-helpers": { - "version": "1.0.1", - "integrity": "sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==", + "node_modules/raw-body": { + "version": "2.5.3", + "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", "license": "MIT", "dependencies": { - "fast-diff": "^1.1.2" + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "unpipe": "~1.0.0" }, "engines": { - "node": ">=6.0.0" + "node": ">= 0.8" } }, - "node_modules/pretty-format": { - "version": "29.7.0", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "node_modules/react": { + "version": "17.0.2", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", "license": "MIT", "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=0.10.0" } }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "node_modules/react-accessible-accordion": { + "version": "3.3.5", + "integrity": "sha512-yCh3tx+jNuOPs+m58LOBFTGDEaGvM8UfuCNznr855FDAWzwV8V/ZH/TVBvgqH0npP58KrrVrHpj4jcy0EE5hEw==", "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "peerDependencies": { + "react": "^16.3.2 || ^17.0.0", + "react-dom": "^16.3.3 || ^17.0.0" } }, - "node_modules/pretty-quick": { - "version": "4.2.2", - "integrity": "sha512-uAh96tBW1SsD34VhhDmWuEmqbpfYc/B3j++5MC/6b3Cb8Ow7NJsvKFhg0eoGu2xXX+o9RkahkTK6sUdd8E7g5w==", - "dev": true, + "node_modules/react-dom": { + "version": "17.0.2", + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", "license": "MIT", "dependencies": { - "@pkgr/core": "^0.2.7", - "ignore": "^7.0.5", - "mri": "^1.2.0", - "picocolors": "^1.1.1", - "picomatch": "^4.0.2", - "tinyexec": "^0.3.2", - "tslib": "^2.8.1" - }, - "bin": { - "pretty-quick": "lib/cli.mjs" + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "scheduler": "^0.20.2" }, - "engines": { - "node": ">=14" + "peerDependencies": { + "react": "17.0.2" + } + }, + "node_modules/react-is": { + "version": "18.3.1", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT" + }, + "node_modules/react-markdown": { + "version": "5.0.3", + "integrity": "sha512-jDWOc1AvWn0WahpjW6NK64mtx6cwjM4iSsLHJPNBqoAgGOVoIdJMqaKX4++plhOtdd4JksdqzlDibgPx6B/M2w==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.3", + "@types/unist": "^2.0.3", + "html-to-react": "^1.3.4", + "mdast-add-list-metadata": "1.0.1", + "prop-types": "^15.7.2", + "react-is": "^16.8.6", + "remark-parse": "^9.0.0", + "unified": "^9.0.0", + "unist-util-visit": "^2.0.0", + "xtend": "^4.0.1" }, "funding": { - "url": "https://opencollective.com/pretty-quick" + "type": "opencollective", + "url": "https://opencollective.com/unified" }, "peerDependencies": { - "prettier": "^3.0.0" + "@types/react": ">=16", + "react": ">=16" } }, - "node_modules/pretty-quick/node_modules/ignore": { - "version": "7.0.5", - "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "node_modules/react-markdown/node_modules/react-is": { + "version": "16.13.1", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/react-refresh": { + "version": "0.17.0", + "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==", "dev": true, "license": "MIT", "engines": { - "node": ">= 4" + "node": ">=0.10.0" } }, - "node_modules/pretty-quick/node_modules/picomatch": { - "version": "4.0.3", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "node_modules/react-transition-group": { + "version": "4.4.5", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" + "license": "BSD-3-Clause", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" } }, - "node_modules/process": { - "version": "0.11.10", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "node_modules/read-pkg": { + "version": "5.2.0", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, "engines": { - "node": ">= 0.6.0" + "node": ">=8" } }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true, - "license": "MIT" - }, - "node_modules/process-on-spawn": { - "version": "1.1.0", - "integrity": "sha512-JOnOPQ/8TZgjs1JIH/m9ni7FfimjNa/PRx7y/Wb5qdItsnhO0jE4AT7fC0HjC28DUQWDr50dwSYZLdRMlqDq3Q==", + "node_modules/read-pkg-up": { + "version": "7.0.1", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "license": "MIT", "dependencies": { - "fromentries": "^1.2.0" + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/progress": { - "version": "2.0.3", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "4.1.0", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, "engines": { - "node": ">=0.4.0" + "node": ">=8" } }, - "node_modules/prompts": { - "version": "2.4.2", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "5.0.0", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "license": "MIT", "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" + "p-locate": "^4.1.0" }, "engines": { - "node": ">= 6" + "node": ">=8" } }, - "node_modules/prop-types": { - "version": "15.8.1", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "license": "MIT", "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/prop-types/node_modules/react-is": { - "version": "16.13.1", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "license": "MIT" + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "4.1.0", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } }, - "node_modules/property-expr": { - "version": "2.0.6", - "integrity": "sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==", - "license": "MIT" + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } }, - "node_modules/protobufjs": { - "version": "6.11.4", - "integrity": "sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw==", - "hasInstallScript": true, - "license": "BSD-3-Clause", + "node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/readable-stream": { + "version": "4.7.0", + "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", + "dev": true, + "license": "MIT", "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" }, - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "node_modules/readdirp": { + "version": "3.6.0", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "license": "MIT", "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" + "picomatch": "^2.2.1" }, "engines": { - "node": ">= 0.10" + "node": ">=8.10.0" } }, - "node_modules/psl": { - "version": "1.15.0", - "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", + "node_modules/rechoir": { + "version": "0.6.2", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", "dev": true, + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/reflect-metadata": { + "version": "0.2.2", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", + "license": "Apache-2.0" + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", "license": "MIT", "dependencies": { - "punycode": "^2.3.1" + "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" + }, + "engines": { + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/lupomontero" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/pstree.remy": { - "version": "1.1.8", - "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "node_modules/regenerate": { + "version": "1.4.2", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", "dev": true, "license": "MIT" }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "node_modules/regenerate-unicode-properties": { + "version": "10.2.2", + "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==", "dev": true, "license": "MIT", "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" } }, - "node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.12.2", - "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==", + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", "dev": true, "license": "MIT" }, - "node_modules/punycode": { - "version": "2.3.1", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "license": "MIT", - "engines": { - "node": ">=6" + "node_modules/regexp-match-indices": { + "version": "1.0.2", + "integrity": "sha512-DwZuAkt8NF5mKwGGER1EGh2PRqyvhRhhLviH+R8y8dIuaQROlUfXjt4s9ZTXstIsSkptf06BSvwcEmmfheJJWQ==", + "license": "Apache-2.0", + "dependencies": { + "regexp-tree": "^0.1.11" } }, - "node_modules/pure-rand": { - "version": "6.1.0", - "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/dubzzz" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fast-check" - } - ], - "license": "MIT" + "node_modules/regexp-tree": { + "version": "0.1.27", + "integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==", + "license": "MIT", + "bin": { + "regexp-tree": "bin/regexp-tree" + } }, - "node_modules/qs": { - "version": "6.14.2", - "integrity": "sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==", - "license": "BSD-3-Clause", + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "license": "MIT", "dependencies": { - "side-channel": "^1.1.0" + "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" }, "engines": { - "node": ">=0.6" + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/querystring-es3": { - "version": "0.2.1", - "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", + "node_modules/regexpu-core": { + "version": "6.4.0", + "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==", "dev": true, + "license": "MIT", + "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" + }, "engines": { - "node": ">=0.4.x" + "node": ">=4" } }, - "node_modules/querystringify": { - "version": "2.2.0", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "node_modules/regjsgen": { + "version": "0.8.0", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], "license": "MIT" }, - "node_modules/quicktype": { - "version": "23.0.78", - "integrity": "sha512-KeF1KNwfcnoi349hmbvJpxGccNKF6xvyUnPZ4uOQ8NA1Ipb/2f2HPvx6UIUtGYUY2AM9PJSIMjwMAg1dfB5MtA==", + "node_modules/regjsparser": { + "version": "0.13.0", + "integrity": "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==", "dev": true, - "license": "Apache-2.0", - "workspaces": [ - "./packages/quicktype-core", - "./packages/quicktype-graphql-input", - "./packages/quicktype-typescript-input" - ], + "license": "BSD-2-Clause", "dependencies": { - "@glideapps/ts-necessities": "^2.1.3", - "chalk": "^4.1.2", - "collection-utils": "^1.0.1", - "command-line-args": "^5.2.1", - "command-line-usage": "^7.0.1", - "cross-fetch": "^4.0.0", - "graphql": "^0.11.7", - "lodash": "^4.17.21", - "moment": "^2.29.4", - "quicktype-core": "23.0.78", - "quicktype-graphql-input": "23.0.78", - "quicktype-typescript-input": "23.0.78", - "readable-stream": "^4.4.2", - "stream-json": "1.8.0", - "string-to-stream": "^3.0.1", - "typescript": "4.9.5" + "jsesc": "~3.1.0" }, "bin": { - "quicktype": "dist/index.js" + "regjsparser": "bin/parser" + } + }, + "node_modules/release-zalgo": { + "version": "1.0.0", + "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==", + "license": "ISC", + "dependencies": { + "es6-error": "^4.0.1" }, "engines": { - "node": ">=18.12.0" + "node": ">=4" } }, - "node_modules/quicktype-core": { - "version": "23.0.78", - "integrity": "sha512-df+wJfOudbKWV7u82qRvJLCPR86T9ObpRWjs+2DKQoNm/b9ku5PH74GRgaTkaQ942CwISH1hbXiFxAGoeNEaFg==", - "dev": true, - "license": "Apache-2.0", + "node_modules/remark-parse": { + "version": "9.0.0", + "integrity": "sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==", + "license": "MIT", "dependencies": { - "@glideapps/ts-necessities": "2.1.3", - "@types/urijs": "^1.19.19", - "browser-or-node": "^2.1.1", - "collection-utils": "^1.0.1", - "cross-fetch": "^4.0.0", - "is-url": "^1.2.4", - "js-base64": "^3.7.5", - "lodash": "^4.17.21", - "pako": "^1.0.6", - "pluralize": "^8.0.0", - "readable-stream": "4.4.2", - "unicode-properties": "^1.4.1", - "urijs": "^1.19.1", - "wordwrap": "^1.0.0", - "yaml": "^2.3.1" + "mdast-util-from-markdown": "^0.8.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/quicktype-core/node_modules/@glideapps/ts-necessities": { - "version": "2.1.3", - "integrity": "sha512-q9U8v/n9qbkd2zDYjuX3qtlbl+OIyI9zF+zQhZjfYOE9VMDH7tfcUSJ9p0lXoY3lxmGFne09yi4iiNeQUwV7AA==", - "dev": true, - "license": "MIT" + "node_modules/repeat-string": { + "version": "1.6.1", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "license": "MIT", + "engines": { + "node": ">=0.10" + } }, - "node_modules/quicktype-core/node_modules/readable-stream": { - "version": "4.4.2", - "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==", + "node_modules/replace-in-file": { + "version": "6.3.5", + "integrity": "sha512-arB9d3ENdKva2fxRnSjwBEXfK1npgyci7ZZuwysgAp7ORjHSyxz6oqIjTEv8R0Ydl4Ll7uOAZXL4vbkhGIizCg==", "dev": true, "license": "MIT", "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" + "chalk": "^4.1.2", + "glob": "^7.2.0", + "yargs": "^17.2.1" + }, + "bin": { + "replace-in-file": "bin/cli.js" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=10" } }, - "node_modules/quicktype-graphql-input": { - "version": "23.0.78", - "integrity": "sha512-KyGSdzC8HwCWAJpw1UnmWDhNJTm2Nx+rlySopeFX9tndJIhv69Jg+Drk6XIUEq/YrenjB/+bmgpz/41ugtncTA==", + "node_modules/replace-in-file/node_modules/glob": { + "version": "7.2.3", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, - "license": "Apache-2.0", + "license": "ISC", "dependencies": { - "collection-utils": "^1.0.1", - "graphql": "^0.11.7", - "quicktype-core": "23.0.78" + "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" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/quicktype-typescript-input": { - "version": "23.0.78", - "integrity": "sha512-OaEfS4n4OjgAUe5IpuZiBPe675GnvSGyP1/3WUrX5T558SoorjA1RcqiPmitUh0MikhYQLBR9j/L2AaM4OkLWQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@mark.probst/typescript-json-schema": "0.55.0", - "quicktype-core": "23.0.78", - "typescript": "4.9.5" + "node_modules/require-directory": { + "version": "2.1.1", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/quicktype-typescript-input/node_modules/typescript": { - "version": "4.9.5", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, + "node_modules/require-from-string": { + "version": "2.0.2", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", "engines": { - "node": ">=4.2.0" + "node": ">=0.10.0" } }, - "node_modules/quicktype/node_modules/typescript": { - "version": "4.9.5", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true, - "license": "Apache-2.0", + "node_modules/require-main-filename": { + "version": "2.0.0", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "license": "ISC" + }, + "node_modules/requires-port": { + "version": "1.0.0", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.11", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "resolve": "bin/resolve" }, "engines": { - "node": ">=4.2.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/randombytes": { - "version": "2.1.0", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "node_modules/resolve-cwd": { + "version": "3.0.0", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, "license": "MIT", "dependencies": { - "safe-buffer": "^5.1.0" + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/randomfill": { - "version": "1.0.4", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, "license": "MIT", - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" + "engines": { + "node": ">=8" } }, - "node_modules/range-parser": { - "version": "1.2.1", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "node_modules/resolve-from": { + "version": "4.0.0", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=4" } }, - "node_modules/raw-body": { - "version": "2.5.3", - "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", + "node_modules/resolve-pkg": { + "version": "2.0.0", + "integrity": "sha512-+1lzwXehGCXSeryaISr6WujZzowloigEofRB+dj75y9RRa/obVcYgbHJd53tdYw8pvZj8GojXaaENws8Ktw/hQ==", "license": "MIT", "dependencies": { - "bytes": "~3.1.2", - "http-errors": "~2.0.1", - "iconv-lite": "~0.4.24", - "unpipe": "~1.0.0" + "resolve-from": "^5.0.0" }, "engines": { - "node": ">= 0.8" + "node": ">=8" } }, - "node_modules/react": { - "version": "17.0.2", - "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - }, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } }, - "node_modules/react-accessible-accordion": { - "version": "3.3.5", - "integrity": "sha512-yCh3tx+jNuOPs+m58LOBFTGDEaGvM8UfuCNznr855FDAWzwV8V/ZH/TVBvgqH0npP58KrrVrHpj4jcy0EE5hEw==", + "node_modules/resolve-pkg/node_modules/resolve-from": { + "version": "5.0.0", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "license": "MIT", - "peerDependencies": { - "react": "^16.3.2 || ^17.0.0", - "react-dom": "^16.3.3 || ^17.0.0" + "engines": { + "node": ">=8" } }, - "node_modules/react-dom": { - "version": "17.0.2", - "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "node_modules/restore-cursor": { + "version": "5.1.0", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", + "dev": true, "license": "MIT", "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "scheduler": "^0.20.2" + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" }, - "peerDependencies": { - "react": "17.0.2" - } - }, - "node_modules/react-is": { - "version": "18.3.1", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "license": "MIT" + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/react-markdown": { - "version": "5.0.3", - "integrity": "sha512-jDWOc1AvWn0WahpjW6NK64mtx6cwjM4iSsLHJPNBqoAgGOVoIdJMqaKX4++plhOtdd4JksdqzlDibgPx6B/M2w==", + "node_modules/restore-cursor/node_modules/onetime": { + "version": "7.0.0", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "dev": true, "license": "MIT", "dependencies": { - "@types/mdast": "^3.0.3", - "@types/unist": "^2.0.3", - "html-to-react": "^1.3.4", - "mdast-add-list-metadata": "1.0.1", - "prop-types": "^15.7.2", - "react-is": "^16.8.6", - "remark-parse": "^9.0.0", - "unified": "^9.0.0", - "unist-util-visit": "^2.0.0", - "xtend": "^4.0.1" + "mimic-function": "^5.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=18" }, - "peerDependencies": { - "@types/react": ">=16", - "react": ">=16" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/react-markdown/node_modules/react-is": { - "version": "16.13.1", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "license": "MIT" - }, - "node_modules/react-refresh": { - "version": "0.17.0", - "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==", + "node_modules/reusify": { + "version": "1.1.0", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "dev": true, "license": "MIT", "engines": { + "iojs": ">=1.0.0", "node": ">=0.10.0" } }, - "node_modules/react-transition-group": { - "version": "4.4.5", - "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "node_modules/rfdc": { + "version": "1.4.1", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - }, - "peerDependencies": { - "react": ">=16.6.0", - "react-dom": ">=16.6.0" - } + "license": "MIT" }, - "node_modules/read-pkg": { - "version": "5.2.0", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "license": "MIT", + "node_modules/rimraf": { + "version": "6.1.2", + "integrity": "sha512-cFCkPslJv7BAXJsYlK1dZsbP8/ZNLkCAQ0bi1hf5EKX2QHegmDFEFA6QhuYJlk7UDdc+02JjO80YSOrWPpw06g==", + "license": "BlueOak-1.0.0", "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" + "glob": "^13.0.0", + "package-json-from-dist": "^1.0.1" }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up": { - "version": "7.0.1", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "license": "MIT", - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" + "bin": { + "rimraf": "dist/esm/bin.mjs" }, "engines": { - "node": ">=8" + "node": "20 || >=22" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "4.1.0", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/rimraf/node_modules/balanced-match": { + "version": "4.0.4", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": "18 || 20 || >=22" } }, - "node_modules/read-pkg-up/node_modules/locate-path": { - "version": "5.0.0", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "5.0.3", + "integrity": "sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==", "license": "MIT", "dependencies": { - "p-locate": "^4.1.0" + "balanced-match": "^4.0.2" }, "engines": { - "node": ">=8" + "node": "18 || 20 || >=22" } }, - "node_modules/read-pkg-up/node_modules/p-limit": { - "version": "2.3.0", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "license": "MIT", + "node_modules/rimraf/node_modules/glob": { + "version": "13.0.0", + "integrity": "sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==", + "license": "BlueOak-1.0.0", "dependencies": { - "p-try": "^2.0.0" + "minimatch": "^10.1.1", + "minipass": "^7.1.2", + "path-scurry": "^2.0.0" }, "engines": { - "node": ">=6" + "node": "20 || >=22" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/p-locate": { - "version": "4.1.0", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "license": "(MIT OR CC0-1.0)", + "node_modules/rimraf/node_modules/lru-cache": { + "version": "11.2.5", + "integrity": "sha512-vFrFJkWtJvJnD5hg+hJvVE8Lh/TcMzKnTgCWmtBipwI5yLX/iX+5UB2tfuyODF5E7k9xEzMdYgGqaSb1c0c5Yw==", + "license": "BlueOak-1.0.0", "engines": { - "node": ">=8" + "node": "20 || >=22" } }, - "node_modules/readable-stream": { - "version": "4.7.0", - "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", - "dev": true, - "license": "MIT", + "node_modules/rimraf/node_modules/minimatch": { + "version": "10.2.2", + "integrity": "sha512-+G4CpNBxa5MprY+04MbgOw1v7So6n5JY166pFi9KfYwT78fxScCeSNQSNzp6dpPSW2rONOps6Ocam1wFhCgoVw==", + "license": "BlueOak-1.0.0", "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" + "brace-expansion": "^5.0.2" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/readdirp": { - "version": "3.6.0", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "license": "MIT", + "node_modules/rimraf/node_modules/path-scurry": { + "version": "2.0.1", + "integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==", + "license": "BlueOak-1.0.0", "dependencies": { - "picomatch": "^2.2.1" + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" }, "engines": { - "node": ">=8.10.0" + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/rechoir": { - "version": "0.6.2", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "node_modules/ripemd160": { + "version": "2.0.3", + "integrity": "sha512-5Di9UC0+8h1L6ZD2d7awM7E/T4uA1fJRlx6zk/NvdCCVEoAnFqvHmCuNeIKoCeIixBX/q8uM+6ycDvF8woqosA==", "dev": true, + "license": "MIT", "dependencies": { - "resolve": "^1.1.6" + "hash-base": "^3.1.2", + "inherits": "^2.0.4" }, "engines": { - "node": ">= 0.10" + "node": ">= 0.8" } }, - "node_modules/reflect-metadata": { - "version": "0.2.2", - "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", - "license": "Apache-2.0" - }, - "node_modules/reflect.getprototypeof": { - "version": "1.0.10", - "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "node_modules/ripemd160/node_modules/hash-base": { + "version": "3.1.2", + "integrity": "sha512-Bb33KbowVTIj5s7Ked1OsqHUeCpz//tPwR+E2zJgJKo9Z5XolZ9b6bdUgjmYlwnWhoOQKoTd1TYToZGn5mAYOg==", + "dev": true, "license": "MIT", "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" + "inherits": "^2.0.4", + "readable-stream": "^2.3.8", + "safe-buffer": "^5.2.1", + "to-buffer": "^1.2.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 0.8" } }, - "node_modules/regenerate": { - "version": "1.4.2", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "node_modules/ripemd160/node_modules/isarray": { + "version": "1.0.0", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "dev": true, "license": "MIT" }, - "node_modules/regenerate-unicode-properties": { - "version": "10.2.2", - "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==", + "node_modules/ripemd160/node_modules/readable-stream": { + "version": "2.3.8", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "license": "MIT", "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" + "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" } }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "node_modules/ripemd160/node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true, "license": "MIT" }, - "node_modules/regexp-match-indices": { - "version": "1.0.2", - "integrity": "sha512-DwZuAkt8NF5mKwGGER1EGh2PRqyvhRhhLviH+R8y8dIuaQROlUfXjt4s9ZTXstIsSkptf06BSvwcEmmfheJJWQ==", - "license": "Apache-2.0", + "node_modules/ripemd160/node_modules/string_decoder": { + "version": "1.1.1", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", "dependencies": { - "regexp-tree": "^0.1.11" + "safe-buffer": "~5.1.0" } }, - "node_modules/regexp-tree": { - "version": "0.1.27", - "integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==", - "license": "MIT", - "bin": { - "regexp-tree": "bin/regexp-tree" - } + "node_modules/ripemd160/node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.4", - "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "node_modules/rollup": { + "version": "4.59.0", + "integrity": "sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==", "license": "MIT", "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" + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" }, "engines": { - "node": ">= 0.4" + "node": ">=18.0.0", + "npm": ">=8.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "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" } }, - "node_modules/regexpu-core": { - "version": "6.4.0", - "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==", + "node_modules/rollup-plugin-dts": { + "version": "6.3.0", + "integrity": "sha512-d0UrqxYd8KyZ6i3M2Nx7WOMy708qsV/7fTHMHxCMCBOAe3V/U7OMPu5GkX8hC+cmkHhzGnfeYongl1IgiooddA==", "dev": true, - "license": "MIT", + "license": "LGPL-3.0-only", "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" + "magic-string": "^0.30.21" }, "engines": { - "node": ">=4" + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/Swatinem" + }, + "optionalDependencies": { + "@babel/code-frame": "^7.27.1" + }, + "peerDependencies": { + "rollup": "^3.29.4 || ^4", + "typescript": "^4.5 || ^5.0" } }, - "node_modules/regjsgen": { - "version": "0.8.0", - "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/regjsparser": { - "version": "0.13.0", - "integrity": "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==", + "node_modules/run-parallel": { + "version": "1.2.0", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, - "license": "BSD-2-Clause", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", "dependencies": { - "jsesc": "~3.1.0" - }, - "bin": { - "regjsparser": "bin/parser" + "queue-microtask": "^1.2.2" } }, - "node_modules/release-zalgo": { - "version": "1.0.0", - "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==", - "license": "ISC", + "node_modules/rxjs": { + "version": "7.8.2", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "es6-error": "^4.0.1" - }, - "engines": { - "node": ">=4" + "tslib": "^2.1.0" } }, - "node_modules/remark-parse": { - "version": "9.0.0", - "integrity": "sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==", + "node_modules/safe-array-concat": { + "version": "1.1.3", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", "license": "MIT", "dependencies": { - "mdast-util-from-markdown": "^0.8.0" + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/repeat-string": { - "version": "1.6.1", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", - "license": "MIT", - "engines": { - "node": ">=0.10" - } + "node_modules/safe-buffer": { + "version": "5.2.1", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" }, - "node_modules/replace-in-file": { - "version": "6.3.5", - "integrity": "sha512-arB9d3ENdKva2fxRnSjwBEXfK1npgyci7ZZuwysgAp7ORjHSyxz6oqIjTEv8R0Ydl4Ll7uOAZXL4vbkhGIizCg==", - "dev": true, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", "license": "MIT", "dependencies": { - "chalk": "^4.1.2", - "glob": "^7.2.0", - "yargs": "^17.2.1" - }, - "bin": { - "replace-in-file": "bin/cli.js" + "es-errors": "^1.3.0", + "isarray": "^2.0.5" }, "engines": { - "node": ">=10" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/replace-in-file/node_modules/glob": { - "version": "7.2.3", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "license": "ISC", + "node_modules/safe-regex-test": { + "version": "1.1.0", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "license": "MIT", "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" + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" }, "engines": { - "node": "*" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/require-directory": { - "version": "2.1.1", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "node_modules/safe-stable-stringify": { + "version": "2.5.0", + "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", + "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/require-from-string": { - "version": "2.0.2", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "license": "ISC" - }, - "node_modules/requires-port": { - "version": "1.0.0", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true, + "node_modules/safer-buffer": { + "version": "2.1.2", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "license": "MIT" }, - "node_modules/resolve": { - "version": "1.22.11", - "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", - "license": "MIT", + "node_modules/saxes": { + "version": "6.0.0", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "license": "ISC", + "optional": true, + "peer": true, "dependencies": { - "is-core-module": "^2.16.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" + "xmlchars": "^2.2.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=v12.22.7" } }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, + "node_modules/scheduler": { + "version": "0.20.2", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", "license": "MIT", "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" } }, - "node_modules/resolve-cwd/node_modules/resolve-from": { - "version": "5.0.0", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "node_modules/schema-utils": { + "version": "4.3.3", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", "dev": true, "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-pkg": { - "version": "2.0.0", - "integrity": "sha512-+1lzwXehGCXSeryaISr6WujZzowloigEofRB+dj75y9RRa/obVcYgbHJd53tdYw8pvZj8GojXaaENws8Ktw/hQ==", - "license": "MIT", "dependencies": { - "resolve-from": "^5.0.0" + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" }, "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-pkg-maps": { - "version": "1.0.0", - "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", - "license": "MIT", + "node": ">= 10.13.0" + }, "funding": { - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" - } - }, - "node_modules/resolve-pkg/node_modules/resolve-from": { - "version": "5.0.0", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "license": "MIT", - "engines": { - "node": ">=8" + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "node_modules/resolve.exports": { - "version": "2.0.3", - "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", + "node_modules/schema-utils/node_modules/ajv": { + "version": "8.18.0", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", "dev": true, "license": "MIT", - "engines": { - "node": ">=10" + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/restore-cursor": { - "version": "5.1.0", - "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", + "node_modules/schema-utils/node_modules/ajv-formats": { + "version": "2.1.1", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "dev": true, "license": "MIT", "dependencies": { - "onetime": "^7.0.0", - "signal-exit": "^4.1.0" + "ajv": "^8.0.0" }, - "engines": { - "node": ">=18" + "peerDependencies": { + "ajv": "^8.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependenciesMeta": { + "ajv": { + "optional": true + } } }, - "node_modules/restore-cursor/node_modules/onetime": { - "version": "7.0.0", - "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "node_modules/schema-utils/node_modules/ajv-keywords": { + "version": "5.1.0", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, "license": "MIT", "dependencies": { - "mimic-function": "^5.0.0" - }, - "engines": { - "node": ">=18" + "fast-deep-equal": "^3.1.3" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "ajv": "^8.8.2" } }, - "node_modules/reusify": { - "version": "1.1.0", - "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "node_modules/schema-utils/node_modules/json-schema-traverse": { + "version": "1.0.0", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true, - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } + "license": "MIT" }, - "node_modules/rfdc": { - "version": "1.4.1", - "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "node_modules/secure-compare": { + "version": "3.0.1", + "integrity": "sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==", "dev": true, "license": "MIT" }, - "node_modules/rimraf": { - "version": "6.1.2", - "integrity": "sha512-cFCkPslJv7BAXJsYlK1dZsbP8/ZNLkCAQ0bi1hf5EKX2QHegmDFEFA6QhuYJlk7UDdc+02JjO80YSOrWPpw06g==", - "license": "BlueOak-1.0.0", + "node_modules/seed-random": { + "version": "2.2.0", + "integrity": "sha512-34EQV6AAHQGhoc0tn/96a9Fsi6v2xdqe/dMUwljGRaFOzR3EgRmECvD0O8vi8X+/uQ50LGHfkNu/Eue5TPKZkQ==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.5.3", + "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", + "license": "ISC", "dependencies": { - "glob": "^13.0.0", - "package-json-from-dist": "^1.0.1" + "lru-cache": "^6.0.0" }, "bin": { - "rimraf": "dist/esm/bin.mjs" + "semver": "bin/semver.js" }, "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=10" } }, - "node_modules/rimraf/node_modules/balanced-match": { - "version": "4.0.4", - "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", - "license": "MIT", + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, "engines": { - "node": "18 || 20 || >=22" + "node": ">=10" } }, - "node_modules/rimraf/node_modules/brace-expansion": { - "version": "5.0.3", - "integrity": "sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==", + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + }, + "node_modules/send": { + "version": "0.19.2", + "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==", "license": "MIT", "dependencies": { - "balanced-match": "^4.0.2" + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.1", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "~2.4.1", + "range-parser": "~1.2.1", + "statuses": "~2.0.2" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">= 0.8.0" } }, - "node_modules/rimraf/node_modules/glob": { - "version": "13.0.0", - "integrity": "sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==", - "license": "BlueOak-1.0.0", + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { - "minimatch": "^10.1.1", - "minipass": "^7.1.2", - "path-scurry": "^2.0.0" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "ms": "2.0.0" } }, - "node_modules/rimraf/node_modules/lru-cache": { - "version": "11.2.5", - "integrity": "sha512-vFrFJkWtJvJnD5hg+hJvVE8Lh/TcMzKnTgCWmtBipwI5yLX/iX+5UB2tfuyODF5E7k9xEzMdYgGqaSb1c0c5Yw==", - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" - } + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, - "node_modules/rimraf/node_modules/minimatch": { - "version": "10.2.2", - "integrity": "sha512-+G4CpNBxa5MprY+04MbgOw1v7So6n5JY166pFi9KfYwT78fxScCeSNQSNzp6dpPSW2rONOps6Ocam1wFhCgoVw==", - "license": "BlueOak-1.0.0", + "node_modules/serialize-javascript": { + "version": "6.0.2", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "license": "BSD-3-Clause", "dependencies": { - "brace-expansion": "^5.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "randombytes": "^2.1.0" } }, - "node_modules/rimraf/node_modules/path-scurry": { - "version": "2.0.1", - "integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==", - "license": "BlueOak-1.0.0", + "node_modules/serve-static": { + "version": "1.16.3", + "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==", + "license": "MIT", "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "~0.19.1" }, "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">= 0.8.0" } }, - "node_modules/ripemd160": { - "version": "2.0.3", - "integrity": "sha512-5Di9UC0+8h1L6ZD2d7awM7E/T4uA1fJRlx6zk/NvdCCVEoAnFqvHmCuNeIKoCeIixBX/q8uM+6ycDvF8woqosA==", - "dev": true, + "node_modules/set-blocking": { + "version": "2.0.0", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "license": "ISC" + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "license": "MIT", "dependencies": { - "hash-base": "^3.1.2", - "inherits": "^2.0.4" + "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" }, "engines": { - "node": ">= 0.8" + "node": ">= 0.4" } }, - "node_modules/ripemd160/node_modules/hash-base": { - "version": "3.1.2", - "integrity": "sha512-Bb33KbowVTIj5s7Ked1OsqHUeCpz//tPwR+E2zJgJKo9Z5XolZ9b6bdUgjmYlwnWhoOQKoTd1TYToZGn5mAYOg==", - "dev": true, + "node_modules/set-function-name": { + "version": "2.0.2", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "license": "MIT", "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^2.3.8", - "safe-buffer": "^5.2.1", - "to-buffer": "^1.2.1" + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" }, "engines": { - "node": ">= 0.8" + "node": ">= 0.4" } }, - "node_modules/ripemd160/node_modules/isarray": { + "node_modules/set-proto": { "version": "1.0.0", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/ripemd160/node_modules/readable-stream": { - "version": "2.3.8", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", "license": "MIT", "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" + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" } }, - "node_modules/ripemd160/node_modules/readable-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "node_modules/setimmediate": { + "version": "1.0.5", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", "dev": true, "license": "MIT" }, - "node_modules/ripemd160/node_modules/string_decoder": { - "version": "1.1.1", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/ripemd160/node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.1.2", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "license": "MIT" + "node_modules/setprototypeof": { + "version": "1.2.0", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" }, - "node_modules/rollup": { - "version": "4.59.0", - "integrity": "sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==", + "node_modules/sha.js": { + "version": "2.4.12", + "integrity": "sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==", "dev": true, - "license": "MIT", + "license": "(MIT AND BSD-3-Clause)", "dependencies": { - "@types/estree": "1.0.8" + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1", + "to-buffer": "^1.2.0" }, "bin": { - "rollup": "dist/bin/rollup" + "sha.js": "bin.js" }, "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" + "node": ">= 0.10" }, - "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" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/rollup-plugin-dts": { - "version": "6.3.0", - "integrity": "sha512-d0UrqxYd8KyZ6i3M2Nx7WOMy708qsV/7fTHMHxCMCBOAe3V/U7OMPu5GkX8hC+cmkHhzGnfeYongl1IgiooddA==", + "node_modules/shallow-clone": { + "version": "3.0.1", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, - "license": "LGPL-3.0-only", + "license": "MIT", "dependencies": { - "magic-string": "^0.30.21" + "kind-of": "^6.0.2" }, "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/Swatinem" - }, - "optionalDependencies": { - "@babel/code-frame": "^7.27.1" - }, - "peerDependencies": { - "rollup": "^3.29.4 || ^4", - "typescript": "^4.5 || ^5.0" + "node": ">=8" } }, - "node_modules/run-parallel": { - "version": "1.2.0", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], + "node_modules/shebang-command": { + "version": "2.0.0", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "license": "MIT", "dependencies": { - "queue-microtask": "^1.2.2" + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/rxjs": { - "version": "7.8.2", - "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.1.0" + "node_modules/shebang-regex": { + "version": "3.0.0", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/safe-array-concat": { - "version": "1.1.3", - "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", + "node_modules/shell-quote": { + "version": "1.8.3", + "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", + "dev": true, "license": "MIT", - "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" - }, "engines": { - "node": ">=0.4" + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" + "node_modules/shelljs": { + "version": "0.8.5", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" + } }, - "node_modules/safe-push-apply": { + "node_modules/shelljs/node_modules/glob": { + "version": "7.2.3", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "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" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/shx": { + "version": "0.3.4", + "integrity": "sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.3", + "shelljs": "^0.8.5" + }, + "bin": { + "shx": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { "version": "1.0.0", - "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", "license": "MIT", "dependencies": { "es-errors": "^1.3.0", - "isarray": "^2.0.5" + "object-inspect": "^1.13.3" }, "engines": { "node": ">= 0.4" @@ -16129,14 +15384,15 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/safe-regex-test": { - "version": "1.1.0", - "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "node_modules/side-channel-map": { + "version": "1.0.1", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", - "is-regex": "^1.2.1" + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" }, "engines": { "node": ">= 0.4" @@ -16145,3024 +15401,4735 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/safe-stable-stringify": { - "version": "2.5.0", - "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", - "dev": true, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", "license": "MIT", + "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" + }, "engines": { - "node": ">=10" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "node_modules/siginfo": { + "version": "2.0.0", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "license": "ISC" + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.4", + "integrity": "sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.4", + "integrity": "sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==", "license": "MIT" }, - "node_modules/saxes": { - "version": "6.0.0", - "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "xmlchars": "^2.2.0" + "semver": "^7.5.3" }, "engines": { - "node": ">=v12.22.7" + "node": ">=10" } }, - "node_modules/scheduler": { - "version": "0.20.2", - "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "node_modules/slash": { + "version": "3.0.0", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" + "engines": { + "node": ">=8" } }, - "node_modules/schema-utils": { - "version": "4.3.3", - "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", + "node_modules/slice-ansi": { + "version": "5.0.0", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", "dev": true, "license": "MIT", "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" }, "engines": { - "node": ">= 10.13.0" + "node": ">=12" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "node_modules/schema-utils/node_modules/ajv": { - "version": "8.18.0", - "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "6.2.3", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "dev": true, "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" + "engines": { + "node": ">=12" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/schema-utils/node_modules/ajv-formats": { - "version": "2.1.1", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, + "node_modules/socket.io": { + "version": "4.8.3", + "integrity": "sha512-2Dd78bqzzjE6KPkD5fHZmDAKRNe3J15q+YHDrIsy9WEkqttc7GY+kT9OBLSMaPbQaEd0x1BjcmtMtXkfpc+T5A==", "license": "MIT", "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "cors": "~2.8.5", + "debug": "~4.4.1", + "engine.io": "~6.6.0", + "socket.io-adapter": "~2.5.2", + "socket.io-parser": "~4.2.4" }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } + "engines": { + "node": ">=10.2.0" } }, - "node_modules/schema-utils/node_modules/ajv-keywords": { - "version": "5.1.0", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, + "node_modules/socket.io-adapter": { + "version": "2.5.6", + "integrity": "sha512-DkkO/dz7MGln0dHn5bmN3pPy+JmywNICWrJqVWiVOyvXjWQFIv9c2h24JrQLLFJ2aQVQf/Cvl1vblnd4r2apLQ==", "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" + "debug": "~4.4.1", + "ws": "~8.18.3" } }, - "node_modules/schema-utils/node_modules/json-schema-traverse": { - "version": "1.0.0", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true, - "license": "MIT" + "node_modules/socket.io-client": { + "version": "4.8.3", + "integrity": "sha512-uP0bpjWrjQmUt5DTHq9RuoCBdFJF10cdX9X+a368j/Ft0wmaVgxlrjvK3kjvgCODOMMOz9lcaRzxmso0bTWZ/g==", + "license": "MIT", + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.4.1", + "engine.io-client": "~6.6.1", + "socket.io-parser": "~4.2.4" + }, + "engines": { + "node": ">=10.0.0" + } }, - "node_modules/secure-compare": { - "version": "3.0.1", - "integrity": "sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==", - "dev": true, - "license": "MIT" - }, - "node_modules/seed-random": { - "version": "2.2.0", - "integrity": "sha512-34EQV6AAHQGhoc0tn/96a9Fsi6v2xdqe/dMUwljGRaFOzR3EgRmECvD0O8vi8X+/uQ50LGHfkNu/Eue5TPKZkQ==", - "license": "MIT" - }, - "node_modules/semver": { - "version": "7.5.3", - "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", - "license": "ISC", + "node_modules/socket.io-parser": { + "version": "4.2.5", + "integrity": "sha512-bPMmpy/5WWKHea5Y/jYAP6k74A+hvmRCQaJuJB6I/ML5JZq/KfNieUVo/3Mh7SAqn7TyFdIo6wqYHInG1MU1bQ==", + "license": "MIT", "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.4.1" }, "engines": { - "node": ">=10" + "node": ">=10.0.0" } }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, + "node_modules/source-map": { + "version": "0.6.1", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/semver/node_modules/yallist": { - "version": "4.0.0", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "license": "ISC" - }, - "node_modules/send": { - "version": "0.19.2", - "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "~0.5.2", - "http-errors": "~2.0.1", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "~2.4.1", - "range-parser": "~1.2.1", - "statuses": "~2.0.2" - }, + "node_modules/source-map-js": { + "version": "1.2.1", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", "engines": { - "node": ">= 0.8.0" + "node": ">=0.10.0" } }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/source-map-support": { + "version": "0.5.21", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "license": "MIT", "dependencies": { - "ms": "2.0.0" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/serialize-javascript": { - "version": "6.0.2", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } + "node_modules/spawn-command": { + "version": "0.0.2", + "integrity": "sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==", + "dev": true }, - "node_modules/serve-static": { - "version": "1.16.3", - "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==", - "license": "MIT", + "node_modules/spawn-wrap": { + "version": "2.0.0", + "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", + "license": "ISC", "dependencies": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "~0.19.1" + "foreground-child": "^2.0.0", + "is-windows": "^1.0.2", + "make-dir": "^3.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "which": "^2.0.1" }, "engines": { - "node": ">= 0.8.0" + "node": ">=8" } }, - "node_modules/set-blocking": { + "node_modules/spawn-wrap/node_modules/foreground-child": { "version": "2.0.0", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "license": "ISC" - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "license": "MIT", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "license": "ISC", "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" + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" }, "engines": { - "node": ">= 0.4" + "node": ">=8.0.0" } }, - "node_modules/set-function-name": { - "version": "2.0.2", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "license": "MIT", + "node_modules/spawn-wrap/node_modules/glob": { + "version": "7.2.3", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" + "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" }, "engines": { - "node": ">= 0.4" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/set-proto": { - "version": "1.0.0", - "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "node_modules/spawn-wrap/node_modules/make-dir": { + "version": "3.1.0", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "license": "MIT", "dependencies": { - "dunder-proto": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0" + "semver": "^6.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/setimmediate": { - "version": "1.0.5", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "dev": true, - "license": "MIT" - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "license": "ISC" - }, - "node_modules/sha.js": { - "version": "2.4.12", - "integrity": "sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==", - "dev": true, - "license": "(MIT AND BSD-3-Clause)", + "node_modules/spawn-wrap/node_modules/rimraf": { + "version": "3.0.2", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", "dependencies": { - "inherits": "^2.0.4", - "safe-buffer": "^5.2.1", - "to-buffer": "^1.2.0" + "glob": "^7.1.3" }, "bin": { - "sha.js": "bin.js" - }, - "engines": { - "node": ">= 0.10" + "rimraf": "bin.js" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "license": "MIT", + "node_modules/spawn-wrap/node_modules/semver": { + "version": "6.3.1", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/spawn-wrap/node_modules/signal-exit": { + "version": "3.0.7", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "license": "Apache-2.0", "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, - "node_modules/shebang-command": { - "version": "2.0.0", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "license": "MIT", "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "license": "MIT", - "engines": { - "node": ">=8" - } + "node_modules/spdx-license-ids": { + "version": "3.0.22", + "integrity": "sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==", + "license": "CC0-1.0" }, - "node_modules/shell-quote": { - "version": "1.8.3", - "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "node_modules/sprintf-js": { + "version": "1.0.3", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "license": "BSD-3-Clause" }, - "node_modules/shelljs": { - "version": "0.8.5", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", - "dev": true, - "license": "BSD-3-Clause", + "node_modules/stack-utils": { + "version": "2.0.6", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "license": "MIT", "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" + "escape-string-regexp": "^2.0.0" }, "engines": { - "node": ">=4" + "node": ">=10" } }, - "node_modules/shelljs/node_modules/glob": { - "version": "7.2.3", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "license": "ISC", - "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" - }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "license": "MIT", "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=8" } }, - "node_modules/shx": { - "version": "0.3.4", - "integrity": "sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==", - "dev": true, + "node_modules/stackback": { + "version": "0.0.2", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "license": "MIT" + }, + "node_modules/stackframe": { + "version": "1.3.4", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", + "license": "MIT" + }, + "node_modules/statuses": { + "version": "2.0.2", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", "license": "MIT", - "dependencies": { - "minimist": "^1.2.3", - "shelljs": "^0.8.5" - }, - "bin": { - "shx": "lib/cli.js" - }, "engines": { - "node": ">=6" + "node": ">= 0.8" } }, - "node_modules/side-channel": { + "node_modules/std-env": { + "version": "3.10.0", + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", + "license": "MIT" + }, + "node_modules/stop-iteration-iterator": { "version": "1.1.0", - "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", "license": "MIT", "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" + "internal-slot": "^1.1.0" }, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/side-channel-list": { - "version": "1.0.0", - "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "node_modules/stream-browserify": { + "version": "3.0.0", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", "license": "MIT", "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" } }, - "node_modules/side-channel-map": { - "version": "1.0.1", - "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "node_modules/stream-browserify/node_modules/readable-stream": { + "version": "3.6.2", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "license": "MIT", "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 6" } }, - "node_modules/side-channel-weakmap": { - "version": "1.0.2", - "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "node_modules/stream-chain": { + "version": "2.2.5", + "integrity": "sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/stream-http": { + "version": "3.2.0", + "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", + "dev": true, "license": "MIT", "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" + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" + } + }, + "node_modules/stream-http/node_modules/readable-stream": { + "version": "3.6.2", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 6" } }, - "node_modules/signal-exit": { - "version": "4.1.0", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node_modules/stream-json": { + "version": "1.8.0", + "integrity": "sha512-HZfXngYHUAr1exT4fxlbc1IOce1RYxp2ldeaf97LYCOPSoOqY/1Psp7iGvpb+6JIOgkra9zDYnPX01hGAHzEPw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "stream-chain": "^2.2.5" } }, - "node_modules/simple-swizzle": { - "version": "0.2.4", - "integrity": "sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==", + "node_modules/string_decoder": { + "version": "1.3.0", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "license": "MIT", "dependencies": { - "is-arrayish": "^0.3.1" + "safe-buffer": "~5.2.0" } }, - "node_modules/simple-swizzle/node_modules/is-arrayish": { - "version": "0.3.4", - "integrity": "sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==", - "license": "MIT" - }, - "node_modules/simple-update-notifier": { - "version": "2.0.0", - "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", - "dev": true, + "node_modules/string-argv": { + "version": "0.3.1", + "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", "license": "MIT", - "dependencies": { - "semver": "^7.5.3" - }, "engines": { - "node": ">=10" + "node": ">=0.6.19" } }, - "node_modules/sisteransi": { - "version": "1.0.5", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "node_modules/string-to-stream": { + "version": "3.0.1", + "integrity": "sha512-Hl092MV3USJuUCC6mfl9sPzGloA3K5VwdIeJjYIkXY/8K+mUvaeEabWJgArp+xXrsWxCajeT2pc4axbVhIZJyg==", "dev": true, - "license": "MIT" - }, - "node_modules/slash": { - "version": "3.0.0", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "readable-stream": "^3.4.0" } }, - "node_modules/slice-ansi": { - "version": "5.0.0", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "node_modules/string-to-stream/node_modules/readable-stream": { + "version": "3.6.2", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" + "node": ">= 6" } }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "6.2.3", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", - "dev": true, + "node_modules/string-width": { + "version": "4.2.3", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "license": "MIT", - "engines": { - "node": ">=12" + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "engines": { + "node": ">=8" } }, - "node_modules/socket.io": { - "version": "4.8.3", - "integrity": "sha512-2Dd78bqzzjE6KPkD5fHZmDAKRNe3J15q+YHDrIsy9WEkqttc7GY+kT9OBLSMaPbQaEd0x1BjcmtMtXkfpc+T5A==", + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "license": "MIT", "dependencies": { - "accepts": "~1.3.4", - "base64id": "~2.0.0", - "cors": "~2.8.5", - "debug": "~4.4.1", - "engine.io": "~6.6.0", - "socket.io-adapter": "~2.5.2", - "socket.io-parser": "~4.2.4" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=10.2.0" + "node": ">=8" } }, - "node_modules/socket.io-adapter": { - "version": "2.5.6", - "integrity": "sha512-DkkO/dz7MGln0dHn5bmN3pPy+JmywNICWrJqVWiVOyvXjWQFIv9c2h24JrQLLFJ2aQVQf/Cvl1vblnd4r2apLQ==", + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "license": "MIT", - "dependencies": { - "debug": "~4.4.1", - "ws": "~8.18.3" + "engines": { + "node": ">=8" } }, - "node_modules/socket.io-client": { - "version": "4.8.3", - "integrity": "sha512-uP0bpjWrjQmUt5DTHq9RuoCBdFJF10cdX9X+a368j/Ft0wmaVgxlrjvK3kjvgCODOMMOz9lcaRzxmso0bTWZ/g==", + "node_modules/string-width/node_modules/emoji-regex": { + "version": "8.0.0", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/string-width/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "license": "MIT", - "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.4.1", - "engine.io-client": "~6.6.1", - "socket.io-parser": "~4.2.4" - }, "engines": { - "node": ">=10.0.0" + "node": ">=8" } }, - "node_modules/socket.io-parser": { - "version": "4.2.5", - "integrity": "sha512-bPMmpy/5WWKHea5Y/jYAP6k74A+hvmRCQaJuJB6I/ML5JZq/KfNieUVo/3Mh7SAqn7TyFdIo6wqYHInG1MU1bQ==", + "node_modules/string.prototype.includes": { + "version": "2.0.1", + "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", + "dev": true, "license": "MIT", "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.4.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3" }, "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, - "node_modules/source-map-js": { - "version": "1.2.1", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "node_modules/string.prototype.matchall": { + "version": "4.0.12", + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", "dev": true, - "license": "BSD-3-Clause", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "regexp.prototype.flags": "^1.5.3", + "set-function-name": "^2.0.2", + "side-channel": "^1.1.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/source-map-support": { - "version": "0.5.21", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, "license": "MIT", "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" } }, - "node_modules/spawn-command": { - "version": "0.0.2", - "integrity": "sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==", - "dev": true - }, - "node_modules/spawn-wrap": { - "version": "2.0.0", - "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", - "license": "ISC", + "node_modules/string.prototype.trim": { + "version": "1.2.10", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", + "license": "MIT", "dependencies": { - "foreground-child": "^2.0.0", - "is-windows": "^1.0.2", - "make-dir": "^3.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "which": "^2.0.1" + "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" }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/spawn-wrap/node_modules/foreground-child": { - "version": "2.0.0", - "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", - "license": "ISC", + "node_modules/string.prototype.trimend": { + "version": "1.0.9", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "license": "MIT", "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { - "node": ">=8.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/spawn-wrap/node_modules/glob": { - "version": "7.2.3", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "license": "ISC", + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "license": "MIT", "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" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { - "node": "*" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/spawn-wrap/node_modules/make-dir": { - "version": "3.1.0", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "node_modules/strip-ansi": { + "version": "6.0.1", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "license": "MIT", "dependencies": { - "semver": "^6.0.0" + "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/spawn-wrap/node_modules/rimraf": { - "version": "3.0.2", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "license": "ISC", + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" + "ansi-regex": "^5.0.1" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "engines": { + "node": ">=8" } }, - "node_modules/spawn-wrap/node_modules/semver": { - "version": "6.3.1", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/spawn-wrap/node_modules/signal-exit": { - "version": "3.0.7", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "license": "ISC" - }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "license": "Apache-2.0", - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "5.0.1", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/spdx-exceptions": { - "version": "2.5.0", - "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", - "license": "CC-BY-3.0" - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "node_modules/strip-bom": { + "version": "4.0.0", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "license": "MIT", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "engines": { + "node": ">=8" } }, - "node_modules/spdx-license-ids": { - "version": "3.0.22", - "integrity": "sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==", - "license": "CC0-1.0" - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "license": "BSD-3-Clause" - }, - "node_modules/stack-utils": { - "version": "2.0.6", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "node_modules/strip-json-comments": { + "version": "3.1.1", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "license": "MIT", - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, "engines": { - "node": ">=10" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "node_modules/strip-literal": { + "version": "3.1.0", + "integrity": "sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==", + "dev": true, "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "js-tokens": "^9.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" } }, - "node_modules/stackframe": { - "version": "1.3.4", - "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", + "node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.1", + "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", + "dev": true, "license": "MIT" }, - "node_modules/statuses": { - "version": "2.0.2", - "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "node_modules/style-loader": { + "version": "3.3.4", + "integrity": "sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" } }, - "node_modules/stop-iteration-iterator": { - "version": "1.1.0", - "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "node_modules/supports-color": { + "version": "8.1.1", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "license": "MIT", "dependencies": { - "es-errors": "^1.3.0", - "internal-slot": "^1.1.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 0.4" - } - }, - "node_modules/stream-browserify": { - "version": "3.0.0", - "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", - "license": "MIT", - "dependencies": { - "inherits": "~2.0.4", - "readable-stream": "^3.5.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/stream-browserify/node_modules/readable-stream": { - "version": "3.6.2", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, "engines": { - "node": ">= 6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/stream-chain": { - "version": "2.2.5", - "integrity": "sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/stream-http": { - "version": "3.2.0", - "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", - "dev": true, + "node_modules/symbol-tree": { + "version": "3.2.4", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "license": "MIT", - "dependencies": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "xtend": "^4.0.2" - } + "optional": true, + "peer": true }, - "node_modules/stream-http/node_modules/readable-stream": { - "version": "3.6.2", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, + "node_modules/syncpack": { + "version": "14.0.0", + "integrity": "sha512-OfAa3Oip5YC9Ad1jEs92Hw08Wy4JfdpdeequIwaJGsQG0tJtb8gpQfCdLuBefsk6n8WiUdt/5qmzcW+BDXtzbQ==", "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "bin": { + "syncpack": "index.cjs" }, "engines": { - "node": ">= 6" - } - }, - "node_modules/stream-json": { - "version": "1.8.0", - "integrity": "sha512-HZfXngYHUAr1exT4fxlbc1IOce1RYxp2ldeaf97LYCOPSoOqY/1Psp7iGvpb+6JIOgkra9zDYnPX01hGAHzEPw==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "stream-chain": "^2.2.5" + "node": ">=14.17.0" + }, + "funding": { + "url": "https://github.com/sponsors/JamieMason" + }, + "optionalDependencies": { + "syncpack-darwin-arm64": "14.0.0", + "syncpack-darwin-x64": "14.0.0", + "syncpack-linux-arm64": "14.0.0", + "syncpack-linux-arm64-musl": "14.0.0", + "syncpack-linux-x64": "14.0.0", + "syncpack-linux-x64-musl": "14.0.0", + "syncpack-windows-arm64": "14.0.0", + "syncpack-windows-x64": "14.0.0" } }, - "node_modules/string_decoder": { - "version": "1.3.0", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "node_modules/syncpack-darwin-arm64": { + "version": "14.0.0", + "integrity": "sha512-mEcku9YkOHfM6JOxhq9McgeLvd4djsJvRwNONZXHeoJ6+yqC96DdxZwFjkw3e8Vn95wsxsrwY5ZjMExs5Gbacw==", + "cpu": [ + "arm64" + ], "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://github.com/sponsors/JamieMason" } }, - "node_modules/string-argv": { - "version": "0.3.1", - "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", + "node_modules/syncpack-darwin-x64": { + "version": "14.0.0", + "integrity": "sha512-qSj3bT3SIZA5NLM5PNVeExapyOrdmptlGSMu0SLVHj9hata/Vqh3xWgwq7wB9uajmlrHljeJ84R/NKAHyzFewA==", + "cpu": [ + "x64" + ], "license": "MIT", - "engines": { - "node": ">=0.6.19" + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://github.com/sponsors/JamieMason" } }, - "node_modules/string-length": { - "version": "4.0.2", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, + "node_modules/syncpack-linux-arm64": { + "version": "14.0.0", + "integrity": "sha512-votlkb4P/0Bxd9yhBWCSUOjZwaii+LfFn1tZZVN5dfs8qcjcLeqfdG5zbnlJSzZhS3T+BfzejFW+Z95OxZag0A==", + "cpu": [ + "arm64" + ], "license": "MIT", - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://github.com/sponsors/JamieMason" } }, - "node_modules/string-to-stream": { - "version": "3.0.1", - "integrity": "sha512-Hl092MV3USJuUCC6mfl9sPzGloA3K5VwdIeJjYIkXY/8K+mUvaeEabWJgArp+xXrsWxCajeT2pc4axbVhIZJyg==", - "dev": true, + "node_modules/syncpack-linux-arm64-musl": { + "version": "14.0.0", + "integrity": "sha512-i57Chz0tHP7ybKElPLhoygl6Cab1fxyUKS9xRgezX5NDrNxKUgrvqBfYd7288/QKB4C8+IcYHugFPjZjoFlAIA==", + "cpu": [ + "arm64" + ], "license": "MIT", - "dependencies": { - "readable-stream": "^3.4.0" + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://github.com/sponsors/JamieMason" } }, - "node_modules/string-to-stream/node_modules/readable-stream": { - "version": "3.6.2", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, + "node_modules/syncpack-linux-x64": { + "version": "14.0.0", + "integrity": "sha512-sZGy4+uL+P/+nI0yc9jwW/R22u9lw0+NXDYC/9ts9eYiWFyO4+luOeosvVKbED1OavUp/GQJqNV+9KHjMwq0Fw==", + "cpu": [ + "x64" + ], "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://github.com/sponsors/JamieMason" } }, - "node_modules/string-width": { - "version": "4.2.3", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/syncpack-linux-x64-musl": { + "version": "14.0.0", + "integrity": "sha512-RKyp+29UlLGE8oYkd3UfwgjWUHN4dLHDyarv0dS6gWVpWM6qHtHS339KBc9JcIS7FD1vNGnQ3GmSaAodxDlkMA==", + "cpu": [ + "x64" + ], "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://github.com/sponsors/JamieMason" } }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/syncpack-windows-arm64": { + "version": "14.0.0", + "integrity": "sha512-aNtr0F6HkA7M0azDuDkt//DlPWlplFa4kmvHXirwDmJQ9u3SAvN3ZItW4ZYS96ZbiV1DgO15jIKBI7rDkzcwrQ==", + "cpu": [ + "arm64" + ], "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" + "optional": true, + "os": [ + "win32" + ], + "funding": { + "url": "https://github.com/sponsors/JamieMason" } }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/syncpack-windows-x64": { + "version": "14.0.0", + "integrity": "sha512-usMH61wlonssfh2Q8SJDiiAcsXVzuPzRl8XdHqdavR3XeCSGBIW9ieJpPfiKvDPWslekufWD+GhLNoH+8vV0Cg==", + "cpu": [ + "x64" + ], "license": "MIT", - "engines": { - "node": ">=8" + "optional": true, + "os": [ + "win32" + ], + "funding": { + "url": "https://github.com/sponsors/JamieMason" } }, - "node_modules/string-width/node_modules/emoji-regex": { - "version": "8.0.0", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "node_modules/systemjs": { + "version": "6.15.1", + "integrity": "sha512-Nk8c4lXvMB98MtbmjX7JwJRgJOL8fluecYCfCeYBznwmpOs8Bf15hLM6z4z71EDAhQVrQrI+wt1aLWSXZq+hXA==", + "dev": true, "license": "MIT" }, - "node_modules/string-width/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/string.prototype.includes": { - "version": "2.0.1", - "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", + "node_modules/table-layout": { + "version": "4.1.1", + "integrity": "sha512-iK5/YhZxq5GO5z8wb0bY1317uDF3Zjpha0QFFLA8/trAoiLbQD0HUbMesEaxyzUgDxi2QlcbM8IvqOlEjgoXBA==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.3" + "array-back": "^6.2.2", + "wordwrapjs": "^5.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=12.17" } }, - "node_modules/string.prototype.matchall": { - "version": "4.0.12", - "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", + "node_modules/table-layout/node_modules/array-back": { + "version": "6.2.2", + "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", "dev": true, "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.6", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.6", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "internal-slot": "^1.1.0", - "regexp.prototype.flags": "^1.5.3", - "set-function-name": "^2.0.2", - "side-channel": "^1.1.0" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=12.17" } }, - "node_modules/string.prototype.repeat": { - "version": "1.0.0", - "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "node_modules/tapable": { + "version": "2.3.0", + "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", "dev": true, "license": "MIT", - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "node_modules/string.prototype.trim": { - "version": "1.2.10", - "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", - "license": "MIT", + "node_modules/terser": { + "version": "5.46.0", + "integrity": "sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==", + "devOptional": true, + "license": "BSD-2-Clause", "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" + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.15.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" }, - "engines": { - "node": ">= 0.4" + "bin": { + "terser": "bin/terser" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=10" } }, - "node_modules/string.prototype.trimend": { - "version": "1.0.9", - "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "node_modules/terser-webpack-plugin": { + "version": "5.3.16", + "integrity": "sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q==", + "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" + "@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" }, "engines": { - "node": ">= 0.4" + "node": ">= 10.13.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } } }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.8", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "node_modules/terser-webpack-plugin/node_modules/jest-worker": { + "version": "27.5.1", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 10.13.0" } }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "license": "ISC", "dependencies": { - "ansi-regex": "^5.0.1" + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" }, "engines": { "node": ">=8" } }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", + "node_modules/test-exclude/node_modules/glob": { + "version": "7.2.3", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", "dependencies": { - "ansi-regex": "^5.0.1" + "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" }, "engines": { - "node": ">=8" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "node_modules/thenify": { + "version": "3.3.1", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "any-promise": "^1.0.0" } }, - "node_modules/strip-ansi/node_modules/ansi-regex": { - "version": "5.0.1", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "node_modules/thenify-all": { + "version": "1.6.0", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, "engines": { - "node": ">=8" + "node": ">=0.8" } }, - "node_modules/strip-bom": { - "version": "4.0.0", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "node_modules/timers-browserify": { + "version": "2.0.12", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dev": true, "license": "MIT", + "dependencies": { + "setimmediate": "^1.0.4" + }, "engines": { - "node": ">=8" + "node": ">=0.6.0" } }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "node_modules/tiny-case": { + "version": "1.0.3", + "integrity": "sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==", + "license": "MIT" + }, + "node_modules/tiny-inflate": { + "version": "1.0.3", + "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } + "license": "MIT" }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "node_modules/tiny-warning": { + "version": "1.0.3", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinybench": { + "version": "2.9.0", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "0.3.2", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, "engines": { - "node": ">=8" + "node": ">=12.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/SuperchupuDev" } }, - "node_modules/style-loader": { - "version": "3.3.4", - "integrity": "sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==", - "dev": true, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "license": "MIT", "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "node": ">=12.0.0" }, "peerDependencies": { - "webpack": "^5.0.0" + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } } }, - "node_modules/supports-color": { - "version": "8.1.1", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.3", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "node_modules/tinypool": { + "version": "1.1.1", + "integrity": "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==", "license": "MIT", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^18.0.0 || >=20.0.0" } }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true, - "license": "MIT" - }, - "node_modules/syncpack": { - "version": "14.0.0", - "integrity": "sha512-OfAa3Oip5YC9Ad1jEs92Hw08Wy4JfdpdeequIwaJGsQG0tJtb8gpQfCdLuBefsk6n8WiUdt/5qmzcW+BDXtzbQ==", + "node_modules/tinyrainbow": { + "version": "1.2.0", + "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==", "license": "MIT", - "bin": { - "syncpack": "index.cjs" - }, "engines": { - "node": ">=14.17.0" - }, - "funding": { - "url": "https://github.com/sponsors/JamieMason" - }, - "optionalDependencies": { - "syncpack-darwin-arm64": "14.0.0", - "syncpack-darwin-x64": "14.0.0", - "syncpack-linux-arm64": "14.0.0", - "syncpack-linux-arm64-musl": "14.0.0", - "syncpack-linux-x64": "14.0.0", - "syncpack-linux-x64-musl": "14.0.0", - "syncpack-windows-arm64": "14.0.0", - "syncpack-windows-x64": "14.0.0" + "node": ">=14.0.0" } }, - "node_modules/syncpack-darwin-arm64": { - "version": "14.0.0", - "integrity": "sha512-mEcku9YkOHfM6JOxhq9McgeLvd4djsJvRwNONZXHeoJ6+yqC96DdxZwFjkw3e8Vn95wsxsrwY5ZjMExs5Gbacw==", - "cpu": [ - "arm64" - ], + "node_modules/tinyspy": { + "version": "3.0.2", + "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==", "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "funding": { - "url": "https://github.com/sponsors/JamieMason" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/syncpack-darwin-x64": { - "version": "14.0.0", - "integrity": "sha512-qSj3bT3SIZA5NLM5PNVeExapyOrdmptlGSMu0SLVHj9hata/Vqh3xWgwq7wB9uajmlrHljeJ84R/NKAHyzFewA==", - "cpu": [ - "x64" - ], + "node_modules/tmp": { + "version": "0.2.5", + "integrity": "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==", "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "funding": { - "url": "https://github.com/sponsors/JamieMason" + "engines": { + "node": ">=14.14" } }, - "node_modules/syncpack-linux-arm64": { - "version": "14.0.0", - "integrity": "sha512-votlkb4P/0Bxd9yhBWCSUOjZwaii+LfFn1tZZVN5dfs8qcjcLeqfdG5zbnlJSzZhS3T+BfzejFW+Z95OxZag0A==", - "cpu": [ - "arm64" - ], + "node_modules/to-buffer": { + "version": "1.2.2", + "integrity": "sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==", + "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://github.com/sponsors/JamieMason" + "dependencies": { + "isarray": "^2.0.5", + "safe-buffer": "^5.2.1", + "typed-array-buffer": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" } }, - "node_modules/syncpack-linux-arm64-musl": { - "version": "14.0.0", - "integrity": "sha512-i57Chz0tHP7ybKElPLhoygl6Cab1fxyUKS9xRgezX5NDrNxKUgrvqBfYd7288/QKB4C8+IcYHugFPjZjoFlAIA==", - "cpu": [ - "arm64" - ], + "node_modules/to-regex-range": { + "version": "5.0.1", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://github.com/sponsors/JamieMason" + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" } }, - "node_modules/syncpack-linux-x64": { - "version": "14.0.0", - "integrity": "sha512-sZGy4+uL+P/+nI0yc9jwW/R22u9lw0+NXDYC/9ts9eYiWFyO4+luOeosvVKbED1OavUp/GQJqNV+9KHjMwq0Fw==", - "cpu": [ - "x64" - ], + "node_modules/toidentifier": { + "version": "1.0.1", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://github.com/sponsors/JamieMason" + "engines": { + "node": ">=0.6" } }, - "node_modules/syncpack-linux-x64-musl": { - "version": "14.0.0", - "integrity": "sha512-RKyp+29UlLGE8oYkd3UfwgjWUHN4dLHDyarv0dS6gWVpWM6qHtHS339KBc9JcIS7FD1vNGnQ3GmSaAodxDlkMA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://github.com/sponsors/JamieMason" - } + "node_modules/toposort": { + "version": "2.0.2", + "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==", + "license": "MIT" }, - "node_modules/syncpack-windows-arm64": { - "version": "14.0.0", - "integrity": "sha512-aNtr0F6HkA7M0azDuDkt//DlPWlplFa4kmvHXirwDmJQ9u3SAvN3ZItW4ZYS96ZbiV1DgO15jIKBI7rDkzcwrQ==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "funding": { - "url": "https://github.com/sponsors/JamieMason" + "node_modules/touch": { + "version": "3.1.1", + "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", + "dev": true, + "license": "ISC", + "bin": { + "nodetouch": "bin/nodetouch.js" } }, - "node_modules/syncpack-windows-x64": { - "version": "14.0.0", - "integrity": "sha512-usMH61wlonssfh2Q8SJDiiAcsXVzuPzRl8XdHqdavR3XeCSGBIW9ieJpPfiKvDPWslekufWD+GhLNoH+8vV0Cg==", - "cpu": [ - "x64" - ], - "license": "MIT", + "node_modules/tough-cookie": { + "version": "4.1.4", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "license": "BSD-3-Clause", "optional": true, - "os": [ - "win32" - ], - "funding": { - "url": "https://github.com/sponsors/JamieMason" + "peer": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" } }, - "node_modules/systemjs": { - "version": "6.15.1", - "integrity": "sha512-Nk8c4lXvMB98MtbmjX7JwJRgJOL8fluecYCfCeYBznwmpOs8Bf15hLM6z4z71EDAhQVrQrI+wt1aLWSXZq+hXA==", + "node_modules/tr46": { + "version": "0.0.3", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "dev": true, "license": "MIT" }, - "node_modules/table-layout": { - "version": "4.1.1", - "integrity": "sha512-iK5/YhZxq5GO5z8wb0bY1317uDF3Zjpha0QFFLA8/trAoiLbQD0HUbMesEaxyzUgDxi2QlcbM8IvqOlEjgoXBA==", + "node_modules/tree-kill": { + "version": "1.2.2", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", "dev": true, "license": "MIT", - "dependencies": { - "array-back": "^6.2.2", - "wordwrapjs": "^5.1.0" - }, - "engines": { - "node": ">=12.17" + "bin": { + "tree-kill": "cli.js" } }, - "node_modules/table-layout/node_modules/array-back": { - "version": "6.2.2", - "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", - "dev": true, + "node_modules/trough": { + "version": "1.0.5", + "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", "license": "MIT", - "engines": { - "node": ">=12.17" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/tapable": { - "version": "2.3.0", - "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", - "dev": true, + "node_modules/ts-api-utils": { + "version": "2.4.0", + "integrity": "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==", "license": "MIT", "engines": { - "node": ">=6" + "node": ">=18.12" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "peerDependencies": { + "typescript": ">=4.8.4" } }, - "node_modules/terser": { - "version": "5.46.0", - "integrity": "sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==", + "node_modules/ts-dedent": { + "version": "2.2.0", + "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==", + "license": "MIT", + "engines": { + "node": ">=6.10" + } + }, + "node_modules/ts-loader": { + "version": "9.5.4", + "integrity": "sha512-nCz0rEwunlTZiy6rXFByQU1kVVpCIgUpc/psFiKVrUwrizdnIbRFu8w7bxhUF0X613DYwT4XzrZHpVyMe758hQ==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.15.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4", + "source-map": "^0.7.4" }, - "bin": { - "terser": "bin/terser" + "engines": { + "node": ">=12.0.0" }, + "peerDependencies": { + "typescript": "*", + "webpack": "^5.0.0" + } + }, + "node_modules/ts-loader/node_modules/source-map": { + "version": "0.7.6", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "dev": true, + "license": "BSD-3-Clause", "engines": { - "node": ">=10" + "node": ">= 12" } }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.16", - "integrity": "sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q==", + "node_modules/ts-morph": { + "version": "24.0.0", + "integrity": "sha512-2OAOg/Ob5yx9Et7ZX4CvTCc0UFoZHwLEJ+dpDPSUi5TgwwlTlX47w+iFRrEwzUZwYACjq83cgjS/Da50Ga37uw==", "dev": true, "license": "MIT", "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" - }, - "engines": { - "node": ">= 10.13.0" + "@ts-morph/common": "~0.25.0", + "code-block-writer": "^13.0.3" + } + }, + "node_modules/ts-node": { + "version": "10.9.2", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "license": "MIT", + "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" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "bin": { + "ts-node": "dist/bin.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", + "ts-script": "dist/bin-script-deprecated.js" }, "peerDependencies": { - "webpack": "^5.1.0" + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" }, "peerDependenciesMeta": { "@swc/core": { "optional": true }, - "esbuild": { - "optional": true - }, - "uglify-js": { + "@swc/wasm": { "optional": true } } }, - "node_modules/terser-webpack-plugin/node_modules/jest-worker": { - "version": "27.5.1", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "license": "MIT", "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" } }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "license": "ISC", + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "license": "MIT", "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" + "minimist": "^1.2.0" }, - "engines": { - "node": ">=8" + "bin": { + "json5": "lib/cli.js" } }, - "node_modules/test-exclude/node_modules/glob": { - "version": "7.2.3", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "license": "ISC", - "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" - }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "license": "MIT", "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=4" } }, - "node_modules/thenify": { - "version": "3.3.1", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "node_modules/tslib": { + "version": "2.8.1", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/tsx": { + "version": "4.21.0", + "integrity": "sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==", "license": "MIT", "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "license": "MIT", - "dependencies": { - "thenify": ">= 3.1.0 < 4" + "esbuild": "~0.27.0", + "get-tsconfig": "^4.7.5" + }, + "bin": { + "tsx": "dist/cli.mjs" }, "engines": { - "node": ">=0.8" + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" } }, - "node_modules/timers-browserify": { - "version": "2.0.12", - "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "node_modules/tty-browserify": { + "version": "0.0.1", + "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", "dev": true, + "license": "MIT" + }, + "node_modules/type-check": { + "version": "0.4.0", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "license": "MIT", "dependencies": { - "setimmediate": "^1.0.4" + "prelude-ls": "^1.2.1" }, "engines": { - "node": ">=0.6.0" + "node": ">= 0.8.0" } }, - "node_modules/tiny-case": { - "version": "1.0.3", - "integrity": "sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==", - "license": "MIT" - }, - "node_modules/tiny-inflate": { - "version": "1.0.3", - "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==", - "dev": true, - "license": "MIT" - }, - "node_modules/tiny-warning": { - "version": "1.0.3", - "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", - "dev": true, - "license": "MIT" + "node_modules/type-detect": { + "version": "4.0.8", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "license": "MIT", + "engines": { + "node": ">=4" + } }, - "node_modules/tinyexec": { - "version": "0.3.2", - "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", - "dev": true, - "license": "MIT" + "node_modules/type-fest": { + "version": "4.41.0", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/tinyglobby": { - "version": "0.2.15", - "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "node_modules/type-is": { + "version": "1.6.18", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "license": "MIT", "dependencies": { - "fdir": "^6.5.0", - "picomatch": "^4.0.3" + "media-typer": "0.3.0", + "mime-types": "~2.1.24" }, "engines": { - "node": ">=12.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/SuperchupuDev" + "node": ">= 0.6" } }, - "node_modules/tinyglobby/node_modules/fdir": { - "version": "6.5.0", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", "license": "MIT", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } + "engines": { + "node": ">= 0.4" } }, - "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.3", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", "license": "MIT", + "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" + }, "engines": { - "node": ">=12" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/tmp": { - "version": "0.2.5", - "integrity": "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==", + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", "license": "MIT", + "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" + }, "engines": { - "node": ">=14.14" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/tmpl": { - "version": "1.0.5", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/to-buffer": { - "version": "1.2.2", - "integrity": "sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==", - "dev": true, + "node_modules/typed-array-length": { + "version": "1.0.7", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", "license": "MIT", "dependencies": { - "isarray": "^2.0.5", - "safe-buffer": "^5.2.1", - "typed-array-buffer": "^1.0.3" + "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" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", "license": "MIT", "dependencies": { - "is-number": "^7.0.0" + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" }, "engines": { - "node": ">=8.0" + "node": ">=14.17" } }, - "node_modules/toidentifier": { - "version": "1.0.1", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "node_modules/typescript-eslint": { + "version": "8.56.0", + "integrity": "sha512-c7toRLrotJ9oixgdW7liukZpsnq5CZ7PuKztubGYlNppuTqhIoWfhgHo/7EU0v06gS2l/x0i2NEFK1qMIf0rIg==", + "dev": true, "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.56.0", + "@typescript-eslint/parser": "8.56.0", + "@typescript-eslint/typescript-estree": "8.56.0", + "@typescript-eslint/utils": "8.56.0" + }, "engines": { - "node": ">=0.6" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.0.0" } }, - "node_modules/toposort": { - "version": "2.0.2", - "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==", - "license": "MIT" - }, - "node_modules/touch": { - "version": "3.1.1", - "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", + "node_modules/typical": { + "version": "4.0.0", + "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", "dev": true, - "license": "ISC", - "bin": { - "nodetouch": "bin/nodetouch.js" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/tough-cookie": { - "version": "4.1.4", - "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", - "dev": true, - "license": "BSD-3-Clause", + "node_modules/unbox-primitive": { + "version": "1.1.0", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "license": "MIT", "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" }, "engines": { - "node": ">=6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/tr46": { - "version": "0.0.3", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "node_modules/undefsafe": { + "version": "2.0.5", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", "dev": true, "license": "MIT" }, - "node_modules/tree-kill": { - "version": "1.2.2", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "node_modules/undici": { + "version": "5.29.0", + "integrity": "sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==", "dev": true, "license": "MIT", - "bin": { - "tree-kill": "cli.js" + "dependencies": { + "@fastify/busboy": "^2.0.0" + }, + "engines": { + "node": ">=14.0" } }, - "node_modules/trough": { - "version": "1.0.5", - "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", + "node_modules/undici-types": { + "version": "6.21.0", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "license": "MIT" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "dev": true, "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "engines": { + "node": ">=4" } }, - "node_modules/ts-api-utils": { - "version": "2.4.0", - "integrity": "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==", + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, "license": "MIT", - "engines": { - "node": ">=18.12" + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" }, - "peerDependencies": { - "typescript": ">=4.8.4" + "engines": { + "node": ">=4" } }, - "node_modules/ts-dedent": { - "version": "2.2.0", - "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==", + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.2.1", + "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==", + "dev": true, "license": "MIT", "engines": { - "node": ">=6.10" + "node": ">=4" } }, - "node_modules/ts-essentials": { - "version": "7.0.3", - "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==", + "node_modules/unicode-properties": { + "version": "1.4.1", + "integrity": "sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg==", "dev": true, "license": "MIT", - "peerDependencies": { - "typescript": ">=3.7.0" + "dependencies": { + "base64-js": "^1.3.0", + "unicode-trie": "^2.0.0" } }, - "node_modules/ts-jest": { - "version": "29.2.5", - "integrity": "sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA==", + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.2.0", + "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==", "dev": true, "license": "MIT", - "dependencies": { - "bs-logger": "^0.2.6", - "ejs": "^3.1.10", - "fast-json-stable-stringify": "^2.1.0", - "jest-util": "^29.0.0", - "json5": "^2.2.3", - "lodash.memoize": "^4.1.2", - "make-error": "^1.3.6", - "semver": "^7.6.3", - "yargs-parser": "^21.1.1" - }, - "bin": { - "ts-jest": "cli.js" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" - }, - "peerDependencies": { - "@babel/core": ">=7.0.0-beta.0 <8", - "@jest/transform": "^29.0.0", - "@jest/types": "^29.0.0", - "babel-jest": "^29.0.0", - "jest": "^29.0.0", - "typescript": ">=4.3 <6" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "@jest/transform": { - "optional": true - }, - "@jest/types": { - "optional": true - }, - "babel-jest": { - "optional": true - }, - "esbuild": { - "optional": true - } + "node": ">=4" } }, - "node_modules/ts-jest/node_modules/semver": { - "version": "7.7.3", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "node_modules/unicode-trie": { + "version": "2.0.0", + "integrity": "sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "license": "MIT", + "dependencies": { + "pako": "^0.2.5", + "tiny-inflate": "^1.0.0" } }, - "node_modules/ts-loader": { - "version": "9.5.4", - "integrity": "sha512-nCz0rEwunlTZiy6rXFByQU1kVVpCIgUpc/psFiKVrUwrizdnIbRFu8w7bxhUF0X613DYwT4XzrZHpVyMe758hQ==", + "node_modules/unicode-trie/node_modules/pako": { + "version": "0.2.9", + "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==", "dev": true, + "license": "MIT" + }, + "node_modules/unified": { + "version": "9.2.2", + "integrity": "sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==", "license": "MIT", "dependencies": { - "chalk": "^4.1.0", - "enhanced-resolve": "^5.0.0", - "micromatch": "^4.0.0", - "semver": "^7.3.4", - "source-map": "^0.7.4" - }, - "engines": { - "node": ">=12.0.0" + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^2.0.0", + "trough": "^1.0.0", + "vfile": "^4.0.0" }, - "peerDependencies": { - "typescript": "*", - "webpack": "^5.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/ts-loader/node_modules/source-map": { - "version": "0.7.6", - "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "node_modules/union": { + "version": "0.5.0", + "integrity": "sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==", "dev": true, - "license": "BSD-3-Clause", + "dependencies": { + "qs": "^6.4.0" + }, "engines": { - "node": ">= 12" + "node": ">= 0.8.0" } }, - "node_modules/ts-morph": { - "version": "24.0.0", - "integrity": "sha512-2OAOg/Ob5yx9Et7ZX4CvTCc0UFoZHwLEJ+dpDPSUi5TgwwlTlX47w+iFRrEwzUZwYACjq83cgjS/Da50Ga37uw==", - "dev": true, + "node_modules/unist-util-is": { + "version": "4.1.0", + "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", "license": "MIT", - "dependencies": { - "@ts-morph/common": "~0.25.0", - "code-block-writer": "^13.0.3" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/ts-node": { - "version": "10.9.2", - "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "node_modules/unist-util-stringify-position": { + "version": "2.0.3", + "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", "license": "MIT", "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" - }, - "bin": { - "ts-node": "dist/bin.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", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" + "@types/unist": "^2.0.2" }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/tsconfig-paths": { - "version": "3.15.0", - "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "node_modules/unist-util-visit": { + "version": "2.0.3", + "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", "license": "MIT", "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0", + "unist-util-visit-parents": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.2", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "node_modules/unist-util-visit-parents": { + "version": "1.1.2", + "integrity": "sha512-yvo+MMLjEwdc3RhhPYSximset7rwjMrdt9E41Smmvg25UQIenzrN83cRnF1JMzoMi9zZOQeYXHSDf7p+IQkW3Q==", + "license": "MIT" + }, + "node_modules/unist-util-visit/node_modules/unist-util-visit-parents": { + "version": "3.1.1", + "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", "license": "MIT", "dependencies": { - "minimist": "^1.2.0" + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0" }, - "bin": { - "json5": "lib/cli.js" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "node_modules/universalify": { + "version": "0.2.0", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", "license": "MIT", + "optional": true, + "peer": true, "engines": { - "node": ">=4" + "node": ">= 4.0.0" } }, - "node_modules/tslib": { - "version": "2.8.1", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, - "node_modules/tsx": { - "version": "4.21.0", - "integrity": "sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==", + "node_modules/unpipe": { + "version": "1.0.0", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", "dependencies": { - "esbuild": "~0.27.0", - "get-tsconfig": "^4.7.5" + "escalade": "^3.2.0", + "picocolors": "^1.1.1" }, "bin": { - "tsx": "dist/cli.mjs" - }, - "engines": { - "node": ">=18.0.0" + "update-browserslist-db": "cli.js" }, - "optionalDependencies": { - "fsevents": "~2.3.3" + "peerDependencies": { + "browserslist": ">= 4.21.0" } }, - "node_modules/tty-browserify": { - "version": "0.0.1", - "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", + "node_modules/upper-case-first": { + "version": "2.0.2", + "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/urijs": { + "version": "1.19.11", + "integrity": "sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==", "dev": true, "license": "MIT" }, - "node_modules/type-check": { - "version": "0.4.0", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "node_modules/url": { + "version": "0.11.4", + "integrity": "sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==", + "dev": true, "license": "MIT", "dependencies": { - "prelude-ls": "^1.2.1" + "punycode": "^1.4.1", + "qs": "^6.12.3" }, "engines": { - "node": ">= 0.8.0" + "node": ">= 0.4" } }, - "node_modules/type-detect": { - "version": "4.0.8", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "node_modules/url-join": { + "version": "4.0.1", + "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", + "dev": true, + "license": "MIT" + }, + "node_modules/url-parse": { + "version": "1.5.10", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", "license": "MIT", - "engines": { - "node": ">=4" + "optional": true, + "peer": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" } }, - "node_modules/type-fest": { - "version": "4.41.0", - "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/url/node_modules/punycode": { + "version": "1.4.1", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true, + "license": "MIT" }, - "node_modules/type-is": { - "version": "1.6.18", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "node_modules/util": { + "version": "0.12.5", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", "license": "MIT", "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, + "node_modules/util-arity": { + "version": "1.1.0", + "integrity": "sha512-kkyIsXKwemfSy8ZEoaIz06ApApnWsk5hQO0vLjZS6UkBiGiW++Jsyb8vSBoc0WKlffGoGs5yYy/j5pp8zckrFA==", + "license": "MIT" + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">= 0.4.0" } }, - "node_modules/typed-array-buffer": { - "version": "1.0.3", - "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "node_modules/uuid": { + "version": "9.0.1", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "license": "MIT" + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "license": "Apache-2.0", "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.14" - }, + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vanilla-picker": { + "version": "2.12.3", + "integrity": "sha512-qVkT1E7yMbUsB2mmJNFmaXMWE2hF8ffqzMMwe9zdAikd8u2VfnsVY2HQcOUi2F38bgbxzlJBEdS1UUhOXdF9GQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@sphinxxxx/color-conversion": "^2.2.2" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">= 0.8" } }, - "node_modules/typed-array-byte-length": { - "version": "1.0.3", - "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "node_modules/vfile": { + "version": "4.2.1", + "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", "license": "MIT", "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" - }, - "engines": { - "node": ">= 0.4" + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^2.0.0", + "vfile-message": "^2.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.4", - "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "node_modules/vfile-message": { + "version": "2.0.4", + "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", "license": "MIT", "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" - }, - "engines": { - "node": ">= 0.4" + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/typed-array-length": { - "version": "1.0.7", - "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "node_modules/vite": { + "version": "6.4.1", + "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==", + "dev": true, "license": "MIT", "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" + "esbuild": "^0.25.0", + "fdir": "^6.4.4", + "picomatch": "^4.0.2", + "postcss": "^8.5.3", + "rollup": "^4.34.9", + "tinyglobby": "^0.2.13" + }, + "bin": { + "vite": "bin/vite.js" }, "engines": { - "node": ">= 0.4" + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } } }, - "node_modules/typescript": { - "version": "5.9.3", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" + "node_modules/vite-express": { + "version": "0.15.0", + "integrity": "sha512-g5CIiUrip9t3LVgO0v0G+rB7HbtQL6oouyRAGeahHt7lDdJYxiURBdAkOYlOexoCLs6PZQRzbIwaT9BNPjCz6g==", + "license": "MIT", + "dependencies": { + "picocolors": "^1.0.0" } }, - "node_modules/typescript-eslint": { - "version": "8.56.0", - "integrity": "sha512-c7toRLrotJ9oixgdW7liukZpsnq5CZ7PuKztubGYlNppuTqhIoWfhgHo/7EU0v06gS2l/x0i2NEFK1qMIf0rIg==", - "dev": true, + "node_modules/vite-node": { + "version": "2.1.9", + "integrity": "sha512-AM9aQ/IPrW/6ENLQg3AGY4K1N2TGZdR5e4gu/MmmR2xR3Ll1+dib+nook92g4TV3PXVyeyxdWwtaCAiUL0hMxA==", "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.56.0", - "@typescript-eslint/parser": "8.56.0", - "@typescript-eslint/typescript-estree": "8.56.0", - "@typescript-eslint/utils": "8.56.0" + "cac": "^6.7.14", + "debug": "^4.3.7", + "es-module-lexer": "^1.5.4", + "pathe": "^1.1.2", + "vite": "^5.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^18.0.0 || >=20.0.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.0.0" + "url": "https://opencollective.com/vitest" } }, - "node_modules/typical": { - "version": "4.0.0", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", - "dev": true, + "node_modules/vite-node/node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "peer": true, "engines": { - "node": ">=8" + "node": ">=12" } }, - "node_modules/unbox-primitive": { - "version": "1.1.0", - "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "node_modules/vite-node/node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-bigints": "^1.0.2", - "has-symbols": "^1.1.0", - "which-boxed-primitive": "^1.1.1" - }, + "optional": true, + "os": [ + "android" + ], + "peer": true, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=12" } }, - "node_modules/undefsafe": { - "version": "2.0.5", - "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", - "dev": true, - "license": "MIT" - }, - "node_modules/undici": { - "version": "5.29.0", - "integrity": "sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==", - "dev": true, + "node_modules/vite-node/node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], "license": "MIT", - "dependencies": { - "@fastify/busboy": "^2.0.0" - }, + "optional": true, + "os": [ + "android" + ], + "peer": true, "engines": { - "node": ">=14.0" + "node": ">=12" } }, - "node_modules/undici-types": { - "version": "6.21.0", - "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", - "license": "MIT" - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.1", - "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", - "dev": true, + "node_modules/vite-node/node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "peer": true, "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, + "node_modules/vite-node/node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], "license": "MIT", - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, + "optional": true, + "os": [ + "darwin" + ], + "peer": true, "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.2.1", - "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==", - "dev": true, + "node_modules/vite-node/node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/unicode-properties": { - "version": "1.4.1", - "integrity": "sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg==", - "dev": true, + "node_modules/vite-node/node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], "license": "MIT", - "dependencies": { - "base64-js": "^1.3.0", - "unicode-trie": "^2.0.0" + "optional": true, + "os": [ + "freebsd" + ], + "peer": true, + "engines": { + "node": ">=12" } }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.2.0", - "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==", - "dev": true, + "node_modules/vite-node/node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "peer": true, "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/unicode-trie": { - "version": "2.0.0", - "integrity": "sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==", - "dev": true, + "node_modules/vite-node/node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], "license": "MIT", - "dependencies": { - "pako": "^0.2.5", - "tiny-inflate": "^1.0.0" + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=12" } }, - "node_modules/unicode-trie/node_modules/pako": { - "version": "0.2.9", - "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==", - "dev": true, - "license": "MIT" - }, - "node_modules/unified": { - "version": "9.2.2", - "integrity": "sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==", + "node_modules/vite-node/node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-node/node_modules/es-module-lexer": { + "version": "1.7.0", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "license": "MIT" + }, + "node_modules/vite-node/node_modules/esbuild": { + "version": "0.21.5", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/vite-node/node_modules/vite": { + "version": "5.4.21", + "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==", + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-plugin-node-polyfills": { + "version": "0.23.0", + "integrity": "sha512-4n+Ys+2bKHQohPBKigFlndwWQ5fFKwaGY6muNDMTb0fSQLyBzS+jjUNRZG9sKF0S/Go4ApG6LFnUGopjkILg3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/plugin-inject": "^5.0.5", + "node-stdlib-browser": "^1.2.0" + }, + "funding": { + "url": "https://github.com/sponsors/davidmyersdev" + }, + "peerDependencies": { + "vite": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" + } + }, + "node_modules/vite/node_modules/@esbuild/aix-ppc64": { + "version": "0.25.12", + "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.25.12", + "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.25.12", + "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.25.12", + "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.25.12", + "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.25.12", + "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.12", + "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.25.12", + "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.25.12", + "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.25.12", + "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.25.12", + "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.25.12", + "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.25.12", + "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.25.12", + "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.25.12", + "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.25.12", + "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.25.12", + "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.12", + "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.25.12", + "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.12", + "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.25.12", + "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.12", + "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.25.12", + "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.25.12", + "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.25.12", + "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.25.12", + "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.25.12", + "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "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" + } + }, + "node_modules/vite/node_modules/fdir": { + "version": "6.5.0", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/picomatch": { + "version": "4.0.3", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/vitest": { + "version": "2.1.9", + "integrity": "sha512-MSmPM9REYqDGBI8439mA4mWhV5sKmDlBKWIYbA3lRb2PTHACE0mgKwA8yQ2xq9vxDTuk4iPrECBAEW2aoFXY0Q==", + "license": "MIT", + "dependencies": { + "@vitest/expect": "2.1.9", + "@vitest/mocker": "2.1.9", + "@vitest/pretty-format": "^2.1.9", + "@vitest/runner": "2.1.9", + "@vitest/snapshot": "2.1.9", + "@vitest/spy": "2.1.9", + "@vitest/utils": "2.1.9", + "chai": "^5.1.2", + "debug": "^4.3.7", + "expect-type": "^1.1.0", + "magic-string": "^0.30.12", + "pathe": "^1.1.2", + "std-env": "^3.8.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.1", + "tinypool": "^1.0.1", + "tinyrainbow": "^1.2.0", + "vite": "^5.0.0", + "vite-node": "2.1.9", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "2.1.9", + "@vitest/ui": "2.1.9", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/vitest-mock-extended": { + "version": "2.0.2", + "integrity": "sha512-n3MBqVITKyclZ0n0y66hkT4UiiEYFQn9tteAnIxT0MPz1Z8nFcPUG3Cf0cZOyoPOj/cq6Ab1XFw2lM/qM5EDWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ts-essentials": ">=10.0.0" + }, + "peerDependencies": { + "typescript": "3.x || 4.x || 5.x", + "vitest": ">=2.0.0" + } + }, + "node_modules/vitest-mock-extended/node_modules/ts-essentials": { + "version": "10.1.1", + "integrity": "sha512-4aTB7KLHKmUvkjNj8V+EdnmuVTiECzn3K+zIbRthumvHu+j44x3w63xpfs0JL3NGIzGXqoQ7AV591xHO+XrOTw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "typescript": ">=4.5.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vitest/node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/@vitest/mocker": { + "version": "2.1.9", + "integrity": "sha512-tVL6uJgoUdi6icpxmdrn5YNo3g3Dxv+IHJBr0GXHaEdTcw3F+cPKnsXFhli6nO+f/6SDKPHEK1UN+k+TQv0Ehg==", + "license": "MIT", + "dependencies": { + "@vitest/spy": "2.1.9", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.12" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^5.0.0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/vitest/node_modules/assertion-error": { + "version": "2.0.1", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/vitest/node_modules/chai": { + "version": "5.3.3", + "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/vitest/node_modules/check-error": { + "version": "2.1.3", + "integrity": "sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==", + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, + "node_modules/vitest/node_modules/deep-eql": { + "version": "5.0.2", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/vitest/node_modules/esbuild": { + "version": "0.21.5", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/vitest/node_modules/estree-walker": { + "version": "3.0.3", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/vitest/node_modules/loupe": { + "version": "3.2.1", + "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==", + "license": "MIT" + }, + "node_modules/vitest/node_modules/pathval": { + "version": "2.0.1", + "integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==", + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, + "node_modules/vitest/node_modules/vite": { + "version": "5.4.21", + "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==", + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vm-browserify": { + "version": "1.1.2", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/w3c-xmlserializer": { + "version": "4.0.0", + "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/watchpack": { + "version": "2.5.1", + "integrity": "sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/web-vitals": { + "version": "1.1.2", + "integrity": "sha512-PFMKIY+bRSXlMxVAQ+m2aw9c/ioUYfDgrYot0YUa+/xa0sakubWhSDyxAKwzymvXVdF4CZI71g06W+mqhzu6ig==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/webpack": { + "version": "5.104.1", + "integrity": "sha512-Qphch25abbMNtekmEGJmeRUhLDbe+QfiWTiqpKYkpCOWY64v9eyl+KRRLmqOFA2AvKPpc9DC6+u2n76tQLBoaA==", + "dev": true, + "license": "MIT", + "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.28.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.4", + "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.4.4", + "webpack-sources": "^3.3.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-cli": { + "version": "4.10.0", + "integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^1.2.0", + "@webpack-cli/info": "^1.5.0", + "@webpack-cli/serve": "^1.7.0", + "colorette": "^2.0.14", + "commander": "^7.0.0", + "cross-spawn": "^7.0.3", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^2.2.0", + "rechoir": "^0.7.0", + "webpack-merge": "^5.7.3" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "4.x.x || 5.x.x" + }, + "peerDependenciesMeta": { + "@webpack-cli/generators": { + "optional": true + }, + "@webpack-cli/migrate": { + "optional": true + }, + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/webpack-cli/node_modules/commander": { + "version": "7.2.0", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-cli/node_modules/interpret": { + "version": "2.2.0", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/webpack-cli/node_modules/rechoir": { + "version": "0.7.1", + "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", + "dev": true, "license": "MIT", "dependencies": { - "bail": "^1.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^2.0.0", - "trough": "^1.0.0", - "vfile": "^4.0.0" + "resolve": "^1.9.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">= 0.10" } }, - "node_modules/union": { - "version": "0.5.0", - "integrity": "sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==", + "node_modules/webpack-merge": { + "version": "5.10.0", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", "dev": true, + "license": "MIT", "dependencies": { - "qs": "^6.4.0" + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">=10.0.0" } }, - "node_modules/unist-util-is": { - "version": "4.1.0", - "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", + "node_modules/webpack-sources": { + "version": "3.3.3", + "integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==", + "dev": true, "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=10.13.0" } }, - "node_modules/unist-util-stringify-position": { - "version": "2.0.3", - "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", - "license": "MIT", + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "@types/unist": "^2.0.2" + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=8.0.0" } }, - "node_modules/unist-util-visit": { - "version": "2.0.3", - "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/whatwg-encoding": { + "version": "2.0.0", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "deprecated": "Use @exodus/bytes instead for a more spec-conformant and faster implementation", + "devOptional": true, "license": "MIT", "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0", - "unist-util-visit-parents": "^3.0.0" + "iconv-lite": "0.6.3" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=12" } }, - "node_modules/unist-util-visit-parents": { - "version": "1.1.2", - "integrity": "sha512-yvo+MMLjEwdc3RhhPYSximset7rwjMrdt9E41Smmvg25UQIenzrN83cRnF1JMzoMi9zZOQeYXHSDf7p+IQkW3Q==", - "license": "MIT" - }, - "node_modules/unist-util-visit/node_modules/unist-util-visit-parents": { - "version": "3.1.1", - "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", + "node_modules/whatwg-encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "devOptional": true, "license": "MIT", "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/universalify": { - "version": "0.2.0", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "dev": true, + "node_modules/whatwg-mimetype": { + "version": "3.0.0", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", "license": "MIT", + "optional": true, + "peer": true, "engines": { - "node": ">= 4.0.0" + "node": ">=12" } }, - "node_modules/unpipe": { - "version": "1.0.0", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "node_modules/whatwg-url": { + "version": "5.0.0", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, "license": "MIT", - "engines": { - "node": ">= 0.8" + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" } }, - "node_modules/update-browserslist-db": { - "version": "1.2.3", - "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", + "node_modules/which": { + "version": "2.0.2", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.1" + "isexe": "^2.0.0" }, "bin": { - "update-browserslist-db": "cli.js" + "node-which": "bin/node-which" }, - "peerDependencies": { - "browserslist": ">= 4.21.0" + "engines": { + "node": ">= 8" } }, - "node_modules/upper-case-first": { - "version": "2.0.2", - "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", "license": "MIT", "dependencies": { - "tslib": "^2.0.3" + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/uri-js": { - "version": "4.4.1", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "license": "BSD-2-Clause", + "node_modules/which-builtin-type": { + "version": "1.2.1", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "license": "MIT", "dependencies": { - "punycode": "^2.1.0" + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/urijs": { - "version": "1.19.11", - "integrity": "sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/url": { - "version": "0.11.4", - "integrity": "sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==", - "dev": true, + "node_modules/which-collection": { + "version": "1.0.2", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", "license": "MIT", "dependencies": { - "punycode": "^1.4.1", - "qs": "^6.12.3" + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/url-join": { - "version": "4.0.1", - "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", - "dev": true, - "license": "MIT" + "node_modules/which-module": { + "version": "2.0.1", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "license": "ISC" }, - "node_modules/url-parse": { - "version": "1.5.10", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dev": true, + "node_modules/which-typed-array": { + "version": "1.1.20", + "integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==", "license": "MIT", "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/url/node_modules/punycode": { - "version": "1.4.1", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/util": { - "version": "0.12.5", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "node_modules/why-is-node-running": { + "version": "2.3.0", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" } }, - "node_modules/util-arity": { - "version": "1.1.0", - "integrity": "sha512-kkyIsXKwemfSy8ZEoaIz06ApApnWsk5hQO0vLjZS6UkBiGiW++Jsyb8vSBoc0WKlffGoGs5yYy/j5pp8zckrFA==", + "node_modules/wildcard": { + "version": "2.0.1", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true, "license": "MIT" }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "license": "MIT" + "node_modules/window": { + "version": "1.0.0", + "integrity": "sha512-kW5faBREqk3gBksekBT9RxksBnNt7gvzwy+AIrD/YSV55lldbqA5EMz2HprRvX8b10F3Qnklje8sVpv8asFGEA==", + "license": "ISC" }, - "node_modules/utils-merge": { - "version": "1.0.1", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "node_modules/word-wrap": { + "version": "1.2.5", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "license": "MIT", "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "9.0.1", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" + "node": ">=0.10.0" } }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "node_modules/wordwrap": { + "version": "1.0.0", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true, "license": "MIT" }, - "node_modules/v8-to-istanbul": { - "version": "9.3.0", - "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", + "node_modules/wordwrapjs": { + "version": "5.1.1", + "integrity": "sha512-0yweIbkINJodk27gX9LBGMzyQdBDan3s/dEAiwBOj+Mf0PPyWL6/rikalkv8EeD0E8jm4o5RXEOrFTP3NXbhJg==", "dev": true, - "license": "ISC", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^2.0.0" - }, + "license": "MIT", "engines": { - "node": ">=10.12.0" + "node": ">=12.17" } }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "license": "Apache-2.0", + "node_modules/workerpool": { + "version": "6.5.1", + "integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==", + "license": "Apache-2.0" + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/vanilla-picker": { - "version": "2.12.3", - "integrity": "sha512-qVkT1E7yMbUsB2mmJNFmaXMWE2hF8ffqzMMwe9zdAikd8u2VfnsVY2HQcOUi2F38bgbxzlJBEdS1UUhOXdF9GQ==", - "dev": true, - "license": "ISC", + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", "dependencies": { - "@sphinxxxx/color-conversion": "^2.2.2" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/vary": { - "version": "1.1.2", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.2.2", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/vfile": { - "version": "4.2.1", - "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.3", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^2.0.0", - "vfile-message": "^2.0.0" + "engines": { + "node": ">=12" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/vfile-message": { - "version": "2.0.4", - "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "5.1.2", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "license": "MIT", "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/vite": { - "version": "6.4.1", - "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==", - "dev": true, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.2", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", "license": "MIT", "dependencies": { - "esbuild": "^0.25.0", - "fdir": "^6.4.4", - "picomatch": "^4.0.2", - "postcss": "^8.5.3", - "rollup": "^4.34.9", - "tinyglobby": "^0.2.13" - }, - "bin": { - "vite": "bin/vite.js" + "ansi-regex": "^6.0.1" }, "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + "node": ">=12" }, "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/ws": { + "version": "8.18.3", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" }, "peerDependencies": { - "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", - "jiti": ">=1.21.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.16.0", - "tsx": "^4.8.1", - "yaml": "^2.4.2" + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" }, "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "jiti": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - }, - "tsx": { + "bufferutil": { "optional": true }, - "yaml": { + "utf-8-validate": { "optional": true } } }, - "node_modules/vite-express": { - "version": "0.15.0", - "integrity": "sha512-g5CIiUrip9t3LVgO0v0G+rB7HbtQL6oouyRAGeahHt7lDdJYxiURBdAkOYlOexoCLs6PZQRzbIwaT9BNPjCz6g==", + "node_modules/wtfnode": { + "version": "0.9.4", + "integrity": "sha512-5xgeLjIxZ8DVHU4ty3kOdd9QfHDxf89tmSy0+yN8n59S3wx6LBJh8XhEg61OPOGE65jEYGAtLq0GMzLKrsjfPQ==", + "dev": true, + "license": "ISC", + "bin": { + "wtfnode": "proxy.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "license": "Apache-2.0", + "optional": true, + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/xmlbuilder": { + "version": "15.1.1", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", "license": "MIT", - "dependencies": { - "picocolors": "^1.0.0" + "engines": { + "node": ">=8.0" } }, - "node_modules/vite-plugin-node-polyfills": { - "version": "0.23.0", - "integrity": "sha512-4n+Ys+2bKHQohPBKigFlndwWQ5fFKwaGY6muNDMTb0fSQLyBzS+jjUNRZG9sKF0S/Go4ApG6LFnUGopjkILg3w==", - "dev": true, + "node_modules/xmlchars": { + "version": "2.2.0", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", "license": "MIT", - "dependencies": { - "@rollup/plugin-inject": "^5.0.5", - "node-stdlib-browser": "^1.2.0" + "optional": true, + "peer": true + }, + "node_modules/xmlhttprequest-ssl": { + "version": "2.1.2", + "integrity": "sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.8.2", + "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" }, - "funding": { - "url": "https://github.com/sponsors/davidmyersdev" + "engines": { + "node": ">= 14.6" }, - "peerDependencies": { - "vite": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" + "funding": { + "url": "https://github.com/sponsors/eemeli" } }, - "node_modules/vite/node_modules/@esbuild/aix-ppc64": { - "version": "0.25.12", - "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", - "cpu": [ - "ppc64" - ], + "node_modules/yargs": { + "version": "17.7.2", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "aix" - ], + "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" + }, "engines": { - "node": ">=18" + "node": ">=12" } }, - "node_modules/vite/node_modules/@esbuild/android-arm": { - "version": "0.25.12", - "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", - "cpu": [ - "arm" - ], + "node_modules/yargs-parser": { + "version": "21.1.1", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], + "license": "ISC", "engines": { - "node": ">=18" + "node": ">=12" } }, - "node_modules/vite/node_modules/@esbuild/android-arm64": { - "version": "0.25.12", - "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", - "cpu": [ - "arm64" - ], - "dev": true, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", "license": "MIT", - "optional": true, - "os": [ - "android" - ], + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, "engines": { - "node": ">=18" + "node": ">=10" } }, - "node_modules/vite/node_modules/@esbuild/android-x64": { - "version": "0.25.12", - "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", - "cpu": [ - "x64" - ], - "dev": true, + "node_modules/yargs-unparser/node_modules/camelcase": { + "version": "6.3.0", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "license": "MIT", - "optional": true, - "os": [ - "android" - ], "engines": { - "node": ">=18" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/vite/node_modules/@esbuild/darwin-arm64": { - "version": "0.25.12", - "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", - "cpu": [ - "arm64" - ], - "dev": true, + "node_modules/yargs-unparser/node_modules/decamelize": { + "version": "4.0.0", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], "engines": { - "node": ">=18" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/vite/node_modules/@esbuild/darwin-x64": { - "version": "0.25.12", - "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", - "cpu": [ - "x64" - ], - "dev": true, + "node_modules/yn": { + "version": "3.1.1", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], "engines": { - "node": ">=18" + "node": ">=6" } }, - "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.12", - "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", - "cpu": [ - "arm64" - ], - "dev": true, + "node_modules/yocto-queue": { + "version": "0.1.0", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], "engines": { - "node": ">=18" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/vite/node_modules/@esbuild/freebsd-x64": { - "version": "0.25.12", - "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", - "cpu": [ - "x64" - ], - "dev": true, + "node_modules/yup": { + "version": "1.2.0", + "integrity": "sha512-PPqYKSAXjpRCgLgLKVGPA33v5c/WgEx3wi6NFjIiegz90zSwyMpvTFp/uGcVnnbx6to28pgnzp/q8ih3QRjLMQ==", "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], + "dependencies": { + "property-expr": "^2.0.5", + "tiny-case": "^1.0.3", + "toposort": "^2.0.2", + "type-fest": "^2.19.0" + } + }, + "node_modules/yup/node_modules/type-fest": { + "version": "2.19.0", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=18" + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "packages/fdc3": { + "name": "@finos/fdc3", + "version": "2.2.2-beta.1", + "license": "Apache-2.0", + "dependencies": { + "@finos/fdc3-context": "2.2.0", + "@finos/fdc3-get-agent": "2.2.0", + "@finos/fdc3-schema": "2.2.0", + "@finos/fdc3-standard": "2.2.0" + } + }, + "packages/fdc3-agent-proxy": { + "name": "@finos/fdc3-agent-proxy", + "version": "2.2.2-beta.1", + "license": "Apache-2.0", + "dependencies": { + "@finos/fdc3-standard": "2.2.2-beta.1" + }, + "devDependencies": { + "@cucumber/cucumber": "10.3.1", + "@eslint/js": "^9.19.0", + "@finos/testing": "2.2.2-beta.1", + "@types/node": "^20.16.11", + "@types/uuid": "^10.0.0", + "@typescript-eslint/eslint-plugin": "^8.18.2", + "@typescript-eslint/parser": "^8.18.2", + "@vitest/coverage-v8": "^2.0.0", + "eslint": "^9.32.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-import": "^2.31.0", + "eslint-plugin-prettier": "3.3.1", + "globals": "^15.14.0", + "is-ci": "2.0.0", + "jsonpath-plus": "^10.1.0", + "prettier": "3.4.1", + "quickpickle": "^1.0.0", + "rimraf": "^6.0.1", + "tsx": "^4.19.1", + "typescript": "^5.6.3", + "typescript-eslint": "^8.17.0", + "uuid": "^9.0.1", + "vitest": "^2.0.0" } }, - "node_modules/vite/node_modules/@esbuild/linux-arm": { - "version": "0.25.12", - "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" + "packages/fdc3-commonjs": { + "name": "@finos/fdc3-commonjs", + "version": "2.2.2-beta.1", + "license": "Apache-2.0", + "dependencies": { + "@finos/fdc3": "2.2.2-beta.1" + }, + "devDependencies": { + "@rollup/plugin-commonjs": "^28.0.1", + "@rollup/plugin-json": "^6.1.0", + "@rollup/plugin-node-resolve": "^15.3.0", + "@rollup/plugin-typescript": "^12.1.1", + "rollup": "^4.59.0", + "rollup-plugin-dts": "^6.3.0" } }, - "node_modules/vite/node_modules/@esbuild/linux-arm64": { - "version": "0.25.12", - "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" + "packages/fdc3-context": { + "name": "@finos/fdc3-context", + "version": "2.2.2-beta.1", + "license": "Apache-2.0", + "devDependencies": { + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "^9.19.0", + "@typescript-eslint/eslint-plugin": "^8.18.2", + "@typescript-eslint/parser": "^8.18.2", + "@vitest/coverage-v8": "^3.2.3", + "ajv": "^8.18.0", + "ajv-formats": "^3.0.1", + "eslint": "^9.32.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-jsx-a11y": "^6.10.0", + "globals": "^15.14.0", + "mkdirp": "^3.0.1", + "quicktype": "23.0.78", + "rimraf": "^6.0.1", + "tslib": "^2.7.0", + "typescript": "^5.6.3", + "vitest": "^3.2.3" } }, - "node_modules/vite/node_modules/@esbuild/linux-ia32": { - "version": "0.25.12", - "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", - "cpu": [ - "ia32" - ], + "packages/fdc3-context/node_modules/@bcoe/v8-coverage": { + "version": "1.0.2", + "integrity": "sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], "engines": { "node": ">=18" } }, - "node_modules/vite/node_modules/@esbuild/linux-loong64": { - "version": "0.25.12", - "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", - "cpu": [ - "loong64" - ], + "packages/fdc3-context/node_modules/@types/chai": { + "version": "5.2.3", + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" + "dependencies": { + "@types/deep-eql": "*", + "assertion-error": "^2.0.1" } }, - "node_modules/vite/node_modules/@esbuild/linux-mips64el": { - "version": "0.25.12", - "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", - "cpu": [ - "mips64el" - ], + "packages/fdc3-context/node_modules/@vitest/coverage-v8": { + "version": "3.2.4", + "integrity": "sha512-EyF9SXU6kS5Ku/U82E259WSnvg6c8KTjppUncuNdm5QHpe17mwREHnjDzozC8x9MZ0xfBUFSaLkRv4TMA75ALQ==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" + "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" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@vitest/browser": "3.2.4", + "vitest": "3.2.4" + }, + "peerDependenciesMeta": { + "@vitest/browser": { + "optional": true + } } }, - "node_modules/vite/node_modules/@esbuild/linux-ppc64": { - "version": "0.25.12", - "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", - "cpu": [ - "ppc64" - ], + "packages/fdc3-context/node_modules/@vitest/expect": { + "version": "3.2.4", + "integrity": "sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/vite/node_modules/@esbuild/linux-riscv64": { - "version": "0.25.12", - "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", - "cpu": [ - "riscv64" - ], + "packages/fdc3-context/node_modules/@vitest/pretty-format": { + "version": "3.2.4", + "integrity": "sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" + "dependencies": { + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/vite/node_modules/@esbuild/linux-s390x": { - "version": "0.25.12", - "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", - "cpu": [ - "s390x" - ], + "packages/fdc3-context/node_modules/@vitest/runner": { + "version": "3.2.4", + "integrity": "sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" + "dependencies": { + "@vitest/utils": "3.2.4", + "pathe": "^2.0.3", + "strip-literal": "^3.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/vite/node_modules/@esbuild/linux-x64": { - "version": "0.25.12", - "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", - "cpu": [ - "x64" - ], + "packages/fdc3-context/node_modules/@vitest/snapshot": { + "version": "3.2.4", + "integrity": "sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "magic-string": "^0.30.17", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/vite/node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.12", - "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", - "cpu": [ - "arm64" - ], + "packages/fdc3-context/node_modules/@vitest/spy": { + "version": "3.2.4", + "integrity": "sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" + "dependencies": { + "tinyspy": "^4.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/vite/node_modules/@esbuild/netbsd-x64": { - "version": "0.25.12", - "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", - "cpu": [ - "x64" - ], + "packages/fdc3-context/node_modules/@vitest/utils": { + "version": "3.2.4", + "integrity": "sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "loupe": "^3.1.4", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/vite/node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.12", - "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", - "cpu": [ - "arm64" - ], + "packages/fdc3-context/node_modules/ajv": { + "version": "8.18.0", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/openbsd-x64": { - "version": "0.25.12", - "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", - "cpu": [ - "x64" - ], + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "packages/fdc3-context/node_modules/assertion-error": { + "version": "2.0.1", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], "engines": { - "node": ">=18" + "node": ">=12" } }, - "node_modules/vite/node_modules/@esbuild/openharmony-arm64": { - "version": "0.25.12", - "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", - "cpu": [ - "arm64" - ], + "packages/fdc3-context/node_modules/brace-expansion": { + "version": "2.0.2", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": ">=18" + "dependencies": { + "balanced-match": "^1.0.0" } }, - "node_modules/vite/node_modules/@esbuild/sunos-x64": { - "version": "0.25.12", - "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", - "cpu": [ - "x64" - ], + "packages/fdc3-context/node_modules/chai": { + "version": "5.3.3", + "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, "engines": { "node": ">=18" } }, - "node_modules/vite/node_modules/@esbuild/win32-arm64": { - "version": "0.25.12", - "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", - "cpu": [ - "arm64" - ], + "packages/fdc3-context/node_modules/check-error": { + "version": "2.1.3", + "integrity": "sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "win32" - ], "engines": { - "node": ">=18" + "node": ">= 16" } }, - "node_modules/vite/node_modules/@esbuild/win32-ia32": { - "version": "0.25.12", - "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", - "cpu": [ - "ia32" - ], + "packages/fdc3-context/node_modules/deep-eql": { + "version": "5.0.2", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "win32" - ], "engines": { - "node": ">=18" + "node": ">=6" } }, - "node_modules/vite/node_modules/@esbuild/win32-x64": { - "version": "0.25.12", - "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", - "cpu": [ - "x64" - ], + "packages/fdc3-context/node_modules/es-module-lexer": { + "version": "1.7.0", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], + "license": "MIT" + }, + "packages/fdc3-context/node_modules/istanbul-lib-source-maps": { + "version": "5.0.6", + "integrity": "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.23", + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0" + }, "engines": { - "node": ">=18" + "node": ">=10" } }, - "node_modules/vite/node_modules/esbuild": { - "version": "0.25.12", - "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", + "packages/fdc3-context/node_modules/json-schema-traverse": { + "version": "1.0.0", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" + "license": "MIT" + }, + "packages/fdc3-context/node_modules/loupe": { + "version": "3.2.1", + "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==", + "dev": true, + "license": "MIT" + }, + "packages/fdc3-context/node_modules/minimatch": { + "version": "9.0.5", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=18" + "node": ">=16 || 14 >=14.17" }, - "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" + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/vite/node_modules/fdir": { - "version": "6.5.0", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "packages/fdc3-context/node_modules/pathe": { + "version": "2.0.3", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "packages/fdc3-context/node_modules/pathval": { + "version": "2.0.1", + "integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==", "dev": true, "license": "MIT", "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } + "node": ">= 14.16" } }, - "node_modules/vite/node_modules/picomatch": { + "packages/fdc3-context/node_modules/picomatch": { "version": "4.0.3", "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, @@ -19174,977 +20141,1036 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/vm-browserify": { - "version": "1.1.2", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/w3c-xmlserializer": { - "version": "4.0.0", - "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", + "packages/fdc3-context/node_modules/test-exclude": { + "version": "7.0.1", + "integrity": "sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "xml-name-validator": "^4.0.0" + "@istanbuljs/schema": "^0.1.2", + "glob": "^10.4.1", + "minimatch": "^9.0.4" }, "engines": { - "node": ">=14" + "node": ">=18" } }, - "node_modules/walker": { - "version": "1.0.8", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "packages/fdc3-context/node_modules/tinyrainbow": { + "version": "2.0.0", + "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==", "dev": true, - "license": "Apache-2.0", - "dependencies": { - "makeerror": "1.0.12" + "license": "MIT", + "engines": { + "node": ">=14.0.0" } }, - "node_modules/watchpack": { - "version": "2.5.1", - "integrity": "sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==", + "packages/fdc3-context/node_modules/tinyspy": { + "version": "4.0.4", + "integrity": "sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==", "dev": true, "license": "MIT", - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, "engines": { - "node": ">=10.13.0" + "node": ">=14.0.0" } }, - "node_modules/web-vitals": { - "version": "1.1.2", - "integrity": "sha512-PFMKIY+bRSXlMxVAQ+m2aw9c/ioUYfDgrYot0YUa+/xa0sakubWhSDyxAKwzymvXVdF4CZI71g06W+mqhzu6ig==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/webpack": { - "version": "5.104.1", - "integrity": "sha512-Qphch25abbMNtekmEGJmeRUhLDbe+QfiWTiqpKYkpCOWY64v9eyl+KRRLmqOFA2AvKPpc9DC6+u2n76tQLBoaA==", + "packages/fdc3-context/node_modules/vite-node": { + "version": "3.2.4", + "integrity": "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==", "dev": true, "license": "MIT", "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.28.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.17.4", - "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.4.4", - "webpack-sources": "^3.3.3" + "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": { - "webpack": "bin/webpack.js" + "vite-node": "vite-node.mjs" }, "engines": { - "node": ">=10.13.0" + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } + "url": "https://opencollective.com/vitest" } }, - "node_modules/webpack-cli": { - "version": "4.10.0", - "integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==", + "packages/fdc3-context/node_modules/vitest": { + "version": "3.2.4", + "integrity": "sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==", "dev": true, "license": "MIT", "dependencies": { - "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.2.0", - "@webpack-cli/info": "^1.5.0", - "@webpack-cli/serve": "^1.7.0", - "colorette": "^2.0.14", - "commander": "^7.0.0", - "cross-spawn": "^7.0.3", - "fastest-levenshtein": "^1.0.12", - "import-local": "^3.0.2", - "interpret": "^2.2.0", - "rechoir": "^0.7.0", - "webpack-merge": "^5.7.3" + "@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" }, "bin": { - "webpack-cli": "bin/cli.js" + "vitest": "vitest.mjs" }, "engines": { - "node": ">=10.13.0" + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "url": "https://opencollective.com/vitest" }, "peerDependencies": { - "webpack": "4.x.x || 5.x.x" + "@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": { - "@webpack-cli/generators": { + "@edge-runtime/vm": { "optional": true }, - "@webpack-cli/migrate": { + "@types/debug": { "optional": true }, - "webpack-bundle-analyzer": { + "@types/node": { "optional": true }, - "webpack-dev-server": { + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { "optional": true } } }, - "node_modules/webpack-cli/node_modules/commander": { - "version": "7.2.0", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10" + "packages/fdc3-get-agent": { + "name": "@finos/fdc3-get-agent", + "version": "2.2.2-beta.1", + "license": "Apache-2.0", + "dependencies": { + "@finos/fdc3-agent-proxy": "2.2.2-beta.1", + "@finos/fdc3-context": "2.2.2-beta.1", + "@finos/fdc3-schema": "2.2.2-beta.1", + "@finos/fdc3-standard": "2.2.2-beta.1", + "@types/uuid": "^10.0.0", + "uuid": "^9.0.1" + }, + "devDependencies": { + "@cucumber/cucumber": "10.3.1", + "@eslint/js": "^9.19.0", + "@finos/fdc3-web-impl": "2.2.2-beta.1", + "@finos/testing": "2.2.2-beta.1", + "@types/node": "^20.16.11", + "@types/wtfnode": "^0.7.3", + "@vitest/coverage-v8": "^3.0.4", + "ajv": "^8.17.1", + "ajv-formats": "^3.0.1", + "eslint": "^9.32.0", + "eslint-config-prettier": "^9.1.0", + "globals": "^15.14.0", + "jsonpath-plus": "^10.1.0", + "quickpickle": "^1.6.1", + "rimraf": "^6.0.1", + "tsx": "^4.19.1", + "typescript": "^5.6.3", + "typescript-eslint": "^8.17.0", + "vitest": "^3.0.4", + "wtfnode": "^0.9.3" } }, - "node_modules/webpack-cli/node_modules/interpret": { - "version": "2.2.0", - "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "packages/fdc3-get-agent/node_modules/@bcoe/v8-coverage": { + "version": "1.0.2", + "integrity": "sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.10" + "node": ">=18" } }, - "node_modules/webpack-cli/node_modules/rechoir": { - "version": "0.7.1", - "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", + "packages/fdc3-get-agent/node_modules/@types/chai": { + "version": "5.2.3", + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", "dev": true, "license": "MIT", "dependencies": { - "resolve": "^1.9.0" - }, - "engines": { - "node": ">= 0.10" + "@types/deep-eql": "*", + "assertion-error": "^2.0.1" } }, - "node_modules/webpack-merge": { - "version": "5.10.0", - "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "packages/fdc3-get-agent/node_modules/@vitest/coverage-v8": { + "version": "3.2.4", + "integrity": "sha512-EyF9SXU6kS5Ku/U82E259WSnvg6c8KTjppUncuNdm5QHpe17mwREHnjDzozC8x9MZ0xfBUFSaLkRv4TMA75ALQ==", "dev": true, "license": "MIT", "dependencies": { - "clone-deep": "^4.0.1", - "flat": "^5.0.2", - "wildcard": "^2.0.0" + "@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" }, - "engines": { - "node": ">=10.0.0" + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@vitest/browser": "3.2.4", + "vitest": "3.2.4" + }, + "peerDependenciesMeta": { + "@vitest/browser": { + "optional": true + } } }, - "node_modules/webpack-sources": { - "version": "3.3.3", - "integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==", + "packages/fdc3-get-agent/node_modules/@vitest/expect": { + "version": "3.2.4", + "integrity": "sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==", "dev": true, "license": "MIT", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack/node_modules/eslint-scope": { - "version": "5.1.1", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "@types/chai": "^5.2.2", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "tinyrainbow": "^2.0.0" }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/webpack/node_modules/estraverse": { - "version": "4.3.0", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/whatwg-encoding": { - "version": "2.0.0", - "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", - "deprecated": "Use @exodus/bytes instead for a more spec-conformant and faster implementation", + "packages/fdc3-get-agent/node_modules/@vitest/pretty-format": { + "version": "3.2.4", + "integrity": "sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==", "dev": true, "license": "MIT", "dependencies": { - "iconv-lite": "0.6.3" + "tinyrainbow": "^2.0.0" }, - "engines": { - "node": ">=12" + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/whatwg-encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "packages/fdc3-get-agent/node_modules/@vitest/runner": { + "version": "3.2.4", + "integrity": "sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==", "dev": true, "license": "MIT", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "@vitest/utils": "3.2.4", + "pathe": "^2.0.3", + "strip-literal": "^3.0.0" }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/whatwg-mimetype": { - "version": "3.0.0", - "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "packages/fdc3-get-agent/node_modules/@vitest/snapshot": { + "version": "3.2.4", + "integrity": "sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==", "dev": true, "license": "MIT", "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" + "@vitest/pretty-format": "3.2.4", + "magic-string": "^0.30.17", + "pathe": "^2.0.3" }, - "engines": { - "node": ">= 8" + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/which-boxed-primitive": { - "version": "1.1.1", - "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "packages/fdc3-get-agent/node_modules/@vitest/spy": { + "version": "3.2.4", + "integrity": "sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==", + "dev": true, "license": "MIT", "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" - }, - "engines": { - "node": ">= 0.4" + "tinyspy": "^4.0.3" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://opencollective.com/vitest" } }, - "node_modules/which-builtin-type": { - "version": "1.2.1", - "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "packages/fdc3-get-agent/node_modules/@vitest/utils": { + "version": "3.2.4", + "integrity": "sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==", + "dev": true, "license": "MIT", "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" - }, - "engines": { - "node": ">= 0.4" + "@vitest/pretty-format": "3.2.4", + "loupe": "^3.1.4", + "tinyrainbow": "^2.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://opencollective.com/vitest" } }, - "node_modules/which-collection": { - "version": "1.0.2", - "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "packages/fdc3-get-agent/node_modules/ajv": { + "version": "8.17.1", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, "license": "MIT", "dependencies": { - "is-map": "^2.0.3", - "is-set": "^2.0.3", - "is-weakmap": "^2.0.2", - "is-weakset": "^2.0.3" - }, - "engines": { - "node": ">= 0.4" + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/which-module": { + "packages/fdc3-get-agent/node_modules/assertion-error": { "version": "2.0.1", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", - "license": "ISC" - }, - "node_modules/which-typed-array": { - "version": "1.1.20", - "integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, "license": "MIT", - "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" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=12" } }, - "node_modules/wildcard": { - "version": "2.0.1", - "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "packages/fdc3-get-agent/node_modules/brace-expansion": { + "version": "2.0.2", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, - "license": "MIT" - }, - "node_modules/window": { - "version": "1.0.0", - "integrity": "sha512-kW5faBREqk3gBksekBT9RxksBnNt7gvzwy+AIrD/YSV55lldbqA5EMz2HprRvX8b10F3Qnklje8sVpv8asFGEA==", - "license": "ISC" + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } }, - "node_modules/word-wrap": { - "version": "1.2.5", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "packages/fdc3-get-agent/node_modules/chai": { + "version": "5.3.3", + "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", + "dev": true, "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=18" } }, - "node_modules/wordwrap": { - "version": "1.0.0", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "packages/fdc3-get-agent/node_modules/check-error": { + "version": "2.1.3", + "integrity": "sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">= 16" + } }, - "node_modules/wordwrapjs": { - "version": "5.1.1", - "integrity": "sha512-0yweIbkINJodk27gX9LBGMzyQdBDan3s/dEAiwBOj+Mf0PPyWL6/rikalkv8EeD0E8jm4o5RXEOrFTP3NXbhJg==", + "packages/fdc3-get-agent/node_modules/deep-eql": { + "version": "5.0.2", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", "dev": true, "license": "MIT", "engines": { - "node": ">=12.17" + "node": ">=6" } }, - "node_modules/workerpool": { - "version": "6.5.1", - "integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==", - "license": "Apache-2.0" + "packages/fdc3-get-agent/node_modules/es-module-lexer": { + "version": "1.7.0", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "dev": true, + "license": "MIT" }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "license": "MIT", + "packages/fdc3-get-agent/node_modules/istanbul-lib-source-maps": { + "version": "5.0.6", + "integrity": "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" + "@jridgewell/trace-mapping": "^0.3.23", + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "node": ">=10" } }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "license": "MIT", + "packages/fdc3-get-agent/node_modules/json-schema-traverse": { + "version": "1.0.0", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "packages/fdc3-get-agent/node_modules/loupe": { + "version": "3.2.1", + "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==", + "dev": true, + "license": "MIT" + }, + "packages/fdc3-get-agent/node_modules/minimatch": { + "version": "9.0.5", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" }, "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.2.2", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "packages/fdc3-get-agent/node_modules/pathe": { + "version": "2.0.3", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "packages/fdc3-get-agent/node_modules/pathval": { + "version": "2.0.1", + "integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==", + "dev": true, "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "node": ">= 14.16" } }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.3", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "packages/fdc3-get-agent/node_modules/picomatch": { + "version": "4.0.3", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, "license": "MIT", "engines": { "node": ">=12" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "5.1.2", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "license": "MIT", + "packages/fdc3-get-agent/node_modules/test-exclude": { + "version": "7.0.1", + "integrity": "sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==", + "dev": true, + "license": "ISC", "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" + "@istanbuljs/schema": "^0.1.2", + "glob": "^10.4.1", + "minimatch": "^9.0.4" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=18" } }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "7.1.2", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "packages/fdc3-get-agent/node_modules/tinyrainbow": { + "version": "2.0.0", + "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==", + "dev": true, "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "node": ">=14.0.0" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "license": "ISC" + "packages/fdc3-get-agent/node_modules/tinyspy": { + "version": "4.0.4", + "integrity": "sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } }, - "node_modules/write-file-atomic": { - "version": "4.0.2", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "packages/fdc3-get-agent/node_modules/vite-node": { + "version": "3.2.4", + "integrity": "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" + "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" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/write-file-atomic/node_modules/signal-exit": { - "version": "3.0.7", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "packages/fdc3-get-agent/node_modules/vitest": { + "version": "3.2.4", + "integrity": "sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==", "dev": true, - "license": "ISC" - }, - "node_modules/ws": { - "version": "8.18.3", - "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", "license": "MIT", + "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" + }, + "bin": { + "vitest": "vitest.mjs" + }, "engines": { - "node": ">=10.0.0" + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" }, "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" + "@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": { - "bufferutil": { + "@edge-runtime/vm": { "optional": true }, - "utf-8-validate": { + "@types/debug": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { "optional": true } } }, - "node_modules/wtfnode": { - "version": "0.9.4", - "integrity": "sha512-5xgeLjIxZ8DVHU4ty3kOdd9QfHDxf89tmSy0+yN8n59S3wx6LBJh8XhEg61OPOGE65jEYGAtLq0GMzLKrsjfPQ==", - "dev": true, - "license": "ISC", - "bin": { - "wtfnode": "proxy.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/xml": { - "version": "1.0.1", - "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==", - "dev": true, - "license": "MIT" - }, - "node_modules/xml-name-validator": { - "version": "4.0.0", - "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", - "dev": true, + "packages/fdc3-schema": { + "name": "@finos/fdc3-schema", + "version": "2.2.2-beta.1", "license": "Apache-2.0", - "engines": { - "node": ">=12" - } - }, - "node_modules/xmlbuilder": { - "version": "15.1.1", - "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", - "license": "MIT", - "engines": { - "node": ">=8.0" - } - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true, - "license": "MIT" - }, - "node_modules/xmlhttprequest-ssl": { - "version": "2.1.2", - "integrity": "sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==", - "engines": { - "node": ">=0.4.0" + "devDependencies": { + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "^9.19.0", + "@typescript-eslint/eslint-plugin": "^8.18.2", + "@typescript-eslint/parser": "^8.18.2", + "eslint": "^9.32.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-jsx-a11y": "^6.10.0", + "globals": "^15.14.0", + "message-await": "^1.1.0", + "mkdirp": "^3.0.1", + "quicktype": "23.0.78", + "rimraf": "^6.0.1", + "ts-morph": "^24.0.0", + "tslib": "^2.7.0", + "typescript": "^5.6.3" } }, - "node_modules/xtend": { - "version": "4.0.2", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "license": "MIT", - "engines": { - "node": ">=0.4" + "packages/fdc3-standard": { + "name": "@finos/fdc3-standard", + "version": "2.2.2-beta.1", + "license": "Apache-2.0", + "dependencies": { + "@finos/fdc3-context": "2.2.2-beta.1", + "@finos/fdc3-schema": "2.2.2-beta.1" + }, + "devDependencies": { + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "^9.19.0", + "@typescript-eslint/eslint-plugin": "^8.18.2", + "@typescript-eslint/parser": "^8.18.2", + "@vitest/coverage-v8": "^3.0.0", + "eslint": "^9.32.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-jsx-a11y": "^6.10.0", + "globals": "^15.14.0", + "prettier": "3.4.1", + "quicktype": "23.0.78", + "rimraf": "^6.0.1", + "tslib": "^2.7.0", + "typescript": "^5.6.3", + "vitest": "^3.0.0", + "vitest-mock-extended": "^2.0.0" } }, - "node_modules/y18n": { - "version": "5.0.8", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "license": "ISC", + "packages/fdc3-standard/node_modules/@bcoe/v8-coverage": { + "version": "1.0.2", + "integrity": "sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=18" } }, - "node_modules/yallist": { - "version": "3.1.1", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "license": "ISC" - }, - "node_modules/yaml": { - "version": "2.8.2", - "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", - "license": "ISC", - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14.6" - }, - "funding": { - "url": "https://github.com/sponsors/eemeli" + "packages/fdc3-standard/node_modules/@types/chai": { + "version": "5.2.3", + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/deep-eql": "*", + "assertion-error": "^2.0.1" } }, - "node_modules/yargs": { - "version": "17.7.2", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "packages/fdc3-standard/node_modules/@vitest/coverage-v8": { + "version": "3.2.4", + "integrity": "sha512-EyF9SXU6kS5Ku/U82E259WSnvg6c8KTjppUncuNdm5QHpe17mwREHnjDzozC8x9MZ0xfBUFSaLkRv4TMA75ALQ==", "dev": true, "license": "MIT", "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" + "@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" }, - "engines": { - "node": ">=12" + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@vitest/browser": "3.2.4", + "vitest": "3.2.4" + }, + "peerDependenciesMeta": { + "@vitest/browser": { + "optional": true + } } }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "packages/fdc3-standard/node_modules/@vitest/expect": { + "version": "3.2.4", + "integrity": "sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==", "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-unparser": { - "version": "2.0.0", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", "license": "MIT", "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" + "@types/chai": "^5.2.2", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "tinyrainbow": "^2.0.0" }, - "engines": { - "node": ">=10" + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/yargs-unparser/node_modules/camelcase": { - "version": "6.3.0", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "packages/fdc3-standard/node_modules/@vitest/pretty-format": { + "version": "3.2.4", + "integrity": "sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==", + "dev": true, "license": "MIT", - "engines": { - "node": ">=10" + "dependencies": { + "tinyrainbow": "^2.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://opencollective.com/vitest" } }, - "node_modules/yargs-unparser/node_modules/decamelize": { - "version": "4.0.0", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "packages/fdc3-standard/node_modules/@vitest/runner": { + "version": "3.2.4", + "integrity": "sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==", + "dev": true, "license": "MIT", - "engines": { - "node": ">=10" + "dependencies": { + "@vitest/utils": "3.2.4", + "pathe": "^2.0.3", + "strip-literal": "^3.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://opencollective.com/vitest" } }, - "node_modules/yn": { - "version": "3.1.1", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "packages/fdc3-standard/node_modules/@vitest/snapshot": { + "version": "3.2.4", + "integrity": "sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==", + "dev": true, "license": "MIT", - "engines": { - "node": ">=6" + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "magic-string": "^0.30.17", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "packages/fdc3-standard/node_modules/@vitest/spy": { + "version": "3.2.4", + "integrity": "sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==", + "dev": true, "license": "MIT", - "engines": { - "node": ">=10" + "dependencies": { + "tinyspy": "^4.0.3" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://opencollective.com/vitest" } }, - "node_modules/yup": { - "version": "1.2.0", - "integrity": "sha512-PPqYKSAXjpRCgLgLKVGPA33v5c/WgEx3wi6NFjIiegz90zSwyMpvTFp/uGcVnnbx6to28pgnzp/q8ih3QRjLMQ==", + "packages/fdc3-standard/node_modules/@vitest/utils": { + "version": "3.2.4", + "integrity": "sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==", + "dev": true, "license": "MIT", "dependencies": { - "property-expr": "^2.0.5", - "tiny-case": "^1.0.3", - "toposort": "^2.0.2", - "type-fest": "^2.19.0" + "@vitest/pretty-format": "3.2.4", + "loupe": "^3.1.4", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/yup/node_modules/type-fest": { - "version": "2.19.0", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "license": "(MIT OR CC0-1.0)", + "packages/fdc3-standard/node_modules/assertion-error": { + "version": "2.0.1", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=12" } }, - "packages/fdc3": { - "name": "@finos/fdc3", - "version": "2.2.2-beta.1", - "license": "Apache-2.0", + "packages/fdc3-standard/node_modules/brace-expansion": { + "version": "2.0.2", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", "dependencies": { - "@finos/fdc3-context": "2.2.2-beta.1", - "@finos/fdc3-get-agent": "2.2.2-beta.1", - "@finos/fdc3-schema": "2.2.2-beta.1", - "@finos/fdc3-standard": "2.2.2-beta.1" + "balanced-match": "^1.0.0" } }, - "packages/fdc3-agent-proxy": { - "name": "@finos/fdc3-agent-proxy", - "version": "2.2.2-beta.1", - "license": "Apache-2.0", + "packages/fdc3-standard/node_modules/chai": { + "version": "5.3.3", + "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", + "dev": true, + "license": "MIT", "dependencies": { - "@finos/fdc3-standard": "2.2.2-beta.1" + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" }, - "devDependencies": { - "@cucumber/cucumber": "10.3.1", - "@cucumber/html-formatter": "11.0.4", - "@cucumber/messages": "^28.1.0", - "@cucumber/pretty-formatter": "1.0.1", - "@eslint/js": "^9.19.0", - "@finos/testing": "2.2.2-beta.1", - "@types/expect": "24.3.0", - "@types/lodash": "4.14.167", - "@types/node": "^20.16.11", - "@types/uuid": "^10.0.0", - "@typescript-eslint/eslint-plugin": "^8.18.2", - "@typescript-eslint/parser": "^8.18.2", - "cucumber-console-formatter": "1.0.0", - "eslint": "^9.32.0", - "eslint-config-prettier": "^9.1.0", - "eslint-plugin-import": "^2.31.0", - "eslint-plugin-prettier": "3.3.1", - "expect": "^29.7.0", - "globals": "^15.14.0", - "is-ci": "2.0.0", - "jsonpath-plus": "^10.1.0", - "nyc": "17.1.0", - "prettier": "3.4.1", - "rimraf": "^6.0.1", - "ts-node": "^10.9.2", - "tsx": "^4.19.1", - "typescript": "^5.6.3", - "typescript-eslint": "^8.17.0", - "uuid": "^9.0.1" + "engines": { + "node": ">=18" } }, - "packages/fdc3-agent-proxy/node_modules/@cucumber/messages": { - "version": "28.1.0", - "integrity": "sha512-2LzZtOwYKNlCuNf31ajkrekoy2M4z0Z1QGiPH40n4gf5t8VOUFb7m1ojtR4LmGvZxBGvJZP8voOmRqDWzBzYKA==", + "packages/fdc3-standard/node_modules/check-error": { + "version": "2.1.3", + "integrity": "sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==", "dev": true, "license": "MIT", - "dependencies": { - "@types/uuid": "10.0.0", - "class-transformer": "0.5.1", - "reflect-metadata": "0.2.2", - "uuid": "11.1.0" + "engines": { + "node": ">= 16" } }, - "packages/fdc3-agent-proxy/node_modules/@cucumber/messages/node_modules/uuid": { - "version": "11.1.0", - "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==", + "packages/fdc3-standard/node_modules/deep-eql": { + "version": "5.0.2", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", "dev": true, - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], "license": "MIT", - "bin": { - "uuid": "dist/esm/bin/uuid" + "engines": { + "node": ">=6" } }, - "packages/fdc3-commonjs": { - "name": "@finos/fdc3-commonjs", - "version": "2.2.2-beta.1", - "license": "Apache-2.0", + "packages/fdc3-standard/node_modules/es-module-lexer": { + "version": "1.7.0", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "dev": true, + "license": "MIT" + }, + "packages/fdc3-standard/node_modules/istanbul-lib-source-maps": { + "version": "5.0.6", + "integrity": "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "@finos/fdc3": "2.2.2-beta.1" + "@jridgewell/trace-mapping": "^0.3.23", + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0" }, - "devDependencies": { - "@rollup/plugin-commonjs": "^28.0.1", - "@rollup/plugin-json": "^6.1.0", - "@rollup/plugin-node-resolve": "^15.3.0", - "@rollup/plugin-typescript": "^12.1.1", - "rollup": "^4.59.0", - "rollup-plugin-dts": "^6.3.0" + "engines": { + "node": ">=10" } }, - "packages/fdc3-context": { - "name": "@finos/fdc3-context", - "version": "2.2.2-beta.1", - "license": "Apache-2.0", - "devDependencies": { - "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "^9.19.0", - "@types/jest": "29.5.13", - "@typescript-eslint/eslint-plugin": "^8.18.2", - "@typescript-eslint/parser": "^8.18.2", - "ajv": "^8.18.0", - "ajv-formats": "^3.0.1", - "eslint": "^9.32.0", - "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "28.8.3", - "eslint-plugin-jsx-a11y": "^6.10.0", - "globals": "^15.14.0", - "mkdirp": "^3.0.1", - "quicktype": "23.0.78", - "rimraf": "^6.0.1", - "ts-jest": "29.2.5", - "tslib": "^2.7.0", - "typescript": "^5.6.3" + "packages/fdc3-standard/node_modules/loupe": { + "version": "3.2.1", + "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==", + "dev": true, + "license": "MIT" + }, + "packages/fdc3-standard/node_modules/minimatch": { + "version": "9.0.5", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "packages/fdc3-context/node_modules/ajv": { - "version": "8.18.0", - "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", + "packages/fdc3-standard/node_modules/pathe": { + "version": "2.0.3", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "packages/fdc3-standard/node_modules/pathval": { + "version": "2.0.1", + "integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==", "dev": true, "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" + "engines": { + "node": ">= 14.16" + } + }, + "packages/fdc3-standard/node_modules/picomatch": { + "version": "4.0.3", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "packages/fdc3-context/node_modules/json-schema-traverse": { - "version": "1.0.0", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "packages/fdc3-standard/node_modules/test-exclude": { + "version": "7.0.1", + "integrity": "sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==", "dev": true, - "license": "MIT" - }, - "packages/fdc3-get-agent": { - "name": "@finos/fdc3-get-agent", - "version": "2.2.2-beta.1", - "license": "Apache-2.0", + "license": "ISC", "dependencies": { - "@finos/fdc3-agent-proxy": "2.2.2-beta.1", - "@finos/fdc3-context": "2.2.2-beta.1", - "@finos/fdc3-schema": "2.2.2-beta.1", - "@finos/fdc3-standard": "2.2.2-beta.1", - "@types/uuid": "^10.0.0", - "uuid": "^9.0.1" + "@istanbuljs/schema": "^0.1.2", + "glob": "^10.4.1", + "minimatch": "^9.0.4" }, - "devDependencies": { - "@cucumber/cucumber": "10.3.1", - "@cucumber/messages": "^28.1.0", - "@eslint/js": "^9.19.0", - "@finos/fdc3-web-impl": "2.2.2-beta.1", - "@finos/testing": "2.2.2-beta.1", - "@types/node": "^20.16.11", - "@types/wtfnode": "^0.7.3", - "eslint": "^9.32.0", - "eslint-config-prettier": "^9.1.0", - "expect": "^29.7.0", - "globals": "^15.14.0", - "jsonpath-plus": "^10.1.0", - "nyc": "17.1.0", - "rimraf": "^6.0.1", - "tsx": "^4.19.1", - "typescript": "^5.6.3", - "typescript-eslint": "^8.17.0", - "wtfnode": "^0.9.3" + "engines": { + "node": ">=18" } }, - "packages/fdc3-get-agent/node_modules/@cucumber/messages": { - "version": "28.1.0", - "integrity": "sha512-2LzZtOwYKNlCuNf31ajkrekoy2M4z0Z1QGiPH40n4gf5t8VOUFb7m1ojtR4LmGvZxBGvJZP8voOmRqDWzBzYKA==", + "packages/fdc3-standard/node_modules/tinyrainbow": { + "version": "2.0.0", + "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "packages/fdc3-standard/node_modules/tinyspy": { + "version": "4.0.4", + "integrity": "sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "packages/fdc3-standard/node_modules/vite-node": { + "version": "3.2.4", + "integrity": "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==", "dev": true, "license": "MIT", "dependencies": { - "@types/uuid": "10.0.0", - "class-transformer": "0.5.1", - "reflect-metadata": "0.2.2", - "uuid": "11.1.0" + "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" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" } }, - "packages/fdc3-get-agent/node_modules/@cucumber/messages/node_modules/uuid": { - "version": "11.1.0", - "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==", + "packages/fdc3-standard/node_modules/vitest": { + "version": "3.2.4", + "integrity": "sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==", "dev": true, - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], "license": "MIT", + "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" + }, "bin": { - "uuid": "dist/esm/bin/uuid" + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "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 + } } }, - "packages/fdc3-schema": { - "name": "@finos/fdc3-schema", - "version": "2.2.2-beta.1", + "packages/fdc3/node_modules/@finos/fdc3-agent-proxy": { + "version": "2.2.0", + "integrity": "sha512-st5acoSamqICXlZKglK7/XyHdPSD5ywaUeH2dkJW6X7VVbt3CVEpU07nc2/H96MCYhSGX0J7DGzhPxcBq4rDvA==", "license": "Apache-2.0", - "devDependencies": { - "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "^9.19.0", - "@types/jest": "29.5.13", - "@typescript-eslint/eslint-plugin": "^8.18.2", - "@typescript-eslint/parser": "^8.18.2", - "eslint": "^9.32.0", - "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "28.8.3", - "eslint-plugin-jsx-a11y": "^6.10.0", - "globals": "^15.14.0", - "message-await": "^1.1.0", - "mkdirp": "^3.0.1", - "quicktype": "23.0.78", - "rimraf": "^6.0.1", - "ts-jest": "29.2.5", - "ts-morph": "^24.0.0", - "tslib": "^2.7.0", - "typescript": "^5.6.3" + "dependencies": { + "@finos/fdc3-standard": "2.2.0" } }, - "packages/fdc3-standard": { - "name": "@finos/fdc3-standard", - "version": "2.2.2-beta.1", + "packages/fdc3/node_modules/@finos/fdc3-context": { + "version": "2.2.0", + "integrity": "sha512-2o7nmKcIWpyhztSXu9mRGjFSTDGmARK4KiOH8ZS+qKjHbIzZnX5Eb5fmv5inFdLVRzF7Z4X0flMc2WDc8AI5eg==", + "license": "Apache-2.0" + }, + "packages/fdc3/node_modules/@finos/fdc3-get-agent": { + "version": "2.2.0", + "integrity": "sha512-bj2I8mE3fYo011EkIGaxLnvj6a0u1yyVtgaSI2NTAMX1sM04HJyt54Qz2ZDITzOhIUMxhglGIqjLPu1tPSPsSw==", "license": "Apache-2.0", "dependencies": { - "@finos/fdc3-context": "2.2.2-beta.1", - "@finos/fdc3-schema": "2.2.2-beta.1" - }, - "devDependencies": { - "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "^9.19.0", - "@types/jest": "29.5.13", - "@typescript-eslint/eslint-plugin": "^8.18.2", - "@typescript-eslint/parser": "^8.18.2", - "eslint": "^9.32.0", - "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "28.8.3", - "eslint-plugin-jsx-a11y": "^6.10.0", - "globals": "^15.14.0", - "jest": "29.7.0", - "jest-environment-jsdom": "29.7.0", - "jest-junit": "^16.0.0", - "jest-mock-extended": "3.0.5", - "prettier": "3.4.1", - "quicktype": "23.0.78", - "rimraf": "^6.0.1", - "ts-jest": "29.2.5", - "tslib": "^2.7.0", - "typescript": "^5.6.3" + "@finos/fdc3-agent-proxy": "2.2.0", + "@finos/fdc3-context": "2.2.0", + "@finos/fdc3-schema": "2.2.0", + "@finos/fdc3-standard": "2.2.0", + "@types/uuid": "^10.0.0", + "uuid": "^9.0.1" + } + }, + "packages/fdc3/node_modules/@finos/fdc3-schema": { + "version": "2.2.0", + "integrity": "sha512-6+APDKevZAVE4/3+JuBnKZGmvXPq/XBBnoM0sZfDWqAVPs3Ezk/c9YfKWTVx21Pdm+HmiSz2i/IZR6vEIGwjEg==", + "license": "Apache-2.0" + }, + "packages/fdc3/node_modules/@finos/fdc3-standard": { + "version": "2.2.0", + "integrity": "sha512-FfXo5Q7Hir4DqpqPhV07LfpjEGCm22QkxhZYODKX+Fi9lMd/XjHdMywYRN+pFkEyrkBgSveJDQ/T2+67lXsLxQ==", + "license": "Apache-2.0", + "dependencies": { + "@finos/fdc3-context": "2.2.0", + "@finos/fdc3-schema": "2.2.0" } }, "packages/testing": { @@ -20164,7 +21190,6 @@ "@typescript-eslint/parser": "^8.18.2", "ajv": "^8.18.0", "ajv-formats": "^3.0.1", - "cucumber-console-formatter": "1.0.0", "eslint": "^9.32.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-import": "^2.31.0", @@ -20174,6 +21199,7 @@ "jsonpath-plus": "^10.1.0", "nyc": "17.1.0", "prettier": "3.4.1", + "quickpickle": "^1.4.1", "rimraf": "^6.0.1", "ts-node": "^10.9.2", "tsx": "^4.19.1", @@ -20202,10 +21228,10 @@ "license": "MIT" }, "toolbox/fdc3-conformance": { - "version": "2.2.2-beta.1", + "version": "2.2.0", "license": "Apache-2.0", "dependencies": { - "@finos/fdc3": "2.2.2-beta.1", + "@finos/fdc3": "2.2.0", "buffer": "^6.0.3", "chai": "^4.3.6", "mocha": "^10.0.0", @@ -20230,12 +21256,63 @@ "webpack-cli": "^4.9.2" } }, + "toolbox/fdc3-conformance/node_modules/@finos/fdc3": { + "version": "2.2.0", + "integrity": "sha512-sevq73mCZHPJ7k6EAS2PbqN6yLScFe5xrfzBwd2SzPsraR3jHL15ycIqKMPnm89vjJyZsJhO9pERTagUAdSrkA==", + "license": "Apache-2.0", + "dependencies": { + "@finos/fdc3-context": "2.2.0", + "@finos/fdc3-get-agent": "2.2.0", + "@finos/fdc3-schema": "2.2.0", + "@finos/fdc3-standard": "2.2.0" + } + }, + "toolbox/fdc3-conformance/node_modules/@finos/fdc3-agent-proxy": { + "version": "2.2.0", + "integrity": "sha512-st5acoSamqICXlZKglK7/XyHdPSD5ywaUeH2dkJW6X7VVbt3CVEpU07nc2/H96MCYhSGX0J7DGzhPxcBq4rDvA==", + "license": "Apache-2.0", + "dependencies": { + "@finos/fdc3-standard": "2.2.0" + } + }, + "toolbox/fdc3-conformance/node_modules/@finos/fdc3-context": { + "version": "2.2.0", + "integrity": "sha512-2o7nmKcIWpyhztSXu9mRGjFSTDGmARK4KiOH8ZS+qKjHbIzZnX5Eb5fmv5inFdLVRzF7Z4X0flMc2WDc8AI5eg==", + "license": "Apache-2.0" + }, + "toolbox/fdc3-conformance/node_modules/@finos/fdc3-get-agent": { + "version": "2.2.0", + "integrity": "sha512-bj2I8mE3fYo011EkIGaxLnvj6a0u1yyVtgaSI2NTAMX1sM04HJyt54Qz2ZDITzOhIUMxhglGIqjLPu1tPSPsSw==", + "license": "Apache-2.0", + "dependencies": { + "@finos/fdc3-agent-proxy": "2.2.0", + "@finos/fdc3-context": "2.2.0", + "@finos/fdc3-schema": "2.2.0", + "@finos/fdc3-standard": "2.2.0", + "@types/uuid": "^10.0.0", + "uuid": "^9.0.1" + } + }, + "toolbox/fdc3-conformance/node_modules/@finos/fdc3-schema": { + "version": "2.2.0", + "integrity": "sha512-6+APDKevZAVE4/3+JuBnKZGmvXPq/XBBnoM0sZfDWqAVPs3Ezk/c9YfKWTVx21Pdm+HmiSz2i/IZR6vEIGwjEg==", + "license": "Apache-2.0" + }, + "toolbox/fdc3-conformance/node_modules/@finos/fdc3-standard": { + "version": "2.2.0", + "integrity": "sha512-FfXo5Q7Hir4DqpqPhV07LfpjEGCm22QkxhZYODKX+Fi9lMd/XjHdMywYRN+pFkEyrkBgSveJDQ/T2+67lXsLxQ==", + "license": "Apache-2.0", + "dependencies": { + "@finos/fdc3-context": "2.2.0", + "@finos/fdc3-schema": "2.2.0" + } + }, "toolbox/fdc3-for-web/demo": { "name": "@finos/demo", - "version": "2.2.2-beta.1", + "version": "2.2.0", "license": "Apache-2.0", "dependencies": { - "@finos/fdc3": "2.2.2-beta.1", + "@finos/fdc3": "2.2.0", "@types/uuid": "^10.0.0", "@types/ws": "^8.5.12", "express": "^4.21.1", @@ -20261,6 +21338,57 @@ "vite": "^6.4.1" } }, + "toolbox/fdc3-for-web/demo/node_modules/@finos/fdc3": { + "version": "2.2.0", + "integrity": "sha512-sevq73mCZHPJ7k6EAS2PbqN6yLScFe5xrfzBwd2SzPsraR3jHL15ycIqKMPnm89vjJyZsJhO9pERTagUAdSrkA==", + "license": "Apache-2.0", + "dependencies": { + "@finos/fdc3-context": "2.2.0", + "@finos/fdc3-get-agent": "2.2.0", + "@finos/fdc3-schema": "2.2.0", + "@finos/fdc3-standard": "2.2.0" + } + }, + "toolbox/fdc3-for-web/demo/node_modules/@finos/fdc3-agent-proxy": { + "version": "2.2.0", + "integrity": "sha512-st5acoSamqICXlZKglK7/XyHdPSD5ywaUeH2dkJW6X7VVbt3CVEpU07nc2/H96MCYhSGX0J7DGzhPxcBq4rDvA==", + "license": "Apache-2.0", + "dependencies": { + "@finos/fdc3-standard": "2.2.0" + } + }, + "toolbox/fdc3-for-web/demo/node_modules/@finos/fdc3-context": { + "version": "2.2.0", + "integrity": "sha512-2o7nmKcIWpyhztSXu9mRGjFSTDGmARK4KiOH8ZS+qKjHbIzZnX5Eb5fmv5inFdLVRzF7Z4X0flMc2WDc8AI5eg==", + "license": "Apache-2.0" + }, + "toolbox/fdc3-for-web/demo/node_modules/@finos/fdc3-get-agent": { + "version": "2.2.0", + "integrity": "sha512-bj2I8mE3fYo011EkIGaxLnvj6a0u1yyVtgaSI2NTAMX1sM04HJyt54Qz2ZDITzOhIUMxhglGIqjLPu1tPSPsSw==", + "license": "Apache-2.0", + "dependencies": { + "@finos/fdc3-agent-proxy": "2.2.0", + "@finos/fdc3-context": "2.2.0", + "@finos/fdc3-schema": "2.2.0", + "@finos/fdc3-standard": "2.2.0", + "@types/uuid": "^10.0.0", + "uuid": "^9.0.1" + } + }, + "toolbox/fdc3-for-web/demo/node_modules/@finos/fdc3-schema": { + "version": "2.2.0", + "integrity": "sha512-6+APDKevZAVE4/3+JuBnKZGmvXPq/XBBnoM0sZfDWqAVPs3Ezk/c9YfKWTVx21Pdm+HmiSz2i/IZR6vEIGwjEg==", + "license": "Apache-2.0" + }, + "toolbox/fdc3-for-web/demo/node_modules/@finos/fdc3-standard": { + "version": "2.2.0", + "integrity": "sha512-FfXo5Q7Hir4DqpqPhV07LfpjEGCm22QkxhZYODKX+Fi9lMd/XjHdMywYRN+pFkEyrkBgSveJDQ/T2+67lXsLxQ==", + "license": "Apache-2.0", + "dependencies": { + "@finos/fdc3-context": "2.2.0", + "@finos/fdc3-schema": "2.2.0" + } + }, "toolbox/fdc3-for-web/demo/node_modules/color": { "version": "4.2.3", "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", @@ -20296,23 +21424,24 @@ "@types/uuid": "^10.0.0", "@typescript-eslint/eslint-plugin": "^8.18.2", "@typescript-eslint/parser": "^8.18.2", + "@vitest/coverage-v8": "^2.0.0", "cucumber-console-formatter": "1.0.0", "eslint": "^9.32.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-import": "^2.31.0", "eslint-plugin-prettier": "3.3.1", - "expect": "^29.7.0", "globals": "^15.14.0", "is-ci": "2.0.0", "jsonpath-plus": "^10.1.0", - "nyc": "17.1.0", "openapi-typescript": "^6.7.6", "prettier": "3.4.1", + "quickpickle": "^1.0.0", "rimraf": "^6.0.1", "ts-node": "^10.9.2", "typescript": "^5.6.3", "typescript-eslint": "^8.17.0", - "uuid": "^9.0.1" + "uuid": "^9.0.1", + "vitest": "^2.0.0" } }, "toolbox/fdc3-for-web/fdc3-web-impl/node_modules/@cucumber/messages": { diff --git a/package.json b/package.json index 2d6ca4d0b..7382c32e1 100644 --- a/package.json +++ b/package.json @@ -62,8 +62,10 @@ "istanbul-merge": "^2.0.0", "lint-staged": "^15.2.10", "nyc": "17.1.0", + "pixelmatch": "^7.1.0", "prettier": "3.4.1", - "tsx": "^4.20.5" + "tsx": "^4.20.5", + "vitest-mock-extended": "^2.0.0" }, "lint-staged": { "**/*": "prettier --write --ignore-unknown" diff --git a/packages/fdc3-agent-proxy/package.json b/packages/fdc3-agent-proxy/package.json index 0dc377ddd..8af51d6fa 100644 --- a/packages/fdc3-agent-proxy/package.json +++ b/packages/fdc3-agent-proxy/package.json @@ -1,6 +1,6 @@ { "name": "@finos/fdc3-agent-proxy", - "version": "2.2.0", + "version": "2.2.2-beta.1", "author": "Fintech Open Source Foundation (FINOS)", "homepage": "https://fdc3.finos.org", "repository": { @@ -11,6 +11,7 @@ "tag": "latest" }, "license": "Apache-2.0", + "type": "module", "main": "dist/src/index.js", "types": "dist/src/index.d.ts", "files": [ @@ -18,43 +19,38 @@ ], "scripts": { "build": "tsc", - "test": "tsc && nyc --reporter=lcov --reporter=text --reporter json cucumber-js", - "clean": "rimraf dist cucumber-report.html coverage .nyc_output node_modules test-results.xml", + "test": "tsc && vitest run", + "test:watch": "vitest", + "test:coverage": "vitest run --coverage", + "clean": "rimraf dist coverage node_modules", "lint": "eslint src/" }, "dependencies": { - "@finos/fdc3-standard": "2.2.0" + "@finos/fdc3-standard": "2.2.2-beta.1" }, "devDependencies": { "@cucumber/cucumber": "10.3.1", - "@cucumber/html-formatter": "11.0.4", - "@cucumber/messages": "^28.1.0", - "@cucumber/pretty-formatter": "1.0.1", "@eslint/js": "^9.19.0", - "@finos/testing": "2.2.0", - "@types/expect": "24.3.0", - "@types/lodash": "4.14.167", + "@finos/testing": "2.2.2-beta.1", "@types/node": "^20.16.11", "@types/uuid": "^10.0.0", "@typescript-eslint/eslint-plugin": "^8.18.2", "@typescript-eslint/parser": "^8.18.2", - "cucumber-console-formatter": "1.0.0", + "@vitest/coverage-v8": "^2.0.0", "eslint": "^9.32.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-import": "^2.31.0", "eslint-plugin-prettier": "3.3.1", - "expect": "^29.7.0", "globals": "^15.14.0", "is-ci": "2.0.0", "jsonpath-plus": "^10.1.0", - "nyc": "17.1.0", "prettier": "3.4.1", + "quickpickle": "^1.0.0", "rimraf": "^6.0.1", - "ts-node": "^10.9.2", "tsx": "^4.19.1", "typescript": "^5.6.3", "typescript-eslint": "^8.17.0", - "uuid": "^9.0.1" - }, - "type": "module" + "uuid": "^9.0.1", + "vitest": "^2.0.0" + } } diff --git a/packages/fdc3-agent-proxy/src/listeners/DesktopAgentEventListener.ts b/packages/fdc3-agent-proxy/src/listeners/DesktopAgentEventListener.ts index 832a2425e..4aea635b3 100644 --- a/packages/fdc3-agent-proxy/src/listeners/DesktopAgentEventListener.ts +++ b/packages/fdc3-agent-proxy/src/listeners/DesktopAgentEventListener.ts @@ -4,9 +4,9 @@ import { AddEventListenerRequestPayload, AgentEventMessage, ChannelChangedEvent, -} from '@finos/fdc3-schema/generated/api/BrowserTypes'; -import { Messaging } from '../Messaging'; -import { AbstractListener } from './AbstractListener'; +} from '@finos/fdc3-schema/generated/api/BrowserTypes.js'; +import { Messaging } from '../Messaging.js'; +import { AbstractListener } from './AbstractListener.js'; function wrapHandler(handler: EventHandler): (msg: AgentEventMessage) => void { return (m: AgentEventMessage) => { diff --git a/packages/fdc3-agent-proxy/test/step-definitions/channelSelector.steps.ts b/packages/fdc3-agent-proxy/test/step-definitions/channelSelector.steps.ts index e34c11dbd..6f8aa93b7 100644 --- a/packages/fdc3-agent-proxy/test/step-definitions/channelSelector.steps.ts +++ b/packages/fdc3-agent-proxy/test/step-definitions/channelSelector.steps.ts @@ -1,4 +1,4 @@ -import { Given, When } from '@cucumber/cucumber'; +import { Given, When } from 'quickpickle'; import { SimpleIntentResolver } from '@finos/testing'; import { CustomWorld } from '../world/index.js'; import { CHANNEL_STATE } from '@finos/testing'; @@ -18,24 +18,24 @@ const logLevel = LogLevel.WARN; Given( 'A Channel Selector in {string} and a Desktop Agent in {string}', - async function (this: CustomWorld, selectorField: string, daField: string) { - if (!this.messaging) { - this.messaging = new TestMessaging(this.props[CHANNEL_STATE]); + async (world: CustomWorld, selectorField: string, daField: string) => { + if (!world.messaging) { + world.messaging = new TestMessaging(world.props[CHANNEL_STATE]); } const ts = new TestChannelSelector(); - this.props[selectorField] = ts; + world.props[selectorField] = ts; - const cs = new DefaultChannelSupport(this.messaging, ts, 10000); - const hs = new DefaultHeartbeatSupport(this.messaging); - const is = new DefaultIntentSupport(this.messaging, new SimpleIntentResolver(this), 10000, 100000); - const as = new DefaultAppSupport(this.messaging, 10000, 100000); + const cs = new DefaultChannelSupport(world.messaging, ts, 10000); + const hs = new DefaultHeartbeatSupport(world.messaging); + const is = new DefaultIntentSupport(world.messaging, new SimpleIntentResolver(world), 10000, 100000); + const as = new DefaultAppSupport(world.messaging, 10000, 100000); const da = new DesktopAgentProxy(hs, cs, is, as, [hs], logLevel); await da.connect(); - this.props[daField] = da; - this.props['result'] = null; + world.props[daField] = da; + world.props['result'] = null; //populate the channel selector const channel = await cs.getUserChannel(); @@ -46,24 +46,24 @@ Given( When( 'The first channel is selected via the channel selector in {string}', - async function (this: CustomWorld, selectorField: string) { - const selector = this.props[selectorField] as TestChannelSelector; + async (world: CustomWorld, selectorField: string) => { + const selector = world.props[selectorField] as TestChannelSelector; selector.selectFirstChannel(); } ); When( 'The second channel is selected via the channel selector in {string}', - async function (this: CustomWorld, selectorField: string) { - const selector = this.props[selectorField] as TestChannelSelector; + async (world: CustomWorld, selectorField: string) => { + const selector = world.props[selectorField] as TestChannelSelector; selector.selectSecondChannel(); } ); When( 'The channel is deselected via the channel selector in {string}', - async function (this: CustomWorld, selectorField: string) { - const selector = this.props[selectorField] as TestChannelSelector; + async (world: CustomWorld, selectorField: string) => { + const selector = world.props[selectorField] as TestChannelSelector; selector.deselectChannel(); } ); diff --git a/packages/fdc3-agent-proxy/test/step-definitions/channels.steps.ts b/packages/fdc3-agent-proxy/test/step-definitions/channels.steps.ts index 9547a9bdc..87e200033 100644 --- a/packages/fdc3-agent-proxy/test/step-definitions/channels.steps.ts +++ b/packages/fdc3-agent-proxy/test/step-definitions/channels.steps.ts @@ -1,4 +1,5 @@ -import { DataTable, Given, Then, When } from '@cucumber/cucumber'; +import { Given, Then, When } from 'quickpickle'; +import { DataTable } from '@cucumber/cucumber'; import { Context } from '@finos/fdc3-context'; import { handleResolve, matchData } from '@finos/testing'; import { CustomWorld } from '../world/index.js'; @@ -37,173 +38,173 @@ const contextMap: Record = { }, }; -Given('{string} is a {string} context', function (this: CustomWorld, field: string, type: string) { - this.props[field] = contextMap[type]; +Given('{string} is a {string} context', (world: CustomWorld, field: string, type: string) => { + world.props[field] = contextMap[type]; }); Given( '{string} is a BroadcastEvent message on channel {string} with context {string}', - function (this: CustomWorld, field: string, channel: string, context: string) { + (world: CustomWorld, field: string, channel: string, context: string) => { const message = { meta: { - ...this.messaging!.createEventMeta(), + ...world.messaging!.createEventMeta(), }, payload: { - channelId: handleResolve(channel, this), + channelId: handleResolve(channel, world), context: contextMap[context], }, type: 'broadcastEvent', } as BroadcastEvent; - this.props[field] = message; + world.props[field] = message; } ); Given( '{string} is a {string} message on channel {string}', - function (this: CustomWorld, field: string, type: string, channel: string) { + (world: CustomWorld, field: string, type: string, channel: string) => { const message = { - meta: this.messaging!.createEventMeta(), + meta: world.messaging!.createEventMeta(), payload: { - privateChannelId: handleResolve(channel, this), + privateChannelId: handleResolve(channel, world), }, type, } as PrivateChannelOnDisconnectEvent; - this.props[field] = message; + world.props[field] = message; } ); Given( '{string} is a {string} message on channel {string} with listenerType as {string}', - function (this: CustomWorld, field: string, type: string, channel: string, listenerType: string) { + (world: CustomWorld, field: string, type: string, channel: string, listenerType: string) => { const message = { - meta: this.messaging!.createMeta(), + meta: world.messaging!.createMeta(), payload: { - channelId: handleResolve(channel, this), + channelId: handleResolve(channel, world), listenerType, }, type, }; - this.props[field] = message; + world.props[field] = message; } ); Given( '{string} is a channelChangedEvent message on channel {string}', - function (this: CustomWorld, field: string, channel: string) { + (world: CustomWorld, field: string, channel: string) => { const message: ChannelChangedEvent = { meta: { - eventUuid: this.messaging!.createUUID(), + eventUuid: world.messaging!.createUUID(), timestamp: new Date(), }, payload: { - newChannelId: handleResolve(channel, this), + newChannelId: handleResolve(channel, world), }, type: 'channelChangedEvent', }; - this.props[field] = message; + world.props[field] = message; } ); Given( '{string} is a PrivateChannelOnUnsubscribeEvent message on channel {string} with contextType as {string}', - function (this: CustomWorld, field: string, channel: string, contextType: string) { + (world: CustomWorld, field: string, channel: string, contextType: string) => { const message = { - meta: this.messaging!.createEventMeta(), + meta: world.messaging!.createEventMeta(), payload: { - privateChannelId: handleResolve(channel, this), + privateChannelId: handleResolve(channel, world), contextType, }, type: 'privateChannelOnUnsubscribeEvent', } as PrivateChannelOnUnsubscribeEvent; - this.props[field] = message; + world.props[field] = message; } ); Given( '{string} is a PrivateChannelOnAddContextListenerEvent message on channel {string} with contextType as {string}', - function (this: CustomWorld, field: string, channel: string, contextType: string) { + (world: CustomWorld, field: string, channel: string, contextType: string) => { const message = { - meta: this.messaging!.createEventMeta(), + meta: world.messaging!.createEventMeta(), payload: { - privateChannelId: handleResolve(channel, this), + privateChannelId: handleResolve(channel, world), contextType, }, type: 'privateChannelOnAddContextListenerEvent', } as PrivateChannelOnAddContextListenerEvent; - this.props[field] = message; + world.props[field] = message; } ); Given( '{string} is a PrivateChannelOnDisconnectEvent message on channel {string}', - function (this: CustomWorld, field: string, channel: string) { + (world: CustomWorld, field: string, channel: string) => { const message = { - meta: this.messaging!.createEventMeta(), + meta: world.messaging!.createEventMeta(), payload: { - privateChannelId: handleResolve(channel, this), + privateChannelId: handleResolve(channel, world), }, type: 'privateChannelOnDisconnectEvent', } as PrivateChannelOnDisconnectEvent; - this.props[field] = message; + world.props[field] = message; } ); -Given('{string} pipes types to {string}', function (this: CustomWorld, typeHandlerName: string, field: string) { - this.props[field] = []; - this.props[typeHandlerName] = (s?: string) => { - this.props[field].push(s); +Given('{string} pipes types to {string}', (world: CustomWorld, typeHandlerName: string, field: string) => { + world.props[field] = []; + world.props[typeHandlerName] = (s?: string) => { + world.props[field].push(s); }; }); -Given('{string} pipes events to {string}', function (this: CustomWorld, typeHandlerName: string, field: string) { - this.props[field] = []; - this.props[typeHandlerName] = (s?: ApiEvent) => { - this.props[field].push(s?.details); +Given('{string} pipes events to {string}', (world: CustomWorld, typeHandlerName: string, field: string) => { + world.props[field] = []; + world.props[typeHandlerName] = (s?: ApiEvent) => { + world.props[field].push(s?.details); }; }); -Given('{string} pipes context to {string}', function (this: CustomWorld, contextHandlerName: string, field: string) { - this.props[field] = []; - this.props[contextHandlerName] = (context: Context) => { - this.props[field].push(context); +Given('{string} pipes context to {string}', (world: CustomWorld, contextHandlerName: string, field: string) => { + world.props[field] = []; + world.props[contextHandlerName] = (context: Context) => { + world.props[field].push(context); }; }); -When('messaging receives {string}', function (this: CustomWorld, field: string) { - const message = handleResolve(field, this); +When('messaging receives {string}', (world: CustomWorld, field: string) => { + const message = handleResolve(field, world); console.log(`Sending: `, message); - this.messaging!.receive(message, console.log); + world.messaging!.receive(message, console.log); }); -Then('messaging will have posts', function (this: CustomWorld, dt: DataTable) { +Then('messaging will have posts', (world: CustomWorld, dt: DataTable) => { // just take the last few posts and match those const matching = dt.rows().length; - let toUse = this.messaging!.allPosts!; + let toUse = world.messaging!.allPosts!; if (toUse.length > matching) { toUse = toUse.slice(toUse.length - matching, toUse.length); } - matchData(this, toUse, dt); + matchData(world, toUse, dt); }); -Given('channel {string} has context {string}', function (this: CustomWorld, channel: string, context: string) { - const ctxObject = handleResolve(context, this); - const state = this.props[CHANNEL_STATE] ?? {}; - this.props[CHANNEL_STATE] = state; +Given('channel {string} has context {string}', (world: CustomWorld, channel: string, context: string) => { + const ctxObject = handleResolve(context, world); + const state = world.props[CHANNEL_STATE] ?? {}; + world.props[CHANNEL_STATE] = state; const cs = state[channel] ?? []; cs.push(ctxObject); state[channel] = cs; }); -Given('User Channels one, two and three', function (this: CustomWorld) { - this.props[CHANNEL_STATE] = { +Given('User Channels one, two and three', (world: CustomWorld) => { + world.props[CHANNEL_STATE] = { one: [], two: [], three: [], @@ -212,77 +213,74 @@ Given('User Channels one, two and three', function (this: CustomWorld) { When( 'I destructure methods {string}, {string} from {string}', - function (this: CustomWorld, method1: string, method2: string, objectField: string) { - const object = handleResolve(objectField, this); - this.props[`destructured_${method1}`] = object[method1]; - this.props[`destructured_${method2}`] = object[method2]; + (world: CustomWorld, method1: string, method2: string, objectField: string) => { + const object = handleResolve(objectField, world); + world.props[`destructured_${method1}`] = object[method1]; + world.props[`destructured_${method2}`] = object[method2]; } ); -When( - 'I destructure method {string} from {string}', - function (this: CustomWorld, methodName: string, objectField: string) { - const object = handleResolve(objectField, this); - const destructuredMethod = object[methodName]; - this.props[`destructured_${methodName}`] = destructuredMethod; - } -); +When('I destructure method {string} from {string}', (world: CustomWorld, methodName: string, objectField: string) => { + const object = handleResolve(objectField, world); + const destructuredMethod = object[methodName]; + world.props[`destructured_${methodName}`] = destructuredMethod; +}); -When('I call destructured {string}', async function (this: CustomWorld, methodName: string) { - const destructuredMethod = this.props[`destructured_${methodName}`]; +When('I call destructured {string}', async (world: CustomWorld, methodName: string) => { + const destructuredMethod = world.props[`destructured_${methodName}`]; try { const result = await destructuredMethod(); - this.props['result'] = result; + world.props['result'] = result; } catch (error) { - this.props['error'] = error; - this.props['result'] = null; + world.props['error'] = error; + world.props['result'] = null; } }); When( 'I call destructured {string} with parameter {string}', - async function (this: CustomWorld, methodName: string, param: string) { - const destructuredMethod = this.props[`destructured_${methodName}`]; - const resolvedParam = handleResolve(param, this); + async (world: CustomWorld, methodName: string, param: string) => { + const destructuredMethod = world.props[`destructured_${methodName}`]; + const resolvedParam = handleResolve(param, world); try { const result = await destructuredMethod(resolvedParam); - this.props['result'] = result; + world.props['result'] = result; } catch (error) { - this.props['error'] = error; - this.props['result'] = null; + world.props['error'] = error; + world.props['result'] = null; } } ); When( 'I call destructured {string} with parameters {string} and {string}', - async function (this: CustomWorld, methodName: string, param1: string, param2: string) { - const destructuredMethod = this.props[`destructured_${methodName}`]; - const resolvedParam1 = handleResolve(param1, this); - const resolvedParam2 = handleResolve(param2, this); + async (world: CustomWorld, methodName: string, param1: string, param2: string) => { + const destructuredMethod = world.props[`destructured_${methodName}`]; + const resolvedParam1 = handleResolve(param1, world); + const resolvedParam2 = handleResolve(param2, world); try { const result = await destructuredMethod(resolvedParam1, resolvedParam2); - this.props['result'] = result; + world.props['result'] = result; } catch (error) { - this.props['error'] = error; - this.props['result'] = null; + world.props['error'] = error; + world.props['result'] = null; } } ); When( 'I call destructured {string} with parameters {string} and {string} and {string}', - async function (this: CustomWorld, methodName: string, param1: string, param2: string, param3: string) { - const destructuredMethod = this.props[`destructured_${methodName}`]; - const resolvedParam1 = handleResolve(param1, this); - const resolvedParam2 = handleResolve(param2, this); - const resolvedParam3 = handleResolve(param3, this); + async (world: CustomWorld, methodName: string, param1: string, param2: string, param3: string) => { + const destructuredMethod = world.props[`destructured_${methodName}`]; + const resolvedParam1 = handleResolve(param1, world); + const resolvedParam2 = handleResolve(param2, world); + const resolvedParam3 = handleResolve(param3, world); try { const result = await destructuredMethod(resolvedParam1, resolvedParam2, resolvedParam3); - this.props['result'] = result; + world.props['result'] = result; } catch (error) { - this.props['error'] = error; - this.props['result'] = null; + world.props['error'] = error; + world.props['result'] = null; } } ); diff --git a/packages/fdc3-agent-proxy/test/step-definitions/generic.steps.ts b/packages/fdc3-agent-proxy/test/step-definitions/generic.steps.ts index 187d096a5..d4f01f907 100644 --- a/packages/fdc3-agent-proxy/test/step-definitions/generic.steps.ts +++ b/packages/fdc3-agent-proxy/test/step-definitions/generic.steps.ts @@ -1,5 +1,5 @@ import { TestMessaging } from '../support/TestMessaging.js'; -import { Given, When } from '@cucumber/cucumber'; +import { Given, When } from 'quickpickle'; import { CustomWorld } from '../world/index.js'; import { DesktopAgentProxy, @@ -8,40 +8,42 @@ import { DefaultIntentSupport, DefaultHeartbeatSupport, } from '../../src/index.js'; -import { SimpleIntentResolver, setupGenericSteps } from '@finos/testing'; -import { CHANNEL_STATE, SimpleChannelSelector } from '@finos/testing/dist/src/agent'; +import { SimpleIntentResolver, SimpleChannelSelector, CHANNEL_STATE, setupGenericSteps } from '@finos/testing'; import { HeartbeatEvent } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; import { LogLevel } from '@finos/fdc3-standard'; +import path from 'path'; -//Update this to enable debug output when debugging test failures +// Update this to enable debug output when debugging test failures const logLevel = LogLevel.WARN; -Given('A Desktop Agent in {string}', async function (this: CustomWorld, field: string) { - if (!this.messaging) { - this.messaging = new TestMessaging(this.props[CHANNEL_STATE]); +// Register shared generic steps from @finos/testing +const schemaBasePath = path.join(import.meta.dirname, '../../../'); +setupGenericSteps(schemaBasePath); + +Given('A Desktop Agent in {string}', async (world: CustomWorld, field: string) => { + if (!world.messaging) { + world.messaging = new TestMessaging(world.props[CHANNEL_STATE]); } - //n.b. using short timeouts to avoid extending tests unnecessarily - const cs = new DefaultChannelSupport(this.messaging, new SimpleChannelSelector(this), 1500); - const hs = new DefaultHeartbeatSupport(this.messaging); - const is = new DefaultIntentSupport(this.messaging, new SimpleIntentResolver(this), 1500, 3000); - const as = new DefaultAppSupport(this.messaging, 1500, 3000); + // n.b. using short timeouts to avoid extending tests unnecessarily + const cs = new DefaultChannelSupport(world.messaging, new SimpleChannelSelector(world), 1500); + const hs = new DefaultHeartbeatSupport(world.messaging); + const is = new DefaultIntentSupport(world.messaging, new SimpleIntentResolver(world), 1500, 3000); + const as = new DefaultAppSupport(world.messaging, 1500, 3000); const da = new DesktopAgentProxy(hs, cs, is, as, [hs], logLevel); await da.connect(); - this.props[field] = da; - this.props['result'] = null; + world.props[field] = da; + world.props['result'] = null; }); -When('messaging receives a heartbeat event', function (this: CustomWorld) { - this.messaging?.receive({ +When('messaging receives a heartbeat event', (world: CustomWorld) => { + world.messaging?.receive({ type: 'heartbeatEvent', - meta: this.messaging.createEventMeta(), + meta: world.messaging.createEventMeta(), payload: { timestamp: new Date(), }, } as HeartbeatEvent); }); - -setupGenericSteps(); diff --git a/packages/fdc3-agent-proxy/test/step-definitions/intents.steps.ts b/packages/fdc3-agent-proxy/test/step-definitions/intents.steps.ts index b2d9fc85e..0933667c6 100644 --- a/packages/fdc3-agent-proxy/test/step-definitions/intents.steps.ts +++ b/packages/fdc3-agent-proxy/test/step-definitions/intents.steps.ts @@ -1,44 +1,44 @@ -import { Given } from '@cucumber/cucumber'; +import { Given } from 'quickpickle'; import { CustomWorld } from '../world/index.js'; import { handleResolve } from '@finos/testing'; import { Context } from '@finos/fdc3-context'; import { ContextMetadata, ResolveError } from '@finos/fdc3-standard'; import { IntentEvent } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; -Given('app {string}', function (this: CustomWorld, appStr: string) { +Given('app {string}', (world: CustomWorld, appStr: string) => { const [appId, instanceId] = appStr.split('/'); const app = { appId, instanceId }; - this.messaging?.addAppIntentDetail({ + world.messaging?.addAppIntentDetail({ app, }); - this.props[instanceId] = app; + world.props[instanceId] = app; }); -Given('app {string} resolves intent {string}', function (this: CustomWorld, appStr: string, intent: string) { +Given('app {string} resolves intent {string}', (world: CustomWorld, appStr: string, intent: string) => { const [appId, instanceId] = appStr.split('/'); const app = { appId, instanceId }; - this.messaging?.addAppIntentDetail({ + world.messaging?.addAppIntentDetail({ app, intent, }); - this.props[instanceId] = app; - this.props[appId] = { + world.props[instanceId] = app; + world.props[appId] = { appId, }; }); Given( 'app {string} resolves intent {string} with result type {string}', - function (this: CustomWorld, appStr: string, intent: string, resultType: string) { + (world: CustomWorld, appStr: string, intent: string, resultType: string) => { const [appId, instanceId] = appStr.split('/'); const app = { appId, instanceId }; - this.messaging?.addAppIntentDetail({ + world.messaging?.addAppIntentDetail({ app, intent, resultType, }); - this.props[instanceId] = app; - this.props[appId] = { + world.props[instanceId] = app; + world.props[appId] = { appId, }; } @@ -46,16 +46,16 @@ Given( Given( 'app {string} resolves intent {string} with context {string}', - function (this: CustomWorld, appStr: string, intent: string, context: string) { + (world: CustomWorld, appStr: string, intent: string, context: string) => { const [appId, instanceId] = appStr.split('/'); const app = { appId, instanceId }; - this.messaging?.addAppIntentDetail({ + world.messaging?.addAppIntentDetail({ app, intent, context, }); - this.props[instanceId] = app; - this.props[appId] = { + world.props[instanceId] = app; + world.props[appId] = { appId, }; } @@ -63,43 +63,43 @@ Given( Given( 'app {string} resolves intent {string} with context {string} and result type {string}', - function (this: CustomWorld, appStr: string, intent: string, context: string, resultType: string) { + (world: CustomWorld, appStr: string, intent: string, context: string, resultType: string) => { const [appId, instanceId] = appStr.split('/'); const app = { appId, instanceId }; - this.messaging?.addAppIntentDetail({ + world.messaging?.addAppIntentDetail({ app, intent, context, resultType, }); - this.props[instanceId] = app; + world.props[instanceId] = app; } ); -Given('Raise Intent returns a context of {string}', function (this: CustomWorld, result: string) { - this.messaging?.setIntentResult({ - context: handleResolve(result, this), +Given('Raise Intent returns a context of {string}', (world: CustomWorld, result: string) => { + world.messaging?.setIntentResult({ + context: handleResolve(result, world), }); }); -Given('Raise Intent will throw a {string} error', function (this: CustomWorld, error: ResolveError) { - this.messaging?.setIntentResult({ +Given('Raise Intent will throw a {string} error', (world: CustomWorld, error: ResolveError) => { + world.messaging?.setIntentResult({ error, }); }); -Given('Raise Intent returns no result', function (this: CustomWorld) { - this.messaging?.setIntentResult({}); +Given('Raise Intent returns no result', (world: CustomWorld) => { + world.messaging?.setIntentResult({}); }); -Given('Raise Intent times out', function (this: CustomWorld) { - this.messaging?.setIntentResult({ +Given('Raise Intent times out', (world: CustomWorld) => { + world.messaging?.setIntentResult({ timeout: true, }); }); -Given('Raise Intent returns an app channel', function (this: CustomWorld) { - this.messaging?.setIntentResult({ +Given('Raise Intent returns an app channel', (world: CustomWorld) => { + world.messaging?.setIntentResult({ channel: { type: 'app', id: 'result-channel', @@ -111,8 +111,8 @@ Given('Raise Intent returns an app channel', function (this: CustomWorld) { }); }); -Given('Raise Intent returns a user channel', function (this: CustomWorld) { - this.messaging?.setIntentResult({ +Given('Raise Intent returns a user channel', (world: CustomWorld) => { + world.messaging?.setIntentResult({ channel: { type: 'user', id: 'result-channel', @@ -124,8 +124,8 @@ Given('Raise Intent returns a user channel', function (this: CustomWorld) { }); }); -Given('Raise Intent returns a private channel', function (this: CustomWorld) { - this.messaging?.setIntentResult({ +Given('Raise Intent returns a private channel', (world: CustomWorld) => { + world.messaging?.setIntentResult({ channel: { type: 'private', id: 'result-channel', @@ -139,11 +139,11 @@ Given('Raise Intent returns a private channel', function (this: CustomWorld) { Given( '{string} is a intentEvent message with intent {string} and context {string}', - function (this: CustomWorld, field: string, intent: string, context: string) { + (world: CustomWorld, field: string, intent: string, context: string) => { const msg: IntentEvent = { type: 'intentEvent', meta: { - eventUuid: this.messaging!.createUUID(), + eventUuid: world.messaging!.createUUID(), timestamp: new Date(), }, payload: { @@ -151,28 +151,28 @@ Given( appId: 'some-app-id', desktopAgent: 'some-desktop-agent', }, - context: handleResolve(context, this), + context: handleResolve(context, world), intent, raiseIntentRequestUuid: 'request-id', }, }; - this.props[field] = msg; + world.props[field] = msg; } ); -Given('{string} pipes intent to {string}', function (this: CustomWorld, intentHandlerName: string, field: string) { - this.props[field] = []; - this.props[intentHandlerName] = (context: Context, metadata: ContextMetadata) => { - this.props[field].push({ +Given('{string} pipes intent to {string}', (world: CustomWorld, intentHandlerName: string, field: string) => { + world.props[field] = []; + world.props[intentHandlerName] = (context: Context, metadata: ContextMetadata) => { + world.props[field].push({ context, metadata, }); }; }); -Given('{string} returns a context item', function (this: CustomWorld, intentHandlerName: string) { - this.props[intentHandlerName] = async () => { +Given('{string} returns a context item', (world: CustomWorld, intentHandlerName: string) => { + world.props[intentHandlerName] = async () => { return { type: 'fdc3.returned-intent', id: { @@ -183,8 +183,8 @@ Given('{string} returns a context item', function (this: CustomWorld, intentHand }; }); -Given('{string} returns a channel', function (this: CustomWorld, intentHandlerName: string) { - this.props[intentHandlerName] = async () => { +Given('{string} returns a channel', (world: CustomWorld, intentHandlerName: string) => { + world.props[intentHandlerName] = async () => { return { type: 'private', id: 'some-channel-id', @@ -196,8 +196,8 @@ Given('{string} returns a channel', function (this: CustomWorld, intentHandlerNa }; }); -Given('{string} returns a void promise', function (this: CustomWorld, intentHandlerName: string) { - this.props[intentHandlerName] = async () => { +Given('{string} returns a void promise', (world: CustomWorld, intentHandlerName: string) => { + world.props[intentHandlerName] = async () => { return null; }; }); diff --git a/packages/fdc3-agent-proxy/test/step-definitions/util.steps.ts b/packages/fdc3-agent-proxy/test/step-definitions/util.steps.ts index 18ac073ff..0ffa611fe 100644 --- a/packages/fdc3-agent-proxy/test/step-definitions/util.steps.ts +++ b/packages/fdc3-agent-proxy/test/step-definitions/util.steps.ts @@ -1,12 +1,12 @@ -import { When } from '@cucumber/cucumber'; +import { When } from 'quickpickle'; import { CustomWorld } from '../world/index.js'; import { throwIfUndefined } from '../../src/util/throwIfUndefined.js'; import { AgentResponseMessage } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes.js'; import { LogLevel, OpenError } from '@finos/fdc3-standard'; -import expect from 'expect'; +import { expect } from 'vitest'; import { Logger } from '../../src/util/Logger.js'; -When('I call throwIfUndefined it throws if a specified property is not defined', async function (this: CustomWorld) { +When('I call throwIfUndefined it throws if a specified property is not defined', async (world: CustomWorld) => { let thrown: Error | null = null; const someObject: Record = { someProperty: 'value' }; const dummyMessage: AgentResponseMessage = { @@ -34,38 +34,35 @@ When('I call throwIfUndefined it throws if a specified property is not defined', expect(thrown?.message).toEqual(OpenError.MalformedContext); }); -When( - 'I call throwIfUndefined it does NOT throw if a specified property IS defined', - async function (this: CustomWorld) { - let thrown: Error | null = null; - const someObject: Record = { someProperty: 'value' }; - const dummyMessage: AgentResponseMessage = { - type: 'broadcastResponse', - meta: { - requestUuid: '123', - responseUuid: '456', - timestamp: new Date(), - }, - payload: {}, - }; - try { - throwIfUndefined( - someObject.someProperty, - 'Deliberately undefined prop did not exist ;-)', - dummyMessage, - OpenError.MalformedContext - ); - } catch (e) { - thrown = e as Error; - } - - expect(thrown).toBeNull(); +When('I call throwIfUndefined it does NOT throw if a specified property IS defined', async (world: CustomWorld) => { + let thrown: Error | null = null; + const someObject: Record = { someProperty: 'value' }; + const dummyMessage: AgentResponseMessage = { + type: 'broadcastResponse', + meta: { + requestUuid: '123', + responseUuid: '456', + timestamp: new Date(), + }, + payload: {}, + }; + try { + throwIfUndefined( + someObject.someProperty, + 'Deliberately undefined prop did not exist ;-)', + dummyMessage, + OpenError.MalformedContext + ); + } catch (e) { + thrown = e as Error; } -); + + expect(thrown).toBeNull(); +}); const TEST_ERROR = 'Test error - This is expected on the console'; -When('All log functions are used with a message', async function (this: CustomWorld) { +When('All log functions are used with a message', async (world: CustomWorld) => { Logger.setLogLevel(LogLevel.DEBUG); Logger.debug('Debug msg'); Logger.log('Log msg'); @@ -73,7 +70,7 @@ When('All log functions are used with a message', async function (this: CustomWo Logger.error('Error msg'); }); -When('All log functions are used with an error', async function (this: CustomWorld) { +When('All log functions are used with an error', async (world: CustomWorld) => { Logger.setLogLevel(LogLevel.DEBUG); Logger.debug('debug-level error: ', new Error(TEST_ERROR)); Logger.log('log-level error: ', new Error(TEST_ERROR)); diff --git a/packages/fdc3-agent-proxy/test/steps.ts b/packages/fdc3-agent-proxy/test/steps.ts new file mode 100644 index 000000000..1c1206ff9 --- /dev/null +++ b/packages/fdc3-agent-proxy/test/steps.ts @@ -0,0 +1,15 @@ +// Main step definitions entry point for quickpickle +// This file is loaded by vitest as a setupFile + +import { setWorldConstructor } from 'quickpickle'; +import { CustomWorld } from './world/index.js'; + +// Set up the world constructor +setWorldConstructor(CustomWorld); + +// Import all step definitions +import './step-definitions/generic.steps.js'; +import './step-definitions/channels.steps.js'; +import './step-definitions/channelSelector.steps.js'; +import './step-definitions/intents.steps.js'; +import './step-definitions/util.steps.js'; diff --git a/packages/fdc3-agent-proxy/test/support/responses/AddEventListener.ts b/packages/fdc3-agent-proxy/test/support/responses/AddEventListener.ts index 83afc836a..0a075f83f 100644 --- a/packages/fdc3-agent-proxy/test/support/responses/AddEventListener.ts +++ b/packages/fdc3-agent-proxy/test/support/responses/AddEventListener.ts @@ -1,6 +1,6 @@ import { AutomaticResponse, TestMessaging } from '../TestMessaging'; import { createResponseMeta } from './support'; -import { AddEventListenerRequest, AddEventListenerResponse } from '@finos/fdc3-schema/generated/api/BrowserTypes'; +import { AddEventListenerRequest, AddEventListenerResponse } from '@finos/fdc3-schema/generated/api/BrowserTypes.js'; export class AddEventListener implements AutomaticResponse { count: number = 0; diff --git a/packages/fdc3-agent-proxy/test/world/index.ts b/packages/fdc3-agent-proxy/test/world/index.ts index 93024c118..06d80ce74 100644 --- a/packages/fdc3-agent-proxy/test/world/index.ts +++ b/packages/fdc3-agent-proxy/test/world/index.ts @@ -1,9 +1,17 @@ -import { setWorldConstructor } from '@cucumber/cucumber'; import { TestMessaging } from '../support/TestMessaging.js'; -import { PropsWorld } from '@finos/testing'; +import { QuickPickleWorld, QuickPickleWorldInterface } from 'quickpickle'; -export class CustomWorld extends PropsWorld { - messaging: TestMessaging | null = null; +export interface CustomWorldInterface extends QuickPickleWorldInterface { + props: Record; + messaging: TestMessaging | null; + log: (message: string) => void; } -setWorldConstructor(CustomWorld); +export class CustomWorld extends QuickPickleWorld implements CustomWorldInterface { + props: Record = {}; + messaging: TestMessaging | null = null; + + log(message: string): void { + console.log(message); + } +} diff --git a/packages/fdc3-agent-proxy/vitest.config.ts b/packages/fdc3-agent-proxy/vitest.config.ts new file mode 100644 index 000000000..b9e661dc2 --- /dev/null +++ b/packages/fdc3-agent-proxy/vitest.config.ts @@ -0,0 +1,23 @@ +import { defineConfig } from 'vitest/config'; +import { quickpickle } from 'quickpickle'; + +export default defineConfig({ + plugins: [ + quickpickle({ + stepTimeout: 15000, + }), + ], + test: { + include: ['test/features/**/*.feature'], + setupFiles: ['test/steps.ts'], + testTimeout: 30000, + coverage: { + enabled: true, + provider: 'v8', + reporter: ['text', 'lcov', 'json'], + reportsDirectory: './coverage', + include: ['src/**/*.ts'], + exclude: ['src/**/*.d.ts', 'src/**/*.test.ts', 'src/**/*.spec.ts'], + }, + }, +}); diff --git a/packages/fdc3-context/jest.config.cjs b/packages/fdc3-context/jest.config.cjs deleted file mode 100644 index 53a1bd8e9..000000000 --- a/packages/fdc3-context/jest.config.cjs +++ /dev/null @@ -1,9 +0,0 @@ -/** @type {import('jest').Config} */ -module.exports = { - moduleFileExtensions: ['js', 'ts'], - globals: {}, - transform: { - '^.+\\.ts?$': ['ts-jest', { isolatedModules: true }], - }, - testRegex: '.+\\.test\\.ts?$', -}; diff --git a/packages/fdc3-context/package.json b/packages/fdc3-context/package.json index ec823966b..68f3f4164 100644 --- a/packages/fdc3-context/package.json +++ b/packages/fdc3-context/package.json @@ -1,6 +1,6 @@ { "name": "@finos/fdc3-context", - "version": "2.2.0", + "version": "2.2.2-beta.1", "author": "Fintech Open Source Foundation (FINOS)", "homepage": "https://fdc3.finos.org", "repository": { @@ -13,37 +13,44 @@ "license": "Apache-2.0", "main": "dist/src/index.js", "types": "dist/src/index.d.ts", + "exports": { + ".": { + "types": "./dist/src/index.d.ts", + "import": "./dist/src/index.js", + "require": "./dist/src/index.js" + } + }, "files": [ "dist" ], "scripts": { - "clean": "rimraf dist && rimraf generated", + "clean": "rimraf dist generated coverage", "mkdirs": "npx mkdirp generated/context", "generate": "npm run mkdirs && npm run typegen && npm run lint", "build": "npm run generate && tsc", "lint": "eslint generated/ --fix && npx prettier generated/ --write", - "test": "npm run generate && tsc && jest", + "test": "npm run generate && tsc && vitest run", + "test:watch": "vitest", "typegen": "cd schemas && node ../s2tQuicktypeUtil.cjs context ../generated/context/ContextTypes.ts" }, "devDependencies": { "@eslint/eslintrc": "^3.2.0", "@eslint/js": "^9.19.0", - "@types/jest": "29.5.13", "@typescript-eslint/eslint-plugin": "^8.18.2", "@typescript-eslint/parser": "^8.18.2", "ajv": "^8.18.0", + "@vitest/coverage-v8": "^3.2.3", "ajv-formats": "^3.0.1", "eslint": "^9.32.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "28.8.3", "eslint-plugin-jsx-a11y": "^6.10.0", "globals": "^15.14.0", "mkdirp": "^3.0.1", "quicktype": "23.0.78", "rimraf": "^6.0.1", - "ts-jest": "29.2.5", "tslib": "^2.7.0", - "typescript": "^5.6.3" + "typescript": "^5.6.3", + "vitest": "^3.2.3" }, "overrides": { "ajv-formats": { diff --git a/packages/fdc3-context/test/validate-schema-examples.test.ts b/packages/fdc3-context/test/validate-schema-examples.test.ts index 49f8101ff..f590318fe 100644 --- a/packages/fdc3-context/test/validate-schema-examples.test.ts +++ b/packages/fdc3-context/test/validate-schema-examples.test.ts @@ -6,8 +6,13 @@ // This test validates that all examples in each JSON schema in schemas/context are valid according to their schema. import fs from 'fs'; import path from 'path'; +import { fileURLToPath } from 'url'; import Ajv from 'ajv'; import addFormats from 'ajv-formats'; +import { describe, test, expect } from 'vitest'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); const sanitizeFilename = (filename: string) => filename.replace(/^(\.\.(\/|\\|$))+/, ''); @@ -89,14 +94,14 @@ describe('FDC3 Context Schema Example Validation', () => { if (examples.length === 0 && schemaFile !== 'context.schema.json') { // context.schema.json is the main schema and has no examples test(`${schemaFile} has no examples`, () => { - fail(`${schemaFile} has no examples to validate.`); + expect.fail(`${schemaFile} has no examples to validate.`); }); return; } if (!validate) { test(`${schemaFile} validator could not be found`, () => { - fail(`Validator for ${schemaFile} could not be found. Check if $id is set and schema was added to Ajv.`); + expect.fail(`Validator for ${schemaFile} could not be found. Check if $id is set and schema was added to Ajv.`); }); return; } diff --git a/packages/fdc3-context/vitest.config.ts b/packages/fdc3-context/vitest.config.ts new file mode 100644 index 000000000..43e56f45f --- /dev/null +++ b/packages/fdc3-context/vitest.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + include: ['test/**/*.test.ts'], + }, +}); diff --git a/packages/fdc3-get-agent/package.json b/packages/fdc3-get-agent/package.json index 30f57d18b..9f4597e11 100644 --- a/packages/fdc3-get-agent/package.json +++ b/packages/fdc3-get-agent/package.json @@ -16,6 +16,7 @@ "build": "tsc", "test": "tsc && vitest run", "test:watch": "vitest", + "test:coverage": "vitest run --coverage", "clean": "rimraf dist cucumber-report.html coverage node_modules test-results.xml", "lint": "eslint src/" }, diff --git a/packages/fdc3-get-agent/test/step-definitions/channel-selector.steps.ts b/packages/fdc3-get-agent/test/step-definitions/channel-selector.steps.ts index 695245b6c..ed0def67c 100644 --- a/packages/fdc3-get-agent/test/step-definitions/channel-selector.steps.ts +++ b/packages/fdc3-get-agent/test/step-definitions/channel-selector.steps.ts @@ -1,4 +1,4 @@ -import { Given } from '@cucumber/cucumber'; +import { Given } from 'quickpickle'; import { handleResolve } from '@finos/testing'; import { DefaultDesktopAgentChannelSelector } from '../../src/ui/DefaultDesktopAgentChannelSelector.js'; import { CHANNEL_SELECTOR_URL } from '../support/MockFDC3Server.js'; @@ -10,28 +10,28 @@ import { loggingSettings } from './desktop-agent.steps.js'; Given( 'A Channel Selector in {string} with callback piping to {string}', - async function (this: CustomWorld, field: string, cb: string) { + async (world: CustomWorld, field: string, cb: string) => { Logger.setLogLevel(loggingSettings.connection); const cs = new DefaultDesktopAgentChannelSelector(CHANNEL_SELECTOR_URL); cs.setChannelChangeCallback((channelId: string | null) => { - this.props[cb] = channelId; + world.props[cb] = channelId; }); - this.props[field] = cs; + world.props[field] = cs; await cs.connect(); } ); -Given('User Channels one, two and three in {string}', function (this: CustomWorld, field: string) { - this.props[field] = USER_CHANNELS; +Given('User Channels one, two and three in {string}', (world: CustomWorld, field: string) => { + world.props[field] = USER_CHANNELS; }); Given( 'The channel selector sends a channel change message for channel {string}', - async function (this: CustomWorld, channel: string) { - const port = handleResolve('{childDoc.iframes[0].messageChannels[0].port2}', this); + async (world: CustomWorld, channel: string) => { + const port = handleResolve('{childDoc.iframes[0].messageChannels[0].port2}', world); const msg: Fdc3UserInterfaceChannelSelected = { type: 'Fdc3UserInterfaceChannelSelected', payload: { diff --git a/packages/fdc3-get-agent/test/step-definitions/desktop-agent-api.steps.ts b/packages/fdc3-get-agent/test/step-definitions/desktop-agent-api.steps.ts index 96ff4dcd7..36990ee3e 100644 --- a/packages/fdc3-get-agent/test/step-definitions/desktop-agent-api.steps.ts +++ b/packages/fdc3-get-agent/test/step-definitions/desktop-agent-api.steps.ts @@ -1,4 +1,4 @@ -import { When } from '@cucumber/cucumber'; +import { When } from 'quickpickle'; import { handleResolve } from '@finos/testing'; import { CustomWorld } from '../world/index.js'; import { DesktopAgent } from '@finos/fdc3-standard'; @@ -6,42 +6,35 @@ import { Instrument } from '@finos/fdc3-context'; When( 'I call broadcast with an fdc3.instrument context on {string} and allow 3 seconds', - { timeout: 3 * 1000 }, - // for testing API timeouts the Mock server sets a 1 second timeout - // if that is ignored it defaults to 10 seconds so test should timeout and catch that - async function (this: CustomWorld, field: string) { - //Note that broadcast is a noop unless you are currently joined to a channel + async (world: CustomWorld, field: string) => { try { - const da: DesktopAgent = handleResolve(field, this); + const da: DesktopAgent = handleResolve(field, world); const instrument: Instrument = { type: 'fdc3.instrument', id: { ticker: 'MSFT' }, name: 'microsoft', }; const result = await da.broadcast(instrument); - this.props['result'] = result; - this.log('Received non-error result: ' + JSON.stringify(result)); + world.props['result'] = result; + world.log('Received non-error result: ' + JSON.stringify(result)); } catch (error) { - this.props['result'] = error; - this.log('Received error with message: ' + ((error as Error).message ?? error)); + world.props['result'] = error; + world.log('Received error with message: ' + ((error as Error).message ?? error)); } } ); When( 'I call open with appId {string} on {string} and allow 3 seconds', - { timeout: 3 * 1000 }, - // for testing app launch timeouts the Mock server sets a 2 second timeout - // if that is ignored it defaults to 100 seconds so test should timeout and catch that - async function (this: CustomWorld, appId: string, field: string) { + async (world: CustomWorld, appId: string, field: string) => { try { - const da: DesktopAgent = handleResolve(field, this); + const da: DesktopAgent = handleResolve(field, world); const result = await da.open({ appId: appId }); - this.props['result'] = result; - this.log('Received non-error result: ' + JSON.stringify(result)); + world.props['result'] = result; + world.log('Received non-error result: ' + JSON.stringify(result)); } catch (error) { - this.props['result'] = error; - this.log('Received error with message: ' + ((error as Error).message ?? error)); + world.props['result'] = error; + world.log('Received error with message: ' + ((error as Error).message ?? error)); } } ); diff --git a/packages/fdc3-get-agent/test/step-definitions/desktop-agent.steps.ts b/packages/fdc3-get-agent/test/step-definitions/desktop-agent.steps.ts index a8d786a10..e0f41698f 100644 --- a/packages/fdc3-get-agent/test/step-definitions/desktop-agent.steps.ts +++ b/packages/fdc3-get-agent/test/step-definitions/desktop-agent.steps.ts @@ -1,6 +1,7 @@ -import { After, DataTable, Given, Then, When } from '@cucumber/cucumber'; +import { After, Given, Then, When } from 'quickpickle'; +import { DataTable } from '@cucumber/cucumber'; import { CustomWorld } from '../world/index.js'; -import { doesRowMatch, handleResolve, setupGenericSteps } from '@finos/testing'; +import { doesRowMatch, handleResolve } from '@finos/testing'; import { MockDocument } from '../support/MockDocument.js'; import { MockWindow } from '../support/MockWindow.js'; import { fdc3Ready, getAgent } from '../../src/index.js'; @@ -15,7 +16,7 @@ import { EMBED_URL, MockFDC3Server } from '../support/MockFDC3Server.js'; import { MockStorage } from '../support/MockStorage.js'; import { DesktopAgent, ImplementationMetadata } from '@finos/fdc3-standard'; import { clearAgentPromise } from '../../src/strategies/getAgent.js'; -import expect from 'expect'; +import { expect } from 'vitest'; import { dummyInstanceDetails } from '../support/TestServerContext.js'; import { MockIFrame } from '../support/MockIFrame.js'; @@ -23,9 +24,6 @@ interface MockPageTransitionEvent extends Event { persisted?: boolean; } -setupGenericSteps(); - -//Change logging settings here when debugging test failures export const loggingSettings: GetAgentLogLevels = { connection: LogLevel.INFO, proxy: LogLevel.INFO, @@ -33,90 +31,90 @@ export const loggingSettings: GetAgentLogLevels = { Given( 'Parent Window desktop {string} listens for postMessage events in {string}, returns direct message response', - async function (this: CustomWorld, field: string, w: string) { - const mockWindow = handleResolve(w, this); - this.mockFDC3Server = new MockFDC3Server(mockWindow, false, this.mockContext); - this.props[field] = this.mockFDC3Server; - this.mockContext.open(dummyInstanceDetails[0].appId); - this.mockContext.open(dummyInstanceDetails[1].appId); + async (world: CustomWorld, field: string, w: string) => { + const mockWindow = handleResolve(w, world); + world.mockFDC3Server = new MockFDC3Server(mockWindow, false, world.mockContext); + world.props[field] = world.mockFDC3Server; + world.mockContext.open(dummyInstanceDetails[0].appId); + world.mockContext.open(dummyInstanceDetails[1].appId); } ); Given( 'Parent Window desktop {string} listens for postMessage events in {string}, returns direct message response, but times out identity validation', - async function (this: CustomWorld, field: string, w: string) { - const mockWindow = handleResolve(w, this); - this.mockFDC3Server = new MockFDC3Server(mockWindow, false, this.mockContext, true, true); - this.props[field] = this.mockFDC3Server; - this.mockContext.open(dummyInstanceDetails[0].appId); - this.mockContext.open(dummyInstanceDetails[1].appId); + async (world: CustomWorld, field: string, w: string) => { + const mockWindow = handleResolve(w, world); + world.mockFDC3Server = new MockFDC3Server(mockWindow, false, world.mockContext, true, true); + world.props[field] = world.mockFDC3Server; + world.mockContext.open(dummyInstanceDetails[0].appId); + world.mockContext.open(dummyInstanceDetails[1].appId); } ); Given( 'Parent Window desktop {string} listens for postMessage events in {string}, returns direct message response and uses default UI URLs', - async function (this: CustomWorld, field: string, w: string) { - const mockWindow = handleResolve(w, this); - this.mockFDC3Server = new MockFDC3Server(mockWindow, false, this.mockContext, true); - this.props[field] = this.mockFDC3Server; - this.mockContext.open(dummyInstanceDetails[0].appId); - this.mockContext.open(dummyInstanceDetails[1].appId); + async (world: CustomWorld, field: string, w: string) => { + const mockWindow = handleResolve(w, world); + world.mockFDC3Server = new MockFDC3Server(mockWindow, false, world.mockContext, true); + world.props[field] = world.mockFDC3Server; + world.mockContext.open(dummyInstanceDetails[0].appId); + world.mockContext.open(dummyInstanceDetails[1].appId); } ); Given( 'Parent Window desktop {string} listens for postMessage events in {string}, returns direct message response and times out message exchanges', - async function (this: CustomWorld, field: string, w: string) { - const mockWindow = handleResolve(w, this); - this.mockFDC3Server = new MockFDC3Server(mockWindow, false, this.mockContext, true, false, true); - this.props[field] = this.mockFDC3Server; - this.mockContext.open(dummyInstanceDetails[0].appId); - this.mockContext.open(dummyInstanceDetails[1].appId); + async (world: CustomWorld, field: string, w: string) => { + const mockWindow = handleResolve(w, world); + world.mockFDC3Server = new MockFDC3Server(mockWindow, false, world.mockContext, true, false, true); + world.props[field] = world.mockFDC3Server; + world.mockContext.open(dummyInstanceDetails[0].appId); + world.mockContext.open(dummyInstanceDetails[1].appId); } ); Given( 'Parent Window desktop {string} listens for postMessage events in {string}, returns direct message response, times out message exchanges and uses message exchange timeout {string} ms and app launch timeout {string} ms', - async function (this: CustomWorld, field: string, w: string, t1: string, t2: string) { - const mockWindow = handleResolve(w, this); - const messageExchangeTimeout: number = handleResolve(t1, this); - const appLaunchTimeout: number = handleResolve(t2, this); - this.mockFDC3Server = new MockFDC3Server( + async (world: CustomWorld, field: string, w: string, t1: string, t2: string) => { + const mockWindow = handleResolve(w, world); + const messageExchangeTimeout: number = handleResolve(t1, world); + const appLaunchTimeout: number = handleResolve(t2, world); + world.mockFDC3Server = new MockFDC3Server( mockWindow, false, - this.mockContext, + world.mockContext, true, false, true, messageExchangeTimeout, appLaunchTimeout ); - this.props[field] = this.mockFDC3Server; - this.mockContext.open(dummyInstanceDetails[0].appId); - this.mockContext.open(dummyInstanceDetails[1].appId); + world.props[field] = world.mockFDC3Server; + world.mockContext.open(dummyInstanceDetails[0].appId); + world.mockContext.open(dummyInstanceDetails[1].appId); } ); Given( 'Parent Window desktop {string} listens for postMessage events in {string}, returns iframe response', - async function (this: CustomWorld, field: string, w: string) { - const mockWindow = handleResolve(w, this); - this.mockFDC3Server = new MockFDC3Server(mockWindow, true, this.mockContext); - this.props[field] = this.mockFDC3Server; - this.mockContext.open(dummyInstanceDetails[0].appId); - this.mockContext.open(dummyInstanceDetails[1].appId); + async (world: CustomWorld, field: string, w: string) => { + const mockWindow = handleResolve(w, world); + world.mockFDC3Server = new MockFDC3Server(mockWindow, true, world.mockContext); + world.props[field] = world.mockFDC3Server; + world.mockContext.open(dummyInstanceDetails[0].appId); + world.mockContext.open(dummyInstanceDetails[1].appId); } ); Given( '{string} is a function which opens an iframe for communications on {string}', - function (this: CustomWorld, fn: string, doc: string) { - this.props[fn] = () => { - this.mockContext.open(dummyInstanceDetails[0].appId); - const document = handleResolve(doc, this) as MockDocument; + (world: CustomWorld, fn: string, doc: string) => { + world.props[fn] = () => { + world.mockContext.open(dummyInstanceDetails[0].appId); + const document = handleResolve(doc, world) as MockDocument; const ifrm = document.createElement('iframe'); - this.mockFDC3Server = new MockFDC3Server(ifrm as unknown as MockIFrame, false, this.mockContext); + world.mockFDC3Server = new MockFDC3Server(ifrm as unknown as MockIFrame, false, world.mockContext); ifrm.setAttribute('src', EMBED_URL); document.body.appendChild(ifrm); return ifrm; @@ -126,13 +124,13 @@ Given( Given( '{string} is a function which opens an iframe for communications on {string} but times out identity validation', - function (this: CustomWorld, fn: string, doc: string) { - this.props[fn] = () => { - this.mockContext.open(dummyInstanceDetails[0].appId); - const document = handleResolve(doc, this) as MockDocument; + (world: CustomWorld, fn: string, doc: string) => { + world.props[fn] = () => { + world.mockContext.open(dummyInstanceDetails[0].appId); + const document = handleResolve(doc, world) as MockDocument; const ifrm = document.createElement('iframe'); - this.mockFDC3Server = new MockFDC3Server(ifrm as unknown as MockIFrame, false, this.mockContext, true, true); + world.mockFDC3Server = new MockFDC3Server(ifrm as unknown as MockIFrame, false, world.mockContext, true, true); ifrm.setAttribute('src', EMBED_URL); document.body.appendChild(ifrm); return ifrm; @@ -142,16 +140,16 @@ Given( Given( '{string} is a function which opens an iframe for communications on {string} and times out message exchanges', - function (this: CustomWorld, fn: string, doc: string) { - this.props[fn] = () => { - this.mockContext.open(dummyInstanceDetails[0].appId); - const document = handleResolve(doc, this) as MockDocument; + (world: CustomWorld, fn: string, doc: string) => { + world.props[fn] = () => { + world.mockContext.open(dummyInstanceDetails[0].appId); + const document = handleResolve(doc, world) as MockDocument; const ifrm = document.createElement('iframe'); - this.mockFDC3Server = new MockFDC3Server( + world.mockFDC3Server = new MockFDC3Server( ifrm as unknown as MockIFrame, false, - this.mockContext, + world.mockContext, false, false, true @@ -165,18 +163,18 @@ Given( Given( '{string} is a function which opens an iframe for communications on {string}, times out message exchanges and uses message exchange timeout {string} ms and app launch timeout {string} ms', - function (this: CustomWorld, fn: string, doc: string, t1: string, t2: string) { - const messageExchangeTimeout: number = handleResolve(t1, this); - const appLaunchTimeout: number = handleResolve(t2, this); - this.props[fn] = () => { - this.mockContext.open(dummyInstanceDetails[0].appId); - const document = handleResolve(doc, this) as MockDocument; + (world: CustomWorld, fn: string, doc: string, t1: string, t2: string) => { + const messageExchangeTimeout: number = handleResolve(t1, world); + const appLaunchTimeout: number = handleResolve(t2, world); + world.props[fn] = () => { + world.mockContext.open(dummyInstanceDetails[0].appId); + const document = handleResolve(doc, world) as MockDocument; const ifrm = document.createElement('iframe'); - this.mockFDC3Server = new MockFDC3Server( + world.mockFDC3Server = new MockFDC3Server( ifrm as unknown as MockIFrame, false, - this.mockContext, + world.mockContext, false, false, true, @@ -190,12 +188,12 @@ Given( } ); -Given('an existing app instance in {string}', async function (this: CustomWorld, field: string) { - const uuid = this.mockContext.open(dummyInstanceDetails[0].appId); - this.props[field] = uuid; +Given('an existing app instance in {string}', async (world: CustomWorld, field: string) => { + const uuid = world.mockContext.open(dummyInstanceDetails[0].appId); + world.props[field] = uuid; }); -Given('A Dummy Desktop Agent in {string}', async function (this: CustomWorld, field: string) { +Given('A Dummy Desktop Agent in {string}', async (world: CustomWorld, field: string) => { const notImplemented = () => { throw new Error('Function not implemented.'); }; @@ -236,110 +234,101 @@ Given('A Dummy Desktop Agent in {string}', async function (this: CustomWorld, fi joinChannel: notImplemented, }; - this.props[field] = da; - this.props['result'] = null; + world.props[field] = da; + world.props['result'] = null; }); Given( '`window.fdc3` is injected into the runtime with the value in {string}', - async function (this: CustomWorld, field: string) { - const object = handleResolve(field, this); + async (world: CustomWorld, field: string) => { + const object = handleResolve(field, world); window.fdc3 = object; } ); Given( '`window.fdc3` is injected into the runtime with the value in {string} and fdc3Ready is fired', - async function (this: CustomWorld, field: string) { - const object = handleResolve(field, this); + async (world: CustomWorld, field: string) => { + const object = handleResolve(field, world); window.fdc3 = object; window.dispatchEvent(new Event('fdc3Ready')); } ); -When('I call getAgent for a promise result', function (this: CustomWorld) { +When('I call getAgent for a promise result', (world: CustomWorld) => { try { const params: GetAgentParams = { logLevels: loggingSettings, }; - this.props['result'] = getAgent(params); + world.props['result'] = getAgent(params); } catch (error) { - this.props['result'] = error; + world.props['result'] = error; } }); -When('I call fdc3Ready for a promise result', function (this: CustomWorld) { +When('I call fdc3Ready for a promise result', (world: CustomWorld) => { try { - this.props['result'] = fdc3Ready(); + world.props['result'] = fdc3Ready(); } catch (error) { - this.props['result'] = error; + world.props['result'] = error; } }); -After(function (this: CustomWorld) { +After((world: CustomWorld) => { console.log(' Cleaning up test infrastructure'); clearAgentPromise(); MockDocument.shutdownAllDocuments(); }); -When('I call getAgent for a promise result with the following options', function (this: CustomWorld, dt: DataTable) { +When('I call getAgent for a promise result with the following options', (world: CustomWorld, dt: DataTable) => { try { const first = dt.hashes()[0]; const toArgs: GetAgentParams = Object.fromEntries( Object.entries(first).map(([k, v]) => { - const val = handleResolve(v, this); + const val = handleResolve(v, world); const val2 = isNaN(val) ? val : Number(val); const val3 = val2 === 'true' ? true : val2 === 'false' ? false : val2; return [k, val3]; }) ); - //add logging settings to help with debug toArgs.logLevels = loggingSettings; - this.props['result'] = getAgent(toArgs); + world.props['result'] = getAgent(toArgs); } catch (error) { - this.props['result'] = error; + world.props['result'] = error; } }); Given( 'a parent window document in {string}, window in {string}, child window document in {string} and window in {string}', - async function (this: CustomWorld, pd: string, pw: string, cd: string, cw: string) { - //create the parent window - const mpw = new MockWindow('mockParentWindow', this, 'parentWin'); - this.props[pw] = mpw; + async (world: CustomWorld, pd: string, pw: string, cd: string, cw: string) => { + const mpw = new MockWindow('mockParentWindow', world, 'parentWin'); + world.props[pw] = mpw; - // mock parent window document - this.props[pd] = new MockDocument('parentDoc', mpw); + world.props[pd] = new MockDocument('parentDoc', mpw); - // creates the mock app window - const mcw = new MockWindow('mockWindow', this, 'mocky'); - this.props[cw] = mcw; + const mcw = new MockWindow('mockWindow', world, 'mocky'); + world.props[cw] = mcw; - // mock app document - this.props[cd] = new MockDocument('childDoc', mcw); + world.props[cd] = new MockDocument('childDoc', mcw); - //run tests from the perspective of the child window - globalThis.window = this.props[cw]; - globalThis.document = this.props[cd]; + globalThis.window = world.props[cw]; + globalThis.document = world.props[cd]; - // create parent relationship mcw.parent = mpw; - //create child relationship (for attributing postMessage calls) mpw.child = mcw; - // session storage (will be common between windows, which is ok as DA doesn't use this) globalThis.sessionStorage = new MockStorage(); } ); Given( 'SessionStorage contains instanceUuid {string}, appId {string} with identityUrl {string} and agentType {string}', - async function (this: CustomWorld, uuid: string, appId: string, identityUrl: string, agentType: string) { - const theUuid = handleResolve(uuid, this); - const theAppId = handleResolve(appId, this); - const theIdentityUrl = handleResolve(identityUrl, this); - const theAgentType = handleResolve(agentType, this); + async (world: CustomWorld, uuid: string, appId: string, identityUrl: string, agentType: string) => { + const theUuid = handleResolve(uuid, world); + const theAppId = handleResolve(appId, world); + const theIdentityUrl = handleResolve(identityUrl, world); + const theAgentType = handleResolve(agentType, world); const details: Record = {}; details[theIdentityUrl] = { agentType: theAgentType, @@ -356,19 +345,12 @@ Given( Given( 'SessionStorage contains instanceUuid {string}, appId {string} with identityUrl {string}, agentType {string} and agentUrl {string}', - async function ( - this: CustomWorld, - uuid: string, - appId: string, - identityUrl: string, - agentType: string, - agentUrl: string - ) { - const theUuid = handleResolve(uuid, this); - const theAppId = handleResolve(appId, this); - const theIdentityUrl = handleResolve(identityUrl, this); - const theAgentType = handleResolve(agentType, this); - const theAgentUrl = handleResolve(agentUrl, this); + async (world: CustomWorld, uuid: string, appId: string, identityUrl: string, agentType: string, agentUrl: string) => { + const theUuid = handleResolve(uuid, world); + const theAppId = handleResolve(appId, world); + const theIdentityUrl = handleResolve(identityUrl, world); + const theAgentType = handleResolve(agentType, world); + const theAgentUrl = handleResolve(agentUrl, world); const details: Record = {}; details[theIdentityUrl] = { agentType: theAgentType, @@ -386,10 +368,10 @@ Given( Given( 'SessionStorage contains partial data with with identityUrl {string}, appId {string} and agentType {string}', - async function (this: CustomWorld, identityUrl: string, agentType: string, appId: string) { - const theIdentityUrl = handleResolve(identityUrl, this); - const theAgentType = handleResolve(agentType, this); - const theAppId = handleResolve(appId, this); + async (world: CustomWorld, identityUrl: string, agentType: string, appId: string) => { + const theIdentityUrl = handleResolve(identityUrl, world); + const theAgentType = handleResolve(agentType, world); + const theAppId = handleResolve(appId, world); const partialDetails: Record> = {}; partialDetails[theIdentityUrl] = { @@ -405,31 +387,24 @@ Given( } ); -Given('SessionStorage contains corrupted data', async function (this: CustomWorld) { +Given('SessionStorage contains corrupted data', async () => { const corruptedData = ['All your base are belong to us']; globalThis.sessionStorage.setItem(DESKTOP_AGENT_SESSION_STORAGE_KEY_PREFIX + '-mocky', JSON.stringify(corruptedData)); }); -Given('SessionStorage is clear', async function () { +Given('SessionStorage is clear', async () => { globalThis.sessionStorage.clear(); }); Then( 'SessionStorage should contain instanceUuid {string}, appId {string} with identityUrl {string}, agentType {string} and agentUrl {string}', - async function ( - this: CustomWorld, - uuid: string, - appId: string, - identityUrl: string, - agentType: string, - agentUrl: string - ) { - const theUuid = handleResolve(uuid, this); - const theAppId = handleResolve(appId, this); - const theIdentityUrl = handleResolve(identityUrl, this); - const theAgentType = handleResolve(agentType, this); - const theAgentUrl = handleResolve(agentUrl, this); + async (world: CustomWorld, uuid: string, appId: string, identityUrl: string, agentType: string, agentUrl: string) => { + const theUuid = handleResolve(uuid, world); + const theAppId = handleResolve(appId, world); + const theIdentityUrl = handleResolve(identityUrl, world); + const theAgentType = handleResolve(agentType, world); + const theAgentUrl = handleResolve(agentUrl, world); const value = globalThis.sessionStorage.getItem(DESKTOP_AGENT_SESSION_STORAGE_KEY_PREFIX + '-mocky'); expect(value).toBeTruthy(); @@ -445,28 +420,28 @@ Then( Then( 'SessionStorage for identityUrl {string} should contain the following values', - function (this: CustomWorld, identityUrl: string, dt: DataTable) { - const theIdentityUrl = handleResolve(identityUrl, this); + (world: CustomWorld, identityUrl: string, dt: DataTable) => { + const theIdentityUrl = handleResolve(identityUrl, world); const value = globalThis.sessionStorage.getItem(DESKTOP_AGENT_SESSION_STORAGE_KEY_PREFIX + '-mocky'); expect(value).toBeTruthy(); const theObject = JSON.parse(value!); const details = theObject[theIdentityUrl]; const table = dt.hashes(); - expect(doesRowMatch(this, table[0], details)).toBeTruthy(); + expect(doesRowMatch(world, table[0], details)).toBeTruthy(); } ); When( '{string} pagehide occurs with persisted = {string}', - async function (this: CustomWorld, field: string, persisted: string) { - const window: MockWindow = handleResolve(field, this); - const isPersisted = handleResolve(persisted, this); + async (world: CustomWorld, field: string, persisted: string) => { + const window: MockWindow = handleResolve(field, world); + const isPersisted = handleResolve(persisted, world); const transitionEvent: MockPageTransitionEvent = new Event('pagehide'); transitionEvent.persisted = isPersisted; window.dispatchEvent(transitionEvent); } ); -When('The Desktop Agent receives a WCP6Goodbye message', async function (this: CustomWorld) { - expect(this.mockFDC3Server?.hasReceivedGoodbye).toBeTruthy(); +When('The Desktop Agent receives a WCP6Goodbye message', async (world: CustomWorld) => { + expect(world.mockFDC3Server?.hasReceivedGoodbye).toBeTruthy(); }); diff --git a/packages/fdc3-get-agent/test/step-definitions/generic.steps.ts b/packages/fdc3-get-agent/test/step-definitions/generic.steps.ts new file mode 100644 index 000000000..3d1f45ab1 --- /dev/null +++ b/packages/fdc3-get-agent/test/step-definitions/generic.steps.ts @@ -0,0 +1,6 @@ +import { setupGenericSteps } from '@finos/testing'; +import path from 'path'; + +// Register shared generic steps from @finos/testing +const schemaBasePath = path.join(import.meta.dirname, '../../../'); +setupGenericSteps(schemaBasePath); diff --git a/packages/fdc3-get-agent/test/step-definitions/intent-resolver.steps.ts b/packages/fdc3-get-agent/test/step-definitions/intent-resolver.steps.ts index 6c27db176..e42ca6e9e 100644 --- a/packages/fdc3-get-agent/test/step-definitions/intent-resolver.steps.ts +++ b/packages/fdc3-get-agent/test/step-definitions/intent-resolver.steps.ts @@ -1,4 +1,4 @@ -import { Given, When } from '@cucumber/cucumber'; +import { Given, When } from 'quickpickle'; import { CustomWorld } from '../world/index.js'; import { handleResolve } from '@finos/testing'; import { DefaultDesktopAgentIntentResolver } from '../../src/ui/DefaultDesktopAgentIntentResolver.js'; @@ -32,55 +32,52 @@ const contextMap: Record = { }, }; -Given('{string} is a {string} context', function (this: CustomWorld, field: string, type: string) { - this.props[field] = contextMap[type]; +Given('{string} is a {string} context', (world: CustomWorld, field: string, type: string) => { + world.props[field] = contextMap[type]; }); -Given('An Intent Resolver in {string}', async function (this: CustomWorld, field: string) { +Given('An Intent Resolver in {string}', async (world: CustomWorld, field: string) => { const cs = new DefaultDesktopAgentIntentResolver(INTENT_RESOLVER_URL); - this.props[field] = cs; + world.props[field] = cs; await cs.connect(); }); -Given( - '{string} is an AppIntents array with a ViewNews intent and two apps', - function (this: CustomWorld, field: string) { - this.props[field] = [ - { - intent: { - name: 'ViewNews', - }, - apps: [ - { - appId: 'app1', - }, - { - appId: 'app2', - }, - ], +Given('{string} is an AppIntents array with a ViewNews intent and two apps', (world: CustomWorld, field: string) => { + world.props[field] = [ + { + intent: { + name: 'ViewNews', }, - ]; - } -); + apps: [ + { + appId: 'app1', + }, + { + appId: 'app2', + }, + ], + }, + ]; +}); When( 'I call {string} with {string} with parameters {string} and {string} for a promise', - function (this: CustomWorld, field: string, fnName: string, param1: string, param2: string) { + (world: CustomWorld, field: string, fnName: string, param1: string, param2: string) => { try { - const object = handleResolve(field, this); + const object = handleResolve(field, world); const fn = object[fnName]; - const arg0 = handleResolve(param1, this); - const arg1 = handleResolve(param2, this); + const arg0 = handleResolve(param1, world); + const arg1 = handleResolve(param2, world); const result = fn.call(object, arg0, arg1); - this.props['result'] = result; + world.props['result'] = result; } catch (error) { - this.props['result'] = error; + world.props['result'] = error; } } ); -Given('The intent resolver sends an intent selection message', async function (this: CustomWorld) { - const port = handleResolve('{childDoc.iframes[0].messageChannels[0].port2}', this); +Given('The intent resolver sends an intent selection message', async (world: CustomWorld) => { + const port = handleResolve('{childDoc.iframes[0].messageChannels[0].port2}', world); port.postMessage({ type: FDC3_USER_INTERFACE_RESOLVE_ACTION_TYPE, @@ -94,8 +91,8 @@ Given('The intent resolver sends an intent selection message', async function (t }); }); -Given('The intent resolver cancels the intent selection message', async function (this: CustomWorld) { - const port = handleResolve('{childDoc.iframes[0].messageChannels[0].port2}', this); +Given('The intent resolver cancels the intent selection message', async (world: CustomWorld) => { + const port = handleResolve('{childDoc.iframes[0].messageChannels[0].port2}', world); port.postMessage({ type: FDC3_USER_INTERFACE_RESOLVE_ACTION_TYPE, diff --git a/packages/fdc3-get-agent/test/step-definitions/port-creation.steps.ts b/packages/fdc3-get-agent/test/step-definitions/port-creation.steps.ts index 71aaff65b..915478428 100644 --- a/packages/fdc3-get-agent/test/step-definitions/port-creation.steps.ts +++ b/packages/fdc3-get-agent/test/step-definitions/port-creation.steps.ts @@ -1,14 +1,12 @@ -import { Given, Then } from '@cucumber/cucumber'; +import { Given, Then } from 'quickpickle'; import { CustomWorld } from '../world/index.js'; import { handleResolve } from '@finos/testing'; import wtf from 'wtfnode'; -// used to debug tests not ending - only available as a commonJs module -// eslint-disable-next-line @typescript-eslint/no-require-imports Given( '{string} receives a {string} message for the {string} and creates port {string}', - async function (this: CustomWorld, frame: string, type: string, _item: string, port: string) { - const channelSelectorIframe = handleResolve(frame, this); + async (world: CustomWorld, frame: string, type: string, _item: string, port: string) => { + const channelSelectorIframe = handleResolve(frame, world); const mc = new MessageChannel(); const internalPort = mc.port1; const externalPort = mc.port2; @@ -26,24 +24,21 @@ Given( } internalPort.start(); - this.props[port] = internalPort; + world.props[port] = internalPort; } ); -Given('{string} pipes messages to {string}', async function (this: CustomWorld, port: string, output: string) { +Given('{string} pipes messages to {string}', async (world: CustomWorld, port: string, output: string) => { const out: { type: string; data: unknown }[] = []; - this.props[output] = out; + world.props[output] = out; - const internalPort = handleResolve(port, this); + const internalPort = handleResolve(port, world); internalPort.onmessage = (e: MessageEvent) => { out.push({ type: e.type, data: e.data }); }; }); -/** - * Avoid checking this in as a line in .features - just used for debugging - */ -Given('Testing ends after {string} ms', function (string) { +Given('Testing ends after {string} ms', (world: CustomWorld, string: string) => { setTimeout(() => { wtf.dump(); @@ -51,8 +46,8 @@ Given('Testing ends after {string} ms', function (string) { }, parseInt(string)); }); -Then('{string} receives a {string} message', function (this: CustomWorld, port: string, type: string) { - const internalPort = handleResolve(port, this); +Then('{string} receives a {string} message', (world: CustomWorld, port: string, type: string) => { + const internalPort = handleResolve(port, world); if (type == 'ResolverMessageChoice') { (internalPort as MessagePort).postMessage({ diff --git a/packages/fdc3-get-agent/test/step-definitions/util.steps.ts b/packages/fdc3-get-agent/test/step-definitions/util.steps.ts index 0ec401347..fc0257ca9 100644 --- a/packages/fdc3-get-agent/test/step-definitions/util.steps.ts +++ b/packages/fdc3-get-agent/test/step-definitions/util.steps.ts @@ -1,24 +1,24 @@ -import { When } from '@cucumber/cucumber'; +import { When } from 'quickpickle'; import { CustomWorld } from '../world/index.js'; import { Logger } from '../../src/util/Logger.js'; import { createUUID } from '../../src/util/Uuid.js'; const TEST_ERROR = 'Test error - This is expected on the console'; -When('All log functions are used with a message', async function (this: CustomWorld) { +When('All log functions are used with a message', async (world: CustomWorld) => { Logger.debug('Debug msg'); Logger.log('Log msg'); Logger.warn('Warning msg'); Logger.error('Error msg'); }); -When('All log functions are used with an error', async function (this: CustomWorld) { +When('All log functions are used with an error', async (world: CustomWorld) => { Logger.debug('debug-level error: ', new Error(TEST_ERROR)); Logger.log('log-level error: ', new Error(TEST_ERROR)); Logger.warn('warn-level error: ', new Error(TEST_ERROR)); Logger.error('error-level error: ', new Error(TEST_ERROR)); }); -When('A uuid is generated', async function (this: CustomWorld) { +When('A uuid is generated', async (world: CustomWorld) => { return createUUID(); }); diff --git a/packages/fdc3-get-agent/test/steps.ts b/packages/fdc3-get-agent/test/steps.ts new file mode 100644 index 000000000..9cdf713b6 --- /dev/null +++ b/packages/fdc3-get-agent/test/steps.ts @@ -0,0 +1,17 @@ +// Main step definitions entry point for quickpickle +// This file is loaded by vitest as a setupFile + +import { setWorldConstructor } from 'quickpickle'; +import { CustomWorld } from './world/index.js'; + +// Set up the world constructor +setWorldConstructor(CustomWorld); + +// Import all step definitions +import './step-definitions/generic.steps.js'; +import './step-definitions/channel-selector.steps.js'; +import './step-definitions/desktop-agent-api.steps.js'; +import './step-definitions/desktop-agent.steps.js'; +import './step-definitions/intent-resolver.steps.js'; +import './step-definitions/port-creation.steps.js'; +import './step-definitions/util.steps.js'; diff --git a/packages/fdc3-get-agent/test/world/index.ts b/packages/fdc3-get-agent/test/world/index.ts index 1867a5e68..264079fe7 100644 --- a/packages/fdc3-get-agent/test/world/index.ts +++ b/packages/fdc3-get-agent/test/world/index.ts @@ -1,14 +1,22 @@ -import { setWorldConstructor } from '@cucumber/cucumber'; -import { PropsWorld } from '@finos/testing'; +import { QuickPickleWorld, QuickPickleWorldInterface } from 'quickpickle'; import { MockFDC3Server } from '../support/MockFDC3Server.js'; import { TestServerContext } from '../support/TestServerContext.js'; -export class CustomWorld extends PropsWorld { - mockFDC3Server: MockFDC3Server | null = null; +export interface CustomWorldInterface extends QuickPickleWorldInterface { + props: Record; + mockFDC3Server: MockFDC3Server | null; + mockContext: TestServerContext; + debugLogs: boolean; + log: (message: string) => void; +} +export class CustomWorld extends QuickPickleWorld implements CustomWorldInterface { + props: Record = {}; + mockFDC3Server: MockFDC3Server | null = null; mockContext: TestServerContext = new TestServerContext(this); - debugLogs: boolean = false; -} -setWorldConstructor(CustomWorld); + log(message: string): void { + console.log(message); + } +} diff --git a/packages/fdc3-get-agent/vitest.config.ts b/packages/fdc3-get-agent/vitest.config.ts new file mode 100644 index 000000000..b9e661dc2 --- /dev/null +++ b/packages/fdc3-get-agent/vitest.config.ts @@ -0,0 +1,23 @@ +import { defineConfig } from 'vitest/config'; +import { quickpickle } from 'quickpickle'; + +export default defineConfig({ + plugins: [ + quickpickle({ + stepTimeout: 15000, + }), + ], + test: { + include: ['test/features/**/*.feature'], + setupFiles: ['test/steps.ts'], + testTimeout: 30000, + coverage: { + enabled: true, + provider: 'v8', + reporter: ['text', 'lcov', 'json'], + reportsDirectory: './coverage', + include: ['src/**/*.ts'], + exclude: ['src/**/*.d.ts', 'src/**/*.test.ts', 'src/**/*.spec.ts'], + }, + }, +}); diff --git a/packages/fdc3-schema/code-generation/generate-type-predicates.ts b/packages/fdc3-schema/code-generation/generate-type-predicates.ts index 7bb785101..be7c2958d 100644 --- a/packages/fdc3-schema/code-generation/generate-type-predicates.ts +++ b/packages/fdc3-schema/code-generation/generate-type-predicates.ts @@ -6,7 +6,7 @@ import { SyntaxKind, TypeAliasDeclaration, } from 'ts-morph'; -import messageAwait, { MessageAwait } from 'message-await'; +import messageAwait from 'message-await'; // Normalise export of message-await so it works with tsx and ts-node const print: typeof messageAwait = (messageAwait as any).default ?? messageAwait; diff --git a/packages/fdc3-schema/eslint.config.mjs b/packages/fdc3-schema/eslint.config.mjs index 2547c0fed..5306df739 100644 --- a/packages/fdc3-schema/eslint.config.mjs +++ b/packages/fdc3-schema/eslint.config.mjs @@ -32,7 +32,6 @@ export default [ languageOptions: { globals: { ...globals.browser, - ...globals.jest, }, parser: tsParser, diff --git a/packages/fdc3-schema/package.json b/packages/fdc3-schema/package.json index cd27b3ba0..8d65bbe3c 100644 --- a/packages/fdc3-schema/package.json +++ b/packages/fdc3-schema/package.json @@ -1,6 +1,6 @@ { "name": "@finos/fdc3-schema", - "version": "2.2.0", + "version": "2.2.2-beta.1", "author": "Fintech Open Source Foundation (FINOS)", "homepage": "https://fdc3.finos.org", "repository": { @@ -30,19 +30,16 @@ "devDependencies": { "@eslint/eslintrc": "^3.2.0", "@eslint/js": "^9.19.0", - "@types/jest": "29.5.13", "@typescript-eslint/eslint-plugin": "^8.18.2", "@typescript-eslint/parser": "^8.18.2", "eslint": "^9.32.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "28.8.3", "eslint-plugin-jsx-a11y": "^6.10.0", "globals": "^15.14.0", "message-await": "^1.1.0", "mkdirp": "^3.0.1", "quicktype": "23.0.78", "rimraf": "^6.0.1", - "ts-jest": "29.2.5", "ts-morph": "^24.0.0", "tslib": "^2.7.0", "typescript": "^5.6.3" diff --git a/packages/fdc3-standard/jest.config.js b/packages/fdc3-standard/jest.config.js deleted file mode 100644 index f644b42fb..000000000 --- a/packages/fdc3-standard/jest.config.js +++ /dev/null @@ -1,13 +0,0 @@ -/** @type {import('jest').Config} */ -module.exports = { - moduleFileExtensions: ['js', 'ts'], - globals: {}, - transform: { - '^.+\\.ts?$': ['ts-jest', { isolatedModules: true }], - }, - testRegex: '.+\\.test\\.ts?$', - testEnvironment: 'jsdom', - reporters: ['default', 'jest-junit'], - collectCoverage: true, - coverageReporters: ['lcov', 'text', 'json'], -}; diff --git a/packages/fdc3-standard/package.json b/packages/fdc3-standard/package.json index 767cba370..708561c7d 100644 --- a/packages/fdc3-standard/package.json +++ b/packages/fdc3-standard/package.json @@ -1,6 +1,6 @@ { "name": "@finos/fdc3-standard", - "version": "2.2.0", + "version": "2.2.2-beta.1", "author": "Fintech Open Source Foundation (FINOS)", "homepage": "https://fdc3.finos.org", "repository": { @@ -17,9 +17,10 @@ "dist" ], "scripts": { - "clean": "rimraf dist", + "clean": "rimraf dist coverage", "build": "tsc", - "test": "tsc && jest", + "test": "tsc && vitest run", + "test:watch": "vitest", "lint": "eslint src/ --fix" }, "prettier": { @@ -30,34 +31,27 @@ "endOfLine": "auto", "printWidth": 120 }, - "jest-junit": { - "outputName": "test-results.xml" - }, "dependencies": { - "@finos/fdc3-context": "2.2.0", - "@finos/fdc3-schema": "2.2.0" + "@finos/fdc3-context": "2.2.2-beta.1", + "@finos/fdc3-schema": "2.2.2-beta.1" }, "devDependencies": { "@eslint/eslintrc": "^3.2.0", "@eslint/js": "^9.19.0", - "@types/jest": "29.5.13", "@typescript-eslint/eslint-plugin": "^8.18.2", "@typescript-eslint/parser": "^8.18.2", + "@vitest/coverage-v8": "^3.0.0", + "vitest-mock-extended": "^2.0.0", "eslint": "^9.32.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "28.8.3", "eslint-plugin-jsx-a11y": "^6.10.0", "globals": "^15.14.0", - "jest": "29.7.0", - "jest-environment-jsdom": "29.7.0", - "jest-junit": "^16.0.0", - "jest-mock-extended": "3.0.5", "prettier": "3.4.1", "quicktype": "23.0.78", "rimraf": "^6.0.1", - "ts-jest": "29.2.5", "tslib": "^2.7.0", - "typescript": "^5.6.3" + "typescript": "^5.6.3", + "vitest": "^3.0.0" }, "type": "module" } diff --git a/packages/fdc3-standard/test/ContextTypes.test.ts b/packages/fdc3-standard/test/ContextTypes.test.ts index 65b6a9f4d..34c7f9920 100644 --- a/packages/fdc3-standard/test/ContextTypes.test.ts +++ b/packages/fdc3-standard/test/ContextTypes.test.ts @@ -1,3 +1,4 @@ +import { describe, it, expect } from 'vitest'; import { Convert, Contact } from '@finos/fdc3-context'; const json = '{ "type": "fdc3.contact", "id": { "email": "joe@mail.com" } }'; diff --git a/packages/fdc3-standard/test/Methods.test.ts b/packages/fdc3-standard/test/Methods.test.ts index b911f5cdd..2c8d12392 100644 --- a/packages/fdc3-standard/test/Methods.test.ts +++ b/packages/fdc3-standard/test/Methods.test.ts @@ -1,4 +1,5 @@ -import { mock } from 'jest-mock-extended'; +import { vi, beforeEach, afterAll, describe, test, expect } from 'vitest'; +import { mock } from 'vitest-mock-extended'; import { addContextListener, addIntentListener, @@ -41,16 +42,16 @@ const ContactContext = { expect.extend({ toRejectWithUnavailableError(received) { expect(received).rejects.toEqual(UnavailableError); - return { pass: true } as jest.CustomMatcherResult; + return { pass: true, message: () => '' }; }, toThrowUnavailableError(received) { expect(received).toThrowError(UnavailableError); - return { pass: true } as jest.CustomMatcherResult; + return { pass: true, message: () => '' }; }, }); beforeEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); describe('test ES6 module', () => { @@ -139,7 +140,7 @@ describe('test ES6 module', () => { }); describe('with `window.fdc3` global', () => { - beforeAll(() => { + beforeEach(() => { window.fdc3 = mock(); }); @@ -147,84 +148,84 @@ describe('test ES6 module', () => { window.fdc3 = undefined as unknown as DesktopAgent; }); - test('open should delegate to window.fdc3.open', async () => { + test('open should delegate to window.fdc3?.open', async () => { const target = 'MyApp'; await open(target, ContactContext); - expect(window.fdc3.open).toHaveBeenCalledTimes(1); - expect(window.fdc3.open).toHaveBeenCalledWith(target, ContactContext); + expect(window.fdc3?.open).toHaveBeenCalledTimes(1); + expect(window.fdc3?.open).toHaveBeenCalledWith(target, ContactContext); }); - test('findIntent should delegate to window.fdc3.findIntent', async () => { + test('findIntent should delegate to window.fdc3?.findIntent', async () => { const intent = 'ViewChart'; await findIntent(intent, ContactContext); - expect(window.fdc3.findIntent).toHaveBeenCalledTimes(1); - expect(window.fdc3.findIntent).toHaveBeenLastCalledWith(intent, ContactContext, undefined); + expect(window.fdc3?.findIntent).toHaveBeenCalledTimes(1); + expect(window.fdc3?.findIntent).toHaveBeenLastCalledWith(intent, ContactContext, undefined); }); - test('findIntent should delegate to window.fdc3.findIntent (with additional output type argument)', async () => { + test('findIntent should delegate to window.fdc3?.findIntent (with additional output type argument)', async () => { const intent = 'ViewChart'; await findIntent(intent, ContactContext, 'fdc3.contact'); - expect(window.fdc3.findIntent).toHaveBeenCalledTimes(1); - expect(window.fdc3.findIntent).toHaveBeenLastCalledWith(intent, ContactContext, 'fdc3.contact'); + expect(window.fdc3?.findIntent).toHaveBeenCalledTimes(1); + expect(window.fdc3?.findIntent).toHaveBeenLastCalledWith(intent, ContactContext, 'fdc3.contact'); }); - test('findIntentsByContext should delegate to window.fdc3.findIntentsByContext', async () => { + test('findIntentsByContext should delegate to window.fdc3?.findIntentsByContext', async () => { await findIntentsByContext(ContactContext); - expect(window.fdc3.findIntentsByContext).toHaveBeenCalledTimes(1); - expect(window.fdc3.findIntentsByContext).toHaveBeenLastCalledWith(ContactContext, undefined); + expect(window.fdc3?.findIntentsByContext).toHaveBeenCalledTimes(1); + expect(window.fdc3?.findIntentsByContext).toHaveBeenLastCalledWith(ContactContext, undefined); }); - test('findIntentsByContext should delegate to window.fdc3.findIntentsByContext (with additional output type argument)', async () => { + test('findIntentsByContext should delegate to window.fdc3?.findIntentsByContext (with additional output type argument)', async () => { await findIntentsByContext(ContactContext, 'fdc3.contact'); - expect(window.fdc3.findIntentsByContext).toHaveBeenCalledTimes(1); - expect(window.fdc3.findIntentsByContext).toHaveBeenLastCalledWith(ContactContext, 'fdc3.contact'); + expect(window.fdc3?.findIntentsByContext).toHaveBeenCalledTimes(1); + expect(window.fdc3?.findIntentsByContext).toHaveBeenLastCalledWith(ContactContext, 'fdc3.contact'); }); - test('broadcast should delegate to window.fdc3.broadcast', async () => { + test('broadcast should delegate to window.fdc3?.broadcast', async () => { await broadcast(ContactContext); - expect(window.fdc3.broadcast).toHaveBeenCalledTimes(1); - expect(window.fdc3.broadcast).toHaveBeenCalledWith(ContactContext); + expect(window.fdc3?.broadcast).toHaveBeenCalledTimes(1); + expect(window.fdc3?.broadcast).toHaveBeenCalledWith(ContactContext); }); - test('raiseIntent should delegate to window.fdc3.raiseIntent', async () => { + test('raiseIntent should delegate to window.fdc3?.raiseIntent', async () => { const intent = 'ViewChart'; const target = 'MyApp'; await raiseIntent(intent, ContactContext, target); - expect(window.fdc3.raiseIntent).toHaveBeenCalledTimes(1); - expect(window.fdc3.raiseIntent).toHaveBeenCalledWith(intent, ContactContext, target); + expect(window.fdc3?.raiseIntent).toHaveBeenCalledTimes(1); + expect(window.fdc3?.raiseIntent).toHaveBeenCalledWith(intent, ContactContext, target); }); - test('raiseIntentForContext should delegate to window.fdc3.raiseIntentForContext', async () => { + test('raiseIntentForContext should delegate to window.fdc3?.raiseIntentForContext', async () => { const app = 'MyApp'; await raiseIntentForContext(ContactContext, app); - expect(window.fdc3.raiseIntentForContext).toHaveBeenCalledTimes(1); - expect(window.fdc3.raiseIntentForContext).toHaveBeenCalledWith(ContactContext, app); + expect(window.fdc3?.raiseIntentForContext).toHaveBeenCalledTimes(1); + expect(window.fdc3?.raiseIntentForContext).toHaveBeenCalledWith(ContactContext, app); }); - test('addIntentListener should delegate to window.fdc3.addIntentListener', async () => { + test('addIntentListener should delegate to window.fdc3?.addIntentListener', async () => { const intent = 'ViewChart'; const handler: ContextHandler = _ => {}; await addIntentListener(intent, handler); - expect(window.fdc3.addIntentListener).toHaveBeenCalledTimes(1); - expect(window.fdc3.addIntentListener).toHaveBeenCalledWith(intent, handler); + expect(window.fdc3?.addIntentListener).toHaveBeenCalledTimes(1); + expect(window.fdc3?.addIntentListener).toHaveBeenCalledWith(intent, handler); }); - test('addContextListener should delegate to window.fdc3.addContextListener', async () => { + test('addContextListener should delegate to window.fdc3?.addContextListener', async () => { const type = 'fdc3.instrument'; const handler1: ContextHandler = _ => {}; const handler2: ContextHandler = _ => {}; @@ -232,93 +233,93 @@ describe('test ES6 module', () => { await addContextListener(type, handler1); await addContextListener(handler2); - expect(window.fdc3.addContextListener).toHaveBeenCalledTimes(2); - expect(window.fdc3.addContextListener).toHaveBeenNthCalledWith(1, type, handler1); - expect(window.fdc3.addContextListener).toHaveBeenNthCalledWith(2, null, handler2); + expect(window.fdc3?.addContextListener).toHaveBeenCalledTimes(2); + expect(window.fdc3?.addContextListener).toHaveBeenNthCalledWith(1, type, handler1); + expect(window.fdc3?.addContextListener).toHaveBeenNthCalledWith(2, null, handler2); }); - test('getUserChannels should delegate to window.fdc3.getUserChannels', async () => { + test('getUserChannels should delegate to window.fdc3?.getUserChannels', async () => { await getUserChannels(); - expect(window.fdc3.getUserChannels).toHaveBeenCalledTimes(1); - expect(window.fdc3.getUserChannels).toHaveBeenCalledWith(); + expect(window.fdc3?.getUserChannels).toHaveBeenCalledTimes(1); + expect(window.fdc3?.getUserChannels).toHaveBeenCalledWith(); }); - test('getSystemChannels should delegate to window.fdc3.getUserChannels', async () => { + test('getSystemChannels should delegate to window.fdc3?.getUserChannels', async () => { await getSystemChannels(); - expect(window.fdc3.getUserChannels).toHaveBeenCalledTimes(1); - expect(window.fdc3.getUserChannels).toHaveBeenCalledWith(); + expect(window.fdc3?.getUserChannels).toHaveBeenCalledTimes(1); + expect(window.fdc3?.getUserChannels).toHaveBeenCalledWith(); }); - test('joinChannel should delegate to window.fdc3.joinUserChannel', async () => { + test('joinChannel should delegate to window.fdc3?.joinUserChannel', async () => { const channelId = 'channel'; await joinChannel(channelId); - expect(window.fdc3.joinUserChannel).toHaveBeenCalledTimes(1); - expect(window.fdc3.joinUserChannel).toHaveBeenCalledWith(channelId); + expect(window.fdc3?.joinUserChannel).toHaveBeenCalledTimes(1); + expect(window.fdc3?.joinUserChannel).toHaveBeenCalledWith(channelId); }); - test('joinUserChannel should delegate to window.fdc3.joinUserChannel', async () => { + test('joinUserChannel should delegate to window.fdc3?.joinUserChannel', async () => { const channelId = 'channel'; await joinUserChannel(channelId); - expect(window.fdc3.joinUserChannel).toHaveBeenCalledTimes(1); - expect(window.fdc3.joinUserChannel).toHaveBeenCalledWith(channelId); + expect(window.fdc3?.joinUserChannel).toHaveBeenCalledTimes(1); + expect(window.fdc3?.joinUserChannel).toHaveBeenCalledWith(channelId); }); - test('getOrCreateChannel should delegate to window.fdc3.getOrCreateChannel', async () => { + test('getOrCreateChannel should delegate to window.fdc3?.getOrCreateChannel', async () => { const channelId = 'channel'; await getOrCreateChannel(channelId); - expect(window.fdc3.getOrCreateChannel).toHaveBeenCalledTimes(1); - expect(window.fdc3.getOrCreateChannel).toHaveBeenCalledWith(channelId); + expect(window.fdc3?.getOrCreateChannel).toHaveBeenCalledTimes(1); + expect(window.fdc3?.getOrCreateChannel).toHaveBeenCalledWith(channelId); }); - test('getCurrentChannel should delegate to window.fdc3.getCurrentChannel', async () => { + test('getCurrentChannel should delegate to window.fdc3?.getCurrentChannel', async () => { await getCurrentChannel(); - expect(window.fdc3.getCurrentChannel).toHaveBeenCalledTimes(1); - expect(window.fdc3.getCurrentChannel).toHaveBeenCalledWith(); + expect(window.fdc3?.getCurrentChannel).toHaveBeenCalledTimes(1); + expect(window.fdc3?.getCurrentChannel).toHaveBeenCalledWith(); }); - test('leaveCurrentChannel should delegate to window.fdc3.leaveCurrentChannel', async () => { + test('leaveCurrentChannel should delegate to window.fdc3?.leaveCurrentChannel', async () => { await leaveCurrentChannel(); - expect(window.fdc3.leaveCurrentChannel).toHaveBeenCalledTimes(1); - expect(window.fdc3.leaveCurrentChannel).toHaveBeenCalledWith(); + expect(window.fdc3?.leaveCurrentChannel).toHaveBeenCalledTimes(1); + expect(window.fdc3?.leaveCurrentChannel).toHaveBeenCalledWith(); }); - test('getInfo should delegate to window.fdc3.getInfo', async () => { + test('getInfo should delegate to window.fdc3?.getInfo', async () => { await getInfo(); - expect(window.fdc3.getInfo).toHaveBeenCalledTimes(1); - expect(window.fdc3.getInfo).toHaveBeenCalledWith(); + expect(window.fdc3?.getInfo).toHaveBeenCalledTimes(1); + expect(window.fdc3?.getInfo).toHaveBeenCalledWith(); }); - test('getAppMetadata should delegate to window.fdc3.getAppMetadata', async () => { + test('getAppMetadata should delegate to window.fdc3?.getAppMetadata', async () => { const dummyApp = { appId: 'dummy' }; await getAppMetadata(dummyApp); - expect(window.fdc3.getAppMetadata).toHaveBeenCalledTimes(1); - expect(window.fdc3.getAppMetadata).toHaveBeenCalledWith(dummyApp); + expect(window.fdc3?.getAppMetadata).toHaveBeenCalledTimes(1); + expect(window.fdc3?.getAppMetadata).toHaveBeenCalledWith(dummyApp); }); - test('createPrivateChannel should delegate to window.fdc3.createPrivateChannel', async () => { + test('createPrivateChannel should delegate to window.fdc3?.createPrivateChannel', async () => { await createPrivateChannel(); - expect(window.fdc3.createPrivateChannel).toHaveBeenCalledTimes(1); + expect(window.fdc3?.createPrivateChannel).toHaveBeenCalledTimes(1); }); - test('findInstances should delegate to window.fdc3.findInstances', async () => { + test('findInstances should delegate to window.fdc3?.findInstances', async () => { const dummyApp = { appId: 'dummy' }; await findInstances(dummyApp); - expect(window.fdc3.findInstances).toHaveBeenCalledTimes(1); - expect(window.fdc3.findInstances).toHaveBeenCalledWith(dummyApp); + expect(window.fdc3?.findInstances).toHaveBeenCalledTimes(1); + expect(window.fdc3?.findInstances).toHaveBeenCalledWith(dummyApp); }); }); }); diff --git a/packages/fdc3-standard/test/window.test.ts b/packages/fdc3-standard/test/window.test.ts index 6371c1dbf..c30d52420 100644 --- a/packages/fdc3-standard/test/window.test.ts +++ b/packages/fdc3-standard/test/window.test.ts @@ -1,3 +1,5 @@ +import { describe, it, expect } from 'vitest'; + describe('Window object', () => { it('fdc3 property should be present but undefined', () => { expect(window.fdc3).toBe(undefined); diff --git a/packages/fdc3-standard/vitest.config.ts b/packages/fdc3-standard/vitest.config.ts new file mode 100644 index 000000000..6c027917c --- /dev/null +++ b/packages/fdc3-standard/vitest.config.ts @@ -0,0 +1,16 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + include: ['test/**/*.test.ts'], + environment: 'jsdom', + coverage: { + enabled: true, + provider: 'v8', + reporter: ['text', 'lcov', 'json'], + reportsDirectory: './coverage', + include: ['src/**/*.ts'], + exclude: ['src/**/*.d.ts'], + }, + }, +}); diff --git a/packages/fdc3/package.json b/packages/fdc3/package.json index 81b9b6ab7..8fed7d109 100644 --- a/packages/fdc3/package.json +++ b/packages/fdc3/package.json @@ -1,6 +1,6 @@ { "name": "@finos/fdc3", - "version": "2.2.0", + "version": "2.2.2-beta.1", "author": "Fintech Open Source Foundation (FINOS)", "homepage": "https://fdc3.finos.org", "repository": { diff --git a/packages/testing/package.json b/packages/testing/package.json index 348e283f0..b65af5262 100644 --- a/packages/testing/package.json +++ b/packages/testing/package.json @@ -1,6 +1,6 @@ { "name": "@finos/testing", - "version": "2.2.0", + "version": "2.2.2-beta.1", "author": "Fintech Open Source Foundation (FINOS)", "homepage": "https://fdc3.finos.org", "repository": { @@ -12,11 +12,19 @@ }, "license": "Apache-2.0", "private": true, + "type": "module", "files": [ "dist" ], "main": "dist/src/index.js", "types": "dist/src/index.d.ts", + "exports": { + ".": { + "types": "./dist/src/index.d.ts", + "import": "./dist/src/index.js", + "require": "./dist/src/index.js" + } + }, "scripts": { "build": "tsc", "clean": "rimraf dist", @@ -24,9 +32,10 @@ }, "dependencies": { "@cucumber/cucumber": "10.3.1", + "quickpickle": "^1.4.1", "@cucumber/html-formatter": "11.0.4", "@cucumber/pretty-formatter": "1.0.1", - "@finos/fdc3-standard": "2.2.0", + "@finos/fdc3-standard": "2.2.2-beta.1", "@types/expect": "24.3.0", "@types/lodash": "4.14.167", "@types/node": "^20.16.11", @@ -35,7 +44,6 @@ "@typescript-eslint/parser": "^8.18.2", "ajv": "^8.18.0", "ajv-formats": "^3.0.1", - "cucumber-console-formatter": "1.0.0", "eslint": "^9.32.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-import": "^2.31.0", diff --git a/packages/testing/src/agent/index.ts b/packages/testing/src/agent/index.ts index 2a233a8d4..6249f08d1 100644 --- a/packages/testing/src/agent/index.ts +++ b/packages/testing/src/agent/index.ts @@ -1,16 +1,16 @@ import { AppIntent, Channel, IntentResult } from '@finos/fdc3-standard'; import { Context } from '@finos/fdc3-context'; import { IntentResolver, IntentResolutionChoice, ChannelSelector } from '@finos/fdc3-standard'; -import { PropsWorld } from '../world/index.js'; +import { PropsWorldLike } from '../world/PropsWorldLike.js'; /** * This super-simple intent resolver just resolves to the first * intent / app in the list, unless the context is fdc3.cancel-me and then it just cancels. */ export class SimpleIntentResolver implements IntentResolver { - cw: PropsWorld; + cw: PropsWorldLike; - constructor(cw: PropsWorld) { + constructor(cw: PropsWorldLike) { this.cw = cw; } @@ -44,9 +44,9 @@ export class SimpleIntentResolver implements IntentResolver { export const CHANNEL_STATE = 'CHANNEL_STATE'; export class SimpleChannelSelector implements ChannelSelector { - cw: PropsWorld; + cw: PropsWorldLike; - constructor(cw: PropsWorld) { + constructor(cw: PropsWorldLike) { this.cw = cw; } diff --git a/packages/testing/src/index.ts b/packages/testing/src/index.ts index 4800e34c9..1950d29a6 100644 --- a/packages/testing/src/index.ts +++ b/packages/testing/src/index.ts @@ -1,18 +1,20 @@ import { setupGenericSteps } from './steps/generic.steps.js'; -import { doesRowMatch, handleResolve, indexOf, matchData } from './support/matching.js'; -import { PropsWorld } from './world/index.js'; -import Ajv2019 from 'ajv/dist/2019'; +import { doesRowMatch, handleResolve, indexOf, matchData, HashesProvider } from './support/matching.js'; +import { PropsWorldLike } from './world/PropsWorldLike.js'; +import Ajv2019 from 'ajv/dist/2019.js'; import addFormats from 'ajv-formats'; -import { SimpleIntentResolver, CHANNEL_STATE } from './agent/index.js'; +import { SimpleIntentResolver, SimpleChannelSelector, CHANNEL_STATE } from './agent/index.js'; export { - PropsWorld, + PropsWorldLike, + HashesProvider, doesRowMatch, handleResolve, indexOf, matchData, setupGenericSteps, SimpleIntentResolver, + SimpleChannelSelector, addFormats, Ajv2019, CHANNEL_STATE, diff --git a/packages/testing/src/steps/generic.impl.ts b/packages/testing/src/steps/generic.impl.ts new file mode 100644 index 000000000..54b2cdf8b --- /dev/null +++ b/packages/testing/src/steps/generic.impl.ts @@ -0,0 +1,219 @@ +import { PropsWorldLike } from '../world/PropsWorldLike.js'; +import { handleResolve, matchData, doesRowMatch, HashesProvider } from '../support/matching.js'; +import { expect } from 'vitest'; +import * as AjvModule from 'ajv/dist/2019.js'; +import * as draft7MetaSchema from 'ajv/dist/refs/json-schema-draft-07.json' with { type: 'json' }; +import * as addFormatsModule from 'ajv-formats'; +import fs from 'fs'; +import path from 'path'; + +// Workaround for AJV ESM default export +// eslint-disable-next-line @typescript-eslint/no-explicit-any +const AjvCtor = (AjvModule as any).default ?? AjvModule; +// eslint-disable-next-line @typescript-eslint/no-explicit-any +const addFormatsFn = (addFormatsModule as any).default ?? addFormatsModule; + +export async function promiseShouldResolve(world: PropsWorldLike, field: string): Promise { + try { + const promise = handleResolve(field, world) as Promise; + const object = await promise; + world.props['result'] = object; + } catch (error) { + world.props['result'] = error; + } +} + +export async function promiseShouldResolveWithin10Seconds(world: PropsWorldLike, field: string): Promise { + try { + const promise = handleResolve(field, world) as Promise; + const object = await promise; + world.props['result'] = object; + } catch (error) { + world.props['result'] = error; + } +} + +export async function callWithMethod(world: PropsWorldLike, field: string, fnName: string): Promise { + try { + const object = handleResolve(field, world) as Record unknown>; + const fn = object[fnName]; + const result = await fn.call(object); + world.props['result'] = result; + } catch (error) { + world.props['result'] = error; + } +} + +export async function callWithMethodAndParam( + world: PropsWorldLike, + field: string, + fnName: string, + param: string +): Promise { + try { + const object = handleResolve(field, world) as Record unknown>; + const fn = object[fnName]; + const result = await fn.call(object, handleResolve(param, world)); + world.props['result'] = result; + } catch (error) { + world.props['result'] = error; + } +} + +export async function callWithMethodAndTwoParams( + world: PropsWorldLike, + field: string, + fnName: string, + param1: string, + param2: string +): Promise { + try { + const object = handleResolve(field, world) as Record unknown>; + const fn = object[fnName]; + const result = await fn.call(object, handleResolve(param1, world), handleResolve(param2, world)); + world.props['result'] = result; + } catch (error) { + world.props['result'] = error; + } +} + +export async function callWithMethodAndThreeParams( + world: PropsWorldLike, + field: string, + fnName: string, + param1: string, + param2: string, + param3: string +): Promise { + try { + const object = handleResolve(field, world) as Record unknown>; + const fn = object[fnName]; + const result = await fn.call( + object, + handleResolve(param1, world), + handleResolve(param2, world), + handleResolve(param3, world) + ); + world.props['result'] = result; + } catch (error) { + world.props['result'] = error; + } +} + +export function referToAs(world: PropsWorldLike, from: string, to: string): void { + world.props[to] = handleResolve(from, world); +} + +export function isArrayOfObjectsWithContents(world: PropsWorldLike, field: string, dt: HashesProvider): void { + matchData(world, handleResolve(field, world) as unknown[], dt); +} + +export function isArrayOfObjectsWithLength(world: PropsWorldLike, field: string, field2: string): void { + expect((handleResolve(field, world) as unknown[]).length).toEqual( + Number.parseInt(handleResolve(field2, world) as string) + ); +} + +export function isArrayOfStringsWithValues(world: PropsWorldLike, field: string, dt: HashesProvider): void { + const values = (handleResolve(field, world) as string[]).map((s: string) => { + return { value: s }; + }); + matchData(world, values, dt); +} + +export function isObjectWithContents(world: PropsWorldLike, field: string, params: HashesProvider): void { + const table = params.hashes(); + expect(doesRowMatch(world, table[0], handleResolve(field, world))).toBeTruthy(); +} + +export function isNull(world: PropsWorldLike, field: string): void { + expect(handleResolve(field, world)).toBeNull(); +} + +export function isNotNull(world: PropsWorldLike, field: string): void { + expect(handleResolve(field, world)).toBeDefined(); +} + +export function isTrue(world: PropsWorldLike, field: string): void { + expect(handleResolve(field, world)).toBeTruthy(); +} + +export function isFalse(world: PropsWorldLike, field: string): void { + expect(handleResolve(field, world)).toBeFalsy(); +} + +export function isUndefined(world: PropsWorldLike, field: string): void { + expect(handleResolve(field, world)).toBeUndefined(); +} + +export function isEmpty(world: PropsWorldLike, field: string): void { + expect(handleResolve(field, world)).toHaveLength(0); +} + +export function isEqual(world: PropsWorldLike, field: string, expected: string): void { + const fVal = handleResolve(field, world); + const eVal = handleResolve(expected, world); + expect('' + fVal).toEqual('' + eVal); +} + +export function isErrorWithMessage(world: PropsWorldLike, field: string, errorType: string): void { + expect((handleResolve(field, world) as { message: string })['message']).toBe(errorType); +} + +export function isError(world: PropsWorldLike, field: string): void { + expect(handleResolve(field, world)).toBeInstanceOf(Error); +} + +export function isInvocationCounter(world: PropsWorldLike, handlerName: string, field: string): void { + world.props[handlerName] = () => { + let amount = world.props[field] as number; + amount++; + world.props[field] = amount; + }; + world.props[field] = 0; +} + +export function isFunctionReturningPromiseOf(world: PropsWorldLike, fnName: string, field: string): void { + const value = handleResolve(field, world); + world.props[fnName] = async () => { + return value; + }; +} + +export function waitForPeriod(_world: PropsWorldLike, ms: string): Promise { + return new Promise((resolve, _reject) => { + setTimeout(() => resolve(), parseInt(ms)); + }); +} + +export async function schemasLoaded(world: PropsWorldLike, schemaBasePath: string): Promise { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const ajv = new AjvCtor() as any; + ajv.addMetaSchema(draft7MetaSchema); + addFormatsFn(ajv); + + const schemaDir = path.join(schemaBasePath, 'fdc3-schema/schemas'); + const contextDir = path.join(schemaBasePath, 'fdc3-context/schemas'); + + const abspath = path.join(schemaDir, 'api'); + + try { + fs.readdirSync(abspath).forEach(file => { + if (file.endsWith('.json')) { + const filePath = path.join(abspath, file); + const contents = fs.readFileSync(filePath, 'utf8'); + const schema = JSON.parse(contents); + ajv.addSchema(schema); + } + }); + } catch (error) { + console.log(error); + } + + const contextPath = path.join(contextDir, 'context/context.schema.json'); + const contents = fs.readFileSync(contextPath, 'utf8'); + const schema = JSON.parse(contents); + ajv.addSchema(schema); + + world.props['ajv'] = ajv; +} diff --git a/packages/testing/src/steps/generic.steps.ts b/packages/testing/src/steps/generic.steps.ts index 903bd8853..51f6add69 100644 --- a/packages/testing/src/steps/generic.steps.ts +++ b/packages/testing/src/steps/generic.steps.ts @@ -1,230 +1,129 @@ -import { DataTable, Given, Then, When } from '@cucumber/cucumber'; -import Ajv2019 from 'ajv/dist/2019'; -import * as draft7MetaSchema from 'ajv/dist/refs/json-schema-draft-07.json'; -import addFormats from 'ajv-formats'; -import { expect } from 'expect'; -import { doesRowMatch, handleResolve, matchData } from '../support/matching.js'; -import { PropsWorld } from '../world/index.js'; -import fs from 'fs'; -import path from 'path'; - -export function setupGenericSteps() { - Then('the promise {string} should resolve', async function (this: PropsWorld, field: string) { - try { - const promise = handleResolve(field, this); - const object = await promise; - this.props['result'] = object; - } catch (error) { - this.props['result'] = error; - } +import { Given, When, Then } from 'quickpickle'; +import { DataTable } from '@cucumber/cucumber'; +import { PropsWorldLike } from '../world/PropsWorldLike.js'; +import * as impl from './generic.impl.js'; + +export function setupGenericSteps(schemaBasePath: string): void { + Then('the promise {string} should resolve', async (world: PropsWorldLike, field: string) => { + await impl.promiseShouldResolve(world, field); }); - Then( - 'the promise {string} should resolve within 10 seconds', - { timeout: 10 * 1000 }, - async function (this: PropsWorld, field: string) { - try { - const promise = handleResolve(field, this); - const object = await promise; - this.props['result'] = object; - } catch (error) { - this.props['result'] = error; - } - } - ); + Then('the promise {string} should resolve within 10 seconds', async (world: PropsWorldLike, field: string) => { + await impl.promiseShouldResolveWithin10Seconds(world, field); + }); - When('I call {string} with {string}', async function (this: PropsWorld, field: string, fnName: string) { - try { - const object = handleResolve(field, this); - const fn = object[fnName]; - const result = await fn.call(object); - this.props['result'] = result; - } catch (error) { - this.props['result'] = error; - } + When('I call {string} with {string}', async (world: PropsWorldLike, field: string, fnName: string) => { + await impl.callWithMethod(world, field, fnName); }); When( 'I call {string} with {string} with parameter {string}', - async function (this: PropsWorld, field: string, fnName: string, param: string) { - try { - const object = handleResolve(field, this); - const fn = object[fnName]; - const result = await fn.call(object, handleResolve(param, this)); - this.props['result'] = result; - } catch (error) { - this.props['result'] = error; - } + async (world: PropsWorldLike, field: string, fnName: string, param: string) => { + await impl.callWithMethodAndParam(world, field, fnName, param); } ); When( 'I call {string} with {string} with parameters {string} and {string}', - async function (this: PropsWorld, field: string, fnName: string, param1: string, param2: string) { - try { - const object = handleResolve(field, this); - const fn = object[fnName]; - const result = await fn.call(object, handleResolve(param1, this), handleResolve(param2, this)); - this.props['result'] = result; - } catch (error) { - this.props['result'] = error; - } + async (world: PropsWorldLike, field: string, fnName: string, param1: string, param2: string) => { + await impl.callWithMethodAndTwoParams(world, field, fnName, param1, param2); } ); When( 'I call {string} with {string} with parameters {string} and {string} and {string}', - async function (this: PropsWorld, field: string, fnName: string, param1: string, param2: string, param3: string) { - try { - const object = handleResolve(field, this); - const fn = object[fnName]; - const result = await fn.call( - object, - handleResolve(param1, this), - handleResolve(param2, this), - handleResolve(param3, this) - ); - this.props['result'] = result; - } catch (error) { - this.props['result'] = error; - } + async (world: PropsWorldLike, field: string, fnName: string, param1: string, param2: string, param3: string) => { + await impl.callWithMethodAndThreeParams(world, field, fnName, param1, param2, param3); } ); - When('I refer to {string} as {string}', async function (this: PropsWorld, from: string, to: string) { - this.props[to] = handleResolve(from, this); + When('I refer to {string} as {string}', (world: PropsWorldLike, from: string, to: string) => { + impl.referToAs(world, from, to); }); Then( '{string} is an array of objects with the following contents', - function (this: PropsWorld, field: string, dt: DataTable) { - matchData(this, handleResolve(field, this), dt); + (world: PropsWorldLike, field: string, dt: DataTable) => { + impl.isArrayOfObjectsWithContents(world, field, dt); } ); Then( '{string} is an array of objects with length {string}', - function (this: PropsWorld, field: string, field2: string) { - expect(handleResolve(field, this).length).toEqual(Number.parseInt(handleResolve(field2, this))); + (world: PropsWorldLike, field: string, field2: string) => { + impl.isArrayOfObjectsWithLength(world, field, field2); } ); Then( '{string} is an array of strings with the following values', - function (this: PropsWorld, field: string, dt: DataTable) { - const values = handleResolve(field, this).map((s: string) => { - return { value: s }; - }); - matchData(this, values, dt); + (world: PropsWorldLike, field: string, dt: DataTable) => { + impl.isArrayOfStringsWithValues(world, field, dt); } ); Then( '{string} is an object with the following contents', - function (this: PropsWorld, field: string, params: DataTable) { - const table = params.hashes(); - expect(doesRowMatch(this, table[0], handleResolve(field, this))).toBeTruthy(); + (world: PropsWorldLike, field: string, params: DataTable) => { + impl.isObjectWithContents(world, field, params); } ); - Then('{string} is null', function (this: PropsWorld, field: string) { - expect(handleResolve(field, this)).toBeNull(); + Then('{string} is null', (world: PropsWorldLike, field: string) => { + impl.isNull(world, field); }); - Then('{string} is not null', function (this: PropsWorld, field: string) { - expect(handleResolve(field, this)).toBeDefined(); + Then('{string} is not null', (world: PropsWorldLike, field: string) => { + impl.isNotNull(world, field); }); - Then('{string} is true', function (this: PropsWorld, field: string) { - expect(handleResolve(field, this)).toBeTruthy(); + Then('{string} is true', (world: PropsWorldLike, field: string) => { + impl.isTrue(world, field); }); - Then('{string} is false', function (this: PropsWorld, field: string) { - expect(handleResolve(field, this)).toBeFalsy(); + Then('{string} is false', (world: PropsWorldLike, field: string) => { + impl.isFalse(world, field); }); - Then('{string} is undefined', function (this: PropsWorld, field: string) { - expect(handleResolve(field, this)).toBeUndefined(); + Then('{string} is undefined', (world: PropsWorldLike, field: string) => { + impl.isUndefined(world, field); }); - Then('{string} is empty', function (this: PropsWorld, field: string) { - expect(handleResolve(field, this)).toHaveLength(0); + Then('{string} is empty', (world: PropsWorldLike, field: string) => { + impl.isEmpty(world, field); }); - Then('{string} is {string}', function (this: PropsWorld, field: string, expected: string) { - const fVal = handleResolve(field, this); - const eVal = handleResolve(expected, this); - expect('' + fVal).toEqual('' + eVal); + Then('{string} is {string}', (world: PropsWorldLike, field: string, expected: string) => { + impl.isEqual(world, field, expected); }); - Then('{string} is an error with message {string}', function (this: PropsWorld, field: string, errorType: string) { - expect(handleResolve(field, this)['message']).toBe(errorType); + Then('{string} is an error with message {string}', (world: PropsWorldLike, field: string, errorType: string) => { + impl.isErrorWithMessage(world, field, errorType); }); - Then('{string} is an error', function (this: PropsWorld, field: string) { - expect(handleResolve(field, this)).toBeInstanceOf(Error); + Then('{string} is an error', (world: PropsWorldLike, field: string) => { + impl.isError(world, field); }); Given( '{string} is a invocation counter into {string}', - function (this: PropsWorld, handlerName: string, field: string) { - this.props[handlerName] = () => { - var amount: number = this.props[field]; - amount++; - this.props[field] = amount; - }; - this.props[field] = 0; + (world: PropsWorldLike, handlerName: string, field: string) => { + impl.isInvocationCounter(world, handlerName, field); } ); Given( '{string} is a function which returns a promise of {string}', - function (this: PropsWorld, fnName: string, field: string) { - const value = handleResolve(field, this); - this.props[fnName] = async () => { - return value; - }; + (world: PropsWorldLike, fnName: string, field: string) => { + impl.isFunctionReturningPromiseOf(world, fnName, field); } ); - Given('we wait for a period of {string} ms', function (this: PropsWorld, ms: string) { - return new Promise((resolve, _reject) => { - setTimeout(() => resolve(), parseInt(ms)); - }); + Given('we wait for a period of {string} ms', (world: PropsWorldLike, ms: string) => { + return impl.waitForPeriod(world, ms); }); - Given('schemas loaded', async function (this: PropsWorld) { - const ajv = new Ajv2019(); - ajv.addMetaSchema(draft7MetaSchema); - addFormats(ajv); - - const f2 = fs; - const p = path; - - const schemaDir = p.join(__dirname, '../../../../fdc3-schema/schemas'); - const contextDir = p.join(__dirname, '../../../../fdc3-context/schemas'); - - const abspath = p.join(schemaDir, 'api'); - - try { - f2.readdirSync(abspath).forEach(file => { - if (file.endsWith('.json')) { - const filePath = p.join(abspath, file); - const contents = fs.readFileSync(filePath, 'utf8'); - const schema = JSON.parse(contents); - ajv.addSchema(schema); - //console.log(`Content of ${file}: ${contents}`); - } - }); - } catch (error) { - console.log(error); - } - - const contextPath = p.join(contextDir, 'context/context.schema.json'); - const contents = fs.readFileSync(contextPath, 'utf8'); - const schema = JSON.parse(contents); - ajv.addSchema(schema); - - this.props['ajv'] = ajv; + Given('schemas loaded', async (world: PropsWorldLike) => { + await impl.schemasLoaded(world, schemaBasePath); }); } diff --git a/packages/testing/src/support/matching.ts b/packages/testing/src/support/matching.ts index 205648b93..31ca77178 100644 --- a/packages/testing/src/support/matching.ts +++ b/packages/testing/src/support/matching.ts @@ -1,10 +1,13 @@ import { JSONPath } from 'jsonpath-plus'; -import { PropsWorld } from '../world/index.js'; -import expect from 'expect'; -import { DataTable } from '@cucumber/cucumber'; -import Ajv from 'ajv/dist/2019'; +import { PropsWorldLike } from '../world/PropsWorldLike.js'; +import { expect } from 'vitest'; -export function doesRowMatch(cw: PropsWorld, t: Record, data: any): boolean { +export interface HashesProvider { + hashes(): Record[]; +} + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +export function doesRowMatch(cw: PropsWorldLike, t: Record, data: any): boolean { for (const [field, actual] of Object.entries(t)) { if (field.endsWith('matches_type')) { // validation mode @@ -16,7 +19,7 @@ export function doesRowMatch(cw: PropsWorld, t: Record, data: an valdata = JSONPath({ path: path, json: data })[0]; } - const validator: Ajv = cw.props['ajv']; + const validator = cw.props['ajv']; const validate = validator.getSchema('https://fdc3.finos.org/schemas/next/api/' + actual + '.schema.json'); if (validate == undefined) { throw Error('No schema found for ' + actual); @@ -50,7 +53,8 @@ export function doesRowMatch(cw: PropsWorld, t: Record, data: an return true; } -export function indexOf(cw: PropsWorld, rows: Record[], data: any): number { +// eslint-disable-next-line @typescript-eslint/no-explicit-any +export function indexOf(cw: PropsWorldLike, rows: Record[], data: any): number { for (var i = 0; i < rows.length; i++) { if (doesRowMatch(cw, rows[i], data)) { return i; @@ -64,7 +68,8 @@ function isNumeric(n: string) { return !isNaN(parseFloat(n)) && isFinite(n as unknown as number); } -export function handleResolve(name: string, on: PropsWorld): any { +// eslint-disable-next-line @typescript-eslint/no-explicit-any +export function handleResolve(name: string, on: PropsWorldLike): any { if (name.startsWith('{') && name.endsWith('}')) { const stripped = name.substring(1, name.length - 1); if (stripped == 'null') { @@ -84,7 +89,8 @@ export function handleResolve(name: string, on: PropsWorld): any { } } -export function matchData(cw: PropsWorld, actual: any[], dt: DataTable) { +// eslint-disable-next-line @typescript-eslint/no-explicit-any +export function matchData(cw: PropsWorldLike, actual: any[], dt: HashesProvider) { const tableData = dt.hashes(); const rowCount = tableData.length; diff --git a/packages/testing/src/world/PropsWorldLike.ts b/packages/testing/src/world/PropsWorldLike.ts new file mode 100644 index 000000000..c5e81ed0a --- /dev/null +++ b/packages/testing/src/world/PropsWorldLike.ts @@ -0,0 +1,5 @@ +export interface PropsWorldLike { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + props: Record; + log(message: string): void; +} diff --git a/packages/testing/src/world/index.ts b/packages/testing/src/world/index.ts deleted file mode 100644 index f4794a3ad..000000000 --- a/packages/testing/src/world/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { World } from '@cucumber/cucumber'; - -export class PropsWorld extends World { - props: Record = {}; -} diff --git a/toolbox/fdc3-for-web/fdc3-web-impl/package.json b/toolbox/fdc3-for-web/fdc3-web-impl/package.json index 3c7fe7874..e8cdbcded 100644 --- a/toolbox/fdc3-for-web/fdc3-web-impl/package.json +++ b/toolbox/fdc3-for-web/fdc3-web-impl/package.json @@ -1,6 +1,6 @@ { "name": "@finos/fdc3-web-impl", - "version": "2.2.0", + "version": "2.2.2-beta.1", "author": "Fintech Open Source Foundation (FINOS)", "homepage": "https://fdc3.finos.org", "repository": { @@ -11,20 +11,23 @@ "tag": "latest" }, "license": "Apache-2.0", + "type": "module", "files": [ "dist" ], "main": "dist/src/index.js", "types": "dist/src/index.d.ts", "scripts": { - "clean": "rimraf dist cucumber-report.html coverage .nyc_output node_modules test-results.xml generated", + "clean": "rimraf dist coverage node_modules test-results.xml generated", "directory-openapi": "npx openapi-typescript ../../../packages/fdc3-standard/src/app-directory/specification/appd.schema.json --output generated/directory-schema.ts", - "test": "npm run directory-openapi && tsc && nyc --reporter=lcov --reporter=text --reporter json cucumber-js", + "test": "npm run directory-openapi && tsc && vitest run", + "test:watch": "vitest", + "test:coverage": "vitest run --coverage", "build": "npm run directory-openapi && tsc", "lint": "eslint src/" }, "dependencies": { - "@finos/fdc3-standard": "2.2.0", + "@finos/fdc3-standard": "2.2.2-beta.1", "@types/uuid": "^10.0.0", "uuid": "^9.0.1" }, @@ -34,29 +37,30 @@ "@cucumber/messages": "^28.1.0", "@cucumber/pretty-formatter": "1.0.1", "@eslint/js": "^9.19.0", - "@finos/testing": "2.2.0", + "@finos/testing": "2.2.2-beta.1", "@types/expect": "24.3.0", "@types/lodash": "4.14.167", "@types/node": "^20.16.11", "@types/uuid": "^10.0.0", "@typescript-eslint/eslint-plugin": "^8.18.2", "@typescript-eslint/parser": "^8.18.2", + "@vitest/coverage-v8": "^2.0.0", "cucumber-console-formatter": "1.0.0", "eslint": "^9.32.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-import": "^2.31.0", "eslint-plugin-prettier": "3.3.1", - "expect": "^29.7.0", "globals": "^15.14.0", "is-ci": "2.0.0", "jsonpath-plus": "^10.1.0", - "nyc": "17.1.0", "openapi-typescript": "^6.7.6", "prettier": "3.4.1", + "quickpickle": "^1.0.0", "rimraf": "^6.0.1", "ts-node": "^10.9.2", "typescript": "^5.6.3", "typescript-eslint": "^8.17.0", - "uuid": "^9.0.1" + "uuid": "^9.0.1", + "vitest": "^2.0.0" } } diff --git a/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/app-channel.steps.ts b/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/app-channel.steps.ts index d8298df05..272c10c8e 100644 --- a/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/app-channel.steps.ts +++ b/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/app-channel.steps.ts @@ -1,23 +1,20 @@ -import { When } from '@cucumber/cucumber'; +import { When } from 'quickpickle'; import { CustomWorld } from '../world/index.js'; import { createMeta } from './generic.steps.js'; import { handleResolve } from '@finos/testing'; import { BrowserTypes } from '@finos/fdc3-schema'; type GetOrCreateChannelRequest = BrowserTypes.GetOrCreateChannelRequest; -When( - '{string} creates or gets an app channel called {string}', - function (this: CustomWorld, app: string, channel: string) { - const meta = createMeta(this, app); - const uuid = this.sc.getInstanceUUID(meta.source)!; - const message = { - meta, - payload: { - channelId: handleResolve(channel, this), - }, - type: 'getOrCreateChannelRequest', - } as GetOrCreateChannelRequest; +When('{string} creates or gets an app channel called {string}', (world: CustomWorld, app: string, channel: string) => { + const meta = createMeta(world, app); + const uuid = world.sc.getInstanceUUID(meta.source)!; + const message = { + meta, + payload: { + channelId: handleResolve(channel, world), + }, + type: 'getOrCreateChannelRequest', + } as GetOrCreateChannelRequest; - this.server.receive(message, uuid); - } -); + world.server.receive(message, uuid); +}); diff --git a/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/broadcast.steps.ts b/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/broadcast.steps.ts index e74e408c1..97b743c79 100644 --- a/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/broadcast.steps.ts +++ b/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/broadcast.steps.ts @@ -1,4 +1,4 @@ -import { When } from '@cucumber/cucumber'; +import { When } from 'quickpickle'; import { CustomWorld } from '../world/index.js'; import { createMeta } from './generic.steps.js'; import {} from '@finos/fdc3-standard'; @@ -13,61 +13,61 @@ type GetCurrentContextRequest = BrowserTypes.GetCurrentContextRequest; When( '{string} adds a context listener on {string} with type {string}', - function (this: CustomWorld, app: string, channelId: string, contextType: string) { - const meta = createMeta(this, app); - const uuid = this.sc.getInstanceUUID(meta.source)!; + (world: CustomWorld, app: string, channelId: string, contextType: string) => { + const meta = createMeta(world, app); + const uuid = world.sc.getInstanceUUID(meta.source)!; const message = { meta, payload: { - channelId: handleResolve(channelId, this), - contextType: handleResolve(contextType, this), + channelId: handleResolve(channelId, world), + contextType: handleResolve(contextType, world), }, type: 'addContextListenerRequest', } as AddContextListenerRequest; - this.server.receive(message, uuid); + world.server.receive(message, uuid); } ); When( '{string} adds a user-channel context listener with type {string}', - function (this: CustomWorld, app: string, contextType: string) { - const meta = createMeta(this, app); - const uuid = this.sc.getInstanceUUID(meta.source)!; + (world: CustomWorld, app: string, contextType: string) => { + const meta = createMeta(world, app); + const uuid = world.sc.getInstanceUUID(meta.source)!; const message = { meta, payload: { channelId: null, // null indicates it's added at the DesktopAgent level and listens on the current user-channel - contextType: handleResolve(contextType, this), + contextType: handleResolve(contextType, world), }, type: 'addContextListenerRequest', } as AddContextListenerRequest; - this.server.receive(message, uuid); + world.server.receive(message, uuid); } ); When( '{string} asks for the latest context on {string} with type {string}', - function (this: CustomWorld, app: string, channelId: string, contextType: string) { - const meta = createMeta(this, app); - const uuid = this.sc.getInstanceUUID(meta.source)!; + (world: CustomWorld, app: string, channelId: string, contextType: string) => { + const meta = createMeta(world, app); + const uuid = world.sc.getInstanceUUID(meta.source)!; const message = { meta, payload: { - channelId: handleResolve(channelId, this), + channelId: handleResolve(channelId, world), contextType, }, type: 'getCurrentContextRequest', } as GetCurrentContextRequest; - this.server.receive(message, uuid); + world.server.receive(message, uuid); } ); -When('{string} removes context listener with id {string}', function (this: CustomWorld, app: string, id: string) { - const meta = createMeta(this, app); - const uuid = this.sc.getInstanceUUID(meta.source)!; +When('{string} removes context listener with id {string}', (world: CustomWorld, app: string, id: string) => { + const meta = createMeta(world, app); + const uuid = world.sc.getInstanceUUID(meta.source)!; const message = { meta, @@ -77,24 +77,24 @@ When('{string} removes context listener with id {string}', function (this: Custo type: 'contextListenerUnsubscribeRequest', } as ContextListenerUnsubscribeRequest; - this.server.receive(message, uuid); + world.server.receive(message, uuid); }); When( '{string} broadcasts {string} on {string}', - function (this: CustomWorld, app: string, contextType: string, channelId: string) { - const meta = createMeta(this, app); - const uuid = this.sc.getInstanceUUID(meta.source)!; + (world: CustomWorld, app: string, contextType: string, channelId: string) => { + const meta = createMeta(world, app); + const uuid = world.sc.getInstanceUUID(meta.source)!; const message = { meta, payload: { - channelId: handleResolve(channelId, this), + channelId: handleResolve(channelId, world), context: contextMap[contextType], }, type: 'broadcastRequest', } as BroadcastRequest; - this.server.receive(message, uuid); + world.server.receive(message, uuid); } ); diff --git a/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/event-listeners.steps.ts b/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/event-listeners.steps.ts index be30798ad..7418b4491 100644 --- a/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/event-listeners.steps.ts +++ b/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/event-listeners.steps.ts @@ -1,6 +1,6 @@ -import { When } from '@cucumber/cucumber'; -import { CustomWorld } from '../world'; -import { createMeta } from './generic.steps'; +import { When } from 'quickpickle'; +import { CustomWorld } from '../world/index.js'; +import { createMeta } from './generic.steps.js'; import {} from '@finos/fdc3-standard'; import { handleResolve } from '@finos/testing'; import { BrowserTypes } from '@finos/fdc3-schema'; @@ -8,11 +8,11 @@ import { BrowserTypes } from '@finos/fdc3-schema'; type AddEventListenerRequest = BrowserTypes.AddEventListenerRequest; type EventListenerUnsubscribeRequest = BrowserTypes.EventListenerUnsubscribeRequest; -When('{string} adds an event listener for {string}', function (this: CustomWorld, app: string, type: string) { - const meta = createMeta(this, app); - const resolvedType = handleResolve(type, this); +When('{string} adds an event listener for {string}', (world: CustomWorld, app: string, type: string) => { + const meta = createMeta(world, app); + const resolvedType = handleResolve(type, world); - const uuid = this.sc.getInstanceUUID(meta.source)!; + const uuid = world.sc.getInstanceUUID(meta.source)!; const message = { meta, payload: { @@ -21,12 +21,12 @@ When('{string} adds an event listener for {string}', function (this: CustomWorld type: 'addEventListenerRequest', } as AddEventListenerRequest; - this.server.receive(message, uuid); + world.server.receive(message, uuid); }); -When('{string} removes event listener with id {string}', function (this: CustomWorld, app: string, id: string) { - const meta = createMeta(this, app); - const uuid = this.sc.getInstanceUUID(meta.source)!; +When('{string} removes event listener with id {string}', (world: CustomWorld, app: string, id: string) => { + const meta = createMeta(world, app); + const uuid = world.sc.getInstanceUUID(meta.source)!; const message = { meta, @@ -36,5 +36,5 @@ When('{string} removes event listener with id {string}', function (this: CustomW type: 'eventListenerUnsubscribeRequest', } as EventListenerUnsubscribeRequest; - this.server.receive(message, uuid); + world.server.receive(message, uuid); }); diff --git a/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/generic.steps.ts b/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/generic.steps.ts index cfd1a4f3d..9561964fa 100644 --- a/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/generic.steps.ts +++ b/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/generic.steps.ts @@ -1,4 +1,4 @@ -import { Given, When } from '@cucumber/cucumber'; +import { Given, When } from 'quickpickle'; import { CustomWorld } from '../world/index.js'; import { TestServerContext } from '../support/TestServerContext.js'; import { DefaultFDC3Server } from '../../src/BasicFDC3Server.js'; @@ -6,6 +6,8 @@ import { BasicDirectory } from '../../src/directory/BasicDirectory.js'; import { ChannelType } from '../../src/handlers/BroadcastHandler.js'; import { Context } from '@finos/fdc3-context'; import { AppIdentifier } from '@finos/fdc3-standard'; +import { setupGenericSteps } from '@finos/testing'; +import path from 'path'; export const APP_FIELD = 'apps'; @@ -110,21 +112,25 @@ export function createMeta(cw: CustomWorld, appStr: string) { }; } -Given('A newly instantiated FDC3 Server', function (this: CustomWorld) { - const apps = this.props[APP_FIELD] ?? []; +// Register shared generic steps from @finos/testing +const schemaBasePath = path.join(import.meta.dirname, '../../../../../packages/'); +setupGenericSteps(schemaBasePath); + +Given('A newly instantiated FDC3 Server', (world: CustomWorld) => { + const apps = world.props[APP_FIELD] ?? []; const d = new BasicDirectory(apps); - this.sc = new TestServerContext(this); - this.server = new DefaultFDC3Server(this.sc, d, defaultChannels(), false, 2000, 2000); + world.sc = new TestServerContext(world); + world.server = new DefaultFDC3Server(world.sc, d, defaultChannels(), false, 2000, 2000); }); -Given('A newly instantiated FDC3 Server with heartbeat checking', function (this: CustomWorld) { - const apps = this.props[APP_FIELD] ?? []; +Given('A newly instantiated FDC3 Server with heartbeat checking', (world: CustomWorld) => { + const apps = world.props[APP_FIELD] ?? []; const d = new BasicDirectory(apps); - this.sc = new TestServerContext(this); - this.server = new DefaultFDC3Server(this.sc, d, defaultChannels(), true, 2000, 2000); + world.sc = new TestServerContext(world); + world.server = new DefaultFDC3Server(world.sc, d, defaultChannels(), true, 2000, 2000); }); -When('I shutdown the server', function (this: CustomWorld) { - this.server.shutdown(); +When('I shutdown the server', (world: CustomWorld) => { + world.server.shutdown(); }); diff --git a/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/heartbeat.steps.ts b/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/heartbeat.steps.ts index 375c1759c..13a0cc8f0 100644 --- a/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/heartbeat.steps.ts +++ b/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/heartbeat.steps.ts @@ -1,4 +1,4 @@ -import { Given, Then } from '@cucumber/cucumber'; +import { Given, Then } from 'quickpickle'; import { CustomWorld } from '../world/index.js'; import { HeartbeatAcknowledgementRequest, @@ -9,9 +9,9 @@ import { HeartbeatHandler } from '../../src/handlers/HeartbeatHandler.js'; Given( '{string} sends a heartbeat response to eventUuid {string}', - function (this: CustomWorld, appStr: string, eventUuid: string) { - const meta = createMeta(this, appStr); - const uuid = this.sc.getInstanceUUID(meta.source)!; + (world: CustomWorld, appStr: string, eventUuid: string) => { + const meta = createMeta(world, appStr); + const uuid = world.sc.getInstanceUUID(meta.source)!; const message = { meta, @@ -21,29 +21,29 @@ Given( type: 'heartbeatAcknowledgementRequest', } as HeartbeatAcknowledgementRequest; - this.server.receive(message, uuid); + world.server.receive(message, uuid); } ); -Given('{string} sends a goodbye message', function (this: CustomWorld, appStr: string) { - const meta = createMeta(this, appStr); - const uuid = this.sc.getInstanceUUID(meta.source)!; +Given('{string} sends a goodbye message', (world: CustomWorld, appStr: string) => { + const meta = createMeta(world, appStr); + const uuid = world.sc.getInstanceUUID(meta.source)!; const message: WebConnectionProtocol6Goodbye = { meta, type: 'WCP6Goodbye', }; - this.server.receive(message, uuid); + world.server.receive(message, uuid); }); -Then('I test the liveness of {string}', async function (this: CustomWorld, appStr: string) { - const out = await this.sc.isAppConnected(createMeta(this, appStr).source.instanceId ?? 'UNKNOWN'); - this.props['result'] = out; +Then('I test the liveness of {string}', async (world: CustomWorld, appStr: string) => { + const out = await world.sc.isAppConnected(createMeta(world, appStr).source.instanceId ?? 'UNKNOWN'); + world.props['result'] = out; }); -Then('I get the heartbeat times', async function (this: CustomWorld) { - const hbh = this.server.handlers[3]; +Then('I get the heartbeat times', async (world: CustomWorld) => { + const hbh = world.server.handlers[3]; const out = (hbh as HeartbeatHandler).heartbeatTimes(); - this.props['result'] = out; + world.props['result'] = out; }); diff --git a/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/intents.steps.ts b/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/intents.steps.ts index 81e2739f4..fa8af5bf2 100644 --- a/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/intents.steps.ts +++ b/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/intents.steps.ts @@ -1,4 +1,5 @@ -import { DataTable, Given, When } from '@cucumber/cucumber'; +import { Given, When } from 'quickpickle'; +import { DataTable } from '@cucumber/cucumber'; import { CustomWorld } from '../world/index.js'; import { DirectoryApp } from '../../src/directory/DirectoryInterface.js'; import { APP_FIELD, contextMap, createMeta } from './generic.steps.js'; @@ -44,8 +45,8 @@ function convertDataTableToListensFor(cw: CustomWorld, dt: DataTable): ListensFo return out; } -Given('{string} is an app with the following intents', function (this: CustomWorld, appId: string, dt: DataTable) { - const currentApps = this.props[APP_FIELD] ?? []; +Given('{string} is an app with the following intents', (world: CustomWorld, appId: string, dt: DataTable) => { + const currentApps = world.props[APP_FIELD] ?? []; const newApp: DirectoryApp = { appId, @@ -55,40 +56,40 @@ Given('{string} is an app with the following intents', function (this: CustomWor details: {}, interop: { intents: { - listensFor: convertDataTableToListensFor(this, dt), + listensFor: convertDataTableToListensFor(world, dt), }, }, }; currentApps.push(newApp); - this.props[APP_FIELD] = currentApps; + world.props[APP_FIELD] = currentApps; }); When( '{string} finds intents with intent {string} and contextType {string} and result type {string}', - async function (this: CustomWorld, appStr: string, intentName: string, contextType: string, resultType: string) { - const meta = createMeta(this, appStr); - const uuid = this.sc.getInstanceUUID(meta.source)!; + async (world: CustomWorld, appStr: string, intentName: string, contextType: string, resultType: string) => { + const meta = createMeta(world, appStr); + const uuid = world.sc.getInstanceUUID(meta.source)!; const message = { meta, payload: { - intent: handleResolve(intentName, this)!, - resultType: handleResolve(resultType, this), + intent: handleResolve(intentName, world)!, + resultType: handleResolve(resultType, world), context: contextMap[contextType], }, type: 'findIntentRequest', } as FindIntentRequest; - await this.server.receive(message, uuid); + await world.server.receive(message, uuid); } ); When( '{string} finds intents with contextType {string}', - async function (this: CustomWorld, appStr: string, contextType: string) { - const meta = createMeta(this, appStr); - const uuid = this.sc.getInstanceUUID(meta.source)!; + async (world: CustomWorld, appStr: string, contextType: string) => { + const meta = createMeta(world, appStr); + const uuid = world.sc.getInstanceUUID(meta.source)!; const message = { meta, payload: { @@ -97,57 +98,57 @@ When( type: 'findIntentsByContextRequest', } as FindIntentsByContextRequest; - await this.server.receive(message, uuid); + await world.server.receive(message, uuid); } ); Given( '{string} registers an intent listener for {string}', - async function (this: CustomWorld, appStr: string, intent: string) { - const meta = createMeta(this, appStr); - const uuid = this.sc.getInstanceUUID(meta.source)!; + async (world: CustomWorld, appStr: string, intent: string) => { + const meta = createMeta(world, appStr); + const uuid = world.sc.getInstanceUUID(meta.source)!; const message = { type: 'addIntentListenerRequest', meta, payload: { - intent: handleResolve(intent, this), + intent: handleResolve(intent, world), }, } as AddIntentListenerRequest; - await this.server.receive(message, uuid); + await world.server.receive(message, uuid); } ); Given( '{string} registers an intent listener for {string} with contextType {string}', - async function (this: CustomWorld, appStr: string, intent: string, contextType: string) { - const meta = createMeta(this, appStr); - const uuid = this.sc.getInstanceUUID(meta.source)!; + async (world: CustomWorld, appStr: string, intent: string, contextType: string) => { + const meta = createMeta(world, appStr); + const uuid = world.sc.getInstanceUUID(meta.source)!; const message = { type: 'addIntentListenerRequest', meta, payload: { - intent: handleResolve(intent, this), - contextType: handleResolve(contextType, this), + intent: handleResolve(intent, world), + contextType: handleResolve(contextType, world), }, } as AddIntentListenerRequest; - await this.server.receive(message, uuid); + await world.server.receive(message, uuid); } ); Given( '{string} unsubscribes an intent listener with id {string}', - async function (this: CustomWorld, appStr: string, id: string) { - const meta = createMeta(this, appStr); - const uuid = this.sc.getInstanceUUID(meta.source)!; + async (world: CustomWorld, appStr: string, id: string) => { + const meta = createMeta(world, appStr); + const uuid = world.sc.getInstanceUUID(meta.source)!; const message = { type: 'intentListenerUnsubscribeRequest', meta, payload: { - listenerUUID: handleResolve(id, this), + listenerUUID: handleResolve(id, world), }, } as IntentListenerUnsubscribeRequest; - await this.server.receive(message, uuid); + await world.server.receive(message, uuid); } ); @@ -232,85 +233,85 @@ function raiseWithContextAnInvalidTarget( When( '{string} raises an intent with contextType {string}', - async function (this: CustomWorld, appStr: string, contextType: string) { - const meta = createMeta(this, appStr); - const uuid = this.sc.getInstanceUUID(meta.source)!; - const message = raiseWithContext(this, contextType, null, meta); - await this.server.receive(message, uuid); + async (world: CustomWorld, appStr: string, contextType: string) => { + const meta = createMeta(world, appStr); + const uuid = world.sc.getInstanceUUID(meta.source)!; + const message = raiseWithContext(world, contextType, null, meta); + await world.server.receive(message, uuid); } ); When( '{string} raises an intent with contextType {string} on app {string}', - async function (this: CustomWorld, appStr: string, contextType: string, dest: string) { - const meta = createMeta(this, appStr); - const uuid = this.sc.getInstanceUUID(meta.source)!; - const message = raiseWithContext(this, contextType, dest, meta); - await this.server.receive(message, uuid); + async (world: CustomWorld, appStr: string, contextType: string, dest: string) => { + const meta = createMeta(world, appStr); + const uuid = world.sc.getInstanceUUID(meta.source)!; + const message = raiseWithContext(world, contextType, dest, meta); + await world.server.receive(message, uuid); } ); When( '{string} raises an intent for {string} with contextType {string}', - async function (this: CustomWorld, appStr: string, intentName: string, contextType: string) { - const meta = createMeta(this, appStr); - const uuid = this.sc.getInstanceUUID(meta.source)!; - const message = raise(this, intentName, contextType, null, meta); - await this.server.receive(message, uuid); + async (world: CustomWorld, appStr: string, intentName: string, contextType: string) => { + const meta = createMeta(world, appStr); + const uuid = world.sc.getInstanceUUID(meta.source)!; + const message = raise(world, intentName, contextType, null, meta); + await world.server.receive(message, uuid); } ); When( '{string} raises an intent for {string} with contextType {string} on app {string}', - async function (this: CustomWorld, appStr: string, intentName: string, contextType: string, dest: string) { - const meta = createMeta(this, appStr); - const uuid = this.sc.getInstanceUUID(meta.source)!; - const message = raise(this, intentName, contextType, dest, meta); - await this.server.receive(message, uuid); + async (world: CustomWorld, appStr: string, intentName: string, contextType: string, dest: string) => { + const meta = createMeta(world, appStr); + const uuid = world.sc.getInstanceUUID(meta.source)!; + const message = raise(world, intentName, contextType, dest, meta); + await world.server.receive(message, uuid); } ); When( '{string} raises an intent for {string} with contextType {string} on an invalid app instance', - async function (this: CustomWorld, appStr: string, intentName: string, contextType: string) { - const meta = createMeta(this, appStr); - const uuid = this.sc.getInstanceUUID(meta.source)!; - const message = raiseWithInvalidTarget(this, intentName, contextType, meta); - await this.server.receive(message, uuid); + async (world: CustomWorld, appStr: string, intentName: string, contextType: string) => { + const meta = createMeta(world, appStr); + const uuid = world.sc.getInstanceUUID(meta.source)!; + const message = raiseWithInvalidTarget(world, intentName, contextType, meta); + await world.server.receive(message, uuid); } ); When( '{string} raises an intent with contextType {string} on an invalid app instance', - async function (this: CustomWorld, appStr: string, contextType: string) { - const meta = createMeta(this, appStr); - const uuid = this.sc.getInstanceUUID(meta.source)!; + async (world: CustomWorld, appStr: string, contextType: string) => { + const meta = createMeta(world, appStr); + const uuid = world.sc.getInstanceUUID(meta.source)!; const message = raiseWithContextAnInvalidTarget(contextType, meta); - await this.server.receive(message, uuid); + await world.server.receive(message, uuid); } ); When( '{string} raises an intent for {string} with contextType {string} on app {string} with requestUuid {string}', - async function ( - this: CustomWorld, + async ( + world: CustomWorld, appStr: string, intentName: string, contextType: string, dest: string, requestUuid: string - ) { + ) => { const meta = { - ...createMeta(this, appStr), + ...createMeta(world, appStr), requestUuid, }; - const uuid = this.sc.getInstanceUUID(meta.source)!; - const message = raise(this, intentName, contextType, dest, meta); - await this.server.receive(message, uuid); + const uuid = world.sc.getInstanceUUID(meta.source)!; + const message = raise(world, intentName, contextType, dest, meta); + await world.server.receive(message, uuid); } ); -When('we wait for the intent timeout', function (this: CustomWorld) { +When('we wait for the intent timeout', () => { return new Promise(resolve => { setTimeout(() => resolve(), 2100); }); @@ -318,9 +319,9 @@ When('we wait for the intent timeout', function (this: CustomWorld) { When( '{string} sends a intentResultRequest with eventUuid {string} and contextType {string} and raiseIntentUuid {string}', - async function (this: CustomWorld, appStr: string, eventUuid: string, contextType: string, raiseIntentUuid: string) { - const meta = createMeta(this, appStr); - const uuid1 = this.sc.getInstanceUUID(meta.source)!; + async (world: CustomWorld, appStr: string, eventUuid: string, contextType: string, raiseIntentUuid: string) => { + const meta = createMeta(world, appStr); + const uuid1 = world.sc.getInstanceUUID(meta.source)!; const message: IntentResultRequest = { type: 'intentResultRequest', meta: { @@ -334,15 +335,15 @@ When( raiseIntentRequestUuid: raiseIntentUuid, }, }; - await this.server.receive(message, uuid1); + await world.server.receive(message, uuid1); } ); When( '{string} sends a intentResultRequest with eventUuid {string} and void contents and raiseIntentUuid {string}', - async function (this: CustomWorld, appStr: string, eventUuid: string, raiseIntentUuid: string) { - const meta = createMeta(this, appStr); - const uuid = this.sc.getInstanceUUID(meta.source)!; + async (world: CustomWorld, appStr: string, eventUuid: string, raiseIntentUuid: string) => { + const meta = createMeta(world, appStr); + const uuid = world.sc.getInstanceUUID(meta.source)!; const message: IntentResultRequest = { type: 'intentResultRequest', meta: { @@ -354,15 +355,15 @@ When( raiseIntentRequestUuid: raiseIntentUuid, }, }; - await this.server.receive(message, uuid); + await world.server.receive(message, uuid); } ); When( '{string} sends a intentResultRequest with eventUuid {string} and private channel {string} and raiseIntentUuid {string}', - async function (this: CustomWorld, appStr: string, eventUuid: string, channelId: string, raiseIntentUuid: string) { - const meta = createMeta(this, appStr); - const uuid = this.sc.getInstanceUUID(meta.source)!; + async (world: CustomWorld, appStr: string, eventUuid: string, channelId: string, raiseIntentUuid: string) => { + const meta = createMeta(world, appStr); + const uuid = world.sc.getInstanceUUID(meta.source)!; const message: IntentResultRequest = { type: 'intentResultRequest', @@ -380,6 +381,6 @@ When( raiseIntentRequestUuid: raiseIntentUuid, }, }; - await this.server.receive(message, uuid); + await world.server.receive(message, uuid); } ); diff --git a/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/messaging.steps.ts b/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/messaging.steps.ts index 2b8bf3332..cdcb5091a 100644 --- a/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/messaging.steps.ts +++ b/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/messaging.steps.ts @@ -1,20 +1,18 @@ -import { DataTable, Then } from '@cucumber/cucumber'; +import { Then } from 'quickpickle'; +import { DataTable } from '@cucumber/cucumber'; import { CustomWorld } from '../world/index.js'; -import expect from 'expect'; -import { setupGenericSteps, matchData } from '@finos/testing'; +import { expect } from 'vitest'; +import { matchData } from '@finos/testing'; -Then('messaging will have outgoing posts', function (this: CustomWorld, dt: DataTable) { - // just take the last few posts and match those +Then('messaging will have outgoing posts', (world: CustomWorld, dt: DataTable) => { const matching = dt.rows().length; - let toUse = this.sc?.postedMessages; + let toUse = world.sc?.postedMessages; if (toUse.length > matching) { toUse = toUse.slice(toUse.length - matching, toUse.length); } - matchData(this, toUse, dt); + matchData(world, toUse, dt); }); -Then('messaging will have {int} posts', function (this: CustomWorld, count: number) { - expect(this.sc.postedMessages.length).toEqual(count); +Then('messaging will have {int} posts', (world: CustomWorld, count: number) => { + expect(world.sc.postedMessages.length).toEqual(count); }); - -setupGenericSteps(); diff --git a/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/private-channel.steps.ts b/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/private-channel.steps.ts index b21d096d5..8b2da87b7 100644 --- a/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/private-channel.steps.ts +++ b/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/private-channel.steps.ts @@ -1,4 +1,4 @@ -import { When } from '@cucumber/cucumber'; +import { When } from 'quickpickle'; import { CustomWorld } from '../world/index.js'; import { createMeta } from './generic.steps.js'; import { BrowserTypes } from '@finos/fdc3-schema'; @@ -9,21 +9,21 @@ type PrivateChannelAddEventListenerRequest = BrowserTypes.PrivateChannelAddEvent type PrivateChannelUnsubscribeEventListenerRequest = BrowserTypes.PrivateChannelUnsubscribeEventListenerRequest; type PrivateChannelDisconnectRequest = BrowserTypes.PrivateChannelDisconnectRequest; -When('{string} creates a private channel', function (this: CustomWorld, app: string) { - const meta = createMeta(this, app); - const uuid = this.sc.getInstanceUUID(meta.source)!; +When('{string} creates a private channel', (world: CustomWorld, app: string) => { + const meta = createMeta(world, app); + const uuid = world.sc.getInstanceUUID(meta.source)!; const message = { meta, payload: {}, type: 'createPrivateChannelRequest', } as CreatePrivateChannelRequest; - this.server.receive(message, uuid); + world.server.receive(message, uuid); }); -When('{string} removes event listener {string}', function (this: CustomWorld, app: string, listenerUUID: string) { - const meta = createMeta(this, app); - const uuid = this.sc.getInstanceUUID(meta.source)!; +When('{string} removes event listener {string}', (world: CustomWorld, app: string, listenerUUID: string) => { + const meta = createMeta(world, app); + const uuid = world.sc.getInstanceUUID(meta.source)!; const message = { meta, payload: { @@ -32,41 +32,38 @@ When('{string} removes event listener {string}', function (this: CustomWorld, ap type: 'privateChannelUnsubscribeEventListenerRequest', } as PrivateChannelUnsubscribeEventListenerRequest; - this.server.receive(message, uuid); + world.server.receive(message, uuid); }); When( '{string} adds an {string} event listener on {string}', - function (this: CustomWorld, app: string, listenerType: string, channelId: string) { - const meta = createMeta(this, app); - const uuid = this.sc.getInstanceUUID(meta.source)!; + (world: CustomWorld, app: string, listenerType: string, channelId: string) => { + const meta = createMeta(world, app); + const uuid = world.sc.getInstanceUUID(meta.source)!; const message = { meta, payload: { - privateChannelId: handleResolve(channelId, this), + privateChannelId: handleResolve(channelId, world), listenerType, }, type: 'privateChannelAddEventListenerRequest', } as PrivateChannelAddEventListenerRequest; - this.server.receive(message, uuid); + world.server.receive(message, uuid); } ); -When( - '{string} disconnects from private channel {string}', - function (this: CustomWorld, app: string, channelId: string) { - const meta = createMeta(this, app); - const uuid = this.sc.getInstanceUUID(meta.source)!; +When('{string} disconnects from private channel {string}', (world: CustomWorld, app: string, channelId: string) => { + const meta = createMeta(world, app); + const uuid = world.sc.getInstanceUUID(meta.source)!; - const message = { - meta, - payload: { - channelId: handleResolve(channelId, this), - }, - type: 'privateChannelDisconnectRequest', - } as PrivateChannelDisconnectRequest; + const message = { + meta, + payload: { + channelId: handleResolve(channelId, world), + }, + type: 'privateChannelDisconnectRequest', + } as PrivateChannelDisconnectRequest; - this.server.receive(message, uuid); - } -); + world.server.receive(message, uuid); +}); diff --git a/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/start-app.steps.ts b/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/start-app.steps.ts index 9b081cd7f..97445a29d 100644 --- a/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/start-app.steps.ts +++ b/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/start-app.steps.ts @@ -1,4 +1,5 @@ -import { DataTable, Then, When } from '@cucumber/cucumber'; +import { Then, When } from 'quickpickle'; +import { DataTable } from '@cucumber/cucumber'; import { CustomWorld } from '../world/index.js'; import { contextMap, createMeta } from './generic.steps.js'; import { matchData } from '@finos/testing'; @@ -11,27 +12,27 @@ type GetAppMetadataRequest = BrowserTypes.GetAppMetadataRequest; type FindInstancesRequest = BrowserTypes.FindInstancesRequest; type WebConnectionProtocol4ValidateAppIdentity = BrowserTypes.WebConnectionProtocol4ValidateAppIdentity; -When('{string} is opened with connection id {string}', function (this: CustomWorld, app: string, uuid: string) { - const meta = createMeta(this, app); - this.sc.setInstanceDetails(uuid, { +When('{string} is opened with connection id {string}', (world: CustomWorld, app: string, uuid: string) => { + const meta = createMeta(world, app); + world.sc.setInstanceDetails(uuid, { appId: meta.source.appId, instanceId: meta.source.instanceId!, state: State.Connected, }); }); -When('{string} is closed', function (this: CustomWorld, app: string) { - const meta = createMeta(this, app); - this.server.cleanup(meta.source.instanceId!); +When('{string} is closed', (world: CustomWorld, app: string) => { + const meta = createMeta(world, app); + world.server.cleanup(meta.source.instanceId!); }); -When('{string} sends validate', function (this: CustomWorld, uuid: string) { - const identity = this.sc.getInstanceDetails(uuid); +When('{string} sends validate', (world: CustomWorld, uuid: string) => { + const identity = world.sc.getInstanceDetails(uuid); if (identity) { const message: WebConnectionProtocol4ValidateAppIdentity = { type: 'WCP4ValidateAppIdentity', meta: { - connectionAttemptUuid: this.sc.createUUID(), + connectionAttemptUuid: world.sc.createUUID(), timestamp: new Date(), }, payload: { @@ -39,18 +40,18 @@ When('{string} sends validate', function (this: CustomWorld, uuid: string) { identityUrl: 'something', }, }; - this.sc.setAppState(identity.instanceId, State.Connected); - this.server.receive(message, uuid); + world.sc.setAppState(identity.instanceId, State.Connected); + world.server.receive(message, uuid); } else { throw new Error(`Did not find app identity ${uuid}`); } }); -When('{string} revalidates', function (this: CustomWorld, uuid: string) { +When('{string} revalidates', (world: CustomWorld, uuid: string) => { const message: WebConnectionProtocol4ValidateAppIdentity = { type: 'WCP4ValidateAppIdentity', meta: { - connectionAttemptUuid: this.sc.createUUID(), + connectionAttemptUuid: world.sc.createUUID(), timestamp: new Date(), }, payload: { @@ -60,17 +61,17 @@ When('{string} revalidates', function (this: CustomWorld, uuid: string) { }, }; - this.server.receive(message, uuid); + world.server.receive(message, uuid); }); -Then('running apps will be', async function (this: CustomWorld, dataTable: DataTable) { - const apps = await this.sc.getConnectedApps(); - matchData(this, apps, dataTable); +Then('running apps will be', async (world: CustomWorld, dataTable: DataTable) => { + const apps = await world.sc.getConnectedApps(); + matchData(world, apps, dataTable); }); -When('{string} opens app {string}', function (this: CustomWorld, appStr: string, open: string) { - const from = createMeta(this, appStr); - const uuid = this.sc.getInstanceUUID(from.source)!; +When('{string} opens app {string}', (world: CustomWorld, appStr: string, open: string) => { + const from = createMeta(world, appStr); + const uuid = world.sc.getInstanceUUID(from.source)!; const message: OpenRequest = { type: 'openRequest', meta: from, @@ -81,14 +82,14 @@ When('{string} opens app {string}', function (this: CustomWorld, appStr: string, }, }, }; - this.server.receive(message, uuid); + world.server.receive(message, uuid); }); When( '{string} opens app {string} with context data {string}', - function (this: CustomWorld, appStr: string, open: string, context: string) { - const from = createMeta(this, appStr); - const uuid = this.sc.getInstanceUUID(from.source)!; + (world: CustomWorld, appStr: string, open: string, context: string) => { + const from = createMeta(world, appStr); + const uuid = world.sc.getInstanceUUID(from.source)!; const message: OpenRequest = { type: 'openRequest', meta: from, @@ -100,13 +101,13 @@ When( context: contextMap[context], }, }; - this.server.receive(message, uuid); + world.server.receive(message, uuid); } ); -When('{string} requests metadata for {string}', function (this: CustomWorld, appStr: string, open: string) { - const from = createMeta(this, appStr); - const uuid = this.sc.getInstanceUUID(from.source)!; +When('{string} requests metadata for {string}', (world: CustomWorld, appStr: string, open: string) => { + const from = createMeta(world, appStr); + const uuid = world.sc.getInstanceUUID(from.source)!; const message: GetAppMetadataRequest = { type: 'getAppMetadataRequest', meta: from, @@ -117,23 +118,23 @@ When('{string} requests metadata for {string}', function (this: CustomWorld, app }, }, }; - this.server.receive(message, uuid); + world.server.receive(message, uuid); }); -When('{string} requests info on the DesktopAgent', function (this: CustomWorld, appStr: string) { - const from = createMeta(this, appStr); - const uuid = this.sc.getInstanceUUID(from.source)!; +When('{string} requests info on the DesktopAgent', (world: CustomWorld, appStr: string) => { + const from = createMeta(world, appStr); + const uuid = world.sc.getInstanceUUID(from.source)!; const message: GetInfoRequest = { type: 'getInfoRequest', meta: from, payload: {}, }; - this.server.receive(message, uuid); + world.server.receive(message, uuid); }); -When('{string} findsInstances of {string}', function (this: CustomWorld, appStr: string, open: string) { - const from = createMeta(this, appStr); - const uuid = this.sc.getInstanceUUID(from.source)!; +When('{string} findsInstances of {string}', (world: CustomWorld, appStr: string, open: string) => { + const from = createMeta(world, appStr); + const uuid = world.sc.getInstanceUUID(from.source)!; const message: FindInstancesRequest = { type: 'findInstancesRequest', meta: from, @@ -143,10 +144,10 @@ When('{string} findsInstances of {string}', function (this: CustomWorld, appStr: }, }, }; - this.server.receive(message, uuid); + world.server.receive(message, uuid); }); -When('we wait for the listener timeout', function (this: CustomWorld) { +When('we wait for the listener timeout', () => { return new Promise(resolve => { setTimeout(() => resolve(), 3100); }); diff --git a/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/user-channel.steps.ts b/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/user-channel.steps.ts index fa7a34b45..aa6b29f29 100644 --- a/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/user-channel.steps.ts +++ b/toolbox/fdc3-for-web/fdc3-web-impl/test/step-definitions/user-channel.steps.ts @@ -1,4 +1,4 @@ -import { When } from '@cucumber/cucumber'; +import { When } from 'quickpickle'; import { CustomWorld } from '../world/index.js'; import { createMeta } from './generic.steps.js'; import { BrowserTypes } from '@finos/fdc3-schema'; @@ -10,70 +10,70 @@ type JoinUserChannelRequest = BrowserTypes.JoinUserChannelRequest; type LeaveCurrentChannelRequest = BrowserTypes.LeaveCurrentChannelRequest; type GetCurrentContextRequest = BrowserTypes.GetCurrentContextRequest; -When('{string} gets the list of user channels', function (this: CustomWorld, app: string) { - const meta = createMeta(this, app); - const uuid = this.sc.getInstanceUUID(meta.source)!; +When('{string} gets the list of user channels', (world: CustomWorld, app: string) => { + const meta = createMeta(world, app); + const uuid = world.sc.getInstanceUUID(meta.source)!; const message = { meta, payload: {}, type: 'getUserChannelsRequest', } as GetUserChannelsRequest; - this.server.receive(message, uuid); + world.server.receive(message, uuid); }); -When('{string} gets the current user channel', function (this: CustomWorld, app: string) { - const meta = createMeta(this, app); - const uuid = this.sc.getInstanceUUID(meta.source)!; +When('{string} gets the current user channel', (world: CustomWorld, app: string) => { + const meta = createMeta(world, app); + const uuid = world.sc.getInstanceUUID(meta.source)!; const message = { meta, payload: {}, type: 'getCurrentChannelRequest', } as GetCurrentChannelRequest; - this.server.receive(message, uuid); + world.server.receive(message, uuid); }); -When('{string} leaves the current user channel', function (this: CustomWorld, app: string) { - const meta = createMeta(this, app); - const uuid = this.sc.getInstanceUUID(meta.source)!; +When('{string} leaves the current user channel', (world: CustomWorld, app: string) => { + const meta = createMeta(world, app); + const uuid = world.sc.getInstanceUUID(meta.source)!; const message = { meta, payload: {}, type: 'leaveCurrentChannelRequest', } as LeaveCurrentChannelRequest; - this.server.receive(message, uuid); + world.server.receive(message, uuid); }); -When('{string} joins user channel {string}', function (this: CustomWorld, app: string, channel: string) { - const meta = createMeta(this, app); - const uuid = this.sc.getInstanceUUID(meta.source)!; +When('{string} joins user channel {string}', (world: CustomWorld, app: string, channel: string) => { + const meta = createMeta(world, app); + const uuid = world.sc.getInstanceUUID(meta.source)!; const message = { meta, payload: { - channelId: handleResolve(channel, this), + channelId: handleResolve(channel, world), }, type: 'joinUserChannelRequest', } as JoinUserChannelRequest; - this.server.receive(message, uuid); + world.server.receive(message, uuid); }); When( '{string} gets the latest context on {string} with type {string}', - function (this: CustomWorld, app: string, channel: string, type: string) { - const meta = createMeta(this, app); - const uuid = this.sc.getInstanceUUID(meta.source)!; + (world: CustomWorld, app: string, channel: string, type: string) => { + const meta = createMeta(world, app); + const uuid = world.sc.getInstanceUUID(meta.source)!; const message = { meta, payload: { - channelId: handleResolve(channel, this), - contextType: handleResolve(type, this), + channelId: handleResolve(channel, world), + contextType: handleResolve(type, world), }, type: 'getCurrentContextRequest', } as GetCurrentContextRequest; - this.server.receive(message, uuid); + world.server.receive(message, uuid); } ); diff --git a/toolbox/fdc3-for-web/fdc3-web-impl/test/steps.ts b/toolbox/fdc3-for-web/fdc3-web-impl/test/steps.ts new file mode 100644 index 000000000..52a0d3607 --- /dev/null +++ b/toolbox/fdc3-for-web/fdc3-web-impl/test/steps.ts @@ -0,0 +1,20 @@ +// Main step definitions entry point for quickpickle +// This file is loaded by vitest as a setupFile + +import { setWorldConstructor } from 'quickpickle'; +import { CustomWorld } from './world/index.js'; + +// Set up the world constructor +setWorldConstructor(CustomWorld); + +// Import all step definitions +import './step-definitions/generic.steps.js'; +import './step-definitions/app-channel.steps.js'; +import './step-definitions/broadcast.steps.js'; +import './step-definitions/event-listeners.steps.js'; +import './step-definitions/heartbeat.steps.js'; +import './step-definitions/intents.steps.js'; +import './step-definitions/messaging.steps.js'; +import './step-definitions/private-channel.steps.js'; +import './step-definitions/start-app.steps.js'; +import './step-definitions/user-channel.steps.js'; diff --git a/toolbox/fdc3-for-web/fdc3-web-impl/test/world/index.ts b/toolbox/fdc3-for-web/fdc3-web-impl/test/world/index.ts index d28fc1c9a..f03712dfd 100644 --- a/toolbox/fdc3-for-web/fdc3-web-impl/test/world/index.ts +++ b/toolbox/fdc3-for-web/fdc3-web-impl/test/world/index.ts @@ -1,12 +1,21 @@ -import { World, setWorldConstructor } from '@cucumber/cucumber'; +import { QuickPickleWorld, QuickPickleWorldInterface } from 'quickpickle'; import { TestServerContext } from '../support/TestServerContext.js'; import { DefaultFDC3Server } from '../../src/BasicFDC3Server.js'; import { BasicDirectory } from '../../src/directory/BasicDirectory.js'; -export class CustomWorld extends World { - sc = new TestServerContext(this); - server = new DefaultFDC3Server(this.sc, new BasicDirectory([]), [], false); - props: Record = {}; +export interface CustomWorldInterface extends QuickPickleWorldInterface { + props: Record; + sc: TestServerContext; + server: DefaultFDC3Server; + log: (message: string) => void; } -setWorldConstructor(CustomWorld); +export class CustomWorld extends QuickPickleWorld implements CustomWorldInterface { + props: Record = {}; + sc: TestServerContext = new TestServerContext(this); + server: DefaultFDC3Server = new DefaultFDC3Server(this.sc, new BasicDirectory([]), [], false); + + log(message: string): void { + console.log(message); + } +} diff --git a/toolbox/fdc3-for-web/fdc3-web-impl/vitest.config.ts b/toolbox/fdc3-for-web/fdc3-web-impl/vitest.config.ts new file mode 100644 index 000000000..b9e661dc2 --- /dev/null +++ b/toolbox/fdc3-for-web/fdc3-web-impl/vitest.config.ts @@ -0,0 +1,23 @@ +import { defineConfig } from 'vitest/config'; +import { quickpickle } from 'quickpickle'; + +export default defineConfig({ + plugins: [ + quickpickle({ + stepTimeout: 15000, + }), + ], + test: { + include: ['test/features/**/*.feature'], + setupFiles: ['test/steps.ts'], + testTimeout: 30000, + coverage: { + enabled: true, + provider: 'v8', + reporter: ['text', 'lcov', 'json'], + reportsDirectory: './coverage', + include: ['src/**/*.ts'], + exclude: ['src/**/*.d.ts', 'src/**/*.test.ts', 'src/**/*.spec.ts'], + }, + }, +}); diff --git a/toolbox/fdc3-workbench/src/components/ChannelField.tsx b/toolbox/fdc3-workbench/src/components/ChannelField.tsx index 6f16021f2..a716ef619 100644 --- a/toolbox/fdc3-workbench/src/components/ChannelField.tsx +++ b/toolbox/fdc3-workbench/src/components/ChannelField.tsx @@ -11,7 +11,7 @@ import appChannelStore from '../store/AppChannelStore.js'; import privateChannelStore from '../store/PrivateChannelStore.js'; import { Button, IconButton, Tooltip, Typography, Grid, Link } from '@material-ui/core'; import { ContextTemplates } from './ContextTemplates.js'; -import { ContextType, Fdc3Listener } from '../utility/Fdc3Api.js'; +import { ContextType } from '../utility/Fdc3Api.js'; import { copyToClipboard } from './common/CopyToClipboard.js'; import { codeExamples } from '../fixtures/codeExamples.js'; import { openApiDocsLink } from '../fixtures/openApiDocs.js'; From 34286eb0ab394b2e0a2a00202ef690c62a14e0ea Mon Sep 17 00:00:00 2001 From: Giles Roadnight <10414642+Roaders@users.noreply.github.com> Date: Fri, 6 Feb 2026 13:25:32 +0000 Subject: [PATCH 06/10] fix test config / coverage generation --- packages/fdc3-agent-proxy/cucumber.yml | 15 --------------- packages/fdc3-agent-proxy/vitest.config.ts | 2 ++ packages/fdc3-context/vitest.config.ts | 2 ++ packages/fdc3-get-agent/cucumber.yml | 15 --------------- packages/fdc3-get-agent/vitest.config.ts | 2 ++ packages/fdc3-standard/vitest.config.ts | 2 ++ toolbox/fdc3-conformance/vitest.config.ts | 2 ++ toolbox/fdc3-for-web/fdc3-web-impl/cucumber.yml | 15 --------------- .../fdc3-for-web/fdc3-web-impl/vitest.config.ts | 2 ++ 9 files changed, 12 insertions(+), 45 deletions(-) delete mode 100644 packages/fdc3-agent-proxy/cucumber.yml delete mode 100644 packages/fdc3-get-agent/cucumber.yml delete mode 100644 toolbox/fdc3-for-web/fdc3-web-impl/cucumber.yml diff --git a/packages/fdc3-agent-proxy/cucumber.yml b/packages/fdc3-agent-proxy/cucumber.yml deleted file mode 100644 index bacf6c69b..000000000 --- a/packages/fdc3-agent-proxy/cucumber.yml +++ /dev/null @@ -1,15 +0,0 @@ -default: - format: - - html:cucumber-report.html - - "@cucumber/pretty-formatter" - - junit:test-results.xml - paths: - - test/features/*.feature - import: - - test/step-definitions/*.steps.ts - - test/support/*.ts - - test/world/index.ts - requireModule: - - ts-node/register - tags: "not @failing" - diff --git a/packages/fdc3-agent-proxy/vitest.config.ts b/packages/fdc3-agent-proxy/vitest.config.ts index b9e661dc2..62bac9745 100644 --- a/packages/fdc3-agent-proxy/vitest.config.ts +++ b/packages/fdc3-agent-proxy/vitest.config.ts @@ -11,6 +11,8 @@ export default defineConfig({ include: ['test/features/**/*.feature'], setupFiles: ['test/steps.ts'], testTimeout: 30000, + reporters: ['default', 'junit'], + outputFile: 'test-results.xml', coverage: { enabled: true, provider: 'v8', diff --git a/packages/fdc3-context/vitest.config.ts b/packages/fdc3-context/vitest.config.ts index 43e56f45f..fb85b1ae3 100644 --- a/packages/fdc3-context/vitest.config.ts +++ b/packages/fdc3-context/vitest.config.ts @@ -3,5 +3,7 @@ import { defineConfig } from 'vitest/config'; export default defineConfig({ test: { include: ['test/**/*.test.ts'], + reporters: ['default', 'junit'], + outputFile: 'test-results.xml', }, }); diff --git a/packages/fdc3-get-agent/cucumber.yml b/packages/fdc3-get-agent/cucumber.yml deleted file mode 100644 index 2572a0c7b..000000000 --- a/packages/fdc3-get-agent/cucumber.yml +++ /dev/null @@ -1,15 +0,0 @@ -default: - format: - - html:cucumber-report.html - - "@cucumber/pretty-formatter" - - junit:test-results.xml - paths: - - test/features/*.feature - require: - - test/step-definitions/*.steps.ts - - test/support/*.ts - - test/world/index.ts - requireModule: - - ts-node/register - tags: "not @failing" - diff --git a/packages/fdc3-get-agent/vitest.config.ts b/packages/fdc3-get-agent/vitest.config.ts index b9e661dc2..62bac9745 100644 --- a/packages/fdc3-get-agent/vitest.config.ts +++ b/packages/fdc3-get-agent/vitest.config.ts @@ -11,6 +11,8 @@ export default defineConfig({ include: ['test/features/**/*.feature'], setupFiles: ['test/steps.ts'], testTimeout: 30000, + reporters: ['default', 'junit'], + outputFile: 'test-results.xml', coverage: { enabled: true, provider: 'v8', diff --git a/packages/fdc3-standard/vitest.config.ts b/packages/fdc3-standard/vitest.config.ts index 6c027917c..278a1d4cf 100644 --- a/packages/fdc3-standard/vitest.config.ts +++ b/packages/fdc3-standard/vitest.config.ts @@ -4,6 +4,8 @@ export default defineConfig({ test: { include: ['test/**/*.test.ts'], environment: 'jsdom', + reporters: ['default', 'junit'], + outputFile: 'test-results.xml', coverage: { enabled: true, provider: 'v8', diff --git a/toolbox/fdc3-conformance/vitest.config.ts b/toolbox/fdc3-conformance/vitest.config.ts index d7bef7cc7..edc24d045 100644 --- a/toolbox/fdc3-conformance/vitest.config.ts +++ b/toolbox/fdc3-conformance/vitest.config.ts @@ -2,6 +2,8 @@ import { defineConfig } from 'vitest/config'; export default defineConfig({ test: { + reporters: ['default', 'junit'], + outputFile: 'test-results.xml', browser: { enabled: true, provider: 'preview', diff --git a/toolbox/fdc3-for-web/fdc3-web-impl/cucumber.yml b/toolbox/fdc3-for-web/fdc3-web-impl/cucumber.yml deleted file mode 100644 index 2572a0c7b..000000000 --- a/toolbox/fdc3-for-web/fdc3-web-impl/cucumber.yml +++ /dev/null @@ -1,15 +0,0 @@ -default: - format: - - html:cucumber-report.html - - "@cucumber/pretty-formatter" - - junit:test-results.xml - paths: - - test/features/*.feature - require: - - test/step-definitions/*.steps.ts - - test/support/*.ts - - test/world/index.ts - requireModule: - - ts-node/register - tags: "not @failing" - diff --git a/toolbox/fdc3-for-web/fdc3-web-impl/vitest.config.ts b/toolbox/fdc3-for-web/fdc3-web-impl/vitest.config.ts index b9e661dc2..62bac9745 100644 --- a/toolbox/fdc3-for-web/fdc3-web-impl/vitest.config.ts +++ b/toolbox/fdc3-for-web/fdc3-web-impl/vitest.config.ts @@ -11,6 +11,8 @@ export default defineConfig({ include: ['test/features/**/*.feature'], setupFiles: ['test/steps.ts'], testTimeout: 30000, + reporters: ['default', 'junit'], + outputFile: 'test-results.xml', coverage: { enabled: true, provider: 'v8', From 2c6aa85ec652998e0a028dc746d443b2a375c920 Mon Sep 17 00:00:00 2001 From: Giles Roadnight <10414642+Roaders@users.noreply.github.com> Date: Fri, 6 Feb 2026 13:46:34 +0000 Subject: [PATCH 07/10] ignore testing steps from static code analysis --- .semgrepignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.semgrepignore b/.semgrepignore index 174b73ba3..49b24af96 100644 --- a/.semgrepignore +++ b/.semgrepignore @@ -9,3 +9,6 @@ schemas/bridgingAsyncAPI/bridgingAsyncAPI.json # demo apps get picked up for not having integrity headers toolbox/fdc3-for-web/demo/src/client/apps/** + +# Test utilities using controlled paths (false positive for path traversal) +packages/testing/src/steps/generic.impl.ts From c20ff6eaaacbd1629e67703d0b6476779d5813dc Mon Sep 17 00:00:00 2001 From: Giles Roadnight <10414642+Roaders@users.noreply.github.com> Date: Tue, 17 Feb 2026 14:56:42 +0000 Subject: [PATCH 08/10] remove cucumber-report references --- packages/fdc3-get-agent/package.json | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/fdc3-get-agent/package.json b/packages/fdc3-get-agent/package.json index 9f4597e11..91c4d9a3f 100644 --- a/packages/fdc3-get-agent/package.json +++ b/packages/fdc3-get-agent/package.json @@ -7,17 +7,21 @@ "type": "git", "url": "git+https://github.com/finos/FDC3.git" }, - "publishConfig": {"tag": "latest"}, + "publishConfig": { + "tag": "latest" + }, "license": "Apache-2.0", "main": "dist/src/index.js", "types": "dist/src/index.d.ts", - "files": ["dist"], + "files": [ + "dist" + ], "scripts": { "build": "tsc", "test": "tsc && vitest run", "test:watch": "vitest", "test:coverage": "vitest run --coverage", - "clean": "rimraf dist cucumber-report.html coverage node_modules test-results.xml", + "clean": "rimraf dist coverage node_modules test-results.xml", "lint": "eslint src/" }, "dependencies": { @@ -51,4 +55,4 @@ "wtfnode": "^0.9.3" }, "type": "module" -} +} \ No newline at end of file From 7c22a06f48eb53b1646397fa6832cd7bfc90c1d1 Mon Sep 17 00:00:00 2001 From: Giles Roadnight <10414642+Roaders@users.noreply.github.com> Date: Tue, 17 Feb 2026 15:09:40 +0000 Subject: [PATCH 09/10] update axios [CVE-2026-25639] --- website/package-lock.json | 178 +++++++++++++------------------------- 1 file changed, 58 insertions(+), 120 deletions(-) diff --git a/website/package-lock.json b/website/package-lock.json index e82d97dfd..66d651097 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -4564,10 +4564,9 @@ } }, "node_modules/@types/estree": { - "version": "1.0.8", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", - "dev": true, - "license": "MIT" + "version": "1.0.7", + "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "dev": true }, "node_modules/@types/estree-jsx": { "version": "1.0.5", @@ -5035,10 +5034,9 @@ } }, "node_modules/acorn": { - "version": "8.15.0", - "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "version": "8.14.1", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", "dev": true, - "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -5046,18 +5044,6 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-import-phases": { - "version": "1.0.4", - "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.13.0" - }, - "peerDependencies": { - "acorn": "^8.14.0" - } - }, "node_modules/acorn-jsx": { "version": "5.3.2", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", @@ -5313,8 +5299,7 @@ }, "node_modules/asynckit": { "version": "0.4.0", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "license": "MIT" + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "node_modules/at-least-node": { "version": "1.0.0", @@ -5362,6 +5347,7 @@ }, "node_modules/axios": { "version": "1.13.5", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.5.tgz", "integrity": "sha512-cz4ur7Vb0xS4/KUN0tPWe44eqxrIu31me+fbang3ijiNscE129POzipJJA6zniq2C/Z6sJCjMimjS8Lc/GAs8Q==", "license": "MIT", "dependencies": { @@ -5452,15 +5438,6 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "node_modules/baseline-browser-mapping": { - "version": "2.9.19", - "integrity": "sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "baseline-browser-mapping": "dist/cli.js" - } - }, "node_modules/batch": { "version": "0.6.1", "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", @@ -5596,8 +5573,8 @@ } }, "node_modules/browserslist": { - "version": "4.28.1", - "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", + "version": "4.24.4", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", "dev": true, "funding": [ { @@ -5613,13 +5590,11 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "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" + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.1" }, "bin": { "browserslist": "cli.js" @@ -5777,8 +5752,8 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001769", - "integrity": "sha512-BCfFL1sHijQlBGWBMuJyhZUhzo7wer5sVj9hqekB/7xn0Ypy+pER/edCYQm4exbXj4WiySGp40P8UuTh6w1srg==", + "version": "1.0.30001712", + "integrity": "sha512-MBqPpGYYdQ7/hfKiet9SCI+nmN5/hp4ZzveOJubl5DTAMa5oggjAuoi0Z4onBpKPFI2ePGnQuQIzF3VxDjDJig==", "dev": true, "funding": [ { @@ -5793,8 +5768,7 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ], - "license": "CC-BY-4.0" + ] }, "node_modules/ccount": { "version": "2.0.1", @@ -6108,7 +6082,6 @@ "node_modules/combined-stream": { "version": "1.0.8", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" }, @@ -7919,7 +7892,6 @@ "node_modules/delayed-stream": { "version": "1.0.0", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "license": "MIT", "engines": { "node": ">=0.4.0" } @@ -8159,10 +8131,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.5.286", - "integrity": "sha512-9tfDXhJ4RKFNerfjdCcZfufu49vg620741MNs26a9+bhLThdB+plgMeou98CAaHu/WATj2iHOOHTp1hWtABj2A==", - "dev": true, - "license": "ISC" + "version": "1.5.132", + "integrity": "sha512-QgX9EBvWGmvSRa74zqfnG7+Eno0Ak0vftBll0Pt2/z5b3bEGYL6OUXLgKPtvx73dn3dvwrlyVkjPKRRlhLYTEg==", + "dev": true }, "node_modules/emoji-regex": { "version": "9.2.2", @@ -8200,13 +8171,12 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.19.0", - "integrity": "sha512-phv3E1Xl4tQOShqSte26C7Fl84EwUdZsyOuSSk9qtAGyyQs2s3jJzComh+Abf4g187lUUAvH+H26omrqia2aGg==", + "version": "5.18.1", + "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", "dev": true, - "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", - "tapable": "^2.3.0" + "tapable": "^2.2.0" }, "engines": { "node": ">=10.13.0" @@ -8246,10 +8216,9 @@ } }, "node_modules/es-module-lexer": { - "version": "2.0.0", - "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==", - "dev": true, - "license": "MIT" + "version": "1.6.0", + "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", + "dev": true }, "node_modules/es-object-atoms": { "version": "1.1.1", @@ -8932,6 +8901,7 @@ }, "node_modules/follow-redirects": { "version": "1.15.11", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", "funding": [ { @@ -9097,6 +9067,7 @@ }, "node_modules/form-data": { "version": "4.0.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", "license": "MIT", "dependencies": { @@ -9177,19 +9148,6 @@ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, - "node_modules/fsevents": { - "version": "2.3.3", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "node_modules/function-bind": { "version": "1.1.2", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", @@ -9294,8 +9252,7 @@ "node_modules/glob-to-regexp": { "version": "0.4.1", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true, - "license": "BSD-2-Clause" + "dev": true }, "node_modules/global-dirs": { "version": "3.0.1", @@ -10781,16 +10738,11 @@ "dev": true }, "node_modules/loader-runner": { - "version": "4.3.1", - "integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==", + "version": "4.3.0", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.11.5" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" } }, "node_modules/loader-utils": { @@ -13397,10 +13349,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.27", - "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", - "dev": true, - "license": "MIT" + "version": "2.0.19", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true }, "node_modules/normalize-package-data": { "version": "3.0.3", @@ -17040,10 +16991,9 @@ } }, "node_modules/schema-utils": { - "version": "4.3.3", - "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", + "version": "4.3.0", + "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==", "dev": true, - "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", @@ -17933,16 +17883,11 @@ } }, "node_modules/tapable": { - "version": "2.3.0", - "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", + "version": "2.2.1", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" } }, "node_modules/terser": { @@ -17963,10 +17908,9 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.16", - "integrity": "sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q==", + "version": "5.3.14", + "integrity": "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", @@ -18366,8 +18310,8 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.2.3", - "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "version": "1.1.3", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", "dev": true, "funding": [ { @@ -18383,7 +18327,6 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" @@ -18693,10 +18636,9 @@ "license": "MIT" }, "node_modules/watchpack": { - "version": "2.5.1", - "integrity": "sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==", + "version": "2.4.2", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", "dev": true, - "license": "MIT", "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -18723,36 +18665,33 @@ } }, "node_modules/webpack": { - "version": "5.105.0", - "integrity": "sha512-gX/dMkRQc7QOMzgTe6KsYFM7DxeIONQSui1s0n/0xht36HvrgbxtM1xBlgx596NbpHuQU8P7QpKwrZYwUX48nw==", + "version": "5.99.0", + "integrity": "sha512-//MpHjkKV7dhKheJ1lJuHkR6tv8ycfYy7YVzVhhIpwKuKCu5/Zty/vGpFi0fV2RRAWTYDuj6oKn4vYyLzRh55g==", "dev": true, - "license": "MIT", "dependencies": { "@types/eslint-scope": "^3.7.7", - "@types/estree": "^1.0.8", - "@types/json-schema": "^7.0.15", + "@types/estree": "^1.0.6", "@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.28.1", + "acorn": "^8.14.0", + "browserslist": "^4.24.0", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.19.0", - "es-module-lexer": "^2.0.0", + "enhanced-resolve": "^5.17.1", + "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.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.16", - "watchpack": "^2.5.1", - "webpack-sources": "^3.3.3" + "schema-utils": "^4.3.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.11", + "watchpack": "^2.4.1", + "webpack-sources": "^3.2.3" }, "bin": { "webpack": "bin/webpack.js" @@ -18940,10 +18879,9 @@ } }, "node_modules/webpack-sources": { - "version": "3.3.3", - "integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==", + "version": "3.2.3", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", "dev": true, - "license": "MIT", "engines": { "node": ">=10.13.0" } From c75b942c74ff5c776c16dba4c5e4efbce2476803 Mon Sep 17 00:00:00 2001 From: Giles Roadnight <10414642+Roaders@users.noreply.github.com> Date: Mon, 2 Mar 2026 20:17:17 +0000 Subject: [PATCH 10/10] updated changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 98b84254e..6d2b8e16d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -43,6 +43,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). * Fix for channel change listeners not sending addEventListenerRequests ([#1606](https://github.com/finos/FDC3/pull/1606)) * Fix to ensure that Adding A Channel Change Event Listener Doesn't Send addEventListenerRequest - Conformance 2.2 ([#1606](https://github.com/finos/FDC3/pull/1606)) * Updated Conformance tests to allow agents that fully qualify app Ids (as recommended in the Standard) to pass the conformance tests ([#1767](https://github.com/finos/FDC3/pull/1767)) +* Fixed import file extensions and module type to be esm module compliant ([#1677](https://github.com/finos/FDC3/pull/1677)) ## [FDC3 Standard 2.2](https://github.com/finos/FDC3/compare/v2.1..v2.2) - 2025-03-12