From 760a028169d3290cf8320115e27b602c610839ff Mon Sep 17 00:00:00 2001 From: Handrey Cunha Date: Mon, 22 Sep 2025 11:02:44 -0400 Subject: [PATCH 1/4] Add interfaces and plain objects based model Signed-off-by: handreyrc --- examples/node/index.ts | 2 +- package-lock.json | 15736 ++++++---------- package.json | 26 +- src/lib/builders/README.md | 1 - src/lib/builders/action-builder.ts | 23 +- src/lib/builders/actiondatafilter-builder.ts | 23 +- src/lib/builders/authdef-builder.ts | 23 +- src/lib/builders/basicpropsdef-builder.ts | 23 +- src/lib/builders/bearerpropsdef-builder.ts | 23 +- src/lib/builders/branch-builder.ts | 23 +- src/lib/builders/callbackstate-builder.ts | 23 +- src/lib/builders/continueasdef-builder.ts | 23 +- src/lib/builders/correlation-def-builder.ts | 23 +- src/lib/builders/crondef-builder.ts | 23 +- .../builders/databasedswitchstate-builder.ts | 25 +- .../builders/defaultconditiondef-builder.ts | 25 +- src/lib/builders/end-builder.ts | 23 +- src/lib/builders/enddatacondition-builder.ts | 23 +- .../builders/enddeventcondition-builder.ts | 25 +- src/lib/builders/error-builder.ts | 23 +- src/lib/builders/errordef-builder.ts | 23 +- .../builders/eventbasedswitchstate-builder.ts | 25 +- src/lib/builders/eventdatafilter-builder.ts | 23 +- src/lib/builders/eventdef-builder.ts | 23 +- src/lib/builders/eventref-builder.ts | 23 +- src/lib/builders/eventstate-builder.ts | 23 +- src/lib/builders/foreachstate-builder.ts | 23 +- src/lib/builders/function-builder.ts | 23 +- src/lib/builders/functionref-builder.ts | 23 +- src/lib/builders/injectstate-builder.ts | 23 +- src/lib/builders/metadata-builder.ts | 23 +- src/lib/builders/oauth2propsdef-builder.ts | 23 +- src/lib/builders/onevents-builder.ts | 23 +- src/lib/builders/operationstate-builder.ts | 23 +- src/lib/builders/parallelstate-builder.ts | 23 +- src/lib/builders/produceeventdef-builder.ts | 23 +- src/lib/builders/retrydef-builder.ts | 23 +- src/lib/builders/schedule-builder.ts | 23 +- src/lib/builders/sleep-builder.ts | 23 +- src/lib/builders/sleepstate-builder.ts | 23 +- src/lib/builders/startdef-builder.ts | 23 +- .../builders/state-exec-timeout-builder.ts | 23 +- src/lib/builders/statedatafilter-builder.ts | 23 +- src/lib/builders/subflowref-builder.ts | 23 +- src/lib/builders/timeouts-builder.ts | 23 +- src/lib/builders/transition-builder.ts | 23 +- .../transitiondatacondition-builder.ts | 25 +- .../transitioneventcondition-builder.ts | 25 +- src/lib/builders/workflow-builder.ts | 23 +- .../builders/workflow-exec-timeout-builder.ts | 25 +- src/lib/definitions/action.ts | 38 +- src/lib/definitions/actiondatafilter.ts | 9 +- src/lib/definitions/authdef.ts | 20 +- src/lib/definitions/basicpropsdef.ts | 10 +- src/lib/definitions/bearerpropsdef.ts | 9 +- src/lib/definitions/branch.ts | 26 +- src/lib/definitions/callbackstate.ts | 51 +- src/lib/definitions/continueasdef.ts | 25 +- src/lib/definitions/correlationDef.ts | 7 +- src/lib/definitions/crondef.ts | 7 +- src/lib/definitions/databasedswitchstate.ts | 40 +- src/lib/definitions/defaultconditiondef.ts | 24 +- src/lib/definitions/end.ts | 24 +- src/lib/definitions/enddatacondition.ts | 25 +- src/lib/definitions/enddeventcondition.ts | 28 +- src/lib/definitions/error.ts | 26 +- src/lib/definitions/errordef.ts | 8 +- src/lib/definitions/eventbasedswitchstate.ts | 42 +- src/lib/definitions/eventdatafilter.ts | 8 +- src/lib/definitions/eventdef.ts | 27 +- src/lib/definitions/eventref.ts | 29 +- src/lib/definitions/eventstate.ts | 48 +- src/lib/definitions/foreachstate.ts | 51 +- src/lib/definitions/function.ts | 25 +- src/lib/definitions/functionref.ts | 23 +- src/lib/definitions/injectstate.ts | 42 +- src/lib/definitions/metadata.ts | 6 +- src/lib/definitions/oauth2propsdef.ts | 19 +- src/lib/definitions/onevents.ts | 25 +- src/lib/definitions/operationstate.ts | 47 +- src/lib/definitions/parallelstate.ts | 48 +- src/lib/definitions/produceeventdef.ts | 14 +- src/lib/definitions/retrydef.ts | 12 +- src/lib/definitions/schedule.ts | 10 +- src/lib/definitions/sleep.ts | 7 +- src/lib/definitions/sleepstate.ts | 43 +- src/lib/definitions/startdef.ts | 9 +- src/lib/definitions/stateExecTimeout.ts | 7 +- src/lib/definitions/statedatafilter.ts | 7 +- src/lib/definitions/subflowref.ts | 22 +- src/lib/definitions/timeouts.ts | 27 +- src/lib/definitions/transition.ts | 21 +- .../definitions/transitiondatacondition.ts | 28 +- .../definitions/transitioneventcondition.ts | 29 +- src/lib/definitions/types.ts | 94 +- src/lib/definitions/utils.ts | 96 +- src/lib/definitions/workflow.ts | 73 +- src/lib/definitions/workflowExecTimeout.ts | 22 +- src/lib/diagram/mermaidDiagram.ts | 2 +- src/lib/schema/README.md | 1 - src/lib/schema/__merged.json | 494 +- src/lib/schema/auth.json | 236 +- src/lib/schema/types/README.md | 1 - src/lib/schema/types/workflow.ts | 386 +- src/lib/schema/validation/README.md | 1 - src/lib/workflow-validator.ts | 6 +- tests/examples/applicantrequest.spec.ts | 66 + tests/examples/booklending.spec.ts | 143 + tests/examples/carauctionbids.spec.ts | 56 + tests/examples/checkcarvitals.spec.ts | 54 + tests/examples/jobmonitoring.spec.ts | 119 + tests/examples/parallel.spec.ts | 43 +- tests/examples/provisionorder.spec.ts | 78 + tests/examples/sendcloudevent.spec.ts | 61 + tests/examples/solvemathproblems.spec.ts | 53 + tests/lib/definitions/workflow.spec.ts | 2 +- tests/lib/utils.spec.ts | 6 +- tests/lib/workflow-validator.spec.ts | 2 + tools/generate-builders.ts | 23 +- 119 files changed, 9017 insertions(+), 10991 deletions(-) diff --git a/examples/node/index.ts b/examples/node/index.ts index 2425e1a9..d31df716 100644 --- a/examples/node/index.ts +++ b/examples/node/index.ts @@ -15,7 +15,7 @@ */ import { injectstateBuilder, Specification, workflowBuilder } from '../../dist'; -const workflow: Specification.Workflow = workflowBuilder() +const workflow: Specification.IWorkflow = workflowBuilder() .id('helloworld') .version('1.0') .name('Hello World Workflow') diff --git a/package-lock.json b/package-lock.json index 9708ad0e..6b2a3917 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,7 +1,7 @@ { "name": "@severlessworkflow/sdk-typescript", "version": "3.0.3", - "lockfileVersion": 2, + "lockfileVersion": 3, "requires": true, "packages": { "": { @@ -15,34 +15,37 @@ "devDependencies": { "@apidevtools/json-schema-ref-parser": "^9.0.7", "@dtsgenerator/replace-namespace": "^1.4.1", - "@rollup/plugin-commonjs": "^19.0.0", + "@rollup/plugin-commonjs": "^28.0.6", "@rollup/plugin-json": "^4.1.0", "@rollup/plugin-node-resolve": "^13.0.0", - "@types/jest": "^27.0.3", + "@types/jest": "^30.0.0", "@types/js-yaml": "^4.0.1", + "@types/lodash": "^4.14.168", "@types/node-fetch": "^2.5.10", - "@types/rimraf": "^3.0.0", + "@types/rimraf": "^4.0.5", "@types/yargs": "^16.0.1", - "@typescript-eslint/eslint-plugin": "^4.23.0", - "@typescript-eslint/parser": "^4.23.0", + "@typescript-eslint/eslint-plugin": "^8.45.0", + "@typescript-eslint/parser": "^8.45.0", "dtsgenerator": "^3.10.0", - "eslint": "^7.26.0", + "eslint": "^9.36.0", "eslint-config-prettier": "^8.3.0", "eslint-plugin-prettier": "^3.4.0", "husky": "6.0.0", - "jest": "^27.4.3", + "immer": "^10.0.3", + "jest": "^30.2.0", "lint-staged": "11.0.0", + "lodash": "^4.17.21", "node-fetch": "^2.6.1", "prettier": "^2.3.0", - "rimraf": "^3.0.2", + "rimraf": "^6.0.1", "rollup": "^2.47.0", "rollup-plugin-sourcemaps": "^0.6.3", "rollup-plugin-terser": "^7.0.2", - "rollup-plugin-typescript2": "^0.30.0", - "shx": "^0.3.3", - "ts-jest": "^27.1.0", + "rollup-plugin-typescript2": "^0.36.0", + "shx": "^0.4.0", + "ts-jest": "^29.4.4", "ts-node": "^9.1.1", - "typescript": "^4.2.4", + "typescript": "^5.5.3", "yargs": "^17.0.1" }, "engines": { @@ -51,10 +54,11 @@ } }, "node_modules/@apidevtools/json-schema-ref-parser": { - "version": "9.0.9", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz", - "integrity": "sha512-GBD2Le9w2+lVFoc4vswGI/TjkNIZSVp7+9xPf+X3uidBfWnAeUWmquteSyt0+VCrhNMWj/FTABISQrD3Z/YA+w==", + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.1.2.tgz", + "integrity": "sha512-r1w81DpR+KyRWd3f+rk6TNqMgedmAxZP5v5KWlXQWlgMUUtyEJch0DKEci1SorPMiSeM8XPl7MZ3miJ60JIpQg==", "dev": true, + "license": "MIT", "dependencies": { "@jsdevtools/ono": "^7.1.3", "@types/json-schema": "^7.0.6", @@ -63,44 +67,52 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.10.4" + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.16.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz", - "integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.4.tgz", + "integrity": "sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz", - "integrity": "sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.16.0", - "@babel/generator": "^7.16.0", - "@babel/helper-compilation-targets": "^7.16.0", - "@babel/helper-module-transforms": "^7.16.0", - "@babel/helpers": "^7.16.0", - "@babel/parser": "^7.16.0", - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.0", - "@babel/types": "^7.16.0", - "convert-source-map": "^1.7.0", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.4.tgz", + "integrity": "sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.4", + "@babel/parser": "^7.28.4", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.4", + "@babel/types": "^7.28.4", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -110,349 +122,165 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/@babel/code-frame": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", - "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, - "node_modules/@babel/core/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@babel/generator": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.0.tgz", - "integrity": "sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", + "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.16.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" + "@babel/parser": "^7.28.3", + "@babel/types": "^7.28.2", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/generator/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.16.3", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz", - "integrity": "sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.16.0", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.17.5", - "semver": "^6.3.0" + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, - "node_modules/@babel/helper-function-name": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz", - "integrity": "sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog==", - "dev": true, - "dependencies": { - "@babel/helper-get-function-arity": "^7.16.0", - "@babel/template": "^7.16.0", - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz", - "integrity": "sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ==", + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", "dev": true, - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz", - "integrity": "sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz", - "integrity": "sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.0" - }, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz", - "integrity": "sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.16.0" + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz", - "integrity": "sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.16.0", - "@babel/helper-replace-supers": "^7.16.0", - "@babel/helper-simple-access": "^7.16.0", - "@babel/helper-split-export-declaration": "^7.16.0", - "@babel/helper-validator-identifier": "^7.15.7", - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.0", - "@babel/types": "^7.16.0" + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" }, "engines": { "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz", - "integrity": "sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.0" }, - "engines": { - "node": ">=6.9.0" + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz", - "integrity": "sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA==", - "dev": true, - "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.16.0", - "@babel/helper-optimise-call-expression": "^7.16.0", - "@babel/traverse": "^7.16.0", - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz", - "integrity": "sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", "dev": true, - "dependencies": { - "@babel/types": "^7.16.0" - }, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz", - "integrity": "sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw==", + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", "dev": true, - "dependencies": { - "@babel/types": "^7.16.0" - }, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.15.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", - "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", - "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.16.3", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.3.tgz", - "integrity": "sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w==", - "dev": true, - "dependencies": { - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.3", - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", - "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.15.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/@babel/parser": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.4.tgz", + "integrity": "sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==", "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "@babel/types": "^7.28.4" }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.16.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz", - "integrity": "sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==", - "dev": true, "bin": { "parser": "bin/babel-parser.js" }, @@ -465,6 +293,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -477,6 +306,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -489,6 +319,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" }, @@ -496,11 +327,44 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "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-attributes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-import-meta": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -513,6 +377,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -520,11 +385,28 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", + "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -537,6 +419,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -549,6 +432,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -561,6 +445,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -573,6 +458,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -585,6 +471,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -592,11 +479,12 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-top-level-await": { + "node_modules/@babel/plugin-syntax-private-property-in-object": { "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -607,11 +495,12 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.0.tgz", - "integrity": "sha512-Xv6mEXqVdaqCBfJFyeab0fH2DnUoMsDmhamxsSi4j8nLd4Vtw213WMJr55xxqipC/YVWyPY3K0blJncPYji+dQ==", + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -622,120 +511,235 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/template": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.0.tgz", - "integrity": "sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==", + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", + "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.16.0", - "@babel/parser": "^7.16.0", - "@babel/types": "^7.16.0" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/template/node_modules/@babel/code-frame": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", - "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.16.0" + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.16.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.3.tgz", - "integrity": "sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.16.0", - "@babel/generator": "^7.16.0", - "@babel/helper-function-name": "^7.16.0", - "@babel/helper-hoist-variables": "^7.16.0", - "@babel/helper-split-export-declaration": "^7.16.0", - "@babel/parser": "^7.16.3", - "@babel/types": "^7.16.0", - "debug": "^4.1.0", - "globals": "^11.1.0" + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.4.tgz", + "integrity": "sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.3", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.4", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4", + "debug": "^4.3.1" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/traverse/node_modules/@babel/code-frame": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", - "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", + "node_modules/@babel/types": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.4.tgz", + "integrity": "sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.16.0" + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@dtsgenerator/replace-namespace": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@dtsgenerator/replace-namespace/-/replace-namespace-1.7.0.tgz", + "integrity": "sha512-fOS8AP/Vz4u/+etAZDFPBpsHK3JASlVAId/cf+SH2Hcv5V96wsuvihXuKUomV08dPEUQhv98pgx/o1NiFUBzmA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "dtsgenerator": "^3.19.2", + "tslib": "^2.6.3" + } + }, + "node_modules/@emnapi/core": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.5.0.tgz", + "integrity": "sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.1.0", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.5.0.tgz", + "integrity": "sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz", + "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz", + "integrity": "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==", "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, "engines": { - "node": ">=4" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "node_modules/@babel/types": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", - "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.0.tgz", + "integrity": "sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "@babel/helper-validator-identifier": "^7.15.7", - "to-fast-properties": "^2.0.0" + "@eslint/object-schema": "^2.1.6", + "debug": "^4.3.1", + "minimatch": "^3.1.2" }, "engines": { - "node": ">=6.9.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true + "node_modules/@eslint/config-array/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } }, - "node_modules/@dtsgenerator/replace-namespace": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@dtsgenerator/replace-namespace/-/replace-namespace-1.5.1.tgz", - "integrity": "sha512-euoDqrH2obSzuNQBDxMcIvXluQVgbxH2wUkJeDo36hQBTwSiZaT5FBEz3YmC5uZBwJGDGsHPYCpicuuNYnTHRQ==", + "node_modules/@eslint/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "peerDependencies": { - "dtsgenerator": "^3.12.1", - "tslib": "^2.3.1" + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.1.tgz", + "integrity": "sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.2.tgz", + "integrity": "sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", + "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/@eslint/eslintrc/node_modules/ajv": { @@ -743,6 +747,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -754,59 +759,183 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/@eslint/eslintrc/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, + "license": "MIT", "dependencies": { - "sprintf-js": "~1.0.2" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/@eslint/eslintrc/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "license": "MIT", + "engines": { + "node": ">= 4" } }, "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "dev": true, + "license": "MIT" }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "9.36.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.36.0.tgz", + "integrity": "sha512-uhCbYtYynH30iZErszX78U+nR3pJU3RHGQ57NXy5QupD4SBVwDeU8TNBy+MjMngc1UyIW9noKqsRqfjQTBU2dw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", + "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", + "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=10.10.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", - "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", - "dev": true + "node_modules/@eslint/plugin-kit": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.5.tgz", + "integrity": "sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.15.2", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz", + "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.4.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@isaacs/balanced-match": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", + "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@isaacs/brace-expansion": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz", + "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@isaacs/balanced-match": "^4.0.1" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, + "license": "ISC", "dependencies": { "camelcase": "^5.3.1", "find-up": "^4.1.0", @@ -823,15 +952,31 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, + "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" } }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -840,11 +985,54 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -854,64 +1042,67 @@ "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@jest/console": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.4.2.tgz", - "integrity": "sha512-xknHThRsPB/To1FUbi6pCe43y58qFC03zfb6R7fDb/FfC7k2R3i1l+izRBJf8DI46KhYGRaF14Eo9A3qbBoixg==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-30.2.0.tgz", + "integrity": "sha512-+O1ifRjkvYIkBqASKWgLxrpEhQAAE7hY77ALLUufSk5717KfOShg6IbqLmdsLMPdUiFvA2kTs0R7YZy+l0IzZQ==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/types": "^27.4.2", + "@jest/types": "30.2.0", "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.4.2", - "jest-util": "^27.4.2", + "chalk": "^4.1.2", + "jest-message-util": "30.2.0", + "jest-util": "30.2.0", "slash": "^3.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/core": { - "version": "27.4.3", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.4.3.tgz", - "integrity": "sha512-V9ms3zSxUHxh1E/ZLAiXF7SLejsdFnjWTFizWotMOWvjho0lW5kSjZymhQSodNW0T0ZMQRiha7f8+NcFVm3hJQ==", - "dev": true, - "dependencies": { - "@jest/console": "^27.4.2", - "@jest/reporters": "^27.4.2", - "@jest/test-result": "^27.4.2", - "@jest/transform": "^27.4.2", - "@jest/types": "^27.4.2", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-30.2.0.tgz", + "integrity": "sha512-03W6IhuhjqTlpzh/ojut/pDB2LPRygyWX8ExpgHtQA8H/3K7+1vKmcINx5UzeOX1se6YEsBsOHQ1CRzf3fOwTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "30.2.0", + "@jest/pattern": "30.0.1", + "@jest/reporters": "30.2.0", + "@jest/test-result": "30.2.0", + "@jest/transform": "30.2.0", + "@jest/types": "30.2.0", "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^27.4.2", - "jest-config": "^27.4.3", - "jest-haste-map": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-regex-util": "^27.4.0", - "jest-resolve": "^27.4.2", - "jest-resolve-dependencies": "^27.4.2", - "jest-runner": "^27.4.3", - "jest-runtime": "^27.4.2", - "jest-snapshot": "^27.4.2", - "jest-util": "^27.4.2", - "jest-validate": "^27.4.2", - "jest-watcher": "^27.4.2", - "micromatch": "^4.0.4", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "ci-info": "^4.2.0", + "exit-x": "^0.2.2", + "graceful-fs": "^4.2.11", + "jest-changed-files": "30.2.0", + "jest-config": "30.2.0", + "jest-haste-map": "30.2.0", + "jest-message-util": "30.2.0", + "jest-regex-util": "30.0.1", + "jest-resolve": "30.2.0", + "jest-resolve-dependencies": "30.2.0", + "jest-runner": "30.2.0", + "jest-runtime": "30.2.0", + "jest-snapshot": "30.2.0", + "jest-util": "30.2.0", + "jest-validate": "30.2.0", + "jest-watcher": "30.2.0", + "micromatch": "^4.0.8", + "pretty-format": "30.2.0", + "slash": "^3.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" @@ -922,86 +1113,150 @@ } } }, + "node_modules/@jest/diff-sequences": { + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.0.1.tgz", + "integrity": "sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, "node_modules/@jest/environment": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.4.2.tgz", - "integrity": "sha512-uSljKxh/rGlHlmhyeG4ZoVK9hOec+EPBkwTHkHKQ2EqDu5K+MaG9uJZ8o1CbRsSdZqSuhXvJCYhBWsORPPg6qw==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-30.2.0.tgz", + "integrity": "sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/fake-timers": "^27.4.2", - "@jest/types": "^27.4.2", + "@jest/fake-timers": "30.2.0", + "@jest/types": "30.2.0", "@types/node": "*", - "jest-mock": "^27.4.2" + "jest-mock": "30.2.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-30.2.0.tgz", + "integrity": "sha512-V9yxQK5erfzx99Sf+7LbhBwNWEZ9eZay8qQ9+JSC0TrMR1pMDHLMY+BnVPacWU6Jamrh252/IKo4F1Xn/zfiqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "expect": "30.2.0", + "jest-snapshot": "30.2.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.2.0.tgz", + "integrity": "sha512-1JnRfhqpD8HGpOmQp180Fo9Zt69zNtC+9lR+kT7NVL05tNXIi+QC8Csz7lfidMoVLPD3FnOtcmp0CEFnxExGEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/get-type": "30.1.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/fake-timers": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.4.2.tgz", - "integrity": "sha512-f/Xpzn5YQk5adtqBgvw1V6bF8Nx3hY0OIRRpCvWcfPl0EAjdqWPdhH3t/3XpiWZqtjIEHDyMKP9ajpva1l4Zmg==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-30.2.0.tgz", + "integrity": "sha512-HI3tRLjRxAbBy0VO8dqqm7Hb2mIa8d5bg/NJkyQcOk7V118ObQML8RC5luTF/Zsg4474a+gDvhce7eTnP4GhYw==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/types": "^27.4.2", - "@sinonjs/fake-timers": "^8.0.1", + "@jest/types": "30.2.0", + "@sinonjs/fake-timers": "^13.0.0", "@types/node": "*", - "jest-message-util": "^27.4.2", - "jest-mock": "^27.4.2", - "jest-util": "^27.4.2" + "jest-message-util": "30.2.0", + "jest-mock": "30.2.0", + "jest-util": "30.2.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/get-type": { + "version": "30.1.0", + "resolved": "https://registry.npmjs.org/@jest/get-type/-/get-type-30.1.0.tgz", + "integrity": "sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/globals": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.4.2.tgz", - "integrity": "sha512-KkfaHEttlGpXYAQTZHgrESiEPx2q/DKAFLGLFda1uGVrqc17snd3YVPhOxlXOHIzVPs+lQ/SDB2EIvxyGzb3Ew==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-30.2.0.tgz", + "integrity": "sha512-b63wmnKPaK+6ZZfpYhz9K61oybvbI1aMcIs80++JI1O1rR1vaxHUCNqo3ITu6NU0d4V34yZFoHMn/uoKr/Rwfw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "30.2.0", + "@jest/expect": "30.2.0", + "@jest/types": "30.2.0", + "jest-mock": "30.2.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/pattern": { + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/@jest/pattern/-/pattern-30.0.1.tgz", + "integrity": "sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/environment": "^27.4.2", - "@jest/types": "^27.4.2", - "expect": "^27.4.2" + "@types/node": "*", + "jest-regex-util": "30.0.1" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/reporters": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.4.2.tgz", - "integrity": "sha512-sp4aqmdBJtjKetEakzDPcZggPcVIF6w9QLkYBbaWDV6e/SIsHnF1S4KtIH91eEc2fp7ep6V/e1xvdfEoho1d2w==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-30.2.0.tgz", + "integrity": "sha512-DRyW6baWPqKMa9CzeiBjHwjd8XeAyco2Vt8XbcLFjiwCOEKOvy82GJ8QQnJE9ofsxCMPjH4MfH8fCWIHHDKpAQ==", "dev": true, + "license": "MIT", "dependencies": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.4.2", - "@jest/test-result": "^27.4.2", - "@jest/transform": "^27.4.2", - "@jest/types": "^27.4.2", + "@jest/console": "30.2.0", + "@jest/test-result": "30.2.0", + "@jest/transform": "30.2.0", + "@jest/types": "30.2.0", + "@jridgewell/trace-mapping": "^0.3.25", "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", + "chalk": "^4.1.2", + "collect-v8-coverage": "^1.0.2", + "exit-x": "^0.2.2", + "glob": "^10.3.10", + "graceful-fs": "^4.2.11", "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.3", + "istanbul-lib-instrument": "^6.0.0", "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^27.4.2", - "jest-resolve": "^27.4.2", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.2", + "istanbul-lib-source-maps": "^5.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "30.2.0", + "jest-util": "30.2.0", + "jest-worker": "30.2.0", "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" + "string-length": "^4.0.2", + "v8-to-istanbul": "^9.0.1" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" @@ -1012,159 +1267,225 @@ } } }, - "node_modules/@jest/reporters/node_modules/jest-worker": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.2.tgz", - "integrity": "sha512-0QMy/zPovLfUPyHuOuuU4E+kGACXXE84nRnq6lBVI9GJg5DCBiA97SATi+ZP8CpiJwEQy1oCPjRBf8AnLjN+Ag==", + "node_modules/@jest/schemas": { + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.0.5.tgz", + "integrity": "sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==", "dev": true, + "license": "MIT", "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" + "@sinclair/typebox": "^0.34.0" }, "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/@jest/reporters/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/@jest/reporters/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "node_modules/@jest/snapshot-utils": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/snapshot-utils/-/snapshot-utils-30.2.0.tgz", + "integrity": "sha512-0aVxM3RH6DaiLcjj/b0KrIBZhSX1373Xci4l3cW5xiUWPctZ59zQ7jj4rqcJQ/Z8JuN/4wX3FpJSa3RssVvCug==", "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "@jest/types": "30.2.0", + "chalk": "^4.1.2", + "graceful-fs": "^4.2.11", + "natural-compare": "^1.4.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/source-map": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.4.0.tgz", - "integrity": "sha512-Ntjx9jzP26Bvhbm93z/AKcPRj/9wrkI88/gK60glXDx1q+IeI0rf7Lw2c89Ch6ofonB0On/iRDreQuQ6te9pgQ==", + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-30.0.1.tgz", + "integrity": "sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg==", "dev": true, + "license": "MIT", "dependencies": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" + "@jridgewell/trace-mapping": "^0.3.25", + "callsites": "^3.1.0", + "graceful-fs": "^4.2.11" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/source-map/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/test-result": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.4.2.tgz", - "integrity": "sha512-kr+bCrra9jfTgxHXHa2UwoQjxvQk3Am6QbpAiJ5x/50LW8llOYrxILkqY0lZRW/hu8FXesnudbql263+EW9iNA==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-30.2.0.tgz", + "integrity": "sha512-RF+Z+0CCHkARz5HT9mcQCBulb1wgCP3FBvl9VFokMX27acKphwyQsNuWH3c+ojd1LeWBLoTYoxF0zm6S/66mjg==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/console": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" + "@jest/console": "30.2.0", + "@jest/types": "30.2.0", + "@types/istanbul-lib-coverage": "^2.0.6", + "collect-v8-coverage": "^1.0.2" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/test-sequencer": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.4.2.tgz", - "integrity": "sha512-HmHp5mlh9f9GyNej5yCS1JZIFfUGnP9+jEOH5zoq5EmsuZeYD+dGULqyvGDPtuzzbyAFJ6R4+z4SS0VvnFwwGQ==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-30.2.0.tgz", + "integrity": "sha512-wXKgU/lk8fKXMu/l5Hog1R61bL4q5GCdT6OJvdAFz1P+QrpoFuLU68eoKuVc4RbrTtNnTL5FByhWdLgOPSph+Q==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/test-result": "^27.4.2", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.4.2", - "jest-runtime": "^27.4.2" + "@jest/test-result": "30.2.0", + "graceful-fs": "^4.2.11", + "jest-haste-map": "30.2.0", + "slash": "^3.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/transform": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.4.2.tgz", - "integrity": "sha512-RTKcPZllfcmLfnlxBya7aypofhdz05+E6QITe55Ex0rxyerkgjmmpMlvVn11V0cP719Ps6WcDYCnDzxnnJUwKg==", - "dev": true, - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.4.2", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.4.2", - "jest-regex-util": "^27.4.0", - "jest-util": "^27.4.2", - "micromatch": "^4.0.4", - "pirates": "^4.0.1", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-30.2.0.tgz", + "integrity": "sha512-XsauDV82o5qXbhalKxD7p4TZYYdwcaEXC77PPD2HixEFF+6YGppjrAAQurTl2ECWcEomHBMMNS9AH3kcCFx8jA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.27.4", + "@jest/types": "30.2.0", + "@jridgewell/trace-mapping": "^0.3.25", + "babel-plugin-istanbul": "^7.0.1", + "chalk": "^4.1.2", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.11", + "jest-haste-map": "30.2.0", + "jest-regex-util": "30.0.1", + "jest-util": "30.2.0", + "micromatch": "^4.0.8", + "pirates": "^4.0.7", "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" + "write-file-atomic": "^5.0.1" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/@jest/transform/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/@jest/types": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.2.0.tgz", + "integrity": "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==", "dev": true, + "license": "MIT", + "dependencies": { + "@jest/pattern": "30.0.1", + "@jest/schemas": "30.0.5", + "@types/istanbul-lib-coverage": "^2.0.6", + "@types/istanbul-reports": "^3.0.4", + "@types/node": "*", + "@types/yargs": "^17.0.33", + "chalk": "^4.1.2" + }, "engines": { - "node": ">=0.10.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", + "node_modules/@jest/types/node_modules/@types/yargs": { + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", "dev": true, + "license": "MIT", "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, + "@types/yargs-parser": "*" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, "node_modules/@jsdevtools/ono": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz", + "integrity": "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.4.3", + "@emnapi/runtime": "^1.4.3", + "@tybys/wasm-util": "^0.10.0" + } }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -1178,6 +1499,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } @@ -1187,6 +1509,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -1195,25 +1518,55 @@ "node": ">= 8" } }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@pkgr/core": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz", + "integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/pkgr" + } + }, "node_modules/@rollup/plugin-commonjs": { - "version": "19.0.2", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-19.0.2.tgz", - "integrity": "sha512-gBjarfqlC7qs0AutpRW/hrFNm+cd2/QKxhwyFa+srbg1oX7rDsEU3l+W7LAUhsAp9mPJMAkXDhLbQaVwEaE8bA==", + "version": "28.0.6", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-28.0.6.tgz", + "integrity": "sha512-XSQB1K7FUU5QP+3lOQmVCE3I0FcbbNvmNT4VJSj93iUjayaARrTQeoRdiYQoftAJBLrR9t2agwAd3ekaTgHNlw==", "dev": true, + "license": "MIT", "dependencies": { - "@rollup/pluginutils": "^3.1.0", + "@rollup/pluginutils": "^5.0.1", "commondir": "^1.0.1", - "estree-walker": "^2.0.1", - "glob": "^7.1.6", - "is-reference": "^1.2.1", - "magic-string": "^0.25.7", - "resolve": "^1.17.0" + "estree-walker": "^2.0.2", + "fdir": "^6.2.0", + "is-reference": "1.2.1", + "magic-string": "^0.30.3", + "picomatch": "^4.0.2" }, "engines": { - "node": ">= 8.0.0" + "node": ">=16.0.0 || 14 >= 14.17" }, "peerDependencies": { - "rollup": "^2.38.3" + "rollup": "^2.68.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } } }, "node_modules/@rollup/plugin-json": { @@ -1221,6 +1574,7 @@ "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-4.1.0.tgz", "integrity": "sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==", "dev": true, + "license": "MIT", "dependencies": { "@rollup/pluginutils": "^3.0.8" }, @@ -1228,16 +1582,62 @@ "rollup": "^1.20.0 || ^2.0.0" } }, - "node_modules/@rollup/plugin-node-resolve": { - "version": "13.0.4", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.0.4.tgz", - "integrity": "sha512-eYq4TFy40O8hjeDs+sIxEH/jc9lyuI2k9DM557WN6rO5OpnC2qXMBNj4IKH1oHrnAazL49C5p0tgP0/VpqJ+/w==", + "node_modules/@rollup/plugin-json/node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/plugin-json/node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/plugin-json/node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/plugin-json/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", + "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", "dev": true, + "license": "MIT", "dependencies": { "@rollup/pluginutils": "^3.1.0", "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", "deepmerge": "^4.2.2", + "is-builtin-module": "^3.1.0", "is-module": "^1.0.0", "resolve": "^1.19.0" }, @@ -1248,11 +1648,12 @@ "rollup": "^2.42.0" } }, - "node_modules/@rollup/pluginutils": { + "node_modules/@rollup/plugin-node-resolve/node_modules/@rollup/pluginutils": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "0.0.39", "estree-walker": "^1.0.1", @@ -1265,5229 +1666,1891 @@ "rollup": "^1.20.0||^2.0.0" } }, - "node_modules/@rollup/pluginutils/node_modules/estree-walker": { + "node_modules/@rollup/plugin-node-resolve/node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/plugin-node-resolve/node_modules/estree-walker": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/plugin-node-resolve/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz", + "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.34.41", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.41.tgz", + "integrity": "sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g==", + "dev": true, + "license": "MIT" }, "node_modules/@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "type-detect": "4.0.8" } }, "node_modules/@sinonjs/fake-timers": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", - "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-13.0.5.tgz", + "integrity": "sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "@sinonjs/commons": "^1.7.0" + "@sinonjs/commons": "^3.0.1" } }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "node_modules/@tybys/wasm-util": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", + "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", "dev": true, - "engines": { - "node": ">= 6" + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" } }, "node_modules/@types/babel__core": { - "version": "7.1.16", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.16.tgz", - "integrity": "sha512-EAEHtisTMM+KaKwfWdC3oyllIqswlznXCIVCt7/oRNrh+DhgT4UEBNC/jlADNjvw7UnfbcdkGQcPVZ1xYiLcrQ==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", "@types/babel__generator": "*", "@types/babel__template": "*", "@types/babel__traverse": "*" } }, "node_modules/@types/babel__generator": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.3.tgz", - "integrity": "sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA==", + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", - "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.3.0" + "@babel/types": "^7.28.2" } }, "node_modules/@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", - "dev": true - }, - "node_modules/@types/glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA==", - "dev": true, - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "dev": true, - "dependencies": { - "@types/node": "*" - } + "license": "MIT" }, "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", - "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", - "dev": true + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true, + "license": "MIT" }, "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", "dev": true, + "license": "MIT", "dependencies": { "@types/istanbul-lib-coverage": "*" } }, "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/istanbul-lib-report": "*" } }, "node_modules/@types/jest": { - "version": "27.0.3", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.0.3.tgz", - "integrity": "sha512-cmmwv9t7gBYt7hNKH5Spu7Kuu/DotGa+Ff+JGRKZ4db5eh8PnKS4LuebJ3YLUoyOyIHraTGyULn23YtEAm0VSg==", + "version": "30.0.0", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-30.0.0.tgz", + "integrity": "sha512-XTYugzhuwqWjws0CVz8QpM36+T+Dz5mTEBKhNs/esGLnCIlGdRy+Dq78NRjd7ls7r8BC8ZRMOrKlkO1hU0JOwA==", "dev": true, + "license": "MIT", "dependencies": { - "jest-diff": "^27.0.0", - "pretty-format": "^27.0.0" + "expect": "^30.0.0", + "pretty-format": "^30.0.0" } }, "node_modules/@types/js-yaml": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.3.tgz", - "integrity": "sha512-5t9BhoORasuF5uCPr+d5/hdB++zRFUTMIZOzbNkr+jZh3yQht4HYbRDyj9fY8n2TZT30iW9huzav73x4NikqWg==", - "dev": true + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.9.tgz", + "integrity": "sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==", + "dev": true, + "license": "MIT" }, "node_modules/@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", - "dev": true + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" }, - "node_modules/@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", - "dev": true + "node_modules/@types/lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==", + "dev": true, + "license": "MIT" }, "node_modules/@types/node": { - "version": "16.9.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.0.tgz", - "integrity": "sha512-nmP+VR4oT0pJUPFbKE4SXj3Yb4Q/kz3M9dSAO1GGMebRKWHQxLfDNmU/yh3xxCJha3N60nQ/JwXWwOE/ZSEVag==", - "dev": true + "version": "24.6.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.6.2.tgz", + "integrity": "sha512-d2L25Y4j+W3ZlNAeMKcy7yDsK425ibcAOO2t7aPTz6gNMH0z2GThtwENCDc0d/Pw9wgyRqE5Px1wkV7naz8ang==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~7.13.0" + } }, "node_modules/@types/node-fetch": { - "version": "2.5.12", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.12.tgz", - "integrity": "sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==", + "version": "2.6.13", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.13.tgz", + "integrity": "sha512-QGpRVpzSaUs30JBSGPjOg4Uveu384erbHBoT1zeONvyCfwQxIkUshLAOqN/k9EjGviPRmWTTe6aH2qySWKTVSw==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*", - "form-data": "^3.0.0" + "form-data": "^4.0.4" } }, "node_modules/@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true - }, - "node_modules/@types/prettier": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.2.tgz", - "integrity": "sha512-ekoj4qOQYp7CvjX8ZDBgN86w3MqQhLE1hczEJbEIjgFEumDy+na/4AJAbLXfgEWFNB2pKadM5rPFtuSGMWK7xA==", - "dev": true + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "dev": true, + "license": "MIT" }, "node_modules/@types/resolve": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-F3OznnSLAUxFrCEu/L5PY8+ny8DtcFRjx7fZZ9bycvXRi3KPTRS9HOitGZwvPg0juRhXFWIeKX58cnX5YqLohQ==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/rimraf/-/rimraf-4.0.5.tgz", + "integrity": "sha512-DTCZoIQotB2SUJnYgrEx43cQIUYOlNZz0AZPbKU4PSLYTUdML5Gox0++z4F9kQocxStrCmRNhi4x5x/UlwtKUA==", + "deprecated": "This is a stub types definition. rimraf provides its own type definitions, so you do not need this installed.", "dev": true, + "license": "MIT", "dependencies": { - "@types/glob": "*", - "@types/node": "*" + "rimraf": "*" } }, "node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true, + "license": "MIT" }, "node_modules/@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "version": "16.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", "dev": true, + "license": "MIT", "dependencies": { "@types/yargs-parser": "*" } }, "node_modules/@types/yargs-parser": { - "version": "20.2.1", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", - "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==", - "dev": true + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true, + "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.31.0.tgz", - "integrity": "sha512-iPKZTZNavAlOhfF4gymiSuUkgLne/nh5Oz2/mdiUmuZVD42m9PapnCnzjxuDsnpnbH3wT5s2D8bw6S39TC6GNw==", - "dev": true, - "dependencies": { - "@typescript-eslint/experimental-utils": "4.31.0", - "@typescript-eslint/scope-manager": "4.31.0", - "debug": "^4.3.1", - "functional-red-black-tree": "^1.0.1", - "regexpp": "^3.1.0", - "semver": "^7.3.5", - "tsutils": "^3.21.0" + "version": "8.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.45.0.tgz", + "integrity": "sha512-HC3y9CVuevvWCl/oyZuI47dOeDF9ztdMEfMH8/DW/Mhwa9cCLnK1oD7JoTVGW/u7kFzNZUKUoyJEqkaJh5y3Wg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.45.0", + "@typescript-eslint/type-utils": "8.45.0", + "@typescript-eslint/utils": "8.45.0", + "@typescript-eslint/visitor-keys": "8.45.0", + "graphemer": "^1.4.0", + "ignore": "^7.0.0", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.1.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^4.0.0", - "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "@typescript-eslint/parser": "^8.45.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" } }, - "node_modules/@typescript-eslint/experimental-utils": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.31.0.tgz", - "integrity": "sha512-Hld+EQiKLMppgKKkdUsLeVIeEOrwKc2G983NmznY/r5/ZtZCDvIOXnXtwqJIgYz/ymsy7n7RGvMyrzf1WaSQrw==", + "node_modules/@typescript-eslint/parser": { + "version": "8.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.45.0.tgz", + "integrity": "sha512-TGf22kon8KW+DeKaUmOibKWktRY8b2NSAZNdtWh798COm1NWx8+xJ6iFBtk3IvLdv6+LGLJLRlyhrhEDZWargQ==", "dev": true, + "license": "MIT", "dependencies": { - "@types/json-schema": "^7.0.7", - "@typescript-eslint/scope-manager": "4.31.0", - "@typescript-eslint/types": "4.31.0", - "@typescript-eslint/typescript-estree": "4.31.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" + "@typescript-eslint/scope-manager": "8.45.0", + "@typescript-eslint/types": "8.45.0", + "@typescript-eslint/typescript-estree": "8.45.0", + "@typescript-eslint/visitor-keys": "8.45.0", + "debug": "^4.3.4" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "*" + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" } }, - "node_modules/@typescript-eslint/parser": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.31.0.tgz", - "integrity": "sha512-oWbzvPh5amMuTmKaf1wp0ySxPt2ZXHnFQBN2Szu1O//7LmOvgaKTCIDNLK2NvzpmVd5A2M/1j/rujBqO37hj3w==", + "node_modules/@typescript-eslint/project-service": { + "version": "8.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.45.0.tgz", + "integrity": "sha512-3pcVHwMG/iA8afdGLMuTibGR7pDsn9RjDev6CCB+naRsSYs2pns5QbinF4Xqw6YC/Sj3lMrm/Im0eMfaa61WUg==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "4.31.0", - "@typescript-eslint/types": "4.31.0", - "@typescript-eslint/typescript-estree": "4.31.0", - "debug": "^4.3.1" + "@typescript-eslint/tsconfig-utils": "^8.45.0", + "@typescript-eslint/types": "^8.45.0", + "debug": "^4.3.4" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.31.0.tgz", - "integrity": "sha512-LJ+xtl34W76JMRLjbaQorhR0hfRAlp3Lscdiz9NeI/8i+q0hdBZ7BsiYieLoYWqy+AnRigaD3hUwPFugSzdocg==", + "version": "8.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.45.0.tgz", + "integrity": "sha512-clmm8XSNj/1dGvJeO6VGH7EUSeA0FMs+5au/u3lrA3KfG8iJ4u8ym9/j2tTEoacAffdW1TVUzXO30W1JTJS7dA==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "4.31.0", - "@typescript-eslint/visitor-keys": "4.31.0" + "@typescript-eslint/types": "8.45.0", + "@typescript-eslint/visitor-keys": "8.45.0" }, "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/types": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.31.0.tgz", - "integrity": "sha512-9XR5q9mk7DCXgXLS7REIVs+BaAswfdHhx91XqlJklmqWpTALGjygWVIb/UnLh4NWhfwhR5wNe1yTyCInxVhLqQ==", + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.45.0.tgz", + "integrity": "sha512-aFdr+c37sc+jqNMGhH+ajxPXwjv9UtFZk79k8pLoJ6p4y0snmYpPA52GuWHgt2ZF4gRRW6odsEj41uZLojDt5w==", "dev": true, + "license": "MIT", "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" } }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.31.0.tgz", - "integrity": "sha512-QHl2014t3ptg+xpmOSSPn5hm4mY8D4s97ftzyk9BZ8RxYQ3j73XcwuijnJ9cMa6DO4aLXeo8XS3z1omT9LA/Eg==", + "node_modules/@typescript-eslint/type-utils": { + "version": "8.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.45.0.tgz", + "integrity": "sha512-bpjepLlHceKgyMEPglAeULX1vixJDgaKocp0RVJ5u4wLJIMNuKtUXIczpJCPcn2waII0yuvks/5m5/h3ZQKs0A==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "4.31.0", - "@typescript-eslint/visitor-keys": "4.31.0", - "debug": "^4.3.1", - "globby": "^11.0.3", - "is-glob": "^4.0.1", - "semver": "^7.3.5", - "tsutils": "^3.21.0" + "@typescript-eslint/types": "8.45.0", + "@typescript-eslint/typescript-estree": "8.45.0", + "@typescript-eslint/utils": "8.45.0", + "debug": "^4.3.4", + "ts-api-utils": "^2.1.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" } }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.31.0.tgz", - "integrity": "sha512-HUcRp2a9I+P21+O21yu3ezv3GEPGjyGiXoEUQwZXjR8UxRApGeLyWH4ZIIUSalE28aG4YsV6GjtaAVB3QKOu0w==", + "node_modules/@typescript-eslint/types": { + "version": "8.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.45.0.tgz", + "integrity": "sha512-WugXLuOIq67BMgQInIxxnsSyRLFxdkJEJu8r4ngLR56q/4Q5LrbfkFRH27vMTjxEK8Pyz7QfzuZe/G15qQnVRA==", "dev": true, - "dependencies": { - "@typescript-eslint/types": "4.31.0", - "eslint-visitor-keys": "^2.0.0" - }, + "license": "MIT", "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", - "dev": true - }, - "node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "dev": true, - "dependencies": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.45.0.tgz", + "integrity": "sha512-GfE1NfVbLam6XQ0LcERKwdTTPlLvHvXXhOeUGC1OXi4eQBoyy1iVsW+uzJ/J9jtCz6/7GCQ9MtrQ0fml/jWCnA==", "dev": true, + "license": "MIT", "dependencies": { - "debug": "4" + "@typescript-eslint/project-service": "8.45.0", + "@typescript-eslint/tsconfig-utils": "8.45.0", + "@typescript-eslint/types": "8.45.0", + "@typescript-eslint/visitor-keys": "8.45.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.1.0" }, "engines": { - "node": ">= 6.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" } }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "node_modules/@typescript-eslint/utils": { + "version": "8.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.45.0.tgz", + "integrity": "sha512-bxi1ht+tLYg4+XV2knz/F7RVhU0k6VrSMc9sb8DQ6fyCTrGQLHfo7lDtN0QJjZjKkLA2ThrKuCdHEvLReqtIGg==", "dev": true, + "license": "MIT", "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.45.0", + "@typescript-eslint/types": "8.45.0", + "@typescript-eslint/typescript-estree": "8.45.0" }, "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "8.6.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz", - "integrity": "sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true, - "engines": { - "node": ">=6" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" } }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.45.0.tgz", + "integrity": "sha512-qsaFBA3e09MIDAGFUrTk+dzqtfv1XPVz8t8d1f0ybTzrCY7BKiMC5cjrl1O/P7UmHsNyW90EYSkU/ZWpmXelag==", "dev": true, + "license": "MIT", "dependencies": { - "type-fest": "^0.21.3" + "@typescript-eslint/types": "8.45.0", + "eslint-visitor-keys": "^4.2.1" }, "engines": { - "node": ">=8" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=10" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://opencollective.com/eslint" } }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", "dev": true, - "engines": { - "node": ">=8" - } + "license": "ISC" }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@unrs/resolver-binding-android-arm-eabi": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz", + "integrity": "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==", + "cpu": [ + "arm" + ], "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=4" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } + "license": "MIT", + "optional": true, + "os": [ + "android" + ] }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true, - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/babel-jest": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.4.2.tgz", - "integrity": "sha512-MADrjb3KBO2eyZCAc6QaJg6RT5u+6oEdDyHO5HEalnpwQ6LrhTsQF2Kj1Wnz2t6UPXIXPk18dSXXOT0wF5yTxA==", - "dev": true, - "dependencies": { - "@jest/transform": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^27.4.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "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" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", - "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", - "dev": true, - "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.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.4.0.tgz", - "integrity": "sha512-Jcu7qS4OX5kTWBc45Hz7BMmgXuJqRnhatqpUhnzGC3OBYpOmf2tv6jFNwZpwM7wU7MUuv2r9IPS/ZlYOuburVw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@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-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-jest": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.4.0.tgz", - "integrity": "sha512-NK4jGYpnBvNxcGo7/ZpZJr51jCGT+3bwwpVIDY2oNfTxJJldRtB4VAcYdgp1loDE50ODuTu+yBjpMAswv5tlpg==", - "dev": true, - "dependencies": { - "babel-plugin-jest-hoist": "^27.4.0", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true - }, - "node_modules/browserslist": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.18.1.tgz", - "integrity": "sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30001280", - "electron-to-chromium": "^1.3.896", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "dev": true, - "dependencies": { - "fast-json-stable-stringify": "2.x" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/builtin-modules": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", - "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", - "dev": true - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001284", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001284.tgz", - "integrity": "sha512-t28SKa7g6kiIQi6NHeOcKrOrGMzCRrXvlasPwWC26TH2QNdglgzQIRUuJ0cR3NeQPH+5jpuveeeSFDLm2zbkEw==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=4" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "node_modules/cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", - "dev": true - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-truncate": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", - "dev": true, - "dependencies": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true, - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", - "dev": true - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.1.0.tgz", - "integrity": "sha512-mf45ldcuHSYShkplHHGKWb4TrmwQadxOn7v4WuhDJy0ZVoY5JFajaRDKD0PNe5qXzBX0rhovjTnP6Kz9LETcuA==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/convert-source-map/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", - "dev": true, - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "node_modules/cross-fetch": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz", - "integrity": "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==", - "dev": true, - "dependencies": { - "node-fetch": "2.6.1" - } - }, - "node_modules/cross-fetch/node_modules/node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", - "dev": true, - "engines": { - "node": "4.x || >=6.0.0" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true - }, - "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, - "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - }, - "node_modules/data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "dev": true, - "dependencies": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decimal.js": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", - "dev": true - }, - "node_modules/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", - "dev": true - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diff-sequences": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.4.0.tgz", - "integrity": "sha512-YqiQzkrsmHMH5uuh8OdQFU9/ZpADnwzml8z0O5HvRNda+5UZsaX/xN+AAxfR2hWq1Y7HZnAzO9J5lJXOuDz2Ww==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "dev": true, - "dependencies": { - "webidl-conversions": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/domexception/node_modules/webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/dtsgenerator": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/dtsgenerator/-/dtsgenerator-3.13.0.tgz", - "integrity": "sha512-jGCEbUAr7sUubmuYHLx2MAEaWc62rWNMav7/+ZEMMPdhvAld6RTQ5EyU9b6OhP9kJo/ZH0vMyeY9xpIEcL8dFg==", - "dev": true, - "dependencies": { - "commander": "^8.1.0", - "cross-fetch": "^3.1.4", - "debug": "^4.3.2", - "glob": "^7.1.7", - "https-proxy-agent": "^5.0.0", - "js-yaml": "^4.1.0", - "tslib": "^2.3.1", - "typescript": "^4.4.2" - }, - "bin": { - "dtsgen": "bin/dtsgen" - }, - "engines": { - "node": ">= 10.0" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.11.tgz", - "integrity": "sha512-2OhsaYgsWGhWjx2et8kaUcdktPbBGjKM2X0BReUCKcSCPttEY+hz2zie820JLbttU8jwL92+JJysWwkut3wZgA==", - "dev": true - }, - "node_modules/emittery": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "dependencies": { - "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/esbuild": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.2.tgz", - "integrity": "sha512-l076A6o/PIgcyM24s0dWmDI/b8RQf41uWoJu9I0M71CtW/YSw5T5NUeXxs5lo2tFQD+O4CW4nBHJXx3OY5NpXg==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "optionalDependencies": { - "esbuild-android-arm64": "0.14.2", - "esbuild-darwin-64": "0.14.2", - "esbuild-darwin-arm64": "0.14.2", - "esbuild-freebsd-64": "0.14.2", - "esbuild-freebsd-arm64": "0.14.2", - "esbuild-linux-32": "0.14.2", - "esbuild-linux-64": "0.14.2", - "esbuild-linux-arm": "0.14.2", - "esbuild-linux-arm64": "0.14.2", - "esbuild-linux-mips64le": "0.14.2", - "esbuild-linux-ppc64le": "0.14.2", - "esbuild-netbsd-64": "0.14.2", - "esbuild-openbsd-64": "0.14.2", - "esbuild-sunos-64": "0.14.2", - "esbuild-windows-32": "0.14.2", - "esbuild-windows-64": "0.14.2", - "esbuild-windows-arm64": "0.14.2" - } - }, - "node_modules/esbuild-android-arm64": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.2.tgz", - "integrity": "sha512-hEixaKMN3XXCkoe+0WcexO4CcBVU5DCSUT+7P8JZiWZCbAjSkc9b6Yz2X5DSfQmRCtI/cQRU6TfMYrMQ5NBfdw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/esbuild-darwin-64": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.2.tgz", - "integrity": "sha512-Uq8t0cbJQkxkQdbUfOl2wZqZ/AtLZjvJulR1HHnc96UgyzG9YlCLSDMiqjM+NANEy7/zzvwKJsy3iNC9wwqLJA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/esbuild-darwin-arm64": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.2.tgz", - "integrity": "sha512-619MSa17sr7YCIrUj88KzQu2ESA4jKYtIYfLU/smX6qNgxQt3Y/gzM4s6sgJ4fPQzirvmXgcHv1ZNQAs/Xh48A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/esbuild-freebsd-64": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.2.tgz", - "integrity": "sha512-aP6FE/ZsChZpUV6F3HE3x1Pz0paoYXycJ7oLt06g0G9dhJKknPawXCqQg/WMyD+ldCEZfo7F1kavenPdIT/SGQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/esbuild-freebsd-arm64": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.2.tgz", - "integrity": "sha512-LSm98WTb1QIhyS83+Po0KTpZNdd2XpVpI9ua5rLWqKWbKeNRFwOsjeiuwBaRNc+O32s9oC2ZMefETxHBV6VNkQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/esbuild-linux-32": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.2.tgz", - "integrity": "sha512-8VxnNEyeUbiGflTKcuVc5JEPTqXfsx2O6ABwUbfS1Hp26lYPRPC7pKQK5Dxa0MBejGc50jy7YZae3EGQUQ8EkQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/esbuild-linux-64": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.2.tgz", - "integrity": "sha512-4bzMS2dNxOJoFIiHId4w+tqQzdnsch71JJV1qZnbnErSFWcR9lRgpSqWnTTFtv6XM+MvltRzSXC5wQ7AEBY6Hg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/esbuild-linux-arm": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.2.tgz", - "integrity": "sha512-PaylahvMHhH8YMfJPMKEqi64qA0Su+d4FNfHKvlKes/2dUe4QxgbwXT9oLVgy8iJdcFMrO7By4R8fS8S0p8aVQ==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/esbuild-linux-arm64": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.2.tgz", - "integrity": "sha512-RlIVp0RwJrdtasDF1vTFueLYZ8WuFzxoQ1OoRFZOTyJHCGCNgh7xJIC34gd7B7+RT0CzLBB4LcM5n0LS+hIoww==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/esbuild-linux-mips64le": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.2.tgz", - "integrity": "sha512-Fdwrq2roFnO5oetIiUQQueZ3+5soCxBSJswg3MvYaXDomj47BN6oAWMZgLrFh1oVrtWrxSDLCJBenYdbm2s+qQ==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/esbuild-linux-ppc64le": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.2.tgz", - "integrity": "sha512-vxptskw8JfCDD9QqpRO0XnsM1osuWeRjPaXX1TwdveLogYsbdFtcuiuK/4FxGiNMUr1ojtnCS2rMPbY8puc5NA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/esbuild-netbsd-64": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.2.tgz", - "integrity": "sha512-I8+LzYK5iSNpspS9eCV9sW67Rj8FgMHimGri4mKiGAmN0pNfx+hFX146rYtzGtewuxKtTsPywWteHx+hPRLDsw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ] - }, - "node_modules/esbuild-openbsd-64": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.2.tgz", - "integrity": "sha512-120HgMe9elidWUvM2E6mMf0csrGwx8sYDqUIJugyMy1oHm+/nT08bTAVXuwYG/rkMIqsEO9AlMxuYnwR6En/3Q==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ] - }, - "node_modules/esbuild-sunos-64": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.2.tgz", - "integrity": "sha512-Q3xcf9Uyfra9UuCFxoLixVvdigo0daZaKJ97TL2KNA4bxRUPK18wwGUk3AxvgDQZpRmg82w9PnkaNYo7a+24ow==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ] - }, - "node_modules/esbuild-windows-32": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.2.tgz", - "integrity": "sha512-TW7O49tPsrq+N1sW8mb3m24j/iDGa4xzAZH4wHWwoIzgtZAYPKC0hpIhufRRG/LA30bdMChO9pjJZ5mtcybtBQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/esbuild-windows-64": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.2.tgz", - "integrity": "sha512-Rym6ViMNmi1E2QuQMWy0AFAfdY0wGwZD73BnzlsQBX5hZBuy/L+Speh7ucUZ16gwsrMM9v86icZUDrSN/lNBKg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/esbuild-windows-arm64": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.2.tgz", - "integrity": "sha512-ZrLbhr0vX5Em/P1faMnHucjVVWPS+m3tktAtz93WkMZLmbRJevhiW1y4CbulBd2z0MEdXZ6emDa1zFHq5O5bSA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=0.8.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "dev": true, - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/escodegen/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/escodegen/node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/escodegen/node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-config-prettier": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz", - "integrity": "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==", - "dev": true, - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-plugin-prettier": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz", - "integrity": "sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g==", - "dev": true, - "dependencies": { - "prettier-linter-helpers": "^1.0.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "peerDependencies": { - "eslint": ">=5.0.0", - "prettier": ">=1.13.0" - }, - "peerDependenciesMeta": { - "eslint-config-prettier": { - "optional": true - } - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/eslint/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/eslint/node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/eslint/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/eslint/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", - "dev": true, - "dependencies": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "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/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expect": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.4.2.tgz", - "integrity": "sha512-BjAXIDC6ZOW+WBFNg96J22D27Nq5ohn+oGcuP2rtOtcjuxNoV9McpQ60PcQWhdFOSBIQdR72e+4HdnbZTFSTyg==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "ansi-styles": "^5.0.0", - "jest-get-type": "^27.4.0", - "jest-matcher-utils": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-regex-util": "^27.4.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/expect/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-diff": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "node_modules/fastq": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.12.0.tgz", - "integrity": "sha512-VNX0QkHK3RsXVKr9KrlUv/FoTa0NdbYoHHl7uXHv2rzyHSlxjdNAKug2twd9luJxpcyNeAgf5iPPMutJO67Dfg==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "dev": true, - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", - "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", - "dev": true - }, - "node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "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.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", - "dev": true - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/globals": { - "version": "13.11.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", - "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", - "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby/node_modules/ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", - "dev": true - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "dev": true, - "dependencies": { - "whatwg-encoding": "^1.0.5" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/husky": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/husky/-/husky-6.0.0.tgz", - "integrity": "sha512-SQS2gDTB7tBN486QSoKPKQItZw97BMOd+Kdb6ghfpBc0yXyzrddI0oDV5MkDAbuB4X2mO3/nj60TRMcYxwzZeQ==", - "dev": true, - "bin": { - "husky": "lib/bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/typicode" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-local": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.3.tgz", - "integrity": "sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA==", - "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "node_modules/is-core-module": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz", - "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", - "dev": true - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true - }, - "node_modules/is-reference": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", - "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", - "dev": true, - "dependencies": { - "@types/estree": "*" - } - }, - "node_modules/is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-reports": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.1.tgz", - "integrity": "sha512-q1kvhAXWSsXfMjCdNHNPKZZv94OlspKnoGv+R9RGbnqOOQ0VbNfLFgQDVgi7hHenKsndGq3/o0OBdzDXthWcNw==", - "dev": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest": { - "version": "27.4.3", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.4.3.tgz", - "integrity": "sha512-jwsfVABBzuN3Atm+6h6vIEpTs9+VApODLt4dk2qv1WMOpb1weI1IIZfuwpMiWZ62qvWj78MvdvMHIYdUfqrFaA==", - "dev": true, - "dependencies": { - "@jest/core": "^27.4.3", - "import-local": "^3.0.2", - "jest-cli": "^27.4.3" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.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": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.4.2.tgz", - "integrity": "sha512-/9x8MjekuzUQoPjDHbBiXbNEBauhrPU2ct7m8TfCg69ywt1y/N+yYwGh3gCpnqUS3klYWDU/lSNgv+JhoD2k1A==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "execa": "^5.0.0", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-circus": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.4.2.tgz", - "integrity": "sha512-2ePUSru1BGMyzxsMvRfu+tNb+PW60rUyMLJBfw1Nrh5zC8RoTPfF+zbE0JToU31a6ZVe4nnrNKWYRzlghAbL0A==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.4.2", - "@jest/test-result": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.4.2", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.4.2", - "jest-matcher-utils": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-runtime": "^27.4.2", - "jest-snapshot": "^27.4.2", - "jest-util": "^27.4.2", - "pretty-format": "^27.4.2", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-cli": { - "version": "27.4.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.4.3.tgz", - "integrity": "sha512-zZSJBXNC/i8UnJPwcKWsqnhGgIF3uoTYP7th32Zej7KNQJdxzOMj+wCfy2Ox3kU7nXErJ36DtYyXDhfiqaiDRw==", - "dev": true, - "dependencies": { - "@jest/core": "^27.4.3", - "@jest/test-result": "^27.4.2", - "@jest/types": "^27.4.2", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "jest-config": "^27.4.3", - "jest-util": "^27.4.2", - "jest-validate": "^27.4.2", - "prompts": "^2.0.1", - "yargs": "^16.2.0" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-cli/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "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/jest-config": { - "version": "27.4.3", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.4.3.tgz", - "integrity": "sha512-DQ10HTSqYtC2pO7s9j2jw+li4xUnm2wLYWH2o7K1ftB8NyvToHsXoLlXxtsGh3AW9gUQR6KY/4B7G+T/NswJBw==", - "dev": true, - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^27.4.2", - "@jest/types": "^27.4.2", - "babel-jest": "^27.4.2", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "jest-circus": "^27.4.2", - "jest-environment-jsdom": "^27.4.3", - "jest-environment-node": "^27.4.2", - "jest-get-type": "^27.4.0", - "jest-jasmine2": "^27.4.2", - "jest-regex-util": "^27.4.0", - "jest-resolve": "^27.4.2", - "jest-runner": "^27.4.3", - "jest-util": "^27.4.2", - "jest-validate": "^27.4.2", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.2", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-diff": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.4.2.tgz", - "integrity": "sha512-ujc9ToyUZDh9KcqvQDkk/gkbf6zSaeEg9AiBxtttXW59H/AcqEYp1ciXAtJp+jXWva5nAf/ePtSsgWwE5mqp4Q==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^27.4.0", - "jest-get-type": "^27.4.0", - "pretty-format": "^27.4.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-docblock": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.4.0.tgz", - "integrity": "sha512-7TBazUdCKGV7svZ+gh7C8esAnweJoG+SvcF6Cjqj4l17zA2q1cMwx2JObSioubk317H+cjcHgP+7fTs60paulg==", - "dev": true, - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-each": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.4.2.tgz", - "integrity": "sha512-53V2MNyW28CTruB3lXaHNk6PkiIFuzdOC9gR3C6j8YE/ACfrPnz+slB0s17AgU1TtxNzLuHyvNlLJ+8QYw9nBg==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "chalk": "^4.0.0", - "jest-get-type": "^27.4.0", - "jest-util": "^27.4.2", - "pretty-format": "^27.4.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-jsdom": { - "version": "27.4.3", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.4.3.tgz", - "integrity": "sha512-x1AUVz3G14LpEJs7KIFUaTINT2n0unOUmvdAby3s/sldUpJJetOJifHo1O/EUQC5fNBowggwJbVulko18y6OWw==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.4.2", - "@jest/fake-timers": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "jest-mock": "^27.4.2", - "jest-util": "^27.4.2", - "jsdom": "^16.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-node": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.4.2.tgz", - "integrity": "sha512-nzTZ5nJ+FabuZPH2YVci7SZIHpvtNRHPt8+vipLkCnAgXGjVzHm7XJWdnNqXbAkExIgiKeVEkVMNZOZE/LeiIg==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.4.2", - "@jest/fake-timers": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "jest-mock": "^27.4.2", - "jest-util": "^27.4.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz", - "integrity": "sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-haste-map": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.4.2.tgz", - "integrity": "sha512-foiyAEePORUN2eeJnOtcM1y8qW0ShEd9kTjWVL4sVaMcuCJM6gtHegvYPBRT0mpI/bs4ueThM90+Eoj2ncoNsA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.4.0", - "jest-serializer": "^27.4.0", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.2", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-haste-map/node_modules/jest-worker": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.2.tgz", - "integrity": "sha512-0QMy/zPovLfUPyHuOuuU4E+kGACXXE84nRnq6lBVI9GJg5DCBiA97SATi+ZP8CpiJwEQy1oCPjRBf8AnLjN+Ag==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-haste-map/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/jest-jasmine2": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.4.2.tgz", - "integrity": "sha512-VO/fyAJSH9u0THjbteFiL8qc93ufU+yW+bdieDc8tzTCWwlWzO53UHS5nFK1qmE8izb5Smkn+XHlVt6/l06MKQ==", - "dev": true, - "dependencies": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^27.4.2", - "@jest/source-map": "^27.4.0", - "@jest/test-result": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.4.2", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.4.2", - "jest-matcher-utils": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-runtime": "^27.4.2", - "jest-snapshot": "^27.4.2", - "jest-util": "^27.4.2", - "pretty-format": "^27.4.2", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-leak-detector": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.4.2.tgz", - "integrity": "sha512-ml0KvFYZllzPBJWDei3mDzUhyp/M4ubKebX++fPaudpe8OsxUE+m+P6ciVLboQsrzOCWDjE20/eXew9QMx/VGw==", - "dev": true, - "dependencies": { - "jest-get-type": "^27.4.0", - "pretty-format": "^27.4.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-matcher-utils": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.4.2.tgz", - "integrity": "sha512-jyP28er3RRtMv+fmYC/PKG8wvAmfGcSNproVTW2Y0P/OY7/hWUOmsPfxN1jOhM+0u2xU984u2yEagGivz9OBGQ==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^27.4.2", - "jest-get-type": "^27.4.0", - "pretty-format": "^27.4.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-message-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.2.tgz", - "integrity": "sha512-OMRqRNd9E0DkBLZpFtZkAGYOXl6ZpoMtQJWTAREJKDOFa0M6ptB7L67tp+cszMBkvSgKOhNtQp2Vbcz3ZZKo/w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.4.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.2", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-message-util/node_modules/@babel/code-frame": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", - "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/jest-mock": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.4.2.tgz", - "integrity": "sha512-PDDPuyhoukk20JrQKeofK12hqtSka7mWH0QQuxSNgrdiPsrnYYLS6wbzu/HDlxZRzji5ylLRULeuI/vmZZDrYA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.4.0.tgz", - "integrity": "sha512-WeCpMpNnqJYMQoOjm1nTtsgbR4XHAk1u00qDoNBQoykM280+/TmgA5Qh5giC1ecy6a5d4hbSsHzpBtu5yvlbEg==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.4.2.tgz", - "integrity": "sha512-d/zqPjxCzMqHlOdRTg8cTpO9jY+1/T74KazT8Ws/LwmwxV5sRMWOkiLjmzUCDj/5IqA5XHNK4Hkmlq9Kdpb9Sg==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.4.2", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.4.2", - "jest-validate": "^27.4.2", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.4.2.tgz", - "integrity": "sha512-hb++cTpqvOWfU49MCP/JQkxmnrhKoAVqXWFjgYXswRSVGk8Q6bDTSvhbCeYXDtXaymY0y7WrrSIlKogClcKJuw==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "jest-regex-util": "^27.4.0", - "jest-snapshot": "^27.4.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runner": { - "version": "27.4.3", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.4.3.tgz", - "integrity": "sha512-JgR6Om/j22Fd6ZUUIGTWNcCtuZVYbNrecb4k89W4UyFJoRtHpo2zMKWkmFFFJoqwWGrfrcPLnVBIgkJiTV3cyA==", - "dev": true, - "dependencies": { - "@jest/console": "^27.4.2", - "@jest/environment": "^27.4.2", - "@jest/test-result": "^27.4.2", - "@jest/transform": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-docblock": "^27.4.0", - "jest-environment-jsdom": "^27.4.3", - "jest-environment-node": "^27.4.2", - "jest-haste-map": "^27.4.2", - "jest-leak-detector": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-resolve": "^27.4.2", - "jest-runtime": "^27.4.2", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.2", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runner/node_modules/jest-worker": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.2.tgz", - "integrity": "sha512-0QMy/zPovLfUPyHuOuuU4E+kGACXXE84nRnq6lBVI9GJg5DCBiA97SATi+ZP8CpiJwEQy1oCPjRBf8AnLjN+Ag==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-runner/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/jest-runtime": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.4.2.tgz", - "integrity": "sha512-eqPgcBaUNaw6j8T5M+dnfAEh6MIrh2YmtskCr9sl50QYpD22Sg+QqHw3J3nmaLzVMbBtOMHFFxLF0Qx8MsZVFQ==", - "dev": true, - "dependencies": { - "@jest/console": "^27.4.2", - "@jest/environment": "^27.4.2", - "@jest/globals": "^27.4.2", - "@jest/source-map": "^27.4.0", - "@jest/test-result": "^27.4.2", - "@jest/transform": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-mock": "^27.4.2", - "jest-regex-util": "^27.4.0", - "jest-resolve": "^27.4.2", - "jest-snapshot": "^27.4.2", - "jest-util": "^27.4.2", - "jest-validate": "^27.4.2", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^16.2.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runtime/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "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/jest-serializer": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.4.0.tgz", - "integrity": "sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ==", - "dev": true, - "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-snapshot": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.4.2.tgz", - "integrity": "sha512-DI7lJlNIu6WSQ+esqhnJzEzU70+dV+cNjoF1c+j5FagWEd3KtOyZvVliAH0RWNQ6KSnAAnKSU0qxJ8UXOOhuUQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/parser": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.4.2", - "graceful-fs": "^4.2.4", - "jest-diff": "^27.4.2", - "jest-get-type": "^27.4.0", - "jest-haste-map": "^27.4.2", - "jest-matcher-utils": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-resolve": "^27.4.2", - "jest-util": "^27.4.2", - "natural-compare": "^1.4.0", - "pretty-format": "^27.4.2", - "semver": "^7.3.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-validate": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.4.2.tgz", - "integrity": "sha512-hWYsSUej+Fs8ZhOm5vhWzwSLmVaPAxRy+Mr+z5MzeaHm9AxUpXdoVMEW4R86y5gOobVfBsMFLk4Rb+QkiEpx1A==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.4.0", - "leven": "^3.1.0", - "pretty-format": "^27.4.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", - "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-watcher": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.4.2.tgz", - "integrity": "sha512-NJvMVyyBeXfDezhWzUOCOYZrUmkSCiatpjpm+nFUid74OZEHk6aMLrZAukIiFDwdbqp6mTM6Ui1w4oc+8EobQg==", - "dev": true, - "dependencies": { - "@jest/test-result": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.4.2", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "dev": true, - "dependencies": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/jsdom/node_modules/acorn": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", - "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "node_modules/json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", - "dev": true - }, - "node_modules/lint-staged": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-11.0.0.tgz", - "integrity": "sha512-3rsRIoyaE8IphSUtO1RVTFl1e0SLBtxxUOPBtHxQgBHS5/i6nqvjcUfNioMa4BU9yGnPzbO+xkfLtXtxBpCzjw==", - "dev": true, - "dependencies": { - "chalk": "^4.1.1", - "cli-truncate": "^2.1.0", - "commander": "^7.2.0", - "cosmiconfig": "^7.0.0", - "debug": "^4.3.1", - "dedent": "^0.7.0", - "enquirer": "^2.3.6", - "execa": "^5.0.0", - "listr2": "^3.8.2", - "log-symbols": "^4.1.0", - "micromatch": "^4.0.4", - "normalize-path": "^3.0.0", - "please-upgrade-node": "^3.2.0", - "string-argv": "0.3.1", - "stringify-object": "^3.3.0" - }, - "bin": { - "lint-staged": "bin/lint-staged.js" - }, - "funding": { - "url": "https://opencollective.com/lint-staged" - } - }, - "node_modules/lint-staged/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/listr2": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.11.1.tgz", - "integrity": "sha512-ZXQvQfmH9iWLlb4n3hh31yicXDxlzB0pE7MM1zu6kgbVL4ivEsO4H8IPh4E682sC8RjnYO9anose+zT52rrpyg==", - "dev": true, - "dependencies": { - "cli-truncate": "^2.1.0", - "colorette": "^1.2.2", - "log-update": "^4.0.0", - "p-map": "^4.0.0", - "rxjs": "^6.6.7", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "enquirer": ">= 2.3.0 < 3" - } - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", - "dev": true - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", - "dev": true - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/log-update/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/magic-string": { - "version": "0.25.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", - "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", - "dev": true, - "dependencies": { - "sourcemap-codec": "^1.4.4" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "dependencies": { - "tmpl": "1.0.5" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime-db": { - "version": "1.49.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", - "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.32", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", - "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", - "dev": true, - "dependencies": { - "mime-db": "1.49.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "node_modules/node-fetch": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.2.tgz", - "integrity": "sha512-aLoxToI6RfZ+0NOjmWAgn9+LEd30YCkJKFSyWacNZdEKTit/ZMcKjGkTRo8uWEsnIb/hfKecNPEbln02PdWbcA==", - "dev": true, - "engines": { - "node": "4.x || >=6.0.0" - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", - "dev": true - }, - "node_modules/node-modules-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", - "dev": true - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", - "dev": true - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "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.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/@unrs/resolver-binding-android-arm64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.11.1.tgz", + "integrity": "sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT", + "optional": true, + "os": [ + "android" + ] }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/@unrs/resolver-binding-darwin-arm64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz", + "integrity": "sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "node_modules/@unrs/resolver-binding-darwin-x64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.11.1.tgz", + "integrity": "sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "node_modules/@unrs/resolver-binding-freebsd-x64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.11.1.tgz", + "integrity": "sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==", + "cpu": [ + "x64" + ], "dev": true, - "engines": { - "node": ">=6" - } + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.11.1.tgz", + "integrity": "sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==", + "cpu": [ + "arm" + ], "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "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" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.11.1.tgz", + "integrity": "sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true + "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.11.1.tgz", + "integrity": "sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "node_modules/@unrs/resolver-binding-linux-arm64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.11.1.tgz", + "integrity": "sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==", + "cpu": [ + "arm64" + ], "dev": true, - "engines": { - "node": ">=8" - } + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.11.1.tgz", + "integrity": "sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==", + "cpu": [ + "ppc64" + ], "dev": true, - "engines": { - "node": ">=0.10.0" - } + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.11.1.tgz", + "integrity": "sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==", + "cpu": [ + "riscv64" + ], "dev": true, - "engines": { - "node": ">=8" - } + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.11.1.tgz", + "integrity": "sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.11.1.tgz", + "integrity": "sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==", + "cpu": [ + "s390x" + ], "dev": true, - "engines": { - "node": ">=8" - } + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "node_modules/@unrs/resolver-binding-linux-x64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.11.1.tgz", + "integrity": "sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "node_modules/@unrs/resolver-binding-linux-x64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.11.1.tgz", + "integrity": "sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==", + "cpu": [ + "x64" + ], "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/pirates": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", - "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "node_modules/@unrs/resolver-binding-wasm32-wasi": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.11.1.tgz", + "integrity": "sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==", + "cpu": [ + "wasm32" + ], "dev": true, + "license": "MIT", + "optional": true, "dependencies": { - "node-modules-regexp": "^1.0.0" + "@napi-rs/wasm-runtime": "^0.2.11" }, "engines": { - "node": ">= 6" + "node": ">=14.0.0" } }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz", + "integrity": "sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/please-upgrade-node": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", - "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", + "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.11.1.tgz", + "integrity": "sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==", + "cpu": [ + "ia32" + ], "dev": true, - "dependencies": { - "semver-compare": "^1.0.0" - } + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "node_modules/@unrs/resolver-binding-win32-x64-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz", + "integrity": "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==", + "cpu": [ + "x64" + ], "dev": true, - "engines": { - "node": ">= 0.8.0" - } + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/prettier": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.4.0.tgz", - "integrity": "sha512-DsEPLY1dE5HF3BxCRBmD4uYZ+5DCbvatnolqTqcxEgKVZnL2kUfyu7b8pPQ5+hTBkdhU9SLUmK0/pHb07RE4WQ==", + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, + "license": "MIT", "bin": { - "prettier": "bin-prettier.js" + "acorn": "bin/acorn" }, "engines": { - "node": ">=10.13.0" + "node": ">=0.4.0" } }, - "node_modules/prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, - "dependencies": { - "fast-diff": "^1.1.2" - }, - "engines": { - "node": ">=6.0.0" + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/pretty-format": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.2.tgz", - "integrity": "sha512-p0wNtJ9oLuvgOQDEIZ9zQjZffK7KtyR6Si0jnXULIDwrlNF8Cuir3AZP0hHv0jmKuNN/edOnbMjnzd4uTcmWiw==", + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, + "license": "MIT", "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">= 14" } }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, - "engines": { - "node": ">=10" + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, "engines": { - "node": ">=0.4.0" + "node": ">=8" } }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, + "node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" + "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": ">= 6" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "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" - } - ] - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, + "license": "MIT", "dependencies": { - "resolve": "^1.1.6" + "type-fest": "^0.21.3" }, "engines": { - "node": ">= 0.10" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/mysticatea" + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 8" } }, - "node_modules/resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, - "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "license": "MIT", + "engines": { + "node": ">=8.6" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "dev": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } + "license": "MIT" }, - "node_modules/resolve-cwd/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", "dev": true, + "license": "(MIT OR Apache-2.0)", + "bin": { + "atob": "bin/atob.js" + }, "engines": { - "node": ">=4" + "node": ">= 4.5.0" } }, - "node_modules/resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", - "dev": true, + "node_modules/babel-jest": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-30.2.0.tgz", + "integrity": "sha512-0YiBEOxWqKkSQWL9nNGGEgndoeL0ZpWrbLMNL5u/Kaxrli3Eaxlt3ZtIDktEvXt4L/R9r3ODr2zKwGM/2BjxVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/transform": "30.2.0", + "@types/babel__core": "^7.20.5", + "babel-plugin-istanbul": "^7.0.1", + "babel-preset-jest": "30.2.0", + "chalk": "^4.1.2", + "graceful-fs": "^4.2.11", + "slash": "^3.0.0" + }, "engines": { - "node": ">=10" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.11.0 || ^8.0.0-0" } }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "node_modules/babel-plugin-istanbul": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-7.0.1.tgz", + "integrity": "sha512-D8Z6Qm8jCvVXtIRkBnqNHX0zJ37rQcFJ9u8WOS6tkYOsRdHBzypCstaxWiu5ZIlqQtviRYbgnRLSoCEvjqcqbA==", "dev": true, + "license": "BSD-3-Clause", + "workspaces": [ + "test/babel-8" + ], "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-instrument": "^6.0.2", + "test-exclude": "^6.0.0" }, "engines": { - "node": ">=8" + "node": ">=12" } }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "node_modules/babel-plugin-jest-hoist": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.2.0.tgz", + "integrity": "sha512-ftzhzSGMUnOzcCXd6WHdBGMyuwy15Wnn0iyyWGKgBDLxf9/s5ABuraCSpBX2uG0jUg4rqJnxsLc5+oYBqoxVaA==", "dev": true, + "license": "MIT", + "dependencies": { + "@types/babel__core": "^7.20.5" + }, "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "node_modules/babel-preset-current-node-syntax": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz", + "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==", "dev": true, + "license": "MIT", "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" + "@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" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependencies": { + "@babel/core": "^7.0.0 || ^8.0.0-0" } }, - "node_modules/rollup": { - "version": "2.56.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.56.3.tgz", - "integrity": "sha512-Au92NuznFklgQCUcV96iXlxUbHuB1vQMaH76DHl5M11TotjOHwqk9CwcrT78+Tnv4FN9uTBxq6p4EJoYkpyekg==", + "node_modules/babel-preset-jest": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-30.2.0.tgz", + "integrity": "sha512-US4Z3NOieAQumwFnYdUWKvUKh8+YSnS/gB3t6YBiz0bskpu7Pine8pPCheNxlPEW4wnUkma2a94YuW2q3guvCQ==", "dev": true, - "bin": { - "rollup": "dist/bin/rollup" + "license": "MIT", + "dependencies": { + "babel-plugin-jest-hoist": "30.2.0", + "babel-preset-current-node-syntax": "^1.2.0" }, "engines": { - "node": ">=10.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" }, - "optionalDependencies": { - "fsevents": "~2.3.2" + "peerDependencies": { + "@babel/core": "^7.11.0 || ^8.0.0-beta.1" } }, - "node_modules/rollup-plugin-sourcemaps": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/rollup-plugin-sourcemaps/-/rollup-plugin-sourcemaps-0.6.3.tgz", - "integrity": "sha512-paFu+nT1xvuO1tPFYXGe+XnQvg4Hjqv/eIhG8i5EspfYYPBKL57X7iVbfv55aNVASg3dzWvES9dmWsL2KhfByw==", + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/baseline-browser-mapping": { + "version": "2.8.11", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.11.tgz", + "integrity": "sha512-i+sRXGhz4+QW8aACZ3+r1GAKMt0wlFpeA8M5rOQd0HEYw9zhDrlx9Wc8uQ0IdXakjJRthzglEwfB/yqIjO6iDg==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, + "license": "MIT", "dependencies": { - "@rollup/pluginutils": "^3.0.9", - "source-map-resolve": "^0.6.0" + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" }, "engines": { - "node": ">=10.0.0" + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.26.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.26.3.tgz", + "integrity": "sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==", + "dev": true, + "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": { + "baseline-browser-mapping": "^2.8.9", + "caniuse-lite": "^1.0.30001746", + "electron-to-chromium": "^1.5.227", + "node-releases": "^2.0.21", + "update-browserslist-db": "^1.1.3" }, - "peerDependencies": { - "@types/node": ">=10.0.0", - "rollup": ">=0.31.2" + "bin": { + "browserslist": "cli.js" }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/rollup-plugin-terser": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", - "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.10.4", - "jest-worker": "^26.2.1", - "serialize-javascript": "^4.0.0", - "terser": "^5.0.0" + "fast-json-stable-stringify": "2.x" }, - "peerDependencies": { - "rollup": "^2.0.0" + "engines": { + "node": ">= 6" } }, - "node_modules/rollup-plugin-typescript2": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.30.0.tgz", - "integrity": "sha512-NUFszIQyhgDdhRS9ya/VEmsnpTe+GERDMmFo0Y+kf8ds51Xy57nPNGglJY+W6x1vcouA7Au7nsTgsLFj2I0PxQ==", + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "@rollup/pluginutils": "^4.1.0", - "find-cache-dir": "^3.3.1", - "fs-extra": "8.1.0", - "resolve": "1.20.0", - "tslib": "2.1.0" + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" }, - "peerDependencies": { - "rollup": ">=1.26.3", - "typescript": ">=2.4.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/rollup-plugin-typescript2/node_modules/@rollup/pluginutils": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.1.tgz", - "integrity": "sha512-clDjivHqWGXi7u+0d2r2sBi4Ie6VLEAzWMIkvJLnDmxoOhBYOTfzGbOQBA32THHm11/LiJbd01tJUpJsbshSWQ==", + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", "dev": true, + "license": "MIT", "dependencies": { - "estree-walker": "^2.0.1", - "picomatch": "^2.2.2" + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" }, "engines": { - "node": ">= 8.0.0" + "node": ">= 0.4" + } + }, + "node_modules/call-me-maybe": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", + "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" } }, - "node_modules/rollup-plugin-typescript2/node_modules/tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", - "dev": true - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "node_modules/caniuse-lite": { + "version": "1.0.30001747", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001747.tgz", + "integrity": "sha512-mzFa2DGIhuc5490Nd/G31xN1pnBnYMadtkyTjefPI7wzypqgCEpeWu9bJr0OnDsyKrW75zA9ZAt7pbQFmwLsQg==", "dev": true, "funding": [ { - "type": "github", - "url": "https://github.com/sponsors/feross" + "type": "opencollective", + "url": "https://opencollective.com/browserslist" }, { - "type": "patreon", - "url": "https://www.patreon.com/feross" + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" }, { - "type": "consulting", - "url": "https://feross.org/support" + "type": "github", + "url": "https://github.com/sponsors/ai" } ], - "dependencies": { - "queue-microtask": "^1.2.2" - } + "license": "CC-BY-4.0" }, - "node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { - "tslib": "^1.9.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "npm": ">=2.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/rxjs/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "node_modules/ci-info": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.3.0.tgz", + "integrity": "sha512-l+2bNRMiQgcfILUi33labAZYIWlH1kWDp+ecNo5iisRKrbm0xcRyCww71/YU0Fkw0mAFpz9bJayXPjey6vkmaQ==", "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" + "url": "https://github.com/sponsors/sibiraj-s" } - ] + ], + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "node_modules/cjs-module-lexer": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-2.1.0.tgz", + "integrity": "sha512-UX0OwmYRYQQetfrLEZeewIFFI+wSTofC+pMBLNuH3RUuu/xzG1oz84UCEDOSoQlN3fZ4+AzmV50ZYvGqkMh9yA==", + "dev": true, + "license": "MIT" }, - "node_modules/saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, + "license": "MIT", "dependencies": { - "xmlchars": "^2.2.0" + "restore-cursor": "^3.1.0" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "node_modules/cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", "dev": true, + "license": "MIT", "dependencies": { - "lru-cache": "^6.0.0" + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" }, - "bin": { - "semver": "bin/semver.js" + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/semver-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", - "dev": true - }, - "node_modules/serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "node_modules/cli-truncate/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "dependencies": { - "randombytes": "^2.1.0" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "node_modules/cli-truncate/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/cli-truncate/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { - "shebang-regex": "^3.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8" } }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "node_modules/cli-truncate/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, "engines": { "node": ">=8" } }, - "node_modules/shelljs": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", - "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, + "license": "ISC", "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" }, "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/shx": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.3.tgz", - "integrity": "sha512-nZJ3HFWVoTSyyB+evEKjJ1STiixGztlqwKLTUNV5KqMWtGey9fTd4KU1gdZ1X9BV6215pswQ/Jew9NsuS/fNDA==", + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "dependencies": { - "minimist": "^1.2.3", - "shelljs": "^0.8.4" - }, - "bin": { - "shx": "lib/cli.js" - }, + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, "engines": { "node": ">=8" } }, - "node_modules/slice-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.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/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 8" + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" } }, - "node_modules/source-map-resolve": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", - "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", "dev": true, - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" - } + "license": "MIT" }, - "node_modules/source-map-support": { - "version": "0.5.20", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz", - "integrity": "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==", + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, + "color-name": "~1.1.4" + }, "engines": { - "node": ">=0.10.0" + "node": ">=7.0.0" } }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "dev": true + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true, + "license": "MIT" }, - "node_modules/stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, + "license": "MIT", "dependencies": { - "escape-string-regexp": "^2.0.0" + "delayed-stream": "~1.0.0" }, "engines": { - "node": ">=10" + "node": ">= 0.8" } }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=18" } }, - "node_modules/string-argv": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", - "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true, - "engines": { - "node": ">=0.6.19" - } + "license": "MIT" }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", "dev": true, + "license": "MIT", "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" }, "engines": { "node": ">=10" } }, - "node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } + "license": "MIT" }, - "node_modules/stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "node_modules/cross-fetch": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.1.0.tgz", + "integrity": "sha512-uKm5PU+MHTootlWEY+mZ4vvXoCn4fLQxT9dSc1sXVMSFkINTJVN8cAQROpwcKm8bJ/c7rgZVIBWzH5T78sNZZw==", "dev": true, + "license": "MIT", "dependencies": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - }, - "engines": { - "node": ">=4" + "node-fetch": "^2.7.0" } }, - "node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.0" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, "engines": { - "node": ">=8" + "node": ">= 8" } }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, "engines": { - "node": ">=8" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=0.10" } }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "node_modules/dedent": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.0.tgz", + "integrity": "sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ==", "dev": true, - "engines": { - "node": ">=8" + "license": "MIT", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } } }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=4" - } + "license": "MIT" }, - "node_modules/supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true - }, - "node_modules/table": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", - "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "dev": true, - "dependencies": { - "ajv": "^8.0.1", - "lodash.clonedeep": "^4.5.0", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0" - }, + "license": "MIT", "engines": { - "node": ">=10.0.0" + "node": ">=0.4.0" } }, - "node_modules/table/node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, + "license": "MIT", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" + "node": ">=8" } }, - "node_modules/terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, + "license": "BSD-3-Clause", "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.3.1" } }, - "node_modules/terser": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.2.tgz", - "integrity": "sha512-0Omye+RD4X7X69O0eql3lC4Heh/5iLj3ggxR/B5ketZLOtLiOqukUgjw3q4PDnNQbsrkKr3UMypqStQG3XKRvw==", - "dev": true, - "dependencies": { - "commander": "^2.20.0", - "source-map": "~0.7.2", - "source-map-support": "~0.5.19" + "node_modules/dtsgenerator": { + "version": "3.19.2", + "resolved": "https://registry.npmjs.org/dtsgenerator/-/dtsgenerator-3.19.2.tgz", + "integrity": "sha512-ehtdeCLaVrSzRO23QLnDQJ13CHZtTOS95RxQc3yGM0FhKimNLvt/JklzAv7JZPb1T09Fkj8lmKQtk32tuz/aXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "^12.1.0", + "cross-fetch": "^4.0.0", + "debug": "^4.3.5", + "glob": "^10.4.1", + "http-proxy-agent": "^7.0.2", + "https-proxy-agent": "^7.0.4", + "js-yaml": "^4.1.0", + "tslib": "^2.6.3", + "typescript": "^5.4.5" }, "bin": { - "terser": "bin/terser" + "dtsgen": "bin/dtsgen" }, "engines": { - "node": ">=10" + "node": ">= 18.0" } }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", "dev": true, + "license": "MIT", "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" }, "engines": { - "node": ">=8" + "node": ">= 0.4" } }, - "node_modules/text-table": { + "node_modules/eastasianwidth": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "node_modules/throat": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", - "dev": true - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true + "node_modules/electron-to-chromium": { + "version": "1.5.230", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.230.tgz", + "integrity": "sha512-A6A6Fd3+gMdaed9wX83CvHYJb4UuapPD5X5SLq72VZJzxHSY0/LUweGXRWmQlh2ln7KV7iw7jnwXK7dlPoOnHQ==", + "dev": true, + "license": "ISC" }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" } }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true, + "license": "MIT" + }, + "node_modules/end-of-stream": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "dev": true, + "license": "MIT", "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" + "once": "^1.4.0" } }, - "node_modules/tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "node_modules/enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", "dev": true, + "license": "MIT", "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=6" + "node": ">=8.6" } }, - "node_modules/tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "node_modules/enquirer/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "dependencies": { - "punycode": "^2.1.1" - }, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/ts-jest": { - "version": "27.1.0", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.0.tgz", - "integrity": "sha512-ZouWlP03JMtzfNHg0ZeDrxAESYGmVhWyHtIl2/01kBbXaMbTr4Vhv6/GeMxUed6GFg/4ycMo+yU6Eo9gI16xTQ==", + "node_modules/enquirer/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { - "bs-logger": "0.x", - "esbuild": "~0.14.0", - "fast-json-stable-stringify": "2.x", - "jest-util": "^27.0.0", - "json5": "2.x", - "lodash.memoize": "4.x", - "make-error": "1.x", - "semver": "7.x", - "yargs-parser": "20.x" - }, - "bin": { - "ts-jest": "cli.js" + "ansi-regex": "^5.0.1" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": ">=7.0.0-beta.0 <8", - "@types/jest": "^27.0.0", - "babel-jest": ">=27.0.0 <28", - "jest": "^27.0.0", - "typescript": ">=3.8 <5.0" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "@types/jest": { - "optional": true - }, - "babel-jest": { - "optional": true - } + "node": ">=8" } }, - "node_modules/ts-node": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", - "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", - "dev": true, - "dependencies": { - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.17", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "typescript": ">=2.7" + "node": ">= 0.4" } }, - "node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", "dev": true, + "license": "MIT", "dependencies": { - "tslib": "^1.8.1" + "es-errors": "^1.3.0" }, "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + "node": ">= 0.4" } }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", "dev": true, + "license": "MIT", "dependencies": { - "prelude-ls": "^1.2.1" + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" }, "engines": { - "node": ">= 0.8.0" + "node": ">= 0.4" } }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=6" } }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -6495,5374 +3558,4805 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.2.tgz", - "integrity": "sha512-gzP+t5W4hdy4c+68bfcv0t400HVJMMd2+H9B7gae1nQlBzCqvrXX+6GL/b3GAgyTH966pzrZ70/fRjwAtZksSQ==", - "dev": true, + "node_modules/eslint": { + "version": "9.36.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.36.0.tgz", + "integrity": "sha512-hB4FIzXovouYzwzECDcUkJ4OcfOEkXTv2zRY6B9bkwjx/cprAq0uvm1nl7zvQ0/TsUk0zQiN4uPfJpB9m+rPMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.0", + "@eslint/config-helpers": "^0.3.1", + "@eslint/core": "^0.15.2", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.36.0", + "@eslint/plugin-kit": "^0.3.5", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "eslint": "bin/eslint.js" }, "engines": { - "node": ">=4.2.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } } }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "node_modules/eslint-config-prettier": { + "version": "8.10.2", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.2.tgz", + "integrity": "sha512-/IGJ6+Dka158JnP5n5YFMOszjDWrXggGz1LaK/guZq9vZTmniaKlHcsscvkAhn9y4U+BU3JuUdYvtAMcv30y4A==", "dev": true, - "engines": { - "node": ">= 4.0.0" + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" } }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "node_modules/eslint-plugin-prettier": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz", + "integrity": "sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g==", + "dev": true, + "license": "MIT", "dependencies": { - "punycode": "^2.1.0" + "prettier-linter-helpers": "^1.0.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "peerDependencies": { + "eslint": ">=5.0.0", + "prettier": ">=1.13.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } } }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, - "node_modules/v8-to-istanbul": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.0.tgz", - "integrity": "sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA==", + "node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" }, "engines": { - "node": ">=10.12.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, - "dependencies": { - "browser-process-hrtime": "^1.0.0" + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { - "xml-name-validator": "^3.0.0" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" }, - "engines": { - "node": ">=10" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, + "license": "MIT", "dependencies": { - "makeerror": "1.0.12" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=10.4" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "node_modules/eslint/node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, - "dependencies": { - "iconv-lite": "0.4.24" + "license": "MIT", + "engines": { + "node": ">= 4" } }, - "node_modules/whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true + "node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" }, - "node_modules/whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=10" + "node": "*" } }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" }, "engines": { - "node": ">= 8" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=0.10.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "node": ">=4" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" } }, - "node_modules/ws": { - "version": "7.5.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz", - "integrity": "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==", + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "engines": { + "node": ">=4.0" } }, - "node_modules/xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { - "node": ">=10" + "node": ">=4.0" } }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT" }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, + "license": "BSD-2-Clause", "engines": { - "node": ">= 6" + "node": ">=0.10.0" } }, - "node_modules/yargs": { - "version": "17.1.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.1.1.tgz", - "integrity": "sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==", + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, + "license": "MIT", "dependencies": { - "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" + "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": ">=12" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "node_modules/execa/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/exit-x": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/exit-x/-/exit-x-0.2.2.tgz", + "integrity": "sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=10" + "node": ">= 0.8.0" } }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "node_modules/expect": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-30.2.0.tgz", + "integrity": "sha512-u/feCi0GPsI+988gU2FLcsHyAHTU0MX1Wg68NhAnN7z/+C5wqG+CY8J53N9ioe8RXgaoz0nBR/TYMf3AycUuPw==", "dev": true, + "license": "MIT", + "dependencies": { + "@jest/expect-utils": "30.2.0", + "@jest/get-type": "30.1.0", + "jest-matcher-utils": "30.2.0", + "jest-message-util": "30.2.0", + "jest-mock": "30.2.0", + "jest-util": "30.2.0" + }, "engines": { - "node": ">=6" - } - } - }, - "dependencies": { - "@apidevtools/json-schema-ref-parser": { - "version": "9.0.9", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz", - "integrity": "sha512-GBD2Le9w2+lVFoc4vswGI/TjkNIZSVp7+9xPf+X3uidBfWnAeUWmquteSyt0+VCrhNMWj/FTABISQrD3Z/YA+w==", - "dev": true, - "requires": { - "@jsdevtools/ono": "^7.1.3", - "@types/json-schema": "^7.0.6", - "call-me-maybe": "^1.0.1", - "js-yaml": "^4.1.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "@babel/compat-data": { - "version": "7.16.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz", - "integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==", - "dev": true - }, - "@babel/core": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz", - "integrity": "sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.0", - "@babel/generator": "^7.16.0", - "@babel/helper-compilation-targets": "^7.16.0", - "@babel/helper-module-transforms": "^7.16.0", - "@babel/helpers": "^7.16.0", - "@babel/parser": "^7.16.0", - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.0", - "@babel/types": "^7.16.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", - "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", - "dev": true, - "requires": { - "@babel/highlight": "^7.16.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true, + "license": "Apache-2.0" }, - "@babel/generator": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.0.tgz", - "integrity": "sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew==", + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, - "requires": { - "@babel/types": "^7.16.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, + "license": "MIT", "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" } }, - "@babel/helper-compilation-targets": { - "version": "7.16.3", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz", - "integrity": "sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==", + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, - "requires": { - "@babel/compat-data": "^7.16.0", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.17.5", - "semver": "^6.3.0" - }, + "license": "ISC", "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" } }, - "@babel/helper-function-name": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz", - "integrity": "sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog==", + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.16.0", - "@babel/template": "^7.16.0", - "@babel/types": "^7.16.0" - } + "license": "MIT" }, - "@babel/helper-get-function-arity": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz", - "integrity": "sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ==", + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" }, - "@babel/helper-hoist-variables": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz", - "integrity": "sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==", + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", "dev": true, - "requires": { - "@babel/types": "^7.16.0" + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" } }, - "@babel/helper-member-expression-to-functions": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz", - "integrity": "sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ==", + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, - "requires": { - "@babel/types": "^7.16.0" + "license": "Apache-2.0", + "dependencies": { + "bser": "2.1.1" } }, - "@babel/helper-module-imports": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz", - "integrity": "sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==", + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, - "requires": { - "@babel/types": "^7.16.0" + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } } }, - "@babel/helper-module-transforms": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz", - "integrity": "sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA==", + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.16.0", - "@babel/helper-replace-supers": "^7.16.0", - "@babel/helper-simple-access": "^7.16.0", - "@babel/helper-split-export-declaration": "^7.16.0", - "@babel/helper-validator-identifier": "^7.15.7", - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.0", - "@babel/types": "^7.16.0" + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" } }, - "@babel/helper-optimise-call-expression": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz", - "integrity": "sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw==", + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, - "requires": { - "@babel/types": "^7.16.0" + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - }, - "@babel/helper-replace-supers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz", - "integrity": "sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA==", + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.16.0", - "@babel/helper-optimise-call-expression": "^7.16.0", - "@babel/traverse": "^7.16.0", - "@babel/types": "^7.16.0" + "license": "MIT", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, - "@babel/helper-simple-access": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz", - "integrity": "sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw==", + "node_modules/find-cache-dir/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, - "requires": { - "@babel/types": "^7.16.0" + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@babel/helper-split-export-declaration": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz", - "integrity": "sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw==", + "node_modules/find-cache-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "requires": { - "@babel/types": "^7.16.0" + "license": "ISC", + "bin": { + "semver": "bin/semver.js" } }, - "@babel/helper-validator-identifier": { - "version": "7.15.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", - "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", - "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", - "dev": true - }, - "@babel/helpers": { - "version": "7.16.3", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.3.tgz", - "integrity": "sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w==", - "dev": true, - "requires": { - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.3", - "@babel/types": "^7.16.0" - } - }, - "@babel/highlight": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", - "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.15.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@babel/parser": { - "version": "7.16.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz", - "integrity": "sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==", - "dev": true - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" } }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } + "license": "ISC" }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "node_modules/form-data": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", + "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" } }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" } }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } + "license": "ISC" }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "license": "MIT", + "engines": { + "node": ">=6.9.0" } }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" } }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } + "license": "ISC" }, - "@babel/plugin-syntax-typescript": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.0.tgz", - "integrity": "sha512-Xv6mEXqVdaqCBfJFyeab0fH2DnUoMsDmhamxsSi4j8nLd4Vtw213WMJr55xxqipC/YVWyPY3K0blJncPYji+dQ==", + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "license": "MIT", + "engines": { + "node": ">=8.0.0" } }, - "@babel/template": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.0.tgz", - "integrity": "sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==", + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", "dev": true, - "requires": { - "@babel/code-frame": "^7.16.0", - "@babel/parser": "^7.16.0", - "@babel/types": "^7.16.0" - }, + "license": "MIT", "dependencies": { - "@babel/code-frame": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", - "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", - "dev": true, - "requires": { - "@babel/highlight": "^7.16.0" - } - } + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" } }, - "@babel/traverse": { - "version": "7.16.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.3.tgz", - "integrity": "sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag==", + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, - "requires": { - "@babel/code-frame": "^7.16.0", - "@babel/generator": "^7.16.0", - "@babel/helper-function-name": "^7.16.0", - "@babel/helper-hoist-variables": "^7.16.0", - "@babel/helper-split-export-declaration": "^7.16.0", - "@babel/parser": "^7.16.3", - "@babel/types": "^7.16.0", - "debug": "^4.1.0", - "globals": "^11.1.0" + "license": "MIT", + "engines": { + "node": ">=10" }, - "dependencies": { - "@babel/code-frame": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", - "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", - "dev": true, - "requires": { - "@babel/highlight": "^7.16.0" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@babel/types": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", - "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.15.7", - "to-fast-properties": "^2.0.0" + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "@dtsgenerator/replace-namespace": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@dtsgenerator/replace-namespace/-/replace-namespace-1.5.1.tgz", - "integrity": "sha512-euoDqrH2obSzuNQBDxMcIvXluQVgbxH2wUkJeDo36hQBTwSiZaT5FBEz3YmC5uZBwJGDGsHPYCpicuuNYnTHRQ==", - "dev": true, - "requires": {} - }, - "@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, + "license": "ISC", "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - } + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" } }, - "@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@humanwhocodes/object-schema": { + "node_modules/gopd": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", - "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", - "dev": true - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" + "license": "MIT", + "engines": { + "node": ">= 0.4" }, - "dependencies": { - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" }, - "@jest/console": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.4.2.tgz", - "integrity": "sha512-xknHThRsPB/To1FUbi6pCe43y58qFC03zfb6R7fDb/FfC7k2R3i1l+izRBJf8DI46KhYGRaF14Eo9A3qbBoixg==", + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.4.2", - "jest-util": "^27.4.2", - "slash": "^3.0.0" - } + "license": "MIT" }, - "@jest/core": { - "version": "27.4.3", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.4.3.tgz", - "integrity": "sha512-V9ms3zSxUHxh1E/ZLAiXF7SLejsdFnjWTFizWotMOWvjho0lW5kSjZymhQSodNW0T0ZMQRiha7f8+NcFVm3hJQ==", + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", "dev": true, - "requires": { - "@jest/console": "^27.4.2", - "@jest/reporters": "^27.4.2", - "@jest/test-result": "^27.4.2", - "@jest/transform": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^27.4.2", - "jest-config": "^27.4.3", - "jest-haste-map": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-regex-util": "^27.4.0", - "jest-resolve": "^27.4.2", - "jest-resolve-dependencies": "^27.4.2", - "jest-runner": "^27.4.3", - "jest-runtime": "^27.4.2", - "jest-snapshot": "^27.4.2", - "jest-util": "^27.4.2", - "jest-validate": "^27.4.2", - "jest-watcher": "^27.4.2", - "micromatch": "^4.0.4", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" } }, - "@jest/environment": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.4.2.tgz", - "integrity": "sha512-uSljKxh/rGlHlmhyeG4ZoVK9hOec+EPBkwTHkHKQ2EqDu5K+MaG9uJZ8o1CbRsSdZqSuhXvJCYhBWsORPPg6qw==", + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "requires": { - "@jest/fake-timers": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "jest-mock": "^27.4.2" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "@jest/fake-timers": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.4.2.tgz", - "integrity": "sha512-f/Xpzn5YQk5adtqBgvw1V6bF8Nx3hY0OIRRpCvWcfPl0EAjdqWPdhH3t/3XpiWZqtjIEHDyMKP9ajpva1l4Zmg==", + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.4.2", - "jest-mock": "^27.4.2", - "jest-util": "^27.4.2" + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@jest/globals": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.4.2.tgz", - "integrity": "sha512-KkfaHEttlGpXYAQTZHgrESiEPx2q/DKAFLGLFda1uGVrqc17snd3YVPhOxlXOHIzVPs+lQ/SDB2EIvxyGzb3Ew==", + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, - "requires": { - "@jest/environment": "^27.4.2", - "@jest/types": "^27.4.2", - "expect": "^27.4.2" + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@jest/reporters": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.4.2.tgz", - "integrity": "sha512-sp4aqmdBJtjKetEakzDPcZggPcVIF6w9QLkYBbaWDV6e/SIsHnF1S4KtIH91eEc2fp7ep6V/e1xvdfEoho1d2w==", + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.4.2", - "@jest/test-result": "^27.4.2", - "@jest/transform": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.3", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^27.4.2", - "jest-resolve": "^27.4.2", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.2", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" - }, - "dependencies": { - "jest-worker": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.2.tgz", - "integrity": "sha512-0QMy/zPovLfUPyHuOuuU4E+kGACXXE84nRnq6lBVI9GJg5DCBiA97SATi+ZP8CpiJwEQy1oCPjRBf8AnLjN+Ag==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" } }, - "@jest/source-map": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.4.0.tgz", - "integrity": "sha512-Ntjx9jzP26Bvhbm93z/AKcPRj/9wrkI88/gK60glXDx1q+IeI0rf7Lw2c89Ch6ofonB0On/iRDreQuQ6te9pgQ==", + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true, - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - }, + "license": "MIT" + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "license": "MIT", "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" } }, - "@jest/test-result": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.4.2.tgz", - "integrity": "sha512-kr+bCrra9jfTgxHXHa2UwoQjxvQk3Am6QbpAiJ5x/50LW8llOYrxILkqY0lZRW/hu8FXesnudbql263+EW9iNA==", + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", "dev": true, - "requires": { - "@jest/console": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" } }, - "@jest/test-sequencer": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.4.2.tgz", - "integrity": "sha512-HmHp5mlh9f9GyNej5yCS1JZIFfUGnP9+jEOH5zoq5EmsuZeYD+dGULqyvGDPtuzzbyAFJ6R4+z4SS0VvnFwwGQ==", + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, - "requires": { - "@jest/test-result": "^27.4.2", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.4.2", - "jest-runtime": "^27.4.2" + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" } }, - "@jest/transform": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.4.2.tgz", - "integrity": "sha512-RTKcPZllfcmLfnlxBya7aypofhdz05+E6QITe55Ex0rxyerkgjmmpMlvVn11V0cP719Ps6WcDYCnDzxnnJUwKg==", + "node_modules/husky": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/husky/-/husky-6.0.0.tgz", + "integrity": "sha512-SQS2gDTB7tBN486QSoKPKQItZw97BMOd+Kdb6ghfpBc0yXyzrddI0oDV5MkDAbuB4X2mO3/nj60TRMcYxwzZeQ==", "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.4.2", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.4.2", - "jest-regex-util": "^27.4.0", - "jest-util": "^27.4.2", - "micromatch": "^4.0.4", - "pirates": "^4.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" + "license": "MIT", + "bin": { + "husky": "lib/bin.js" }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "funding": { + "url": "https://github.com/sponsors/typicode" } }, - "@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", + "node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" + "license": "MIT", + "engines": { + "node": ">= 4" } }, - "@jsdevtools/ono": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", - "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", - "dev": true - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "node_modules/immer": { + "version": "10.1.3", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.1.3.tgz", + "integrity": "sha512-tmjF/k8QDKydUlm3mZU+tjM6zeq9/fFpPqH9SzWmBnVVKsPBg/V66qsMwb3/Bo90cgUN+ghdVBess+hPsxUyRw==", "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" } }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@rollup/plugin-commonjs": { - "version": "19.0.2", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-19.0.2.tgz", - "integrity": "sha512-gBjarfqlC7qs0AutpRW/hrFNm+cd2/QKxhwyFa+srbg1oX7rDsEU3l+W7LAUhsAp9mPJMAkXDhLbQaVwEaE8bA==", + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", "dev": true, - "requires": { - "@rollup/pluginutils": "^3.1.0", - "commondir": "^1.0.1", - "estree-walker": "^2.0.1", - "glob": "^7.1.6", - "is-reference": "^1.2.1", - "magic-string": "^0.25.7", - "resolve": "^1.17.0" + "license": "MIT", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@rollup/plugin-json": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-4.1.0.tgz", - "integrity": "sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==", + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, - "requires": { - "@rollup/pluginutils": "^3.0.8" + "license": "MIT", + "engines": { + "node": ">=0.8.19" } }, - "@rollup/plugin-node-resolve": { - "version": "13.0.4", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.0.4.tgz", - "integrity": "sha512-eYq4TFy40O8hjeDs+sIxEH/jc9lyuI2k9DM557WN6rO5OpnC2qXMBNj4IKH1oHrnAazL49C5p0tgP0/VpqJ+/w==", + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, - "requires": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.19.0" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, - "requires": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - }, + "license": "ISC", "dependencies": { - "estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", - "dev": true - } + "once": "^1.3.0", + "wrappy": "1" } }, - "@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true, - "requires": { - "type-detect": "4.0.8" - } + "license": "ISC" }, - "@sinonjs/fake-timers": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", - "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" + "license": "MIT", + "engines": { + "node": ">= 0.10" } }, - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true - }, - "@types/babel__core": { - "version": "7.1.16", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.16.tgz", - "integrity": "sha512-EAEHtisTMM+KaKwfWdC3oyllIqswlznXCIVCt7/oRNrh+DhgT4UEBNC/jlADNjvw7UnfbcdkGQcPVZ1xYiLcrQ==", + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } + "license": "MIT" }, - "@types/babel__generator": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.3.tgz", - "integrity": "sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA==", + "node_modules/is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", "dev": true, - "requires": { - "@babel/types": "^7.0.0" + "license": "MIT", + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@types/babel__traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", - "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, - "requires": { - "@babel/types": "^7.3.0" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", - "dev": true - }, - "@types/glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA==", + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, - "requires": { - "@types/minimatch": "*", - "@types/node": "*" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true, - "requires": { - "@types/node": "*" + "license": "MIT", + "engines": { + "node": ">=6" } }, - "@types/istanbul-lib-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", - "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", - "dev": true - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*" + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } + "license": "MIT" }, - "@types/jest": { - "version": "27.0.3", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.0.3.tgz", - "integrity": "sha512-cmmwv9t7gBYt7hNKH5Spu7Kuu/DotGa+Ff+JGRKZ4db5eh8PnKS4LuebJ3YLUoyOyIHraTGyULn23YtEAm0VSg==", + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, - "requires": { - "jest-diff": "^27.0.0", - "pretty-format": "^27.0.0" + "license": "MIT", + "engines": { + "node": ">=0.12.0" } }, - "@types/js-yaml": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.3.tgz", - "integrity": "sha512-5t9BhoORasuF5uCPr+d5/hdB++zRFUTMIZOzbNkr+jZh3yQht4HYbRDyj9fY8n2TZT30iW9huzav73x4NikqWg==", - "dev": true - }, - "@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", - "dev": true - }, - "@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", - "dev": true - }, - "@types/node": { - "version": "16.9.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.0.tgz", - "integrity": "sha512-nmP+VR4oT0pJUPFbKE4SXj3Yb4Q/kz3M9dSAO1GGMebRKWHQxLfDNmU/yh3xxCJha3N60nQ/JwXWwOE/ZSEVag==", - "dev": true - }, - "@types/node-fetch": { - "version": "2.5.12", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.12.tgz", - "integrity": "sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==", - "dev": true, - "requires": { - "@types/node": "*", - "form-data": "^3.0.0" + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true - }, - "@types/prettier": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.2.tgz", - "integrity": "sha512-ekoj4qOQYp7CvjX8ZDBgN86w3MqQhLE1hczEJbEIjgFEumDy+na/4AJAbLXfgEWFNB2pKadM5rPFtuSGMWK7xA==", - "dev": true - }, - "@types/resolve": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", - "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "node_modules/is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", "dev": true, - "requires": { - "@types/node": "*" + "license": "MIT", + "dependencies": { + "@types/estree": "*" } }, - "@types/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-F3OznnSLAUxFrCEu/L5PY8+ny8DtcFRjx7fZZ9bycvXRi3KPTRS9HOitGZwvPg0juRhXFWIeKX58cnX5YqLohQ==", + "node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", "dev": true, - "requires": { - "@types/glob": "*", - "@types/node": "*" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "@types/stack-utils": { + "node_modules/is-stream": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, - "requires": { - "@types/yargs-parser": "*" + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@types/yargs-parser": { - "version": "20.2.1", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", - "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==", - "dev": true - }, - "@typescript-eslint/eslint-plugin": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.31.0.tgz", - "integrity": "sha512-iPKZTZNavAlOhfF4gymiSuUkgLne/nh5Oz2/mdiUmuZVD42m9PapnCnzjxuDsnpnbH3wT5s2D8bw6S39TC6GNw==", + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true, - "requires": { - "@typescript-eslint/experimental-utils": "4.31.0", - "@typescript-eslint/scope-manager": "4.31.0", - "debug": "^4.3.1", - "functional-red-black-tree": "^1.0.1", - "regexpp": "^3.1.0", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/experimental-utils": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.31.0.tgz", - "integrity": "sha512-Hld+EQiKLMppgKKkdUsLeVIeEOrwKc2G983NmznY/r5/ZtZCDvIOXnXtwqJIgYz/ymsy7n7RGvMyrzf1WaSQrw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.7", - "@typescript-eslint/scope-manager": "4.31.0", - "@typescript-eslint/types": "4.31.0", - "@typescript-eslint/typescript-estree": "4.31.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - } - }, - "@typescript-eslint/parser": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.31.0.tgz", - "integrity": "sha512-oWbzvPh5amMuTmKaf1wp0ySxPt2ZXHnFQBN2Szu1O//7LmOvgaKTCIDNLK2NvzpmVd5A2M/1j/rujBqO37hj3w==", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "4.31.0", - "@typescript-eslint/types": "4.31.0", - "@typescript-eslint/typescript-estree": "4.31.0", - "debug": "^4.3.1" + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@typescript-eslint/scope-manager": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.31.0.tgz", - "integrity": "sha512-LJ+xtl34W76JMRLjbaQorhR0hfRAlp3Lscdiz9NeI/8i+q0hdBZ7BsiYieLoYWqy+AnRigaD3hUwPFugSzdocg==", + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true, - "requires": { - "@typescript-eslint/types": "4.31.0", - "@typescript-eslint/visitor-keys": "4.31.0" - } + "license": "ISC" }, - "@typescript-eslint/types": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.31.0.tgz", - "integrity": "sha512-9XR5q9mk7DCXgXLS7REIVs+BaAswfdHhx91XqlJklmqWpTALGjygWVIb/UnLh4NWhfwhR5wNe1yTyCInxVhLqQ==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.31.0.tgz", - "integrity": "sha512-QHl2014t3ptg+xpmOSSPn5hm4mY8D4s97ftzyk9BZ8RxYQ3j73XcwuijnJ9cMa6DO4aLXeo8XS3z1omT9LA/Eg==", + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, - "requires": { - "@typescript-eslint/types": "4.31.0", - "@typescript-eslint/visitor-keys": "4.31.0", - "debug": "^4.3.1", - "globby": "^11.0.3", - "is-glob": "^4.0.1", - "semver": "^7.3.5", - "tsutils": "^3.21.0" + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" } }, - "@typescript-eslint/visitor-keys": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.31.0.tgz", - "integrity": "sha512-HUcRp2a9I+P21+O21yu3ezv3GEPGjyGiXoEUQwZXjR8UxRApGeLyWH4ZIIUSalE28aG4YsV6GjtaAVB3QKOu0w==", + "node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", "dev": true, - "requires": { - "@typescript-eslint/types": "4.31.0", - "eslint-visitor-keys": "^2.0.0" + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" } }, - "abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", - "dev": true - }, - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - }, - "acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" } }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} - }, - "acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "node_modules/istanbul-lib-source-maps": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz", + "integrity": "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==", "dev": true, - "requires": { - "debug": "4" + "license": "BSD-3-Clause", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.23", + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0" + }, + "engines": { + "node": ">=10" } }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "node_modules/istanbul-reports": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "ajv": { - "version": "8.6.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz", - "integrity": "sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" } }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "node_modules/jest": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-30.2.0.tgz", + "integrity": "sha512-F26gjC0yWN8uAA5m5Ss8ZQf5nDHWGlN/xWZIh8S5SRbsEKBovwZhxGd6LJlbZYxBgCYOtreSUyb8hpXyGC5O4A==", "dev": true, - "requires": { - "type-fest": "^0.21.3" - }, + "license": "MIT", "dependencies": { - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true + "@jest/core": "30.2.0", + "@jest/types": "30.2.0", + "import-local": "^3.2.0", + "jest-cli": "30.2.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true } } }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/jest-changed-files": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-30.2.0.tgz", + "integrity": "sha512-L8lR1ChrRnSdfeOvTrwZMlnWV8G/LLjQ0nG9MBclwWZidA2N5FviRki0Bvh20WRMOX31/JYvzdqTJrk5oBdydQ==", "dev": true, - "requires": { - "color-convert": "^2.0.1" + "license": "MIT", + "dependencies": { + "execa": "^5.1.1", + "jest-util": "30.2.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "node_modules/jest-circus": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-30.2.0.tgz", + "integrity": "sha512-Fh0096NC3ZkFx05EP2OXCxJAREVxj1BcW/i6EWqqymcgYKWjyyDpral3fMxVcHXg6oZM7iULer9wGRFvfpl+Tg==", "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "license": "MIT", + "dependencies": { + "@jest/environment": "30.2.0", + "@jest/expect": "30.2.0", + "@jest/test-result": "30.2.0", + "@jest/types": "30.2.0", + "@types/node": "*", + "chalk": "^4.1.2", + "co": "^4.6.0", + "dedent": "^1.6.0", + "is-generator-fn": "^2.1.0", + "jest-each": "30.2.0", + "jest-matcher-utils": "30.2.0", + "jest-message-util": "30.2.0", + "jest-runtime": "30.2.0", + "jest-snapshot": "30.2.0", + "jest-util": "30.2.0", + "p-limit": "^3.1.0", + "pretty-format": "30.2.0", + "pure-rand": "^7.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.6" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true - }, - "babel-jest": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.4.2.tgz", - "integrity": "sha512-MADrjb3KBO2eyZCAc6QaJg6RT5u+6oEdDyHO5HEalnpwQ6LrhTsQF2Kj1Wnz2t6UPXIXPk18dSXXOT0wF5yTxA==", - "dev": true, - "requires": { - "@jest/transform": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^27.4.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" + "node_modules/jest-cli": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-30.2.0.tgz", + "integrity": "sha512-Os9ukIvADX/A9sLt6Zse3+nmHtHaE6hqOsjQtNiugFTbKRHYIYtZXNGNK9NChseXy7djFPjndX1tL0sCTlfpAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "30.2.0", + "@jest/test-result": "30.2.0", + "@jest/types": "30.2.0", + "chalk": "^4.1.2", + "exit-x": "^0.2.2", + "import-local": "^3.2.0", + "jest-config": "30.2.0", + "jest-util": "30.2.0", + "jest-validate": "30.2.0", + "yargs": "^17.7.2" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "requires": { - "@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" + "node_modules/jest-config": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-30.2.0.tgz", + "integrity": "sha512-g4WkyzFQVWHtu6uqGmQR4CQxz/CH3yDSlhzXMWzNjDx843gYjReZnMRanjRCq5XZFuQrGDxgUaiYWE8BRfVckA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.27.4", + "@jest/get-type": "30.1.0", + "@jest/pattern": "30.0.1", + "@jest/test-sequencer": "30.2.0", + "@jest/types": "30.2.0", + "babel-jest": "30.2.0", + "chalk": "^4.1.2", + "ci-info": "^4.2.0", + "deepmerge": "^4.3.1", + "glob": "^10.3.10", + "graceful-fs": "^4.2.11", + "jest-circus": "30.2.0", + "jest-docblock": "30.2.0", + "jest-environment-node": "30.2.0", + "jest-regex-util": "30.0.1", + "jest-resolve": "30.2.0", + "jest-runner": "30.2.0", + "jest-util": "30.2.0", + "jest-validate": "30.2.0", + "micromatch": "^4.0.8", + "parse-json": "^5.2.0", + "pretty-format": "30.2.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" }, - "dependencies": { - "istanbul-lib-instrument": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", - "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", - "dev": true, - "requires": { - "@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": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "esbuild-register": ">=3.4.0", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "esbuild-register": { + "optional": true }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true + "ts-node": { + "optional": true } } }, - "babel-plugin-jest-hoist": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.4.0.tgz", - "integrity": "sha512-Jcu7qS4OX5kTWBc45Hz7BMmgXuJqRnhatqpUhnzGC3OBYpOmf2tv6jFNwZpwM7wU7MUuv2r9IPS/ZlYOuburVw==", + "node_modules/jest-diff": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.2.0.tgz", + "integrity": "sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==", "dev": true, - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" + "license": "MIT", + "dependencies": { + "@jest/diff-sequences": "30.0.1", + "@jest/get-type": "30.1.0", + "chalk": "^4.1.2", + "pretty-format": "30.2.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "node_modules/jest-docblock": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-30.2.0.tgz", + "integrity": "sha512-tR/FFgZKS1CXluOQzZvNH3+0z9jXr3ldGSD8bhyuxvlVUwbeLOGynkunvlTMxchC5urrKndYiwCFC0DLVjpOCA==", "dev": true, - "requires": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@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-top-level-await": "^7.8.3" + "license": "MIT", + "dependencies": { + "detect-newline": "^3.1.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "babel-preset-jest": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.4.0.tgz", - "integrity": "sha512-NK4jGYpnBvNxcGo7/ZpZJr51jCGT+3bwwpVIDY2oNfTxJJldRtB4VAcYdgp1loDE50ODuTu+yBjpMAswv5tlpg==", + "node_modules/jest-each": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-30.2.0.tgz", + "integrity": "sha512-lpWlJlM7bCUf1mfmuqTA8+j2lNURW9eNafOy99knBM01i5CQeY5UH1vZjgT9071nDJac1M4XsbyI44oNOdhlDQ==", "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^27.4.0", - "babel-preset-current-node-syntax": "^1.0.0" + "license": "MIT", + "dependencies": { + "@jest/get-type": "30.1.0", + "@jest/types": "30.2.0", + "chalk": "^4.1.2", + "jest-util": "30.2.0", + "pretty-format": "30.2.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/jest-environment-node": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-30.2.0.tgz", + "integrity": "sha512-ElU8v92QJ9UrYsKrxDIKCxu6PfNj4Hdcktcn0JX12zqNdqWHB0N+hwOnnBBXvjLd2vApZtuLUGs1QSY+MsXoNA==", "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "license": "MIT", + "dependencies": { + "@jest/environment": "30.2.0", + "@jest/fake-timers": "30.2.0", + "@jest/types": "30.2.0", + "@types/node": "*", + "jest-mock": "30.2.0", + "jest-util": "30.2.0", + "jest-validate": "30.2.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "node_modules/jest-haste-map": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-30.2.0.tgz", + "integrity": "sha512-sQA/jCb9kNt+neM0anSj6eZhLZUIhQgwDt7cPGjumgLM4rXsfb9kpnlacmvZz3Q5tb80nS+oG/if+NBKrHC+Xw==", "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true - }, - "browserslist": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.18.1.tgz", - "integrity": "sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001280", - "electron-to-chromium": "^1.3.896", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" + "license": "MIT", + "dependencies": { + "@jest/types": "30.2.0", + "@types/node": "*", + "anymatch": "^3.1.3", + "fb-watchman": "^2.0.2", + "graceful-fs": "^4.2.11", + "jest-regex-util": "30.0.1", + "jest-util": "30.2.0", + "jest-worker": "30.2.0", + "micromatch": "^4.0.8", + "walker": "^1.0.8" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.3" } }, - "bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "node_modules/jest-leak-detector": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-30.2.0.tgz", + "integrity": "sha512-M6jKAjyzjHG0SrQgwhgZGy9hFazcudwCNovY/9HPIicmNSBuockPSedAP9vlPK6ONFJ1zfyH/M2/YYJxOz5cdQ==", "dev": true, - "requires": { - "fast-json-stable-stringify": "2.x" + "license": "MIT", + "dependencies": { + "@jest/get-type": "30.1.0", + "pretty-format": "30.2.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "node_modules/jest-matcher-utils": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.2.0.tgz", + "integrity": "sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg==", "dev": true, - "requires": { - "node-int64": "^0.4.0" + "license": "MIT", + "dependencies": { + "@jest/get-type": "30.1.0", + "chalk": "^4.1.2", + "jest-diff": "30.2.0", + "pretty-format": "30.2.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "builtin-modules": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", - "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", - "dev": true - }, - "call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", - "dev": true - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001284", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001284.tgz", - "integrity": "sha512-t28SKa7g6kiIQi6NHeOcKrOrGMzCRrXvlasPwWC26TH2QNdglgzQIRUuJ0cR3NeQPH+5jpuveeeSFDLm2zbkEw==", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "node_modules/jest-message-util": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.2.0.tgz", + "integrity": "sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@jest/types": "30.2.0", + "@types/stack-utils": "^2.0.3", + "chalk": "^4.1.2", + "graceful-fs": "^4.2.11", + "micromatch": "^4.0.8", + "pretty-format": "30.2.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.6" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true - }, - "ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", - "dev": true - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "node_modules/jest-mock": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.2.0.tgz", + "integrity": "sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw==", "dev": true, - "requires": { - "restore-cursor": "^3.1.0" + "license": "MIT", + "dependencies": { + "@jest/types": "30.2.0", + "@types/node": "*", + "jest-util": "30.2.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "cli-truncate": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, - "requires": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" + "license": "MIT", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } } }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "node_modules/jest-regex-util": { + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-30.0.1.tgz", + "integrity": "sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==", "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "license": "MIT", + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, - "collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" + "node_modules/jest-resolve": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-30.2.0.tgz", + "integrity": "sha512-TCrHSxPlx3tBY3hWNtRQKbtgLhsXa1WmbJEqBlTBrGafd5fiQFByy2GNCEoGR+Tns8d15GaL9cxEzKOO3GEb2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2", + "graceful-fs": "^4.2.11", + "jest-haste-map": "30.2.0", + "jest-pnp-resolver": "^1.2.3", + "jest-util": "30.2.0", + "jest-validate": "30.2.0", + "slash": "^3.0.0", + "unrs-resolver": "^1.7.11" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "node_modules/jest-resolve-dependencies": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-30.2.0.tgz", + "integrity": "sha512-xTOIGug/0RmIe3mmCqCT95yO0vj6JURrn1TKWlNbhiAefJRWINNPgwVkrVgt/YaerPzY3iItufd80v3lOrFJ2w==", "dev": true, - "requires": { - "delayed-stream": "~1.0.0" + "license": "MIT", + "dependencies": { + "jest-regex-util": "30.0.1", + "jest-snapshot": "30.2.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "commander": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.1.0.tgz", - "integrity": "sha512-mf45ldcuHSYShkplHHGKWb4TrmwQadxOn7v4WuhDJy0ZVoY5JFajaRDKD0PNe5qXzBX0rhovjTnP6Kz9LETcuA==", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "node_modules/jest-runner": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-30.2.0.tgz", + "integrity": "sha512-PqvZ2B2XEyPEbclp+gV6KO/F1FIFSbIwewRgmROCMBo/aZ6J1w8Qypoj2pEOcg3G2HzLlaP6VUtvwCI8dM3oqQ==", "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - }, + "license": "MIT", "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } + "@jest/console": "30.2.0", + "@jest/environment": "30.2.0", + "@jest/test-result": "30.2.0", + "@jest/transform": "30.2.0", + "@jest/types": "30.2.0", + "@types/node": "*", + "chalk": "^4.1.2", + "emittery": "^0.13.1", + "exit-x": "^0.2.2", + "graceful-fs": "^4.2.11", + "jest-docblock": "30.2.0", + "jest-environment-node": "30.2.0", + "jest-haste-map": "30.2.0", + "jest-leak-detector": "30.2.0", + "jest-message-util": "30.2.0", + "jest-resolve": "30.2.0", + "jest-runtime": "30.2.0", + "jest-util": "30.2.0", + "jest-watcher": "30.2.0", + "jest-worker": "30.2.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", - "dev": true, - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" + "node_modules/jest-runtime": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-30.2.0.tgz", + "integrity": "sha512-p1+GVX/PJqTucvsmERPMgCPvQJpFt4hFbM+VN3n8TMo47decMUcJbt+rgzwrEme0MQUA/R+1de2axftTHkKckg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "30.2.0", + "@jest/fake-timers": "30.2.0", + "@jest/globals": "30.2.0", + "@jest/source-map": "30.0.1", + "@jest/test-result": "30.2.0", + "@jest/transform": "30.2.0", + "@jest/types": "30.2.0", + "@types/node": "*", + "chalk": "^4.1.2", + "cjs-module-lexer": "^2.1.0", + "collect-v8-coverage": "^1.0.2", + "glob": "^10.3.10", + "graceful-fs": "^4.2.11", + "jest-haste-map": "30.2.0", + "jest-message-util": "30.2.0", + "jest-mock": "30.2.0", + "jest-regex-util": "30.0.1", + "jest-resolve": "30.2.0", + "jest-snapshot": "30.2.0", + "jest-util": "30.2.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true + "node_modules/jest-snapshot": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-30.2.0.tgz", + "integrity": "sha512-5WEtTy2jXPFypadKNpbNkZ72puZCa6UjSr/7djeecHWOu7iYhSXSnHScT8wBz3Rn8Ena5d5RYRcsyKIeqG1IyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.27.4", + "@babel/generator": "^7.27.5", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/plugin-syntax-typescript": "^7.27.1", + "@babel/types": "^7.27.3", + "@jest/expect-utils": "30.2.0", + "@jest/get-type": "30.1.0", + "@jest/snapshot-utils": "30.2.0", + "@jest/transform": "30.2.0", + "@jest/types": "30.2.0", + "babel-preset-current-node-syntax": "^1.2.0", + "chalk": "^4.1.2", + "expect": "30.2.0", + "graceful-fs": "^4.2.11", + "jest-diff": "30.2.0", + "jest-matcher-utils": "30.2.0", + "jest-message-util": "30.2.0", + "jest-util": "30.2.0", + "pretty-format": "30.2.0", + "semver": "^7.7.2", + "synckit": "^0.11.8" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } }, - "cross-fetch": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz", - "integrity": "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==", + "node_modules/jest-util": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.2.0.tgz", + "integrity": "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==", "dev": true, - "requires": { - "node-fetch": "2.6.1" - }, + "license": "MIT", "dependencies": { - "node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", - "dev": true - } + "@jest/types": "30.2.0", + "@types/node": "*", + "chalk": "^4.1.2", + "ci-info": "^4.2.0", + "graceful-fs": "^4.2.11", + "picomatch": "^4.0.2" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "node_modules/jest-validate": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-30.2.0.tgz", + "integrity": "sha512-FBGWi7dP2hpdi8nBoWxSsLvBFewKAg0+uSQwBaof4Y4DPgBabXgpSYC5/lR7VmnIlSpASmCi/ntRWPbv7089Pw==", "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "license": "MIT", + "dependencies": { + "@jest/get-type": "30.1.0", + "@jest/types": "30.2.0", + "camelcase": "^6.3.0", + "chalk": "^4.1.2", + "leven": "^3.1.0", + "pretty-format": "30.2.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true - }, - "cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, - "requires": { - "cssom": "~0.3.6" + "license": "MIT", + "engines": { + "node": ">=10" }, - "dependencies": { - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "node_modules/jest-watcher": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-30.2.0.tgz", + "integrity": "sha512-PYxa28dxJ9g777pGm/7PrbnMeA0Jr7osHP9bS7eJy9DuAjMgdGtxgf0uKMyoIsTWAkIbUW5hSDdJ3urmgXBqxg==", "dev": true, - "requires": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" + "license": "MIT", + "dependencies": { + "@jest/test-result": "30.2.0", + "@jest/types": "30.2.0", + "@types/node": "*", + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "emittery": "^0.13.1", + "jest-util": "30.2.0", + "string-length": "^4.0.2" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "node_modules/jest-worker": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-30.2.0.tgz", + "integrity": "sha512-0Q4Uk8WF7BUwqXHuAjc23vmopWJw5WH7w2tqBoUOZpOjW/ZnR44GXXd1r82RvnmI2GZge3ivrYXk/BE2+VtW2g==", "dev": true, - "requires": { - "ms": "2.1.2" + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@ungap/structured-clone": "^1.3.0", + "jest-util": "30.2.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.1.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "decimal.js": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", - "dev": true - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true - }, - "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", - "dev": true - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true - }, - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true - }, - "diff-sequences": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.4.0.tgz", - "integrity": "sha512-YqiQzkrsmHMH5uuh8OdQFU9/ZpADnwzml8z0O5HvRNda+5UZsaX/xN+AAxfR2hWq1Y7HZnAzO9J5lJXOuDz2Ww==", - "dev": true - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, - "requires": { - "path-type": "^4.0.0" + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true, - "requires": { - "esutils": "^2.0.2" + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "dev": true, - "requires": { - "webidl-conversions": "^5.0.0" + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" }, - "dependencies": { - "webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "dev": true - } + "engines": { + "node": ">=6" } }, - "dtsgenerator": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/dtsgenerator/-/dtsgenerator-3.13.0.tgz", - "integrity": "sha512-jGCEbUAr7sUubmuYHLx2MAEaWc62rWNMav7/+ZEMMPdhvAld6RTQ5EyU9b6OhP9kJo/ZH0vMyeY9xpIEcL8dFg==", + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "dev": true, - "requires": { - "commander": "^8.1.0", - "cross-fetch": "^3.1.4", - "debug": "^4.3.2", - "glob": "^7.1.7", - "https-proxy-agent": "^5.0.0", - "js-yaml": "^4.1.0", - "tslib": "^2.3.1", - "typescript": "^4.4.2" - } + "license": "MIT" }, - "electron-to-chromium": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.11.tgz", - "integrity": "sha512-2OhsaYgsWGhWjx2et8kaUcdktPbBGjKM2X0BReUCKcSCPttEY+hz2zie820JLbttU8jwL92+JJysWwkut3wZgA==", - "dev": true + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" }, - "emittery": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", - "dev": true + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, - "requires": { - "ansi-colors": "^4.1.1" + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" } }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", "dev": true, - "requires": { - "is-arrayish": "^0.2.1" + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "esbuild": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.2.tgz", - "integrity": "sha512-l076A6o/PIgcyM24s0dWmDI/b8RQf41uWoJu9I0M71CtW/YSw5T5NUeXxs5lo2tFQD+O4CW4nBHJXx3OY5NpXg==", + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, - "requires": { - "esbuild-android-arm64": "0.14.2", - "esbuild-darwin-64": "0.14.2", - "esbuild-darwin-arm64": "0.14.2", - "esbuild-freebsd-64": "0.14.2", - "esbuild-freebsd-arm64": "0.14.2", - "esbuild-linux-32": "0.14.2", - "esbuild-linux-64": "0.14.2", - "esbuild-linux-arm": "0.14.2", - "esbuild-linux-arm64": "0.14.2", - "esbuild-linux-mips64le": "0.14.2", - "esbuild-linux-ppc64le": "0.14.2", - "esbuild-netbsd-64": "0.14.2", - "esbuild-openbsd-64": "0.14.2", - "esbuild-sunos-64": "0.14.2", - "esbuild-windows-32": "0.14.2", - "esbuild-windows-64": "0.14.2", - "esbuild-windows-arm64": "0.14.2" + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" } }, - "esbuild-android-arm64": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.2.tgz", - "integrity": "sha512-hEixaKMN3XXCkoe+0WcexO4CcBVU5DCSUT+7P8JZiWZCbAjSkc9b6Yz2X5DSfQmRCtI/cQRU6TfMYrMQ5NBfdw==", + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true, - "optional": true + "license": "MIT", + "engines": { + "node": ">=6" + } }, - "esbuild-darwin-64": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.2.tgz", - "integrity": "sha512-Uq8t0cbJQkxkQdbUfOl2wZqZ/AtLZjvJulR1HHnc96UgyzG9YlCLSDMiqjM+NANEy7/zzvwKJsy3iNC9wwqLJA==", + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, - "optional": true + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } }, - "esbuild-darwin-arm64": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.2.tgz", - "integrity": "sha512-619MSa17sr7YCIrUj88KzQu2ESA4jKYtIYfLU/smX6qNgxQt3Y/gzM4s6sgJ4fPQzirvmXgcHv1ZNQAs/Xh48A==", + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true, - "optional": true + "license": "MIT" }, - "esbuild-freebsd-64": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.2.tgz", - "integrity": "sha512-aP6FE/ZsChZpUV6F3HE3x1Pz0paoYXycJ7oLt06g0G9dhJKknPawXCqQg/WMyD+ldCEZfo7F1kavenPdIT/SGQ==", + "node_modules/lint-staged": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-11.0.0.tgz", + "integrity": "sha512-3rsRIoyaE8IphSUtO1RVTFl1e0SLBtxxUOPBtHxQgBHS5/i6nqvjcUfNioMa4BU9yGnPzbO+xkfLtXtxBpCzjw==", "dev": true, - "optional": true + "license": "MIT", + "dependencies": { + "chalk": "^4.1.1", + "cli-truncate": "^2.1.0", + "commander": "^7.2.0", + "cosmiconfig": "^7.0.0", + "debug": "^4.3.1", + "dedent": "^0.7.0", + "enquirer": "^2.3.6", + "execa": "^5.0.0", + "listr2": "^3.8.2", + "log-symbols": "^4.1.0", + "micromatch": "^4.0.4", + "normalize-path": "^3.0.0", + "please-upgrade-node": "^3.2.0", + "string-argv": "0.3.1", + "stringify-object": "^3.3.0" + }, + "bin": { + "lint-staged": "bin/lint-staged.js" + }, + "funding": { + "url": "https://opencollective.com/lint-staged" + } }, - "esbuild-freebsd-arm64": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.2.tgz", - "integrity": "sha512-LSm98WTb1QIhyS83+Po0KTpZNdd2XpVpI9ua5rLWqKWbKeNRFwOsjeiuwBaRNc+O32s9oC2ZMefETxHBV6VNkQ==", + "node_modules/lint-staged/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "dev": true, - "optional": true + "license": "MIT", + "engines": { + "node": ">= 10" + } }, - "esbuild-linux-32": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.2.tgz", - "integrity": "sha512-8VxnNEyeUbiGflTKcuVc5JEPTqXfsx2O6ABwUbfS1Hp26lYPRPC7pKQK5Dxa0MBejGc50jy7YZae3EGQUQ8EkQ==", + "node_modules/lint-staged/node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", "dev": true, - "optional": true + "license": "MIT" }, - "esbuild-linux-64": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.2.tgz", - "integrity": "sha512-4bzMS2dNxOJoFIiHId4w+tqQzdnsch71JJV1qZnbnErSFWcR9lRgpSqWnTTFtv6XM+MvltRzSXC5wQ7AEBY6Hg==", + "node_modules/listr2": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz", + "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==", "dev": true, - "optional": true + "license": "MIT", + "dependencies": { + "cli-truncate": "^2.1.0", + "colorette": "^2.0.16", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rfdc": "^1.3.0", + "rxjs": "^7.5.1", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "enquirer": ">= 2.3.0 < 3" + }, + "peerDependenciesMeta": { + "enquirer": { + "optional": true + } + } }, - "esbuild-linux-arm": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.2.tgz", - "integrity": "sha512-PaylahvMHhH8YMfJPMKEqi64qA0Su+d4FNfHKvlKes/2dUe4QxgbwXT9oLVgy8iJdcFMrO7By4R8fS8S0p8aVQ==", + "node_modules/listr2/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "optional": true + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "esbuild-linux-arm64": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.2.tgz", - "integrity": "sha512-RlIVp0RwJrdtasDF1vTFueLYZ8WuFzxoQ1OoRFZOTyJHCGCNgh7xJIC34gd7B7+RT0CzLBB4LcM5n0LS+hIoww==", + "node_modules/listr2/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true, - "optional": true + "license": "MIT" }, - "esbuild-linux-mips64le": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.2.tgz", - "integrity": "sha512-Fdwrq2roFnO5oetIiUQQueZ3+5soCxBSJswg3MvYaXDomj47BN6oAWMZgLrFh1oVrtWrxSDLCJBenYdbm2s+qQ==", + "node_modules/listr2/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, - "optional": true + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } }, - "esbuild-linux-ppc64le": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.2.tgz", - "integrity": "sha512-vxptskw8JfCDD9QqpRO0XnsM1osuWeRjPaXX1TwdveLogYsbdFtcuiuK/4FxGiNMUr1ojtnCS2rMPbY8puc5NA==", + "node_modules/listr2/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "optional": true + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } }, - "esbuild-netbsd-64": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.2.tgz", - "integrity": "sha512-I8+LzYK5iSNpspS9eCV9sW67Rj8FgMHimGri4mKiGAmN0pNfx+hFX146rYtzGtewuxKtTsPywWteHx+hPRLDsw==", + "node_modules/listr2/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, - "optional": true + "license": "MIT", + "dependencies": { + "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" + } }, - "esbuild-openbsd-64": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.2.tgz", - "integrity": "sha512-120HgMe9elidWUvM2E6mMf0csrGwx8sYDqUIJugyMy1oHm+/nT08bTAVXuwYG/rkMIqsEO9AlMxuYnwR6En/3Q==", + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, - "optional": true + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "esbuild-sunos-64": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.2.tgz", - "integrity": "sha512-Q3xcf9Uyfra9UuCFxoLixVvdigo0daZaKJ97TL2KNA4bxRUPK18wwGUk3AxvgDQZpRmg82w9PnkaNYo7a+24ow==", + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true, - "optional": true + "license": "MIT" }, - "esbuild-windows-32": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.2.tgz", - "integrity": "sha512-TW7O49tPsrq+N1sW8mb3m24j/iDGa4xzAZH4wHWwoIzgtZAYPKC0hpIhufRRG/LA30bdMChO9pjJZ5mtcybtBQ==", + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", "dev": true, - "optional": true + "license": "MIT" }, - "esbuild-windows-64": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.2.tgz", - "integrity": "sha512-Rym6ViMNmi1E2QuQMWy0AFAfdY0wGwZD73BnzlsQBX5hZBuy/L+Speh7ucUZ16gwsrMM9v86icZUDrSN/lNBKg==", + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true, - "optional": true + "license": "MIT" }, - "esbuild-windows-arm64": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.2.tgz", - "integrity": "sha512-ZrLbhr0vX5Em/P1faMnHucjVVWPS+m3tktAtz93WkMZLmbRJevhiW1y4CbulBd2z0MEdXZ6emDa1zFHq5O5bSA==", + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, - "optional": true - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "escape-string-regexp": { + "node_modules/log-update": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", "dev": true, - "requires": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, + "license": "MIT", "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - } + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "node_modules/log-update/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "requires": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } - } - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - } + "license": "MIT", + "engines": { + "node": ">=8" } }, - "eslint-config-prettier": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz", - "integrity": "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==", + "node_modules/log-update/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true, - "requires": {} + "license": "MIT" }, - "eslint-plugin-prettier": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz", - "integrity": "sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g==", + "node_modules/log-update/node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, - "requires": { - "prettier-linter-helpers": "^1.0.0" + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "node_modules/log-update/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" } }, - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "node_modules/log-update/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - }, - "espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", - "dev": true, - "requires": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" } }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, - "requires": { - "estraverse": "^5.1.0" - }, + "license": "ISC", "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } + "yallist": "^3.0.2" } }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "node_modules/magic-string": { + "version": "0.30.19", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.19.tgz", + "integrity": "sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==", "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, + "license": "MIT", "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } + "@jridgewell/sourcemap-codec": "^1.5.5" } }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, - "requires": { - "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" + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true, + "license": "ISC" }, - "expect": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.4.2.tgz", - "integrity": "sha512-BjAXIDC6ZOW+WBFNg96J22D27Nq5ohn+oGcuP2rtOtcjuxNoV9McpQ60PcQWhdFOSBIQdR72e+4HdnbZTFSTyg==", + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "ansi-styles": "^5.0.0", - "jest-get-type": "^27.4.0", - "jest-matcher-utils": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-regex-util": "^27.4.0" - }, + "license": "BSD-3-Clause", "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } + "tmpl": "1.0.5" } }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "fast-diff": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", - "dev": true - }, - "fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "license": "MIT", + "engines": { + "node": ">= 0.4" } }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" }, - "fastq": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.12.0.tgz", - "integrity": "sha512-VNX0QkHK3RsXVKr9KrlUv/FoTa0NdbYoHHl7uXHv2rzyHSlxjdNAKug2twd9luJxpcyNeAgf5iPPMutJO67Dfg==", + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, - "requires": { - "reusify": "^1.0.4" + "license": "MIT", + "engines": { + "node": ">= 8" } }, - "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, - "requires": { - "bser": "2.1.1" + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" } }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, - "requires": { - "flat-cache": "^3.0.4" + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true, - "requires": { - "to-regex-range": "^5.0.1" + "license": "MIT", + "engines": { + "node": ">= 0.6" } }, - "find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" } }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "license": "MIT", + "engines": { + "node": ">=6" } }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "flatted": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", - "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", - "dev": true - }, - "form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" } }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", - "dev": true - }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true + "license": "MIT" }, - "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "node_modules/napi-postinstall": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.3.tgz", + "integrity": "sha512-uTp172LLXSxuSYHv/kou+f6KW3SMppU9ivthaVTXian9sOt3XM/zHYHpRZiLgQoxeWfYUnslNWQHF1+G71xcow==", "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "license": "MIT", + "bin": { + "napi-postinstall": "lib/cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/napi-postinstall" } }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true, - "requires": { - "is-glob": "^4.0.1" - } + "license": "MIT" }, - "globals": { - "version": "13.11.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", - "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true, - "requires": { - "type-fest": "^0.20.2" - } + "license": "MIT" }, - "globby": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", - "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - }, + "license": "MIT" + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "license": "MIT", "dependencies": { - "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true } } }, - "graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", "dev": true, - "requires": { - "function-bind": "^1.1.1" - } + "license": "MIT" }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "node_modules/node-releases": { + "version": "2.0.21", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.21.tgz", + "integrity": "sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==", + "dev": true, + "license": "MIT" }, - "html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, - "requires": { - "whatwg-encoding": "^1.0.5" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "http-proxy-agent": { + "node_modules/npm-run-path": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" + "license": "ISC", + "dependencies": { + "wrappy": "1" } }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true - }, - "husky": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/husky/-/husky-6.0.0.tgz", - "integrity": "sha512-SQS2gDTB7tBN486QSoKPKQItZw97BMOd+Kdb6ghfpBc0yXyzrddI0oDV5MkDAbuB4X2mO3/nj60TRMcYxwzZeQ==", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "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": ">= 0.8.0" + } }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" + "license": "MIT", + "engines": { + "node": ">=4" } }, - "import-local": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.3.tgz", - "integrity": "sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA==", + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "indent-string": { + "node_modules/p-map": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-core-module": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz", - "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==", + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, - "requires": { - "has": "^1.0.3" + "license": "MIT", + "engines": { + "node": ">=6" } }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } }, - "is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "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" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, - "requires": { - "is-extglob": "^2.1.1" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true - }, - "is-potential-custom-element-name": { + "node_modules/path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true - }, - "is-reference": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", - "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, - "requires": { - "@types/estree": "*" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", - "dev": true - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, - "requires": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "license": "MIT", + "engines": { + "node": ">=8" } }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - } + "license": "MIT" }, - "istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, + "license": "BlueOak-1.0.0", "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "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" } }, - "istanbul-reports": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.1.tgz", - "integrity": "sha512-q1kvhAXWSsXfMjCdNHNPKZZv94OlspKnoGv+R9RGbnqOOQ0VbNfLFgQDVgi7hHenKsndGq3/o0OBdzDXthWcNw==", + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } + "license": "ISC" }, - "jest": { - "version": "27.4.3", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.4.3.tgz", - "integrity": "sha512-jwsfVABBzuN3Atm+6h6vIEpTs9+VApODLt4dk2qv1WMOpb1weI1IIZfuwpMiWZ62qvWj78MvdvMHIYdUfqrFaA==", + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, - "requires": { - "@jest/core": "^27.4.3", - "import-local": "^3.0.2", - "jest-cli": "^27.4.3" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "jest-changed-files": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.4.2.tgz", - "integrity": "sha512-/9x8MjekuzUQoPjDHbBiXbNEBauhrPU2ct7m8TfCg69ywt1y/N+yYwGh3gCpnqUS3klYWDU/lSNgv+JhoD2k1A==", + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "execa": "^5.0.0", - "throat": "^6.0.1" - } + "license": "ISC" }, - "jest-circus": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.4.2.tgz", - "integrity": "sha512-2ePUSru1BGMyzxsMvRfu+tNb+PW60rUyMLJBfw1Nrh5zC8RoTPfF+zbE0JToU31a6ZVe4nnrNKWYRzlghAbL0A==", + "node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, - "requires": { - "@jest/environment": "^27.4.2", - "@jest/test-result": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.4.2", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.4.2", - "jest-matcher-utils": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-runtime": "^27.4.2", - "jest-snapshot": "^27.4.2", - "jest-util": "^27.4.2", - "pretty-format": "^27.4.2", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "jest-cli": { - "version": "27.4.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.4.3.tgz", - "integrity": "sha512-zZSJBXNC/i8UnJPwcKWsqnhGgIF3uoTYP7th32Zej7KNQJdxzOMj+wCfy2Ox3kU7nXErJ36DtYyXDhfiqaiDRw==", + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", "dev": true, - "requires": { - "@jest/core": "^27.4.3", - "@jest/test-result": "^27.4.2", - "@jest/types": "^27.4.2", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "jest-config": "^27.4.3", - "jest-util": "^27.4.2", - "jest-validate": "^27.4.2", - "prompts": "^2.0.1", - "yargs": "^16.2.0" - }, - "dependencies": { - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "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" - } - } + "license": "MIT", + "engines": { + "node": ">= 6" } }, - "jest-config": { - "version": "27.4.3", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.4.3.tgz", - "integrity": "sha512-DQ10HTSqYtC2pO7s9j2jw+li4xUnm2wLYWH2o7K1ftB8NyvToHsXoLlXxtsGh3AW9gUQR6KY/4B7G+T/NswJBw==", + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^27.4.2", - "@jest/types": "^27.4.2", - "babel-jest": "^27.4.2", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "jest-circus": "^27.4.2", - "jest-environment-jsdom": "^27.4.3", - "jest-environment-node": "^27.4.2", - "jest-get-type": "^27.4.0", - "jest-jasmine2": "^27.4.2", - "jest-regex-util": "^27.4.0", - "jest-resolve": "^27.4.2", - "jest-runner": "^27.4.3", - "jest-util": "^27.4.2", - "jest-validate": "^27.4.2", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.2", - "slash": "^3.0.0" + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "jest-diff": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.4.2.tgz", - "integrity": "sha512-ujc9ToyUZDh9KcqvQDkk/gkbf6zSaeEg9AiBxtttXW59H/AcqEYp1ciXAtJp+jXWva5nAf/ePtSsgWwE5mqp4Q==", + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^27.4.0", - "jest-get-type": "^27.4.0", - "pretty-format": "^27.4.2" + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "jest-docblock": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.4.0.tgz", - "integrity": "sha512-7TBazUdCKGV7svZ+gh7C8esAnweJoG+SvcF6Cjqj4l17zA2q1cMwx2JObSioubk317H+cjcHgP+7fTs60paulg==", + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, - "requires": { - "detect-newline": "^3.0.0" + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" } }, - "jest-each": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.4.2.tgz", - "integrity": "sha512-53V2MNyW28CTruB3lXaHNk6PkiIFuzdOC9gR3C6j8YE/ACfrPnz+slB0s17AgU1TtxNzLuHyvNlLJ+8QYw9nBg==", + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "chalk": "^4.0.0", - "jest-get-type": "^27.4.0", - "jest-util": "^27.4.2", - "pretty-format": "^27.4.2" + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "jest-environment-jsdom": { - "version": "27.4.3", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.4.3.tgz", - "integrity": "sha512-x1AUVz3G14LpEJs7KIFUaTINT2n0unOUmvdAby3s/sldUpJJetOJifHo1O/EUQC5fNBowggwJbVulko18y6OWw==", + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, - "requires": { - "@jest/environment": "^27.4.2", - "@jest/fake-timers": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "jest-mock": "^27.4.2", - "jest-util": "^27.4.2", - "jsdom": "^16.6.0" + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" } }, - "jest-environment-node": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.4.2.tgz", - "integrity": "sha512-nzTZ5nJ+FabuZPH2YVci7SZIHpvtNRHPt8+vipLkCnAgXGjVzHm7XJWdnNqXbAkExIgiKeVEkVMNZOZE/LeiIg==", + "node_modules/please-upgrade-node": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", + "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", "dev": true, - "requires": { - "@jest/environment": "^27.4.2", - "@jest/fake-timers": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "jest-mock": "^27.4.2", - "jest-util": "^27.4.2" + "license": "MIT", + "dependencies": { + "semver-compare": "^1.0.0" } }, - "jest-get-type": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz", - "integrity": "sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==", - "dev": true - }, - "jest-haste-map": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.4.2.tgz", - "integrity": "sha512-foiyAEePORUN2eeJnOtcM1y8qW0ShEd9kTjWVL4sVaMcuCJM6gtHegvYPBRT0mpI/bs4ueThM90+Eoj2ncoNsA==", + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.4.0", - "jest-serializer": "^27.4.0", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.2", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - }, - "dependencies": { - "jest-worker": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.2.tgz", - "integrity": "sha512-0QMy/zPovLfUPyHuOuuU4E+kGACXXE84nRnq6lBVI9GJg5DCBiA97SATi+ZP8CpiJwEQy1oCPjRBf8AnLjN+Ag==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - } - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "license": "MIT", + "engines": { + "node": ">= 0.8.0" } }, - "jest-jasmine2": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.4.2.tgz", - "integrity": "sha512-VO/fyAJSH9u0THjbteFiL8qc93ufU+yW+bdieDc8tzTCWwlWzO53UHS5nFK1qmE8izb5Smkn+XHlVt6/l06MKQ==", + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "dev": true, - "requires": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^27.4.2", - "@jest/source-map": "^27.4.0", - "@jest/test-result": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.4.2", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.4.2", - "jest-matcher-utils": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-runtime": "^27.4.2", - "jest-snapshot": "^27.4.2", - "jest-util": "^27.4.2", - "pretty-format": "^27.4.2", - "throat": "^6.0.1" - } - }, - "jest-leak-detector": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.4.2.tgz", - "integrity": "sha512-ml0KvFYZllzPBJWDei3mDzUhyp/M4ubKebX++fPaudpe8OsxUE+m+P6ciVLboQsrzOCWDjE20/eXew9QMx/VGw==", - "dev": true, - "requires": { - "jest-get-type": "^27.4.0", - "pretty-format": "^27.4.2" - } - }, - "jest-matcher-utils": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.4.2.tgz", - "integrity": "sha512-jyP28er3RRtMv+fmYC/PKG8wvAmfGcSNproVTW2Y0P/OY7/hWUOmsPfxN1jOhM+0u2xU984u2yEagGivz9OBGQ==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^27.4.2", - "jest-get-type": "^27.4.0", - "pretty-format": "^27.4.2" + "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "jest-message-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.2.tgz", - "integrity": "sha512-OMRqRNd9E0DkBLZpFtZkAGYOXl6ZpoMtQJWTAREJKDOFa0M6ptB7L67tp+cszMBkvSgKOhNtQp2Vbcz3ZZKo/w==", + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.4.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.2", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, + "license": "MIT", "dependencies": { - "@babel/code-frame": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", - "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", - "dev": true, - "requires": { - "@babel/highlight": "^7.16.0" - } - } + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" } }, - "jest-mock": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.4.2.tgz", - "integrity": "sha512-PDDPuyhoukk20JrQKeofK12hqtSka7mWH0QQuxSNgrdiPsrnYYLS6wbzu/HDlxZRzji5ylLRULeuI/vmZZDrYA==", + "node_modules/pretty-format": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", + "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*" + "license": "MIT", + "dependencies": { + "@jest/schemas": "30.0.5", + "ansi-styles": "^5.2.0", + "react-is": "^18.3.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, - "requires": {} - }, - "jest-regex-util": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.4.0.tgz", - "integrity": "sha512-WeCpMpNnqJYMQoOjm1nTtsgbR4XHAk1u00qDoNBQoykM280+/TmgA5Qh5giC1ecy6a5d4hbSsHzpBtu5yvlbEg==", - "dev": true + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } }, - "jest-resolve": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.4.2.tgz", - "integrity": "sha512-d/zqPjxCzMqHlOdRTg8cTpO9jY+1/T74KazT8Ws/LwmwxV5sRMWOkiLjmzUCDj/5IqA5XHNK4Hkmlq9Kdpb9Sg==", + "node_modules/pump": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", + "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.4.2", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.4.2", - "jest-validate": "^27.4.2", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, - "jest-resolve-dependencies": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.4.2.tgz", - "integrity": "sha512-hb++cTpqvOWfU49MCP/JQkxmnrhKoAVqXWFjgYXswRSVGk8Q6bDTSvhbCeYXDtXaymY0y7WrrSIlKogClcKJuw==", + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "jest-regex-util": "^27.4.0", - "jest-snapshot": "^27.4.2" + "license": "MIT", + "engines": { + "node": ">=6" } }, - "jest-runner": { - "version": "27.4.3", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.4.3.tgz", - "integrity": "sha512-JgR6Om/j22Fd6ZUUIGTWNcCtuZVYbNrecb4k89W4UyFJoRtHpo2zMKWkmFFFJoqwWGrfrcPLnVBIgkJiTV3cyA==", + "node_modules/pure-rand": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-7.0.1.tgz", + "integrity": "sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ==", "dev": true, - "requires": { - "@jest/console": "^27.4.2", - "@jest/environment": "^27.4.2", - "@jest/test-result": "^27.4.2", - "@jest/transform": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-docblock": "^27.4.0", - "jest-environment-jsdom": "^27.4.3", - "jest-environment-node": "^27.4.2", - "jest-haste-map": "^27.4.2", - "jest-leak-detector": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-resolve": "^27.4.2", - "jest-runtime": "^27.4.2", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.2", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - }, - "dependencies": { - "jest-worker": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.2.tgz", - "integrity": "sha512-0QMy/zPovLfUPyHuOuuU4E+kGACXXE84nRnq6lBVI9GJg5DCBiA97SATi+ZP8CpiJwEQy1oCPjRBf8AnLjN+Ag==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - } + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" } - } + ], + "license": "MIT" }, - "jest-runtime": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.4.2.tgz", - "integrity": "sha512-eqPgcBaUNaw6j8T5M+dnfAEh6MIrh2YmtskCr9sl50QYpD22Sg+QqHw3J3nmaLzVMbBtOMHFFxLF0Qx8MsZVFQ==", - "dev": true, - "requires": { - "@jest/console": "^27.4.2", - "@jest/environment": "^27.4.2", - "@jest/globals": "^27.4.2", - "@jest/source-map": "^27.4.0", - "@jest/test-result": "^27.4.2", - "@jest/transform": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-mock": "^27.4.2", - "jest-regex-util": "^27.4.0", - "jest-resolve": "^27.4.2", - "jest-snapshot": "^27.4.2", - "jest-util": "^27.4.2", - "jest-validate": "^27.4.2", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^16.2.0" - }, - "dependencies": { - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "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" - } + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "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" }, - "jest-serializer": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.4.0.tgz", - "integrity": "sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ==", + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - } - }, - "jest-snapshot": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.4.2.tgz", - "integrity": "sha512-DI7lJlNIu6WSQ+esqhnJzEzU70+dV+cNjoF1c+j5FagWEd3KtOyZvVliAH0RWNQ6KSnAAnKSU0qxJ8UXOOhuUQ==", - "dev": true, - "requires": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/parser": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.4.2", - "graceful-fs": "^4.2.4", - "jest-diff": "^27.4.2", - "jest-get-type": "^27.4.0", - "jest-haste-map": "^27.4.2", - "jest-matcher-utils": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-resolve": "^27.4.2", - "jest-util": "^27.4.2", - "natural-compare": "^1.4.0", - "pretty-format": "^27.4.2", - "semver": "^7.3.2" + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" } }, - "jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - } + "license": "MIT" }, - "jest-validate": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.4.2.tgz", - "integrity": "sha512-hWYsSUej+Fs8ZhOm5vhWzwSLmVaPAxRy+Mr+z5MzeaHm9AxUpXdoVMEW4R86y5gOobVfBsMFLk4Rb+QkiEpx1A==", + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.4.0", - "leven": "^3.1.0", - "pretty-format": "^27.4.2" - }, "dependencies": { - "camelcase": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", - "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", - "dev": true - } + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" } }, - "jest-watcher": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.4.2.tgz", - "integrity": "sha512-NJvMVyyBeXfDezhWzUOCOYZrUmkSCiatpjpm+nFUid74OZEHk6aMLrZAukIiFDwdbqp6mTM6Ui1w4oc+8EobQg==", + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, - "requires": { - "@jest/test-result": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.4.2", - "string-length": "^4.0.1" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.1" + "node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "dev": true, - "requires": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - }, - "dependencies": { - "acorn": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", - "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==", - "dev": true - } + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" } }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, - "requires": { - "minimist": "^1.2.5" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "jsonfile": { + "node_modules/resolve-from": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, - "requires": { - "graceful-fs": "^4.1.6" + "license": "MIT", + "engines": { + "node": ">=4" } }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true - }, - "leven": { + "node_modules/restore-cursor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "node_modules/restore-cursor/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" + "license": "ISC" + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" } }, - "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", - "dev": true + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "dev": true, + "license": "MIT" }, - "lint-staged": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-11.0.0.tgz", - "integrity": "sha512-3rsRIoyaE8IphSUtO1RVTFl1e0SLBtxxUOPBtHxQgBHS5/i6nqvjcUfNioMa4BU9yGnPzbO+xkfLtXtxBpCzjw==", + "node_modules/rimraf": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.0.1.tgz", + "integrity": "sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==", "dev": true, - "requires": { - "chalk": "^4.1.1", - "cli-truncate": "^2.1.0", - "commander": "^7.2.0", - "cosmiconfig": "^7.0.0", - "debug": "^4.3.1", - "dedent": "^0.7.0", - "enquirer": "^2.3.6", - "execa": "^5.0.0", - "listr2": "^3.8.2", - "log-symbols": "^4.1.0", - "micromatch": "^4.0.4", - "normalize-path": "^3.0.0", - "please-upgrade-node": "^3.2.0", - "string-argv": "0.3.1", - "stringify-object": "^3.3.0" - }, + "license": "ISC", "dependencies": { - "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true - } + "glob": "^11.0.0", + "package-json-from-dist": "^1.0.0" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "listr2": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.11.1.tgz", - "integrity": "sha512-ZXQvQfmH9iWLlb4n3hh31yicXDxlzB0pE7MM1zu6kgbVL4ivEsO4H8IPh4E682sC8RjnYO9anose+zT52rrpyg==", + "node_modules/rimraf/node_modules/glob": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.3.tgz", + "integrity": "sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==", "dev": true, - "requires": { - "cli-truncate": "^2.1.0", - "colorette": "^1.2.2", - "log-update": "^4.0.0", - "p-map": "^4.0.0", - "rxjs": "^6.6.7", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" + "license": "ISC", + "dependencies": { + "foreground-child": "^3.3.1", + "jackspeak": "^4.1.1", + "minimatch": "^10.0.3", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/rimraf/node_modules/jackspeak": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.1.tgz", + "integrity": "sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==", "dev": true, - "requires": { - "p-locate": "^4.1.0" + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", - "dev": true - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", - "dev": true - }, - "log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "node_modules/rimraf/node_modules/lru-cache": { + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.2.tgz", + "integrity": "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==", "dev": true, - "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" + "license": "ISC", + "engines": { + "node": "20 || >=22" } }, - "log-update": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "node_modules/rimraf/node_modules/minimatch": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz", + "integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==", "dev": true, - "requires": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" - }, + "license": "ISC", "dependencies": { - "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } + "@isaacs/brace-expansion": "^5.0.0" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/rimraf/node_modules/path-scurry": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", "dev": true, - "requires": { - "yallist": "^4.0.0" + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "magic-string": { - "version": "0.25.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", - "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "node_modules/rollup": { + "version": "2.79.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz", + "integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==", "dev": true, - "requires": { - "sourcemap-codec": "^1.4.4" + "license": "MIT", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "node_modules/rollup-plugin-sourcemaps": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/rollup-plugin-sourcemaps/-/rollup-plugin-sourcemaps-0.6.3.tgz", + "integrity": "sha512-paFu+nT1xvuO1tPFYXGe+XnQvg4Hjqv/eIhG8i5EspfYYPBKL57X7iVbfv55aNVASg3dzWvES9dmWsL2KhfByw==", "dev": true, - "requires": { - "semver": "^6.0.0" - }, + "license": "MIT", "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true + "@rollup/pluginutils": "^3.0.9", + "source-map-resolve": "^0.6.0" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "@types/node": ">=10.0.0", + "rollup": ">=0.31.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true } } }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "node_modules/rollup-plugin-sourcemaps/node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", "dev": true, - "requires": { - "tmpl": "1.0.5" + "license": "MIT", + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" } }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "node_modules/rollup-plugin-sourcemaps/node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } + "license": "MIT" }, - "mime-db": { - "version": "1.49.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", - "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==", - "dev": true - }, - "mime-types": { - "version": "2.1.32", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", - "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", + "node_modules/rollup-plugin-sourcemaps/node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", "dev": true, - "requires": { - "mime-db": "1.49.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true + "license": "MIT" }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "node_modules/rollup-plugin-sourcemaps/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, - "requires": { - "brace-expansion": "^1.1.7" + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "node-fetch": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.2.tgz", - "integrity": "sha512-aLoxToI6RfZ+0NOjmWAgn9+LEd30YCkJKFSyWacNZdEKTit/ZMcKjGkTRo8uWEsnIb/hfKecNPEbln02PdWbcA==", - "dev": true - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", - "dev": true - }, - "node-modules-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", - "dev": true - }, - "node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", - "dev": true - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "node_modules/rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", "dev": true, - "requires": { - "path-key": "^3.0.0" + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0" } }, - "nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "node_modules/rollup-plugin-terser/node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", "dev": true, - "requires": { - "wrappy": "1" + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" } }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "node_modules/rollup-plugin-typescript2": { + "version": "0.36.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.36.0.tgz", + "integrity": "sha512-NB2CSQDxSe9+Oe2ahZbf+B4bh7pHwjV5L+RSYpCu7Q5ROuN94F9b6ioWwKfz3ueL3KTtmX4o2MUH2cgHDIEUsw==", "dev": true, - "requires": { - "mimic-fn": "^2.1.0" + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^4.1.2", + "find-cache-dir": "^3.3.2", + "fs-extra": "^10.0.0", + "semver": "^7.5.4", + "tslib": "^2.6.2" + }, + "peerDependencies": { + "rollup": ">=1.26.3", + "typescript": ">=2.4.0" } }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "node_modules/rollup-plugin-typescript2/node_modules/@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", "dev": true, - "requires": { - "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.3" + "license": "MIT", + "dependencies": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" } }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/rollup-plugin-typescript2/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, - "requires": { - "p-try": "^2.0.0" + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, - "requires": { - "p-limit": "^2.2.0" + "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": { + "queue-microtask": "^1.2.2" } }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "node_modules/rxjs": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", "dev": true, - "requires": { - "aggregate-error": "^3.0.0" + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" } }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, - "requires": { - "callsites": "^3.0.0" - } + "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" }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, - "requires": { - "@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" + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "picocolors": { + "node_modules/semver-compare": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "dev": true, + "license": "MIT" }, - "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true + "node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } }, - "pirates": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", - "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, - "requires": { - "node-modules-regexp": "^1.0.0" + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, - "requires": { - "find-up": "^4.0.0" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "please-upgrade-node": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", - "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", + "node_modules/shelljs": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.9.2.tgz", + "integrity": "sha512-S3I64fEiKgTZzKCC46zT/Ib9meqofLrQVbpSswtjFfAVDW+AZ54WTnAM/3/yENoxz/V1Cy6u3kiiEbQ4DNphvw==", "dev": true, - "requires": { - "semver-compare": "^1.0.0" + "license": "BSD-3-Clause", + "dependencies": { + "execa": "^1.0.0", + "fast-glob": "^3.3.2", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=18" } }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "prettier": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.4.0.tgz", - "integrity": "sha512-DsEPLY1dE5HF3BxCRBmD4uYZ+5DCbvatnolqTqcxEgKVZnL2kUfyu7b8pPQ5+hTBkdhU9SLUmK0/pHb07RE4WQ==", - "dev": true + "node_modules/shelljs/node_modules/cross-spawn": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz", + "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } }, - "prettier-linter-helpers": { + "node_modules/shelljs/node_modules/execa": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "dev": true, - "requires": { - "fast-diff": "^1.1.2" + "license": "MIT", + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" } }, - "pretty-format": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.2.tgz", - "integrity": "sha512-p0wNtJ9oLuvgOQDEIZ9zQjZffK7KtyR6Si0jnXULIDwrlNF8Cuir3AZP0hHv0jmKuNN/edOnbMjnzd4uTcmWiw==", + "node_modules/shelljs/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, + "license": "MIT", "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "node_modules/shelljs/node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", "dev": true, - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "node_modules/shelljs/node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", "dev": true, - "requires": { - "safe-buffer": "^5.1.0" + "license": "MIT", + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" } }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "node_modules/shelljs/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", "dev": true, - "requires": { - "resolve": "^1.1.6" + "license": "MIT", + "engines": { + "node": ">=4" } }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" - }, - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "node_modules/shelljs/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "license": "ISC", + "bin": { + "semver": "bin/semver" } }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "node_modules/shelljs/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", "dev": true, - "requires": { - "resolve-from": "^5.0.0" - }, + "license": "MIT", "dependencies": { - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", - "dev": true - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "node_modules/shelljs/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true + "node_modules/shelljs/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "node_modules/shelljs/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, - "requires": { - "glob": "^7.1.3" + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" } }, - "rollup": { - "version": "2.56.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.56.3.tgz", - "integrity": "sha512-Au92NuznFklgQCUcV96iXlxUbHuB1vQMaH76DHl5M11TotjOHwqk9CwcrT78+Tnv4FN9uTBxq6p4EJoYkpyekg==", + "node_modules/shx": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/shx/-/shx-0.4.0.tgz", + "integrity": "sha512-Z0KixSIlGPpijKgcH6oCMCbltPImvaKy0sGH8AkLRXw1KyzpKtaCTizP2xen+hNDqVF4xxgvA0KXSb9o4Q6hnA==", "dev": true, - "requires": { - "fsevents": "~2.3.2" + "license": "MIT", + "dependencies": { + "minimist": "^1.2.8", + "shelljs": "^0.9.2" + }, + "bin": { + "shx": "lib/cli.js" + }, + "engines": { + "node": ">=18" } }, - "rollup-plugin-sourcemaps": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/rollup-plugin-sourcemaps/-/rollup-plugin-sourcemaps-0.6.3.tgz", - "integrity": "sha512-paFu+nT1xvuO1tPFYXGe+XnQvg4Hjqv/eIhG8i5EspfYYPBKL57X7iVbfv55aNVASg3dzWvES9dmWsL2KhfByw==", + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, - "requires": { - "@rollup/pluginutils": "^3.0.9", - "source-map-resolve": "^0.6.0" + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "rollup-plugin-terser": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", - "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "jest-worker": "^26.2.1", - "serialize-javascript": "^4.0.0", - "terser": "^5.0.0" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "rollup-plugin-typescript2": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.30.0.tgz", - "integrity": "sha512-NUFszIQyhgDdhRS9ya/VEmsnpTe+GERDMmFo0Y+kf8ds51Xy57nPNGglJY+W6x1vcouA7Au7nsTgsLFj2I0PxQ==", - "dev": true, - "requires": { - "@rollup/pluginutils": "^4.1.0", - "find-cache-dir": "^3.3.1", - "fs-extra": "8.1.0", - "resolve": "1.20.0", - "tslib": "2.1.0" - }, - "dependencies": { - "@rollup/pluginutils": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.1.tgz", - "integrity": "sha512-clDjivHqWGXi7u+0d2r2sBi4Ie6VLEAzWMIkvJLnDmxoOhBYOTfzGbOQBA32THHm11/LiJbd01tJUpJsbshSWQ==", - "dev": true, - "requires": { - "estree-walker": "^2.0.1", - "picomatch": "^2.2.2" - } - }, - "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", - "dev": true - } + "node_modules/slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "requires": { - "queue-microtask": "^1.2.2" + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" } }, - "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "node_modules/source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", "dev": true, - "requires": { - "tslib": "^1.9.0" - }, + "license": "MIT", "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" } }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, - "requires": { - "xmlchars": "^2.2.0" + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } + "license": "BSD-3-Clause" }, - "semver-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", - "dev": true - }, - "serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "dev": true, - "requires": { - "randombytes": "^2.1.0" + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" } }, - "shebang-command": { + "node_modules/stack-utils/node_modules/escape-string-regexp": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true, - "requires": { - "shebang-regex": "^3.0.0" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "shelljs": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", - "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", + "node_modules/string-argv": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", + "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", "dev": true, - "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" + "license": "MIT", + "engines": { + "node": ">=0.6.19" } }, - "shx": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.3.tgz", - "integrity": "sha512-nZJ3HFWVoTSyyB+evEKjJ1STiixGztlqwKLTUNV5KqMWtGey9fTd4KU1gdZ1X9BV6215pswQ/Jew9NsuS/fNDA==", + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, - "requires": { - "minimist": "^1.2.3", - "shelljs": "^0.8.4" + "license": "MIT", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" } }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true - }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "slice-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "node_modules/string-length/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - }, - "source-map-resolve": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", - "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" + "node_modules/string-length/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "source-map-support": { - "version": "0.5.20", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz", - "integrity": "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==", + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - }, + "license": "MIT", "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "dev": true - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, - "requires": { - "escape-string-regexp": "^2.0.0" - }, + "license": "MIT", "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - } + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" } }, - "string-argv": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", - "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", - "dev": true - }, - "string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "license": "MIT" + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "stringify-object": { + "node_modules/stringify-object": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", "dev": true, - "requires": { + "license": "BSD-2-Clause", + "dependencies": { "get-own-enumerable-property-symbols": "^3.0.0", "is-obj": "^1.0.1", "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" } }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", "dev": true, - "requires": { - "ansi-regex": "^5.0.0" + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" } }, - "strip-bom": { + "node_modules/strip-bom": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "strip-final-newline": { + "node_modules/strip-final-newline": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } }, - "strip-json-comments": { + "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "supports-color": { + "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true - }, - "table": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", - "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", + "node_modules/synckit": { + "version": "0.11.11", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.11.tgz", + "integrity": "sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==", "dev": true, - "requires": { - "ajv": "^8.0.1", - "lodash.clonedeep": "^4.5.0", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0" - }, + "license": "MIT", "dependencies": { - "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - } + "@pkgr/core": "^0.2.9" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/synckit" } }, - "terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "node_modules/terser": { + "version": "5.44.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.44.0.tgz", + "integrity": "sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w==", "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.15.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" } }, - "terser": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.2.tgz", - "integrity": "sha512-0Omye+RD4X7X69O0eql3lC4Heh/5iLj3ggxR/B5ketZLOtLiOqukUgjw3q4PDnNQbsrkKr3UMypqStQG3XKRvw==", + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true, - "requires": { - "commander": "^2.20.0", - "source-map": "~0.7.2", - "source-map-support": "~0.5.19" - }, + "license": "MIT" + }, + "node_modules/terser/node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - } + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, - "test-exclude": { + "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, - "requires": { + "license": "ISC", + "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" } }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true + "node_modules/test-exclude/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } }, - "throat": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", - "dev": true + "node_modules/test-exclude/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "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/test-exclude/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } }, - "through": { + "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true, + "license": "MIT" }, - "tmpl": { + "node_modules/tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, - "to-regex-range": { + "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" } }, - "tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "dev": true, - "requires": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" - } + "license": "MIT" }, - "tr46": { + "node_modules/ts-api-utils": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", + "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", "dev": true, - "requires": { - "punycode": "^2.1.1" + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "node_modules/ts-jest": { + "version": "29.4.4", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.4.tgz", + "integrity": "sha512-ccVcRABct5ZELCT5U0+DZwkXMCcOCLi2doHRrKy1nK/s7J7bch6TzJMsrY09WxgUUIP/ITfmcDS8D2yl63rnXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "bs-logger": "^0.2.6", + "fast-json-stable-stringify": "^2.1.0", + "handlebars": "^4.7.8", + "json5": "^2.2.3", + "lodash.memoize": "^4.1.2", + "make-error": "^1.3.6", + "semver": "^7.7.2", + "type-fest": "^4.41.0", + "yargs-parser": "^21.1.1" + }, + "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 || ^30.0.0", + "@jest/types": "^29.0.0 || ^30.0.0", + "babel-jest": "^29.0.0 || ^30.0.0", + "jest": "^29.0.0 || ^30.0.0", + "jest-util": "^29.0.0 || ^30.0.0", + "typescript": ">=4.3 <6" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@jest/transform": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "jest-util": { + "optional": true + } } }, - "ts-jest": { - "version": "27.1.0", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.0.tgz", - "integrity": "sha512-ZouWlP03JMtzfNHg0ZeDrxAESYGmVhWyHtIl2/01kBbXaMbTr4Vhv6/GeMxUed6GFg/4ycMo+yU6Eo9gI16xTQ==", + "node_modules/ts-jest/node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", "dev": true, - "requires": { - "bs-logger": "0.x", - "esbuild": "~0.14.0", - "fast-json-stable-stringify": "2.x", - "jest-util": "^27.0.0", - "json5": "2.x", - "lodash.memoize": "4.x", - "make-error": "1.x", - "semver": "7.x", - "yargs-parser": "20.x" + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "ts-node": { + "node_modules/ts-node": { "version": "9.1.1", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "arg": "^4.1.0", "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", "source-map-support": "^0.5.17", "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "typescript": ">=2.7" } }, - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true - }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "node_modules/ts-node/node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, - "requires": { - "tslib": "^1.8.1" - }, + "license": "MIT", "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, - "type-check": { + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" } }, - "type-detect": { + "node_modules/type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "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" + } }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, - "requires": { - "is-typedarray": "^1.0.0" + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" } }, - "typescript": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.2.tgz", - "integrity": "sha512-gzP+t5W4hdy4c+68bfcv0t400HVJMMd2+H9B7gae1nQlBzCqvrXX+6GL/b3GAgyTH966pzrZ70/fRjwAtZksSQ==", - "dev": true + "node_modules/uglify-js": { + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", + "dev": true, + "license": "BSD-2-Clause", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true + "node_modules/undici-types": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.13.0.tgz", + "integrity": "sha512-Ov2Rr9Sx+fRgagJ5AX0qvItZG/JKKoBRAVITs1zk7IqZGTJUwgUr7qoYBpWwakpWilTZFM98rG/AFRocu10iIQ==", + "dev": true, + "license": "MIT" }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "requires": { - "punycode": "^2.1.0" + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" } }, - "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, - "v8-to-istanbul": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.0.tgz", - "integrity": "sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA==", + "node_modules/unrs-resolver": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz", + "integrity": "sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==", "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "napi-postinstall": "^0.3.0" + }, + "funding": { + "url": "https://opencollective.com/unrs-resolver" + }, + "optionalDependencies": { + "@unrs/resolver-binding-android-arm-eabi": "1.11.1", + "@unrs/resolver-binding-android-arm64": "1.11.1", + "@unrs/resolver-binding-darwin-arm64": "1.11.1", + "@unrs/resolver-binding-darwin-x64": "1.11.1", + "@unrs/resolver-binding-freebsd-x64": "1.11.1", + "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1", + "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1", + "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-arm64-musl": "1.11.1", + "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1", + "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1", + "@unrs/resolver-binding-linux-x64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-x64-musl": "1.11.1", + "@unrs/resolver-binding-wasm32-wasi": "1.11.1", + "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1", + "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1", + "@unrs/resolver-binding-win32-x64-msvc": "1.11.1" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "dev": true, + "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": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" } }, - "w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, - "requires": { - "browser-process-hrtime": "^1.0.0" + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" } }, - "w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "node_modules/v8-to-istanbul": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", "dev": true, - "requires": { - "xml-name-validator": "^3.0.0" + "license": "ISC", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" } }, - "walker": { + "node_modules/walker": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", "dev": true, - "requires": { + "license": "Apache-2.0", + "dependencies": { "makeerror": "1.0.12" } }, - "webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true - }, - "whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", "dev": true, - "requires": { - "iconv-lite": "0.4.24" - } - }, - "whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true + "license": "BSD-2-Clause" }, - "whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dev": true, - "requires": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" } }, - "which": { + "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, - "requires": { + "license": "ISC", + "dependencies": { "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" } }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "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" + } }, - "wrap-ansi": { + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "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" } }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "ws": { - "version": "7.5.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz", - "integrity": "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==", + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "dev": true, - "requires": {} + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } }, - "xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" }, - "xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true + "node_modules/write-file-atomic": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } }, - "y18n": { + "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" }, - "yaml": { + "node_modules/yaml": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 6" + } }, - "yargs": { - "version": "17.1.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.1.1.tgz", - "integrity": "sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==", + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, - "requires": { - "cliui": "^7.0.2", + "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.0", + "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" } }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } }, - "yn": { + "node_modules/yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } } } } diff --git a/package.json b/package.json index 2359075f..920a5055 100644 --- a/package.json +++ b/package.json @@ -39,34 +39,36 @@ "devDependencies": { "@apidevtools/json-schema-ref-parser": "^9.0.7", "@dtsgenerator/replace-namespace": "^1.4.1", - "@rollup/plugin-commonjs": "^19.0.0", + "@rollup/plugin-commonjs": "^28.0.6", "@rollup/plugin-json": "^4.1.0", "@rollup/plugin-node-resolve": "^13.0.0", - "@types/jest": "^27.0.3", + "@types/jest": "^30.0.0", "@types/js-yaml": "^4.0.1", + "@types/lodash": "^4.14.168", "@types/node-fetch": "^2.5.10", - "@types/rimraf": "^3.0.0", "@types/yargs": "^16.0.1", - "@typescript-eslint/eslint-plugin": "^4.23.0", - "@typescript-eslint/parser": "^4.23.0", + "@typescript-eslint/eslint-plugin": "^8.45.0", + "@typescript-eslint/parser": "^8.45.0", "dtsgenerator": "^3.10.0", - "eslint": "^7.26.0", + "eslint": "^9.36.0", "eslint-config-prettier": "^8.3.0", "eslint-plugin-prettier": "^3.4.0", "husky": "6.0.0", - "jest": "^27.4.3", + "immer": "^10.0.3", + "jest": "^30.2.0", "lint-staged": "11.0.0", + "lodash": "^4.17.21", "node-fetch": "^2.6.1", "prettier": "^2.3.0", - "rimraf": "^3.0.2", + "rimraf": "^6.0.1", "rollup": "^2.47.0", "rollup-plugin-sourcemaps": "^0.6.3", "rollup-plugin-terser": "^7.0.2", - "rollup-plugin-typescript2": "^0.30.0", - "shx": "^0.3.3", - "ts-jest": "^27.1.0", + "rollup-plugin-typescript2": "^0.36.0", + "shx": "^0.4.0", + "ts-jest": "^29.4.4", "ts-node": "^9.1.1", - "typescript": "^4.2.4", + "typescript": "^5.5.3", "yargs": "^17.0.1" }, "repository": { diff --git a/src/lib/builders/README.md b/src/lib/builders/README.md index 86d82d3e..7d5a8642 100644 --- a/src/lib/builders/README.md +++ b/src/lib/builders/README.md @@ -1,3 +1,2 @@ # Auto generated notice - This directory and its content has been generated automatically. Do not modify its content, it WILL be lost. \ No newline at end of file diff --git a/src/lib/builders/action-builder.ts b/src/lib/builders/action-builder.ts index 9a9b52af..ef9cd023 100644 --- a/src/lib/builders/action-builder.ts +++ b/src/lib/builders/action-builder.ts @@ -16,26 +16,33 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.Action} data The underlying object - * @returns {Specification.Action} The validated underlying object + * @param {Specification.IAction} data The underlying object + * @returns {Specification.IAction} The validated underlying object */ -function actionBuildingFn(data: Specification.Action): () => Specification.Action { +function actionBuildingFn(data: Specification.IAction): () => Specification.IAction { return () => { const model = new Specification.Action(data); - validate('Action', model.normalize()); - return model; + if (hasProperty(model, 'normalize')) { + validate('Action', (model as any).normalize()); + } else { + validate('Action', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.Action` - * @returns {Specification.Action} A builder for `Specification.Action` + * @returns {Specification.IAction} A builder for `Specification.Action` */ -export function actionBuilder(): Builder { - return builder(actionBuildingFn); +export function actionBuilder(): Builder { + return builder(actionBuildingFn); } diff --git a/src/lib/builders/actiondatafilter-builder.ts b/src/lib/builders/actiondatafilter-builder.ts index c9f74ea0..55cbd87a 100644 --- a/src/lib/builders/actiondatafilter-builder.ts +++ b/src/lib/builders/actiondatafilter-builder.ts @@ -16,26 +16,33 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.Actiondatafilter} data The underlying object - * @returns {Specification.Actiondatafilter} The validated underlying object + * @param {Specification.IActiondatafilter} data The underlying object + * @returns {Specification.IActiondatafilter} The validated underlying object */ -function actiondatafilterBuildingFn(data: Specification.Actiondatafilter): () => Specification.Actiondatafilter { +function actiondatafilterBuildingFn(data: Specification.IActiondatafilter): () => Specification.IActiondatafilter { return () => { const model = new Specification.Actiondatafilter(data); - validate('Actiondatafilter', model); - return model; + if (hasProperty(model, 'normalize')) { + validate('Actiondatafilter', (model as any).normalize()); + } else { + validate('Actiondatafilter', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.Actiondatafilter` - * @returns {Specification.Actiondatafilter} A builder for `Specification.Actiondatafilter` + * @returns {Specification.IActiondatafilter} A builder for `Specification.Actiondatafilter` */ -export function actiondatafilterBuilder(): Builder { - return builder(actiondatafilterBuildingFn); +export function actiondatafilterBuilder(): Builder { + return builder(actiondatafilterBuildingFn); } diff --git a/src/lib/builders/authdef-builder.ts b/src/lib/builders/authdef-builder.ts index 4cbd7113..3510c7d9 100644 --- a/src/lib/builders/authdef-builder.ts +++ b/src/lib/builders/authdef-builder.ts @@ -16,26 +16,33 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.Authdef} data The underlying object - * @returns {Specification.Authdef} The validated underlying object + * @param {Specification.IAuthdef} data The underlying object + * @returns {Specification.IAuthdef} The validated underlying object */ -function authdefBuildingFn(data: Specification.Authdef): () => Specification.Authdef { +function authdefBuildingFn(data: Specification.IAuthdef): () => Specification.IAuthdef { return () => { const model = new Specification.Authdef(data); - validate('Authdef', model.normalize()); - return model; + if (hasProperty(model, 'normalize')) { + validate('Authdef', (model as any).normalize()); + } else { + validate('Authdef', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.Authdef` - * @returns {Specification.Authdef} A builder for `Specification.Authdef` + * @returns {Specification.IAuthdef} A builder for `Specification.Authdef` */ -export function authdefBuilder(): Builder { - return builder(authdefBuildingFn); +export function authdefBuilder(): Builder { + return builder(authdefBuildingFn); } diff --git a/src/lib/builders/basicpropsdef-builder.ts b/src/lib/builders/basicpropsdef-builder.ts index d12618e8..e5b6f90f 100644 --- a/src/lib/builders/basicpropsdef-builder.ts +++ b/src/lib/builders/basicpropsdef-builder.ts @@ -16,26 +16,33 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.Basicpropsdef} data The underlying object - * @returns {Specification.Basicpropsdef} The validated underlying object + * @param {Specification.IBasicpropsdef} data The underlying object + * @returns {Specification.IBasicpropsdef} The validated underlying object */ -function basicpropsdefBuildingFn(data: Specification.Basicpropsdef): () => Specification.Basicpropsdef { +function basicpropsdefBuildingFn(data: Specification.IBasicpropsdef): () => Specification.IBasicpropsdef { return () => { const model = new Specification.Basicpropsdef(data); - validate('Basicpropsdef', model); - return model; + if (hasProperty(model, 'normalize')) { + validate('Basicpropsdef', (model as any).normalize()); + } else { + validate('Basicpropsdef', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.Basicpropsdef` - * @returns {Specification.Basicpropsdef} A builder for `Specification.Basicpropsdef` + * @returns {Specification.IBasicpropsdef} A builder for `Specification.Basicpropsdef` */ -export function basicpropsdefBuilder(): Builder { - return builder(basicpropsdefBuildingFn); +export function basicpropsdefBuilder(): Builder { + return builder(basicpropsdefBuildingFn); } diff --git a/src/lib/builders/bearerpropsdef-builder.ts b/src/lib/builders/bearerpropsdef-builder.ts index c77f1ac3..62fd7e33 100644 --- a/src/lib/builders/bearerpropsdef-builder.ts +++ b/src/lib/builders/bearerpropsdef-builder.ts @@ -16,26 +16,33 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.Bearerpropsdef} data The underlying object - * @returns {Specification.Bearerpropsdef} The validated underlying object + * @param {Specification.IBearerpropsdef} data The underlying object + * @returns {Specification.IBearerpropsdef} The validated underlying object */ -function bearerpropsdefBuildingFn(data: Specification.Bearerpropsdef): () => Specification.Bearerpropsdef { +function bearerpropsdefBuildingFn(data: Specification.IBearerpropsdef): () => Specification.IBearerpropsdef { return () => { const model = new Specification.Bearerpropsdef(data); - validate('Bearerpropsdef', model); - return model; + if (hasProperty(model, 'normalize')) { + validate('Bearerpropsdef', (model as any).normalize()); + } else { + validate('Bearerpropsdef', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.Bearerpropsdef` - * @returns {Specification.Bearerpropsdef} A builder for `Specification.Bearerpropsdef` + * @returns {Specification.IBearerpropsdef} A builder for `Specification.Bearerpropsdef` */ -export function bearerpropsdefBuilder(): Builder { - return builder(bearerpropsdefBuildingFn); +export function bearerpropsdefBuilder(): Builder { + return builder(bearerpropsdefBuildingFn); } diff --git a/src/lib/builders/branch-builder.ts b/src/lib/builders/branch-builder.ts index 50bd4353..6d0063f5 100644 --- a/src/lib/builders/branch-builder.ts +++ b/src/lib/builders/branch-builder.ts @@ -16,26 +16,33 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.Branch} data The underlying object - * @returns {Specification.Branch} The validated underlying object + * @param {Specification.IBranch} data The underlying object + * @returns {Specification.IBranch} The validated underlying object */ -function branchBuildingFn(data: Specification.Branch): () => Specification.Branch { +function branchBuildingFn(data: Specification.IBranch): () => Specification.IBranch { return () => { const model = new Specification.Branch(data); - validate('Branch', model.normalize()); - return model; + if (hasProperty(model, 'normalize')) { + validate('Branch', (model as any).normalize()); + } else { + validate('Branch', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.Branch` - * @returns {Specification.Branch} A builder for `Specification.Branch` + * @returns {Specification.IBranch} A builder for `Specification.Branch` */ -export function branchBuilder(): Builder { - return builder(branchBuildingFn); +export function branchBuilder(): Builder { + return builder(branchBuildingFn); } diff --git a/src/lib/builders/callbackstate-builder.ts b/src/lib/builders/callbackstate-builder.ts index b89a2995..4c9ade22 100644 --- a/src/lib/builders/callbackstate-builder.ts +++ b/src/lib/builders/callbackstate-builder.ts @@ -16,29 +16,36 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; import { setEndValueIfNoTransition } from '../definitions/utils'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.Callbackstate} data The underlying object - * @returns {Specification.Callbackstate} The validated underlying object + * @param {Specification.ICallbackstate} data The underlying object + * @returns {Specification.ICallbackstate} The validated underlying object */ -function callbackstateBuildingFn(data: Specification.Callbackstate): () => Specification.Callbackstate { +function callbackstateBuildingFn(data: Specification.ICallbackstate): () => Specification.ICallbackstate { return () => { const model = new Specification.Callbackstate(data); setEndValueIfNoTransition(model); - validate('Callbackstate', model.normalize()); - return model; + if (hasProperty(model, 'normalize')) { + validate('Callbackstate', (model as any).normalize()); + } else { + validate('Callbackstate', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.Callbackstate` - * @returns {Specification.Callbackstate} A builder for `Specification.Callbackstate` + * @returns {Specification.ICallbackstate} A builder for `Specification.Callbackstate` */ -export function callbackstateBuilder(): Builder { - return builder(callbackstateBuildingFn); +export function callbackstateBuilder(): Builder { + return builder(callbackstateBuildingFn); } diff --git a/src/lib/builders/continueasdef-builder.ts b/src/lib/builders/continueasdef-builder.ts index db6f4172..905da020 100644 --- a/src/lib/builders/continueasdef-builder.ts +++ b/src/lib/builders/continueasdef-builder.ts @@ -16,26 +16,33 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.Continueasdef} data The underlying object - * @returns {Specification.Continueasdef} The validated underlying object + * @param {Specification.IContinueasdef} data The underlying object + * @returns {Specification.IContinueasdef} The validated underlying object */ -function continueasdefBuildingFn(data: Specification.Continueasdef): () => Specification.Continueasdef { +function continueasdefBuildingFn(data: Specification.IContinueasdef): () => Specification.IContinueasdef { return () => { const model = new Specification.Continueasdef(data); - validate('Continueasdef', model.normalize()); - return model; + if (hasProperty(model, 'normalize')) { + validate('Continueasdef', (model as any).normalize()); + } else { + validate('Continueasdef', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.Continueasdef` - * @returns {Specification.Continueasdef} A builder for `Specification.Continueasdef` + * @returns {Specification.IContinueasdef} A builder for `Specification.Continueasdef` */ -export function continueasdefBuilder(): Builder { - return builder(continueasdefBuildingFn); +export function continueasdefBuilder(): Builder { + return builder(continueasdefBuildingFn); } diff --git a/src/lib/builders/correlation-def-builder.ts b/src/lib/builders/correlation-def-builder.ts index 3e15e621..f826d1e3 100644 --- a/src/lib/builders/correlation-def-builder.ts +++ b/src/lib/builders/correlation-def-builder.ts @@ -16,26 +16,33 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.CorrelationDef} data The underlying object - * @returns {Specification.CorrelationDef} The validated underlying object + * @param {Specification.ICorrelationDef} data The underlying object + * @returns {Specification.ICorrelationDef} The validated underlying object */ -function correlationDefBuildingFn(data: Specification.CorrelationDef): () => Specification.CorrelationDef { +function correlationDefBuildingFn(data: Specification.ICorrelationDef): () => Specification.ICorrelationDef { return () => { const model = new Specification.CorrelationDef(data); - validate('CorrelationDef', model); - return model; + if (hasProperty(model, 'normalize')) { + validate('CorrelationDef', (model as any).normalize()); + } else { + validate('CorrelationDef', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.CorrelationDef` - * @returns {Specification.CorrelationDef} A builder for `Specification.CorrelationDef` + * @returns {Specification.ICorrelationDef} A builder for `Specification.CorrelationDef` */ -export function correlationDefBuilder(): Builder { - return builder(correlationDefBuildingFn); +export function correlationDefBuilder(): Builder { + return builder(correlationDefBuildingFn); } diff --git a/src/lib/builders/crondef-builder.ts b/src/lib/builders/crondef-builder.ts index 3521c55b..c929c627 100644 --- a/src/lib/builders/crondef-builder.ts +++ b/src/lib/builders/crondef-builder.ts @@ -16,26 +16,33 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.Crondef} data The underlying object - * @returns {Specification.Crondef} The validated underlying object + * @param {Specification.ICrondef} data The underlying object + * @returns {Specification.ICrondef} The validated underlying object */ -function crondefBuildingFn(data: Specification.Crondef): () => Specification.Crondef { +function crondefBuildingFn(data: Specification.ICrondef): () => Specification.ICrondef { return () => { const model = new Specification.Crondef(data); - validate('Crondef', model); - return model; + if (hasProperty(model, 'normalize')) { + validate('Crondef', (model as any).normalize()); + } else { + validate('Crondef', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.Crondef` - * @returns {Specification.Crondef} A builder for `Specification.Crondef` + * @returns {Specification.ICrondef} A builder for `Specification.Crondef` */ -export function crondefBuilder(): Builder { - return builder(crondefBuildingFn); +export function crondefBuilder(): Builder { + return builder(crondefBuildingFn); } diff --git a/src/lib/builders/databasedswitchstate-builder.ts b/src/lib/builders/databasedswitchstate-builder.ts index eabbce32..b869ecab 100644 --- a/src/lib/builders/databasedswitchstate-builder.ts +++ b/src/lib/builders/databasedswitchstate-builder.ts @@ -16,28 +16,35 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.Databasedswitchstate} data The underlying object - * @returns {Specification.Databasedswitchstate} The validated underlying object + * @param {Specification.IDatabasedswitchstate} data The underlying object + * @returns {Specification.IDatabasedswitchstate} The validated underlying object */ function databasedswitchstateBuildingFn( - data: Specification.Databasedswitchstate -): () => Specification.Databasedswitchstate { + data: Specification.IDatabasedswitchstate +): () => Specification.IDatabasedswitchstate { return () => { const model = new Specification.Databasedswitchstate(data); - validate('Databasedswitchstate', model.normalize()); - return model; + if (hasProperty(model, 'normalize')) { + validate('Databasedswitchstate', (model as any).normalize()); + } else { + validate('Databasedswitchstate', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.Databasedswitchstate` - * @returns {Specification.Databasedswitchstate} A builder for `Specification.Databasedswitchstate` + * @returns {Specification.IDatabasedswitchstate} A builder for `Specification.Databasedswitchstate` */ -export function databasedswitchstateBuilder(): Builder { - return builder(databasedswitchstateBuildingFn); +export function databasedswitchstateBuilder(): Builder { + return builder(databasedswitchstateBuildingFn); } diff --git a/src/lib/builders/defaultconditiondef-builder.ts b/src/lib/builders/defaultconditiondef-builder.ts index 0fda1acb..83b239da 100644 --- a/src/lib/builders/defaultconditiondef-builder.ts +++ b/src/lib/builders/defaultconditiondef-builder.ts @@ -16,28 +16,35 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.Defaultconditiondef} data The underlying object - * @returns {Specification.Defaultconditiondef} The validated underlying object + * @param {Specification.IDefaultconditiondef} data The underlying object + * @returns {Specification.IDefaultconditiondef} The validated underlying object */ function defaultconditiondefBuildingFn( - data: Specification.Defaultconditiondef -): () => Specification.Defaultconditiondef { + data: Specification.IDefaultconditiondef +): () => Specification.IDefaultconditiondef { return () => { const model = new Specification.Defaultconditiondef(data); - validate('Defaultconditiondef', model.normalize()); - return model; + if (hasProperty(model, 'normalize')) { + validate('Defaultconditiondef', (model as any).normalize()); + } else { + validate('Defaultconditiondef', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.Defaultconditiondef` - * @returns {Specification.Defaultconditiondef} A builder for `Specification.Defaultconditiondef` + * @returns {Specification.IDefaultconditiondef} A builder for `Specification.Defaultconditiondef` */ -export function defaultconditiondefBuilder(): Builder { - return builder(defaultconditiondefBuildingFn); +export function defaultconditiondefBuilder(): Builder { + return builder(defaultconditiondefBuildingFn); } diff --git a/src/lib/builders/end-builder.ts b/src/lib/builders/end-builder.ts index 067766ac..0815282e 100644 --- a/src/lib/builders/end-builder.ts +++ b/src/lib/builders/end-builder.ts @@ -16,26 +16,33 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.End} data The underlying object - * @returns {Specification.End} The validated underlying object + * @param {Specification.IEnd} data The underlying object + * @returns {Specification.IEnd} The validated underlying object */ -function endBuildingFn(data: Specification.End): () => Specification.End { +function endBuildingFn(data: Specification.IEnd): () => Specification.IEnd { return () => { const model = new Specification.End(data); - validate('End', model.normalize()); - return model; + if (hasProperty(model, 'normalize')) { + validate('End', (model as any).normalize()); + } else { + validate('End', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.End` - * @returns {Specification.End} A builder for `Specification.End` + * @returns {Specification.IEnd} A builder for `Specification.End` */ -export function endBuilder(): Builder { - return builder(endBuildingFn); +export function endBuilder(): Builder { + return builder(endBuildingFn); } diff --git a/src/lib/builders/enddatacondition-builder.ts b/src/lib/builders/enddatacondition-builder.ts index 8f5e44ea..0932b0d2 100644 --- a/src/lib/builders/enddatacondition-builder.ts +++ b/src/lib/builders/enddatacondition-builder.ts @@ -16,26 +16,33 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.Enddatacondition} data The underlying object - * @returns {Specification.Enddatacondition} The validated underlying object + * @param {Specification.IEnddatacondition} data The underlying object + * @returns {Specification.IEnddatacondition} The validated underlying object */ -function enddataconditionBuildingFn(data: Specification.Enddatacondition): () => Specification.Enddatacondition { +function enddataconditionBuildingFn(data: Specification.IEnddatacondition): () => Specification.IEnddatacondition { return () => { const model = new Specification.Enddatacondition(data); - validate('Enddatacondition', model.normalize()); - return model; + if (hasProperty(model, 'normalize')) { + validate('Enddatacondition', (model as any).normalize()); + } else { + validate('Enddatacondition', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.Enddatacondition` - * @returns {Specification.Enddatacondition} A builder for `Specification.Enddatacondition` + * @returns {Specification.IEnddatacondition} A builder for `Specification.Enddatacondition` */ -export function enddataconditionBuilder(): Builder { - return builder(enddataconditionBuildingFn); +export function enddataconditionBuilder(): Builder { + return builder(enddataconditionBuildingFn); } diff --git a/src/lib/builders/enddeventcondition-builder.ts b/src/lib/builders/enddeventcondition-builder.ts index 9c8631c2..e7bfc7d3 100644 --- a/src/lib/builders/enddeventcondition-builder.ts +++ b/src/lib/builders/enddeventcondition-builder.ts @@ -16,26 +16,35 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.Enddeventcondition} data The underlying object - * @returns {Specification.Enddeventcondition} The validated underlying object + * @param {Specification.IEnddeventcondition} data The underlying object + * @returns {Specification.IEnddeventcondition} The validated underlying object */ -function enddeventconditionBuildingFn(data: Specification.Enddeventcondition): () => Specification.Enddeventcondition { +function enddeventconditionBuildingFn( + data: Specification.IEnddeventcondition +): () => Specification.IEnddeventcondition { return () => { const model = new Specification.Enddeventcondition(data); - validate('Enddeventcondition', model.normalize()); - return model; + if (hasProperty(model, 'normalize')) { + validate('Enddeventcondition', (model as any).normalize()); + } else { + validate('Enddeventcondition', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.Enddeventcondition` - * @returns {Specification.Enddeventcondition} A builder for `Specification.Enddeventcondition` + * @returns {Specification.IEnddeventcondition} A builder for `Specification.Enddeventcondition` */ -export function enddeventconditionBuilder(): Builder { - return builder(enddeventconditionBuildingFn); +export function enddeventconditionBuilder(): Builder { + return builder(enddeventconditionBuildingFn); } diff --git a/src/lib/builders/error-builder.ts b/src/lib/builders/error-builder.ts index 2400aef7..89d0fa5c 100644 --- a/src/lib/builders/error-builder.ts +++ b/src/lib/builders/error-builder.ts @@ -16,29 +16,36 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; import { setEndValueIfNoTransition } from '../definitions/utils'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.Error} data The underlying object - * @returns {Specification.Error} The validated underlying object + * @param {Specification.IError} data The underlying object + * @returns {Specification.IError} The validated underlying object */ -function errorBuildingFn(data: Specification.Error): () => Specification.Error { +function errorBuildingFn(data: Specification.IError): () => Specification.IError { return () => { const model = new Specification.Error(data); setEndValueIfNoTransition(model); - validate('Error', model.normalize()); - return model; + if (hasProperty(model, 'normalize')) { + validate('Error', (model as any).normalize()); + } else { + validate('Error', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.Error` - * @returns {Specification.Error} A builder for `Specification.Error` + * @returns {Specification.IError} A builder for `Specification.Error` */ -export function errorBuilder(): Builder { - return builder(errorBuildingFn); +export function errorBuilder(): Builder { + return builder(errorBuildingFn); } diff --git a/src/lib/builders/errordef-builder.ts b/src/lib/builders/errordef-builder.ts index 8abaa2f9..05d6cb31 100644 --- a/src/lib/builders/errordef-builder.ts +++ b/src/lib/builders/errordef-builder.ts @@ -16,26 +16,33 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.Errordef} data The underlying object - * @returns {Specification.Errordef} The validated underlying object + * @param {Specification.IErrordef} data The underlying object + * @returns {Specification.IErrordef} The validated underlying object */ -function errordefBuildingFn(data: Specification.Errordef): () => Specification.Errordef { +function errordefBuildingFn(data: Specification.IErrordef): () => Specification.IErrordef { return () => { const model = new Specification.Errordef(data); - validate('Errordef', model); - return model; + if (hasProperty(model, 'normalize')) { + validate('Errordef', (model as any).normalize()); + } else { + validate('Errordef', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.Errordef` - * @returns {Specification.Errordef} A builder for `Specification.Errordef` + * @returns {Specification.IErrordef} A builder for `Specification.Errordef` */ -export function errordefBuilder(): Builder { - return builder(errordefBuildingFn); +export function errordefBuilder(): Builder { + return builder(errordefBuildingFn); } diff --git a/src/lib/builders/eventbasedswitchstate-builder.ts b/src/lib/builders/eventbasedswitchstate-builder.ts index 26c07543..e9240b4a 100644 --- a/src/lib/builders/eventbasedswitchstate-builder.ts +++ b/src/lib/builders/eventbasedswitchstate-builder.ts @@ -16,28 +16,35 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.Eventbasedswitchstate} data The underlying object - * @returns {Specification.Eventbasedswitchstate} The validated underlying object + * @param {Specification.IEventbasedswitchstate} data The underlying object + * @returns {Specification.IEventbasedswitchstate} The validated underlying object */ function eventbasedswitchstateBuildingFn( - data: Specification.Eventbasedswitchstate -): () => Specification.Eventbasedswitchstate { + data: Specification.IEventbasedswitchstate +): () => Specification.IEventbasedswitchstate { return () => { const model = new Specification.Eventbasedswitchstate(data); - validate('Eventbasedswitchstate', model.normalize()); - return model; + if (hasProperty(model, 'normalize')) { + validate('Eventbasedswitchstate', (model as any).normalize()); + } else { + validate('Eventbasedswitchstate', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.Eventbasedswitchstate` - * @returns {Specification.Eventbasedswitchstate} A builder for `Specification.Eventbasedswitchstate` + * @returns {Specification.IEventbasedswitchstate} A builder for `Specification.Eventbasedswitchstate` */ -export function eventbasedswitchstateBuilder(): Builder { - return builder(eventbasedswitchstateBuildingFn); +export function eventbasedswitchstateBuilder(): Builder { + return builder(eventbasedswitchstateBuildingFn); } diff --git a/src/lib/builders/eventdatafilter-builder.ts b/src/lib/builders/eventdatafilter-builder.ts index 6bf36387..484e4824 100644 --- a/src/lib/builders/eventdatafilter-builder.ts +++ b/src/lib/builders/eventdatafilter-builder.ts @@ -16,26 +16,33 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.Eventdatafilter} data The underlying object - * @returns {Specification.Eventdatafilter} The validated underlying object + * @param {Specification.IEventdatafilter} data The underlying object + * @returns {Specification.IEventdatafilter} The validated underlying object */ -function eventdatafilterBuildingFn(data: Specification.Eventdatafilter): () => Specification.Eventdatafilter { +function eventdatafilterBuildingFn(data: Specification.IEventdatafilter): () => Specification.IEventdatafilter { return () => { const model = new Specification.Eventdatafilter(data); - validate('Eventdatafilter', model); - return model; + if (hasProperty(model, 'normalize')) { + validate('Eventdatafilter', (model as any).normalize()); + } else { + validate('Eventdatafilter', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.Eventdatafilter` - * @returns {Specification.Eventdatafilter} A builder for `Specification.Eventdatafilter` + * @returns {Specification.IEventdatafilter} A builder for `Specification.Eventdatafilter` */ -export function eventdatafilterBuilder(): Builder { - return builder(eventdatafilterBuildingFn); +export function eventdatafilterBuilder(): Builder { + return builder(eventdatafilterBuildingFn); } diff --git a/src/lib/builders/eventdef-builder.ts b/src/lib/builders/eventdef-builder.ts index 6e751030..8fd810bb 100644 --- a/src/lib/builders/eventdef-builder.ts +++ b/src/lib/builders/eventdef-builder.ts @@ -16,26 +16,33 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.Eventdef} data The underlying object - * @returns {Specification.Eventdef} The validated underlying object + * @param {Specification.IEventdef} data The underlying object + * @returns {Specification.IEventdef} The validated underlying object */ -function eventdefBuildingFn(data: Specification.Eventdef): () => Specification.Eventdef { +function eventdefBuildingFn(data: Specification.IEventdef): () => Specification.IEventdef { return () => { const model = new Specification.Eventdef(data); - validate('Eventdef', model.normalize()); - return model; + if (hasProperty(model, 'normalize')) { + validate('Eventdef', (model as any).normalize()); + } else { + validate('Eventdef', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.Eventdef` - * @returns {Specification.Eventdef} A builder for `Specification.Eventdef` + * @returns {Specification.IEventdef} A builder for `Specification.Eventdef` */ -export function eventdefBuilder(): Builder { - return builder(eventdefBuildingFn); +export function eventdefBuilder(): Builder { + return builder(eventdefBuildingFn); } diff --git a/src/lib/builders/eventref-builder.ts b/src/lib/builders/eventref-builder.ts index 58685a69..a049c3fe 100644 --- a/src/lib/builders/eventref-builder.ts +++ b/src/lib/builders/eventref-builder.ts @@ -16,26 +16,33 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.Eventref} data The underlying object - * @returns {Specification.Eventref} The validated underlying object + * @param {Specification.IEventref} data The underlying object + * @returns {Specification.IEventref} The validated underlying object */ -function eventrefBuildingFn(data: Specification.Eventref): () => Specification.Eventref { +function eventrefBuildingFn(data: Specification.IEventref): () => Specification.IEventref { return () => { const model = new Specification.Eventref(data); - validate('Eventref', model.normalize()); - return model; + if (hasProperty(model, 'normalize')) { + validate('Eventref', (model as any).normalize()); + } else { + validate('Eventref', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.Eventref` - * @returns {Specification.Eventref} A builder for `Specification.Eventref` + * @returns {Specification.IEventref} A builder for `Specification.Eventref` */ -export function eventrefBuilder(): Builder { - return builder(eventrefBuildingFn); +export function eventrefBuilder(): Builder { + return builder(eventrefBuildingFn); } diff --git a/src/lib/builders/eventstate-builder.ts b/src/lib/builders/eventstate-builder.ts index 3ebea78b..b6da8940 100644 --- a/src/lib/builders/eventstate-builder.ts +++ b/src/lib/builders/eventstate-builder.ts @@ -16,29 +16,36 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; import { setEndValueIfNoTransition } from '../definitions/utils'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.Eventstate} data The underlying object - * @returns {Specification.Eventstate} The validated underlying object + * @param {Specification.IEventstate} data The underlying object + * @returns {Specification.IEventstate} The validated underlying object */ -function eventstateBuildingFn(data: Specification.Eventstate): () => Specification.Eventstate { +function eventstateBuildingFn(data: Specification.IEventstate): () => Specification.IEventstate { return () => { const model = new Specification.Eventstate(data); setEndValueIfNoTransition(model); - validate('Eventstate', model.normalize()); - return model; + if (hasProperty(model, 'normalize')) { + validate('Eventstate', (model as any).normalize()); + } else { + validate('Eventstate', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.Eventstate` - * @returns {Specification.Eventstate} A builder for `Specification.Eventstate` + * @returns {Specification.IEventstate} A builder for `Specification.Eventstate` */ -export function eventstateBuilder(): Builder { - return builder(eventstateBuildingFn); +export function eventstateBuilder(): Builder { + return builder(eventstateBuildingFn); } diff --git a/src/lib/builders/foreachstate-builder.ts b/src/lib/builders/foreachstate-builder.ts index 5a367311..eb70ee8a 100644 --- a/src/lib/builders/foreachstate-builder.ts +++ b/src/lib/builders/foreachstate-builder.ts @@ -16,29 +16,36 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; import { setEndValueIfNoTransition } from '../definitions/utils'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.Foreachstate} data The underlying object - * @returns {Specification.Foreachstate} The validated underlying object + * @param {Specification.IForeachstate} data The underlying object + * @returns {Specification.IForeachstate} The validated underlying object */ -function foreachstateBuildingFn(data: Specification.Foreachstate): () => Specification.Foreachstate { +function foreachstateBuildingFn(data: Specification.IForeachstate): () => Specification.IForeachstate { return () => { const model = new Specification.Foreachstate(data); setEndValueIfNoTransition(model); - validate('Foreachstate', model.normalize()); - return model; + if (hasProperty(model, 'normalize')) { + validate('Foreachstate', (model as any).normalize()); + } else { + validate('Foreachstate', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.Foreachstate` - * @returns {Specification.Foreachstate} A builder for `Specification.Foreachstate` + * @returns {Specification.IForeachstate} A builder for `Specification.Foreachstate` */ -export function foreachstateBuilder(): Builder { - return builder(foreachstateBuildingFn); +export function foreachstateBuilder(): Builder { + return builder(foreachstateBuildingFn); } diff --git a/src/lib/builders/function-builder.ts b/src/lib/builders/function-builder.ts index 8f0bc90c..1f759f1d 100644 --- a/src/lib/builders/function-builder.ts +++ b/src/lib/builders/function-builder.ts @@ -16,26 +16,33 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.Function} data The underlying object - * @returns {Specification.Function} The validated underlying object + * @param {Specification.IFunction} data The underlying object + * @returns {Specification.IFunction} The validated underlying object */ -function functionBuildingFn(data: Specification.Function): () => Specification.Function { +function functionBuildingFn(data: Specification.IFunction): () => Specification.IFunction { return () => { const model = new Specification.Function(data); - validate('Function', model.normalize()); - return model; + if (hasProperty(model, 'normalize')) { + validate('Function', (model as any).normalize()); + } else { + validate('Function', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.Function` - * @returns {Specification.Function} A builder for `Specification.Function` + * @returns {Specification.IFunction} A builder for `Specification.Function` */ -export function functionBuilder(): Builder { - return builder(functionBuildingFn); +export function functionBuilder(): Builder { + return builder(functionBuildingFn); } diff --git a/src/lib/builders/functionref-builder.ts b/src/lib/builders/functionref-builder.ts index 65256ebe..2cc0b899 100644 --- a/src/lib/builders/functionref-builder.ts +++ b/src/lib/builders/functionref-builder.ts @@ -16,26 +16,33 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.Functionref} data The underlying object - * @returns {Specification.Functionref} The validated underlying object + * @param {Specification.IFunctionref} data The underlying object + * @returns {Specification.IFunctionref} The validated underlying object */ -function functionrefBuildingFn(data: Specification.Functionref): () => Specification.Functionref { +function functionrefBuildingFn(data: Specification.IFunctionref): () => Specification.IFunctionref { return () => { const model = new Specification.Functionref(data); - validate('Functionref', model.normalize()); - return model; + if (hasProperty(model, 'normalize')) { + validate('Functionref', (model as any).normalize()); + } else { + validate('Functionref', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.Functionref` - * @returns {Specification.Functionref} A builder for `Specification.Functionref` + * @returns {Specification.IFunctionref} A builder for `Specification.Functionref` */ -export function functionrefBuilder(): Builder { - return builder(functionrefBuildingFn); +export function functionrefBuilder(): Builder { + return builder(functionrefBuildingFn); } diff --git a/src/lib/builders/injectstate-builder.ts b/src/lib/builders/injectstate-builder.ts index 03ea25d4..92f68f54 100644 --- a/src/lib/builders/injectstate-builder.ts +++ b/src/lib/builders/injectstate-builder.ts @@ -16,29 +16,36 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; import { setEndValueIfNoTransition } from '../definitions/utils'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.Injectstate} data The underlying object - * @returns {Specification.Injectstate} The validated underlying object + * @param {Specification.IInjectstate} data The underlying object + * @returns {Specification.IInjectstate} The validated underlying object */ -function injectstateBuildingFn(data: Specification.Injectstate): () => Specification.Injectstate { +function injectstateBuildingFn(data: Specification.IInjectstate): () => Specification.IInjectstate { return () => { const model = new Specification.Injectstate(data); setEndValueIfNoTransition(model); - validate('Injectstate', model.normalize()); - return model; + if (hasProperty(model, 'normalize')) { + validate('Injectstate', (model as any).normalize()); + } else { + validate('Injectstate', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.Injectstate` - * @returns {Specification.Injectstate} A builder for `Specification.Injectstate` + * @returns {Specification.IInjectstate} A builder for `Specification.Injectstate` */ -export function injectstateBuilder(): Builder { - return builder(injectstateBuildingFn); +export function injectstateBuilder(): Builder { + return builder(injectstateBuildingFn); } diff --git a/src/lib/builders/metadata-builder.ts b/src/lib/builders/metadata-builder.ts index acc9db1e..d15463a5 100644 --- a/src/lib/builders/metadata-builder.ts +++ b/src/lib/builders/metadata-builder.ts @@ -16,26 +16,33 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.Metadata} data The underlying object - * @returns {Specification.Metadata} The validated underlying object + * @param {Specification.IMetadata} data The underlying object + * @returns {Specification.IMetadata} The validated underlying object */ -function metadataBuildingFn(data: Specification.Metadata): () => Specification.Metadata { +function metadataBuildingFn(data: Specification.IMetadata): () => Specification.IMetadata { return () => { const model = new Specification.Metadata(data); - validate('Metadata', model); - return model; + if (hasProperty(model, 'normalize')) { + validate('Metadata', (model as any).normalize()); + } else { + validate('Metadata', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.Metadata` - * @returns {Specification.Metadata} A builder for `Specification.Metadata` + * @returns {Specification.IMetadata} A builder for `Specification.Metadata` */ -export function metadataBuilder(): Builder { - return builder(metadataBuildingFn); +export function metadataBuilder(): Builder { + return builder(metadataBuildingFn); } diff --git a/src/lib/builders/oauth2propsdef-builder.ts b/src/lib/builders/oauth2propsdef-builder.ts index 780a99ab..98cd0057 100644 --- a/src/lib/builders/oauth2propsdef-builder.ts +++ b/src/lib/builders/oauth2propsdef-builder.ts @@ -16,26 +16,33 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.Oauth2propsdef} data The underlying object - * @returns {Specification.Oauth2propsdef} The validated underlying object + * @param {Specification.IOauth2propsdef} data The underlying object + * @returns {Specification.IOauth2propsdef} The validated underlying object */ -function oauth2propsdefBuildingFn(data: Specification.Oauth2propsdef): () => Specification.Oauth2propsdef { +function oauth2propsdefBuildingFn(data: Specification.IOauth2propsdef): () => Specification.IOauth2propsdef { return () => { const model = new Specification.Oauth2propsdef(data); - validate('Oauth2propsdef', model); - return model; + if (hasProperty(model, 'normalize')) { + validate('Oauth2propsdef', (model as any).normalize()); + } else { + validate('Oauth2propsdef', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.Oauth2propsdef` - * @returns {Specification.Oauth2propsdef} A builder for `Specification.Oauth2propsdef` + * @returns {Specification.IOauth2propsdef} A builder for `Specification.Oauth2propsdef` */ -export function oauth2propsdefBuilder(): Builder { - return builder(oauth2propsdefBuildingFn); +export function oauth2propsdefBuilder(): Builder { + return builder(oauth2propsdefBuildingFn); } diff --git a/src/lib/builders/onevents-builder.ts b/src/lib/builders/onevents-builder.ts index 72bd58e8..a6a8e3a5 100644 --- a/src/lib/builders/onevents-builder.ts +++ b/src/lib/builders/onevents-builder.ts @@ -16,26 +16,33 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.Onevents} data The underlying object - * @returns {Specification.Onevents} The validated underlying object + * @param {Specification.IOnevents} data The underlying object + * @returns {Specification.IOnevents} The validated underlying object */ -function oneventsBuildingFn(data: Specification.Onevents): () => Specification.Onevents { +function oneventsBuildingFn(data: Specification.IOnevents): () => Specification.IOnevents { return () => { const model = new Specification.Onevents(data); - validate('Onevents', model.normalize()); - return model; + if (hasProperty(model, 'normalize')) { + validate('Onevents', (model as any).normalize()); + } else { + validate('Onevents', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.Onevents` - * @returns {Specification.Onevents} A builder for `Specification.Onevents` + * @returns {Specification.IOnevents} A builder for `Specification.Onevents` */ -export function oneventsBuilder(): Builder { - return builder(oneventsBuildingFn); +export function oneventsBuilder(): Builder { + return builder(oneventsBuildingFn); } diff --git a/src/lib/builders/operationstate-builder.ts b/src/lib/builders/operationstate-builder.ts index 47ceb834..f89b00b3 100644 --- a/src/lib/builders/operationstate-builder.ts +++ b/src/lib/builders/operationstate-builder.ts @@ -16,29 +16,36 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; import { setEndValueIfNoTransition } from '../definitions/utils'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.Operationstate} data The underlying object - * @returns {Specification.Operationstate} The validated underlying object + * @param {Specification.IOperationstate} data The underlying object + * @returns {Specification.IOperationstate} The validated underlying object */ -function operationstateBuildingFn(data: Specification.Operationstate): () => Specification.Operationstate { +function operationstateBuildingFn(data: Specification.IOperationstate): () => Specification.IOperationstate { return () => { const model = new Specification.Operationstate(data); setEndValueIfNoTransition(model); - validate('Operationstate', model.normalize()); - return model; + if (hasProperty(model, 'normalize')) { + validate('Operationstate', (model as any).normalize()); + } else { + validate('Operationstate', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.Operationstate` - * @returns {Specification.Operationstate} A builder for `Specification.Operationstate` + * @returns {Specification.IOperationstate} A builder for `Specification.Operationstate` */ -export function operationstateBuilder(): Builder { - return builder(operationstateBuildingFn); +export function operationstateBuilder(): Builder { + return builder(operationstateBuildingFn); } diff --git a/src/lib/builders/parallelstate-builder.ts b/src/lib/builders/parallelstate-builder.ts index 010ef076..b41fca51 100644 --- a/src/lib/builders/parallelstate-builder.ts +++ b/src/lib/builders/parallelstate-builder.ts @@ -16,29 +16,36 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; import { setEndValueIfNoTransition } from '../definitions/utils'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.Parallelstate} data The underlying object - * @returns {Specification.Parallelstate} The validated underlying object + * @param {Specification.IParallelstate} data The underlying object + * @returns {Specification.IParallelstate} The validated underlying object */ -function parallelstateBuildingFn(data: Specification.Parallelstate): () => Specification.Parallelstate { +function parallelstateBuildingFn(data: Specification.IParallelstate): () => Specification.IParallelstate { return () => { const model = new Specification.Parallelstate(data); setEndValueIfNoTransition(model); - validate('Parallelstate', model.normalize()); - return model; + if (hasProperty(model, 'normalize')) { + validate('Parallelstate', (model as any).normalize()); + } else { + validate('Parallelstate', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.Parallelstate` - * @returns {Specification.Parallelstate} A builder for `Specification.Parallelstate` + * @returns {Specification.IParallelstate} A builder for `Specification.Parallelstate` */ -export function parallelstateBuilder(): Builder { - return builder(parallelstateBuildingFn); +export function parallelstateBuilder(): Builder { + return builder(parallelstateBuildingFn); } diff --git a/src/lib/builders/produceeventdef-builder.ts b/src/lib/builders/produceeventdef-builder.ts index ca476710..e36cd80c 100644 --- a/src/lib/builders/produceeventdef-builder.ts +++ b/src/lib/builders/produceeventdef-builder.ts @@ -16,26 +16,33 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.Produceeventdef} data The underlying object - * @returns {Specification.Produceeventdef} The validated underlying object + * @param {Specification.IProduceeventdef} data The underlying object + * @returns {Specification.IProduceeventdef} The validated underlying object */ -function produceeventdefBuildingFn(data: Specification.Produceeventdef): () => Specification.Produceeventdef { +function produceeventdefBuildingFn(data: Specification.IProduceeventdef): () => Specification.IProduceeventdef { return () => { const model = new Specification.Produceeventdef(data); - validate('Produceeventdef', model); - return model; + if (hasProperty(model, 'normalize')) { + validate('Produceeventdef', (model as any).normalize()); + } else { + validate('Produceeventdef', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.Produceeventdef` - * @returns {Specification.Produceeventdef} A builder for `Specification.Produceeventdef` + * @returns {Specification.IProduceeventdef} A builder for `Specification.Produceeventdef` */ -export function produceeventdefBuilder(): Builder { - return builder(produceeventdefBuildingFn); +export function produceeventdefBuilder(): Builder { + return builder(produceeventdefBuildingFn); } diff --git a/src/lib/builders/retrydef-builder.ts b/src/lib/builders/retrydef-builder.ts index bbf254cf..3d078057 100644 --- a/src/lib/builders/retrydef-builder.ts +++ b/src/lib/builders/retrydef-builder.ts @@ -16,26 +16,33 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.Retrydef} data The underlying object - * @returns {Specification.Retrydef} The validated underlying object + * @param {Specification.IRetrydef} data The underlying object + * @returns {Specification.IRetrydef} The validated underlying object */ -function retrydefBuildingFn(data: Specification.Retrydef): () => Specification.Retrydef { +function retrydefBuildingFn(data: Specification.IRetrydef): () => Specification.IRetrydef { return () => { const model = new Specification.Retrydef(data); - validate('Retrydef', model); - return model; + if (hasProperty(model, 'normalize')) { + validate('Retrydef', (model as any).normalize()); + } else { + validate('Retrydef', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.Retrydef` - * @returns {Specification.Retrydef} A builder for `Specification.Retrydef` + * @returns {Specification.IRetrydef} A builder for `Specification.Retrydef` */ -export function retrydefBuilder(): Builder { - return builder(retrydefBuildingFn); +export function retrydefBuilder(): Builder { + return builder(retrydefBuildingFn); } diff --git a/src/lib/builders/schedule-builder.ts b/src/lib/builders/schedule-builder.ts index 54fe3097..84c0c040 100644 --- a/src/lib/builders/schedule-builder.ts +++ b/src/lib/builders/schedule-builder.ts @@ -16,26 +16,33 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.Schedule} data The underlying object - * @returns {Specification.Schedule} The validated underlying object + * @param {Specification.ISchedule} data The underlying object + * @returns {Specification.ISchedule} The validated underlying object */ -function scheduleBuildingFn(data: Specification.Schedule): () => Specification.Schedule { +function scheduleBuildingFn(data: Specification.ISchedule): () => Specification.ISchedule { return () => { const model = new Specification.Schedule(data); - validate('Schedule', model); - return model; + if (hasProperty(model, 'normalize')) { + validate('Schedule', (model as any).normalize()); + } else { + validate('Schedule', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.Schedule` - * @returns {Specification.Schedule} A builder for `Specification.Schedule` + * @returns {Specification.ISchedule} A builder for `Specification.Schedule` */ -export function scheduleBuilder(): Builder { - return builder(scheduleBuildingFn); +export function scheduleBuilder(): Builder { + return builder(scheduleBuildingFn); } diff --git a/src/lib/builders/sleep-builder.ts b/src/lib/builders/sleep-builder.ts index af780040..9275e77d 100644 --- a/src/lib/builders/sleep-builder.ts +++ b/src/lib/builders/sleep-builder.ts @@ -16,26 +16,33 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.Sleep} data The underlying object - * @returns {Specification.Sleep} The validated underlying object + * @param {Specification.ISleep} data The underlying object + * @returns {Specification.ISleep} The validated underlying object */ -function sleepBuildingFn(data: Specification.Sleep): () => Specification.Sleep { +function sleepBuildingFn(data: Specification.ISleep): () => Specification.ISleep { return () => { const model = new Specification.Sleep(data); - validate('Sleep', model); - return model; + if (hasProperty(model, 'normalize')) { + validate('Sleep', (model as any).normalize()); + } else { + validate('Sleep', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.Sleep` - * @returns {Specification.Sleep} A builder for `Specification.Sleep` + * @returns {Specification.ISleep} A builder for `Specification.Sleep` */ -export function sleepBuilder(): Builder { - return builder(sleepBuildingFn); +export function sleepBuilder(): Builder { + return builder(sleepBuildingFn); } diff --git a/src/lib/builders/sleepstate-builder.ts b/src/lib/builders/sleepstate-builder.ts index 210ec334..ac503147 100644 --- a/src/lib/builders/sleepstate-builder.ts +++ b/src/lib/builders/sleepstate-builder.ts @@ -16,26 +16,33 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.Sleepstate} data The underlying object - * @returns {Specification.Sleepstate} The validated underlying object + * @param {Specification.ISleepstate} data The underlying object + * @returns {Specification.ISleepstate} The validated underlying object */ -function sleepstateBuildingFn(data: Specification.Sleepstate): () => Specification.Sleepstate { +function sleepstateBuildingFn(data: Specification.ISleepstate): () => Specification.ISleepstate { return () => { const model = new Specification.Sleepstate(data); - validate('Sleepstate', model.normalize()); - return model; + if (hasProperty(model, 'normalize')) { + validate('Sleepstate', (model as any).normalize()); + } else { + validate('Sleepstate', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.Sleepstate` - * @returns {Specification.Sleepstate} A builder for `Specification.Sleepstate` + * @returns {Specification.ISleepstate} A builder for `Specification.Sleepstate` */ -export function sleepstateBuilder(): Builder { - return builder(sleepstateBuildingFn); +export function sleepstateBuilder(): Builder { + return builder(sleepstateBuildingFn); } diff --git a/src/lib/builders/startdef-builder.ts b/src/lib/builders/startdef-builder.ts index 3ed59f41..0398416c 100644 --- a/src/lib/builders/startdef-builder.ts +++ b/src/lib/builders/startdef-builder.ts @@ -16,26 +16,33 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.Startdef} data The underlying object - * @returns {Specification.Startdef} The validated underlying object + * @param {Specification.IStartdef} data The underlying object + * @returns {Specification.IStartdef} The validated underlying object */ -function startdefBuildingFn(data: Specification.Startdef): () => Specification.Startdef { +function startdefBuildingFn(data: Specification.IStartdef): () => Specification.IStartdef { return () => { const model = new Specification.Startdef(data); - validate('Startdef', model); - return model; + if (hasProperty(model, 'normalize')) { + validate('Startdef', (model as any).normalize()); + } else { + validate('Startdef', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.Startdef` - * @returns {Specification.Startdef} A builder for `Specification.Startdef` + * @returns {Specification.IStartdef} A builder for `Specification.Startdef` */ -export function startdefBuilder(): Builder { - return builder(startdefBuildingFn); +export function startdefBuilder(): Builder { + return builder(startdefBuildingFn); } diff --git a/src/lib/builders/state-exec-timeout-builder.ts b/src/lib/builders/state-exec-timeout-builder.ts index 4d9b59fe..20684370 100644 --- a/src/lib/builders/state-exec-timeout-builder.ts +++ b/src/lib/builders/state-exec-timeout-builder.ts @@ -16,26 +16,33 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.StateExecTimeout} data The underlying object - * @returns {Specification.StateExecTimeout} The validated underlying object + * @param {Specification.IStateExecTimeout} data The underlying object + * @returns {Specification.IStateExecTimeout} The validated underlying object */ -function stateExecTimeoutBuildingFn(data: Specification.StateExecTimeout): () => Specification.StateExecTimeout { +function stateExecTimeoutBuildingFn(data: Specification.IStateExecTimeout): () => Specification.IStateExecTimeout { return () => { const model = new Specification.StateExecTimeout(data); - validate('StateExecTimeout', model); - return model; + if (hasProperty(model, 'normalize')) { + validate('StateExecTimeout', (model as any).normalize()); + } else { + validate('StateExecTimeout', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.StateExecTimeout` - * @returns {Specification.StateExecTimeout} A builder for `Specification.StateExecTimeout` + * @returns {Specification.IStateExecTimeout} A builder for `Specification.StateExecTimeout` */ -export function stateExecTimeoutBuilder(): Builder { - return builder(stateExecTimeoutBuildingFn); +export function stateExecTimeoutBuilder(): Builder { + return builder(stateExecTimeoutBuildingFn); } diff --git a/src/lib/builders/statedatafilter-builder.ts b/src/lib/builders/statedatafilter-builder.ts index a3e3246c..b90f299b 100644 --- a/src/lib/builders/statedatafilter-builder.ts +++ b/src/lib/builders/statedatafilter-builder.ts @@ -16,26 +16,33 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.Statedatafilter} data The underlying object - * @returns {Specification.Statedatafilter} The validated underlying object + * @param {Specification.IStatedatafilter} data The underlying object + * @returns {Specification.IStatedatafilter} The validated underlying object */ -function statedatafilterBuildingFn(data: Specification.Statedatafilter): () => Specification.Statedatafilter { +function statedatafilterBuildingFn(data: Specification.IStatedatafilter): () => Specification.IStatedatafilter { return () => { const model = new Specification.Statedatafilter(data); - validate('Statedatafilter', model); - return model; + if (hasProperty(model, 'normalize')) { + validate('Statedatafilter', (model as any).normalize()); + } else { + validate('Statedatafilter', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.Statedatafilter` - * @returns {Specification.Statedatafilter} A builder for `Specification.Statedatafilter` + * @returns {Specification.IStatedatafilter} A builder for `Specification.Statedatafilter` */ -export function statedatafilterBuilder(): Builder { - return builder(statedatafilterBuildingFn); +export function statedatafilterBuilder(): Builder { + return builder(statedatafilterBuildingFn); } diff --git a/src/lib/builders/subflowref-builder.ts b/src/lib/builders/subflowref-builder.ts index 3011aa7c..f45d33eb 100644 --- a/src/lib/builders/subflowref-builder.ts +++ b/src/lib/builders/subflowref-builder.ts @@ -16,26 +16,33 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.Subflowref} data The underlying object - * @returns {Specification.Subflowref} The validated underlying object + * @param {Specification.ISubflowref} data The underlying object + * @returns {Specification.ISubflowref} The validated underlying object */ -function subflowrefBuildingFn(data: Specification.Subflowref): () => Specification.Subflowref { +function subflowrefBuildingFn(data: Specification.ISubflowref): () => Specification.ISubflowref { return () => { const model = new Specification.Subflowref(data); - validate('Subflowref', model.normalize()); - return model; + if (hasProperty(model, 'normalize')) { + validate('Subflowref', (model as any).normalize()); + } else { + validate('Subflowref', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.Subflowref` - * @returns {Specification.Subflowref} A builder for `Specification.Subflowref` + * @returns {Specification.ISubflowref} A builder for `Specification.Subflowref` */ -export function subflowrefBuilder(): Builder { - return builder(subflowrefBuildingFn); +export function subflowrefBuilder(): Builder { + return builder(subflowrefBuildingFn); } diff --git a/src/lib/builders/timeouts-builder.ts b/src/lib/builders/timeouts-builder.ts index 413964e5..39944981 100644 --- a/src/lib/builders/timeouts-builder.ts +++ b/src/lib/builders/timeouts-builder.ts @@ -16,26 +16,33 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.Timeouts} data The underlying object - * @returns {Specification.Timeouts} The validated underlying object + * @param {Specification.ITimeouts} data The underlying object + * @returns {Specification.ITimeouts} The validated underlying object */ -function timeoutsBuildingFn(data: Specification.Timeouts): () => Specification.Timeouts { +function timeoutsBuildingFn(data: Specification.ITimeouts): () => Specification.ITimeouts { return () => { const model = new Specification.Timeouts(data); - validate('Timeouts', model.normalize()); - return model; + if (hasProperty(model, 'normalize')) { + validate('Timeouts', (model as any).normalize()); + } else { + validate('Timeouts', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.Timeouts` - * @returns {Specification.Timeouts} A builder for `Specification.Timeouts` + * @returns {Specification.ITimeouts} A builder for `Specification.Timeouts` */ -export function timeoutsBuilder(): Builder { - return builder(timeoutsBuildingFn); +export function timeoutsBuilder(): Builder { + return builder(timeoutsBuildingFn); } diff --git a/src/lib/builders/transition-builder.ts b/src/lib/builders/transition-builder.ts index e10b988b..fb366147 100644 --- a/src/lib/builders/transition-builder.ts +++ b/src/lib/builders/transition-builder.ts @@ -16,26 +16,33 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.Transition} data The underlying object - * @returns {Specification.Transition} The validated underlying object + * @param {Specification.ITransition} data The underlying object + * @returns {Specification.ITransition} The validated underlying object */ -function transitionBuildingFn(data: Specification.Transition): () => Specification.Transition { +function transitionBuildingFn(data: Specification.ITransition): () => Specification.ITransition { return () => { const model = new Specification.Transition(data); - validate('Transition', model.normalize()); - return model; + if (hasProperty(model, 'normalize')) { + validate('Transition', (model as any).normalize()); + } else { + validate('Transition', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.Transition` - * @returns {Specification.Transition} A builder for `Specification.Transition` + * @returns {Specification.ITransition} A builder for `Specification.Transition` */ -export function transitionBuilder(): Builder { - return builder(transitionBuildingFn); +export function transitionBuilder(): Builder { + return builder(transitionBuildingFn); } diff --git a/src/lib/builders/transitiondatacondition-builder.ts b/src/lib/builders/transitiondatacondition-builder.ts index 4abfae7e..a0888780 100644 --- a/src/lib/builders/transitiondatacondition-builder.ts +++ b/src/lib/builders/transitiondatacondition-builder.ts @@ -16,28 +16,35 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.Transitiondatacondition} data The underlying object - * @returns {Specification.Transitiondatacondition} The validated underlying object + * @param {Specification.ITransitiondatacondition} data The underlying object + * @returns {Specification.ITransitiondatacondition} The validated underlying object */ function transitiondataconditionBuildingFn( - data: Specification.Transitiondatacondition -): () => Specification.Transitiondatacondition { + data: Specification.ITransitiondatacondition +): () => Specification.ITransitiondatacondition { return () => { const model = new Specification.Transitiondatacondition(data); - validate('Transitiondatacondition', model.normalize()); - return model; + if (hasProperty(model, 'normalize')) { + validate('Transitiondatacondition', (model as any).normalize()); + } else { + validate('Transitiondatacondition', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.Transitiondatacondition` - * @returns {Specification.Transitiondatacondition} A builder for `Specification.Transitiondatacondition` + * @returns {Specification.ITransitiondatacondition} A builder for `Specification.Transitiondatacondition` */ -export function transitiondataconditionBuilder(): Builder { - return builder(transitiondataconditionBuildingFn); +export function transitiondataconditionBuilder(): Builder { + return builder(transitiondataconditionBuildingFn); } diff --git a/src/lib/builders/transitioneventcondition-builder.ts b/src/lib/builders/transitioneventcondition-builder.ts index 161a92b0..9fc2bfd1 100644 --- a/src/lib/builders/transitioneventcondition-builder.ts +++ b/src/lib/builders/transitioneventcondition-builder.ts @@ -16,28 +16,35 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.Transitioneventcondition} data The underlying object - * @returns {Specification.Transitioneventcondition} The validated underlying object + * @param {Specification.ITransitioneventcondition} data The underlying object + * @returns {Specification.ITransitioneventcondition} The validated underlying object */ function transitioneventconditionBuildingFn( - data: Specification.Transitioneventcondition -): () => Specification.Transitioneventcondition { + data: Specification.ITransitioneventcondition +): () => Specification.ITransitioneventcondition { return () => { const model = new Specification.Transitioneventcondition(data); - validate('Transitioneventcondition', model.normalize()); - return model; + if (hasProperty(model, 'normalize')) { + validate('Transitioneventcondition', (model as any).normalize()); + } else { + validate('Transitioneventcondition', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.Transitioneventcondition` - * @returns {Specification.Transitioneventcondition} A builder for `Specification.Transitioneventcondition` + * @returns {Specification.ITransitioneventcondition} A builder for `Specification.Transitioneventcondition` */ -export function transitioneventconditionBuilder(): Builder { - return builder(transitioneventconditionBuildingFn); +export function transitioneventconditionBuilder(): Builder { + return builder(transitioneventconditionBuildingFn); } diff --git a/src/lib/builders/workflow-builder.ts b/src/lib/builders/workflow-builder.ts index 2177a303..593c00cf 100644 --- a/src/lib/builders/workflow-builder.ts +++ b/src/lib/builders/workflow-builder.ts @@ -16,26 +16,33 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.Workflow} data The underlying object - * @returns {Specification.Workflow} The validated underlying object + * @param {Specification.IWorkflow} data The underlying object + * @returns {Specification.IWorkflow} The validated underlying object */ -function workflowBuildingFn(data: Specification.Workflow): () => Specification.Workflow { +function workflowBuildingFn(data: Specification.IWorkflow): () => Specification.IWorkflow { return () => { const model = new Specification.Workflow(data); - validate('Workflow', model.normalize()); - return model; + if (hasProperty(model, 'normalize')) { + validate('Workflow', (model as any).normalize()); + } else { + validate('Workflow', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.Workflow` - * @returns {Specification.Workflow} A builder for `Specification.Workflow` + * @returns {Specification.IWorkflow} A builder for `Specification.Workflow` */ -export function workflowBuilder(): Builder { - return builder(workflowBuildingFn); +export function workflowBuilder(): Builder { + return builder(workflowBuildingFn); } diff --git a/src/lib/builders/workflow-exec-timeout-builder.ts b/src/lib/builders/workflow-exec-timeout-builder.ts index 766e9da3..d8727500 100644 --- a/src/lib/builders/workflow-exec-timeout-builder.ts +++ b/src/lib/builders/workflow-exec-timeout-builder.ts @@ -16,28 +16,35 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.WorkflowExecTimeout} data The underlying object - * @returns {Specification.WorkflowExecTimeout} The validated underlying object + * @param {Specification.IWorkflowExecTimeout} data The underlying object + * @returns {Specification.IWorkflowExecTimeout} The validated underlying object */ function workflowExecTimeoutBuildingFn( - data: Specification.WorkflowExecTimeout -): () => Specification.WorkflowExecTimeout { + data: Specification.IWorkflowExecTimeout +): () => Specification.IWorkflowExecTimeout { return () => { const model = new Specification.WorkflowExecTimeout(data); - validate('WorkflowExecTimeout', model.normalize()); - return model; + if (hasProperty(model, 'normalize')) { + validate('WorkflowExecTimeout', (model as any).normalize()); + } else { + validate('WorkflowExecTimeout', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type `Specification.WorkflowExecTimeout` - * @returns {Specification.WorkflowExecTimeout} A builder for `Specification.WorkflowExecTimeout` + * @returns {Specification.IWorkflowExecTimeout} A builder for `Specification.WorkflowExecTimeout` */ -export function workflowExecTimeoutBuilder(): Builder { - return builder(workflowExecTimeoutBuildingFn); +export function workflowExecTimeoutBuilder(): Builder { + return builder(workflowExecTimeoutBuildingFn); } diff --git a/src/lib/definitions/action.ts b/src/lib/definitions/action.ts index b57d098d..0b9d334b 100644 --- a/src/lib/definitions/action.ts +++ b/src/lib/definitions/action.ts @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { Actiondatafilter } from './actiondatafilter'; -import { Eventref } from './eventref'; -import { Functionref } from './functionref'; +import { IActiondatafilter, Actiondatafilter } from './actiondatafilter'; +import { IEventref, Eventref } from './eventref'; +import { IFunctionref, Functionref } from './functionref'; import { cleanSourceModelProperty, normalizeEventRef, @@ -27,10 +27,28 @@ import { overwriteSleep, overwriteSubFlowRef, } from './utils'; -import { Subflowref } from './subflowref'; -import { Sleep } from './sleep'; +import { ISubflowref, Subflowref } from './subflowref'; +import { ISleep, Sleep } from './sleep'; +import { toPlainObject } from 'lodash'; -export class Action { +export interface IAction { + sourceModel?: IAction; + id?: string; + name?: string; + functionRef?: string | IFunctionref; + eventRef?: IEventref; + subFlowRef?: string | ISubflowref; + sleep?: ISleep; + retryRef?: string; + nonRetryableErrors?: [string, ...string[]]; + retryableErrors?: [string, ...string[]]; + actionDataFilter?: IActiondatafilter; + condition?: string; + + normalize(): IAction; +} + +export class Action implements IAction { sourceModel?: Action; /** * Unique action identifier @@ -76,9 +94,9 @@ export class Action { /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. - * @returns {Specification.Action} without deleted properties. + * @returns {Specification.IAction} without deleted properties. */ - normalize = (): Action => { + normalize(): IAction { const clone = new Action(this); normalizeSubFlowRef(clone); @@ -87,6 +105,6 @@ export class Action { cleanSourceModelProperty(clone); - return clone; - }; + return toPlainObject(clone); + } } diff --git a/src/lib/definitions/actiondatafilter.ts b/src/lib/definitions/actiondatafilter.ts index a227be10..704ad221 100644 --- a/src/lib/definitions/actiondatafilter.ts +++ b/src/lib/definitions/actiondatafilter.ts @@ -14,7 +14,14 @@ * limitations under the License. */ -export class Actiondatafilter { +export interface IActiondatafilter { + fromStateData?: string; + useResults?: boolean; + results?: string; + toStateData?: string; +} + +export class Actiondatafilter implements IActiondatafilter { /** * Workflow expression that selects state data that the state action can use */ diff --git a/src/lib/definitions/authdef.ts b/src/lib/definitions/authdef.ts index 0d65cf1a..1bc49d5f 100644 --- a/src/lib/definitions/authdef.ts +++ b/src/lib/definitions/authdef.ts @@ -16,8 +16,18 @@ import { cleanSourceModelProperty, normalizeScheme, overwriteProperties } from './utils'; import { Properties } from './types'; +import { toPlainObject } from 'lodash'; -export class Authdef { +export interface IAuthdef { + sourceModel?: IAuthdef; + name: string; + scheme?: 'basic' | 'bearer' | 'oauth2'; + properties: string | Properties; + + normalize(): IAuthdef; +} + +export class Authdef implements IAuthdef { sourceModel?: Authdef; /** * Unique auth definition name @@ -40,15 +50,15 @@ export class Authdef { /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. - * @returns {Specification.Authdef} without deleted properties. + * @returns {Specification.IAuthdef} without deleted properties. */ - normalize = (): Authdef => { + normalize(): IAuthdef { const clone = new Authdef(this); normalizeScheme(clone, this.sourceModel); cleanSourceModelProperty(clone); - return clone; - }; + return toPlainObject(clone); + } } diff --git a/src/lib/definitions/basicpropsdef.ts b/src/lib/definitions/basicpropsdef.ts index fb07db82..e7c55ee3 100644 --- a/src/lib/definitions/basicpropsdef.ts +++ b/src/lib/definitions/basicpropsdef.ts @@ -14,10 +14,16 @@ * limitations under the License. */ -import { Metadata } from './metadata'; +import { IMetadata, Metadata } from './metadata'; import { overwriteMetadata } from './utils'; -export class Basicpropsdef { +export interface IBasicpropsdef { + username: string; + password: string; + metadata?: IMetadata; +} + +export class Basicpropsdef implements IBasicpropsdef { /** * String or a workflow expression. Contains the user name */ diff --git a/src/lib/definitions/bearerpropsdef.ts b/src/lib/definitions/bearerpropsdef.ts index bca83da8..7b6a39b7 100644 --- a/src/lib/definitions/bearerpropsdef.ts +++ b/src/lib/definitions/bearerpropsdef.ts @@ -14,10 +14,15 @@ * limitations under the License. */ -import { Metadata } from './metadata'; +import { IMetadata, Metadata } from './metadata'; import { overwriteMetadata } from './utils'; -export class Bearerpropsdef { +export interface IBearerpropsdef { + token: string; + metadata?: IMetadata; +} + +export class Bearerpropsdef implements IBearerpropsdef { /** * String or a workflow expression. Contains the token */ diff --git a/src/lib/definitions/branch.ts b/src/lib/definitions/branch.ts index 0ce27539..2695419c 100644 --- a/src/lib/definitions/branch.ts +++ b/src/lib/definitions/branch.ts @@ -14,11 +14,24 @@ * limitations under the License. */ -import { Action } from './action'; +import { IAction, Action } from './action'; import { cleanSourceModelProperty, normalizeActions, overwriteActions, overwritePropertyAsPlainType } from './utils'; import { ActionExecTimeout, BranchExecTimeout } from './types'; +import { toPlainObject } from 'lodash'; -export class Branch /* Branch Definition */ { +export interface IBranch { + sourceModel?: IBranch; + name: string; + timeouts?: { + actionExecTimeout?: ActionExecTimeout; + branchExecTimeout?: BranchExecTimeout; + }; + actions: IAction[]; + + normalize(): IBranch; +} + +export class Branch implements IBranch /* Branch Definition */ { sourceModel?: Branch; /** * Branch name @@ -46,13 +59,14 @@ export class Branch /* Branch Definition */ { /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. - * @returns {Specification.Branch} without deleted properties. + * @returns {Specification.IBranch} without deleted properties. */ - normalize = (): Branch => { + normalize(): IBranch { const clone = new Branch(this); normalizeActions(clone); cleanSourceModelProperty(clone); - return clone; - }; + + return toPlainObject(clone); + } } diff --git a/src/lib/definitions/callbackstate.ts b/src/lib/definitions/callbackstate.ts index 3b66b2e1..6d70c00c 100644 --- a/src/lib/definitions/callbackstate.ts +++ b/src/lib/definitions/callbackstate.ts @@ -14,13 +14,13 @@ * limitations under the License. */ -import { Action } from './action'; -import { End } from './end'; -import { Error } from './error'; -import { Eventdatafilter } from './eventdatafilter'; -import { Metadata } from './metadata'; -import { Statedatafilter } from './statedatafilter'; -import { Transition } from './transition'; +import { IAction, Action } from './action'; +import { IEnd, End } from './end'; +import { IError, Error } from './error'; +import { IEventdatafilter, Eventdatafilter } from './eventdatafilter'; +import { IMetadata, Metadata } from './metadata'; +import { IStatedatafilter, Statedatafilter } from './statedatafilter'; +import { ITransition, Transition } from './transition'; import { cleanSourceModelProperty, normalizeAction, @@ -39,9 +39,34 @@ import { setEndValueIfNoTransition, } from './utils'; import { ActionExecTimeout, EventTimeout } from './types'; -import { StateExecTimeout } from './stateExecTimeout'; +import { IStateExecTimeout, StateExecTimeout } from './stateExecTimeout'; +import { toPlainObject } from 'lodash'; -export class Callbackstate { +export interface ICallbackstate { + sourceModel?: ICallbackstate; + id?: string; + name?: string; + type?: 'callback'; + action?: IAction; + eventRef?: string; + timeouts?: { + stateExecTimeout?: IStateExecTimeout; + actionExecTimeout?: ActionExecTimeout; + eventTimeout?: EventTimeout; + }; + eventDataFilter?: IEventdatafilter; + stateDataFilter?: IStatedatafilter; + onErrors?: IError[]; + transition?: string | ITransition; + end?: boolean | IEnd; + compensatedBy?: string; + usedForCompensation?: boolean; + metadata?: IMetadata; + + normalize(): ICallbackstate; +} + +export class Callbackstate implements ICallbackstate { sourceModel?: Callbackstate; /** * Unique state id @@ -124,9 +149,9 @@ export class Callbackstate { /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. - * @returns {Specification.Callbackstate} without deleted properties. + * @returns {Specification.ICallbackstate} without deleted properties. */ - normalize = (): Callbackstate => { + normalize(): ICallbackstate { const clone = new Callbackstate(this); normalizeAction(clone); @@ -138,6 +163,6 @@ export class Callbackstate { cleanSourceModelProperty(clone); - return clone; - }; + return toPlainObject(clone); + } } diff --git a/src/lib/definitions/continueasdef.ts b/src/lib/definitions/continueasdef.ts index 0360d571..067ff840 100644 --- a/src/lib/definitions/continueasdef.ts +++ b/src/lib/definitions/continueasdef.ts @@ -15,13 +15,28 @@ * */ -import { WorkflowExecTimeout } from './workflowExecTimeout'; +import { IWorkflowExecTimeout, WorkflowExecTimeout } from './workflowExecTimeout'; import { cleanSourceModelProperty, normalizeWorkflowExecTimeout, overwritePropertyAsPlainType, overwriteWorkflowExecTimeout, } from './utils'; +import { toPlainObject } from 'lodash'; + +export interface IContinueasdef { + sourceModel?: IContinueasdef; + workflowId: string; + version?: string; + data?: + | string + | { + [key: string]: any; + }; + workflowExecTimeout?: IWorkflowExecTimeout; + + normalize(): IContinueasdef; +} export class Continueasdef { sourceModel?: Continueasdef; @@ -56,14 +71,14 @@ export class Continueasdef { /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. - * @returns {Specification.Exectimeout} without deleted properties. + * @returns {Specification.IContinueasdef} without deleted properties. */ - normalize = (): Continueasdef => { + normalize(): IContinueasdef { const clone = new Continueasdef(this); normalizeWorkflowExecTimeout(clone); cleanSourceModelProperty(clone); - return clone; - }; + return toPlainObject(clone); + } } diff --git a/src/lib/definitions/correlationDef.ts b/src/lib/definitions/correlationDef.ts index f487fd59..afdeec17 100644 --- a/src/lib/definitions/correlationDef.ts +++ b/src/lib/definitions/correlationDef.ts @@ -14,7 +14,12 @@ * limitations under the License. */ -export class CorrelationDef { +export interface ICorrelationDef { + contextAttributeName: string; + contextAttributeValue?: string; +} + +export class CorrelationDef implements ICorrelationDef { /** * CloudEvent Extension Context Attribute name */ diff --git a/src/lib/definitions/crondef.ts b/src/lib/definitions/crondef.ts index 50d3b101..aa69912e 100644 --- a/src/lib/definitions/crondef.ts +++ b/src/lib/definitions/crondef.ts @@ -14,7 +14,12 @@ * limitations under the License. */ -export class Crondef { +export interface ICrondef { + expression: string; + validUntil?: string; +} + +export class Crondef implements ICrondef { /** * Repeating interval (cron expression) describing when the workflow instance should be created */ diff --git a/src/lib/definitions/databasedswitchstate.ts b/src/lib/definitions/databasedswitchstate.ts index c0b14de9..659b8ca2 100644 --- a/src/lib/definitions/databasedswitchstate.ts +++ b/src/lib/definitions/databasedswitchstate.ts @@ -14,10 +14,10 @@ * limitations under the License. */ -import { Defaultconditiondef } from './defaultconditiondef'; -import { Error } from './error'; -import { Metadata } from './metadata'; -import { Statedatafilter } from './statedatafilter'; +import { IDefaultconditiondef, Defaultconditiondef } from './defaultconditiondef'; +import { IError, Error } from './error'; +import { IMetadata, Metadata } from './metadata'; +import { IStatedatafilter, Statedatafilter } from './statedatafilter'; import { cleanSourceModelProperty, normalizeDataConditions, @@ -32,9 +32,29 @@ import { overwriteTimeoutWithStateExecTimeout, } from './utils'; import { Datacondition } from './types'; -import { StateExecTimeout } from './stateExecTimeout'; +import { IStateExecTimeout, StateExecTimeout } from './stateExecTimeout'; +import { toPlainObject } from 'lodash'; -export class Databasedswitchstate { +export interface IDatabasedswitchstate { + sourceModel?: IDatabasedswitchstate; + id?: string; + name: string; + type: 'switch'; + stateDataFilter?: IStatedatafilter; + timeouts?: { + stateExecTimeout?: IStateExecTimeout; + }; + dataConditions: Datacondition[]; + onErrors?: IError[]; + defaultCondition: IDefaultconditiondef; + compensatedBy?: string; + usedForCompensation?: boolean; + metadata?: IMetadata; + + normalize(): IDatabasedswitchstate; +} + +export class Databasedswitchstate implements IDatabasedswitchstate { sourceModel?: Databasedswitchstate; /** * Unique State id @@ -96,9 +116,9 @@ export class Databasedswitchstate { /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. - * @returns {Specification.Databasedswitch} without deleted properties. + * @returns {Specification.IDatabasedswitchstate} without deleted properties. */ - normalize = (): Databasedswitchstate => { + normalize(): IDatabasedswitchstate { const clone = new Databasedswitchstate(this); normalizeDataConditions(clone); @@ -107,6 +127,6 @@ export class Databasedswitchstate { normalizeUsedForCompensation(clone, this.sourceModel); cleanSourceModelProperty(clone); - return clone; - }; + return toPlainObject(clone); + } } diff --git a/src/lib/definitions/defaultconditiondef.ts b/src/lib/definitions/defaultconditiondef.ts index 5617012d..cc57ca6a 100644 --- a/src/lib/definitions/defaultconditiondef.ts +++ b/src/lib/definitions/defaultconditiondef.ts @@ -14,8 +14,9 @@ * limitations under the License. */ -import { End } from './end'; -import { Transition } from './transition'; +import { toPlainObject } from 'lodash'; +import { IEnd, End } from './end'; +import { ITransition, Transition } from './transition'; import { cleanSourceModelProperty, normalizeEnd, @@ -25,7 +26,16 @@ import { setEndValueIfNoTransition, } from './utils'; -export class Defaultconditiondef /* DefaultCondition definition. Can be either a transition or end definition */ { +export interface IDefaultconditiondef { + sourceModel?: IDefaultconditiondef; + transition: string | ITransition; + end?: boolean | IEnd; + + normalize(): IDefaultconditiondef; +} + +export class Defaultconditiondef implements IDefaultconditiondef { + /* DefaultCondition definition. Can be either a transition or end definition */ sourceModel?: Defaultconditiondef; transition: string | Transition; end?: boolean | End; @@ -41,9 +51,9 @@ export class Defaultconditiondef /* DefaultCondition definition. Can be either a /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. - * @returns {Specification.Defaultdef} without deleted properties. + * @returns {Specification.IDefaultconditiondef} without deleted properties. */ - normalize = (): Defaultconditiondef => { + normalize(): IDefaultconditiondef { const clone = new Defaultconditiondef(this); normalizeEnd(clone); @@ -52,6 +62,6 @@ export class Defaultconditiondef /* DefaultCondition definition. Can be either a cleanSourceModelProperty(clone); - return clone; - }; + return toPlainObject(clone); + } } diff --git a/src/lib/definitions/end.ts b/src/lib/definitions/end.ts index 1339dc35..bec0c97f 100644 --- a/src/lib/definitions/end.ts +++ b/src/lib/definitions/end.ts @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { Produceeventdef } from './produceeventdef'; +import { IProduceeventdef, Produceeventdef } from './produceeventdef'; import { cleanSourceModelProperty, normalizeCompensate, @@ -22,7 +22,18 @@ import { overwriteContinueAs, overwriteProduceEvents, } from './utils'; -import { Continueasdef } from './continueasdef'; +import { IContinueasdef, Continueasdef } from './continueasdef'; +import { toPlainObject } from 'lodash'; + +export interface IEnd { + sourceModel?: IEnd; + terminate?: boolean; + produceEvents?: IProduceeventdef[]; + compensate?: boolean; + continueAs?: string | IContinueasdef; + + normalize(): IEnd; +} export class End { sourceModel?: End; @@ -55,9 +66,9 @@ export class End { /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. - * @returns {Specification.End} without deleted properties. + * @returns {Specification.IEnd} without deleted properties. */ - normalize = (): End => { + normalize(): IEnd { const clone = new End(this); normalizeCompensate(clone, this.sourceModel); @@ -65,6 +76,7 @@ export class End { normalizeContinueAs(clone); cleanSourceModelProperty(clone); - return clone; - }; + + return toPlainObject(clone); + } } diff --git a/src/lib/definitions/enddatacondition.ts b/src/lib/definitions/enddatacondition.ts index ce49f4dc..89f9c06a 100644 --- a/src/lib/definitions/enddatacondition.ts +++ b/src/lib/definitions/enddatacondition.ts @@ -13,11 +13,22 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { End } from './end'; -import { Metadata } from './metadata'; +import { toPlainObject } from 'lodash'; +import { IEnd, End } from './end'; +import { IMetadata, Metadata } from './metadata'; import { cleanSourceModelProperty, normalizeEnd, overwriteEnd, overwriteMetadata } from './utils'; -export class Enddatacondition { +export interface IEnddatacondition { + sourceModel?: IEnddatacondition; + name?: string; + condition: string; + end: boolean | IEnd; + metadata?: IMetadata; + + normalize(): IEnddatacondition; +} + +export class Enddatacondition implements IEnddatacondition { sourceModel?: Enddatacondition; /** * Data condition name @@ -44,15 +55,15 @@ export class Enddatacondition { /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. - * @returns {Specification.Enddatacondition} without deleted properties. + * @returns {Specification.IEnddatacondition} without deleted properties. */ - normalize = (): Enddatacondition => { + normalize(): IEnddatacondition { const clone = new Enddatacondition(this); normalizeEnd(clone); cleanSourceModelProperty(clone); - return clone; - }; + return toPlainObject(clone); + } } diff --git a/src/lib/definitions/enddeventcondition.ts b/src/lib/definitions/enddeventcondition.ts index fcd77e70..c51a3666 100644 --- a/src/lib/definitions/enddeventcondition.ts +++ b/src/lib/definitions/enddeventcondition.ts @@ -13,9 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { End } from './end'; -import { Eventdatafilter } from './eventdatafilter'; -import { Metadata } from './metadata'; +import { toPlainObject } from 'lodash'; +import { IEnd, End } from './end'; +import { IEventdatafilter, Eventdatafilter } from './eventdatafilter'; +import { IMetadata, Metadata } from './metadata'; import { cleanSourceModelProperty, normalizeEnd, @@ -24,7 +25,18 @@ import { overwriteMetadata, } from './utils'; -export class Enddeventcondition { +export interface IEnddeventcondition { + sourceModel?: IEnddeventcondition; + name?: string; + eventRef: string; + end: boolean | IEnd; + eventDataFilter?: IEventdatafilter; + metadata?: IMetadata; + + normalize(): IEnddeventcondition; +} + +export class Enddeventcondition implements IEnddeventcondition { sourceModel?: Enddeventcondition; /** * Event condition name @@ -56,15 +68,15 @@ export class Enddeventcondition { /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. - * @returns {Specification.Enddeventcondition} without deleted properties. + * @returns {Specification.IEnddeventcondition} without deleted properties. */ - normalize = (): Enddeventcondition => { + normalize(): IEnddeventcondition { const clone = new Enddeventcondition(this); normalizeEnd(clone); cleanSourceModelProperty(clone); - return clone; - }; + return toPlainObject(clone); + } } diff --git a/src/lib/definitions/error.ts b/src/lib/definitions/error.ts index 76e3863f..50732272 100644 --- a/src/lib/definitions/error.ts +++ b/src/lib/definitions/error.ts @@ -13,8 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { End } from './end'; -import { Transition } from './transition'; +import { toPlainObject } from 'lodash'; +import { IEnd, End } from './end'; +import { ITransition, Transition } from './transition'; import { cleanSourceModelProperty, normalizeEnd, @@ -24,7 +25,17 @@ import { setEndValueIfNoTransition, } from './utils'; -export class Error { +export interface IError { + sourceModel?: IError; + errorRef: string; + errorRefs?: [string, ...string[]]; + transition: string | ITransition; + end?: boolean | IEnd; + + normalize(): IError; +} + +export class Error implements IError { sourceModel?: Error; /** * Reference to a unique workflow error definition. Used of errorRefs is not used @@ -48,9 +59,9 @@ export class Error { /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. - * @returns {Specification.Error} without deleted properties. + * @returns {Specification.IError} without deleted properties. */ - normalize = (): Error => { + normalize(): IError { const clone = new Error(this); normalizeEnd(clone); @@ -59,6 +70,7 @@ export class Error { setEndValueIfNoTransition(clone); cleanSourceModelProperty(clone); - return clone; - }; + + return toPlainObject(clone); + } } diff --git a/src/lib/definitions/errordef.ts b/src/lib/definitions/errordef.ts index e0e56c26..e355c65f 100644 --- a/src/lib/definitions/errordef.ts +++ b/src/lib/definitions/errordef.ts @@ -14,7 +14,13 @@ * limitations under the License. */ -export class Errordef { +export interface IErrordef { + name: string; + code?: string; + description?: string; +} + +export class Errordef implements IErrordef { /** * Domain-specific error name */ diff --git a/src/lib/definitions/eventbasedswitchstate.ts b/src/lib/definitions/eventbasedswitchstate.ts index ac0c77d8..dc292194 100644 --- a/src/lib/definitions/eventbasedswitchstate.ts +++ b/src/lib/definitions/eventbasedswitchstate.ts @@ -14,10 +14,10 @@ * limitations under the License. */ -import { Defaultconditiondef } from './defaultconditiondef'; -import { Error } from './error'; -import { Metadata } from './metadata'; -import { Statedatafilter } from './statedatafilter'; +import { IDefaultconditiondef, Defaultconditiondef } from './defaultconditiondef'; +import { IError, Error } from './error'; +import { IMetadata, Metadata } from './metadata'; +import { IStatedatafilter, Statedatafilter } from './statedatafilter'; import { cleanSourceModelProperty, normalizeDefaultCondition, @@ -32,9 +32,30 @@ import { overwriteTimeoutWithStateExecTimeout, } from './utils'; import { Eventcondition, EventTimeout } from './types'; -import { StateExecTimeout } from './stateExecTimeout'; +import { IStateExecTimeout, StateExecTimeout } from './stateExecTimeout'; +import { toPlainObject } from 'lodash'; -export class Eventbasedswitchstate { +export interface IEventbasedswitchstate { + sourceModel?: IEventbasedswitchstate; + id?: string; + name: string; + type: 'switch'; + stateDataFilter?: IStatedatafilter; + timeouts?: { + stateExecTimeout?: IStateExecTimeout; + eventTimeout?: EventTimeout; + }; + eventConditions: Eventcondition[]; + onErrors?: IError[]; + defaultCondition: IDefaultconditiondef; + compensatedBy?: string; + usedForCompensation?: boolean; + metadata?: IMetadata; + + normalize(): IEventbasedswitchstate; +} + +export class Eventbasedswitchstate implements IEventbasedswitchstate { sourceModel?: Eventbasedswitchstate; /** * Unique State id @@ -97,9 +118,9 @@ export class Eventbasedswitchstate { /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. - * @returns {Specification.Eventbasedswitch} without deleted properties. + * @returns {Specification.IEventbasedswitchstate} without deleted properties. */ - normalize = (): Eventbasedswitchstate => { + normalize(): IEventbasedswitchstate { const clone = new Eventbasedswitchstate(this); normalizeEventConditions(clone); @@ -108,6 +129,7 @@ export class Eventbasedswitchstate { normalizeUsedForCompensation(clone, this.sourceModel); cleanSourceModelProperty(clone); - return clone; - }; + + return toPlainObject(clone); + } } diff --git a/src/lib/definitions/eventdatafilter.ts b/src/lib/definitions/eventdatafilter.ts index 28a22140..b8d230b8 100644 --- a/src/lib/definitions/eventdatafilter.ts +++ b/src/lib/definitions/eventdatafilter.ts @@ -14,7 +14,13 @@ * limitations under the License. */ -export class Eventdatafilter { +export interface IEventdatafilter { + useData?: boolean; + data?: string; + toStateData?: string; +} + +export class Eventdatafilter implements IEventdatafilter { /** * If set to false, event payload is not added/merged to state data. In this case 'data' and 'toStateData' should be ignored. Default is true. */ diff --git a/src/lib/definitions/eventdef.ts b/src/lib/definitions/eventdef.ts index 603acbc8..56076040 100644 --- a/src/lib/definitions/eventdef.ts +++ b/src/lib/definitions/eventdef.ts @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { Metadata } from './metadata'; +import { IMetadata, Metadata } from './metadata'; import { cleanSourceModelProperty, normalizeDataOnly, @@ -22,8 +22,22 @@ import { overwriteMetadata, } from './utils'; import { CorrelationDefs } from './types'; +import { toPlainObject } from 'lodash'; -export class Eventdef { +export interface IEventdef { + sourceModel?: IEventdef; + name?: string; + source?: string; + type?: string; + kind?: 'consumed' | 'produced'; + correlation?: CorrelationDefs; + dataOnly?: boolean; + metadata?: IMetadata; + + normalize(): IEventdef; +} + +export class Eventdef implements IEventdef { sourceModel?: Eventdef; /** * Unique event name @@ -69,15 +83,16 @@ export class Eventdef { /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. - * @returns {Specification.Eventdef} without deleted properties. + * @returns {Specification.IEventdef} without deleted properties. */ - normalize = (): Eventdef => { + normalize(): IEventdef { const clone = new Eventdef(this); normalizeKind(clone, this.sourceModel); normalizeDataOnly(clone, this.sourceModel); cleanSourceModelProperty(clone); - return clone; - }; + + return toPlainObject(clone); + } } diff --git a/src/lib/definitions/eventref.ts b/src/lib/definitions/eventref.ts index c89e3dd8..dd4d1c34 100644 --- a/src/lib/definitions/eventref.ts +++ b/src/lib/definitions/eventref.ts @@ -14,9 +14,28 @@ * limitations under the License. */ +import { toPlainObject } from 'lodash'; import { cleanSourceModelProperty, normalizeInvoke, overwritePropertyAsPlainType } from './utils'; -export class Eventref { +export interface IEventref { + sourceModel?: IEventref; + triggerEventRef: string; + resultEventRef: string; + resultEventTimeout?: string; + data?: + | string + | { + [key: string]: any; + }; + contextAttributes?: { + [name: string]: string; + }; + invoke?: 'sync' | 'async'; + + normalize(): IEventref; +} + +export class Eventref implements IEventref { sourceModel?: Eventref; /** * Reference to the unique name of a 'produced' event definition @@ -59,15 +78,15 @@ export class Eventref { /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. - * @returns {Specification.Eventref} without deleted properties. + * @returns {Specification.IEventref} without deleted properties. */ - normalize = (): Eventref => { + normalize(): IEventref { const clone = new Eventref(this); normalizeInvoke(clone, this.sourceModel); cleanSourceModelProperty(clone); - return clone; - }; + return toPlainObject(clone); + } } diff --git a/src/lib/definitions/eventstate.ts b/src/lib/definitions/eventstate.ts index f26a8d66..80388430 100644 --- a/src/lib/definitions/eventstate.ts +++ b/src/lib/definitions/eventstate.ts @@ -13,12 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { End } from './end'; -import { Error } from './error'; -import { Metadata } from './metadata'; -import { Onevents } from './onevents'; -import { Statedatafilter } from './statedatafilter'; -import { Transition } from './transition'; +import { IEnd, End } from './end'; +import { IError, Error } from './error'; +import { IMetadata, Metadata } from './metadata'; +import { IOnevents, Onevents } from './onevents'; +import { IStatedatafilter, Statedatafilter } from './statedatafilter'; +import { ITransition, Transition } from './transition'; import { cleanSourceModelProperty, normalizeEnd, @@ -36,9 +36,33 @@ import { setEndValueIfNoTransition, } from './utils'; import { ActionExecTimeout, EventTimeout } from './types'; -import { StateExecTimeout } from './stateExecTimeout'; +import { IStateExecTimeout, StateExecTimeout } from './stateExecTimeout'; +import { toPlainObject } from 'lodash'; -export class Eventstate /* This state is used to wait for events from event sources, then consumes them and invoke one or more actions to run in sequence or parallel */ { +export interface IEventstate { + sourceModel?: IEventstate; + id?: string; + name: string; + type: 'event'; + exclusive?: boolean; + onEvents: IOnevents[]; + timeouts?: { + stateExecTimeout?: IStateExecTimeout; + actionExecTimeout?: ActionExecTimeout; + eventTimeout?: EventTimeout; + }; + stateDataFilter?: IStatedatafilter; + onErrors?: IError[]; + transition?: string | ITransition; + end: boolean | IEnd; + compensatedBy?: string; + metadata?: IMetadata; + + normalize(): IEventstate; +} + +export class Eventstate implements IEventstate { + /* This state is used to wait for events from event sources, then consumes them and invoke one or more actions to run in sequence or parallel */ sourceModel?: Eventstate; /** * Unique State id @@ -103,9 +127,9 @@ export class Eventstate /* This state is used to wait for events from event sour /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. - * @returns {Specification.Eventstate} without deleted properties. + * @returns {Specification.IEventstate} without deleted properties. */ - normalize = (): Eventstate => { + normalize(): IEventstate { const clone = new Eventstate(this); normalizeExclusive(clone, this.sourceModel); @@ -117,6 +141,6 @@ export class Eventstate /* This state is used to wait for events from event sour cleanSourceModelProperty(clone); - return clone; - }; + return toPlainObject(clone); + } } diff --git a/src/lib/definitions/foreachstate.ts b/src/lib/definitions/foreachstate.ts index 98a83b76..a73036bc 100644 --- a/src/lib/definitions/foreachstate.ts +++ b/src/lib/definitions/foreachstate.ts @@ -13,12 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { Action } from './action'; -import { End } from './end'; -import { Error } from './error'; -import { Metadata } from './metadata'; -import { Statedatafilter } from './statedatafilter'; -import { Transition } from './transition'; +import { IAction, Action } from './action'; +import { IEnd, End } from './end'; +import { IError, Error } from './error'; +import { IMetadata, Metadata } from './metadata'; +import { IStatedatafilter, Statedatafilter } from './statedatafilter'; +import { ITransition, Transition } from './transition'; import { cleanSourceModelProperty, normalizeActions, @@ -37,9 +37,36 @@ import { setEndValueIfNoTransition, } from './utils'; import { ActionExecTimeout } from './types'; -import { StateExecTimeout } from './stateExecTimeout'; +import { IStateExecTimeout, StateExecTimeout } from './stateExecTimeout'; +import { toPlainObject } from 'lodash'; -export class Foreachstate { +export interface IForeachstate { + sourceModel?: IForeachstate; + id?: string; + name?: string; + type?: 'foreach'; + end?: boolean | IEnd; + inputCollection?: string; + outputCollection?: string; + iterationParam?: string; + batchSize?: number | string; + actions?: IAction[]; + timeouts?: { + stateExecTimeout?: IStateExecTimeout; + actionExecTimeout?: ActionExecTimeout; + }; + stateDataFilter?: IStatedatafilter; + onErrors?: IError[]; + transition?: string | ITransition; + compensatedBy?: string; + usedForCompensation?: boolean; + mode?: 'sequential' | 'parallel'; + metadata?: IMetadata; + + normalize(): IForeachstate; +} + +export class Foreachstate implements IForeachstate { sourceModel?: Foreachstate; /** * Unique State id @@ -133,9 +160,9 @@ export class Foreachstate { /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. - * @returns {Specification.Foreachstate} without deleted properties. + * @returns {Specification.IForeachstate} without deleted properties. */ - normalize = (): Foreachstate => { + normalize(): IForeachstate { const clone = new Foreachstate(this); normalizeEnd(clone); @@ -148,6 +175,6 @@ export class Foreachstate { cleanSourceModelProperty(clone); - return clone; - }; + return toPlainObject(clone); + } } diff --git a/src/lib/definitions/function.ts b/src/lib/definitions/function.ts index 94446c99..166108b2 100644 --- a/src/lib/definitions/function.ts +++ b/src/lib/definitions/function.ts @@ -15,9 +15,21 @@ */ import { cleanSourceModelProperty, normalizeType, overwriteMetadata } from './utils'; -import { Metadata } from './metadata'; +import { IMetadata, Metadata } from './metadata'; +import { toPlainObject } from 'lodash'; -export class Function { +export interface IFunction { + sourceModel?: IFunction; + name: string; + operation: string; + type?: 'rest' | 'asyncapi' | 'rpc' | 'graphql' | 'odata' | 'expression' | 'custom'; + authRef?: string; + metadata?: IMetadata; + + normalize(): IFunction; +} + +export class Function implements IFunction { sourceModel?: Function; /** * Unique function name @@ -47,16 +59,15 @@ export class Function { /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. - * @returns {Specification.Function} without deleted properties. + * @returns {Specification.IFunction} without deleted properties. */ - - normalize = (): Function => { + normalize(): IFunction { const clone = new Function(this); normalizeType(clone, this.sourceModel); cleanSourceModelProperty(clone); - return clone; - }; + return toPlainObject(clone); + } } diff --git a/src/lib/definitions/functionref.ts b/src/lib/definitions/functionref.ts index b969bcec..54c71e0d 100644 --- a/src/lib/definitions/functionref.ts +++ b/src/lib/definitions/functionref.ts @@ -14,9 +14,22 @@ * limitations under the License. */ +import { toPlainObject } from 'lodash'; import { cleanSourceModelProperty, normalizeInvoke, overwritePropertyAsPlainType } from './utils'; -export class Functionref { +export interface IFunctionref { + sourceModel?: IFunctionref; + refName: string; + arguments?: { + [key: string]: any; + }; + selectionSet?: string; + invoke?: 'sync' | 'async'; + + normalize(): IFunctionref; +} + +export class Functionref implements IFunctionref { sourceModel?: Functionref; /** * Name of the referenced function @@ -46,15 +59,15 @@ export class Functionref { /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. - * @returns {Specification.Functionref} without deleted properties. + * @returns {Specification.IFunctionref} without deleted properties. */ - normalize = (): Functionref => { + normalize(): IFunctionref { const clone = new Functionref(this); normalizeInvoke(clone, this.sourceModel); cleanSourceModelProperty(clone); - return clone; - }; + return toPlainObject(clone); + } } diff --git a/src/lib/definitions/injectstate.ts b/src/lib/definitions/injectstate.ts index e0a3cf12..dbfae4d7 100644 --- a/src/lib/definitions/injectstate.ts +++ b/src/lib/definitions/injectstate.ts @@ -14,10 +14,10 @@ * limitations under the License. */ -import { End } from './end'; -import { Metadata } from './metadata'; -import { Statedatafilter } from './statedatafilter'; -import { Transition } from './transition'; +import { IEnd, End } from './end'; +import { IMetadata, Metadata } from './metadata'; +import { IStatedatafilter, Statedatafilter } from './statedatafilter'; +import { ITransition, Transition } from './transition'; import { cleanSourceModelProperty, normalizeEnd, @@ -31,9 +31,31 @@ import { overwriteTransition, setEndValueIfNoTransition, } from './utils'; -import { StateExecTimeout } from './stateExecTimeout'; +import { IStateExecTimeout, StateExecTimeout } from './stateExecTimeout'; +import { toPlainObject } from 'lodash'; -export class Injectstate { +export interface IInjectstate { + sourceModel?: IInjectstate; + id?: string; + name?: string; + type?: 'inject'; + end?: boolean | IEnd; + data?: { + [key: string]: any; + }; + timeouts?: { + stateExecTimeout?: IStateExecTimeout; + }; + stateDataFilter?: IStatedatafilter; + transition?: string | ITransition; + compensatedBy?: string; + usedForCompensation?: boolean; + metadata?: IMetadata; + + normalize(): IInjectstate; +} + +export class Injectstate implements IInjectstate { sourceModel?: Injectstate; /** * Unique state id @@ -102,9 +124,9 @@ export class Injectstate { /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. - * @returns {Specification.Injectstate} without deleted properties. + * @returns {Specification.IInjectstate} without deleted properties. */ - normalize = (): Injectstate => { + normalize(): IInjectstate { const clone = new Injectstate(this); normalizeEnd(clone); @@ -114,6 +136,6 @@ export class Injectstate { cleanSourceModelProperty(clone); - return clone; - }; + return toPlainObject(clone); + } } diff --git a/src/lib/definitions/metadata.ts b/src/lib/definitions/metadata.ts index 9e191da1..02d3fcdc 100644 --- a/src/lib/definitions/metadata.ts +++ b/src/lib/definitions/metadata.ts @@ -14,7 +14,11 @@ * limitations under the License. */ -export class Metadata { +export interface IMetadata { + [name: string]: string; +} + +export class Metadata implements IMetadata { constructor(model: any) { Object.assign(this, model); } diff --git a/src/lib/definitions/oauth2propsdef.ts b/src/lib/definitions/oauth2propsdef.ts index d297c55e..c2520bfe 100644 --- a/src/lib/definitions/oauth2propsdef.ts +++ b/src/lib/definitions/oauth2propsdef.ts @@ -14,10 +14,25 @@ * limitations under the License. */ -import { Metadata } from './metadata'; +import { IMetadata, Metadata } from './metadata'; import { overwriteMetadata } from './utils'; -export class Oauth2propsdef { +export interface IOauth2propsdef { + authority?: string; + grantType: 'password' | 'clientCredentials' | 'tokenExchange'; + clientId: string; + clientSecret?: string; + scopes?: [string, ...string[]]; + username?: string; + password?: string; + audiences?: [string, ...string[]]; + subjectToken?: string; + requestedSubject?: string; + requestedIssuer?: string; + metadata?: IMetadata; +} + +export class Oauth2propsdef implements IOauth2propsdef { /** * String or a workflow expression. Contains the authority information */ diff --git a/src/lib/definitions/onevents.ts b/src/lib/definitions/onevents.ts index fc30353a..3f395dee 100644 --- a/src/lib/definitions/onevents.ts +++ b/src/lib/definitions/onevents.ts @@ -13,8 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { Action } from './action'; -import { Eventdatafilter } from './eventdatafilter'; +import { toPlainObject } from 'lodash'; +import { IAction, Action } from './action'; +import { IEventdatafilter, Eventdatafilter } from './eventdatafilter'; import { cleanSourceModelProperty, normalizeActionMode, @@ -23,7 +24,17 @@ import { overwriteEventDataFilter, } from './utils'; -export class Onevents { +export interface IOnevents { + sourceModel?: IOnevents; + eventRefs: [string, ...string[]]; + actionMode?: 'sequential' | 'parallel'; + actions?: IAction[]; + eventDataFilter?: IEventdatafilter; + + normalize(): IOnevents; +} + +export class Onevents implements IOnevents { sourceModel?: Onevents; /** * References one or more unique event names in the defined workflow events @@ -54,9 +65,9 @@ export class Onevents { /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. - * @returns {Specification.Onevents} without deleted properties. + * @returns {Specification.IOnevents} without deleted properties. */ - normalize = (): Onevents => { + normalize(): IOnevents { const clone = new Onevents(this); normalizeActionMode(clone, this.sourceModel); @@ -64,6 +75,6 @@ export class Onevents { cleanSourceModelProperty(clone); - return clone; - }; + return toPlainObject(clone); + } } diff --git a/src/lib/definitions/operationstate.ts b/src/lib/definitions/operationstate.ts index 70823c09..381595c0 100644 --- a/src/lib/definitions/operationstate.ts +++ b/src/lib/definitions/operationstate.ts @@ -13,12 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { Action } from './action'; -import { End } from './end'; -import { Error } from './error'; -import { Metadata } from './metadata'; -import { Statedatafilter } from './statedatafilter'; -import { Transition } from './transition'; +import { Action, IAction } from './action'; +import { End, IEnd } from './end'; +import { Error, IError } from './error'; +import { IMetadata, Metadata } from './metadata'; +import { IStatedatafilter, Statedatafilter } from './statedatafilter'; +import { ITransition, Transition } from './transition'; import { cleanSourceModelProperty, normalizeActionMode, @@ -37,9 +37,32 @@ import { setEndValueIfNoTransition, } from './utils'; import { ActionExecTimeout } from './types'; -import { StateExecTimeout } from './stateExecTimeout'; +import { IStateExecTimeout, StateExecTimeout } from './stateExecTimeout'; +import { toPlainObject } from 'lodash'; -export class Operationstate { +export interface IOperationstate { + sourceModel?: IOperationstate; + id?: string; + name?: string; + type?: 'operation'; + end?: boolean | IEnd; + stateDataFilter?: IStatedatafilter; + actionMode?: 'sequential' | 'parallel'; + actions?: IAction[]; + timeouts?: { + stateExecTimeout?: IStateExecTimeout; + actionExecTimeout?: ActionExecTimeout; + }; + onErrors?: IError[]; + transition?: string | ITransition; + compensatedBy?: string; + usedForCompensation?: boolean; + metadata?: IMetadata; + + normalize(): IOperationstate; +} + +export class Operationstate implements IOperationstate { sourceModel?: Operationstate; /** * Unique State id @@ -117,9 +140,9 @@ export class Operationstate { /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. - * @returns {Specification.Operationstate} without deleted properties. + * @returns {Specification.IOperationstate} without deleted properties. */ - normalize = (): Operationstate => { + normalize(): IOperationstate { const clone = new Operationstate(this); normalizeEnd(clone); @@ -134,6 +157,6 @@ export class Operationstate { cleanSourceModelProperty(clone); - return clone; - }; + return toPlainObject(clone); + } } diff --git a/src/lib/definitions/parallelstate.ts b/src/lib/definitions/parallelstate.ts index 32761c3e..ca58e44c 100644 --- a/src/lib/definitions/parallelstate.ts +++ b/src/lib/definitions/parallelstate.ts @@ -14,12 +14,12 @@ * limitations under the License. */ -import { Branch } from './branch'; -import { End } from './end'; -import { Error } from './error'; -import { Metadata } from './metadata'; -import { Statedatafilter } from './statedatafilter'; -import { Transition } from './transition'; +import { IBranch, Branch } from './branch'; +import { IEnd, End } from './end'; +import { IError, Error } from './error'; +import { IMetadata, Metadata } from './metadata'; +import { IStatedatafilter, Statedatafilter } from './statedatafilter'; +import { ITransition, Transition } from './transition'; import { cleanSourceModelProperty, normalizeBranches, @@ -38,9 +38,33 @@ import { setEndValueIfNoTransition, } from './utils'; import { BranchExecTimeout } from './types'; -import { StateExecTimeout } from './stateExecTimeout'; +import { IStateExecTimeout, StateExecTimeout } from './stateExecTimeout'; +import { toPlainObject } from 'lodash'; -export class Parallelstate { +export interface IParallelstate { + sourceModel?: IParallelstate; + id?: string; + name?: string; + type?: 'parallel'; + end?: boolean | IEnd; + stateDataFilter?: IStatedatafilter; + timeouts?: { + stateExecTimeout?: IStateExecTimeout; + branchExecTimeout?: BranchExecTimeout; + }; + branches?: IBranch[]; + completionType?: 'allOf' | 'atLeast'; + numCompleted?: number | string; + onErrors?: IError[]; + transition?: string | ITransition; + compensatedBy?: string; + usedForCompensation?: boolean; + metadata?: IMetadata; + + normalize(): IParallelstate; +} + +export class Parallelstate implements IParallelstate { sourceModel?: Parallelstate; /** * Unique State id @@ -122,9 +146,9 @@ export class Parallelstate { /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. - * @returns {Specification.Parallelstate} without deleted properties. + * @returns {Specification.IParallelstate} without deleted properties. */ - normalize = (): Parallelstate => { + normalize(): IParallelstate { const clone = new Parallelstate(this); normalizeEnd(clone); @@ -137,6 +161,6 @@ export class Parallelstate { cleanSourceModelProperty(clone); - return clone; - }; + return toPlainObject(clone); + } } diff --git a/src/lib/definitions/produceeventdef.ts b/src/lib/definitions/produceeventdef.ts index d0bb5504..7c80b021 100644 --- a/src/lib/definitions/produceeventdef.ts +++ b/src/lib/definitions/produceeventdef.ts @@ -16,7 +16,19 @@ import { overwritePropertyAsPlainType } from './utils'; -export class Produceeventdef { +export interface IProduceeventdef { + eventRef: string; + data?: + | string + | { + [key: string]: any; + }; + contextAttributes?: { + [name: string]: string; + }; +} + +export class Produceeventdef implements IProduceeventdef { /** * References a name of a defined event */ diff --git a/src/lib/definitions/retrydef.ts b/src/lib/definitions/retrydef.ts index e0a141b9..ac43a213 100644 --- a/src/lib/definitions/retrydef.ts +++ b/src/lib/definitions/retrydef.ts @@ -14,7 +14,17 @@ * limitations under the License. */ -export class Retrydef { +export interface IRetrydef { + name: string; + delay?: string; + maxDelay?: string; + increment?: string; + multiplier?: number | string; + maxAttempts: number | string; + jitter?: number | string; +} + +export class Retrydef implements IRetrydef { /** * Unique retry strategy name */ diff --git a/src/lib/definitions/schedule.ts b/src/lib/definitions/schedule.ts index f6064ab7..bf646ba3 100644 --- a/src/lib/definitions/schedule.ts +++ b/src/lib/definitions/schedule.ts @@ -13,10 +13,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { Crondef } from './crondef'; +import { ICrondef, Crondef } from './crondef'; import { overwriteCron } from './utils'; -export class Schedule { +export interface ISchedule { + interval?: string; + cron?: string | ICrondef; + timezone?: string; +} + +export class Schedule implements ISchedule { /** * Time interval (must be repeating interval) described with ISO 8601 format. Declares when workflow instances will be automatically created. */ diff --git a/src/lib/definitions/sleep.ts b/src/lib/definitions/sleep.ts index f9c45b0c..ffdd98d1 100644 --- a/src/lib/definitions/sleep.ts +++ b/src/lib/definitions/sleep.ts @@ -14,7 +14,12 @@ * limitations under the License. */ -export class Sleep { +export interface ISleep { + before: string; + after?: string; +} + +export class Sleep implements ISleep { /** * Amount of time (ISO 8601 duration format) to sleep before function/subflow invocation. Does not apply if 'eventRef' is defined. */ diff --git a/src/lib/definitions/sleepstate.ts b/src/lib/definitions/sleepstate.ts index 0895db1c..dd4b3de6 100644 --- a/src/lib/definitions/sleepstate.ts +++ b/src/lib/definitions/sleepstate.ts @@ -14,11 +14,11 @@ * limitations under the License. */ -import { End } from './end'; -import { Error } from './error'; -import { Metadata } from './metadata'; -import { Statedatafilter } from './statedatafilter'; -import { Transition } from './transition'; +import { IEnd, End } from './end'; +import { IError, Error } from './error'; +import { IMetadata, Metadata } from './metadata'; +import { IStatedatafilter, Statedatafilter } from './statedatafilter'; +import { ITransition, Transition } from './transition'; import { cleanSourceModelProperty, normalizeEnd, @@ -33,9 +33,30 @@ import { overwriteTransition, setEndValueIfNoTransition, } from './utils'; -import { StateExecTimeout } from './stateExecTimeout'; +import { IStateExecTimeout, StateExecTimeout } from './stateExecTimeout'; +import { toPlainObject } from 'lodash'; -export class Sleepstate { +export interface ISleepstate { + sourceModel?: ISleepstate; + id?: string; + name?: string; + type?: 'sleep'; + end?: boolean | IEnd; + stateDataFilter?: IStatedatafilter; + duration?: string; + timeouts?: { + stateExecTimeout?: IStateExecTimeout; + }; + onErrors?: IError[]; + transition?: string | ITransition; + compensatedBy?: string; + usedForCompensation?: boolean; + metadata?: IMetadata; + + normalize(): ISleepstate; +} + +export class Sleepstate implements ISleepstate { sourceModel?: Sleepstate; /** * Unique State id @@ -106,9 +127,9 @@ export class Sleepstate { /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. - * @returns {Specification.Delaystate} without deleted properties. + * @returns {Specification.ISleepstate} without deleted properties. */ - normalize = (): Sleepstate => { + normalize(): ISleepstate { const clone = new Sleepstate(this); normalizeEnd(clone); @@ -119,6 +140,6 @@ export class Sleepstate { cleanSourceModelProperty(clone); - return clone; - }; + return toPlainObject(clone); + } } diff --git a/src/lib/definitions/startdef.ts b/src/lib/definitions/startdef.ts index 088494a9..2567982d 100644 --- a/src/lib/definitions/startdef.ts +++ b/src/lib/definitions/startdef.ts @@ -13,10 +13,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { Schedule } from './schedule'; +import { ISchedule, Schedule } from './schedule'; import { overwriteSchedule } from './utils'; -export class Startdef { +export interface IStartdef { + stateName: string; + schedule: string | ISchedule; +} + +export class Startdef implements IStartdef { /** * Name of the starting workflow state */ diff --git a/src/lib/definitions/stateExecTimeout.ts b/src/lib/definitions/stateExecTimeout.ts index f872a266..c1b61612 100644 --- a/src/lib/definitions/stateExecTimeout.ts +++ b/src/lib/definitions/stateExecTimeout.ts @@ -14,7 +14,12 @@ * limitations under the License. */ -export class StateExecTimeout { +export interface IStateExecTimeout { + single?: string; + total: string; +} + +export class StateExecTimeout implements IStateExecTimeout { /** * Single state execution timeout, not including retries (ISO 8601 duration format) */ diff --git a/src/lib/definitions/statedatafilter.ts b/src/lib/definitions/statedatafilter.ts index f55234ec..b56dd7e7 100644 --- a/src/lib/definitions/statedatafilter.ts +++ b/src/lib/definitions/statedatafilter.ts @@ -14,7 +14,12 @@ * limitations under the License. */ -export class Statedatafilter { +export interface IStatedatafilter { + input?: string; + output?: string; +} + +export class Statedatafilter implements IStatedatafilter { /** * Workflow expression to filter the state data input */ diff --git a/src/lib/definitions/subflowref.ts b/src/lib/definitions/subflowref.ts index 5becbe40..9960857d 100644 --- a/src/lib/definitions/subflowref.ts +++ b/src/lib/definitions/subflowref.ts @@ -14,9 +14,20 @@ * limitations under the License. */ +import { toPlainObject } from 'lodash'; import { cleanSourceModelProperty, normalizeInvoke, normalizeOnParentComplete } from './utils'; -export class Subflowref { +export interface ISubflowref { + sourceModel?: ISubflowref; + workflowId: string; + version?: string; + onParentComplete?: 'continue' | 'terminate'; + invoke?: 'sync' | 'async'; + + normalize(): ISubflowref; +} + +export class Subflowref implements ISubflowref { sourceModel?: Subflowref; /** * Unique id of the sub-workflow to be invoked @@ -43,15 +54,16 @@ export class Subflowref { /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. - * @returns {Specification.Subflowref} without deleted properties. + * @returns {Specification.ISubflowref} without deleted properties. */ - normalize = (): Subflowref => { + normalize(): ISubflowref { const clone = new Subflowref(this); normalizeInvoke(clone, this.sourceModel); normalizeOnParentComplete(clone, this.sourceModel); cleanSourceModelProperty(clone); - return clone; - }; + + return toPlainObject(clone); + } } diff --git a/src/lib/definitions/timeouts.ts b/src/lib/definitions/timeouts.ts index 0f07aca0..8ad16dee 100644 --- a/src/lib/definitions/timeouts.ts +++ b/src/lib/definitions/timeouts.ts @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { WorkflowExecTimeout } from './workflowExecTimeout'; +import { IWorkflowExecTimeout, WorkflowExecTimeout } from './workflowExecTimeout'; import { ActionExecTimeout, BranchExecTimeout, EventTimeout } from './types'; import { cleanSourceModelProperty, @@ -21,9 +21,21 @@ import { overwriteStateExecTimeout, overwriteWorkflowExecTimeout, } from './utils'; -import { StateExecTimeout } from './stateExecTimeout'; +import { IStateExecTimeout, StateExecTimeout } from './stateExecTimeout'; +import { toPlainObject } from 'lodash'; -export class Timeouts { +export interface ITimeouts { + sourceModel?: ITimeouts; + workflowExecTimeout?: IWorkflowExecTimeout; + stateExecTimeout?: IStateExecTimeout; + actionExecTimeout?: ActionExecTimeout; + branchExecTimeout?: BranchExecTimeout; + eventTimeout?: EventTimeout; + + normalize(): ITimeouts; +} + +export class Timeouts implements ITimeouts { sourceModel?: Timeouts; workflowExecTimeout?: WorkflowExecTimeout; stateExecTimeout?: StateExecTimeout; @@ -41,13 +53,14 @@ export class Timeouts { /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. - * @returns {Specification.Exectimeout} without deleted properties. + * @returns {Specification.ITimeouts} without deleted properties. */ - normalize = (): Timeouts => { + normalize(): ITimeouts { const clone = new Timeouts(this); normalizeWorkflowExecTimeout(clone); cleanSourceModelProperty(clone); - return clone; - }; + + return toPlainObject(clone); + } } diff --git a/src/lib/definitions/transition.ts b/src/lib/definitions/transition.ts index 4477f616..9331e9f5 100644 --- a/src/lib/definitions/transition.ts +++ b/src/lib/definitions/transition.ts @@ -13,9 +13,19 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { Produceeventdef } from './produceeventdef'; +import { toPlainObject } from 'lodash'; +import { IProduceeventdef, Produceeventdef } from './produceeventdef'; import { cleanSourceModelProperty, normalizeCompensate, overwriteProduceEvents } from './utils'; +export interface ITransition { + sourceModel?: ITransition; + nextState: string; + produceEvents?: IProduceeventdef[]; + compensate?: boolean; + + normalize(): ITransition; +} + export class Transition { sourceModel?: Transition; /** @@ -44,14 +54,15 @@ export class Transition { /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. - * @returns {Specification.Transition} without deleted properties. + * @returns {Specification.ITransition} without deleted properties. */ - normalize = (): Transition => { + normalize(): ITransition { const clone = new Transition(this); normalizeCompensate(clone, this.sourceModel); cleanSourceModelProperty(clone); - return clone; - }; + + return toPlainObject(clone); + } } diff --git a/src/lib/definitions/transitiondatacondition.ts b/src/lib/definitions/transitiondatacondition.ts index 65dda3b9..b2abc3b8 100644 --- a/src/lib/definitions/transitiondatacondition.ts +++ b/src/lib/definitions/transitiondatacondition.ts @@ -13,12 +13,23 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { Metadata } from './metadata'; -import { Transition } from './transition'; +import { toPlainObject } from 'lodash'; +import { IMetadata, Metadata } from './metadata'; +import { ITransition, Transition } from './transition'; import { cleanSourceModelProperty, normalizeTransition, overwriteMetadata, overwriteTransition } from './utils'; -export class Transitiondatacondition { - sourceModel?: Transitiondatacondition; +export interface ITransitiondatacondition { + sourceModel?: ITransitiondatacondition; + name?: string; + condition: string; + transition: string | ITransition; + metadata?: IMetadata; + + normalize(): ITransitiondatacondition; +} + +export class Transitiondatacondition implements ITransitiondatacondition { + sourceModel?: ITransitiondatacondition; /** * Data condition name */ @@ -44,14 +55,15 @@ export class Transitiondatacondition { /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. - * @returns {Specification.Transitiondatacondition} without deleted properties. + * @returns {Specification.ITransitiondatacondition} without deleted properties. */ - normalize = (): Transitiondatacondition => { + normalize(): ITransitiondatacondition { const clone = new Transitiondatacondition(this); normalizeTransition(clone); cleanSourceModelProperty(clone); - return clone; - }; + + return toPlainObject(clone); + } } diff --git a/src/lib/definitions/transitioneventcondition.ts b/src/lib/definitions/transitioneventcondition.ts index 7fe0bd89..bdb83da4 100644 --- a/src/lib/definitions/transitioneventcondition.ts +++ b/src/lib/definitions/transitioneventcondition.ts @@ -13,9 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { Eventdatafilter } from './eventdatafilter'; -import { Metadata } from './metadata'; -import { Transition } from './transition'; +import { toPlainObject } from 'lodash'; +import { IEventdatafilter, Eventdatafilter } from './eventdatafilter'; +import { IMetadata, Metadata } from './metadata'; +import { ITransition, Transition } from './transition'; import { cleanSourceModelProperty, normalizeTransition, @@ -24,7 +25,18 @@ import { overwriteTransition, } from './utils'; -export class Transitioneventcondition { +export interface ITransitioneventcondition { + sourceModel?: ITransitioneventcondition; + name?: string; + eventRef: string; + transition: string | ITransition; + eventDataFilter?: IEventdatafilter; + metadata?: IMetadata; + + normalize(): ITransitioneventcondition; +} + +export class Transitioneventcondition implements ITransitioneventcondition { sourceModel?: Transitioneventcondition; /** * Event condition name @@ -56,14 +68,15 @@ export class Transitioneventcondition { /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. - * @returns {Specification.Transitioneventcondition} without deleted properties. + * @returns {Specification.ITransitioneventcondition} without deleted properties. */ - normalize = (): Transitioneventcondition => { + normalize(): ITransitioneventcondition { const clone = new Transitioneventcondition(this); normalizeTransition(clone); cleanSourceModelProperty(clone); - return clone; - }; + + return toPlainObject(clone); + } } diff --git a/src/lib/definitions/types.ts b/src/lib/definitions/types.ts index b6055c16..1c508da0 100644 --- a/src/lib/definitions/types.ts +++ b/src/lib/definitions/types.ts @@ -13,68 +13,68 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { CorrelationDef } from './correlationDef'; -import { Transitiondatacondition } from './transitiondatacondition'; -import { Enddatacondition } from './enddatacondition'; -import { Retrydef } from './retrydef'; -import { Function } from './function'; -import { Databasedswitchstate } from './databasedswitchstate'; -import { Eventbasedswitchstate } from './eventbasedswitchstate'; -import { Transitioneventcondition } from './transitioneventcondition'; -import { Enddeventcondition } from './enddeventcondition'; -import { Eventstate } from './eventstate'; -import { Operationstate } from './operationstate'; -import { Parallelstate } from './parallelstate'; -import { Injectstate } from './injectstate'; -import { Foreachstate } from './foreachstate'; -import { Callbackstate } from './callbackstate'; -import { Eventdef } from './eventdef'; -import { Sleepstate } from './sleepstate'; -import { Authdef } from './authdef'; -import { Errordef } from './errordef'; +import { ICorrelationDef } from './correlationDef'; +import { ITransitiondatacondition } from './transitiondatacondition'; +import { IEnddatacondition } from './enddatacondition'; +import { IRetrydef } from './retrydef'; +import { IFunction } from './function'; +import { IDatabasedswitchstate } from './databasedswitchstate'; +import { IEventbasedswitchstate } from './eventbasedswitchstate'; +import { ITransitioneventcondition } from './transitioneventcondition'; +import { IEnddeventcondition } from './enddeventcondition'; +import { IEventstate } from './eventstate'; +import { IOperationstate } from './operationstate'; +import { IParallelstate } from './parallelstate'; +import { IInjectstate } from './injectstate'; +import { IForeachstate } from './foreachstate'; +import { ICallbackstate } from './callbackstate'; +import { IEventdef } from './eventdef'; +import { ISleepstate } from './sleepstate'; +import { IAuthdef } from './authdef'; +import { IErrordef } from './errordef'; import { Specification } from './index'; export type CorrelationDefs = [ - /* CloudEvent correlation definition */ CorrelationDef, - .../* CloudEvent correlation definition */ CorrelationDef[] + /* CloudEvent correlation definition */ ICorrelationDef, + .../* CloudEvent correlation definition */ ICorrelationDef[] ]; export type Datacondition /* Switch state data based condition */ = - | Transitiondatacondition - | /* Switch state data based condition */ Enddatacondition; + | ITransitiondatacondition + | /* Switch state data based condition */ IEnddatacondition; -export type Retries = string /* uri */ | [Retrydef, ...Retrydef[]]; +export type Retries = string /* uri */ | [IRetrydef, ...IRetrydef[]]; -export type Functions = string /* uri */ | [Function, ...Function[]]; +export type Functions = string /* uri */ | [IFunction, ...IFunction[]]; export type Switchstate /* Permits transitions to other states based on data conditions */ = - | Databasedswitchstate - | /* Permits transitions to other states based on events */ Eventbasedswitchstate; + | IDatabasedswitchstate + | /* Permits transitions to other states based on events */ IEventbasedswitchstate; export type Eventcondition /* Switch state data event condition */ = - | Transitioneventcondition - | /* Switch state data event condition */ Enddeventcondition; + | ITransitioneventcondition + | /* Switch state data event condition */ IEnddeventcondition; export type States = [ ( - | /* Causes the workflow execution to sleep for a specified duration */ Sleepstate - | /* This state is used to wait for events from event sources, then consumes them and invoke one or more actions to run in sequence or parallel */ Eventstate - | /* Defines actions be performed. Does not wait for incoming events */ Operationstate - | /* Consists of a number of states that are executed in parallel */ Parallelstate + | /* Causes the workflow execution to sleep for a specified duration */ ISleepstate + | /* This state is used to wait for events from event sources, then consumes them and invoke one or more actions to run in sequence or parallel */ IEventstate + | /* Defines actions be performed. Does not wait for incoming events */ IOperationstate + | /* Consists of a number of states that are executed in parallel */ IParallelstate | Switchstate - | /* Inject static data into state data. Does not perform any actions */ Injectstate - | /* Execute a set of defined actions or workflows for each element of a data array */ Foreachstate - | /* This state performs an action, then waits for the callback event that denotes completion of the action */ Callbackstate + | /* Inject static data into state data. Does not perform any actions */ IInjectstate + | /* Execute a set of defined actions or workflows for each element of a data array */ IForeachstate + | /* This state performs an action, then waits for the callback event that denotes completion of the action */ ICallbackstate ), ...( - | /* Causes the workflow execution to sleep for a specified duration */ Sleepstate - | /* This state is used to wait for events from event sources, then consumes them and invoke one or more actions to run in sequence or parallel */ Eventstate - | /* Defines actions be performed. Does not wait for incoming events */ Operationstate - | /* Consists of a number of states that are executed in parallel */ Parallelstate + | /* Causes the workflow execution to sleep for a specified duration */ ISleepstate + | /* This state is used to wait for events from event sources, then consumes them and invoke one or more actions to run in sequence or parallel */ IEventstate + | /* Defines actions be performed. Does not wait for incoming events */ IOperationstate + | /* Consists of a number of states that are executed in parallel */ IParallelstate | Switchstate - | /* Inject static data into state data. Does not perform any actions */ Injectstate - | /* Execute a set of defined actions or workflows for each element of a data array */ Foreachstate - | /* This state performs an action, then waits for the callback event that denotes completion of the action */ Callbackstate + | /* Inject static data into state data. Does not perform any actions */ IInjectstate + | /* Execute a set of defined actions or workflows for each element of a data array */ IForeachstate + | /* This state performs an action, then waits for the callback event that denotes completion of the action */ ICallbackstate )[] ]; @@ -95,10 +95,10 @@ export type EventTimeout = string; export type Secrets = string /* uri */ | [string, ...string[]]; -export type Events = string /* uri */ | [Eventdef, ...Eventdef[]]; +export type Events = string /* uri */ | [IEventdef, ...IEventdef[]]; -export type Auth = string /* uri */ | [Authdef, ...Authdef[]]; +export type Auth = string /* uri */ | [IAuthdef, ...IAuthdef[]]; -export type Errors = string /* uri */ | [Errordef, ...Errordef[]]; +export type Errors = string /* uri */ | [IErrordef, ...IErrordef[]]; -export type Properties = Specification.Basicpropsdef | Specification.Bearerpropsdef | Specification.Oauth2propsdef; +export type Properties = Specification.IBasicpropsdef | Specification.IBearerpropsdef | Specification.IOauth2propsdef; diff --git a/src/lib/definitions/utils.ts b/src/lib/definitions/utils.ts index c2c5c8ad..a1aeed27 100644 --- a/src/lib/definitions/utils.ts +++ b/src/lib/definitions/utils.ts @@ -15,12 +15,13 @@ */ import { Specification } from './index'; import { isObject } from '../utils'; +import { toPlainObject } from 'lodash'; /** * Modify the provided object, set the value to 'schedule' property as an instance of Specification.Schedule class, if the provided value is an object * @param object to set/overwrite the property */ -export function overwriteSchedule(object: { schedule: string | Specification.Schedule }): void { +export function overwriteSchedule(object: { schedule: string | Specification.ISchedule }): void { if (isObject(object.schedule)) { object.schedule = new Specification.Schedule(object.schedule); } @@ -30,7 +31,7 @@ export function overwriteSchedule(object: { schedule: string | Specification.Sch * Modify the provided object, set the value to 'start' property as an instance of Specification.Startdef class, if the provided value is an object * @param object to set/overwrite the property */ -export function overwriteStart(object: { start?: string | Specification.Startdef }): void { +export function overwriteStart(object: { start?: string | Specification.IStartdef }): void { if (isObject(object.start)) { object.start = new Specification.Startdef(object.start); } @@ -40,7 +41,7 @@ export function overwriteStart(object: { start?: string | Specification.Startdef * Modify the provided object, set the value to 'end' property as an instance of Specification.End class, if the provided value is an object * @param object to set/overwrite the property */ -export function overwriteEnd(object: { end?: boolean | Specification.End }): void { +export function overwriteEnd(object: { end?: boolean | Specification.IEnd }): void { if (isObject(object.end)) { object.end = new Specification.End(object.end); } @@ -50,7 +51,7 @@ export function overwriteEnd(object: { end?: boolean | Specification.End }): voi * Modify the provided object, set the value to 'cron' property as an instance of Specification.Crondef class, if the provided value is an object * @param object to set/overwrite the property */ -export function overwriteCron(object: { cron?: string | Specification.Crondef }): void { +export function overwriteCron(object: { cron?: string | Specification.ICrondef }): void { if (isObject(object.cron)) { object.cron = new Specification.Crondef(object.cron); } @@ -60,7 +61,7 @@ export function overwriteCron(object: { cron?: string | Specification.Crondef }) * Modify the provided object, set the value to 'transition' property as an instance of Specification.Transition class, if the provided value is an object * @param object to set/overwrite the property */ -export function overwriteTransition(object: { transition?: string | Specification.Transition }): void { +export function overwriteTransition(object: { transition?: string | Specification.ITransition }): void { if (isObject(object.transition)) { object.transition = new Specification.Transition(object.transition); } @@ -70,7 +71,7 @@ export function overwriteTransition(object: { transition?: string | Specificatio * Modify the provided object, set the value to 'defaultCondition' property as an instance of Specification.Defaultconditiondef class * @param object to set/overwrite the property */ -export function overwriteDefaultCondition(object: { defaultCondition?: Specification.Defaultconditiondef }): void { +export function overwriteDefaultCondition(object: { defaultCondition?: Specification.IDefaultconditiondef }): void { object.defaultCondition = object.defaultCondition && new Specification.Defaultconditiondef(object.defaultCondition); } @@ -124,7 +125,7 @@ export function overwriteDataConditions(object: { dataConditions: Specification. * Modify the provided object, set the value to 'actions' property as an instance of Specification.Action[] class * @param object to set/overwrite the property */ -export function overwriteActions(object: { actions?: Specification.Action[] }): void { +export function overwriteActions(object: { actions?: Specification.IAction[] }): void { if (Array.isArray(object.actions)) { object.actions = object.actions.map((v) => new Specification.Action(v)); } @@ -134,7 +135,7 @@ export function overwriteActions(object: { actions?: Specification.Action[] }): * Modify the provided object, set the value to 'onEvents' property as an instance of Specification.Onevents[] class * @param object to set/overwrite the property */ -export function overwriteOnEvents(object: { onEvents: Specification.Onevents[] }): void { +export function overwriteOnEvents(object: { onEvents: Specification.IOnevents[] }): void { object.onEvents = object.onEvents.map((event) => new Specification.Onevents(event)); } @@ -142,7 +143,7 @@ export function overwriteOnEvents(object: { onEvents: Specification.Onevents[] } * Modify the provided object, set the value to 'stateDataFilter' property as an instance of Specification.Statedatafilter class * @param object to set/overwrite the property */ -export function overwriteStateDataFilter(object: { stateDataFilter?: Specification.Statedatafilter }): void { +export function overwriteStateDataFilter(object: { stateDataFilter?: Specification.IStatedatafilter }): void { object.stateDataFilter = object.stateDataFilter && new Specification.Statedatafilter(object.stateDataFilter); } @@ -150,7 +151,7 @@ export function overwriteStateDataFilter(object: { stateDataFilter?: Specificati * Modify the provided object, set the value to 'metadata' property as an instance of Specification.Metadata class * @param object to set/overwrite the property */ -export function overwriteMetadata(object: { metadata?: Specification.Metadata }): void { +export function overwriteMetadata(object: { metadata?: Specification.IMetadata }): void { object.metadata = object.metadata && new Specification.Metadata(object.metadata); } @@ -292,7 +293,7 @@ export function overwriteCorrelation(object: { correlation?: Specification.Corre * Modify the provided object, set the value to 'action' property as an instance of Specification.Action class * @param object to set/overwrite the property */ -export function overwriteAction(object: { action?: Specification.Action }): void { +export function overwriteAction(object: { action?: Specification.IAction }): void { object.action = object.action && new Specification.Action(object.action); } @@ -301,7 +302,7 @@ export function overwriteAction(object: { action?: Specification.Action }): void * @param object to set/overwrite the property */ export function overwriteWorkflowExecTimeout(object: { - workflowExecTimeout?: Specification.WorkflowExecTimeout; + workflowExecTimeout?: Specification.IWorkflowExecTimeout; }): void { object.workflowExecTimeout = object.workflowExecTimeout && new Specification.WorkflowExecTimeout(object.workflowExecTimeout); @@ -311,7 +312,7 @@ export function overwriteWorkflowExecTimeout(object: { * Modify the provided object, set the value to 'stateExecTimeout' property as an instance of Specification.StateExecTimeout class * @param object to set/overwrite the property */ -export function overwriteStateExecTimeout(object: { stateExecTimeout?: Specification.StateExecTimeout }): void { +export function overwriteStateExecTimeout(object: { stateExecTimeout?: Specification.IStateExecTimeout }): void { object.stateExecTimeout = object.stateExecTimeout && new Specification.StateExecTimeout(object.stateExecTimeout); } @@ -319,7 +320,7 @@ export function overwriteStateExecTimeout(object: { stateExecTimeout?: Specifica * Modify the provided object, set the value to 'eventDataFilter' property as an instance of Specification.Eventdatafilter class * @param object to set/overwrite the property */ -export function overwriteEventDataFilter(object: { eventDataFilter?: Specification.Eventdatafilter }): void { +export function overwriteEventDataFilter(object: { eventDataFilter?: Specification.IEventdatafilter }): void { object.eventDataFilter = object.eventDataFilter && new Specification.Eventdatafilter(object.eventDataFilter); } @@ -327,7 +328,7 @@ export function overwriteEventDataFilter(object: { eventDataFilter?: Specificati * Modify the provided object, set the value to 'onErrors' property as an instance of Specification.Error[] class * @param object to set/overwrite the property */ -export function overwriteOnErrors(object: { onErrors?: Specification.Error[] }): void { +export function overwriteOnErrors(object: { onErrors?: Specification.IError[] }): void { if (Array.isArray(object.onErrors)) { object.onErrors = object.onErrors.map((error) => new Specification.Error(error)); } @@ -337,7 +338,7 @@ export function overwriteOnErrors(object: { onErrors?: Specification.Error[] }): * Modify the provided object, set the value to 'branches' property as an instance of Specification.Branch[] class * @param object to set/overwrite the property */ -export function overwriteBranches(object: { branches?: Specification.Branch[] }): void { +export function overwriteBranches(object: { branches?: Specification.IBranch[] }): void { if (Array.isArray(object.branches)) { object.branches = object.branches.map((v) => new Specification.Branch(v)); } @@ -347,7 +348,7 @@ export function overwriteBranches(object: { branches?: Specification.Branch[] }) * Modify the provided object, set the value to 'produceEvents' property as an instance of Specification.Produceeventdef[] class * @param object to set/overwrite the property */ -export function overwriteProduceEvents(object: { produceEvents?: Specification.Produceeventdef[] }): void { +export function overwriteProduceEvents(object: { produceEvents?: Specification.IProduceeventdef[] }): void { if (Array.isArray(object.produceEvents)) { object.produceEvents = object.produceEvents.map((produceEvent) => new Specification.Produceeventdef(produceEvent)); } @@ -357,7 +358,7 @@ export function overwriteProduceEvents(object: { produceEvents?: Specification.P * Modify the provided object, set the value to 'functionRef' property as an instance of Specification.Functionref class, if the provided value is an object * @param object to set/overwrite the property */ -export function overwriteFunctionRef(object: { functionRef?: string | Specification.Functionref }): void { +export function overwriteFunctionRef(object: { functionRef?: string | Specification.IFunctionref }): void { if (isObject(object.functionRef)) { object.functionRef = new Specification.Functionref(object.functionRef); } @@ -367,7 +368,7 @@ export function overwriteFunctionRef(object: { functionRef?: string | Specificat * Modify the provided object, set the value to 'continueAs' property as an instance of Specification. Continueasdef, if the provided value is an object * @param object to set/overwrite the property */ -export function overwriteContinueAs(object: { continueAs?: string | Specification.Continueasdef }): void { +export function overwriteContinueAs(object: { continueAs?: string | Specification.IContinueasdef }): void { if (isObject(object.continueAs)) { object.continueAs = new Specification.Continueasdef(object.continueAs); } @@ -377,7 +378,7 @@ export function overwriteContinueAs(object: { continueAs?: string | Specificatio * Modify the provided object, set the value to 'subFlowRef' property as an instance of Specification.Subflowref class, if the provided value is an object * @param object to set/overwrite the property */ -export function overwriteSubFlowRef(object: { subFlowRef?: string | Specification.Subflowref }): void { +export function overwriteSubFlowRef(object: { subFlowRef?: string | Specification.ISubflowref }): void { if (isObject(object.subFlowRef)) { object.subFlowRef = new Specification.Subflowref(object.subFlowRef); } @@ -387,7 +388,7 @@ export function overwriteSubFlowRef(object: { subFlowRef?: string | Specificatio * Modify the provided object, set the value to 'eventRef' property as an instance of Specification.Eventref class * @param object to set/overwrite the property */ -export function overwriteEventRef(object: { eventRef?: Specification.Eventref }): void { +export function overwriteEventRef(object: { eventRef?: Specification.IEventref }): void { object.eventRef = object.eventRef && new Specification.Eventref(object.eventRef); } @@ -395,7 +396,7 @@ export function overwriteEventRef(object: { eventRef?: Specification.Eventref }) * Modify the provided object, set the value to 'sleep' property as an instance of Specification.Sleep class * @param object to set/overwrite the property */ -export function overwriteSleep(object: { sleep?: Specification.Sleep }): void { +export function overwriteSleep(object: { sleep?: Specification.ISleep }): void { object.sleep = object.sleep && new Specification.Sleep(object.sleep); } @@ -403,7 +404,7 @@ export function overwriteSleep(object: { sleep?: Specification.Sleep }): void { * Modify the provided object, set the value to 'actionDataFilter' property as an instance of Specification.Actiondatafilter class * @param object to set/overwrite the property */ -export function overwriteActionDataFilter(object: { actionDataFilter?: Specification.Actiondatafilter }): void { +export function overwriteActionDataFilter(object: { actionDataFilter?: Specification.IActiondatafilter }): void { object.actionDataFilter = object.actionDataFilter && new Specification.Actiondatafilter(object.actionDataFilter); } @@ -412,8 +413,8 @@ export function overwriteActionDataFilter(object: { actionDataFilter?: Specifica * @param object to modify */ export function setEndValueIfNoTransition(object: { - transition?: string | Specification.Transition; - end?: boolean | Specification.End; + transition?: string | Specification.ITransition; + end?: boolean | Specification.IEnd; }): void { if (!object.end && !object.transition) { object.end = true; @@ -424,7 +425,7 @@ export function setEndValueIfNoTransition(object: { * Modify the provided object by normalizing the 'end' property. * @param object to be modified */ -export function normalizeEnd(object: { end?: boolean | Specification.End }) { +export function normalizeEnd(object: { end?: boolean | Specification.IEnd }) { if (isObject(object.end)) { object.end = (object.end as Specification.End).normalize(); } @@ -437,10 +438,19 @@ export function normalizeEnd(object: { end?: boolean | Specification.End }) { */ export function overwritePropertyAsPlainType(property: string, object: any): void { if (isObject(object[property])) { - Object.assign(object, { [property]: JSON.parse(JSON.stringify(object[property])) }); + Object.assign(object, { [property]: toPlainObject(object[property]) }); } } +/** + * Check if an object has a property or method + * @param object to be evaluated + * @param key property / function name + */ +export function hasProperty(object: T, key: K): object is T & Record { + return typeof object === 'object' && object !== null && key in object; +} + /** * Modify the provided object, set the value to 'timeouts.stateExecTimeout' property as an instance of Specification.StateExecTimeout class, * for the rest of the properties the value is cloned @@ -448,7 +458,7 @@ export function overwritePropertyAsPlainType(property: string, object: any): voi */ export function overwriteTimeoutWithStateExecTimeout(object: { timeouts?: { - stateExecTimeout?: Specification.StateExecTimeout; + stateExecTimeout?: Specification.IStateExecTimeout; }; }): void { overwritePropertyAsPlainType('timeouts', object); @@ -463,7 +473,7 @@ export function overwriteTimeoutWithStateExecTimeout(object: { * Modify the provided object, set the value to 'timeouts' property as an instance of Specification.Timeouts class * @param object to set/overwrite the property */ -export function overwriteTimeouts(object: { timeouts?: string | Specification.Timeouts }): void { +export function overwriteTimeouts(object: { timeouts?: string | Specification.ITimeouts }): void { if (isObject(object.timeouts)) { object.timeouts = object.timeouts && new Specification.Timeouts(object.timeouts); } @@ -473,7 +483,7 @@ export function overwriteTimeouts(object: { timeouts?: string | Specification.Ti * Modify the provided object by normalizing the 'subFlowRef' property. * @param object to be modified */ -export function normalizeSubFlowRef(object: { subFlowRef?: string | Specification.Subflowref }) { +export function normalizeSubFlowRef(object: { subFlowRef?: string | Specification.ISubflowref }) { if (isObject(object.subFlowRef)) { object.subFlowRef = (object.subFlowRef as Specification.Subflowref).normalize(); } @@ -483,7 +493,7 @@ export function normalizeSubFlowRef(object: { subFlowRef?: string | Specificatio * Modify the provided object by normalizing the 'continueAs' property. * @param object to be modified */ -export function normalizeContinueAs(object: { continueAs?: string | Specification.Continueasdef }) { +export function normalizeContinueAs(object: { continueAs?: string | Specification.IContinueasdef }) { if (isObject(object.continueAs)) { object.continueAs = (object.continueAs as Specification.Continueasdef).normalize(); } @@ -493,7 +503,7 @@ export function normalizeContinueAs(object: { continueAs?: string | Specificatio * Modify the provided object by normalizing the 'defaultCondition' property. * @param object to be modified */ -export function normalizeDefaultCondition(object: { defaultCondition?: Specification.Defaultconditiondef }) { +export function normalizeDefaultCondition(object: { defaultCondition?: Specification.IDefaultconditiondef }) { object.defaultCondition = object.defaultCondition && object.defaultCondition.normalize(); } @@ -501,7 +511,7 @@ export function normalizeDefaultCondition(object: { defaultCondition?: Specifica * Modify the provided object by normalizing the 'workflowExecTimeout' property. * @param object to be modified */ -export function normalizeWorkflowExecTimeout(object: { workflowExecTimeout?: Specification.WorkflowExecTimeout }) { +export function normalizeWorkflowExecTimeout(object: { workflowExecTimeout?: Specification.IWorkflowExecTimeout }) { object.workflowExecTimeout = object.workflowExecTimeout && object.workflowExecTimeout.normalize(); } @@ -509,7 +519,7 @@ export function normalizeWorkflowExecTimeout(object: { workflowExecTimeout?: Spe * Modify the provided object by normalizing the 'onEvents' property. * @param object to be modified */ -export function normalizeOnEvents(object: { onEvents: Specification.Onevents[] }) { +export function normalizeOnEvents(object: { onEvents: Specification.IOnevents[] }) { object.onEvents = object.onEvents && object.onEvents.map((onEvent) => onEvent.normalize()); } @@ -517,7 +527,7 @@ export function normalizeOnEvents(object: { onEvents: Specification.Onevents[] } * Modify the provided object by normalizing the 'onErrors' property. * @param object to be modified */ -export function normalizeOnErrors(object: { onErrors?: Specification.Error[] }): void { +export function normalizeOnErrors(object: { onErrors?: Specification.IError[] }): void { if (Array.isArray(object.onErrors)) { object.onErrors = object.onErrors.map((error) => error.normalize()); } @@ -527,7 +537,7 @@ export function normalizeOnErrors(object: { onErrors?: Specification.Error[] }): * Modify the provided object by normalizing the 'branches' property. * @param object to be modified */ -export function normalizeBranches(object: { branches?: Specification.Branch[] }): void { +export function normalizeBranches(object: { branches?: Specification.IBranch[] }): void { if (Array.isArray(object.branches)) { object.branches = object.branches.map((branch) => branch.normalize()); } @@ -537,7 +547,7 @@ export function normalizeBranches(object: { branches?: Specification.Branch[] }) * Modify the provided object by normalizing the 'actions' property. * @param object to be modified */ -export function normalizeActions(object: { actions?: Specification.Action[] }): void { +export function normalizeActions(object: { actions?: Specification.IAction[] }): void { if (Array.isArray(object.actions)) { object.actions = object.actions.map((action) => action.normalize()); } @@ -547,7 +557,7 @@ export function normalizeActions(object: { actions?: Specification.Action[] }): * Modify the provided object by normalizing the 'action' property. * @param object to be modified */ -export function normalizeAction(object: { action?: Specification.Action }): void { +export function normalizeAction(object: { action?: Specification.IAction }): void { object.action = object.action && object.action.normalize(); } @@ -575,7 +585,7 @@ export function normalizeEventConditions(object: { eventConditions?: Specificati * Modify the provided object by normalizing the 'transition' property if property type is Specification.Transition. * @param object to be modified */ -export function normalizeTransition(object: { transition?: string | Specification.Transition }) { +export function normalizeTransition(object: { transition?: string | Specification.ITransition }) { if (isObject(object.transition)) { object.transition = (object.transition as Specification.Transition).normalize(); } @@ -631,7 +641,7 @@ export function normalizeEvents(object: { events?: Specification.Events }) { * Modify the provided object by normalizing the 'timeouts' property. * @param object to be modified */ -export function normalizeTimeouts(object: { timeouts?: string | Specification.Timeouts }) { +export function normalizeTimeouts(object: { timeouts?: string | Specification.ITimeouts }) { if (isObject(object.timeouts)) { object.timeouts = object.timeouts && object.timeouts.normalize(); } @@ -641,7 +651,7 @@ export function normalizeTimeouts(object: { timeouts?: string | Specification.Ti * Modify the provided object by normalizing the 'eventRef' property. * @param object to be modified */ -export function normalizeEventRef(object: { eventRef?: Specification.Eventref }) { +export function normalizeEventRef(object: { eventRef?: Specification.IEventref }) { if (isObject(object.eventRef)) { object.eventRef = object.eventRef && object.eventRef.normalize(); } @@ -651,7 +661,7 @@ export function normalizeEventRef(object: { eventRef?: Specification.Eventref }) * Modify the provided object by normalizing the 'functionRef' property. * @param object to be modified */ -export function normalizeFunctionRef(object: { functionRef?: string | Specification.Functionref }) { +export function normalizeFunctionRef(object: { functionRef?: string | Specification.IFunctionref }) { if (isObject(object.functionRef)) { object.functionRef = object.functionRef && object.functionRef.normalize(); } @@ -752,7 +762,7 @@ export function normalizeKeepActive(object: { keepActive?: boolean }, source?: { /** * Modify the provided object by normalizing the 'expressionLang' property. - * @param object to be modified + * @param workflow to be modified */ export function normalizeExpressionLang(object: { expressionLang?: string }, source?: { expressionLang?: string }) { if (!source?.expressionLang) { diff --git a/src/lib/definitions/workflow.ts b/src/lib/definitions/workflow.ts index 52889226..7664a659 100644 --- a/src/lib/definitions/workflow.ts +++ b/src/lib/definitions/workflow.ts @@ -14,13 +14,10 @@ * limitations under the License. */ -import { Metadata } from './metadata'; -import { Startdef } from './startdef'; -import { Timeouts } from './timeouts'; +import { IMetadata, Metadata } from './metadata'; +import { IStartdef, Startdef } from './startdef'; +import { ITimeouts, Timeouts } from './timeouts'; import * as yaml from 'js-yaml'; - -import { Specification } from '.'; - import { validate } from '../utils'; import { cleanSourceModelProperty, @@ -43,8 +40,46 @@ import { overwriteTimeouts, } from './utils'; import { Auth, Errors, Events, Functions, Retries, Secrets, States } from './types'; +import { toPlainObject } from 'lodash'; -export class Workflow { +export interface IWorkflow { + sourceModel?: IWorkflow; + id: string; + key?: string; + name?: string; + description?: string; + version?: string; + annotations?: [string, ...string[]]; + dataInputSchema?: + | string + | { + schema: string; + failOnValidationErrors: boolean; + }; + secrets?: Secrets; + constants?: + | string + | { + [key: string]: any; + }; + start?: string | IStartdef; + specVersion: string; + expressionLang?: string; + timeouts?: string | ITimeouts; + errors?: Errors; + keepActive?: boolean; + metadata?: IMetadata; + events?: Events; + functions?: Functions; + autoRetries?: boolean; + retries?: Retries; + auth?: Auth; + states: States; + + normalize(): IWorkflow; +} + +export class Workflow implements IWorkflow { sourceModel?: Workflow; /** * Workflow unique identifier @@ -154,12 +189,11 @@ export class Workflow { /** * Parses the provided string as Workflow * @param {string} data The JSON or YAML workflow to parse - * @returns {Workflow} The parse Workflow + * @returns {IWorkflow} The parse Workflow */ - static fromSource(value: string): Specification.Workflow { + static fromSource(value: string): IWorkflow { try { - const model = yaml.load(value); - return new Workflow(model); + return toPlainObject(new Workflow(yaml.load(value))); } catch (ex) { throw new Error('Format not supported'); } @@ -167,29 +201,29 @@ export class Workflow { /** * Stringifies the provided workflow to the JSON format - * @param {Workflow} workflow The workflow to strigify + * @param {IWorkflow} workflow The workflow to strigify * @returns {string} The workflow as JSON */ - static toJson(workflow: Workflow): string { + static toJson(workflow: IWorkflow): string { validate('Workflow', workflow.normalize()); return JSON.stringify(workflow.normalize()); } /** * Stringifies the provided workflow to the YAML format - * @param {Workflow} workflow The workflow to strigify + * @param {IWorkflow} workflow The workflow to strigify * @returns {string} The workflow as YAML */ - static toYaml(workflow: Workflow): string { + static toYaml(workflow: IWorkflow): string { validate('Workflow', workflow.normalize()); return yaml.dump(JSON.parse(JSON.stringify(workflow.normalize()))); } /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. - * @returns {Specification.Workflow} without deleted properties. + * @returns {Specification.IWorkflow} without deleted properties. */ - normalize = (): Workflow => { + normalize(): IWorkflow { const clone = new Workflow(this); normalizeExpressionLang(clone, this.sourceModel); @@ -201,6 +235,7 @@ export class Workflow { normalizeStates(clone); cleanSourceModelProperty(clone); - return clone; - }; + + return toPlainObject(clone); + } } diff --git a/src/lib/definitions/workflowExecTimeout.ts b/src/lib/definitions/workflowExecTimeout.ts index 37ead5fe..92a9c607 100644 --- a/src/lib/definitions/workflowExecTimeout.ts +++ b/src/lib/definitions/workflowExecTimeout.ts @@ -14,9 +14,19 @@ * limitations under the License. */ +import { toPlainObject } from 'lodash'; import { cleanSourceModelProperty, normalizeInterrupt } from './utils'; -export class WorkflowExecTimeout { +export interface IWorkflowExecTimeout { + sourceModel?: IWorkflowExecTimeout; + duration: string; + interrupt?: boolean; + runBefore?: string; + + normalize(): IWorkflowExecTimeout; +} + +export class WorkflowExecTimeout implements IWorkflowExecTimeout { sourceModel?: WorkflowExecTimeout; /** * Workflow execution timeout duration (ISO 8601 duration format). If not specified should be 'unlimited' @@ -40,15 +50,15 @@ export class WorkflowExecTimeout { /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. - * @returns {Specification.WorkflowExecTimeout} without deleted properties. + * @returns {Specification.IWorkflowExecTimeout} without deleted properties. */ - - normalize = (): WorkflowExecTimeout => { + normalize(): IWorkflowExecTimeout { const clone = new WorkflowExecTimeout(this); normalizeInterrupt(clone, this.sourceModel); cleanSourceModelProperty(clone); - return clone; - }; + + return toPlainObject(clone); + } } diff --git a/src/lib/diagram/mermaidDiagram.ts b/src/lib/diagram/mermaidDiagram.ts index a8ef7eab..c652aecb 100644 --- a/src/lib/diagram/mermaidDiagram.ts +++ b/src/lib/diagram/mermaidDiagram.ts @@ -17,7 +17,7 @@ import { Specification } from '../definitions'; import { MermaidState } from './mermaidState'; export class MermaidDiagram { - constructor(private workflow: Specification.Workflow) {} + constructor(private workflow: Specification.IWorkflow) {} sourceCode() { const mermaidStateDiagramVersion = 'stateDiagram-v2'; diff --git a/src/lib/schema/README.md b/src/lib/schema/README.md index 86d82d3e..7d5a8642 100644 --- a/src/lib/schema/README.md +++ b/src/lib/schema/README.md @@ -1,3 +1,2 @@ # Auto generated notice - This directory and its content has been generated automatically. Do not modify its content, it WILL be lost. \ No newline at end of file diff --git a/src/lib/schema/__merged.json b/src/lib/schema/__merged.json index eaf79d82..d07ce128 100644 --- a/src/lib/schema/__merged.json +++ b/src/lib/schema/__merged.json @@ -2004,61 +2004,6 @@ "additionalProperties": false, "required": [] }, - "retrydef": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Unique retry strategy name", - "minLength": 1 - }, - "delay": { - "type": "string", - "description": "Time delay between retry attempts (ISO 8601 duration format)" - }, - "maxDelay": { - "type": "string", - "description": "Maximum time delay between retry attempts (ISO 8601 duration format)" - }, - "increment": { - "type": "string", - "description": "Static value by which the delay increases during each attempt (ISO 8601 time format)" - }, - "multiplier": { - "type": [ - "number", - "string" - ], - "minimum": 0, - "minLength": 1, - "multipleOf": 0.01, - "description": "Numeric value, if specified the delay between retries is multiplied by this value." - }, - "maxAttempts": { - "type": [ - "number", - "string" - ], - "minimum": 1, - "minLength": 0, - "description": "Maximum number of retry attempts." - }, - "jitter": { - "type": [ - "number", - "string" - ], - "minimum": 0, - "maximum": 1, - "description": "If float type, maximum amount of random time added or subtracted from the delay between each retry relative to total delay (between 0 and 1). If string type, absolute maximum amount of random time added or subtracted from the delay between each retry (ISO 8601 duration format)" - } - }, - "additionalProperties": false, - "required": [ - "name", - "maxAttempts" - ] - }, "function": { "type": "object", "properties": { @@ -2101,13 +2046,6 @@ "operation" ] }, - "metadata": { - "type": "object", - "description": "Metadata information", - "additionalProperties": { - "type": "string" - } - }, "authdef": { "type": "object", "properties": { @@ -2153,229 +2091,190 @@ ] }, "basicpropsdef": { - "oneOf": [ - { + "type": "object", + "description": "Basic auth information", + "properties": { + "username": { "type": "string", - "description": "Expression referencing a workflow secret that contains all needed basic auth info" + "description": "String or a workflow expression. Contains the user name", + "minLength": 1 }, - { - "type": "object", - "description": "Basic auth information", - "properties": { - "username": { - "type": "string", - "description": "String or a workflow expression. Contains the user name", - "minLength": 1 - }, - "password": { - "type": "string", - "description": "String or a workflow expression. Contains the user password", - "minLength": 1 - }, - "metadata": { - "$ref": "#/definitions/metadata" - } - }, - "required": [ - "username", - "password" - ], - "additionalProperties": false + "password": { + "type": "string", + "description": "String or a workflow expression. Contains the user password", + "minLength": 1 + }, + "metadata": { + "$ref": "#/definitions/metadata" } - ] + }, + "required": [ + "username", + "password" + ], + "additionalProperties": false }, "bearerpropsdef": { - "oneOf": [ - { + "type": "object", + "description": "Bearer auth information", + "properties": { + "token": { "type": "string", - "description": "Expression referencing a workflow secret that contains all needed bearer auth info" + "description": "String or a workflow expression. Contains the token", + "minLength": 1 }, - { - "type": "object", - "description": "Bearer auth information", - "properties": { - "token": { - "type": "string", - "description": "String or a workflow expression. Contains the token", - "minLength": 1 - }, - "metadata": { - "$ref": "#/definitions/metadata" - } - }, - "required": [ - "token" - ], - "additionalProperties": false + "metadata": { + "$ref": "#/definitions/metadata" } - ] + }, + "required": [ + "token" + ], + "additionalProperties": false }, "oauth2propsdef": { - "oneOf": [ - { + "type": "object", + "description": "OAuth2 information", + "properties": { + "authority": { "type": "string", - "description": "Expression referencing a workflow secret that contains all needed OAuth2 auth info" + "description": "String or a workflow expression. Contains the authority information", + "minLength": 1 }, - { - "type": "object", - "description": "OAuth2 information", - "properties": { - "authority": { - "type": "string", - "description": "String or a workflow expression. Contains the authority information", - "minLength": 1 - }, - "grantType": { - "type": "string", - "description": "Defines the grant type", - "enum": [ - "password", - "clientCredentials", - "tokenExchange" - ], - "additionalItems": false - }, - "clientId": { - "type": "string", - "description": "String or a workflow expression. Contains the client identifier", - "minLength": 1 - }, - "clientSecret": { - "type": "string", - "description": "Workflow secret or a workflow expression. Contains the client secret", - "minLength": 1 - }, - "scopes": { - "type": "array", - "description": "Array containing strings or workflow expressions. Contains the OAuth2 scopes", - "items": { - "type": "string" - }, - "minItems": 1, - "additionalItems": false - }, - "username": { - "type": "string", - "description": "String or a workflow expression. Contains the user name. Used only if grantType is 'resourceOwner'", - "minLength": 1 - }, - "password": { - "type": "string", - "description": "String or a workflow expression. Contains the user password. Used only if grantType is 'resourceOwner'", - "minLength": 1 - }, - "audiences": { - "type": "array", - "description": "Array containing strings or workflow expressions. Contains the OAuth2 audiences", - "items": { - "type": "string" - }, - "minItems": 1, - "additionalItems": false - }, - "subjectToken": { - "type": "string", - "description": "String or a workflow expression. Contains the subject token", - "minLength": 1 - }, - "requestedSubject": { - "type": "string", - "description": "String or a workflow expression. Contains the requested subject", - "minLength": 1 - }, - "requestedIssuer": { - "type": "string", - "description": "String or a workflow expression. Contains the requested issuer", - "minLength": 1 - }, - "metadata": { - "$ref": "#/definitions/metadata" - } + "grantType": { + "type": "string", + "description": "Defines the grant type", + "enum": [ + "password", + "clientCredentials", + "tokenExchange" + ], + "additionalItems": false + }, + "clientId": { + "type": "string", + "description": "String or a workflow expression. Contains the client identifier", + "minLength": 1 + }, + "clientSecret": { + "type": "string", + "description": "Workflow secret or a workflow expression. Contains the client secret", + "minLength": 1 + }, + "scopes": { + "type": "array", + "description": "Array containing strings or workflow expressions. Contains the OAuth2 scopes", + "items": { + "type": "string" }, - "required": [ - "grantType", - "clientId" - ] - } - ] - }, - "workflowExecTimeout": { - "oneOf": [ - { + "minItems": 1, + "additionalItems": false + }, + "username": { "type": "string", - "description": "Workflow execution timeout duration (ISO 8601 duration format). If not specified should be 'unlimited'", + "description": "String or a workflow expression. Contains the user name. Used only if grantType is 'resourceOwner'", "minLength": 1 }, - { - "type": "object", - "properties": { - "duration": { - "type": "string", - "description": "Workflow execution timeout duration (ISO 8601 duration format). If not specified should be 'unlimited'", - "minLength": 1 - }, - "interrupt": { - "type": "boolean", - "description": "If `false`, workflow instance is allowed to finish current execution. If `true`, current workflow execution is abrupted.", - "default": true - }, - "runBefore": { - "type": "string", - "description": "Name of a workflow state to be executed before workflow instance is terminated", - "minLength": 1 - } + "password": { + "type": "string", + "description": "String or a workflow expression. Contains the user password. Used only if grantType is 'resourceOwner'", + "minLength": 1 + }, + "audiences": { + "type": "array", + "description": "Array containing strings or workflow expressions. Contains the OAuth2 audiences", + "items": { + "type": "string" }, - "additionalProperties": false, - "required": [ - "duration" - ] + "minItems": 1, + "additionalItems": false + }, + "subjectToken": { + "type": "string", + "description": "String or a workflow expression. Contains the subject token", + "minLength": 1 + }, + "requestedSubject": { + "type": "string", + "description": "String or a workflow expression. Contains the requested subject", + "minLength": 1 + }, + "requestedIssuer": { + "type": "string", + "description": "String or a workflow expression. Contains the requested issuer", + "minLength": 1 + }, + "metadata": { + "$ref": "#/definitions/metadata" } + }, + "required": [ + "grantType", + "clientId" ] }, - "stateExecTimeout": { - "oneOf": [ - { + "metadata": { + "type": "object", + "description": "Metadata information", + "additionalProperties": { + "type": "string" + } + }, + "retrydef": { + "type": "object", + "properties": { + "name": { "type": "string", - "description": "Total state execution timeout (including retries) (ISO 8601 duration format)", + "description": "Unique retry strategy name", "minLength": 1 }, - { - "type": "object", - "description": "Workflow default timeouts", - "properties": { - "single": { - "type": "string", - "description": "Single state execution timeout, not including retries (ISO 8601 duration format)", - "minLength": 1 - }, - "total": { - "type": "string", - "description": "Total state execution timeout, including retries (ISO 8601 duration format)", - "minLength": 1 - } - }, - "additionalProperties": false, - "required": [ - "total" - ] + "delay": { + "type": "string", + "description": "Time delay between retry attempts (ISO 8601 duration format)" + }, + "maxDelay": { + "type": "string", + "description": "Maximum time delay between retry attempts (ISO 8601 duration format)" + }, + "increment": { + "type": "string", + "description": "Static value by which the delay increases during each attempt (ISO 8601 time format)" + }, + "multiplier": { + "type": [ + "number", + "string" + ], + "minimum": 0, + "minLength": 1, + "multipleOf": 0.01, + "description": "Numeric value, if specified the delay between retries is multiplied by this value." + }, + "maxAttempts": { + "type": [ + "number", + "string" + ], + "minimum": 1, + "minLength": 0, + "description": "Maximum number of retry attempts." + }, + "jitter": { + "type": [ + "number", + "string" + ], + "minimum": 0, + "maximum": 1, + "description": "If float type, maximum amount of random time added or subtracted from the delay between each retry relative to total delay (between 0 and 1). If string type, absolute maximum amount of random time added or subtracted from the delay between each retry (ISO 8601 duration format)" } + }, + "additionalProperties": false, + "required": [ + "name", + "maxAttempts" ] }, - "actionExecTimeout": { - "type": "string", - "description": "Single actions definition execution timeout duration (ISO 8601 duration format)", - "minLength": 1 - }, - "branchExecTimeout": { - "type": "string", - "description": "Single branch execution timeout duration (ISO 8601 duration format)", - "minLength": 1 - }, - "eventTimeout": { - "type": "string", - "description": "Timeout duration to wait for consuming defined events (ISO 8601 duration format)", - "minLength": 1 - }, "eventdef": { "type": "object", "properties": { @@ -2486,6 +2385,83 @@ "name" ] }, + "workflowExecTimeout": { + "oneOf": [ + { + "type": "string", + "description": "Workflow execution timeout duration (ISO 8601 duration format). If not specified should be 'unlimited'", + "minLength": 1 + }, + { + "type": "object", + "properties": { + "duration": { + "type": "string", + "description": "Workflow execution timeout duration (ISO 8601 duration format). If not specified should be 'unlimited'", + "minLength": 1 + }, + "interrupt": { + "type": "boolean", + "description": "If `false`, workflow instance is allowed to finish current execution. If `true`, current workflow execution is abrupted.", + "default": true + }, + "runBefore": { + "type": "string", + "description": "Name of a workflow state to be executed before workflow instance is terminated", + "minLength": 1 + } + }, + "additionalProperties": false, + "required": [ + "duration" + ] + } + ] + }, + "stateExecTimeout": { + "oneOf": [ + { + "type": "string", + "description": "Total state execution timeout (including retries) (ISO 8601 duration format)", + "minLength": 1 + }, + { + "type": "object", + "description": "Workflow default timeouts", + "properties": { + "single": { + "type": "string", + "description": "Single state execution timeout, not including retries (ISO 8601 duration format)", + "minLength": 1 + }, + "total": { + "type": "string", + "description": "Total state execution timeout, including retries (ISO 8601 duration format)", + "minLength": 1 + } + }, + "additionalProperties": false, + "required": [ + "total" + ] + } + ] + }, + "actionExecTimeout": { + "type": "string", + "description": "Single actions definition execution timeout duration (ISO 8601 duration format)", + "minLength": 1 + }, + "branchExecTimeout": { + "type": "string", + "description": "Single branch execution timeout duration (ISO 8601 duration format)", + "minLength": 1 + }, + "eventTimeout": { + "type": "string", + "description": "Timeout duration to wait for consuming defined events (ISO 8601 duration format)", + "minLength": 1 + }, "secrets": { "oneOf": [ { diff --git a/src/lib/schema/auth.json b/src/lib/schema/auth.json index 8be26b4e..6d5a94d6 100644 --- a/src/lib/schema/auth.json +++ b/src/lib/schema/auth.json @@ -71,150 +71,126 @@ ] }, "basicpropsdef": { - "oneOf": [ - { + "type": "object", + "description": "Basic auth information", + "properties": { + "username": { "type": "string", - "description": "Expression referencing a workflow secret that contains all needed basic auth info" + "description": "String or a workflow expression. Contains the user name", + "minLength": 1 }, - { - "type": "object", - "description": "Basic auth information", - "properties": { - "username": { - "type": "string", - "description": "String or a workflow expression. Contains the user name", - "minLength": 1 - }, - "password": { - "type": "string", - "description": "String or a workflow expression. Contains the user password", - "minLength": 1 - }, - "metadata": { - "$ref": "common.json#/definitions/metadata" - } - }, - "required": [ - "username", - "password" - ], - "additionalProperties": false + "password": { + "type": "string", + "description": "String or a workflow expression. Contains the user password", + "minLength": 1 + }, + "metadata": { + "$ref": "common.json#/definitions/metadata" } - ] + }, + "required": [ + "username", + "password" + ], + "additionalProperties": false }, "bearerpropsdef": { - "oneOf": [ - { + "type": "object", + "description": "Bearer auth information", + "properties": { + "token": { "type": "string", - "description": "Expression referencing a workflow secret that contains all needed bearer auth info" + "description": "String or a workflow expression. Contains the token", + "minLength": 1 }, - { - "type": "object", - "description": "Bearer auth information", - "properties": { - "token": { - "type": "string", - "description": "String or a workflow expression. Contains the token", - "minLength": 1 - }, - "metadata": { - "$ref": "common.json#/definitions/metadata" - } - }, - "required": [ - "token" - ], - "additionalProperties": false + "metadata": { + "$ref": "common.json#/definitions/metadata" } - ] + }, + "required": [ + "token" + ], + "additionalProperties": false }, "oauth2propsdef": { - "oneOf": [ - { + "type": "object", + "description": "OAuth2 information", + "properties": { + "authority": { "type": "string", - "description": "Expression referencing a workflow secret that contains all needed OAuth2 auth info" + "description": "String or a workflow expression. Contains the authority information", + "minLength": 1 }, - { - "type": "object", - "description": "OAuth2 information", - "properties": { - "authority": { - "type": "string", - "description": "String or a workflow expression. Contains the authority information", - "minLength": 1 - }, - "grantType": { - "type": "string", - "description": "Defines the grant type", - "enum": [ - "password", - "clientCredentials", - "tokenExchange" - ], - "additionalItems": false - }, - "clientId": { - "type": "string", - "description": "String or a workflow expression. Contains the client identifier", - "minLength": 1 - }, - "clientSecret": { - "type": "string", - "description": "Workflow secret or a workflow expression. Contains the client secret", - "minLength": 1 - }, - "scopes": { - "type": "array", - "description": "Array containing strings or workflow expressions. Contains the OAuth2 scopes", - "items": { - "type": "string" - }, - "minItems": 1, - "additionalItems": false - }, - "username": { - "type": "string", - "description": "String or a workflow expression. Contains the user name. Used only if grantType is 'resourceOwner'", - "minLength": 1 - }, - "password": { - "type": "string", - "description": "String or a workflow expression. Contains the user password. Used only if grantType is 'resourceOwner'", - "minLength": 1 - }, - "audiences": { - "type": "array", - "description": "Array containing strings or workflow expressions. Contains the OAuth2 audiences", - "items": { - "type": "string" - }, - "minItems": 1, - "additionalItems": false - }, - "subjectToken": { - "type": "string", - "description": "String or a workflow expression. Contains the subject token", - "minLength": 1 - }, - "requestedSubject": { - "type": "string", - "description": "String or a workflow expression. Contains the requested subject", - "minLength": 1 - }, - "requestedIssuer": { - "type": "string", - "description": "String or a workflow expression. Contains the requested issuer", - "minLength": 1 - }, - "metadata": { - "$ref": "common.json#/definitions/metadata" - } + "grantType": { + "type": "string", + "description": "Defines the grant type", + "enum": [ + "password", + "clientCredentials", + "tokenExchange" + ], + "additionalItems": false + }, + "clientId": { + "type": "string", + "description": "String or a workflow expression. Contains the client identifier", + "minLength": 1 + }, + "clientSecret": { + "type": "string", + "description": "Workflow secret or a workflow expression. Contains the client secret", + "minLength": 1 + }, + "scopes": { + "type": "array", + "description": "Array containing strings or workflow expressions. Contains the OAuth2 scopes", + "items": { + "type": "string" }, - "required": [ - "grantType", - "clientId" - ] + "minItems": 1, + "additionalItems": false + }, + "username": { + "type": "string", + "description": "String or a workflow expression. Contains the user name. Used only if grantType is 'resourceOwner'", + "minLength": 1 + }, + "password": { + "type": "string", + "description": "String or a workflow expression. Contains the user password. Used only if grantType is 'resourceOwner'", + "minLength": 1 + }, + "audiences": { + "type": "array", + "description": "Array containing strings or workflow expressions. Contains the OAuth2 audiences", + "items": { + "type": "string" + }, + "minItems": 1, + "additionalItems": false + }, + "subjectToken": { + "type": "string", + "description": "String or a workflow expression. Contains the subject token", + "minLength": 1 + }, + "requestedSubject": { + "type": "string", + "description": "String or a workflow expression. Contains the requested subject", + "minLength": 1 + }, + "requestedIssuer": { + "type": "string", + "description": "String or a workflow expression. Contains the requested issuer", + "minLength": 1 + }, + "metadata": { + "$ref": "common.json#/definitions/metadata" } + }, + "required": [ + "grantType", + "clientId" ] } } diff --git a/src/lib/schema/types/README.md b/src/lib/schema/types/README.md index 86d82d3e..7d5a8642 100644 --- a/src/lib/schema/types/README.md +++ b/src/lib/schema/types/README.md @@ -1,3 +1,2 @@ # Auto generated notice - This directory and its content has been generated automatically. Do not modify its content, it WILL be lost. \ No newline at end of file diff --git a/src/lib/schema/types/workflow.ts b/src/lib/schema/types/workflow.ts index e4e98bba..b609c602 100644 --- a/src/lib/schema/types/workflow.ts +++ b/src/lib/schema/types/workflow.ts @@ -17,7 +17,7 @@ /** * Serverless Workflow specification - workflow schema */ -export type Workflow /* Serverless Workflow specification - workflow schema */ = +export type Workflow = /* Serverless Workflow specification - workflow schema */ | { /** * Workflow unique identifier @@ -89,8 +89,8 @@ export type Workflow /* Serverless Workflow specification - workflow schema */ = * State definitions */ states: [ - ( - | /* Causes the workflow execution to sleep for a specified duration */ Sleepstate + /* Causes the workflow execution to sleep for a specified duration */ ( + | Sleepstate | /* This state is used to wait for events from event sources, then consumes them and invoke one or more actions to run in sequence or parallel */ Eventstate | /* Defines actions be performed. Does not wait for incoming events */ Operationstate | /* Consists of a number of states that are executed in parallel */ Parallelstate @@ -99,8 +99,8 @@ export type Workflow /* Serverless Workflow specification - workflow schema */ = | /* Execute a set of defined actions or workflows for each element of a data array */ Foreachstate | /* This state performs an action, then waits for the callback event that denotes completion of the action */ Callbackstate ), - ...( - | /* Causes the workflow execution to sleep for a specified duration */ Sleepstate + .../* Causes the workflow execution to sleep for a specified duration */ ( + | Sleepstate | /* This state is used to wait for events from event sources, then consumes them and invoke one or more actions to run in sequence or parallel */ Eventstate | /* Defines actions be performed. Does not wait for incoming events */ Operationstate | /* Consists of a number of states that are executed in parallel */ Parallelstate @@ -182,8 +182,8 @@ export type Workflow /* Serverless Workflow specification - workflow schema */ = * State definitions */ states: [ - ( - | /* Causes the workflow execution to sleep for a specified duration */ Sleepstate + /* Causes the workflow execution to sleep for a specified duration */ ( + | Sleepstate | /* This state is used to wait for events from event sources, then consumes them and invoke one or more actions to run in sequence or parallel */ Eventstate | /* Defines actions be performed. Does not wait for incoming events */ Operationstate | /* Consists of a number of states that are executed in parallel */ Parallelstate @@ -192,8 +192,8 @@ export type Workflow /* Serverless Workflow specification - workflow schema */ = | /* Execute a set of defined actions or workflows for each element of a data array */ Foreachstate | /* This state performs an action, then waits for the callback event that denotes completion of the action */ Callbackstate ), - ...( - | /* Causes the workflow execution to sleep for a specified duration */ Sleepstate + .../* Causes the workflow execution to sleep for a specified duration */ ( + | Sleepstate | /* This state is used to wait for events from event sources, then consumes them and invoke one or more actions to run in sequence or parallel */ Eventstate | /* Defines actions be performed. Does not wait for incoming events */ Operationstate | /* Consists of a number of states that are executed in parallel */ Parallelstate @@ -302,7 +302,6 @@ export type Action = * Single actions definition execution timeout duration (ISO 8601 duration format) */ export type ActionExecTimeout = string; - export interface Actiondatafilter { /** * Workflow expression that selects state data that the state action can use @@ -321,9 +320,7 @@ export interface Actiondatafilter { */ toStateData?: string; } - export type Auth = string /* uri */ | [Authdef, ...Authdef[]]; - export interface Authdef { /** * Unique auth definition name @@ -333,32 +330,36 @@ export interface Authdef { * Defines the auth type */ scheme?: 'basic' | 'bearer' | 'oauth2'; - properties: string | Basicpropsdef | Bearerpropsdef | Oauth2propsdef; + properties: + | string + | /* Basic auth information */ Basicpropsdef + | /* Bearer auth information */ Bearerpropsdef + | /* OAuth2 information */ Oauth2propsdef; +} +/** + * Basic auth information + */ +export interface Basicpropsdef { + /** + * String or a workflow expression. Contains the user name + */ + username: string; + /** + * String or a workflow expression. Contains the user password + */ + password: string; + metadata?: /* Metadata information */ Metadata; +} +/** + * Bearer auth information + */ +export interface Bearerpropsdef { + /** + * String or a workflow expression. Contains the token + */ + token: string; + metadata?: /* Metadata information */ Metadata; } - -export type Basicpropsdef = - | string - | { - /** - * String or a workflow expression. Contains the user name - */ - username: string; - /** - * String or a workflow expression. Contains the user password - */ - password: string; - metadata?: /* Metadata information */ Metadata; - }; -export type Bearerpropsdef = - | string - | { - /** - * String or a workflow expression. Contains the token - */ - token: string; - metadata?: /* Metadata information */ Metadata; - }; - /** * Branch Definition */ @@ -379,12 +380,10 @@ export interface Branch { */ actions: Action[]; } - /** * Single branch execution timeout duration (ISO 8601 duration format) */ export type BranchExecTimeout = string; - /** * This state performs an action, then waits for the callback event that denotes completion of the action */ @@ -447,7 +446,6 @@ export interface Callbackstate { usedForCompensation?: boolean; metadata?: /* Metadata information */ Metadata; } - export type Continueasdef = | string | { @@ -472,7 +470,6 @@ export type Continueasdef = */ workflowExecTimeout?: WorkflowExecTimeout; }; - /** * CloudEvent correlation definition */ @@ -486,7 +483,6 @@ export interface CorrelationDef { */ contextAttributeValue?: string; } - export type Crondef = | string | { @@ -499,7 +495,6 @@ export type Crondef = */ validUntil?: string; }; - /** * Permits transitions to other states based on data conditions */ @@ -548,14 +543,13 @@ export interface Databasedswitchstate { usedForCompensation?: boolean; metadata?: /* Metadata information */ Metadata; } - -export type Datacondition /* Switch state data based condition */ = +export type Datacondition = /* Switch state data based condition */ | Transitiondatacondition | /* Switch state data based condition */ Enddatacondition; /** * DefaultCondition definition. Can be either a transition or end definition */ -export type Defaultconditiondef /* DefaultCondition definition. Can be either a transition or end definition */ = +export type Defaultconditiondef = /* DefaultCondition definition. Can be either a transition or end definition */ | { transition: Transition; end?: End; @@ -581,7 +575,6 @@ export type End = compensate?: boolean; continueAs?: Continueasdef; }; - /** * Switch state data based condition */ @@ -600,7 +593,6 @@ export interface Enddatacondition { end: End; metadata?: /* Metadata information */ Metadata; } - /** * Switch state data event condition */ @@ -623,7 +615,6 @@ export interface Enddeventcondition { eventDataFilter?: Eventdatafilter; metadata?: /* Metadata information */ Metadata; } - export type Error = | { /** @@ -673,7 +664,6 @@ export type Error = transition?: Transition; end: End; }; - export interface Errordef { /** * Domain-specific error name @@ -688,13 +678,11 @@ export interface Errordef { */ description?: string; } - export type Errors = string /* uri */ | [Errordef, ...Errordef[]]; /** * Timeout duration to wait for consuming defined events (ISO 8601 duration format) */ export type EventTimeout = string; - /** * Permits transitions to other states based on events */ @@ -744,11 +732,9 @@ export interface Eventbasedswitchstate { usedForCompensation?: boolean; metadata?: /* Metadata information */ Metadata; } - -export type Eventcondition /* Switch state data event condition */ = +export type Eventcondition = /* Switch state data event condition */ | Transitioneventcondition | /* Switch state data event condition */ Enddeventcondition; - export interface Eventdatafilter { /** * If set to false, event payload is not added/merged to state data. In this case 'data' and 'toStateData' should be ignored. Default is true. @@ -763,7 +749,6 @@ export interface Eventdatafilter { */ toStateData?: string; } - export interface Eventdef { /** * Unique event name @@ -797,7 +782,6 @@ export interface Eventdef { */ metadata?: /* Metadata information */ Metadata; } - /** * Event References */ @@ -833,98 +817,96 @@ export interface Eventref { */ invoke?: 'sync' | 'async'; } - export type Events = string /* uri */ | [Eventdef, ...Eventdef[]]; /** * This state is used to wait for events from event sources, then consumes them and invoke one or more actions to run in sequence or parallel */ export type Eventstate = /* This state is used to wait for events from event sources, then consumes them and invoke one or more actions to run in sequence or parallel */ - | { - /** - * Unique State id - */ - id?: string; - /** - * State name - */ - name: string; - /** - * State type - */ - type: 'event'; - /** - * If true consuming one of the defined events causes its associated actions to be performed. If false all of the defined events must be consumed in order for actions to be performed - */ - exclusive?: boolean; - /** - * Define the events to be consumed and optional actions to be performed - */ - onEvents: Onevents[]; - /** - * State specific timeouts - */ - timeouts?: { - stateExecTimeout?: StateExecTimeout; - actionExecTimeout?: /* Single actions definition execution timeout duration (ISO 8601 duration format) */ ActionExecTimeout; - eventTimeout?: /* Timeout duration to wait for consuming defined events (ISO 8601 duration format) */ EventTimeout; - }; - stateDataFilter?: Statedatafilter; - /** - * States error handling definitions - */ - onErrors?: Error[]; - transition?: Transition; - end: End; - /** - * Unique Name of a workflow state which is responsible for compensation of this state - */ - compensatedBy?: string; - metadata?: /* Metadata information */ Metadata; - } - | { - /** - * Unique State id - */ - id?: string; - /** - * State name - */ - name: string; - /** - * State type - */ - type: 'event'; - /** - * If true consuming one of the defined events causes its associated actions to be performed. If false all of the defined events must be consumed in order for actions to be performed - */ - exclusive?: boolean; - /** - * Define the events to be consumed and optional actions to be performed - */ - onEvents: Onevents[]; - /** - * State specific timeouts - */ - timeouts?: { - stateExecTimeout?: StateExecTimeout; - actionExecTimeout?: /* Single actions definition execution timeout duration (ISO 8601 duration format) */ ActionExecTimeout; - eventTimeout?: /* Timeout duration to wait for consuming defined events (ISO 8601 duration format) */ EventTimeout; + | { + /** + * Unique State id + */ + id?: string; + /** + * State name + */ + name: string; + /** + * State type + */ + type: 'event'; + /** + * If true consuming one of the defined events causes its associated actions to be performed. If false all of the defined events must be consumed in order for actions to be performed + */ + exclusive?: boolean; + /** + * Define the events to be consumed and optional actions to be performed + */ + onEvents: Onevents[]; + /** + * State specific timeouts + */ + timeouts?: { + stateExecTimeout?: StateExecTimeout; + actionExecTimeout?: /* Single actions definition execution timeout duration (ISO 8601 duration format) */ ActionExecTimeout; + eventTimeout?: /* Timeout duration to wait for consuming defined events (ISO 8601 duration format) */ EventTimeout; + }; + stateDataFilter?: Statedatafilter; + /** + * States error handling definitions + */ + onErrors?: Error[]; + transition?: Transition; + end: End; + /** + * Unique Name of a workflow state which is responsible for compensation of this state + */ + compensatedBy?: string; + metadata?: /* Metadata information */ Metadata; + } + | { + /** + * Unique State id + */ + id?: string; + /** + * State name + */ + name: string; + /** + * State type + */ + type: 'event'; + /** + * If true consuming one of the defined events causes its associated actions to be performed. If false all of the defined events must be consumed in order for actions to be performed + */ + exclusive?: boolean; + /** + * Define the events to be consumed and optional actions to be performed + */ + onEvents: Onevents[]; + /** + * State specific timeouts + */ + timeouts?: { + stateExecTimeout?: StateExecTimeout; + actionExecTimeout?: /* Single actions definition execution timeout duration (ISO 8601 duration format) */ ActionExecTimeout; + eventTimeout?: /* Timeout duration to wait for consuming defined events (ISO 8601 duration format) */ EventTimeout; + }; + stateDataFilter?: Statedatafilter; + /** + * States error handling definitions + */ + onErrors?: Error[]; + transition: Transition; + end?: End; + /** + * Unique Name of a workflow state which is responsible for compensation of this state + */ + compensatedBy?: string; + metadata?: /* Metadata information */ Metadata; }; - stateDataFilter?: Statedatafilter; - /** - * States error handling definitions - */ - onErrors?: Error[]; - transition: Transition; - end?: End; - /** - * Unique Name of a workflow state which is responsible for compensation of this state - */ - compensatedBy?: string; - metadata?: /* Metadata information */ Metadata; - }; - /** * Execute a set of defined actions or workflows for each element of a data array */ @@ -998,7 +980,6 @@ export interface Foreachstate { mode?: 'sequential' | 'parallel'; metadata?: /* Metadata information */ Metadata; } - export interface Function { /** * Unique function name @@ -1018,7 +999,6 @@ export interface Function { authRef?: string; metadata?: /* Metadata information */ Metadata; } - export type Functionref = | string | { @@ -1042,7 +1022,6 @@ export type Functionref = invoke?: 'sync' | 'async'; }; export type Functions = string /* uri */ | [Function, ...Function[]]; - /** * Inject static data into state data. Does not perform any actions */ @@ -1093,64 +1072,62 @@ export interface Injectstate { usedForCompensation?: boolean; metadata?: /* Metadata information */ Metadata; } - /** * Metadata information */ export interface Metadata { [name: string]: string; } - -export type Oauth2propsdef = - | string - | { - /** - * String or a workflow expression. Contains the authority information - */ - authority?: string; - /** - * Defines the grant type - */ - grantType: 'password' | 'clientCredentials' | 'tokenExchange'; - /** - * String or a workflow expression. Contains the client identifier - */ - clientId: string; - /** - * Workflow secret or a workflow expression. Contains the client secret - */ - clientSecret?: string; - /** - * Array containing strings or workflow expressions. Contains the OAuth2 scopes - */ - scopes?: [string, ...string[]]; - /** - * String or a workflow expression. Contains the user name. Used only if grantType is 'resourceOwner' - */ - username?: string; - /** - * String or a workflow expression. Contains the user password. Used only if grantType is 'resourceOwner' - */ - password?: string; - /** - * Array containing strings or workflow expressions. Contains the OAuth2 audiences - */ - audiences?: [string, ...string[]]; - /** - * String or a workflow expression. Contains the subject token - */ - subjectToken?: string; - /** - * String or a workflow expression. Contains the requested subject - */ - requestedSubject?: string; - /** - * String or a workflow expression. Contains the requested issuer - */ - requestedIssuer?: string; - metadata?: /* Metadata information */ Metadata; - }; - +/** + * OAuth2 information + */ +export interface Oauth2propsdef { + /** + * String or a workflow expression. Contains the authority information + */ + authority?: string; + /** + * Defines the grant type + */ + grantType: 'password' | 'clientCredentials' | 'tokenExchange'; + /** + * String or a workflow expression. Contains the client identifier + */ + clientId: string; + /** + * Workflow secret or a workflow expression. Contains the client secret + */ + clientSecret?: string; + /** + * Array containing strings or workflow expressions. Contains the OAuth2 scopes + */ + scopes?: [string, ...string[]]; + /** + * String or a workflow expression. Contains the user name. Used only if grantType is 'resourceOwner' + */ + username?: string; + /** + * String or a workflow expression. Contains the user password. Used only if grantType is 'resourceOwner' + */ + password?: string; + /** + * Array containing strings or workflow expressions. Contains the OAuth2 audiences + */ + audiences?: [string, ...string[]]; + /** + * String or a workflow expression. Contains the subject token + */ + subjectToken?: string; + /** + * String or a workflow expression. Contains the requested subject + */ + requestedSubject?: string; + /** + * String or a workflow expression. Contains the requested issuer + */ + requestedIssuer?: string; + metadata?: /* Metadata information */ Metadata; +} export interface Onevents { /** * References one or more unique event names in the defined workflow events @@ -1169,7 +1146,6 @@ export interface Onevents { */ eventDataFilter?: Eventdatafilter; } - /** * Defines actions be performed. Does not wait for incoming events */ @@ -1227,7 +1203,6 @@ export interface Operationstate { usedForCompensation?: boolean; metadata?: /* Metadata information */ Metadata; } - /** * Consists of a number of states that are executed in parallel */ @@ -1289,7 +1264,6 @@ export interface Parallelstate { usedForCompensation?: boolean; metadata?: /* Metadata information */ Metadata; } - /** * Produce an event and set its data */ @@ -1313,9 +1287,7 @@ export interface Produceeventdef { [name: string]: string; }; } - export type Retries = string /* uri */ | [Retrydef, ...Retrydef[]]; - export interface Retrydef { /** * Unique retry strategy name @@ -1346,7 +1318,6 @@ export interface Retrydef { */ jitter?: number | string; } - export type Schedule = | string | /* Start state schedule definition */ ( @@ -1405,7 +1376,6 @@ export type Sleep = */ after: string; }; - /** * Causes the workflow execution to sleep for a specified duration */ @@ -1458,7 +1428,6 @@ export interface Sleepstate { usedForCompensation?: boolean; metadata?: /* Metadata information */ Metadata; } - export type Startdef = | string | { @@ -1483,7 +1452,6 @@ export type StateExecTimeout = */ total: string; }; - export interface Statedatafilter { /** * Workflow expression to filter the state data input @@ -1494,7 +1462,6 @@ export interface Statedatafilter { */ output?: string; } - export type Subflowref = | string | { @@ -1515,7 +1482,7 @@ export type Subflowref = */ invoke?: 'sync' | 'async'; }; -export type Switchstate /* Permits transitions to other states based on data conditions */ = +export type Switchstate = /* Permits transitions to other states based on data conditions */ | Databasedswitchstate | /* Permits transitions to other states based on events */ Eventbasedswitchstate; export type Timeouts = @@ -1543,7 +1510,6 @@ export type Transition = */ compensate?: boolean; }; - /** * Switch state data based condition */ @@ -1562,7 +1528,6 @@ export interface Transitiondatacondition { transition: Transition; metadata?: /* Metadata information */ Metadata; } - /** * Switch state data event condition */ @@ -1585,7 +1550,6 @@ export interface Transitioneventcondition { eventDataFilter?: Eventdatafilter; metadata?: /* Metadata information */ Metadata; } - export type WorkflowExecTimeout = | string | { diff --git a/src/lib/schema/validation/README.md b/src/lib/schema/validation/README.md index 86d82d3e..7d5a8642 100644 --- a/src/lib/schema/validation/README.md +++ b/src/lib/schema/validation/README.md @@ -1,3 +1,2 @@ # Auto generated notice - This directory and its content has been generated automatically. Do not modify its content, it WILL be lost. \ No newline at end of file diff --git a/src/lib/workflow-validator.ts b/src/lib/workflow-validator.ts index 1faca005..e9269621 100644 --- a/src/lib/workflow-validator.ts +++ b/src/lib/workflow-validator.ts @@ -30,10 +30,10 @@ export class WorkflowValidator { /** * Creates a new WorkflowValidator for the provided workflow - * @param {Workflow} workflow The workflow to validate + * @param {IWorkflow} workflow The workflow to validate */ - constructor(private workflow: Specification.Workflow) { - const validateFn = validators.get('Workflow') as ValidateFunction; + constructor(private workflow: Specification.IWorkflow) { + const validateFn = validators.get('Workflow') as ValidateFunction; const normalizedWf = this.workflow.normalize(); validateFn(JSON.parse(JSON.stringify(normalizedWf))); if (validateFn.errors) { diff --git a/tests/examples/applicantrequest.spec.ts b/tests/examples/applicantrequest.spec.ts index 6be412d9..933f38f7 100644 --- a/tests/examples/applicantrequest.spec.ts +++ b/tests/examples/applicantrequest.spec.ts @@ -15,6 +15,7 @@ * */ import * as fs from 'fs'; +import { original, produce } from 'immer'; import { actionBuilder, databasedswitchstateBuilder, @@ -22,6 +23,7 @@ import { functionBuilder, functionrefBuilder, operationstateBuilder, + Specification, transitiondataconditionBuilder, workflowBuilder, } from '../../src'; @@ -80,4 +82,68 @@ describe('applicationrequest workflow example', () => { const expected = JSON.parse(fs.readFileSync('./tests/examples/applicantrequest.json', 'utf8')); expect(JSON.stringify(workflow.normalize())).toEqual(JSON.stringify(expected)); }); + + it('built workflow should be immerable', function () { + const workflow = workflowBuilder() + .id('applicantrequest') + .version('1.0') + .specVersion('0.8') + .name('Applicant Request Decision Workflow') + .description('Determine if applicant request is valid') + .start('CheckApplication') + .functions([ + functionBuilder() + .name('sendRejectionEmailFunction') + .operation('http://myapis.org/applicationapi.json#emailRejection') + .build(), + ]) + .states([ + databasedswitchstateBuilder() + .name('CheckApplication') + .dataConditions([ + transitiondataconditionBuilder() + .condition('${ .applicants | .age >= 18 }') + .transition('StartApplication') + .build(), + transitiondataconditionBuilder() + .condition('${ .applicants | .age < 18 }') + .transition('RejectApplication') + .build(), + ]) + .defaultCondition(defaultconditiondefBuilder().transition('RejectApplication').build()) + .build(), + operationstateBuilder() + .name('StartApplication') + .actions([actionBuilder().subFlowRef('startApplicationWorkflowId').build()]) + .build(), + operationstateBuilder() + .name('RejectApplication') + .actionMode('sequential') + .actions([ + actionBuilder() + .functionRef( + functionrefBuilder() + .refName('sendRejectionEmailFunction') + .arguments({ applicant: '${ .applicant }' }) + .build() + ) + .build(), + ]) + .build(), + ]) + .build(); + + // Use immer to create a draft and compare with original model ensuring it is immerable + produce(workflow, (draft) => { + expect(workflow === original(draft)).toBe(true); + }); + }); + + it('deserialized workflow should be immerable', function () { + const model = Specification.Workflow.fromSource(fs.readFileSync('./tests/examples/applicantrequest.json', 'utf8')); + + produce(model, (draft: any) => { + expect(model === original(draft)).toBe(true); + }); + }); }); diff --git a/tests/examples/booklending.spec.ts b/tests/examples/booklending.spec.ts index 289506ea..6ed9fad8 100644 --- a/tests/examples/booklending.spec.ts +++ b/tests/examples/booklending.spec.ts @@ -15,6 +15,7 @@ * */ import * as fs from 'fs'; +import { original, produce } from 'immer'; import { actionBuilder, databasedswitchstateBuilder, @@ -25,6 +26,7 @@ import { oneventsBuilder, operationstateBuilder, sleepstateBuilder, + Specification, transitiondataconditionBuilder, transitioneventconditionBuilder, workflowBuilder, @@ -161,4 +163,145 @@ describe('booklending workflow example', () => { const expected = JSON.parse(fs.readFileSync('./tests/examples/booklending.json', 'utf8')); expect(JSON.stringify(workflow.normalize())).toEqual(JSON.stringify(expected)); }); + + it('built workflow should be immerable', function () { + const workflow = workflowBuilder() + .id('booklending') + .name('Book Lending Workflow') + .version('1.0') + .specVersion('0.8') + .start('Book Lending Request') + .states([ + eventstateBuilder() + .name('Book Lending Request') + .onEvents([oneventsBuilder().eventRefs(['Book Lending Request Event']).build()]) + .transition('Get Book Status') + .build(), + operationstateBuilder() + .name('Get Book Status') + .actions([ + actionBuilder() + .functionRef( + functionrefBuilder() + .refName('Get status for book') + .arguments({ + bookid: '${ .book.id }', + }) + .build() + ) + .build(), + ]) + .transition('Book Status Decision') + .build(), + databasedswitchstateBuilder() + .name('Book Status Decision') + .dataConditions([ + transitiondataconditionBuilder() + .name('Book is on loan') + .condition('${ .book.status == "onloan" }') + .transition('Report Status To Lender') + .build(), + transitiondataconditionBuilder() + .name('Check is available') + .condition('${ .book.status == "available" }') + .transition('Check Out Book') + .build(), + ]) + .defaultCondition(defaultconditiondefBuilder().end(true).build()) + .build(), + operationstateBuilder() + .name('Report Status To Lender') + .actions([ + actionBuilder() + .functionRef( + functionrefBuilder() + .refName('Send status to lender') + .arguments({ + bookid: '${ .book.id }', + message: 'Book ${ .book.title } is already on loan', + }) + .build() + ) + .build(), + ]) + .transition('Wait for Lender response') + .build(), + eventbasedswitchstateBuilder() + .name('Wait for Lender response') + .eventConditions([ + transitioneventconditionBuilder() + .name('Hold Book') + .eventRef('Hold Book Event') + .transition('Request Hold') + .build(), + transitioneventconditionBuilder() + .name('Decline Book Hold') + .eventRef('Decline Hold Event') + .transition('Cancel Request') + .build(), + ]) + .defaultCondition(defaultconditiondefBuilder().end(true).build()) + .build(), + operationstateBuilder() + .name('Request Hold') + .actions([ + actionBuilder() + .functionRef( + functionrefBuilder() + .refName('Request hold for lender') + .arguments({ + bookid: '${ .book.id }', + lender: '${ .lender }', + }) + .build() + ) + .build(), + ]) + .transition('Sleep two weeks') + .build(), + sleepstateBuilder().name('Sleep two weeks').duration('PT2W').transition('Get Book Status').build(), + operationstateBuilder() + .name('Check Out Book') + .actions([ + actionBuilder() + .functionRef( + functionrefBuilder() + .refName('Check out book with id') + .arguments({ + bookid: '${ .book.id }', + }) + .build() + ) + .build(), + actionBuilder() + .functionRef( + functionrefBuilder() + .refName('Notify Lender for checkout') + .arguments({ + bookid: '${ .book.id }', + lender: '${ .lender }', + }) + .build() + ) + .build(), + ]) + .build(), + ]) + .functions('file://books/lending/functions.json') + .events('file://books/lending/events.json') + .build(); + + // Use immer to create a draft and compare with original model ensuring it is immerable + produce(workflow, (draft) => { + expect(workflow === original(draft)).toBe(true); + }); + }); + + it('deserialized workflow should be immerable', function () { + const model = Specification.Workflow.fromSource(fs.readFileSync('./tests/examples/booklending.json', 'utf8')); + + produce(model, (draft: any) => { + expect(model === original(draft)).toBe(true); + }); + }); }); diff --git a/tests/examples/carauctionbids.spec.ts b/tests/examples/carauctionbids.spec.ts index 6e42a711..27ec3932 100644 --- a/tests/examples/carauctionbids.spec.ts +++ b/tests/examples/carauctionbids.spec.ts @@ -14,6 +14,7 @@ * limitations under the License. */ import * as fs from 'fs'; +import { original, produce } from 'immer'; import { actionBuilder, eventdefBuilder, @@ -21,6 +22,7 @@ import { functionBuilder, functionrefBuilder, oneventsBuilder, + Specification, workflowBuilder, } from '../../src'; @@ -68,4 +70,58 @@ describe('carauctionbids workflow example', () => { const expected = JSON.parse(fs.readFileSync('./tests/examples/carauctionbids.json', 'utf8')); expect(JSON.stringify(workflow.normalize())).toEqual(JSON.stringify(expected)); }); + + it('built workflow should be immerable', function () { + const workflow = workflowBuilder() + .id('handleCarAuctionBid') + .version('1.0') + .specVersion('0.8') + .name('Car Auction Bidding Workflow') + .description('Store a single bid whole the car auction is active') + .start({ + stateName: 'StoreCarAuctionBid', + schedule: 'R/PT2H', + }) + .functions([ + functionBuilder().name('StoreBidFunction').operation('http://myapis.org/carauctionapi.json#storeBid').build(), + ]) + .events([eventdefBuilder().name('CarBidEvent').type('carBidMadeType').source('carBidEventSource').build()]) + .states([ + eventstateBuilder() + .name('StoreCarAuctionBid') + .exclusive(true) + .onEvents([ + oneventsBuilder() + .eventRefs(['CarBidEvent']) + .actions([ + actionBuilder() + .functionRef( + functionrefBuilder() + .refName('StoreBidFunction') + .arguments({ + bid: '${ .bid }', + }) + .build() + ) + .build(), + ]) + .build(), + ]) + .build(), + ]) + .build(); + + // Use immer to create a draft and compare with original model ensuring it is immerable + produce(workflow, (draft) => { + expect(workflow === original(draft)).toBe(true); + }); + }); + + it('deserialized workflow should be immerable', function () { + const model = Specification.Workflow.fromSource(fs.readFileSync('./tests/examples/carauctionbids.json', 'utf8')); + + produce(model, (draft: any) => { + expect(model === original(draft)).toBe(true); + }); + }); }); diff --git a/tests/examples/checkcarvitals.spec.ts b/tests/examples/checkcarvitals.spec.ts index d8656307..8b029f9c 100644 --- a/tests/examples/checkcarvitals.spec.ts +++ b/tests/examples/checkcarvitals.spec.ts @@ -15,6 +15,7 @@ */ import * as fs from 'fs'; +import { original, produce } from 'immer'; import { actionBuilder, defaultconditiondefBuilder, @@ -25,6 +26,7 @@ import { oneventsBuilder, operationstateBuilder, sleepBuilder, + Specification, workflowBuilder, } from '../../src'; @@ -70,4 +72,56 @@ describe('checkcarvitals workflow example', () => { const expected = JSON.parse(fs.readFileSync('./tests/examples/checkcarvitals.json', 'utf8')); expect(JSON.stringify(workflow.normalize())).toEqual(JSON.stringify(expected)); }); + + it('built workflow should be immerable', function () { + const workflow = workflowBuilder() + .id('checkcarvitals') + .name('Check Car Vitals Workflow') + .version('1.0') + .specVersion('0.8') + .start('WhenCarIsOn') + .states([ + eventstateBuilder() + .name('WhenCarIsOn') + .onEvents([oneventsBuilder().eventRefs(['CarTurnedOnEvent']).build()]) + .transition('DoCarVitalChecks') + .build(), + operationstateBuilder() + .name('DoCarVitalChecks') + .actions([actionBuilder().subFlowRef('vitalscheck').sleep(sleepBuilder().after('PT1S').build()).build()]) + + .transition('CheckContinueVitalChecks') + .build(), + + eventbasedswitchstateBuilder() + .name('CheckContinueVitalChecks') + .eventConditions([ + enddeventconditionBuilder() + .name('Car Turned Off Condition') + .eventRef('CarTurnedOffEvent') + .end(true) + .build(), + ]) + .defaultCondition(defaultconditiondefBuilder().transition('DoCarVitalChecks').build()) + .build(), + ]) + .events([ + eventdefBuilder().name('CarTurnedOnEvent').type('car.events').source('my/car').build(), + eventdefBuilder().name('CarTurnedOffEvent').type('car.events').source('my/car').build(), + ]) + .build(); + + // Use immer to create a draft and compare with original model ensuring it is immerable + produce(workflow, (draft) => { + expect(workflow === original(draft)).toBe(true); + }); + }); + + it('deserialized workflow should be immerable', function () { + const model = Specification.Workflow.fromSource(fs.readFileSync('./tests/examples/checkcarvitals.json', 'utf8')); + + produce(model, (draft: any) => { + expect(model === original(draft)).toBe(true); + }); + }); }); diff --git a/tests/examples/jobmonitoring.spec.ts b/tests/examples/jobmonitoring.spec.ts index 8c45351c..7dfc7b4b 100644 --- a/tests/examples/jobmonitoring.spec.ts +++ b/tests/examples/jobmonitoring.spec.ts @@ -15,6 +15,7 @@ */ import * as fs from 'fs'; +import { original, produce } from 'immer'; import { actionBuilder, actiondatafilterBuilder, @@ -24,6 +25,7 @@ import { functionrefBuilder, operationstateBuilder, sleepstateBuilder, + Specification, statedatafilterBuilder, transitiondataconditionBuilder, workflowBuilder, @@ -136,4 +138,121 @@ describe('jobmonitoring workflow example', () => { const expected = JSON.parse(fs.readFileSync('./tests/examples/jobmonitoring.json', 'utf8')); expect(JSON.stringify(workflow.normalize())).toEqual(JSON.stringify(expected)); }); + + it('built workflow should be immerable', function () { + const workflow = workflowBuilder() + .id('jobmonitoring') + .version('1.0') + .specVersion('0.8') + .name('Job Monitoring') + .description('Monitor finished execution of a submitted job') + .start('SubmitJob') + .functions([ + functionBuilder().name('submitJob').operation('http://myapis.org/monitorapi.json#doSubmit').build(), + functionBuilder().name('checkJobStatus').operation('http://myapis.org/monitorapi.json#checkStatus').build(), + functionBuilder() + .name('reportJobSuceeded') + .operation('http://myapis.org/monitorapi.json#reportSucceeded') + .build(), + functionBuilder().name('reportJobFailed').operation('http://myapis.org/monitorapi.json#reportFailure').build(), + ]) + .states([ + operationstateBuilder() + .name('SubmitJob') + .actionMode('sequential') + .actions([ + actionBuilder() + .functionRef( + functionrefBuilder() + .refName('submitJob') + .arguments({ + name: '${ .job.name }', + }) + .build() + ) + .actionDataFilter(actiondatafilterBuilder().results('${ .jobuid }').build()) + .build(), + ]) + .stateDataFilter(statedatafilterBuilder().output('${ .jobuid }').build()) + .transition('WaitForCompletion') + .build(), + sleepstateBuilder().name('WaitForCompletion').duration('PT5S').transition('GetJobStatus').build(), + operationstateBuilder() + .name('GetJobStatus') + .actionMode('sequential') + .actions([ + actionBuilder() + .functionRef( + functionrefBuilder() + .refName('checkJobStatus') + .arguments({ + name: '${ .jobuid }', + }) + .build() + ) + .actionDataFilter(actiondatafilterBuilder().results('${ .jobstatus }').build()) + .build(), + ]) + .stateDataFilter(statedatafilterBuilder().output('${ .jobstatus }').build()) + .transition('DetermineCompletion') + .build(), + databasedswitchstateBuilder() + .name('DetermineCompletion') + .dataConditions([ + transitiondataconditionBuilder() + .condition('${ .jobStatus == "SUCCEEDED" }') + .transition('JobSucceeded') + .build(), + transitiondataconditionBuilder().condition('${ .jobStatus == "FAILED" }').transition('JobFailed').build(), + ]) + .defaultCondition(defaultconditiondefBuilder().transition('WaitForCompletion').build()) + .build(), + operationstateBuilder() + .name('JobSucceeded') + .actionMode('sequential') + .actions([ + actionBuilder() + .functionRef( + functionrefBuilder() + .refName('reportJobSuceeded') + .arguments({ + name: '${ .jobuid }', + }) + .build() + ) + .build(), + ]) + .build(), + operationstateBuilder() + .name('JobFailed') + .actionMode('sequential') + .actions([ + actionBuilder() + .functionRef( + functionrefBuilder() + .refName('reportJobFailed') + .arguments({ + name: '${ .jobuid }', + }) + .build() + ) + .build(), + ]) + .build(), + ]) + .build(); + + // Use immer to create a draft and compare with original model ensuring it is immerable + produce(workflow, (draft) => { + expect(workflow === original(draft)).toBe(true); + }); + }); + + it('deserialized workflow should be immerable', function () { + const model = Specification.Workflow.fromSource(fs.readFileSync('./tests/examples/jobmonitoring.json', 'utf8')); + + produce(model, (draft: any) => { + expect(model === original(draft)).toBe(true); + }); + }); }); diff --git a/tests/examples/parallel.spec.ts b/tests/examples/parallel.spec.ts index 25f6a353..0dc93c36 100644 --- a/tests/examples/parallel.spec.ts +++ b/tests/examples/parallel.spec.ts @@ -15,7 +15,8 @@ * */ import * as fs from 'fs'; -import { actionBuilder, branchBuilder, parallelstateBuilder, workflowBuilder } from '../../src'; +import { original, produce } from 'immer'; +import { actionBuilder, branchBuilder, parallelstateBuilder, Specification, workflowBuilder } from '../../src'; describe('parallel workflow example', () => { it('should generate Workflow object', function () { @@ -47,4 +48,44 @@ describe('parallel workflow example', () => { const expected = JSON.parse(fs.readFileSync('./tests/examples/parallel.json', 'utf8')); expect(JSON.stringify(workflow.normalize())).toEqual(JSON.stringify(expected)); }); + + it('built workflow should be immerable', function () { + const workflow = workflowBuilder() + .id('parallelexec') + .version('1.0') + .specVersion('0.8') + .name('Parallel Execution Workflow') + .description('Executes two branches in parallel') + .start('ParallelExec') + .states([ + parallelstateBuilder() + .name('ParallelExec') + .completionType('allOf') + .branches([ + branchBuilder() + .name('ShortDelayBranch') + .actions([actionBuilder().subFlowRef('shortdelayworkflowid').build()]) + .build(), + branchBuilder() + .name('LongDelayBranch') + .actions([actionBuilder().subFlowRef('longdelayworkflowid').build()]) + .build(), + ]) + .build(), + ]) + .build(); + + // Use immer to create a draft and compare with original model ensuring it is immerable + produce(workflow, (draft) => { + expect(workflow === original(draft)).toBe(true); + }); + }); + + it('deserialized workflow should be immerable', function () { + const model = Specification.Workflow.fromSource(fs.readFileSync('./tests/examples/parallel.json', 'utf8')); + + produce(model, (draft: any) => { + expect(model === original(draft)).toBe(true); + }); + }); }); diff --git a/tests/examples/provisionorder.spec.ts b/tests/examples/provisionorder.spec.ts index d37e9a87..45200556 100644 --- a/tests/examples/provisionorder.spec.ts +++ b/tests/examples/provisionorder.spec.ts @@ -15,6 +15,7 @@ */ import * as fs from 'fs'; +import { original, produce } from 'immer'; import { actionBuilder, errorBuilder, @@ -22,6 +23,7 @@ import { functionBuilder, functionrefBuilder, operationstateBuilder, + Specification, statedatafilterBuilder, workflowBuilder, } from '../../src'; @@ -92,4 +94,80 @@ describe('provisionorder workflow example', () => { const expected = JSON.parse(fs.readFileSync('./tests/examples/provisionorder.json', 'utf8')); expect(JSON.stringify(workflow.normalize())).toEqual(JSON.stringify(expected)); }); + + it('built workflow should be immerable', function () { + const workflow = workflowBuilder() + .id('provisionorders') + .version('1.0') + .specVersion('0.8') + .name('Provision Orders') + .description('Provision Orders and handle errors thrown') + .start('ProvisionOrder') + .functions([ + functionBuilder() + .name('provisionOrderFunction') + .operation('http://myapis.org/provisioningapi.json#doProvision') + .build(), + ]) + .errors([ + errordefBuilder().name('Missing order id').build(), + errordefBuilder().name('Missing order item').build(), + errordefBuilder().name('Missing order quantity').build(), + ]) + .states([ + operationstateBuilder() + .name('ProvisionOrder') + .actionMode('sequential') + .actions([ + actionBuilder() + .functionRef( + functionrefBuilder() + .refName('provisionOrderFunction') + .arguments({ + order: '${ .order }', + }) + .build() + ) + .build(), + ]) + .stateDataFilter(statedatafilterBuilder().output('${ .exceptions }').build()) + .transition('ApplyOrder') + .onErrors([ + errorBuilder().errorRef('Missing order id').transition('MissingId').build(), + errorBuilder().errorRef('Missing order item').transition('MissingItem').build(), + errorBuilder().errorRef('Missing order quantity').transition('MissingQuantity').build(), + ]) + .build(), + operationstateBuilder() + .name('MissingId') + .actions([actionBuilder().subFlowRef('handleMissingIdExceptionWorkflow').build()]) + .build(), + operationstateBuilder() + .name('MissingItem') + .actions([actionBuilder().subFlowRef('handleMissingItemExceptionWorkflow').build()]) + .build(), + operationstateBuilder() + .name('MissingQuantity') + .actions([actionBuilder().subFlowRef('handleMissingQuantityExceptionWorkflow').build()]) + .build(), + operationstateBuilder() + .name('ApplyOrder') + .actions([actionBuilder().subFlowRef('applyOrderWorkflowId').build()]) + .build(), + ]) + .build(); + + // Use immer to create a draft and compare with original model ensuring it is immerable + produce(workflow, (draft) => { + expect(workflow === original(draft)).toBe(true); + }); + }); + + it('deserialized workflow should be immerable', function () { + const model = Specification.Workflow.fromSource(fs.readFileSync('./tests/examples/provisionorder.json', 'utf8')); + + produce(model, (draft: any) => { + expect(model === original(draft)).toBe(true); + }); + }); }); diff --git a/tests/examples/sendcloudevent.spec.ts b/tests/examples/sendcloudevent.spec.ts index 0bb63bf0..f5ace19f 100644 --- a/tests/examples/sendcloudevent.spec.ts +++ b/tests/examples/sendcloudevent.spec.ts @@ -14,6 +14,7 @@ * limitations under the License. */ import * as fs from 'fs'; +import { original, produce } from 'immer'; import { actionBuilder, endBuilder, @@ -22,6 +23,7 @@ import { functionBuilder, functionrefBuilder, produceeventdefBuilder, + Specification, workflowBuilder, } from '../../src'; @@ -74,4 +76,63 @@ describe('sendcloudevent workflow example', () => { const expected = JSON.parse(fs.readFileSync('./tests/examples/sendcloudevent.json', 'utf8')); expect(JSON.stringify(workflow.normalize())).toEqual(JSON.stringify(expected)); }); + + it('built workflow should be immerable', function () { + const workflow = workflowBuilder() + .id('sendcloudeventonprovision') + .version('1.0') + .specVersion('0.8') + .name('Send CloudEvent on provision completion') + .start('ProvisionOrdersState') + .events([ + eventdefBuilder().name('provisioningCompleteEvent').type('provisionCompleteType').kind('produced').build(), + ]) + .functions([ + functionBuilder() + .name('provisionOrderFunction') + .operation('http://myapis.org/provisioning.json#doProvision') + .build(), + ]) + .states([ + foreachstateBuilder() + .name('ProvisionOrdersState') + .inputCollection('${ .orders }') + .iterationParam('singleorder') + .outputCollection('${ .provisionedOrders }') + .actions([ + actionBuilder() + .functionRef( + functionrefBuilder() + .refName('provisionOrderFunction') + .arguments({ + order: '${ .singleorder }', + }) + .build() + ) + .build(), + ]) + .end( + endBuilder() + .produceEvents([ + produceeventdefBuilder().eventRef('provisioningCompleteEvent').data('${ .provisionedOrders }').build(), + ]) + .build() + ) + .build(), + ]) + .build(); + + // Use immer to create a draft and compare with original model ensuring it is immerable + produce(workflow, (draft) => { + expect(workflow === original(draft)).toBe(true); + }); + }); + + it('deserialized workflow should be immerable', function () { + const model = Specification.Workflow.fromSource(fs.readFileSync('./tests/examples/sendcloudevent.json', 'utf8')); + + produce(model, (draft: any) => { + expect(model === original(draft)).toBe(true); + }); + }); }); diff --git a/tests/examples/solvemathproblems.spec.ts b/tests/examples/solvemathproblems.spec.ts index a9eb5ac8..db731a0b 100644 --- a/tests/examples/solvemathproblems.spec.ts +++ b/tests/examples/solvemathproblems.spec.ts @@ -14,11 +14,13 @@ * limitations under the License. */ import * as fs from 'fs'; +import { original, produce } from 'immer'; import { actionBuilder, foreachstateBuilder, functionBuilder, functionrefBuilder, + Specification, statedatafilterBuilder, workflowBuilder, } from '../../src'; @@ -64,4 +66,55 @@ describe('solvemathproblems workflow example', () => { const expected = JSON.parse(fs.readFileSync('./tests/examples/solvemathproblems.json', 'utf8')); expect(JSON.stringify(workflow.normalize())).toEqual(JSON.stringify(expected)); }); + + it('built workflow should be immerable', function () { + const workflow = workflowBuilder() + .id('solvemathproblems') + .version('1.0') + .specVersion('0.8') + .name('Solve Math Problems Workflow') + .description('Solve math problems') + .start('Solve') + .functions([ + functionBuilder() + .name('solveMathExpressionFunction') + .operation('http://myapis.org/mapthapis.json#solveExpression') + .build(), + ]) + .states([ + foreachstateBuilder() + .name('Solve') + .inputCollection('${ .expressions }') + .iterationParam('singleexpression') + .outputCollection('${ .results }') + .actions([ + actionBuilder() + .functionRef( + functionrefBuilder() + .refName('solveMathExpressionFunction') + .arguments({ + expression: '${ .singleexpression }', + }) + .build() + ) + .build(), + ]) + .stateDataFilter(statedatafilterBuilder().output('${ .results }').build()) + .build(), + ]) + .build(); + + // Use immer to create a draft and compare with original model ensuring it is immerable + produce(workflow, (draft) => { + expect(workflow === original(draft)).toBe(true); + }); + }); + + it('deserialized workflow should be immerable', function () { + const model = Specification.Workflow.fromSource(fs.readFileSync('./tests/examples/solvemathproblems.json', 'utf8')); + + produce(model, (draft: any) => { + expect(model === original(draft)).toBe(true); + }); + }); }); diff --git a/tests/lib/definitions/workflow.spec.ts b/tests/lib/definitions/workflow.spec.ts index 59c67262..7f207973 100644 --- a/tests/lib/definitions/workflow.spec.ts +++ b/tests/lib/definitions/workflow.spec.ts @@ -35,7 +35,7 @@ describe('workflow fromSource', () => { ]; testCases.forEach((test) => { it(test.description, function () { - const workflow: Specification.Workflow = Workflow.fromSource(readFileSync(test.file, 'utf-8')); + const workflow: Specification.IWorkflow = Workflow.fromSource(readFileSync(test.file, 'utf-8')); expect(workflow.id).toBe('helloworld'); expect(workflow.version).toBe('1.0'); expect(workflow.name).toBe('Hello World Workflow'); diff --git a/tests/lib/utils.spec.ts b/tests/lib/utils.spec.ts index a4ba8215..1effc6ba 100644 --- a/tests/lib/utils.spec.ts +++ b/tests/lib/utils.spec.ts @@ -18,7 +18,7 @@ import { validate } from '../../src/lib/utils'; describe('validate', () => { it('should throw an error containing the provided data', () => { - expect(() => validate('End', 'any text')).toThrowError(/any text/); + expect(() => validate('End', 'any text')).toThrow(/any text/); }); it('should return true for valid objects', () => { @@ -46,10 +46,10 @@ describe('validate', () => { keyAdditionalProperty: 'anyValue', }; - expect(() => validate('Function', functionObj)).toThrowError(/keyAdditionalProperty/); + expect(() => validate('Function', functionObj)).toThrow(/keyAdditionalProperty/); }); it('should throws an error if validator not found', () => { - expect(() => validate('ValidatorNotDefined', {})).toThrowError(); + expect(() => validate('ValidatorNotDefined', {})).toThrow(); }); }); diff --git a/tests/lib/workflow-validator.spec.ts b/tests/lib/workflow-validator.spec.ts index f602b865..7908e8d2 100644 --- a/tests/lib/workflow-validator.spec.ts +++ b/tests/lib/workflow-validator.spec.ts @@ -44,6 +44,8 @@ describe('workflow-validator, invalid state', () => { // @ts-ignore workflowWithEmptyStates.states = []; + console.log('--> handrey: ' + workflowWithEmptyStates.states.length); + const workflowValidator = new WorkflowValidator(workflowWithEmptyStates); const numErrors = 1; diff --git a/tools/generate-builders.ts b/tools/generate-builders.ts index f9ae0fa0..454093c4 100644 --- a/tools/generate-builders.ts +++ b/tools/generate-builders.ts @@ -120,31 +120,38 @@ const createBuilder = async (destDir: string, dataType: string): Promise = fileHeader + `import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; +import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; +import { toPlainObject } from 'lodash'; ${extension?.import ? extension.import : ''} /** * The internal function used by the builder proxy to validate and return its underlying object - * @param {Specification.${dataType}} data The underlying object - * @returns {Specification.${dataType}} The validated underlying object + * @param {Specification.I${dataType}} data The underlying object + * @returns {Specification.I${dataType}} The validated underlying object */ -function ${camelType}BuildingFn(data: Specification.${dataType}): (() => Specification.${dataType}) { +function ${camelType}BuildingFn(data: Specification.I${dataType}): (() => Specification.I${dataType}) { return () => { const model = new Specification.${dataType}(data); ${extension?.preValidate ? extension.preValidate : ''} - validate('${dataType}', model.normalize()); - return model; + if (hasProperty(model, "normalize")) { + validate('${dataType}', (model as any).normalize()); + } else { + validate('${dataType}', model); + } + + return toPlainObject(model); }; } /** * A factory to create a builder proxy for the type \`Specification.${dataType}\` - * @returns {Specification.${dataType}} A builder for \`Specification.${dataType}\` + * @returns {Specification.I${dataType}} A builder for \`Specification.${dataType}\` */ -export function ${camelType}Builder(): Builder { - return builder(${camelType}BuildingFn); +export function ${camelType}Builder(): Builder { + return builder(${camelType}BuildingFn); }`; const destFile = path.resolve(destDir, toKebabCase(camelType) + '-builder.ts'); await writeFile(destFile, builderCode); From 50c603a426973067ceaa51b94b9a8a98798659d5 Mon Sep 17 00:00:00 2001 From: handreyrc Date: Tue, 14 Oct 2025 11:16:30 -0400 Subject: [PATCH 2/4] fix lodash dependency and remove debug message Signed-off-by: handreyrc --- package-lock.json | 261 ++++++++-------- package.json | 4 +- src/lib/builders/action-builder.ts | 2 +- src/lib/builders/actiondatafilter-builder.ts | 2 +- src/lib/builders/authdef-builder.ts | 2 +- src/lib/builders/basicpropsdef-builder.ts | 2 +- src/lib/builders/bearerpropsdef-builder.ts | 2 +- src/lib/builders/branch-builder.ts | 2 +- src/lib/builders/callbackstate-builder.ts | 2 +- src/lib/builders/continueasdef-builder.ts | 2 +- src/lib/builders/correlation-def-builder.ts | 2 +- src/lib/builders/crondef-builder.ts | 2 +- .../builders/databasedswitchstate-builder.ts | 2 +- .../builders/defaultconditiondef-builder.ts | 2 +- src/lib/builders/end-builder.ts | 2 +- src/lib/builders/enddatacondition-builder.ts | 2 +- .../builders/enddeventcondition-builder.ts | 2 +- src/lib/builders/error-builder.ts | 2 +- src/lib/builders/errordef-builder.ts | 2 +- .../builders/eventbasedswitchstate-builder.ts | 2 +- src/lib/builders/eventdatafilter-builder.ts | 2 +- src/lib/builders/eventdef-builder.ts | 2 +- src/lib/builders/eventref-builder.ts | 2 +- src/lib/builders/eventstate-builder.ts | 2 +- src/lib/builders/foreachstate-builder.ts | 2 +- src/lib/builders/function-builder.ts | 2 +- src/lib/builders/functionref-builder.ts | 2 +- src/lib/builders/injectstate-builder.ts | 2 +- src/lib/builders/metadata-builder.ts | 2 +- src/lib/builders/oauth2propsdef-builder.ts | 2 +- src/lib/builders/onevents-builder.ts | 2 +- src/lib/builders/operationstate-builder.ts | 2 +- src/lib/builders/parallelstate-builder.ts | 2 +- src/lib/builders/produceeventdef-builder.ts | 2 +- src/lib/builders/retrydef-builder.ts | 2 +- src/lib/builders/schedule-builder.ts | 2 +- src/lib/builders/sleep-builder.ts | 2 +- src/lib/builders/sleepstate-builder.ts | 2 +- src/lib/builders/startdef-builder.ts | 2 +- .../builders/state-exec-timeout-builder.ts | 2 +- src/lib/builders/statedatafilter-builder.ts | 2 +- src/lib/builders/subflowref-builder.ts | 2 +- src/lib/builders/timeouts-builder.ts | 2 +- src/lib/builders/transition-builder.ts | 2 +- .../transitiondatacondition-builder.ts | 2 +- .../transitioneventcondition-builder.ts | 2 +- src/lib/builders/workflow-builder.ts | 2 +- .../builders/workflow-exec-timeout-builder.ts | 2 +- src/lib/definitions/action.ts | 2 +- src/lib/definitions/authdef.ts | 2 +- src/lib/definitions/branch.ts | 2 +- src/lib/definitions/callbackstate.ts | 2 +- src/lib/definitions/continueasdef.ts | 2 +- src/lib/definitions/databasedswitchstate.ts | 2 +- src/lib/definitions/defaultconditiondef.ts | 2 +- src/lib/definitions/end.ts | 4 +- src/lib/definitions/enddatacondition.ts | 3 +- src/lib/definitions/enddeventcondition.ts | 3 +- src/lib/definitions/error.ts | 3 +- src/lib/definitions/eventbasedswitchstate.ts | 2 +- src/lib/definitions/eventdef.ts | 2 +- src/lib/definitions/eventref.ts | 2 +- src/lib/definitions/eventstate.ts | 2 +- src/lib/definitions/foreachstate.ts | 2 +- src/lib/definitions/function.ts | 2 +- src/lib/definitions/functionref.ts | 2 +- src/lib/definitions/injectstate.ts | 2 +- src/lib/definitions/onevents.ts | 3 +- src/lib/definitions/operationstate.ts | 2 +- src/lib/definitions/parallelstate.ts | 2 +- src/lib/definitions/sleepstate.ts | 2 +- src/lib/definitions/subflowref.ts | 2 +- src/lib/definitions/timeouts.ts | 2 +- src/lib/definitions/transition.ts | 3 +- .../definitions/transitiondatacondition.ts | 3 +- .../definitions/transitioneventcondition.ts | 3 +- src/lib/definitions/utils.ts | 2 +- src/lib/definitions/workflow.ts | 2 +- src/lib/definitions/workflowExecTimeout.ts | 2 +- src/lib/schema/__merged.json | 280 +++++++++--------- src/lib/schema/validation/validators-paths.ts | 4 +- tests/lib/workflow-validator.spec.ts | 2 - tools/generate-builders.ts | 2 +- tools/utils.ts | 17 +- 84 files changed, 363 insertions(+), 370 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6b2a3917..3b5ec745 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,9 +20,8 @@ "@rollup/plugin-node-resolve": "^13.0.0", "@types/jest": "^30.0.0", "@types/js-yaml": "^4.0.1", - "@types/lodash": "^4.14.168", + "@types/lodash.toplainobject": "^4.2.9", "@types/node-fetch": "^2.5.10", - "@types/rimraf": "^4.0.5", "@types/yargs": "^16.0.1", "@typescript-eslint/eslint-plugin": "^8.45.0", "@typescript-eslint/parser": "^8.45.0", @@ -34,7 +33,7 @@ "immer": "^10.0.3", "jest": "^30.2.0", "lint-staged": "11.0.0", - "lodash": "^4.17.21", + "lodash.toplainobject": "^4.2.0", "node-fetch": "^2.6.1", "prettier": "^2.3.0", "rimraf": "^6.0.1", @@ -696,19 +695,22 @@ } }, "node_modules/@eslint/config-helpers": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.1.tgz", - "integrity": "sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.0.tgz", + "integrity": "sha512-WUFvV4WoIwW8Bv0KeKCIIEgdSiFOsulyN0xrMu+7z43q/hkOLXjvb5u7UC9jDxvRzcrbEmuZBX5yJZz1741jog==", "dev": true, "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.16.0" + }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@eslint/core": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.2.tgz", - "integrity": "sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==", + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.16.0.tgz", + "integrity": "sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -801,9 +803,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.36.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.36.0.tgz", - "integrity": "sha512-uhCbYtYynH30iZErszX78U+nR3pJU3RHGQ57NXy5QupD4SBVwDeU8TNBy+MjMngc1UyIW9noKqsRqfjQTBU2dw==", + "version": "9.37.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.37.0.tgz", + "integrity": "sha512-jaS+NJ+hximswBG6pjNX0uEJZkrT0zwpVi3BA3vX22aFGjJjmgSTSmPpZCRKmoBL5VY/M6p0xsSJx7rk7sy5gg==", "dev": true, "license": "MIT", "engines": { @@ -824,13 +826,13 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.5.tgz", - "integrity": "sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.0.tgz", + "integrity": "sha512-sB5uyeq+dwCWyPi31B2gQlVlo+j5brPlWx4yZBrEaRo/nhdDE8Xke1gsGgtiBdaBTxuTkceLVuVt/pclrasb0A==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.15.2", + "@eslint/core": "^0.16.0", "levn": "^0.4.1" }, "engines": { @@ -1543,9 +1545,9 @@ } }, "node_modules/@rollup/plugin-commonjs": { - "version": "28.0.6", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-28.0.6.tgz", - "integrity": "sha512-XSQB1K7FUU5QP+3lOQmVCE3I0FcbbNvmNT4VJSj93iUjayaARrTQeoRdiYQoftAJBLrR9t2agwAd3ekaTgHNlw==", + "version": "28.0.7", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-28.0.7.tgz", + "integrity": "sha512-6cE2Wr/MkpdtTS8gXlCn9Zdmf7e9Xm96yFqOwFEXuvYLAHtjRf57/n6GEVF4K8NSesT1eKdBtcDA/SQdpW/8nA==", "dev": true, "license": "MIT", "dependencies": { @@ -1865,14 +1867,24 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/lodash.toplainobject": { + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/@types/lodash.toplainobject/-/lodash.toplainobject-4.2.9.tgz", + "integrity": "sha512-2VcFNuMaENDyamH8pCM7lHW1Q9aPNLHIjf5pgrJqgjrkc393Is+nCGUYOmxcXwrlGqMHBKYFomhhK2j45L6WkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/lodash": "*" + } + }, "node_modules/@types/node": { - "version": "24.6.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.6.2.tgz", - "integrity": "sha512-d2L25Y4j+W3ZlNAeMKcy7yDsK425ibcAOO2t7aPTz6gNMH0z2GThtwENCDc0d/Pw9wgyRqE5Px1wkV7naz8ang==", + "version": "24.7.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.7.2.tgz", + "integrity": "sha512-/NbVmcGTP+lj5oa4yiYxxeBjRivKQ5Ns1eSZeB99ExsEQ6rX5XYU1Zy/gGxY/ilqtD4Etx9mKyrPxZRetiahhA==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~7.13.0" + "undici-types": "~7.14.0" } }, "node_modules/@types/node-fetch": { @@ -1903,17 +1915,6 @@ "@types/node": "*" } }, - "node_modules/@types/rimraf": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@types/rimraf/-/rimraf-4.0.5.tgz", - "integrity": "sha512-DTCZoIQotB2SUJnYgrEx43cQIUYOlNZz0AZPbKU4PSLYTUdML5Gox0++z4F9kQocxStrCmRNhi4x5x/UlwtKUA==", - "deprecated": "This is a stub types definition. rimraf provides its own type definitions, so you do not need this installed.", - "dev": true, - "license": "MIT", - "dependencies": { - "rimraf": "*" - } - }, "node_modules/@types/stack-utils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", @@ -1939,17 +1940,17 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.45.0.tgz", - "integrity": "sha512-HC3y9CVuevvWCl/oyZuI47dOeDF9ztdMEfMH8/DW/Mhwa9cCLnK1oD7JoTVGW/u7kFzNZUKUoyJEqkaJh5y3Wg==", + "version": "8.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.46.1.tgz", + "integrity": "sha512-rUsLh8PXmBjdiPY+Emjz9NX2yHvhS11v0SR6xNJkm5GM1MO9ea/1GoDKlHHZGrOJclL/cZ2i/vRUYVtjRhrHVQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.45.0", - "@typescript-eslint/type-utils": "8.45.0", - "@typescript-eslint/utils": "8.45.0", - "@typescript-eslint/visitor-keys": "8.45.0", + "@typescript-eslint/scope-manager": "8.46.1", + "@typescript-eslint/type-utils": "8.46.1", + "@typescript-eslint/utils": "8.46.1", + "@typescript-eslint/visitor-keys": "8.46.1", "graphemer": "^1.4.0", "ignore": "^7.0.0", "natural-compare": "^1.4.0", @@ -1963,22 +1964,22 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.45.0", + "@typescript-eslint/parser": "^8.46.1", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/parser": { - "version": "8.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.45.0.tgz", - "integrity": "sha512-TGf22kon8KW+DeKaUmOibKWktRY8b2NSAZNdtWh798COm1NWx8+xJ6iFBtk3IvLdv6+LGLJLRlyhrhEDZWargQ==", + "version": "8.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.46.1.tgz", + "integrity": "sha512-6JSSaBZmsKvEkbRUkf7Zj7dru/8ZCrJxAqArcLaVMee5907JdtEbKGsZ7zNiIm/UAkpGUkaSMZEXShnN2D1HZA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.45.0", - "@typescript-eslint/types": "8.45.0", - "@typescript-eslint/typescript-estree": "8.45.0", - "@typescript-eslint/visitor-keys": "8.45.0", + "@typescript-eslint/scope-manager": "8.46.1", + "@typescript-eslint/types": "8.46.1", + "@typescript-eslint/typescript-estree": "8.46.1", + "@typescript-eslint/visitor-keys": "8.46.1", "debug": "^4.3.4" }, "engines": { @@ -1994,14 +1995,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.45.0.tgz", - "integrity": "sha512-3pcVHwMG/iA8afdGLMuTibGR7pDsn9RjDev6CCB+naRsSYs2pns5QbinF4Xqw6YC/Sj3lMrm/Im0eMfaa61WUg==", + "version": "8.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.46.1.tgz", + "integrity": "sha512-FOIaFVMHzRskXr5J4Jp8lFVV0gz5ngv3RHmn+E4HYxSJ3DgDzU7fVI1/M7Ijh1zf6S7HIoaIOtln1H5y8V+9Zg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.45.0", - "@typescript-eslint/types": "^8.45.0", + "@typescript-eslint/tsconfig-utils": "^8.46.1", + "@typescript-eslint/types": "^8.46.1", "debug": "^4.3.4" }, "engines": { @@ -2016,14 +2017,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.45.0.tgz", - "integrity": "sha512-clmm8XSNj/1dGvJeO6VGH7EUSeA0FMs+5au/u3lrA3KfG8iJ4u8ym9/j2tTEoacAffdW1TVUzXO30W1JTJS7dA==", + "version": "8.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.46.1.tgz", + "integrity": "sha512-weL9Gg3/5F0pVQKiF8eOXFZp8emqWzZsOJuWRUNtHT+UNV2xSJegmpCNQHy37aEQIbToTq7RHKhWvOsmbM680A==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.45.0", - "@typescript-eslint/visitor-keys": "8.45.0" + "@typescript-eslint/types": "8.46.1", + "@typescript-eslint/visitor-keys": "8.46.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2034,9 +2035,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.45.0.tgz", - "integrity": "sha512-aFdr+c37sc+jqNMGhH+ajxPXwjv9UtFZk79k8pLoJ6p4y0snmYpPA52GuWHgt2ZF4gRRW6odsEj41uZLojDt5w==", + "version": "8.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.46.1.tgz", + "integrity": "sha512-X88+J/CwFvlJB+mK09VFqx5FE4H5cXD+H/Bdza2aEWkSb8hnWIQorNcscRl4IEo1Cz9VI/+/r/jnGWkbWPx54g==", "dev": true, "license": "MIT", "engines": { @@ -2051,15 +2052,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.45.0.tgz", - "integrity": "sha512-bpjepLlHceKgyMEPglAeULX1vixJDgaKocp0RVJ5u4wLJIMNuKtUXIczpJCPcn2waII0yuvks/5m5/h3ZQKs0A==", + "version": "8.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.46.1.tgz", + "integrity": "sha512-+BlmiHIiqufBxkVnOtFwjah/vrkF4MtKKvpXrKSPLCkCtAp8H01/VV43sfqA98Od7nJpDcFnkwgyfQbOG0AMvw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.45.0", - "@typescript-eslint/typescript-estree": "8.45.0", - "@typescript-eslint/utils": "8.45.0", + "@typescript-eslint/types": "8.46.1", + "@typescript-eslint/typescript-estree": "8.46.1", + "@typescript-eslint/utils": "8.46.1", "debug": "^4.3.4", "ts-api-utils": "^2.1.0" }, @@ -2076,9 +2077,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.45.0.tgz", - "integrity": "sha512-WugXLuOIq67BMgQInIxxnsSyRLFxdkJEJu8r4ngLR56q/4Q5LrbfkFRH27vMTjxEK8Pyz7QfzuZe/G15qQnVRA==", + "version": "8.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.46.1.tgz", + "integrity": "sha512-C+soprGBHwWBdkDpbaRC4paGBrkIXxVlNohadL5o0kfhsXqOC6GYH2S/Obmig+I0HTDl8wMaRySwrfrXVP8/pQ==", "dev": true, "license": "MIT", "engines": { @@ -2090,16 +2091,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.45.0.tgz", - "integrity": "sha512-GfE1NfVbLam6XQ0LcERKwdTTPlLvHvXXhOeUGC1OXi4eQBoyy1iVsW+uzJ/J9jtCz6/7GCQ9MtrQ0fml/jWCnA==", + "version": "8.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.1.tgz", + "integrity": "sha512-uIifjT4s8cQKFQ8ZBXXyoUODtRoAd7F7+G8MKmtzj17+1UbdzFl52AzRyZRyKqPHhgzvXunnSckVu36flGy8cg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.45.0", - "@typescript-eslint/tsconfig-utils": "8.45.0", - "@typescript-eslint/types": "8.45.0", - "@typescript-eslint/visitor-keys": "8.45.0", + "@typescript-eslint/project-service": "8.46.1", + "@typescript-eslint/tsconfig-utils": "8.46.1", + "@typescript-eslint/types": "8.46.1", + "@typescript-eslint/visitor-keys": "8.46.1", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -2119,16 +2120,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.45.0.tgz", - "integrity": "sha512-bxi1ht+tLYg4+XV2knz/F7RVhU0k6VrSMc9sb8DQ6fyCTrGQLHfo7lDtN0QJjZjKkLA2ThrKuCdHEvLReqtIGg==", + "version": "8.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.46.1.tgz", + "integrity": "sha512-vkYUy6LdZS7q1v/Gxb2Zs7zziuXN0wxqsetJdeZdRe/f5dwJFglmuvZBfTUivCtjH725C1jWCDfpadadD95EDQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", - "@typescript-eslint/scope-manager": "8.45.0", - "@typescript-eslint/types": "8.45.0", - "@typescript-eslint/typescript-estree": "8.45.0" + "@typescript-eslint/scope-manager": "8.46.1", + "@typescript-eslint/types": "8.46.1", + "@typescript-eslint/typescript-estree": "8.46.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2143,13 +2144,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.45.0.tgz", - "integrity": "sha512-qsaFBA3e09MIDAGFUrTk+dzqtfv1XPVz8t8d1f0ybTzrCY7BKiMC5cjrl1O/P7UmHsNyW90EYSkU/ZWpmXelag==", + "version": "8.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.1.tgz", + "integrity": "sha512-ptkmIf2iDkNUjdeu2bQqhFPV1m6qTnFFjg7PPDjxKWaMaP0Z6I9l30Jr3g5QqbZGdw8YdYvLp+XnqnWWZOg/NA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.45.0", + "@typescript-eslint/types": "8.46.1", "eslint-visitor-keys": "^4.2.1" }, "engines": { @@ -2744,9 +2745,9 @@ "license": "MIT" }, "node_modules/baseline-browser-mapping": { - "version": "2.8.11", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.11.tgz", - "integrity": "sha512-i+sRXGhz4+QW8aACZ3+r1GAKMt0wlFpeA8M5rOQd0HEYw9zhDrlx9Wc8uQ0IdXakjJRthzglEwfB/yqIjO6iDg==", + "version": "2.8.16", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.16.tgz", + "integrity": "sha512-OMu3BGQ4E7P1ErFsIPpbJh0qvDudM/UuJeHgkAvfWe+0HFJCXh+t/l8L6fVLR55RI/UbKrVLnAXZSVwd9ysWYw==", "dev": true, "license": "Apache-2.0", "bin": { @@ -2895,9 +2896,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001747", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001747.tgz", - "integrity": "sha512-mzFa2DGIhuc5490Nd/G31xN1pnBnYMadtkyTjefPI7wzypqgCEpeWu9bJr0OnDsyKrW75zA9ZAt7pbQFmwLsQg==", + "version": "1.0.30001750", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001750.tgz", + "integrity": "sha512-cuom0g5sdX6rw00qOoLNSFCJ9/mYIsuSOA+yzpDw8eopiFqcVwQvZHqov0vmEighRxX++cfC0Vg1G+1Iy/mSpQ==", "dev": true, "funding": [ { @@ -2943,9 +2944,9 @@ } }, "node_modules/ci-info": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.3.0.tgz", - "integrity": "sha512-l+2bNRMiQgcfILUi33labAZYIWlH1kWDp+ecNo5iisRKrbm0xcRyCww71/YU0Fkw0mAFpz9bJayXPjey6vkmaQ==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.3.1.tgz", + "integrity": "sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==", "dev": true, "funding": [ { @@ -3403,9 +3404,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.230", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.230.tgz", - "integrity": "sha512-A6A6Fd3+gMdaed9wX83CvHYJb4UuapPD5X5SLq72VZJzxHSY0/LUweGXRWmQlh2ln7KV7iw7jnwXK7dlPoOnHQ==", + "version": "1.5.235", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.235.tgz", + "integrity": "sha512-i/7ntLFwOdoHY7sgjlTIDo4Sl8EdoTjWIaKinYOVfC6bOp71bmwenyZthWHcasxgHDNWbWxvG9M3Ia116zIaYQ==", "dev": true, "license": "ISC" }, @@ -3559,20 +3560,20 @@ } }, "node_modules/eslint": { - "version": "9.36.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.36.0.tgz", - "integrity": "sha512-hB4FIzXovouYzwzECDcUkJ4OcfOEkXTv2zRY6B9bkwjx/cprAq0uvm1nl7zvQ0/TsUk0zQiN4uPfJpB9m+rPMQ==", + "version": "9.37.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.37.0.tgz", + "integrity": "sha512-XyLmROnACWqSxiGYArdef1fItQd47weqB7iwtfr9JHwRrqIXZdcFMvvEcL9xHCmL0SNsOvF0c42lWyM1U5dgig==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.21.0", - "@eslint/config-helpers": "^0.3.1", - "@eslint/core": "^0.15.2", + "@eslint/config-helpers": "^0.4.0", + "@eslint/core": "^0.16.0", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.36.0", - "@eslint/plugin-kit": "^0.3.5", + "@eslint/js": "9.37.0", + "@eslint/plugin-kit": "^0.4.0", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", @@ -5723,13 +5724,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true, - "license": "MIT" - }, "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -5744,6 +5738,13 @@ "dev": true, "license": "MIT" }, + "node_modules/lodash.toplainobject": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.toplainobject/-/lodash.toplainobject-4.2.0.tgz", + "integrity": "sha512-NrHbskTrjkERkZ69ZzUcaUX3lt/vzu1h0JPX05Upqsx5rO8pPTd9BzcpwEqnubawZySup1Q1QY0xfOwnyd4xrA==", + "dev": true, + "license": "MIT" + }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -6042,9 +6043,9 @@ "license": "MIT" }, "node_modules/napi-postinstall": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.3.tgz", - "integrity": "sha512-uTp172LLXSxuSYHv/kou+f6KW3SMppU9ivthaVTXian9sOt3XM/zHYHpRZiLgQoxeWfYUnslNWQHF1+G71xcow==", + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.4.tgz", + "integrity": "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==", "dev": true, "license": "MIT", "bin": { @@ -6107,9 +6108,9 @@ "license": "MIT" }, "node_modules/node-releases": { - "version": "2.0.21", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.21.tgz", - "integrity": "sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==", + "version": "2.0.23", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.23.tgz", + "integrity": "sha512-cCmFDMSm26S6tQSDpBCg/NR8NENrVPhAJSf+XbxBG4rPFaaonlEoE9wHQmun+cls499TQGSb7ZyPBRlzgKfpeg==", "dev": true, "license": "MIT" }, @@ -7054,9 +7055,9 @@ "license": "MIT" }, "node_modules/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", "dev": true, "license": "ISC", "bin": { @@ -7775,9 +7776,9 @@ } }, "node_modules/ts-jest": { - "version": "29.4.4", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.4.tgz", - "integrity": "sha512-ccVcRABct5ZELCT5U0+DZwkXMCcOCLi2doHRrKy1nK/s7J7bch6TzJMsrY09WxgUUIP/ITfmcDS8D2yl63rnXw==", + "version": "29.4.5", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.5.tgz", + "integrity": "sha512-HO3GyiWn2qvTQA4kTgjDcXiMwYQt68a1Y8+JuLRVpdIzm+UOLSHgl/XqR4c6nzJkq5rOkjc02O2I7P7l/Yof0Q==", "dev": true, "license": "MIT", "dependencies": { @@ -7787,7 +7788,7 @@ "json5": "^2.2.3", "lodash.memoize": "^4.1.2", "make-error": "^1.3.6", - "semver": "^7.7.2", + "semver": "^7.7.3", "type-fest": "^4.41.0", "yargs-parser": "^21.1.1" }, @@ -7950,9 +7951,9 @@ } }, "node_modules/undici-types": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.13.0.tgz", - "integrity": "sha512-Ov2Rr9Sx+fRgagJ5AX0qvItZG/JKKoBRAVITs1zk7IqZGTJUwgUr7qoYBpWwakpWilTZFM98rG/AFRocu10iIQ==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.14.0.tgz", + "integrity": "sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA==", "dev": true, "license": "MIT" }, diff --git a/package.json b/package.json index 920a5055..41ca2aad 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "@rollup/plugin-node-resolve": "^13.0.0", "@types/jest": "^30.0.0", "@types/js-yaml": "^4.0.1", - "@types/lodash": "^4.14.168", + "@types/lodash.toplainobject": "^4.2.9", "@types/node-fetch": "^2.5.10", "@types/yargs": "^16.0.1", "@typescript-eslint/eslint-plugin": "^8.45.0", @@ -57,7 +57,7 @@ "immer": "^10.0.3", "jest": "^30.2.0", "lint-staged": "11.0.0", - "lodash": "^4.17.21", + "lodash.toplainobject": "^4.2.0", "node-fetch": "^2.6.1", "prettier": "^2.3.0", "rimraf": "^6.0.1", diff --git a/src/lib/builders/action-builder.ts b/src/lib/builders/action-builder.ts index ef9cd023..9caa5884 100644 --- a/src/lib/builders/action-builder.ts +++ b/src/lib/builders/action-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object diff --git a/src/lib/builders/actiondatafilter-builder.ts b/src/lib/builders/actiondatafilter-builder.ts index 55cbd87a..21cf45c3 100644 --- a/src/lib/builders/actiondatafilter-builder.ts +++ b/src/lib/builders/actiondatafilter-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object diff --git a/src/lib/builders/authdef-builder.ts b/src/lib/builders/authdef-builder.ts index 3510c7d9..4dd9a04c 100644 --- a/src/lib/builders/authdef-builder.ts +++ b/src/lib/builders/authdef-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object diff --git a/src/lib/builders/basicpropsdef-builder.ts b/src/lib/builders/basicpropsdef-builder.ts index e5b6f90f..f51859da 100644 --- a/src/lib/builders/basicpropsdef-builder.ts +++ b/src/lib/builders/basicpropsdef-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object diff --git a/src/lib/builders/bearerpropsdef-builder.ts b/src/lib/builders/bearerpropsdef-builder.ts index 62fd7e33..8fd1e8f6 100644 --- a/src/lib/builders/bearerpropsdef-builder.ts +++ b/src/lib/builders/bearerpropsdef-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object diff --git a/src/lib/builders/branch-builder.ts b/src/lib/builders/branch-builder.ts index 6d0063f5..af34452e 100644 --- a/src/lib/builders/branch-builder.ts +++ b/src/lib/builders/branch-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object diff --git a/src/lib/builders/callbackstate-builder.ts b/src/lib/builders/callbackstate-builder.ts index 4c9ade22..557d0598 100644 --- a/src/lib/builders/callbackstate-builder.ts +++ b/src/lib/builders/callbackstate-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; import { setEndValueIfNoTransition } from '../definitions/utils'; /** diff --git a/src/lib/builders/continueasdef-builder.ts b/src/lib/builders/continueasdef-builder.ts index 905da020..52e203d0 100644 --- a/src/lib/builders/continueasdef-builder.ts +++ b/src/lib/builders/continueasdef-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object diff --git a/src/lib/builders/correlation-def-builder.ts b/src/lib/builders/correlation-def-builder.ts index f826d1e3..daa2150a 100644 --- a/src/lib/builders/correlation-def-builder.ts +++ b/src/lib/builders/correlation-def-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object diff --git a/src/lib/builders/crondef-builder.ts b/src/lib/builders/crondef-builder.ts index c929c627..38f831d6 100644 --- a/src/lib/builders/crondef-builder.ts +++ b/src/lib/builders/crondef-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object diff --git a/src/lib/builders/databasedswitchstate-builder.ts b/src/lib/builders/databasedswitchstate-builder.ts index b869ecab..e872c79f 100644 --- a/src/lib/builders/databasedswitchstate-builder.ts +++ b/src/lib/builders/databasedswitchstate-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object diff --git a/src/lib/builders/defaultconditiondef-builder.ts b/src/lib/builders/defaultconditiondef-builder.ts index 83b239da..b995d0a5 100644 --- a/src/lib/builders/defaultconditiondef-builder.ts +++ b/src/lib/builders/defaultconditiondef-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object diff --git a/src/lib/builders/end-builder.ts b/src/lib/builders/end-builder.ts index 0815282e..77145be5 100644 --- a/src/lib/builders/end-builder.ts +++ b/src/lib/builders/end-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object diff --git a/src/lib/builders/enddatacondition-builder.ts b/src/lib/builders/enddatacondition-builder.ts index 0932b0d2..e50e338e 100644 --- a/src/lib/builders/enddatacondition-builder.ts +++ b/src/lib/builders/enddatacondition-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object diff --git a/src/lib/builders/enddeventcondition-builder.ts b/src/lib/builders/enddeventcondition-builder.ts index e7bfc7d3..1c8fa4b5 100644 --- a/src/lib/builders/enddeventcondition-builder.ts +++ b/src/lib/builders/enddeventcondition-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object diff --git a/src/lib/builders/error-builder.ts b/src/lib/builders/error-builder.ts index 89d0fa5c..178c0dfc 100644 --- a/src/lib/builders/error-builder.ts +++ b/src/lib/builders/error-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; import { setEndValueIfNoTransition } from '../definitions/utils'; /** diff --git a/src/lib/builders/errordef-builder.ts b/src/lib/builders/errordef-builder.ts index 05d6cb31..c472aa45 100644 --- a/src/lib/builders/errordef-builder.ts +++ b/src/lib/builders/errordef-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object diff --git a/src/lib/builders/eventbasedswitchstate-builder.ts b/src/lib/builders/eventbasedswitchstate-builder.ts index e9240b4a..92f5eed1 100644 --- a/src/lib/builders/eventbasedswitchstate-builder.ts +++ b/src/lib/builders/eventbasedswitchstate-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object diff --git a/src/lib/builders/eventdatafilter-builder.ts b/src/lib/builders/eventdatafilter-builder.ts index 484e4824..3042d9ce 100644 --- a/src/lib/builders/eventdatafilter-builder.ts +++ b/src/lib/builders/eventdatafilter-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object diff --git a/src/lib/builders/eventdef-builder.ts b/src/lib/builders/eventdef-builder.ts index 8fd810bb..ad7c8e03 100644 --- a/src/lib/builders/eventdef-builder.ts +++ b/src/lib/builders/eventdef-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object diff --git a/src/lib/builders/eventref-builder.ts b/src/lib/builders/eventref-builder.ts index a049c3fe..a18a5c74 100644 --- a/src/lib/builders/eventref-builder.ts +++ b/src/lib/builders/eventref-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object diff --git a/src/lib/builders/eventstate-builder.ts b/src/lib/builders/eventstate-builder.ts index b6da8940..210846ea 100644 --- a/src/lib/builders/eventstate-builder.ts +++ b/src/lib/builders/eventstate-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; import { setEndValueIfNoTransition } from '../definitions/utils'; /** diff --git a/src/lib/builders/foreachstate-builder.ts b/src/lib/builders/foreachstate-builder.ts index eb70ee8a..efedb225 100644 --- a/src/lib/builders/foreachstate-builder.ts +++ b/src/lib/builders/foreachstate-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; import { setEndValueIfNoTransition } from '../definitions/utils'; /** diff --git a/src/lib/builders/function-builder.ts b/src/lib/builders/function-builder.ts index 1f759f1d..5eb0c321 100644 --- a/src/lib/builders/function-builder.ts +++ b/src/lib/builders/function-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object diff --git a/src/lib/builders/functionref-builder.ts b/src/lib/builders/functionref-builder.ts index 2cc0b899..4b19f3bd 100644 --- a/src/lib/builders/functionref-builder.ts +++ b/src/lib/builders/functionref-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object diff --git a/src/lib/builders/injectstate-builder.ts b/src/lib/builders/injectstate-builder.ts index 92f68f54..47c881e3 100644 --- a/src/lib/builders/injectstate-builder.ts +++ b/src/lib/builders/injectstate-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; import { setEndValueIfNoTransition } from '../definitions/utils'; /** diff --git a/src/lib/builders/metadata-builder.ts b/src/lib/builders/metadata-builder.ts index d15463a5..b2443c29 100644 --- a/src/lib/builders/metadata-builder.ts +++ b/src/lib/builders/metadata-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object diff --git a/src/lib/builders/oauth2propsdef-builder.ts b/src/lib/builders/oauth2propsdef-builder.ts index 98cd0057..4c275e84 100644 --- a/src/lib/builders/oauth2propsdef-builder.ts +++ b/src/lib/builders/oauth2propsdef-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object diff --git a/src/lib/builders/onevents-builder.ts b/src/lib/builders/onevents-builder.ts index a6a8e3a5..e0f6787c 100644 --- a/src/lib/builders/onevents-builder.ts +++ b/src/lib/builders/onevents-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object diff --git a/src/lib/builders/operationstate-builder.ts b/src/lib/builders/operationstate-builder.ts index f89b00b3..b9bf2d77 100644 --- a/src/lib/builders/operationstate-builder.ts +++ b/src/lib/builders/operationstate-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; import { setEndValueIfNoTransition } from '../definitions/utils'; /** diff --git a/src/lib/builders/parallelstate-builder.ts b/src/lib/builders/parallelstate-builder.ts index b41fca51..e1d54c64 100644 --- a/src/lib/builders/parallelstate-builder.ts +++ b/src/lib/builders/parallelstate-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; import { setEndValueIfNoTransition } from '../definitions/utils'; /** diff --git a/src/lib/builders/produceeventdef-builder.ts b/src/lib/builders/produceeventdef-builder.ts index e36cd80c..787e176e 100644 --- a/src/lib/builders/produceeventdef-builder.ts +++ b/src/lib/builders/produceeventdef-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object diff --git a/src/lib/builders/retrydef-builder.ts b/src/lib/builders/retrydef-builder.ts index 3d078057..64e650ce 100644 --- a/src/lib/builders/retrydef-builder.ts +++ b/src/lib/builders/retrydef-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object diff --git a/src/lib/builders/schedule-builder.ts b/src/lib/builders/schedule-builder.ts index 84c0c040..b2b06b29 100644 --- a/src/lib/builders/schedule-builder.ts +++ b/src/lib/builders/schedule-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object diff --git a/src/lib/builders/sleep-builder.ts b/src/lib/builders/sleep-builder.ts index 9275e77d..ba487bf0 100644 --- a/src/lib/builders/sleep-builder.ts +++ b/src/lib/builders/sleep-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object diff --git a/src/lib/builders/sleepstate-builder.ts b/src/lib/builders/sleepstate-builder.ts index ac503147..4fc99321 100644 --- a/src/lib/builders/sleepstate-builder.ts +++ b/src/lib/builders/sleepstate-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object diff --git a/src/lib/builders/startdef-builder.ts b/src/lib/builders/startdef-builder.ts index 0398416c..b5e5cab4 100644 --- a/src/lib/builders/startdef-builder.ts +++ b/src/lib/builders/startdef-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object diff --git a/src/lib/builders/state-exec-timeout-builder.ts b/src/lib/builders/state-exec-timeout-builder.ts index 20684370..da27353b 100644 --- a/src/lib/builders/state-exec-timeout-builder.ts +++ b/src/lib/builders/state-exec-timeout-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object diff --git a/src/lib/builders/statedatafilter-builder.ts b/src/lib/builders/statedatafilter-builder.ts index b90f299b..17f07f2d 100644 --- a/src/lib/builders/statedatafilter-builder.ts +++ b/src/lib/builders/statedatafilter-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object diff --git a/src/lib/builders/subflowref-builder.ts b/src/lib/builders/subflowref-builder.ts index f45d33eb..d8f4b9ad 100644 --- a/src/lib/builders/subflowref-builder.ts +++ b/src/lib/builders/subflowref-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object diff --git a/src/lib/builders/timeouts-builder.ts b/src/lib/builders/timeouts-builder.ts index 39944981..f18a6b9a 100644 --- a/src/lib/builders/timeouts-builder.ts +++ b/src/lib/builders/timeouts-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object diff --git a/src/lib/builders/transition-builder.ts b/src/lib/builders/transition-builder.ts index fb366147..751de3c3 100644 --- a/src/lib/builders/transition-builder.ts +++ b/src/lib/builders/transition-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object diff --git a/src/lib/builders/transitiondatacondition-builder.ts b/src/lib/builders/transitiondatacondition-builder.ts index a0888780..34975705 100644 --- a/src/lib/builders/transitiondatacondition-builder.ts +++ b/src/lib/builders/transitiondatacondition-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object diff --git a/src/lib/builders/transitioneventcondition-builder.ts b/src/lib/builders/transitioneventcondition-builder.ts index 9fc2bfd1..52aacee1 100644 --- a/src/lib/builders/transitioneventcondition-builder.ts +++ b/src/lib/builders/transitioneventcondition-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object diff --git a/src/lib/builders/workflow-builder.ts b/src/lib/builders/workflow-builder.ts index 593c00cf..2f1504e3 100644 --- a/src/lib/builders/workflow-builder.ts +++ b/src/lib/builders/workflow-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object diff --git a/src/lib/builders/workflow-exec-timeout-builder.ts b/src/lib/builders/workflow-exec-timeout-builder.ts index d8727500..64b4c202 100644 --- a/src/lib/builders/workflow-exec-timeout-builder.ts +++ b/src/lib/builders/workflow-exec-timeout-builder.ts @@ -18,7 +18,7 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object diff --git a/src/lib/definitions/action.ts b/src/lib/definitions/action.ts index 0b9d334b..3efaaafe 100644 --- a/src/lib/definitions/action.ts +++ b/src/lib/definitions/action.ts @@ -29,7 +29,7 @@ import { } from './utils'; import { ISubflowref, Subflowref } from './subflowref'; import { ISleep, Sleep } from './sleep'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; export interface IAction { sourceModel?: IAction; diff --git a/src/lib/definitions/authdef.ts b/src/lib/definitions/authdef.ts index 1bc49d5f..8a4fdc93 100644 --- a/src/lib/definitions/authdef.ts +++ b/src/lib/definitions/authdef.ts @@ -16,7 +16,7 @@ import { cleanSourceModelProperty, normalizeScheme, overwriteProperties } from './utils'; import { Properties } from './types'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; export interface IAuthdef { sourceModel?: IAuthdef; diff --git a/src/lib/definitions/branch.ts b/src/lib/definitions/branch.ts index 2695419c..30251b21 100644 --- a/src/lib/definitions/branch.ts +++ b/src/lib/definitions/branch.ts @@ -17,7 +17,7 @@ import { IAction, Action } from './action'; import { cleanSourceModelProperty, normalizeActions, overwriteActions, overwritePropertyAsPlainType } from './utils'; import { ActionExecTimeout, BranchExecTimeout } from './types'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; export interface IBranch { sourceModel?: IBranch; diff --git a/src/lib/definitions/callbackstate.ts b/src/lib/definitions/callbackstate.ts index 6d70c00c..d3add8bf 100644 --- a/src/lib/definitions/callbackstate.ts +++ b/src/lib/definitions/callbackstate.ts @@ -40,7 +40,7 @@ import { } from './utils'; import { ActionExecTimeout, EventTimeout } from './types'; import { IStateExecTimeout, StateExecTimeout } from './stateExecTimeout'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; export interface ICallbackstate { sourceModel?: ICallbackstate; diff --git a/src/lib/definitions/continueasdef.ts b/src/lib/definitions/continueasdef.ts index 067ff840..8114fea1 100644 --- a/src/lib/definitions/continueasdef.ts +++ b/src/lib/definitions/continueasdef.ts @@ -22,7 +22,7 @@ import { overwritePropertyAsPlainType, overwriteWorkflowExecTimeout, } from './utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; export interface IContinueasdef { sourceModel?: IContinueasdef; diff --git a/src/lib/definitions/databasedswitchstate.ts b/src/lib/definitions/databasedswitchstate.ts index 659b8ca2..56851a86 100644 --- a/src/lib/definitions/databasedswitchstate.ts +++ b/src/lib/definitions/databasedswitchstate.ts @@ -33,7 +33,7 @@ import { } from './utils'; import { Datacondition } from './types'; import { IStateExecTimeout, StateExecTimeout } from './stateExecTimeout'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; export interface IDatabasedswitchstate { sourceModel?: IDatabasedswitchstate; diff --git a/src/lib/definitions/defaultconditiondef.ts b/src/lib/definitions/defaultconditiondef.ts index cc57ca6a..9a380cb9 100644 --- a/src/lib/definitions/defaultconditiondef.ts +++ b/src/lib/definitions/defaultconditiondef.ts @@ -14,7 +14,6 @@ * limitations under the License. */ -import { toPlainObject } from 'lodash'; import { IEnd, End } from './end'; import { ITransition, Transition } from './transition'; import { @@ -25,6 +24,7 @@ import { overwriteTransition, setEndValueIfNoTransition, } from './utils'; +import toPlainObject from 'lodash.toplainobject'; export interface IDefaultconditiondef { sourceModel?: IDefaultconditiondef; diff --git a/src/lib/definitions/end.ts b/src/lib/definitions/end.ts index bec0c97f..f7238216 100644 --- a/src/lib/definitions/end.ts +++ b/src/lib/definitions/end.ts @@ -23,7 +23,7 @@ import { overwriteProduceEvents, } from './utils'; import { IContinueasdef, Continueasdef } from './continueasdef'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; export interface IEnd { sourceModel?: IEnd; @@ -76,7 +76,7 @@ export class End { normalizeContinueAs(clone); cleanSourceModelProperty(clone); - + return toPlainObject(clone); } } diff --git a/src/lib/definitions/enddatacondition.ts b/src/lib/definitions/enddatacondition.ts index 89f9c06a..2528a9d1 100644 --- a/src/lib/definitions/enddatacondition.ts +++ b/src/lib/definitions/enddatacondition.ts @@ -13,10 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { toPlainObject } from 'lodash'; + import { IEnd, End } from './end'; import { IMetadata, Metadata } from './metadata'; import { cleanSourceModelProperty, normalizeEnd, overwriteEnd, overwriteMetadata } from './utils'; +import toPlainObject from 'lodash.toplainobject'; export interface IEnddatacondition { sourceModel?: IEnddatacondition; diff --git a/src/lib/definitions/enddeventcondition.ts b/src/lib/definitions/enddeventcondition.ts index c51a3666..1f1fc7ca 100644 --- a/src/lib/definitions/enddeventcondition.ts +++ b/src/lib/definitions/enddeventcondition.ts @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { toPlainObject } from 'lodash'; + import { IEnd, End } from './end'; import { IEventdatafilter, Eventdatafilter } from './eventdatafilter'; import { IMetadata, Metadata } from './metadata'; @@ -24,6 +24,7 @@ import { overwriteEventDataFilter, overwriteMetadata, } from './utils'; +import toPlainObject from 'lodash.toplainobject'; export interface IEnddeventcondition { sourceModel?: IEnddeventcondition; diff --git a/src/lib/definitions/error.ts b/src/lib/definitions/error.ts index 50732272..23e5d685 100644 --- a/src/lib/definitions/error.ts +++ b/src/lib/definitions/error.ts @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { toPlainObject } from 'lodash'; + import { IEnd, End } from './end'; import { ITransition, Transition } from './transition'; import { @@ -24,6 +24,7 @@ import { overwriteTransition, setEndValueIfNoTransition, } from './utils'; +import toPlainObject from 'lodash.toplainobject'; export interface IError { sourceModel?: IError; diff --git a/src/lib/definitions/eventbasedswitchstate.ts b/src/lib/definitions/eventbasedswitchstate.ts index dc292194..7cdbefa1 100644 --- a/src/lib/definitions/eventbasedswitchstate.ts +++ b/src/lib/definitions/eventbasedswitchstate.ts @@ -33,7 +33,7 @@ import { } from './utils'; import { Eventcondition, EventTimeout } from './types'; import { IStateExecTimeout, StateExecTimeout } from './stateExecTimeout'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; export interface IEventbasedswitchstate { sourceModel?: IEventbasedswitchstate; diff --git a/src/lib/definitions/eventdef.ts b/src/lib/definitions/eventdef.ts index 56076040..b14e692a 100644 --- a/src/lib/definitions/eventdef.ts +++ b/src/lib/definitions/eventdef.ts @@ -22,7 +22,7 @@ import { overwriteMetadata, } from './utils'; import { CorrelationDefs } from './types'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; export interface IEventdef { sourceModel?: IEventdef; diff --git a/src/lib/definitions/eventref.ts b/src/lib/definitions/eventref.ts index dd4d1c34..ee6b59bc 100644 --- a/src/lib/definitions/eventref.ts +++ b/src/lib/definitions/eventref.ts @@ -14,8 +14,8 @@ * limitations under the License. */ -import { toPlainObject } from 'lodash'; import { cleanSourceModelProperty, normalizeInvoke, overwritePropertyAsPlainType } from './utils'; +import toPlainObject from 'lodash.toplainobject'; export interface IEventref { sourceModel?: IEventref; diff --git a/src/lib/definitions/eventstate.ts b/src/lib/definitions/eventstate.ts index 80388430..50ca1b60 100644 --- a/src/lib/definitions/eventstate.ts +++ b/src/lib/definitions/eventstate.ts @@ -37,7 +37,7 @@ import { } from './utils'; import { ActionExecTimeout, EventTimeout } from './types'; import { IStateExecTimeout, StateExecTimeout } from './stateExecTimeout'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; export interface IEventstate { sourceModel?: IEventstate; diff --git a/src/lib/definitions/foreachstate.ts b/src/lib/definitions/foreachstate.ts index a73036bc..1ee44c7a 100644 --- a/src/lib/definitions/foreachstate.ts +++ b/src/lib/definitions/foreachstate.ts @@ -38,7 +38,7 @@ import { } from './utils'; import { ActionExecTimeout } from './types'; import { IStateExecTimeout, StateExecTimeout } from './stateExecTimeout'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; export interface IForeachstate { sourceModel?: IForeachstate; diff --git a/src/lib/definitions/function.ts b/src/lib/definitions/function.ts index 166108b2..83c6c541 100644 --- a/src/lib/definitions/function.ts +++ b/src/lib/definitions/function.ts @@ -16,7 +16,7 @@ import { cleanSourceModelProperty, normalizeType, overwriteMetadata } from './utils'; import { IMetadata, Metadata } from './metadata'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; export interface IFunction { sourceModel?: IFunction; diff --git a/src/lib/definitions/functionref.ts b/src/lib/definitions/functionref.ts index 54c71e0d..375c2bb7 100644 --- a/src/lib/definitions/functionref.ts +++ b/src/lib/definitions/functionref.ts @@ -14,8 +14,8 @@ * limitations under the License. */ -import { toPlainObject } from 'lodash'; import { cleanSourceModelProperty, normalizeInvoke, overwritePropertyAsPlainType } from './utils'; +import toPlainObject from 'lodash.toplainobject'; export interface IFunctionref { sourceModel?: IFunctionref; diff --git a/src/lib/definitions/injectstate.ts b/src/lib/definitions/injectstate.ts index dbfae4d7..f4315b08 100644 --- a/src/lib/definitions/injectstate.ts +++ b/src/lib/definitions/injectstate.ts @@ -32,7 +32,7 @@ import { setEndValueIfNoTransition, } from './utils'; import { IStateExecTimeout, StateExecTimeout } from './stateExecTimeout'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; export interface IInjectstate { sourceModel?: IInjectstate; diff --git a/src/lib/definitions/onevents.ts b/src/lib/definitions/onevents.ts index 3f395dee..0065a316 100644 --- a/src/lib/definitions/onevents.ts +++ b/src/lib/definitions/onevents.ts @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { toPlainObject } from 'lodash'; + import { IAction, Action } from './action'; import { IEventdatafilter, Eventdatafilter } from './eventdatafilter'; import { @@ -23,6 +23,7 @@ import { overwriteActions, overwriteEventDataFilter, } from './utils'; +import toPlainObject from 'lodash.toplainobject'; export interface IOnevents { sourceModel?: IOnevents; diff --git a/src/lib/definitions/operationstate.ts b/src/lib/definitions/operationstate.ts index 381595c0..5b61551e 100644 --- a/src/lib/definitions/operationstate.ts +++ b/src/lib/definitions/operationstate.ts @@ -38,7 +38,7 @@ import { } from './utils'; import { ActionExecTimeout } from './types'; import { IStateExecTimeout, StateExecTimeout } from './stateExecTimeout'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; export interface IOperationstate { sourceModel?: IOperationstate; diff --git a/src/lib/definitions/parallelstate.ts b/src/lib/definitions/parallelstate.ts index ca58e44c..e89c7987 100644 --- a/src/lib/definitions/parallelstate.ts +++ b/src/lib/definitions/parallelstate.ts @@ -39,7 +39,7 @@ import { } from './utils'; import { BranchExecTimeout } from './types'; import { IStateExecTimeout, StateExecTimeout } from './stateExecTimeout'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; export interface IParallelstate { sourceModel?: IParallelstate; diff --git a/src/lib/definitions/sleepstate.ts b/src/lib/definitions/sleepstate.ts index dd4b3de6..ffaa6058 100644 --- a/src/lib/definitions/sleepstate.ts +++ b/src/lib/definitions/sleepstate.ts @@ -34,7 +34,7 @@ import { setEndValueIfNoTransition, } from './utils'; import { IStateExecTimeout, StateExecTimeout } from './stateExecTimeout'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; export interface ISleepstate { sourceModel?: ISleepstate; diff --git a/src/lib/definitions/subflowref.ts b/src/lib/definitions/subflowref.ts index 9960857d..070143b8 100644 --- a/src/lib/definitions/subflowref.ts +++ b/src/lib/definitions/subflowref.ts @@ -14,8 +14,8 @@ * limitations under the License. */ -import { toPlainObject } from 'lodash'; import { cleanSourceModelProperty, normalizeInvoke, normalizeOnParentComplete } from './utils'; +import toPlainObject from 'lodash.toplainobject'; export interface ISubflowref { sourceModel?: ISubflowref; diff --git a/src/lib/definitions/timeouts.ts b/src/lib/definitions/timeouts.ts index 8ad16dee..d8aceb7e 100644 --- a/src/lib/definitions/timeouts.ts +++ b/src/lib/definitions/timeouts.ts @@ -22,7 +22,7 @@ import { overwriteWorkflowExecTimeout, } from './utils'; import { IStateExecTimeout, StateExecTimeout } from './stateExecTimeout'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; export interface ITimeouts { sourceModel?: ITimeouts; diff --git a/src/lib/definitions/transition.ts b/src/lib/definitions/transition.ts index 9331e9f5..39dc7cd2 100644 --- a/src/lib/definitions/transition.ts +++ b/src/lib/definitions/transition.ts @@ -13,9 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { toPlainObject } from 'lodash'; + import { IProduceeventdef, Produceeventdef } from './produceeventdef'; import { cleanSourceModelProperty, normalizeCompensate, overwriteProduceEvents } from './utils'; +import toPlainObject from 'lodash.toplainobject'; export interface ITransition { sourceModel?: ITransition; diff --git a/src/lib/definitions/transitiondatacondition.ts b/src/lib/definitions/transitiondatacondition.ts index b2abc3b8..ca555508 100644 --- a/src/lib/definitions/transitiondatacondition.ts +++ b/src/lib/definitions/transitiondatacondition.ts @@ -13,10 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { toPlainObject } from 'lodash'; + import { IMetadata, Metadata } from './metadata'; import { ITransition, Transition } from './transition'; import { cleanSourceModelProperty, normalizeTransition, overwriteMetadata, overwriteTransition } from './utils'; +import toPlainObject from 'lodash.toplainobject'; export interface ITransitiondatacondition { sourceModel?: ITransitiondatacondition; diff --git a/src/lib/definitions/transitioneventcondition.ts b/src/lib/definitions/transitioneventcondition.ts index bdb83da4..961f3f30 100644 --- a/src/lib/definitions/transitioneventcondition.ts +++ b/src/lib/definitions/transitioneventcondition.ts @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { toPlainObject } from 'lodash'; + import { IEventdatafilter, Eventdatafilter } from './eventdatafilter'; import { IMetadata, Metadata } from './metadata'; import { ITransition, Transition } from './transition'; @@ -24,6 +24,7 @@ import { overwriteMetadata, overwriteTransition, } from './utils'; +import toPlainObject from 'lodash.toplainobject'; export interface ITransitioneventcondition { sourceModel?: ITransitioneventcondition; diff --git a/src/lib/definitions/utils.ts b/src/lib/definitions/utils.ts index a1aeed27..29cea948 100644 --- a/src/lib/definitions/utils.ts +++ b/src/lib/definitions/utils.ts @@ -15,7 +15,7 @@ */ import { Specification } from './index'; import { isObject } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; /** * Modify the provided object, set the value to 'schedule' property as an instance of Specification.Schedule class, if the provided value is an object diff --git a/src/lib/definitions/workflow.ts b/src/lib/definitions/workflow.ts index 7664a659..573b904d 100644 --- a/src/lib/definitions/workflow.ts +++ b/src/lib/definitions/workflow.ts @@ -40,7 +40,7 @@ import { overwriteTimeouts, } from './utils'; import { Auth, Errors, Events, Functions, Retries, Secrets, States } from './types'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; export interface IWorkflow { sourceModel?: IWorkflow; diff --git a/src/lib/definitions/workflowExecTimeout.ts b/src/lib/definitions/workflowExecTimeout.ts index 92a9c607..387a9f25 100644 --- a/src/lib/definitions/workflowExecTimeout.ts +++ b/src/lib/definitions/workflowExecTimeout.ts @@ -14,8 +14,8 @@ * limitations under the License. */ -import { toPlainObject } from 'lodash'; import { cleanSourceModelProperty, normalizeInterrupt } from './utils'; +import toPlainObject from 'lodash.toplainobject'; export interface IWorkflowExecTimeout { sourceModel?: IWorkflowExecTimeout; diff --git a/src/lib/schema/__merged.json b/src/lib/schema/__merged.json index d07ce128..a2c2554e 100644 --- a/src/lib/schema/__merged.json +++ b/src/lib/schema/__merged.json @@ -2046,6 +2046,61 @@ "operation" ] }, + "retrydef": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Unique retry strategy name", + "minLength": 1 + }, + "delay": { + "type": "string", + "description": "Time delay between retry attempts (ISO 8601 duration format)" + }, + "maxDelay": { + "type": "string", + "description": "Maximum time delay between retry attempts (ISO 8601 duration format)" + }, + "increment": { + "type": "string", + "description": "Static value by which the delay increases during each attempt (ISO 8601 time format)" + }, + "multiplier": { + "type": [ + "number", + "string" + ], + "minimum": 0, + "minLength": 1, + "multipleOf": 0.01, + "description": "Numeric value, if specified the delay between retries is multiplied by this value." + }, + "maxAttempts": { + "type": [ + "number", + "string" + ], + "minimum": 1, + "minLength": 0, + "description": "Maximum number of retry attempts." + }, + "jitter": { + "type": [ + "number", + "string" + ], + "minimum": 0, + "maximum": 1, + "description": "If float type, maximum amount of random time added or subtracted from the delay between each retry relative to total delay (between 0 and 1). If string type, absolute maximum amount of random time added or subtracted from the delay between each retry (ISO 8601 duration format)" + } + }, + "additionalProperties": false, + "required": [ + "name", + "maxAttempts" + ] + }, "authdef": { "type": "object", "properties": { @@ -2220,61 +2275,106 @@ "type": "string" } }, - "retrydef": { + "errordef": { "type": "object", "properties": { "name": { "type": "string", - "description": "Unique retry strategy name", + "description": "Domain-specific error name", "minLength": 1 }, - "delay": { - "type": "string", - "description": "Time delay between retry attempts (ISO 8601 duration format)" - }, - "maxDelay": { + "code": { "type": "string", - "description": "Maximum time delay between retry attempts (ISO 8601 duration format)" + "description": "Error code. Can be used in addition to the name to help runtimes resolve to technical errors/exceptions. Should not be defined if error is set to '*'", + "minLength": 1 }, - "increment": { + "description": { "type": "string", - "description": "Static value by which the delay increases during each attempt (ISO 8601 time format)" - }, - "multiplier": { - "type": [ - "number", - "string" - ], - "minimum": 0, - "minLength": 1, - "multipleOf": 0.01, - "description": "Numeric value, if specified the delay between retries is multiplied by this value." - }, - "maxAttempts": { - "type": [ - "number", - "string" - ], - "minimum": 1, - "minLength": 0, - "description": "Maximum number of retry attempts." - }, - "jitter": { - "type": [ - "number", - "string" - ], - "minimum": 0, - "maximum": 1, - "description": "If float type, maximum amount of random time added or subtracted from the delay between each retry relative to total delay (between 0 and 1). If string type, absolute maximum amount of random time added or subtracted from the delay between each retry (ISO 8601 duration format)" + "description": "Error description" } }, "additionalProperties": false, "required": [ - "name", - "maxAttempts" + "name" + ] + }, + "workflowExecTimeout": { + "oneOf": [ + { + "type": "string", + "description": "Workflow execution timeout duration (ISO 8601 duration format). If not specified should be 'unlimited'", + "minLength": 1 + }, + { + "type": "object", + "properties": { + "duration": { + "type": "string", + "description": "Workflow execution timeout duration (ISO 8601 duration format). If not specified should be 'unlimited'", + "minLength": 1 + }, + "interrupt": { + "type": "boolean", + "description": "If `false`, workflow instance is allowed to finish current execution. If `true`, current workflow execution is abrupted.", + "default": true + }, + "runBefore": { + "type": "string", + "description": "Name of a workflow state to be executed before workflow instance is terminated", + "minLength": 1 + } + }, + "additionalProperties": false, + "required": [ + "duration" + ] + } + ] + }, + "stateExecTimeout": { + "oneOf": [ + { + "type": "string", + "description": "Total state execution timeout (including retries) (ISO 8601 duration format)", + "minLength": 1 + }, + { + "type": "object", + "description": "Workflow default timeouts", + "properties": { + "single": { + "type": "string", + "description": "Single state execution timeout, not including retries (ISO 8601 duration format)", + "minLength": 1 + }, + "total": { + "type": "string", + "description": "Total state execution timeout, including retries (ISO 8601 duration format)", + "minLength": 1 + } + }, + "additionalProperties": false, + "required": [ + "total" + ] + } ] }, + "actionExecTimeout": { + "type": "string", + "description": "Single actions definition execution timeout duration (ISO 8601 duration format)", + "minLength": 1 + }, + "branchExecTimeout": { + "type": "string", + "description": "Single branch execution timeout duration (ISO 8601 duration format)", + "minLength": 1 + }, + "eventTimeout": { + "type": "string", + "description": "Timeout duration to wait for consuming defined events (ISO 8601 duration format)", + "minLength": 1 + }, "eventdef": { "type": "object", "properties": { @@ -2362,106 +2462,6 @@ "contextAttributeName" ] }, - "errordef": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Domain-specific error name", - "minLength": 1 - }, - "code": { - "type": "string", - "description": "Error code. Can be used in addition to the name to help runtimes resolve to technical errors/exceptions. Should not be defined if error is set to '*'", - "minLength": 1 - }, - "description": { - "type": "string", - "description": "Error description" - } - }, - "additionalProperties": false, - "required": [ - "name" - ] - }, - "workflowExecTimeout": { - "oneOf": [ - { - "type": "string", - "description": "Workflow execution timeout duration (ISO 8601 duration format). If not specified should be 'unlimited'", - "minLength": 1 - }, - { - "type": "object", - "properties": { - "duration": { - "type": "string", - "description": "Workflow execution timeout duration (ISO 8601 duration format). If not specified should be 'unlimited'", - "minLength": 1 - }, - "interrupt": { - "type": "boolean", - "description": "If `false`, workflow instance is allowed to finish current execution. If `true`, current workflow execution is abrupted.", - "default": true - }, - "runBefore": { - "type": "string", - "description": "Name of a workflow state to be executed before workflow instance is terminated", - "minLength": 1 - } - }, - "additionalProperties": false, - "required": [ - "duration" - ] - } - ] - }, - "stateExecTimeout": { - "oneOf": [ - { - "type": "string", - "description": "Total state execution timeout (including retries) (ISO 8601 duration format)", - "minLength": 1 - }, - { - "type": "object", - "description": "Workflow default timeouts", - "properties": { - "single": { - "type": "string", - "description": "Single state execution timeout, not including retries (ISO 8601 duration format)", - "minLength": 1 - }, - "total": { - "type": "string", - "description": "Total state execution timeout, including retries (ISO 8601 duration format)", - "minLength": 1 - } - }, - "additionalProperties": false, - "required": [ - "total" - ] - } - ] - }, - "actionExecTimeout": { - "type": "string", - "description": "Single actions definition execution timeout duration (ISO 8601 duration format)", - "minLength": 1 - }, - "branchExecTimeout": { - "type": "string", - "description": "Single branch execution timeout duration (ISO 8601 duration format)", - "minLength": 1 - }, - "eventTimeout": { - "type": "string", - "description": "Timeout duration to wait for consuming defined events (ISO 8601 duration format)", - "minLength": 1 - }, "secrets": { "oneOf": [ { diff --git a/src/lib/schema/validation/validators-paths.ts b/src/lib/schema/validation/validators-paths.ts index 50161dd3..fee61833 100644 --- a/src/lib/schema/validation/validators-paths.ts +++ b/src/lib/schema/validation/validators-paths.ts @@ -68,12 +68,12 @@ export const validatorsPaths: [string, string][] = [ ['ActionExecTimeout', 'https://serverlessworkflow.io/schemas/0.8/timeouts.json#/definitions/actionExecTimeout'], ['BranchExecTimeout', 'https://serverlessworkflow.io/schemas/0.8/timeouts.json#/definitions/branchExecTimeout'], ['EventTimeout', 'https://serverlessworkflow.io/schemas/0.8/timeouts.json#/definitions/eventTimeout'], - ['Errordef', 'https://serverlessworkflow.io/schemas/0.8/errors.json#/definitions/errordef'], ['Metadata', 'https://serverlessworkflow.io/schemas/0.8/common.json#/definitions/metadata'], + ['Function', 'https://serverlessworkflow.io/schemas/0.8/functions.json#/definitions/function'], ['Eventdef', 'https://serverlessworkflow.io/schemas/0.8/events.json#/definitions/eventdef'], ['CorrelationDef', 'https://serverlessworkflow.io/schemas/0.8/events.json#/definitions/correlationDef'], - ['Function', 'https://serverlessworkflow.io/schemas/0.8/functions.json#/definitions/function'], ['Retrydef', 'https://serverlessworkflow.io/schemas/0.8/retries.json#/definitions/retrydef'], + ['Errordef', 'https://serverlessworkflow.io/schemas/0.8/errors.json#/definitions/errordef'], ['Authdef', 'https://serverlessworkflow.io/schemas/0.8/auth.json#/definitions/authdef'], ['Basicpropsdef', 'https://serverlessworkflow.io/schemas/0.8/auth.json#/definitions/basicpropsdef'], ['Bearerpropsdef', 'https://serverlessworkflow.io/schemas/0.8/auth.json#/definitions/bearerpropsdef'], diff --git a/tests/lib/workflow-validator.spec.ts b/tests/lib/workflow-validator.spec.ts index 7908e8d2..f602b865 100644 --- a/tests/lib/workflow-validator.spec.ts +++ b/tests/lib/workflow-validator.spec.ts @@ -44,8 +44,6 @@ describe('workflow-validator, invalid state', () => { // @ts-ignore workflowWithEmptyStates.states = []; - console.log('--> handrey: ' + workflowWithEmptyStates.states.length); - const workflowValidator = new WorkflowValidator(workflowWithEmptyStates); const numErrors = 1; diff --git a/tools/generate-builders.ts b/tools/generate-builders.ts index 454093c4..5539bfbb 100644 --- a/tools/generate-builders.ts +++ b/tools/generate-builders.ts @@ -122,7 +122,7 @@ const createBuilder = async (destDir: string, dataType: string): Promise = import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import { toPlainObject } from 'lodash'; +import toPlainObject from 'lodash.toplainobject'; ${extension?.import ? extension.import : ''} /** diff --git a/tools/utils.ts b/tools/utils.ts index af6abdf0..b41039c7 100644 --- a/tools/utils.ts +++ b/tools/utils.ts @@ -17,24 +17,11 @@ import $RefParser from '@apidevtools/json-schema-ref-parser'; import { promises as fsPromises } from 'fs'; import * as path from 'path'; -import rimraf from 'rimraf'; +import { rimraf } from 'rimraf'; import { readMeDisclaimer } from './consts'; const { writeFile, mkdir } = fsPromises; -/** - * Wraps rimraf into a Promise - * @param f {string} The target to be deleted - * @returns {void} - */ -export const rimrafP = async (f: string): Promise => - new Promise((resolve, reject) => - rimraf(f, (err) => { - if (err) return reject(err); - resolve(); - }) - ); - /** * Capitalized the first letter of the provided string * @param {} value The string to capitalize @@ -172,6 +159,6 @@ export const mergeSchemas = ( /** Resets the destination directory, recursively deletes everything and adds the README */ export const reset = async (destDir: string) => - rimrafP(destDir) + rimraf(destDir) .then(() => mkdir(destDir, { recursive: true })) .then(() => writeFile(path.resolve(destDir, 'README.md'), readMeDisclaimer)); From 75f70e089b4552597a695ac92b9c5f25cd8c52b2 Mon Sep 17 00:00:00 2001 From: handreyrc Date: Tue, 14 Oct 2025 21:11:03 -0400 Subject: [PATCH 3/4] do not break the SDK for those relying on classes Signed-off-by: handreyrc --- src/lib/builders/action-builder.ts | 3 +- src/lib/builders/actiondatafilter-builder.ts | 3 +- src/lib/builders/authdef-builder.ts | 3 +- src/lib/builders/basicpropsdef-builder.ts | 3 +- src/lib/builders/bearerpropsdef-builder.ts | 3 +- src/lib/builders/branch-builder.ts | 3 +- src/lib/builders/callbackstate-builder.ts | 3 +- src/lib/builders/continueasdef-builder.ts | 3 +- src/lib/builders/correlation-def-builder.ts | 3 +- src/lib/builders/crondef-builder.ts | 3 +- .../builders/databasedswitchstate-builder.ts | 3 +- .../builders/defaultconditiondef-builder.ts | 3 +- src/lib/builders/end-builder.ts | 3 +- src/lib/builders/enddatacondition-builder.ts | 3 +- .../builders/enddeventcondition-builder.ts | 3 +- src/lib/builders/error-builder.ts | 3 +- src/lib/builders/errordef-builder.ts | 3 +- .../builders/eventbasedswitchstate-builder.ts | 3 +- src/lib/builders/eventdatafilter-builder.ts | 3 +- src/lib/builders/eventdef-builder.ts | 3 +- src/lib/builders/eventref-builder.ts | 3 +- src/lib/builders/eventstate-builder.ts | 3 +- src/lib/builders/foreachstate-builder.ts | 3 +- src/lib/builders/function-builder.ts | 3 +- src/lib/builders/functionref-builder.ts | 3 +- src/lib/builders/injectstate-builder.ts | 3 +- src/lib/builders/metadata-builder.ts | 3 +- src/lib/builders/oauth2propsdef-builder.ts | 3 +- src/lib/builders/onevents-builder.ts | 3 +- src/lib/builders/operationstate-builder.ts | 3 +- src/lib/builders/parallelstate-builder.ts | 3 +- src/lib/builders/produceeventdef-builder.ts | 3 +- src/lib/builders/retrydef-builder.ts | 3 +- src/lib/builders/schedule-builder.ts | 3 +- src/lib/builders/sleep-builder.ts | 3 +- src/lib/builders/sleepstate-builder.ts | 3 +- src/lib/builders/startdef-builder.ts | 3 +- .../builders/state-exec-timeout-builder.ts | 3 +- src/lib/builders/statedatafilter-builder.ts | 3 +- src/lib/builders/subflowref-builder.ts | 3 +- src/lib/builders/timeouts-builder.ts | 3 +- src/lib/builders/transition-builder.ts | 3 +- .../transitiondatacondition-builder.ts | 3 +- .../transitioneventcondition-builder.ts | 3 +- src/lib/builders/workflow-builder.ts | 3 +- .../builders/workflow-exec-timeout-builder.ts | 3 +- src/lib/definitions/action.ts | 16 +- src/lib/definitions/authdef.ts | 17 +- src/lib/definitions/branch.ts | 23 +- src/lib/definitions/callbackstate.ts | 16 +- src/lib/definitions/continueasdef.ts | 16 +- src/lib/definitions/databasedswitchstate.ts | 16 +- src/lib/definitions/defaultconditiondef.ts | 16 +- src/lib/definitions/end.ts | 16 +- src/lib/definitions/enddatacondition.ts | 17 +- src/lib/definitions/enddeventcondition.ts | 16 +- src/lib/definitions/error.ts | 16 +- src/lib/definitions/eventbasedswitchstate.ts | 16 +- src/lib/definitions/eventdef.ts | 16 +- src/lib/definitions/eventref.ts | 17 +- src/lib/definitions/eventstate.ts | 16 +- src/lib/definitions/foreachstate.ts | 16 +- src/lib/definitions/function.ts | 17 +- src/lib/definitions/functionref.ts | 17 +- src/lib/definitions/injectstate.ts | 16 +- src/lib/definitions/onevents.ts | 16 +- src/lib/definitions/operationstate.ts | 16 +- src/lib/definitions/parallelstate.ts | 16 +- src/lib/definitions/sleepstate.ts | 16 +- src/lib/definitions/subflowref.ts | 17 +- src/lib/definitions/timeouts.ts | 16 +- src/lib/definitions/transition.ts | 17 +- .../definitions/transitiondatacondition.ts | 23 +- .../definitions/transitioneventcondition.ts | 16 +- src/lib/definitions/utils.ts | 14 + src/lib/definitions/workflow.ts | 27 +- src/lib/definitions/workflowExecTimeout.ts | 17 +- src/lib/schema/__merged.json | 250 +++++++++--------- src/lib/schema/validation/validators-paths.ts | 6 +- tests/examples/applicantrequest.spec.ts | 8 +- tests/examples/booklending.spec.ts | 5 +- tests/examples/carauctionbids.spec.ts | 8 +- tests/examples/checkcarvitals.spec.ts | 8 +- tests/examples/jobmonitoring.spec.ts | 8 +- tests/examples/parallel.spec.ts | 5 +- tests/examples/provisionorder.spec.ts | 8 +- tests/examples/sendcloudevent.spec.ts | 8 +- tests/examples/solvemathproblems.spec.ts | 8 +- tools/generate-builders.ts | 3 +- 89 files changed, 708 insertions(+), 282 deletions(-) diff --git a/src/lib/builders/action-builder.ts b/src/lib/builders/action-builder.ts index 9caa5884..49f12c16 100644 --- a/src/lib/builders/action-builder.ts +++ b/src/lib/builders/action-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object @@ -35,7 +34,7 @@ function actionBuildingFn(data: Specification.IAction): () => Specification.IAct validate('Action', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/actiondatafilter-builder.ts b/src/lib/builders/actiondatafilter-builder.ts index 21cf45c3..515e49f7 100644 --- a/src/lib/builders/actiondatafilter-builder.ts +++ b/src/lib/builders/actiondatafilter-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object @@ -35,7 +34,7 @@ function actiondatafilterBuildingFn(data: Specification.IActiondatafilter): () = validate('Actiondatafilter', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/authdef-builder.ts b/src/lib/builders/authdef-builder.ts index 4dd9a04c..0f9ba7d4 100644 --- a/src/lib/builders/authdef-builder.ts +++ b/src/lib/builders/authdef-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object @@ -35,7 +34,7 @@ function authdefBuildingFn(data: Specification.IAuthdef): () => Specification.IA validate('Authdef', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/basicpropsdef-builder.ts b/src/lib/builders/basicpropsdef-builder.ts index f51859da..97223075 100644 --- a/src/lib/builders/basicpropsdef-builder.ts +++ b/src/lib/builders/basicpropsdef-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object @@ -35,7 +34,7 @@ function basicpropsdefBuildingFn(data: Specification.IBasicpropsdef): () => Spec validate('Basicpropsdef', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/bearerpropsdef-builder.ts b/src/lib/builders/bearerpropsdef-builder.ts index 8fd1e8f6..fbe4a00b 100644 --- a/src/lib/builders/bearerpropsdef-builder.ts +++ b/src/lib/builders/bearerpropsdef-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object @@ -35,7 +34,7 @@ function bearerpropsdefBuildingFn(data: Specification.IBearerpropsdef): () => Sp validate('Bearerpropsdef', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/branch-builder.ts b/src/lib/builders/branch-builder.ts index af34452e..743c01ba 100644 --- a/src/lib/builders/branch-builder.ts +++ b/src/lib/builders/branch-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object @@ -35,7 +34,7 @@ function branchBuildingFn(data: Specification.IBranch): () => Specification.IBra validate('Branch', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/callbackstate-builder.ts b/src/lib/builders/callbackstate-builder.ts index 557d0598..40ad7594 100644 --- a/src/lib/builders/callbackstate-builder.ts +++ b/src/lib/builders/callbackstate-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; import { setEndValueIfNoTransition } from '../definitions/utils'; /** @@ -38,7 +37,7 @@ function callbackstateBuildingFn(data: Specification.ICallbackstate): () => Spec validate('Callbackstate', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/continueasdef-builder.ts b/src/lib/builders/continueasdef-builder.ts index 52e203d0..8d28e605 100644 --- a/src/lib/builders/continueasdef-builder.ts +++ b/src/lib/builders/continueasdef-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object @@ -35,7 +34,7 @@ function continueasdefBuildingFn(data: Specification.IContinueasdef): () => Spec validate('Continueasdef', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/correlation-def-builder.ts b/src/lib/builders/correlation-def-builder.ts index daa2150a..eaada7ed 100644 --- a/src/lib/builders/correlation-def-builder.ts +++ b/src/lib/builders/correlation-def-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object @@ -35,7 +34,7 @@ function correlationDefBuildingFn(data: Specification.ICorrelationDef): () => Sp validate('CorrelationDef', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/crondef-builder.ts b/src/lib/builders/crondef-builder.ts index 38f831d6..d77520e5 100644 --- a/src/lib/builders/crondef-builder.ts +++ b/src/lib/builders/crondef-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object @@ -35,7 +34,7 @@ function crondefBuildingFn(data: Specification.ICrondef): () => Specification.IC validate('Crondef', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/databasedswitchstate-builder.ts b/src/lib/builders/databasedswitchstate-builder.ts index e872c79f..60d4d9ef 100644 --- a/src/lib/builders/databasedswitchstate-builder.ts +++ b/src/lib/builders/databasedswitchstate-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object @@ -37,7 +36,7 @@ function databasedswitchstateBuildingFn( validate('Databasedswitchstate', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/defaultconditiondef-builder.ts b/src/lib/builders/defaultconditiondef-builder.ts index b995d0a5..29643ea8 100644 --- a/src/lib/builders/defaultconditiondef-builder.ts +++ b/src/lib/builders/defaultconditiondef-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object @@ -37,7 +36,7 @@ function defaultconditiondefBuildingFn( validate('Defaultconditiondef', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/end-builder.ts b/src/lib/builders/end-builder.ts index 77145be5..527f7119 100644 --- a/src/lib/builders/end-builder.ts +++ b/src/lib/builders/end-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object @@ -35,7 +34,7 @@ function endBuildingFn(data: Specification.IEnd): () => Specification.IEnd { validate('End', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/enddatacondition-builder.ts b/src/lib/builders/enddatacondition-builder.ts index e50e338e..e142c95d 100644 --- a/src/lib/builders/enddatacondition-builder.ts +++ b/src/lib/builders/enddatacondition-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object @@ -35,7 +34,7 @@ function enddataconditionBuildingFn(data: Specification.IEnddatacondition): () = validate('Enddatacondition', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/enddeventcondition-builder.ts b/src/lib/builders/enddeventcondition-builder.ts index 1c8fa4b5..bd38e7bb 100644 --- a/src/lib/builders/enddeventcondition-builder.ts +++ b/src/lib/builders/enddeventcondition-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object @@ -37,7 +36,7 @@ function enddeventconditionBuildingFn( validate('Enddeventcondition', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/error-builder.ts b/src/lib/builders/error-builder.ts index 178c0dfc..cb697090 100644 --- a/src/lib/builders/error-builder.ts +++ b/src/lib/builders/error-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; import { setEndValueIfNoTransition } from '../definitions/utils'; /** @@ -38,7 +37,7 @@ function errorBuildingFn(data: Specification.IError): () => Specification.IError validate('Error', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/errordef-builder.ts b/src/lib/builders/errordef-builder.ts index c472aa45..379fdfe4 100644 --- a/src/lib/builders/errordef-builder.ts +++ b/src/lib/builders/errordef-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object @@ -35,7 +34,7 @@ function errordefBuildingFn(data: Specification.IErrordef): () => Specification. validate('Errordef', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/eventbasedswitchstate-builder.ts b/src/lib/builders/eventbasedswitchstate-builder.ts index 92f5eed1..565ede21 100644 --- a/src/lib/builders/eventbasedswitchstate-builder.ts +++ b/src/lib/builders/eventbasedswitchstate-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object @@ -37,7 +36,7 @@ function eventbasedswitchstateBuildingFn( validate('Eventbasedswitchstate', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/eventdatafilter-builder.ts b/src/lib/builders/eventdatafilter-builder.ts index 3042d9ce..2ab3279f 100644 --- a/src/lib/builders/eventdatafilter-builder.ts +++ b/src/lib/builders/eventdatafilter-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object @@ -35,7 +34,7 @@ function eventdatafilterBuildingFn(data: Specification.IEventdatafilter): () => validate('Eventdatafilter', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/eventdef-builder.ts b/src/lib/builders/eventdef-builder.ts index ad7c8e03..8cf3b98d 100644 --- a/src/lib/builders/eventdef-builder.ts +++ b/src/lib/builders/eventdef-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object @@ -35,7 +34,7 @@ function eventdefBuildingFn(data: Specification.IEventdef): () => Specification. validate('Eventdef', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/eventref-builder.ts b/src/lib/builders/eventref-builder.ts index a18a5c74..6ed61fa5 100644 --- a/src/lib/builders/eventref-builder.ts +++ b/src/lib/builders/eventref-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object @@ -35,7 +34,7 @@ function eventrefBuildingFn(data: Specification.IEventref): () => Specification. validate('Eventref', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/eventstate-builder.ts b/src/lib/builders/eventstate-builder.ts index 210846ea..30820872 100644 --- a/src/lib/builders/eventstate-builder.ts +++ b/src/lib/builders/eventstate-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; import { setEndValueIfNoTransition } from '../definitions/utils'; /** @@ -38,7 +37,7 @@ function eventstateBuildingFn(data: Specification.IEventstate): () => Specificat validate('Eventstate', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/foreachstate-builder.ts b/src/lib/builders/foreachstate-builder.ts index efedb225..4f789a13 100644 --- a/src/lib/builders/foreachstate-builder.ts +++ b/src/lib/builders/foreachstate-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; import { setEndValueIfNoTransition } from '../definitions/utils'; /** @@ -38,7 +37,7 @@ function foreachstateBuildingFn(data: Specification.IForeachstate): () => Specif validate('Foreachstate', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/function-builder.ts b/src/lib/builders/function-builder.ts index 5eb0c321..d15697dd 100644 --- a/src/lib/builders/function-builder.ts +++ b/src/lib/builders/function-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object @@ -35,7 +34,7 @@ function functionBuildingFn(data: Specification.IFunction): () => Specification. validate('Function', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/functionref-builder.ts b/src/lib/builders/functionref-builder.ts index 4b19f3bd..fddb2604 100644 --- a/src/lib/builders/functionref-builder.ts +++ b/src/lib/builders/functionref-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object @@ -35,7 +34,7 @@ function functionrefBuildingFn(data: Specification.IFunctionref): () => Specific validate('Functionref', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/injectstate-builder.ts b/src/lib/builders/injectstate-builder.ts index 47c881e3..0fdc420a 100644 --- a/src/lib/builders/injectstate-builder.ts +++ b/src/lib/builders/injectstate-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; import { setEndValueIfNoTransition } from '../definitions/utils'; /** @@ -38,7 +37,7 @@ function injectstateBuildingFn(data: Specification.IInjectstate): () => Specific validate('Injectstate', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/metadata-builder.ts b/src/lib/builders/metadata-builder.ts index b2443c29..a43661eb 100644 --- a/src/lib/builders/metadata-builder.ts +++ b/src/lib/builders/metadata-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object @@ -35,7 +34,7 @@ function metadataBuildingFn(data: Specification.IMetadata): () => Specification. validate('Metadata', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/oauth2propsdef-builder.ts b/src/lib/builders/oauth2propsdef-builder.ts index 4c275e84..e1707b4b 100644 --- a/src/lib/builders/oauth2propsdef-builder.ts +++ b/src/lib/builders/oauth2propsdef-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object @@ -35,7 +34,7 @@ function oauth2propsdefBuildingFn(data: Specification.IOauth2propsdef): () => Sp validate('Oauth2propsdef', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/onevents-builder.ts b/src/lib/builders/onevents-builder.ts index e0f6787c..9c9c4da1 100644 --- a/src/lib/builders/onevents-builder.ts +++ b/src/lib/builders/onevents-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object @@ -35,7 +34,7 @@ function oneventsBuildingFn(data: Specification.IOnevents): () => Specification. validate('Onevents', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/operationstate-builder.ts b/src/lib/builders/operationstate-builder.ts index b9bf2d77..ebd2243b 100644 --- a/src/lib/builders/operationstate-builder.ts +++ b/src/lib/builders/operationstate-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; import { setEndValueIfNoTransition } from '../definitions/utils'; /** @@ -38,7 +37,7 @@ function operationstateBuildingFn(data: Specification.IOperationstate): () => Sp validate('Operationstate', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/parallelstate-builder.ts b/src/lib/builders/parallelstate-builder.ts index e1d54c64..ea1d6f77 100644 --- a/src/lib/builders/parallelstate-builder.ts +++ b/src/lib/builders/parallelstate-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; import { setEndValueIfNoTransition } from '../definitions/utils'; /** @@ -38,7 +37,7 @@ function parallelstateBuildingFn(data: Specification.IParallelstate): () => Spec validate('Parallelstate', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/produceeventdef-builder.ts b/src/lib/builders/produceeventdef-builder.ts index 787e176e..b1618c57 100644 --- a/src/lib/builders/produceeventdef-builder.ts +++ b/src/lib/builders/produceeventdef-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object @@ -35,7 +34,7 @@ function produceeventdefBuildingFn(data: Specification.IProduceeventdef): () => validate('Produceeventdef', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/retrydef-builder.ts b/src/lib/builders/retrydef-builder.ts index 64e650ce..dc57631a 100644 --- a/src/lib/builders/retrydef-builder.ts +++ b/src/lib/builders/retrydef-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object @@ -35,7 +34,7 @@ function retrydefBuildingFn(data: Specification.IRetrydef): () => Specification. validate('Retrydef', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/schedule-builder.ts b/src/lib/builders/schedule-builder.ts index b2b06b29..c961968f 100644 --- a/src/lib/builders/schedule-builder.ts +++ b/src/lib/builders/schedule-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object @@ -35,7 +34,7 @@ function scheduleBuildingFn(data: Specification.ISchedule): () => Specification. validate('Schedule', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/sleep-builder.ts b/src/lib/builders/sleep-builder.ts index ba487bf0..5bdc5f0f 100644 --- a/src/lib/builders/sleep-builder.ts +++ b/src/lib/builders/sleep-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object @@ -35,7 +34,7 @@ function sleepBuildingFn(data: Specification.ISleep): () => Specification.ISleep validate('Sleep', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/sleepstate-builder.ts b/src/lib/builders/sleepstate-builder.ts index 4fc99321..7023b94b 100644 --- a/src/lib/builders/sleepstate-builder.ts +++ b/src/lib/builders/sleepstate-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object @@ -35,7 +34,7 @@ function sleepstateBuildingFn(data: Specification.ISleepstate): () => Specificat validate('Sleepstate', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/startdef-builder.ts b/src/lib/builders/startdef-builder.ts index b5e5cab4..d0129e78 100644 --- a/src/lib/builders/startdef-builder.ts +++ b/src/lib/builders/startdef-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object @@ -35,7 +34,7 @@ function startdefBuildingFn(data: Specification.IStartdef): () => Specification. validate('Startdef', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/state-exec-timeout-builder.ts b/src/lib/builders/state-exec-timeout-builder.ts index da27353b..02b1b44e 100644 --- a/src/lib/builders/state-exec-timeout-builder.ts +++ b/src/lib/builders/state-exec-timeout-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object @@ -35,7 +34,7 @@ function stateExecTimeoutBuildingFn(data: Specification.IStateExecTimeout): () = validate('StateExecTimeout', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/statedatafilter-builder.ts b/src/lib/builders/statedatafilter-builder.ts index 17f07f2d..ac2a6de6 100644 --- a/src/lib/builders/statedatafilter-builder.ts +++ b/src/lib/builders/statedatafilter-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object @@ -35,7 +34,7 @@ function statedatafilterBuildingFn(data: Specification.IStatedatafilter): () => validate('Statedatafilter', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/subflowref-builder.ts b/src/lib/builders/subflowref-builder.ts index d8f4b9ad..1dfefdec 100644 --- a/src/lib/builders/subflowref-builder.ts +++ b/src/lib/builders/subflowref-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object @@ -35,7 +34,7 @@ function subflowrefBuildingFn(data: Specification.ISubflowref): () => Specificat validate('Subflowref', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/timeouts-builder.ts b/src/lib/builders/timeouts-builder.ts index f18a6b9a..49e3e12b 100644 --- a/src/lib/builders/timeouts-builder.ts +++ b/src/lib/builders/timeouts-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object @@ -35,7 +34,7 @@ function timeoutsBuildingFn(data: Specification.ITimeouts): () => Specification. validate('Timeouts', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/transition-builder.ts b/src/lib/builders/transition-builder.ts index 751de3c3..f44202d5 100644 --- a/src/lib/builders/transition-builder.ts +++ b/src/lib/builders/transition-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object @@ -35,7 +34,7 @@ function transitionBuildingFn(data: Specification.ITransition): () => Specificat validate('Transition', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/transitiondatacondition-builder.ts b/src/lib/builders/transitiondatacondition-builder.ts index 34975705..411e6829 100644 --- a/src/lib/builders/transitiondatacondition-builder.ts +++ b/src/lib/builders/transitiondatacondition-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object @@ -37,7 +36,7 @@ function transitiondataconditionBuildingFn( validate('Transitiondatacondition', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/transitioneventcondition-builder.ts b/src/lib/builders/transitioneventcondition-builder.ts index 52aacee1..03e4094a 100644 --- a/src/lib/builders/transitioneventcondition-builder.ts +++ b/src/lib/builders/transitioneventcondition-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object @@ -37,7 +36,7 @@ function transitioneventconditionBuildingFn( validate('Transitioneventcondition', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/workflow-builder.ts b/src/lib/builders/workflow-builder.ts index 2f1504e3..fb0b86f2 100644 --- a/src/lib/builders/workflow-builder.ts +++ b/src/lib/builders/workflow-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object @@ -35,7 +34,7 @@ function workflowBuildingFn(data: Specification.IWorkflow): () => Specification. validate('Workflow', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/builders/workflow-exec-timeout-builder.ts b/src/lib/builders/workflow-exec-timeout-builder.ts index 64b4c202..baf6560f 100644 --- a/src/lib/builders/workflow-exec-timeout-builder.ts +++ b/src/lib/builders/workflow-exec-timeout-builder.ts @@ -18,7 +18,6 @@ import { Builder, builder } from '../builder'; import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; /** * The internal function used by the builder proxy to validate and return its underlying object @@ -37,7 +36,7 @@ function workflowExecTimeoutBuildingFn( validate('WorkflowExecTimeout', model); } - return toPlainObject(model); + return model; }; } diff --git a/src/lib/definitions/action.ts b/src/lib/definitions/action.ts index 3efaaafe..2bb2b883 100644 --- a/src/lib/definitions/action.ts +++ b/src/lib/definitions/action.ts @@ -18,6 +18,7 @@ import { IEventref, Eventref } from './eventref'; import { IFunctionref, Functionref } from './functionref'; import { cleanSourceModelProperty, + isPlainObject, normalizeEventRef, normalizeFunctionRef, normalizeSubFlowRef, @@ -46,6 +47,7 @@ export interface IAction { condition?: string; normalize(): IAction; + asPlainObject(): IAction; } export class Action implements IAction { @@ -105,6 +107,18 @@ export class Action implements IAction { cleanSourceModelProperty(clone); - return toPlainObject(clone); + if (isPlainObject(this)) { + return toPlainObject(clone); + } + + return clone; + } + + /** + * Create a shallow copy as plain object + * @returns {Specification.IAction} as plain object. + */ + asPlainObject(): IAction { + return toPlainObject(this); } } diff --git a/src/lib/definitions/authdef.ts b/src/lib/definitions/authdef.ts index 8a4fdc93..c6c98fa8 100644 --- a/src/lib/definitions/authdef.ts +++ b/src/lib/definitions/authdef.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { cleanSourceModelProperty, normalizeScheme, overwriteProperties } from './utils'; +import { cleanSourceModelProperty, isPlainObject, normalizeScheme, overwriteProperties } from './utils'; import { Properties } from './types'; import toPlainObject from 'lodash.toplainobject'; @@ -25,6 +25,7 @@ export interface IAuthdef { properties: string | Properties; normalize(): IAuthdef; + asPlainObject(): IAuthdef; } export class Authdef implements IAuthdef { @@ -59,6 +60,18 @@ export class Authdef implements IAuthdef { cleanSourceModelProperty(clone); - return toPlainObject(clone); + if (isPlainObject(this)) { + return toPlainObject(clone); + } + + return clone; + } + + /** + * Create a shallow copy as plain object + * @returns {Specification.IAuthdef} as plain object. + */ + asPlainObject(): IAuthdef { + return toPlainObject(this); } } diff --git a/src/lib/definitions/branch.ts b/src/lib/definitions/branch.ts index 30251b21..200111d8 100644 --- a/src/lib/definitions/branch.ts +++ b/src/lib/definitions/branch.ts @@ -15,7 +15,13 @@ */ import { IAction, Action } from './action'; -import { cleanSourceModelProperty, normalizeActions, overwriteActions, overwritePropertyAsPlainType } from './utils'; +import { + cleanSourceModelProperty, + isPlainObject, + normalizeActions, + overwriteActions, + overwritePropertyAsPlainType, +} from './utils'; import { ActionExecTimeout, BranchExecTimeout } from './types'; import toPlainObject from 'lodash.toplainobject'; @@ -29,6 +35,7 @@ export interface IBranch { actions: IAction[]; normalize(): IBranch; + asPlainObject(): IBranch; } export class Branch implements IBranch /* Branch Definition */ { @@ -67,6 +74,18 @@ export class Branch implements IBranch /* Branch Definition */ { cleanSourceModelProperty(clone); - return toPlainObject(clone); + if (isPlainObject(this)) { + return toPlainObject(clone); + } + + return clone; + } + + /** + * Create a shallow copy as plain object + * @returns {Specification.IBranch} as plain object. + */ + asPlainObject(): IBranch { + return toPlainObject(this); } } diff --git a/src/lib/definitions/callbackstate.ts b/src/lib/definitions/callbackstate.ts index d3add8bf..0152b96f 100644 --- a/src/lib/definitions/callbackstate.ts +++ b/src/lib/definitions/callbackstate.ts @@ -23,6 +23,7 @@ import { IStatedatafilter, Statedatafilter } from './statedatafilter'; import { ITransition, Transition } from './transition'; import { cleanSourceModelProperty, + isPlainObject, normalizeAction, normalizeEnd, normalizeOnErrors, @@ -64,6 +65,7 @@ export interface ICallbackstate { metadata?: IMetadata; normalize(): ICallbackstate; + asPlainObject(): ICallbackstate; } export class Callbackstate implements ICallbackstate { @@ -163,6 +165,18 @@ export class Callbackstate implements ICallbackstate { cleanSourceModelProperty(clone); - return toPlainObject(clone); + if (isPlainObject(this)) { + return toPlainObject(clone); + } + + return clone; + } + + /** + * Create a shallow copy as plain object + * @returns {Specification.ICallbackstate} as plain object. + */ + asPlainObject(): ICallbackstate { + return toPlainObject(this); } } diff --git a/src/lib/definitions/continueasdef.ts b/src/lib/definitions/continueasdef.ts index 8114fea1..a07bc9f0 100644 --- a/src/lib/definitions/continueasdef.ts +++ b/src/lib/definitions/continueasdef.ts @@ -18,6 +18,7 @@ import { IWorkflowExecTimeout, WorkflowExecTimeout } from './workflowExecTimeout'; import { cleanSourceModelProperty, + isPlainObject, normalizeWorkflowExecTimeout, overwritePropertyAsPlainType, overwriteWorkflowExecTimeout, @@ -36,6 +37,7 @@ export interface IContinueasdef { workflowExecTimeout?: IWorkflowExecTimeout; normalize(): IContinueasdef; + asPlainObject(): IContinueasdef; } export class Continueasdef { @@ -79,6 +81,18 @@ export class Continueasdef { cleanSourceModelProperty(clone); - return toPlainObject(clone); + if (isPlainObject(this)) { + return toPlainObject(clone); + } + + return clone; + } + + /** + * Create a shallow copy as plain object + * @returns {Specification.IContinueasdef} as plain object. + */ + asPlainObject(): IContinueasdef { + return toPlainObject(this); } } diff --git a/src/lib/definitions/databasedswitchstate.ts b/src/lib/definitions/databasedswitchstate.ts index 56851a86..311607ec 100644 --- a/src/lib/definitions/databasedswitchstate.ts +++ b/src/lib/definitions/databasedswitchstate.ts @@ -20,6 +20,7 @@ import { IMetadata, Metadata } from './metadata'; import { IStatedatafilter, Statedatafilter } from './statedatafilter'; import { cleanSourceModelProperty, + isPlainObject, normalizeDataConditions, normalizeDefaultCondition, normalizeOnErrors, @@ -52,6 +53,7 @@ export interface IDatabasedswitchstate { metadata?: IMetadata; normalize(): IDatabasedswitchstate; + asPlainObject(): IDatabasedswitchstate; } export class Databasedswitchstate implements IDatabasedswitchstate { @@ -127,6 +129,18 @@ export class Databasedswitchstate implements IDatabasedswitchstate { normalizeUsedForCompensation(clone, this.sourceModel); cleanSourceModelProperty(clone); - return toPlainObject(clone); + if (isPlainObject(this)) { + return toPlainObject(clone); + } + + return clone; + } + + /** + * Create a shallow copy as plain object + * @returns {Specification.IDatabasedswitchstate} as plain object. + */ + asPlainObject(): IDatabasedswitchstate { + return toPlainObject(this); } } diff --git a/src/lib/definitions/defaultconditiondef.ts b/src/lib/definitions/defaultconditiondef.ts index 9a380cb9..36d537d6 100644 --- a/src/lib/definitions/defaultconditiondef.ts +++ b/src/lib/definitions/defaultconditiondef.ts @@ -18,6 +18,7 @@ import { IEnd, End } from './end'; import { ITransition, Transition } from './transition'; import { cleanSourceModelProperty, + isPlainObject, normalizeEnd, normalizeTransition, overwriteEnd, @@ -32,6 +33,7 @@ export interface IDefaultconditiondef { end?: boolean | IEnd; normalize(): IDefaultconditiondef; + asPlainObject(): IDefaultconditiondef; } export class Defaultconditiondef implements IDefaultconditiondef { @@ -62,6 +64,18 @@ export class Defaultconditiondef implements IDefaultconditiondef { cleanSourceModelProperty(clone); - return toPlainObject(clone); + if (isPlainObject(this)) { + return toPlainObject(clone); + } + + return clone; + } + + /** + * Create a shallow copy as plain object + * @returns {Specification.IDefaultconditiondef} as plain object. + */ + asPlainObject(): IDefaultconditiondef { + return toPlainObject(this); } } diff --git a/src/lib/definitions/end.ts b/src/lib/definitions/end.ts index f7238216..e1598eed 100644 --- a/src/lib/definitions/end.ts +++ b/src/lib/definitions/end.ts @@ -16,6 +16,7 @@ import { IProduceeventdef, Produceeventdef } from './produceeventdef'; import { cleanSourceModelProperty, + isPlainObject, normalizeCompensate, normalizeContinueAs, normalizeTerminate, @@ -33,6 +34,7 @@ export interface IEnd { continueAs?: string | IContinueasdef; normalize(): IEnd; + asPlainObject(): IEnd; } export class End { @@ -77,6 +79,18 @@ export class End { cleanSourceModelProperty(clone); - return toPlainObject(clone); + if (isPlainObject(this)) { + return toPlainObject(clone); + } + + return clone; + } + + /** + * Create a shallow copy as plain object + * @returns {Specification.IEnd} as plain object. + */ + asPlainObject(): IEnd { + return toPlainObject(this); } } diff --git a/src/lib/definitions/enddatacondition.ts b/src/lib/definitions/enddatacondition.ts index 2528a9d1..343db34a 100644 --- a/src/lib/definitions/enddatacondition.ts +++ b/src/lib/definitions/enddatacondition.ts @@ -16,7 +16,7 @@ import { IEnd, End } from './end'; import { IMetadata, Metadata } from './metadata'; -import { cleanSourceModelProperty, normalizeEnd, overwriteEnd, overwriteMetadata } from './utils'; +import { cleanSourceModelProperty, isPlainObject, normalizeEnd, overwriteEnd, overwriteMetadata } from './utils'; import toPlainObject from 'lodash.toplainobject'; export interface IEnddatacondition { @@ -27,6 +27,7 @@ export interface IEnddatacondition { metadata?: IMetadata; normalize(): IEnddatacondition; + asPlainObject(): IEnddatacondition; } export class Enddatacondition implements IEnddatacondition { @@ -65,6 +66,18 @@ export class Enddatacondition implements IEnddatacondition { cleanSourceModelProperty(clone); - return toPlainObject(clone); + if (isPlainObject(this)) { + return toPlainObject(clone); + } + + return clone; + } + + /** + * Create a shallow copy as plain object + * @returns {Specification.IEnddatacondition} as plain object. + */ + asPlainObject(): IEnddatacondition { + return toPlainObject(this); } } diff --git a/src/lib/definitions/enddeventcondition.ts b/src/lib/definitions/enddeventcondition.ts index 1f1fc7ca..b04bac76 100644 --- a/src/lib/definitions/enddeventcondition.ts +++ b/src/lib/definitions/enddeventcondition.ts @@ -19,6 +19,7 @@ import { IEventdatafilter, Eventdatafilter } from './eventdatafilter'; import { IMetadata, Metadata } from './metadata'; import { cleanSourceModelProperty, + isPlainObject, normalizeEnd, overwriteEnd, overwriteEventDataFilter, @@ -35,6 +36,7 @@ export interface IEnddeventcondition { metadata?: IMetadata; normalize(): IEnddeventcondition; + asPlainObject(): IEnddeventcondition; } export class Enddeventcondition implements IEnddeventcondition { @@ -78,6 +80,18 @@ export class Enddeventcondition implements IEnddeventcondition { cleanSourceModelProperty(clone); - return toPlainObject(clone); + if (isPlainObject(this)) { + return toPlainObject(clone); + } + + return clone; + } + + /** + * Create a shallow copy as plain object + * @returns {Specification.IEnddeventcondition} as plain object. + */ + asPlainObject(): IEnddeventcondition { + return toPlainObject(this); } } diff --git a/src/lib/definitions/error.ts b/src/lib/definitions/error.ts index 23e5d685..ef8bed40 100644 --- a/src/lib/definitions/error.ts +++ b/src/lib/definitions/error.ts @@ -18,6 +18,7 @@ import { IEnd, End } from './end'; import { ITransition, Transition } from './transition'; import { cleanSourceModelProperty, + isPlainObject, normalizeEnd, normalizeTransition, overwriteEnd, @@ -34,6 +35,7 @@ export interface IError { end?: boolean | IEnd; normalize(): IError; + asPlainObject(): IError; } export class Error implements IError { @@ -72,6 +74,18 @@ export class Error implements IError { cleanSourceModelProperty(clone); - return toPlainObject(clone); + if (isPlainObject(this)) { + return toPlainObject(clone); + } + + return clone; + } + + /** + * Create a shallow copy as plain object + * @returns {Specification.IError} as plain object. + */ + asPlainObject(): IError { + return toPlainObject(this); } } diff --git a/src/lib/definitions/eventbasedswitchstate.ts b/src/lib/definitions/eventbasedswitchstate.ts index 7cdbefa1..2e6bb544 100644 --- a/src/lib/definitions/eventbasedswitchstate.ts +++ b/src/lib/definitions/eventbasedswitchstate.ts @@ -20,6 +20,7 @@ import { IMetadata, Metadata } from './metadata'; import { IStatedatafilter, Statedatafilter } from './statedatafilter'; import { cleanSourceModelProperty, + isPlainObject, normalizeDefaultCondition, normalizeEventConditions, normalizeOnErrors, @@ -53,6 +54,7 @@ export interface IEventbasedswitchstate { metadata?: IMetadata; normalize(): IEventbasedswitchstate; + asPlainObject(): IEventbasedswitchstate; } export class Eventbasedswitchstate implements IEventbasedswitchstate { @@ -130,6 +132,18 @@ export class Eventbasedswitchstate implements IEventbasedswitchstate { cleanSourceModelProperty(clone); - return toPlainObject(clone); + if (isPlainObject(this)) { + return toPlainObject(clone); + } + + return clone; + } + + /** + * Create a shallow copy as plain object + * @returns {Specification.IEventbasedswitchstate} as plain object. + */ + asPlainObject(): IEventbasedswitchstate { + return toPlainObject(this); } } diff --git a/src/lib/definitions/eventdef.ts b/src/lib/definitions/eventdef.ts index b14e692a..a1d542b8 100644 --- a/src/lib/definitions/eventdef.ts +++ b/src/lib/definitions/eventdef.ts @@ -16,6 +16,7 @@ import { IMetadata, Metadata } from './metadata'; import { cleanSourceModelProperty, + isPlainObject, normalizeDataOnly, normalizeKind, overwriteCorrelation, @@ -35,6 +36,7 @@ export interface IEventdef { metadata?: IMetadata; normalize(): IEventdef; + asPlainObject(): IEventdef; } export class Eventdef implements IEventdef { @@ -93,6 +95,18 @@ export class Eventdef implements IEventdef { cleanSourceModelProperty(clone); - return toPlainObject(clone); + if (isPlainObject(this)) { + return toPlainObject(clone); + } + + return clone; + } + + /** + * Create a shallow copy as plain object + * @returns {Specification.IEventdef} as plain object. + */ + asPlainObject(): IEventdef { + return toPlainObject(this); } } diff --git a/src/lib/definitions/eventref.ts b/src/lib/definitions/eventref.ts index ee6b59bc..bd318735 100644 --- a/src/lib/definitions/eventref.ts +++ b/src/lib/definitions/eventref.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { cleanSourceModelProperty, normalizeInvoke, overwritePropertyAsPlainType } from './utils'; +import { cleanSourceModelProperty, isPlainObject, normalizeInvoke, overwritePropertyAsPlainType } from './utils'; import toPlainObject from 'lodash.toplainobject'; export interface IEventref { @@ -33,6 +33,7 @@ export interface IEventref { invoke?: 'sync' | 'async'; normalize(): IEventref; + asPlainObject(): IEventref; } export class Eventref implements IEventref { @@ -87,6 +88,18 @@ export class Eventref implements IEventref { cleanSourceModelProperty(clone); - return toPlainObject(clone); + if (isPlainObject(this)) { + return toPlainObject(clone); + } + + return clone; + } + + /** + * Create a shallow copy as plain object + * @returns {Specification.IEventref} as plain object. + */ + asPlainObject(): IEventref { + return toPlainObject(this); } } diff --git a/src/lib/definitions/eventstate.ts b/src/lib/definitions/eventstate.ts index 50ca1b60..d02d1013 100644 --- a/src/lib/definitions/eventstate.ts +++ b/src/lib/definitions/eventstate.ts @@ -21,6 +21,7 @@ import { IStatedatafilter, Statedatafilter } from './statedatafilter'; import { ITransition, Transition } from './transition'; import { cleanSourceModelProperty, + isPlainObject, normalizeEnd, normalizeExclusive, normalizeOnErrors, @@ -59,6 +60,7 @@ export interface IEventstate { metadata?: IMetadata; normalize(): IEventstate; + asPlainObject(): IEventstate; } export class Eventstate implements IEventstate { @@ -141,6 +143,18 @@ export class Eventstate implements IEventstate { cleanSourceModelProperty(clone); - return toPlainObject(clone); + if (isPlainObject(this)) { + return toPlainObject(clone); + } + + return clone; + } + + /** + * Create a shallow copy as plain object + * @returns {Specification.IEventstate} as plain object. + */ + asPlainObject(): IEventstate { + return toPlainObject(this); } } diff --git a/src/lib/definitions/foreachstate.ts b/src/lib/definitions/foreachstate.ts index 1ee44c7a..1d6a6038 100644 --- a/src/lib/definitions/foreachstate.ts +++ b/src/lib/definitions/foreachstate.ts @@ -21,6 +21,7 @@ import { IStatedatafilter, Statedatafilter } from './statedatafilter'; import { ITransition, Transition } from './transition'; import { cleanSourceModelProperty, + isPlainObject, normalizeActions, normalizeEnd, normalizeMode, @@ -64,6 +65,7 @@ export interface IForeachstate { metadata?: IMetadata; normalize(): IForeachstate; + asPlainObject(): IForeachstate; } export class Foreachstate implements IForeachstate { @@ -175,6 +177,18 @@ export class Foreachstate implements IForeachstate { cleanSourceModelProperty(clone); - return toPlainObject(clone); + if (isPlainObject(this)) { + return toPlainObject(clone); + } + + return clone; + } + + /** + * Create a shallow copy as plain object + * @returns {Specification.IForeachstate} as plain object. + */ + asPlainObject(): IForeachstate { + return toPlainObject(this); } } diff --git a/src/lib/definitions/function.ts b/src/lib/definitions/function.ts index 83c6c541..960710b2 100644 --- a/src/lib/definitions/function.ts +++ b/src/lib/definitions/function.ts @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { cleanSourceModelProperty, normalizeType, overwriteMetadata } from './utils'; +import { cleanSourceModelProperty, isPlainObject, normalizeType, overwriteMetadata } from './utils'; import { IMetadata, Metadata } from './metadata'; import toPlainObject from 'lodash.toplainobject'; @@ -27,6 +27,7 @@ export interface IFunction { metadata?: IMetadata; normalize(): IFunction; + asPlainObject(): IFunction; } export class Function implements IFunction { @@ -68,6 +69,18 @@ export class Function implements IFunction { cleanSourceModelProperty(clone); - return toPlainObject(clone); + if (isPlainObject(this)) { + return toPlainObject(clone); + } + + return clone; + } + + /** + * Create a shallow copy as plain object + * @returns {Specification.IFunction} as plain object. + */ + asPlainObject(): IFunction { + return toPlainObject(this); } } diff --git a/src/lib/definitions/functionref.ts b/src/lib/definitions/functionref.ts index 375c2bb7..5b43ff3c 100644 --- a/src/lib/definitions/functionref.ts +++ b/src/lib/definitions/functionref.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { cleanSourceModelProperty, normalizeInvoke, overwritePropertyAsPlainType } from './utils'; +import { cleanSourceModelProperty, isPlainObject, normalizeInvoke, overwritePropertyAsPlainType } from './utils'; import toPlainObject from 'lodash.toplainobject'; export interface IFunctionref { @@ -27,6 +27,7 @@ export interface IFunctionref { invoke?: 'sync' | 'async'; normalize(): IFunctionref; + asPlainObject(): IFunctionref; } export class Functionref implements IFunctionref { @@ -68,6 +69,18 @@ export class Functionref implements IFunctionref { cleanSourceModelProperty(clone); - return toPlainObject(clone); + if (isPlainObject(this)) { + return toPlainObject(clone); + } + + return clone; + } + + /** + * Create a shallow copy as plain object + * @returns {Specification.IFunctionref} as plain object. + */ + asPlainObject(): IFunctionref { + return toPlainObject(this); } } diff --git a/src/lib/definitions/injectstate.ts b/src/lib/definitions/injectstate.ts index f4315b08..ae2e7563 100644 --- a/src/lib/definitions/injectstate.ts +++ b/src/lib/definitions/injectstate.ts @@ -20,6 +20,7 @@ import { IStatedatafilter, Statedatafilter } from './statedatafilter'; import { ITransition, Transition } from './transition'; import { cleanSourceModelProperty, + isPlainObject, normalizeEnd, normalizeTransition, normalizeUsedForCompensation, @@ -53,6 +54,7 @@ export interface IInjectstate { metadata?: IMetadata; normalize(): IInjectstate; + asPlainObject(): IInjectstate; } export class Injectstate implements IInjectstate { @@ -136,6 +138,18 @@ export class Injectstate implements IInjectstate { cleanSourceModelProperty(clone); - return toPlainObject(clone); + if (isPlainObject(this)) { + return toPlainObject(clone); + } + + return clone; + } + + /** + * Create a shallow copy as plain object + * @returns {Specification.IInjectstate} as plain object. + */ + asPlainObject(): IInjectstate { + return toPlainObject(this); } } diff --git a/src/lib/definitions/onevents.ts b/src/lib/definitions/onevents.ts index 0065a316..bb4ed71d 100644 --- a/src/lib/definitions/onevents.ts +++ b/src/lib/definitions/onevents.ts @@ -18,6 +18,7 @@ import { IAction, Action } from './action'; import { IEventdatafilter, Eventdatafilter } from './eventdatafilter'; import { cleanSourceModelProperty, + isPlainObject, normalizeActionMode, normalizeActions, overwriteActions, @@ -33,6 +34,7 @@ export interface IOnevents { eventDataFilter?: IEventdatafilter; normalize(): IOnevents; + asPlainObject(): IOnevents; } export class Onevents implements IOnevents { @@ -76,6 +78,18 @@ export class Onevents implements IOnevents { cleanSourceModelProperty(clone); - return toPlainObject(clone); + if (isPlainObject(this)) { + return toPlainObject(clone); + } + + return clone; + } + + /** + * Create a shallow copy as plain object + * @returns {Specification.IOnevents} as plain object. + */ + asPlainObject(): IOnevents { + return toPlainObject(this); } } diff --git a/src/lib/definitions/operationstate.ts b/src/lib/definitions/operationstate.ts index 5b61551e..67ce70a3 100644 --- a/src/lib/definitions/operationstate.ts +++ b/src/lib/definitions/operationstate.ts @@ -21,6 +21,7 @@ import { IStatedatafilter, Statedatafilter } from './statedatafilter'; import { ITransition, Transition } from './transition'; import { cleanSourceModelProperty, + isPlainObject, normalizeActionMode, normalizeActions, normalizeEnd, @@ -60,6 +61,7 @@ export interface IOperationstate { metadata?: IMetadata; normalize(): IOperationstate; + asPlainObject(): IOperationstate; } export class Operationstate implements IOperationstate { @@ -157,6 +159,18 @@ export class Operationstate implements IOperationstate { cleanSourceModelProperty(clone); - return toPlainObject(clone); + if (isPlainObject(this)) { + return toPlainObject(clone); + } + + return clone; + } + + /** + * Create a shallow copy as plain object + * @returns {Specification.IOperationstate} as plain object. + */ + asPlainObject(): IOperationstate { + return toPlainObject(this); } } diff --git a/src/lib/definitions/parallelstate.ts b/src/lib/definitions/parallelstate.ts index e89c7987..718dcb2f 100644 --- a/src/lib/definitions/parallelstate.ts +++ b/src/lib/definitions/parallelstate.ts @@ -22,6 +22,7 @@ import { IStatedatafilter, Statedatafilter } from './statedatafilter'; import { ITransition, Transition } from './transition'; import { cleanSourceModelProperty, + isPlainObject, normalizeBranches, normalizeCompletionType, normalizeEnd, @@ -62,6 +63,7 @@ export interface IParallelstate { metadata?: IMetadata; normalize(): IParallelstate; + asPlainObject(): IParallelstate; } export class Parallelstate implements IParallelstate { @@ -161,6 +163,18 @@ export class Parallelstate implements IParallelstate { cleanSourceModelProperty(clone); - return toPlainObject(clone); + if (isPlainObject(this)) { + return toPlainObject(clone); + } + + return clone; + } + + /** + * Create a shallow copy as plain object + * @returns {Specification.IParallelstate} as plain object. + */ + asPlainObject(): IParallelstate { + return toPlainObject(this); } } diff --git a/src/lib/definitions/sleepstate.ts b/src/lib/definitions/sleepstate.ts index ffaa6058..eaa266ad 100644 --- a/src/lib/definitions/sleepstate.ts +++ b/src/lib/definitions/sleepstate.ts @@ -21,6 +21,7 @@ import { IStatedatafilter, Statedatafilter } from './statedatafilter'; import { ITransition, Transition } from './transition'; import { cleanSourceModelProperty, + isPlainObject, normalizeEnd, normalizeOnErrors, normalizeTransition, @@ -54,6 +55,7 @@ export interface ISleepstate { metadata?: IMetadata; normalize(): ISleepstate; + asPlainObject(): ISleepstate; } export class Sleepstate implements ISleepstate { @@ -140,6 +142,18 @@ export class Sleepstate implements ISleepstate { cleanSourceModelProperty(clone); - return toPlainObject(clone); + if (isPlainObject(this)) { + return toPlainObject(clone); + } + + return clone; + } + + /** + * Create a shallow copy as plain object + * @returns {Specification.ISleepstate} as plain object. + */ + asPlainObject(): ISleepstate { + return toPlainObject(this); } } diff --git a/src/lib/definitions/subflowref.ts b/src/lib/definitions/subflowref.ts index 070143b8..be075f61 100644 --- a/src/lib/definitions/subflowref.ts +++ b/src/lib/definitions/subflowref.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { cleanSourceModelProperty, normalizeInvoke, normalizeOnParentComplete } from './utils'; +import { cleanSourceModelProperty, isPlainObject, normalizeInvoke, normalizeOnParentComplete } from './utils'; import toPlainObject from 'lodash.toplainobject'; export interface ISubflowref { @@ -25,6 +25,7 @@ export interface ISubflowref { invoke?: 'sync' | 'async'; normalize(): ISubflowref; + asPlainObject(): ISubflowref; } export class Subflowref implements ISubflowref { @@ -64,6 +65,18 @@ export class Subflowref implements ISubflowref { cleanSourceModelProperty(clone); - return toPlainObject(clone); + if (isPlainObject(this)) { + return toPlainObject(clone); + } + + return clone; + } + + /** + * Create a shallow copy as plain object + * @returns {Specification.ISubflowref} as plain object. + */ + asPlainObject(): ISubflowref { + return toPlainObject(this); } } diff --git a/src/lib/definitions/timeouts.ts b/src/lib/definitions/timeouts.ts index d8aceb7e..1c6002d5 100644 --- a/src/lib/definitions/timeouts.ts +++ b/src/lib/definitions/timeouts.ts @@ -17,6 +17,7 @@ import { IWorkflowExecTimeout, WorkflowExecTimeout } from './workflowExecTimeout import { ActionExecTimeout, BranchExecTimeout, EventTimeout } from './types'; import { cleanSourceModelProperty, + isPlainObject, normalizeWorkflowExecTimeout, overwriteStateExecTimeout, overwriteWorkflowExecTimeout, @@ -33,6 +34,7 @@ export interface ITimeouts { eventTimeout?: EventTimeout; normalize(): ITimeouts; + asPlainObject(): ITimeouts; } export class Timeouts implements ITimeouts { @@ -61,6 +63,18 @@ export class Timeouts implements ITimeouts { cleanSourceModelProperty(clone); - return toPlainObject(clone); + if (isPlainObject(this)) { + return toPlainObject(clone); + } + + return clone; + } + + /** + * Create a shallow copy as plain object + * @returns {Specification.ITimeouts} as plain object. + */ + asPlainObject(): ITimeouts { + return toPlainObject(this); } } diff --git a/src/lib/definitions/transition.ts b/src/lib/definitions/transition.ts index 39dc7cd2..4f92f49a 100644 --- a/src/lib/definitions/transition.ts +++ b/src/lib/definitions/transition.ts @@ -15,7 +15,7 @@ */ import { IProduceeventdef, Produceeventdef } from './produceeventdef'; -import { cleanSourceModelProperty, normalizeCompensate, overwriteProduceEvents } from './utils'; +import { cleanSourceModelProperty, isPlainObject, normalizeCompensate, overwriteProduceEvents } from './utils'; import toPlainObject from 'lodash.toplainobject'; export interface ITransition { @@ -25,6 +25,7 @@ export interface ITransition { compensate?: boolean; normalize(): ITransition; + asPlainObject(): ITransition; } export class Transition { @@ -64,6 +65,18 @@ export class Transition { cleanSourceModelProperty(clone); - return toPlainObject(clone); + if (isPlainObject(this)) { + return toPlainObject(clone); + } + + return clone; + } + + /** + * Create a shallow copy as plain object + * @returns {Specification.ITransition} as plain object. + */ + asPlainObject(): ITransition { + return toPlainObject(this); } } diff --git a/src/lib/definitions/transitiondatacondition.ts b/src/lib/definitions/transitiondatacondition.ts index ca555508..36544eba 100644 --- a/src/lib/definitions/transitiondatacondition.ts +++ b/src/lib/definitions/transitiondatacondition.ts @@ -16,7 +16,13 @@ import { IMetadata, Metadata } from './metadata'; import { ITransition, Transition } from './transition'; -import { cleanSourceModelProperty, normalizeTransition, overwriteMetadata, overwriteTransition } from './utils'; +import { + cleanSourceModelProperty, + isPlainObject, + normalizeTransition, + overwriteMetadata, + overwriteTransition, +} from './utils'; import toPlainObject from 'lodash.toplainobject'; export interface ITransitiondatacondition { @@ -27,6 +33,7 @@ export interface ITransitiondatacondition { metadata?: IMetadata; normalize(): ITransitiondatacondition; + asPlainObject(): ITransitiondatacondition; } export class Transitiondatacondition implements ITransitiondatacondition { @@ -65,6 +72,18 @@ export class Transitiondatacondition implements ITransitiondatacondition { cleanSourceModelProperty(clone); - return toPlainObject(clone); + if (isPlainObject(this)) { + return toPlainObject(clone); + } + + return clone; + } + + /** + * Create a shallow copy as plain object + * @returns {Specification.ITransitiondatacondition} as plain object. + */ + asPlainObject(): ITransitiondatacondition { + return toPlainObject(this); } } diff --git a/src/lib/definitions/transitioneventcondition.ts b/src/lib/definitions/transitioneventcondition.ts index 961f3f30..7b97ceff 100644 --- a/src/lib/definitions/transitioneventcondition.ts +++ b/src/lib/definitions/transitioneventcondition.ts @@ -19,6 +19,7 @@ import { IMetadata, Metadata } from './metadata'; import { ITransition, Transition } from './transition'; import { cleanSourceModelProperty, + isPlainObject, normalizeTransition, overwriteEventDataFilter, overwriteMetadata, @@ -35,6 +36,7 @@ export interface ITransitioneventcondition { metadata?: IMetadata; normalize(): ITransitioneventcondition; + asPlainObject(): ITransitioneventcondition; } export class Transitioneventcondition implements ITransitioneventcondition { @@ -78,6 +80,18 @@ export class Transitioneventcondition implements ITransitioneventcondition { cleanSourceModelProperty(clone); - return toPlainObject(clone); + if (isPlainObject(this)) { + return toPlainObject(clone); + } + + return clone; + } + + /** + * Create a shallow copy as plain object + * @returns {Specification.ITransitioneventcondition} as plain object. + */ + asPlainObject(): ITransitioneventcondition { + return toPlainObject(this); } } diff --git a/src/lib/definitions/utils.ts b/src/lib/definitions/utils.ts index 29cea948..e13deb79 100644 --- a/src/lib/definitions/utils.ts +++ b/src/lib/definitions/utils.ts @@ -442,6 +442,20 @@ export function overwritePropertyAsPlainType(property: string, object: any): voi } } +/** + * Verify if and object was created with {} or new Object() + * @param object to be evaluated + */ +export function isPlainObject(object: unknown): object is Record { + if (typeof object !== 'object' || object === null) { + return false; + } + + const proto = Object.getPrototypeOf(object); + + return proto === null || proto.constructor === Object; +} + /** * Check if an object has a property or method * @param object to be evaluated diff --git a/src/lib/definitions/workflow.ts b/src/lib/definitions/workflow.ts index 573b904d..c3c7c5a5 100644 --- a/src/lib/definitions/workflow.ts +++ b/src/lib/definitions/workflow.ts @@ -21,6 +21,7 @@ import * as yaml from 'js-yaml'; import { validate } from '../utils'; import { cleanSourceModelProperty, + isPlainObject, normalizeAuth, normalizeEvents, normalizeExpressionLang, @@ -77,6 +78,7 @@ export interface IWorkflow { states: States; normalize(): IWorkflow; + asPlainObject(): IWorkflow; } export class Workflow implements IWorkflow { @@ -189,11 +191,18 @@ export class Workflow implements IWorkflow { /** * Parses the provided string as Workflow * @param {string} data The JSON or YAML workflow to parse + * @param {boolean} [optionalParam] create model instance as plain object * @returns {IWorkflow} The parse Workflow */ - static fromSource(value: string): IWorkflow { + static fromSource(value: string, asPlainObject?: boolean): IWorkflow { try { - return toPlainObject(new Workflow(yaml.load(value))); + const workflow = new Workflow(yaml.load(value)); + + if (!asPlainObject) { + return workflow; + } + + return toPlainObject(workflow); } catch (ex) { throw new Error('Format not supported'); } @@ -236,6 +245,18 @@ export class Workflow implements IWorkflow { cleanSourceModelProperty(clone); - return toPlainObject(clone); + if (isPlainObject(this)) { + return toPlainObject(clone); + } + + return clone; + } + + /** + * Create a shallow copy as plain object + * @returns {Specification.IWorkflow} as plain object. + */ + asPlainObject(): IWorkflow { + return toPlainObject(this); } } diff --git a/src/lib/definitions/workflowExecTimeout.ts b/src/lib/definitions/workflowExecTimeout.ts index 387a9f25..27abf24e 100644 --- a/src/lib/definitions/workflowExecTimeout.ts +++ b/src/lib/definitions/workflowExecTimeout.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { cleanSourceModelProperty, normalizeInterrupt } from './utils'; +import { cleanSourceModelProperty, isPlainObject, normalizeInterrupt } from './utils'; import toPlainObject from 'lodash.toplainobject'; export interface IWorkflowExecTimeout { @@ -24,6 +24,7 @@ export interface IWorkflowExecTimeout { runBefore?: string; normalize(): IWorkflowExecTimeout; + asPlainObject(): IWorkflowExecTimeout; } export class WorkflowExecTimeout implements IWorkflowExecTimeout { @@ -59,6 +60,18 @@ export class WorkflowExecTimeout implements IWorkflowExecTimeout { cleanSourceModelProperty(clone); - return toPlainObject(clone); + if (isPlainObject(this)) { + return toPlainObject(clone); + } + + return clone; + } + + /** + * Create a shallow copy as plain object + * @returns {Specification.IWorkflowExecTimeout} as plain object. + */ + asPlainObject(): IWorkflowExecTimeout { + return toPlainObject(this); } } diff --git a/src/lib/schema/__merged.json b/src/lib/schema/__merged.json index a2c2554e..75d75224 100644 --- a/src/lib/schema/__merged.json +++ b/src/lib/schema/__merged.json @@ -2004,102 +2004,12 @@ "additionalProperties": false, "required": [] }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Unique function name", - "minLength": 1 - }, - "operation": { - "type": "string", - "description": "If type is `rest`, #. If type is `asyncapi`, #. If type is `rpc`, ##. If type is `graphql`, ##. If type is `odata`, #. If type is `expression`, defines the workflow expression.", - "minLength": 1 - }, - "type": { - "type": "string", - "description": "Defines the function type. Is either `rest`, `asyncapi, `rpc`, `graphql`, `odata`, `expression`, or `custom`. Default is `rest`", - "enum": [ - "rest", - "asyncapi", - "rpc", - "graphql", - "odata", - "expression", - "custom" - ], - "default": "rest" - }, - "authRef": { - "type": "string", - "description": "References an auth definition name to be used to access to resource defined in the operation parameter", - "minLength": 1 - }, - "metadata": { - "$ref": "#/definitions/metadata" - } - }, - "additionalProperties": false, - "required": [ - "name", - "operation" - ] - }, - "retrydef": { + "metadata": { "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Unique retry strategy name", - "minLength": 1 - }, - "delay": { - "type": "string", - "description": "Time delay between retry attempts (ISO 8601 duration format)" - }, - "maxDelay": { - "type": "string", - "description": "Maximum time delay between retry attempts (ISO 8601 duration format)" - }, - "increment": { - "type": "string", - "description": "Static value by which the delay increases during each attempt (ISO 8601 time format)" - }, - "multiplier": { - "type": [ - "number", - "string" - ], - "minimum": 0, - "minLength": 1, - "multipleOf": 0.01, - "description": "Numeric value, if specified the delay between retries is multiplied by this value." - }, - "maxAttempts": { - "type": [ - "number", - "string" - ], - "minimum": 1, - "minLength": 0, - "description": "Maximum number of retry attempts." - }, - "jitter": { - "type": [ - "number", - "string" - ], - "minimum": 0, - "maximum": 1, - "description": "If float type, maximum amount of random time added or subtracted from the delay between each retry relative to total delay (between 0 and 1). If string type, absolute maximum amount of random time added or subtracted from the delay between each retry (ISO 8601 duration format)" - } - }, - "additionalProperties": false, - "required": [ - "name", - "maxAttempts" - ] + "description": "Metadata information", + "additionalProperties": { + "type": "string" + } }, "authdef": { "type": "object", @@ -2268,36 +2178,6 @@ "clientId" ] }, - "metadata": { - "type": "object", - "description": "Metadata information", - "additionalProperties": { - "type": "string" - } - }, - "errordef": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Domain-specific error name", - "minLength": 1 - }, - "code": { - "type": "string", - "description": "Error code. Can be used in addition to the name to help runtimes resolve to technical errors/exceptions. Should not be defined if error is set to '*'", - "minLength": 1 - }, - "description": { - "type": "string", - "description": "Error description" - } - }, - "additionalProperties": false, - "required": [ - "name" - ] - }, "workflowExecTimeout": { "oneOf": [ { @@ -2375,6 +2255,126 @@ "description": "Timeout duration to wait for consuming defined events (ISO 8601 duration format)", "minLength": 1 }, + "errordef": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Domain-specific error name", + "minLength": 1 + }, + "code": { + "type": "string", + "description": "Error code. Can be used in addition to the name to help runtimes resolve to technical errors/exceptions. Should not be defined if error is set to '*'", + "minLength": 1 + }, + "description": { + "type": "string", + "description": "Error description" + } + }, + "additionalProperties": false, + "required": [ + "name" + ] + }, + "retrydef": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Unique retry strategy name", + "minLength": 1 + }, + "delay": { + "type": "string", + "description": "Time delay between retry attempts (ISO 8601 duration format)" + }, + "maxDelay": { + "type": "string", + "description": "Maximum time delay between retry attempts (ISO 8601 duration format)" + }, + "increment": { + "type": "string", + "description": "Static value by which the delay increases during each attempt (ISO 8601 time format)" + }, + "multiplier": { + "type": [ + "number", + "string" + ], + "minimum": 0, + "minLength": 1, + "multipleOf": 0.01, + "description": "Numeric value, if specified the delay between retries is multiplied by this value." + }, + "maxAttempts": { + "type": [ + "number", + "string" + ], + "minimum": 1, + "minLength": 0, + "description": "Maximum number of retry attempts." + }, + "jitter": { + "type": [ + "number", + "string" + ], + "minimum": 0, + "maximum": 1, + "description": "If float type, maximum amount of random time added or subtracted from the delay between each retry relative to total delay (between 0 and 1). If string type, absolute maximum amount of random time added or subtracted from the delay between each retry (ISO 8601 duration format)" + } + }, + "additionalProperties": false, + "required": [ + "name", + "maxAttempts" + ] + }, + "function": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Unique function name", + "minLength": 1 + }, + "operation": { + "type": "string", + "description": "If type is `rest`, #. If type is `asyncapi`, #. If type is `rpc`, ##. If type is `graphql`, ##. If type is `odata`, #. If type is `expression`, defines the workflow expression.", + "minLength": 1 + }, + "type": { + "type": "string", + "description": "Defines the function type. Is either `rest`, `asyncapi, `rpc`, `graphql`, `odata`, `expression`, or `custom`. Default is `rest`", + "enum": [ + "rest", + "asyncapi", + "rpc", + "graphql", + "odata", + "expression", + "custom" + ], + "default": "rest" + }, + "authRef": { + "type": "string", + "description": "References an auth definition name to be used to access to resource defined in the operation parameter", + "minLength": 1 + }, + "metadata": { + "$ref": "#/definitions/metadata" + } + }, + "additionalProperties": false, + "required": [ + "name", + "operation" + ] + }, "eventdef": { "type": "object", "properties": { diff --git a/src/lib/schema/validation/validators-paths.ts b/src/lib/schema/validation/validators-paths.ts index fee61833..7b61c30c 100644 --- a/src/lib/schema/validation/validators-paths.ts +++ b/src/lib/schema/validation/validators-paths.ts @@ -68,16 +68,16 @@ export const validatorsPaths: [string, string][] = [ ['ActionExecTimeout', 'https://serverlessworkflow.io/schemas/0.8/timeouts.json#/definitions/actionExecTimeout'], ['BranchExecTimeout', 'https://serverlessworkflow.io/schemas/0.8/timeouts.json#/definitions/branchExecTimeout'], ['EventTimeout', 'https://serverlessworkflow.io/schemas/0.8/timeouts.json#/definitions/eventTimeout'], + ['Errordef', 'https://serverlessworkflow.io/schemas/0.8/errors.json#/definitions/errordef'], ['Metadata', 'https://serverlessworkflow.io/schemas/0.8/common.json#/definitions/metadata'], - ['Function', 'https://serverlessworkflow.io/schemas/0.8/functions.json#/definitions/function'], ['Eventdef', 'https://serverlessworkflow.io/schemas/0.8/events.json#/definitions/eventdef'], ['CorrelationDef', 'https://serverlessworkflow.io/schemas/0.8/events.json#/definitions/correlationDef'], - ['Retrydef', 'https://serverlessworkflow.io/schemas/0.8/retries.json#/definitions/retrydef'], - ['Errordef', 'https://serverlessworkflow.io/schemas/0.8/errors.json#/definitions/errordef'], + ['Function', 'https://serverlessworkflow.io/schemas/0.8/functions.json#/definitions/function'], ['Authdef', 'https://serverlessworkflow.io/schemas/0.8/auth.json#/definitions/authdef'], ['Basicpropsdef', 'https://serverlessworkflow.io/schemas/0.8/auth.json#/definitions/basicpropsdef'], ['Bearerpropsdef', 'https://serverlessworkflow.io/schemas/0.8/auth.json#/definitions/bearerpropsdef'], ['Oauth2propsdef', 'https://serverlessworkflow.io/schemas/0.8/auth.json#/definitions/oauth2propsdef'], + ['Retrydef', 'https://serverlessworkflow.io/schemas/0.8/retries.json#/definitions/retrydef'], ['Secrets', 'https://serverlessworkflow.io/schemas/0.8/secrets.json#/secrets'], ['Timeouts', 'https://serverlessworkflow.io/schemas/0.8/timeouts.json#/timeouts'], ['Errors', 'https://serverlessworkflow.io/schemas/0.8/errors.json#/errors'], diff --git a/tests/examples/applicantrequest.spec.ts b/tests/examples/applicantrequest.spec.ts index 933f38f7..f4dd0e40 100644 --- a/tests/examples/applicantrequest.spec.ts +++ b/tests/examples/applicantrequest.spec.ts @@ -131,7 +131,8 @@ describe('applicationrequest workflow example', () => { ]) .build(), ]) - .build(); + .build() + .asPlainObject(); // Use immer to create a draft and compare with original model ensuring it is immerable produce(workflow, (draft) => { @@ -140,7 +141,10 @@ describe('applicationrequest workflow example', () => { }); it('deserialized workflow should be immerable', function () { - const model = Specification.Workflow.fromSource(fs.readFileSync('./tests/examples/applicantrequest.json', 'utf8')); + const model = Specification.Workflow.fromSource( + fs.readFileSync('./tests/examples/applicantrequest.json', 'utf8'), + true + ); produce(model, (draft: any) => { expect(model === original(draft)).toBe(true); diff --git a/tests/examples/booklending.spec.ts b/tests/examples/booklending.spec.ts index 6ed9fad8..1f150595 100644 --- a/tests/examples/booklending.spec.ts +++ b/tests/examples/booklending.spec.ts @@ -289,7 +289,8 @@ describe('booklending workflow example', () => { ]) .functions('file://books/lending/functions.json') .events('file://books/lending/events.json') - .build(); + .build() + .asPlainObject(); // Use immer to create a draft and compare with original model ensuring it is immerable produce(workflow, (draft) => { @@ -298,7 +299,7 @@ describe('booklending workflow example', () => { }); it('deserialized workflow should be immerable', function () { - const model = Specification.Workflow.fromSource(fs.readFileSync('./tests/examples/booklending.json', 'utf8')); + const model = Specification.Workflow.fromSource(fs.readFileSync('./tests/examples/booklending.json', 'utf8'), true); produce(model, (draft: any) => { expect(model === original(draft)).toBe(true); diff --git a/tests/examples/carauctionbids.spec.ts b/tests/examples/carauctionbids.spec.ts index 27ec3932..d0e50836 100644 --- a/tests/examples/carauctionbids.spec.ts +++ b/tests/examples/carauctionbids.spec.ts @@ -109,7 +109,8 @@ describe('carauctionbids workflow example', () => { ]) .build(), ]) - .build(); + .build() + .asPlainObject(); // Use immer to create a draft and compare with original model ensuring it is immerable produce(workflow, (draft) => { @@ -118,7 +119,10 @@ describe('carauctionbids workflow example', () => { }); it('deserialized workflow should be immerable', function () { - const model = Specification.Workflow.fromSource(fs.readFileSync('./tests/examples/carauctionbids.json', 'utf8')); + const model = Specification.Workflow.fromSource( + fs.readFileSync('./tests/examples/carauctionbids.json', 'utf8'), + true + ); produce(model, (draft: any) => { expect(model === original(draft)).toBe(true); diff --git a/tests/examples/checkcarvitals.spec.ts b/tests/examples/checkcarvitals.spec.ts index 8b029f9c..0455ace8 100644 --- a/tests/examples/checkcarvitals.spec.ts +++ b/tests/examples/checkcarvitals.spec.ts @@ -109,7 +109,8 @@ describe('checkcarvitals workflow example', () => { eventdefBuilder().name('CarTurnedOnEvent').type('car.events').source('my/car').build(), eventdefBuilder().name('CarTurnedOffEvent').type('car.events').source('my/car').build(), ]) - .build(); + .build() + .asPlainObject(); // Use immer to create a draft and compare with original model ensuring it is immerable produce(workflow, (draft) => { @@ -118,7 +119,10 @@ describe('checkcarvitals workflow example', () => { }); it('deserialized workflow should be immerable', function () { - const model = Specification.Workflow.fromSource(fs.readFileSync('./tests/examples/checkcarvitals.json', 'utf8')); + const model = Specification.Workflow.fromSource( + fs.readFileSync('./tests/examples/checkcarvitals.json', 'utf8'), + true + ); produce(model, (draft: any) => { expect(model === original(draft)).toBe(true); diff --git a/tests/examples/jobmonitoring.spec.ts b/tests/examples/jobmonitoring.spec.ts index 7dfc7b4b..b9d3225c 100644 --- a/tests/examples/jobmonitoring.spec.ts +++ b/tests/examples/jobmonitoring.spec.ts @@ -240,7 +240,8 @@ describe('jobmonitoring workflow example', () => { ]) .build(), ]) - .build(); + .build() + .asPlainObject(); // Use immer to create a draft and compare with original model ensuring it is immerable produce(workflow, (draft) => { @@ -249,7 +250,10 @@ describe('jobmonitoring workflow example', () => { }); it('deserialized workflow should be immerable', function () { - const model = Specification.Workflow.fromSource(fs.readFileSync('./tests/examples/jobmonitoring.json', 'utf8')); + const model = Specification.Workflow.fromSource( + fs.readFileSync('./tests/examples/jobmonitoring.json', 'utf8'), + true + ); produce(model, (draft: any) => { expect(model === original(draft)).toBe(true); diff --git a/tests/examples/parallel.spec.ts b/tests/examples/parallel.spec.ts index 0dc93c36..9a28c837 100644 --- a/tests/examples/parallel.spec.ts +++ b/tests/examples/parallel.spec.ts @@ -73,7 +73,8 @@ describe('parallel workflow example', () => { ]) .build(), ]) - .build(); + .build() + .asPlainObject(); // Use immer to create a draft and compare with original model ensuring it is immerable produce(workflow, (draft) => { @@ -82,7 +83,7 @@ describe('parallel workflow example', () => { }); it('deserialized workflow should be immerable', function () { - const model = Specification.Workflow.fromSource(fs.readFileSync('./tests/examples/parallel.json', 'utf8')); + const model = Specification.Workflow.fromSource(fs.readFileSync('./tests/examples/parallel.json', 'utf8'), true); produce(model, (draft: any) => { expect(model === original(draft)).toBe(true); diff --git a/tests/examples/provisionorder.spec.ts b/tests/examples/provisionorder.spec.ts index 45200556..85b65fff 100644 --- a/tests/examples/provisionorder.spec.ts +++ b/tests/examples/provisionorder.spec.ts @@ -155,7 +155,8 @@ describe('provisionorder workflow example', () => { .actions([actionBuilder().subFlowRef('applyOrderWorkflowId').build()]) .build(), ]) - .build(); + .build() + .asPlainObject(); // Use immer to create a draft and compare with original model ensuring it is immerable produce(workflow, (draft) => { @@ -164,7 +165,10 @@ describe('provisionorder workflow example', () => { }); it('deserialized workflow should be immerable', function () { - const model = Specification.Workflow.fromSource(fs.readFileSync('./tests/examples/provisionorder.json', 'utf8')); + const model = Specification.Workflow.fromSource( + fs.readFileSync('./tests/examples/provisionorder.json', 'utf8'), + true + ); produce(model, (draft: any) => { expect(model === original(draft)).toBe(true); diff --git a/tests/examples/sendcloudevent.spec.ts b/tests/examples/sendcloudevent.spec.ts index f5ace19f..9f6790f3 100644 --- a/tests/examples/sendcloudevent.spec.ts +++ b/tests/examples/sendcloudevent.spec.ts @@ -120,7 +120,8 @@ describe('sendcloudevent workflow example', () => { ) .build(), ]) - .build(); + .build() + .asPlainObject(); // Use immer to create a draft and compare with original model ensuring it is immerable produce(workflow, (draft) => { @@ -129,7 +130,10 @@ describe('sendcloudevent workflow example', () => { }); it('deserialized workflow should be immerable', function () { - const model = Specification.Workflow.fromSource(fs.readFileSync('./tests/examples/sendcloudevent.json', 'utf8')); + const model = Specification.Workflow.fromSource( + fs.readFileSync('./tests/examples/sendcloudevent.json', 'utf8'), + true + ); produce(model, (draft: any) => { expect(model === original(draft)).toBe(true); diff --git a/tests/examples/solvemathproblems.spec.ts b/tests/examples/solvemathproblems.spec.ts index db731a0b..2a5eb6bf 100644 --- a/tests/examples/solvemathproblems.spec.ts +++ b/tests/examples/solvemathproblems.spec.ts @@ -102,7 +102,8 @@ describe('solvemathproblems workflow example', () => { .stateDataFilter(statedatafilterBuilder().output('${ .results }').build()) .build(), ]) - .build(); + .build() + .asPlainObject(); // Use immer to create a draft and compare with original model ensuring it is immerable produce(workflow, (draft) => { @@ -111,7 +112,10 @@ describe('solvemathproblems workflow example', () => { }); it('deserialized workflow should be immerable', function () { - const model = Specification.Workflow.fromSource(fs.readFileSync('./tests/examples/solvemathproblems.json', 'utf8')); + const model = Specification.Workflow.fromSource( + fs.readFileSync('./tests/examples/solvemathproblems.json', 'utf8'), + true + ); produce(model, (draft: any) => { expect(model === original(draft)).toBe(true); diff --git a/tools/generate-builders.ts b/tools/generate-builders.ts index 5539bfbb..2e9a4bd1 100644 --- a/tools/generate-builders.ts +++ b/tools/generate-builders.ts @@ -122,7 +122,6 @@ const createBuilder = async (destDir: string, dataType: string): Promise = import { Specification } from '../definitions'; import { hasProperty } from '../definitions/utils'; import { validate } from '../utils'; -import toPlainObject from 'lodash.toplainobject'; ${extension?.import ? extension.import : ''} /** @@ -142,7 +141,7 @@ function ${camelType}BuildingFn(data: Specification.I${dataType}): (() => Specif validate('${dataType}', model); } - return toPlainObject(model); + return model; }; } From 1fab974a0652508ae118dd9e74929128fc02b221 Mon Sep 17 00:00:00 2001 From: handreyrc Date: Wed, 15 Oct 2025 10:16:11 -0400 Subject: [PATCH 4/4] fix wrong name and version Signed-off-by: handreyrc --- README.md | 12 ++++++------ package-lock.json | 14 +++++++------- package.json | 4 ++-- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 5c71fb30..c237e580 100644 --- a/README.md +++ b/README.md @@ -40,13 +40,13 @@ npm install && npm run build && npm run test For the latest stable version: ```sh -npm i @severlessworkflow/sdk-typescript +npm i @serverlessworkflow/sdk-typescript ``` #### Create Workflow using builder API ```typescript -import { workflowBuilder, injectstateBuilder, Specification } from '@severlessworkflow/sdk-typescript'; +import { workflowBuilder, injectstateBuilder, Specification } from '@serverlessworkflow/sdk-typescript'; const workflow: Specification.Workflow = workflowBuilder() .id("helloworld") @@ -69,7 +69,7 @@ const workflow: Specification.Workflow = workflowBuilder() #### Create Workflow from JSON/YAML source ```typescript -import { Specification, Workflow } from '@severlessworkflow/sdk-typescript'; +import { Specification, Workflow } from '@serverlessworkflow/sdk-typescript'; const source = `id: helloworld version: '1.0' @@ -93,7 +93,7 @@ Where `source` can be in both JSON or YAML format. Having the following workflow instance: ```typescript -import { workflowBuilder, injectstateBuilder, Specification } from '@severlessworkflow/sdk-typescript'; +import { workflowBuilder, injectstateBuilder, Specification } from '@serverlessworkflow/sdk-typescript'; const workflow: Specification.Workflow = workflowBuilder() .id("helloworld") @@ -139,7 +139,7 @@ The sdk provides a way to validate if a workflow object is compliant with the se - `validate(): boolean` ```typescript -import {WorkflowValidator, Specification} from '@severlessworkflow/sdk-typescript'; +import {WorkflowValidator, Specification} from '@serverlessworkflow/sdk-typescript'; import {Workflow} from "./workflow"; const workflow = { @@ -171,7 +171,7 @@ You can also validate parts of a workflow using `validators`: ```typescript import { ValidateFunction } from 'ajv'; -import { validators, Specification } from '@severlessworkflow/sdk-typescript'; +import { validators, Specification } from '@serverlessworkflow/sdk-typescript'; const injectionState: Specification.Injectstate = workflow.states[0]; const injectionStateValidator: ValidateFunction = validators.get('Injectstate'); diff --git a/package-lock.json b/package-lock.json index 3b5ec745..e4ae91ea 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { - "name": "@severlessworkflow/sdk-typescript", - "version": "3.0.3", + "name": "@serverlessworkflow/sdk-typescript", + "version": "0.8.4", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "@severlessworkflow/sdk-typescript", - "version": "3.0.3", + "name": "@serverlessworkflow/sdk-typescript", + "version": "0.8.4", "license": "http://www.apache.org/licenses/LICENSE-2.0.txt", "dependencies": { "ajv": "^8.1.0", @@ -3404,9 +3404,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.235", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.235.tgz", - "integrity": "sha512-i/7ntLFwOdoHY7sgjlTIDo4Sl8EdoTjWIaKinYOVfC6bOp71bmwenyZthWHcasxgHDNWbWxvG9M3Ia116zIaYQ==", + "version": "1.5.237", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.237.tgz", + "integrity": "sha512-icUt1NvfhGLar5lSWH3tHNzablaA5js3HVHacQimfP8ViEBOQv+L7DKEuHdbTZ0SKCO1ogTJTIL1Gwk9S6Qvcg==", "dev": true, "license": "ISC" }, diff --git a/package.json b/package.json index 41ca2aad..6cf9c73c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { - "name": "@severlessworkflow/sdk-typescript", - "version": "3.0.3", + "name": "@serverlessworkflow/sdk-typescript", + "version": "0.8.4", "schemaVersion": "0.8", "description": "Typescript SDK for Serverless Workflow Specification", "main": "umd/index.umd.min.js",