diff --git a/tools/js-sdk-release-tools/.gitignore b/tools/js-sdk-release-tools/.gitignore new file mode 100644 index 00000000000..4aa7824e1bb --- /dev/null +++ b/tools/js-sdk-release-tools/.gitignore @@ -0,0 +1,4 @@ +# JS SDK Release Tools +!packages/* +.tmp/* +.tmp-detect/ \ No newline at end of file diff --git a/tools/js-sdk-release-tools/ci.yml b/tools/js-sdk-release-tools/ci.yml index c6ecef630b6..df14d4dd801 100644 --- a/tools/js-sdk-release-tools/ci.yml +++ b/tools/js-sdk-release-tools/ci.yml @@ -65,11 +65,6 @@ extends: npm run test displayName: 'npm run test' workingDirectory: $(System.DefaultWorkingDirectory)/tools/js-sdk-release-tools - - - script: | - npm install - displayName: 'npm install' - workingDirectory: $(System.DefaultWorkingDirectory)/tools/js-sdk-release-tools - script: | npm pack diff --git a/tools/js-sdk-release-tools/package-lock.json b/tools/js-sdk-release-tools/package-lock.json index 151110fd2de..8f0be8ac1e6 100644 --- a/tools/js-sdk-release-tools/package-lock.json +++ b/tools/js-sdk-release-tools/package-lock.json @@ -15,13 +15,18 @@ "command-line-args": "^5.1.1", "comment-json": "^4.1.0", "fs-extra": "^11.2.0", + "glob": "^11.0.0", "js-yaml": "^4.1.0", "parse-ts-to-ast": "^0.1.1", "semver": "^7.3.5", "shelljs": "^0.8.4", + "shx": "^0.3.4", "simple-git": "^3.5.0", - "ts-morph": "^12.0.0", + "ts-morph": "^23.0.0", "tslib": "^1.9.3", + "typescript-codegen-breaking-change-detector": "0.4.11", + "unixify": "^1.0.0", + "winston": "^3.13.1", "yaml": "^1.10.2" }, "bin": { @@ -34,17 +39,47 @@ "devDependencies": { "@types/node": "^20.12.12", "@types/shelljs": "^0.8.15", - "nodemon": "^3.1.0", + "@types/unixify": "^1.0.2", "rimraf": "^3.0.2", - "ts-node": "^10.9.2", - "typescript": "^5.4.5", - "vitest": "^1.6.0" + "tsx": "^4.16.5", + "typescript": "5.5.3", + "vitest": "2.0.5" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.20.0", + "@rollup/rollup-android-arm64": "4.20.0", + "@rollup/rollup-darwin-arm64": "4.20.0", + "@rollup/rollup-darwin-x64": "4.20.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.20.0", + "@rollup/rollup-linux-arm-musleabihf": "4.20.0", + "@rollup/rollup-linux-arm64-gnu": "4.20.0", + "@rollup/rollup-linux-arm64-musl": "4.20.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.20.0", + "@rollup/rollup-linux-riscv64-gnu": "4.20.0", + "@rollup/rollup-linux-s390x-gnu": "4.20.0", + "@rollup/rollup-linux-x64-gnu": "4.20.0", + "@rollup/rollup-linux-x64-musl": "4.20.0", + "@rollup/rollup-win32-arm64-msvc": "4.20.0", + "@rollup/rollup-win32-ia32-msvc": "4.20.0", + "@rollup/rollup-win32-x64-msvc": "4.20.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" } }, "node_modules/@azure-tools/openapi-tools-common": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@azure-tools/openapi-tools-common/-/openapi-tools-common-1.2.2.tgz", - "integrity": "sha512-r6oBkNsND1sA+ZjHlE1vTf2hUj4RUnbD9KG9uksEKnLVC6oOD5WuJYCO5y4xDzWWuR0x+9gImovQqXAE7ZXYfg==", + "license": "MIT", "dependencies": { "@types/async-retry": "^1.4.1", "@types/commonmark": "^0.27.3", @@ -57,55 +92,64 @@ } }, "node_modules/@azure-tools/openapi-tools-common/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + "version": "2.6.3", + "license": "0BSD" }, "node_modules/@azure/abort-controller": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.1.0.tgz", - "integrity": "sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==", + "version": "2.1.2", + "license": "MIT", "dependencies": { - "tslib": "^2.2.0" + "tslib": "^2.6.2" }, "engines": { - "node": ">=12.0.0" + "node": ">=18.0.0" } }, "node_modules/@azure/abort-controller/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + "version": "2.6.3", + "license": "0BSD" }, "node_modules/@azure/core-auth": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.4.0.tgz", - "integrity": "sha512-HFrcTgmuSuukRf/EdPmqBrc5l6Q5Uu+2TbuhaKbgaCpP2TfAeiNaQPAadxO+CYBRHGUzIDteMAjFspFLDLnKVQ==", + "version": "1.7.2", + "license": "MIT", "dependencies": { - "@azure/abort-controller": "^1.0.0", - "tslib": "^2.2.0" + "@azure/abort-controller": "^2.0.0", + "@azure/core-util": "^1.1.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=12.0.0" + "node": ">=18.0.0" } }, "node_modules/@azure/core-auth/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + "version": "2.6.3", + "license": "0BSD" + }, + "node_modules/@azure/core-util": { + "version": "1.9.2", + "license": "MIT", + "dependencies": { + "@azure/abort-controller": "^2.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-util/node_modules/tslib": { + "version": "2.6.3", + "license": "0BSD" }, "node_modules/@azure/logger-js": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@azure/logger-js/-/logger-js-1.3.2.tgz", - "integrity": "sha512-h58oEROO2tniBTSmFmuHBGvuiFuYsHQBWTVdpT2AiOED4F2Kgf7rs0MPYPXiBcDvihC70M7QPRhIQ3JK1H/ygw==", + "license": "MIT", "dependencies": { "tslib": "^1.9.3" } }, "node_modules/@azure/ms-rest-js": { "version": "2.7.0", - "resolved": "https://registry.npmjs.org/@azure/ms-rest-js/-/ms-rest-js-2.7.0.tgz", - "integrity": "sha512-ngbzWbqF+NmztDOpLBVDxYM+XLcUj7nKhxGbSU9WtIsXfRB//cf2ZbAG5HkOrhU9/wd/ORRB6lM/d69RKVjiyA==", + "license": "MIT", "dependencies": { "@azure/core-auth": "^1.1.4", "abort-controller": "^3.0.0", @@ -117,794 +161,786 @@ "xml2js": "^0.5.0" } }, - "node_modules/@azure/ms-rest-js/node_modules/form-data": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", - "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/@azure/ms-rest-js/node_modules/xml2js": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", - "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/@azure/storage-blob": { "version": "10.5.0", - "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-10.5.0.tgz", - "integrity": "sha512-67+0EP7STy9BQgzvN1RgmSvXhxRd044eDgepX7zBp7XslBxz8YGo2cSLm9w5o5Qf1FLCRlwuziRMikaPCLMpVw==", - "deprecated": "This version has been deprecated, please upgrade to the version tagged as latest", + "license": "MIT", "dependencies": { "@azure/ms-rest-js": "^2.0.0", "events": "^3.0.0", "tslib": "^1.9.3" } }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, + "node_modules/@colors/colors": { + "version": "1.6.0", + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=0.1.90" } }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", - "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", - "cpu": [ - "ppc64" - ], - "dev": true, + "node_modules/@dabh/diagnostics": { + "version": "2.0.3", "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" + "dependencies": { + "colorspace": "1.1.x", + "enabled": "2.0.x", + "kuler": "^2.0.0" } }, - "node_modules/@esbuild/android-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", - "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "node_modules/@esbuild/win32-x64": { + "version": "0.23.0", "cpu": [ - "arm" + "x64" ], "dev": true, "license": "MIT", "optional": true, "os": [ - "android" + "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, - "node_modules/@esbuild/android-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", - "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", - "cpu": [ - "arm64" - ], - "dev": true, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", "license": "MIT", - "optional": true, - "os": [ - "android" - ], + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, "engines": { - "node": ">=12" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "node_modules/@esbuild/android-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", - "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", - "cpu": [ - "x64" - ], - "dev": true, + "node_modules/@eslint-community/regexpp": { + "version": "4.11.0", "license": "MIT", - "optional": true, - "os": [ - "android" - ], "engines": { - "node": ">=12" + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", - "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", - "cpu": [ - "arm64" - ], - "dev": true, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], + "peer": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, "engines": { - "node": ">=12" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", - "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", - "cpu": [ - "x64" - ], - "dev": true, + "node_modules/@eslint/js": { + "version": "8.57.0", "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], + "peer": true, "engines": { - "node": ">=12" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", - "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, "engines": { - "node": ">=12" + "node": ">=10.10.0" } }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", - "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "license": "Apache-2.0", + "peer": true, "engines": { - "node": ">=12" + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@esbuild/linux-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", - "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "license": "BSD-3-Clause", + "peer": true + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "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/@esbuild/linux-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", - "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", - "cpu": [ - "arm64" - ], - "dev": true, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", "license": "MIT", - "optional": true, - "os": [ - "linux" - ], "engines": { "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", - "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", - "cpu": [ - "ia32" - ], - "dev": true, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", "license": "MIT", - "optional": true, - "os": [ - "linux" - ], "engines": { "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", - "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", - "cpu": [ - "loong64" - ], - "dev": true, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, "engines": { "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", - "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", - "cpu": [ - "mips64el" - ], - "dev": true, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "ansi-regex": "^6.0.1" + }, "engines": { "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", - "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", - "cpu": [ - "ppc64" - ], - "dev": true, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "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" } }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", - "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", - "cpu": [ - "riscv64" - ], + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, "engines": { - "node": ">=12" + "node": ">=6.0.0" } }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", - "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", - "cpu": [ - "s390x" - ], + "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", - "optional": true, - "os": [ - "linux" - ], "engines": { - "node": ">=12" + "node": ">=6.0.0" } }, - "node_modules/@esbuild/linux-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", - "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", - "cpu": [ - "x64" - ], + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], "engines": { - "node": ">=12" + "node": ">=6.0.0" } }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", - "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", - "cpu": [ - "x64" - ], + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@kwsites/file-exists": { + "version": "1.1.1", "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" + "dependencies": { + "debug": "^4.1.1" } }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", - "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", - "cpu": [ - "x64" - ], - "dev": true, + "node_modules/@kwsites/promise-deferred": { + "version": "1.1.1", + "license": "MIT" + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, "engines": { - "node": ">=12" + "node": ">= 8" } }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", - "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", - "cpu": [ - "x64" - ], - "dev": true, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], "engines": { - "node": ">=12" + "node": ">= 8" } }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", - "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", - "cpu": [ - "arm64" - ], - "dev": true, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", "license": "MIT", - "optional": true, - "os": [ - "win32" - ], + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, "engines": { - "node": ">=12" + "node": ">= 8" } }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", - "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", - "cpu": [ - "ia32" - ], - "dev": true, + "node_modules/@octokit/auth-token": { + "version": "2.5.0", "license": "MIT", - "optional": true, - "os": [ - "win32" - ], + "dependencies": { + "@octokit/types": "^6.0.3" + } + }, + "node_modules/@octokit/core": { + "version": "6.1.2", + "license": "MIT", + "peer": true, + "dependencies": { + "@octokit/auth-token": "^5.0.0", + "@octokit/graphql": "^8.0.0", + "@octokit/request": "^9.0.0", + "@octokit/request-error": "^6.0.1", + "@octokit/types": "^13.0.0", + "before-after-hook": "^3.0.2", + "universal-user-agent": "^7.0.0" + }, "engines": { - "node": ">=12" + "node": ">= 18" } }, - "node_modules/@esbuild/win32-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", - "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", - "cpu": [ - "x64" - ], - "dev": true, + "node_modules/@octokit/core/node_modules/@octokit/auth-token": { + "version": "5.1.1", "license": "MIT", - "optional": true, - "os": [ - "win32" - ], + "peer": true, "engines": { - "node": ">=12" + "node": ">= 18" } }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "dev": true, + "node_modules/@octokit/core/node_modules/@octokit/endpoint": { + "version": "10.1.1", "license": "MIT", + "peer": true, "dependencies": { - "@sinclair/typebox": "^0.27.8" + "@octokit/types": "^13.0.0", + "universal-user-agent": "^7.0.2" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 18" } }, - "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, + "node_modules/@octokit/core/node_modules/@octokit/openapi-types": { + "version": "22.2.0", + "license": "MIT", + "peer": true + }, + "node_modules/@octokit/core/node_modules/@octokit/request": { + "version": "9.1.3", + "license": "MIT", + "peer": true, + "dependencies": { + "@octokit/endpoint": "^10.0.0", + "@octokit/request-error": "^6.0.1", + "@octokit/types": "^13.1.0", + "universal-user-agent": "^7.0.2" + }, "engines": { - "node": ">=6.0.0" + "node": ">= 18" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true + "node_modules/@octokit/core/node_modules/@octokit/request-error": { + "version": "6.1.4", + "license": "MIT", + "peer": true, + "dependencies": { + "@octokit/types": "^13.0.0" + }, + "engines": { + "node": ">= 18" + } }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, + "node_modules/@octokit/core/node_modules/@octokit/types": { + "version": "13.5.0", + "license": "MIT", + "peer": true, "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@octokit/openapi-types": "^22.2.0" } }, - "node_modules/@kwsites/file-exists": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@kwsites/file-exists/-/file-exists-1.1.1.tgz", - "integrity": "sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==", + "node_modules/@octokit/core/node_modules/before-after-hook": { + "version": "3.0.2", + "license": "Apache-2.0", + "peer": true + }, + "node_modules/@octokit/core/node_modules/universal-user-agent": { + "version": "7.0.2", + "license": "ISC", + "peer": true + }, + "node_modules/@octokit/endpoint": { + "version": "6.0.12", + "license": "MIT", "dependencies": { - "debug": "^4.1.1" + "@octokit/types": "^6.0.3", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" } }, - "node_modules/@kwsites/promise-deferred": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz", - "integrity": "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==" + "node_modules/@octokit/endpoint/node_modules/universal-user-agent": { + "version": "6.0.1", + "license": "ISC" }, - "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==", + "node_modules/@octokit/graphql": { + "version": "8.1.1", + "license": "MIT", + "peer": true, "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "@octokit/request": "^9.0.0", + "@octokit/types": "^13.0.0", + "universal-user-agent": "^7.0.0" }, "engines": { - "node": ">= 8" + "node": ">= 18" } }, - "node_modules/@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==", + "node_modules/@octokit/graphql/node_modules/@octokit/endpoint": { + "version": "10.1.1", + "license": "MIT", + "peer": true, + "dependencies": { + "@octokit/types": "^13.0.0", + "universal-user-agent": "^7.0.2" + }, "engines": { - "node": ">= 8" + "node": ">= 18" } }, - "node_modules/@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/@octokit/graphql/node_modules/@octokit/openapi-types": { + "version": "22.2.0", + "license": "MIT", + "peer": true + }, + "node_modules/@octokit/graphql/node_modules/@octokit/request": { + "version": "9.1.3", + "license": "MIT", + "peer": true, "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "@octokit/endpoint": "^10.0.0", + "@octokit/request-error": "^6.0.1", + "@octokit/types": "^13.1.0", + "universal-user-agent": "^7.0.2" }, "engines": { - "node": ">= 8" + "node": ">= 18" } }, - "node_modules/@octokit/rest": { - "version": "15.16.1", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-15.16.1.tgz", - "integrity": "sha512-86RGoibm8AJ3ZBlM0NdMI932wEZ/bdo2eEppHtliEYwJT9hsy5qt+i9HA+T8CC90r4atoFQDrY7mDLBcAjp9ow==", + "node_modules/@octokit/graphql/node_modules/@octokit/request-error": { + "version": "6.1.4", + "license": "MIT", + "peer": true, "dependencies": { - "before-after-hook": "^1.1.0", - "btoa-lite": "^1.0.0", - "debug": "^3.1.0", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.0", - "lodash": "^4.17.4", - "node-fetch": "^2.1.1", - "universal-user-agent": "^2.0.0", - "url-template": "^2.0.8" + "@octokit/types": "^13.0.0" }, "engines": { - "node": ">=4" + "node": ">= 18" + } + }, + "node_modules/@octokit/graphql/node_modules/@octokit/types": { + "version": "13.5.0", + "license": "MIT", + "peer": true, + "dependencies": { + "@octokit/openapi-types": "^22.2.0" + } + }, + "node_modules/@octokit/graphql/node_modules/universal-user-agent": { + "version": "7.0.2", + "license": "ISC", + "peer": true + }, + "node_modules/@octokit/openapi-types": { + "version": "12.11.0", + "license": "MIT" + }, + "node_modules/@octokit/plugin-paginate-rest": { + "version": "1.1.2", + "license": "MIT", + "dependencies": { + "@octokit/types": "^2.0.1" + } + }, + "node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types": { + "version": "2.16.2", + "license": "MIT", + "dependencies": { + "@types/node": ">= 8" + } + }, + "node_modules/@octokit/plugin-request-log": { + "version": "1.0.4", + "license": "MIT", + "peerDependencies": { + "@octokit/core": ">=3" } }, - "node_modules/@octokit/rest/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "node_modules/@octokit/plugin-rest-endpoint-methods": { + "version": "2.4.0", + "license": "MIT", + "dependencies": { + "@octokit/types": "^2.0.1", + "deprecation": "^2.3.1" + } + }, + "node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types": { + "version": "2.16.2", + "license": "MIT", + "dependencies": { + "@types/node": ">= 8" + } + }, + "node_modules/@octokit/request": { + "version": "5.6.3", + "license": "MIT", + "dependencies": { + "@octokit/endpoint": "^6.0.1", + "@octokit/request-error": "^2.1.0", + "@octokit/types": "^6.16.1", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.7", + "universal-user-agent": "^6.0.0" + } + }, + "node_modules/@octokit/request-error": { + "version": "1.2.1", + "license": "MIT", + "dependencies": { + "@octokit/types": "^2.0.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + } + }, + "node_modules/@octokit/request-error/node_modules/@octokit/types": { + "version": "2.16.2", + "license": "MIT", + "dependencies": { + "@types/node": ">= 8" + } + }, + "node_modules/@octokit/request/node_modules/@octokit/request-error": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "@octokit/types": "^6.0.3", + "deprecation": "^2.0.0", + "once": "^1.4.0" + } + }, + "node_modules/@octokit/request/node_modules/universal-user-agent": { + "version": "6.0.1", + "license": "ISC" + }, + "node_modules/@octokit/rest": { + "version": "16.43.2", + "license": "MIT", + "dependencies": { + "@octokit/auth-token": "^2.4.0", + "@octokit/plugin-paginate-rest": "^1.1.1", + "@octokit/plugin-request-log": "^1.0.0", + "@octokit/plugin-rest-endpoint-methods": "2.4.0", + "@octokit/request": "^5.2.0", + "@octokit/request-error": "^1.0.2", + "atob-lite": "^2.0.0", + "before-after-hook": "^2.0.0", + "btoa-lite": "^1.0.0", + "deprecation": "^2.0.0", + "lodash.get": "^4.4.2", + "lodash.set": "^4.3.2", + "lodash.uniq": "^4.5.0", + "octokit-pagination-methods": "^1.1.0", + "once": "^1.4.0", + "universal-user-agent": "^4.0.0" + } + }, + "node_modules/@octokit/types": { + "version": "6.41.0", + "license": "MIT", "dependencies": { - "ms": "^2.1.1" + "@octokit/openapi-types": "^12.11.0" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", - "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.20.0.tgz", + "integrity": "sha512-TSpWzflCc4VGAUJZlPpgAJE1+V60MePDQnBd7PPkpuEmOy8i87aL6tinFGKBFKuEDikYpig72QzdT3QPYIi+oA==", "cpu": [ "arm" ], - "dev": true, - "license": "MIT", "optional": true, "os": [ "android" ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", - "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.20.0.tgz", + "integrity": "sha512-u00Ro/nok7oGzVuh/FMYfNoGqxU5CPWz1mxV85S2w9LxHR8OoMQBuSk+3BKVIDYgkpeOET5yXkx90OYFc+ytpQ==", "cpu": [ "arm64" ], - "dev": true, - "license": "MIT", "optional": true, "os": [ "android" ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", - "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.20.0.tgz", + "integrity": "sha512-uFVfvzvsdGtlSLuL0ZlvPJvl6ZmrH4CBwLGEFPe7hUmf7htGAN+aXo43R/V6LATyxlKVC/m6UsLb7jbG+LG39Q==", "cpu": [ "arm64" ], - "dev": true, - "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", - "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.20.0.tgz", + "integrity": "sha512-xbrMDdlev53vNXexEa6l0LffojxhqDTBeL+VUxuuIXys4x6xyvbKq5XqTXBCEUA8ty8iEJblHvFaWRJTk/icAQ==", "cpu": [ "x64" ], - "dev": true, - "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", - "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.20.0.tgz", + "integrity": "sha512-jMYvxZwGmoHFBTbr12Xc6wOdc2xA5tF5F2q6t7Rcfab68TT0n+r7dgawD4qhPEvasDsVpQi+MgDzj2faOLsZjA==", "cpu": [ "arm" ], - "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", - "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.20.0.tgz", + "integrity": "sha512-1asSTl4HKuIHIB1GcdFHNNZhxAYEdqML/MW4QmPS4G0ivbEcBr1JKlFLKsIRqjSwOBkdItn3/ZDlyvZ/N6KPlw==", "cpu": [ "arm" ], - "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", - "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.20.0.tgz", + "integrity": "sha512-COBb8Bkx56KldOYJfMf6wKeYJrtJ9vEgBRAOkfw6Ens0tnmzPqvlpjZiLgkhg6cA3DGzCmLmmd319pmHvKWWlQ==", "cpu": [ "arm64" ], - "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", - "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.20.0.tgz", + "integrity": "sha512-+it+mBSyMslVQa8wSPvBx53fYuZK/oLTu5RJoXogjk6x7Q7sz1GNRsXWjn6SwyJm8E/oMjNVwPhmNdIjwP135Q==", "cpu": [ "arm64" ], - "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", - "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.20.0.tgz", + "integrity": "sha512-yAMvqhPfGKsAxHN8I4+jE0CpLWD8cv4z7CK7BMmhjDuz606Q2tFKkWRY8bHR9JQXYcoLfopo5TTqzxgPUjUMfw==", "cpu": [ "ppc64" ], - "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", - "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.20.0.tgz", + "integrity": "sha512-qmuxFpfmi/2SUkAw95TtNq/w/I7Gpjurx609OOOV7U4vhvUhBcftcmXwl3rqAek+ADBwSjIC4IVNLiszoj3dPA==", "cpu": [ "riscv64" ], - "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", - "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.20.0.tgz", + "integrity": "sha512-I0BtGXddHSHjV1mqTNkgUZLnS3WtsqebAXv11D5BZE/gfw5KoyXSAXVqyJximQXNvNzUo4GKlCK/dIwXlz+jlg==", "cpu": [ "s390x" ], - "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", - "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.20.0.tgz", + "integrity": "sha512-y+eoL2I3iphUg9tN9GB6ku1FA8kOfmF4oUEWhztDJ4KXJy1agk/9+pejOuZkNFhRwHAOxMsBPLbXPd6mJiCwew==", "cpu": [ "x64" ], - "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", - "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.20.0.tgz", + "integrity": "sha512-hM3nhW40kBNYUkZb/r9k2FKK+/MnKglX7UYd4ZUy5DJs8/sMsIbqWK2piZtVGE3kcXVNj3B2IrUYROJMMCikNg==", "cpu": [ "x64" ], - "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", - "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.20.0.tgz", + "integrity": "sha512-psegMvP+Ik/Bg7QRJbv8w8PAytPA7Uo8fpFjXyCRHWm6Nt42L+JtoqH8eDQ5hRP7/XW2UiIriy1Z46jf0Oa1kA==", "cpu": [ "arm64" ], - "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", - "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.20.0.tgz", + "integrity": "sha512-GabekH3w4lgAJpVxkk7hUzUf2hICSQO0a/BLFA11/RMxQT92MabKAqyubzDZmMOC/hcJNlc+rrypzNzYl4Dx7A==", "cpu": [ "ia32" ], - "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", - "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.20.0.tgz", + "integrity": "sha512-aJ1EJSuTdGnM6qbVC4B5DSmozPTqIag9fSzXRNNo+humQLG89XpPgdt16Ia56ORD7s+H8Pmyx44uczDQ0yDzpg==", "cpu": [ "x64" ], - "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" ] }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true, - "license": "MIT" - }, "node_modules/@ts-common/azure-js-dev-tools": { - "version": "21.1.0", - "resolved": "https://registry.npmjs.org/@ts-common/azure-js-dev-tools/-/azure-js-dev-tools-21.1.0.tgz", - "integrity": "sha512-SdH0oYXDn4Y1zc5x7ldwAn3M/K2MG/wbkivFkvLBlFG4qT3o1S9Ob+IloUDwgF7s58AWP1G7iUO03U7MFEMsrw==", + "version": "21.4.0", + "license": "MIT", "dependencies": { "@azure/logger-js": "^1.3.2", "@azure/storage-blob": "^10.3.0", - "@octokit/rest": "~15.16.1", + "@octokit/rest": "^16.28.2", "@types/archiver": "^2.1.2", "@types/commonmark": "^0.27.1", "@types/js-yaml": "^3.12.0", @@ -915,10 +951,16 @@ "yargs": "^12.0.5" } }, + "node_modules/@ts-common/azure-js-dev-tools/node_modules/argparse": { + "version": "1.0.10", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, "node_modules/@ts-common/azure-js-dev-tools/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==", + "license": "MIT", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -928,114 +970,110 @@ } }, "node_modules/@ts-morph/common": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.11.1.tgz", - "integrity": "sha512-7hWZS0NRpEsNV8vWJzg7FEz6V8MaLNeJOmwmghqUXTpzk16V1LLZhdo+4QvE/+zv4cVci0OviuJFnqhEfoV3+g==", + "version": "0.24.0", + "license": "MIT", "dependencies": { - "fast-glob": "^3.2.7", - "minimatch": "^3.0.4", - "mkdirp": "^1.0.4", + "fast-glob": "^3.3.2", + "minimatch": "^9.0.4", + "mkdirp": "^3.0.1", "path-browserify": "^1.0.1" } }, - "node_modules/@tsconfig/node10": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", - "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", - "dev": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true + "node_modules/@ts-morph/common/node_modules/brace-expansion": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true + "node_modules/@ts-morph/common/node_modules/minimatch": { + "version": "9.0.5", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, "node_modules/@types/archiver": { "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@types/archiver/-/archiver-2.1.3.tgz", - "integrity": "sha512-x37dj6VvV8jArjvqvZP+qz5+24qOwgFesLMvn98uNz8qebjCg+uteqquRf9mqaxxhcM7S1vPl4YFhBs2/abcFQ==", + "license": "MIT", "dependencies": { "@types/glob": "*" } }, "node_modules/@types/async-retry": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/@types/async-retry/-/async-retry-1.4.5.tgz", - "integrity": "sha512-YrdjSD+yQv7h6d5Ip+PMxh3H6ZxKyQk0Ts+PvaNRInxneG9PFVZjFg77ILAN+N6qYf7g4giSJ1l+ZjQ1zeegvA==", + "version": "1.4.8", + "license": "MIT", "dependencies": { "@types/retry": "*" } }, "node_modules/@types/commonmark": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@types/commonmark/-/commonmark-0.27.5.tgz", - "integrity": "sha512-vIqgmHyLsc8Or3EWLz6QkhI8/v61FNeH0yxRupA7VqSbA2eFMoHHJAhZSHudplAV89wqg1CKSmShE016ziRXuw==" + "version": "0.27.9", + "license": "MIT" }, "node_modules/@types/estree": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/glob": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==", + "license": "MIT", "dependencies": { "@types/minimatch": "^5.1.2", "@types/node": "*" } }, "node_modules/@types/js-yaml": { - "version": "3.12.7", - "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-3.12.7.tgz", - "integrity": "sha512-S6+8JAYTE1qdsc9HMVsfY7+SgSuUU/Tp6TYTmITW0PZxiyIMvol3Gy//y69Wkhs0ti4py5qgR3uZH6uz/DNzJQ==" + "version": "3.12.10", + "license": "MIT" }, "node_modules/@types/minimatch": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==" + "license": "MIT" }, "node_modules/@types/node": { - "version": "20.12.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz", - "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", + "version": "20.14.15", + "license": "MIT", "dependencies": { "undici-types": "~5.26.4" } }, "node_modules/@types/node-fetch": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz", - "integrity": "sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==", + "version": "2.6.11", + "license": "MIT", "dependencies": { "@types/node": "*", - "form-data": "^3.0.0" + "form-data": "^4.0.0" + } + }, + "node_modules/@types/node-fetch/node_modules/form-data": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" } }, "node_modules/@types/retry": { - "version": "0.12.2", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", - "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==" + "version": "0.12.5", + "license": "MIT" }, "node_modules/@types/shelljs": { "version": "0.8.15", - "resolved": "https://registry.npmjs.org/@types/shelljs/-/shelljs-0.8.15.tgz", - "integrity": "sha512-vzmnCHl6hViPu9GNLQJ+DZFd6BQI2DBTUeOvYHqkWQLMfKAAQYMb/xAmZkTogZI/vqXHCWkqDRymDI5p0QTi5Q==", "dev": true, + "license": "MIT", "dependencies": { "@types/glob": "~7.2.0", "@types/node": "*" @@ -1043,206 +1081,301 @@ }, "node_modules/@types/shelljs/node_modules/@types/glob": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", "dev": true, + "license": "MIT", "dependencies": { "@types/minimatch": "*", "@types/node": "*" } }, - "node_modules/@vitest/expect": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.6.0.tgz", - "integrity": "sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==", - "dev": true, + "node_modules/@types/triple-beam": { + "version": "1.3.5", + "license": "MIT" + }, + "node_modules/@types/unixify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/unixify/-/unixify-1.0.2.tgz", + "integrity": "sha512-N2N0V5iOmxAWdVyiTWLBvLDYTPXSMzIXjxybr9sKwwr4ybFZ+JYc33yoAxnA1RvOVolNG3Fce0WXwiMcDaPh+w==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "7.18.0", "license": "MIT", "dependencies": { - "@vitest/spy": "1.6.0", - "@vitest/utils": "1.6.0", - "chai": "^4.3.10" + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/type-utils": "7.18.0", + "@typescript-eslint/utils": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" }, "funding": { - "url": "https://opencollective.com/vitest" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@vitest/expect/node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true, + "node_modules/@typescript-eslint/parser": { + "version": "7.18.0", + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/typescript-estree": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "7.18.0", "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0" + }, "engines": { - "node": "*" + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@vitest/expect/node_modules/chai": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", - "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", - "dev": true, + "node_modules/@typescript-eslint/type-utils": { + "version": "7.18.0", "license": "MIT", "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.3", - "deep-eql": "^4.1.3", - "get-func-name": "^2.0.2", - "loupe": "^2.3.6", - "pathval": "^1.1.1", - "type-detect": "^4.0.8" + "@typescript-eslint/typescript-estree": "7.18.0", + "@typescript-eslint/utils": "7.18.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": ">=4" + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@vitest/expect/node_modules/check-error": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", - "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", - "dev": true, + "node_modules/@typescript-eslint/types": { + "version": "7.18.0", "license": "MIT", + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "7.18.0", + "license": "BSD-2-Clause", "dependencies": { - "get-func-name": "^2.0.2" + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "*" + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@vitest/expect/node_modules/deep-eql": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz", - "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==", - "dev": true, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", "license": "MIT", "dependencies": { - "type-detect": "^4.0.0" + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=6" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@vitest/expect/node_modules/loupe": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", - "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", - "dev": true, + "node_modules/@typescript-eslint/utils": { + "version": "7.18.0", "license": "MIT", "dependencies": { - "get-func-name": "^2.0.1" + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/typescript-estree": "7.18.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" } }, - "node_modules/@vitest/expect/node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "dev": true, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "7.18.0", "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "7.18.0", + "eslint-visitor-keys": "^3.4.3" + }, "engines": { - "node": "*" + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@vitest/runner": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.6.0.tgz", - "integrity": "sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==", + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "license": "ISC", + "peer": true + }, + "node_modules/@vitest/expect": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.0.5.tgz", + "integrity": "sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA==", "dev": true, - "license": "MIT", "dependencies": { - "@vitest/utils": "1.6.0", - "p-limit": "^5.0.0", - "pathe": "^1.1.1" + "@vitest/spy": "2.0.5", + "@vitest/utils": "2.0.5", + "chai": "^5.1.1", + "tinyrainbow": "^1.2.0" }, "funding": { "url": "https://opencollective.com/vitest" } }, - "node_modules/@vitest/runner/node_modules/p-limit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz", - "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==", + "node_modules/@vitest/pretty-format": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.0.5.tgz", + "integrity": "sha512-h8k+1oWHfwTkyTkb9egzwNMfJAEx4veaPSnMeKbVSjp4euqGSbQlm5+6VHwTr7u4FJslVVsUG5nopCaAYdOmSQ==", "dev": true, - "license": "MIT", "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": ">=18" + "tinyrainbow": "^1.2.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://opencollective.com/vitest" } }, - "node_modules/@vitest/runner/node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "node_modules/@vitest/runner": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.0.5.tgz", + "integrity": "sha512-TfRfZa6Bkk9ky4tW0z20WKXFEwwvWhRY+84CnSEtq4+3ZvDlJyY32oNTJtM7AW9ihW90tX/1Q78cb6FjoAs+ig==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.20" + "dependencies": { + "@vitest/utils": "2.0.5", + "pathe": "^1.1.2" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://opencollective.com/vitest" } }, "node_modules/@vitest/snapshot": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.6.0.tgz", - "integrity": "sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.0.5.tgz", + "integrity": "sha512-SgCPUeDFLaM0mIUHfaArq8fD2WbaXG/zVXjRupthYfYGzc8ztbFbu6dUNOblBG7XLMR1kEhS/DNnfCZ2IhdDew==", "dev": true, - "license": "MIT", "dependencies": { - "magic-string": "^0.30.5", - "pathe": "^1.1.1", - "pretty-format": "^29.7.0" + "@vitest/pretty-format": "2.0.5", + "magic-string": "^0.30.10", + "pathe": "^1.1.2" }, "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/@vitest/spy": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.6.0.tgz", - "integrity": "sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.0.5.tgz", + "integrity": "sha512-c/jdthAhvJdpfVuaexSrnawxZz6pywlTPe84LUB2m/4t3rl2fTo9NFGBG4oWgaD+FTgDDV8hJ/nibT7IfH3JfA==", "dev": true, - "license": "MIT", "dependencies": { - "tinyspy": "^2.2.0" + "tinyspy": "^3.0.0" }, "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/@vitest/utils": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.6.0.tgz", - "integrity": "sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.0.5.tgz", + "integrity": "sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ==", "dev": true, - "license": "MIT", "dependencies": { - "diff-sequences": "^29.6.3", + "@vitest/pretty-format": "2.0.5", "estree-walker": "^3.0.3", - "loupe": "^2.3.7", - "pretty-format": "^29.7.0" + "loupe": "^3.1.1", + "tinyrainbow": "^1.2.0" }, "funding": { "url": "https://opencollective.com/vitest" } }, - "node_modules/@vitest/utils/node_modules/loupe": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", - "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-func-name": "^2.0.1" - } - }, "node_modules/abort-controller": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "license": "MIT", "dependencies": { "event-target-shim": "^5.0.0" }, @@ -1251,10 +1384,9 @@ } }, "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", - "dev": true, + "version": "8.12.1", + "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -1262,51 +1394,39 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-walk": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", - "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", - "dev": true, - "engines": { - "node": ">=0.4.0" + "node_modules/acorn-jsx": { + "version": "5.3.2", + "license": "MIT", + "peer": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/agent-base": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", - "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "node_modules/ajv": { + "version": "6.12.6", + "license": "MIT", + "peer": true, "dependencies": { - "es6-promisify": "^5.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": ">= 4.0.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, "node_modules/ansi-regex": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "license": "MIT", "engines": { "node": ">=4" } }, - "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, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/archiver": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-3.1.1.tgz", - "integrity": "sha512-5Hxxcig7gw5Jod/8Gq0OneVgLYET+oNHcxgWItq4TbhOzRLKNAFUb9edAftiMKXvXfCB0vbGrJdZDNq0dWMsxg==", + "license": "MIT", "dependencies": { "archiver-utils": "^2.1.0", "async": "^2.6.3", @@ -1322,8 +1442,7 @@ }, "node_modules/archiver-utils": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", - "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", + "license": "MIT", "dependencies": { "glob": "^7.1.4", "graceful-fs": "^4.2.0", @@ -1340,10 +1459,29 @@ "node": ">= 6" } }, + "node_modules/archiver-utils/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", + "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/archiver-utils/node_modules/readable-stream": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -1356,104 +1494,116 @@ }, "node_modules/archiver-utils/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==" + "license": "MIT" }, "node_modules/archiver-utils/node_modules/string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } }, - "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": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "node_modules/archiver/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", "dependencies": { - "sprintf-js": "~1.0.2" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/argparse": { + "version": "2.0.1", + "license": "Python-2.0" + }, "node_modules/array-back": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/array-timsort": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-timsort/-/array-timsort-1.0.3.tgz", - "integrity": "sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==" + "license": "MIT" + }, + "node_modules/array-union": { + "version": "2.1.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "engines": { + "node": ">=12" + } }, "node_modules/async": { "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "license": "MIT", "dependencies": { "lodash": "^4.17.14" } }, "node_modules/async-lock": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/async-lock/-/async-lock-1.4.1.tgz", - "integrity": "sha512-Az2ZTpuytrtqENulXwO3GGv1Bztugx6TT37NIo7imr/Qo0gsYiGtSdBa2B6fsXhTpVZDNfu1Qn3pk531e3q+nQ==" + "license": "MIT" }, "node_modules/async-retry": { "version": "1.3.3", - "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", - "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", + "license": "MIT", "dependencies": { "retry": "0.13.1" } }, "node_modules/asynckit": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + "license": "MIT" + }, + "node_modules/atob-lite": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/atomic-sleep": { + "version": "1.0.0", + "license": "MIT", + "engines": { + "node": ">=8.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==" + "license": "MIT" }, "node_modules/base64-js": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.2.tgz", - "integrity": "sha512-Pj9L87dCdGcKlSqPVUjD+q96pbIx1zQQLb2CUiWURfjiBELv84YX+0nGnKmyT/9KkC7PQk7UN1w+Al8bBozaxQ==", "engines": { "node": ">= 0.4" } }, "node_modules/before-after-hook": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-1.4.0.tgz", - "integrity": "sha512-l5r9ir56nda3qu14nAXIlyq1MmUSs0meCIaFAh8HwkFwP1F8eToOuS3ah2VAHHcY04jaYD7FpJC5JTXHYRbkzg==" - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "version": "2.2.3", + "license": "Apache-2.0" }, "node_modules/bl": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "license": "MIT", "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", @@ -1462,8 +1612,7 @@ }, "node_modules/bops": { "version": "0.0.7", - "resolved": "https://registry.npmjs.org/bops/-/bops-0.0.7.tgz", - "integrity": "sha512-oF8JFj2vZoTTzbS4haaB/37vqoJbZXxPBWmNdFONu3dUBW+zp7JcoIIYYd1r+4/YwFM8QUSR1u4rrPbtcdHsRg==", + "license": "MIT", "dependencies": { "base64-js": "0.0.2", "to-utf8": "0.0.1" @@ -1471,8 +1620,7 @@ }, "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==", + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1480,8 +1628,7 @@ }, "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==", + "license": "MIT", "dependencies": { "fill-range": "^7.1.1" }, @@ -1491,13 +1638,10 @@ }, "node_modules/btoa-lite": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", - "integrity": "sha512-gvW7InbIyF8AicrqWoptdW08pUxuhq8BEgowNajy9RhiE86fmGAGl+bLKo6oB8QP0CkqHLowfN0oJdKC/J6LbA==" + "license": "MIT" }, "node_modules/buffer": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "funding": [ { "type": "github", @@ -1512,6 +1656,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -1519,16 +1664,13 @@ }, "node_modules/buffer-crc32": { "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "license": "MIT", "engines": { "node": "*" } }, "node_modules/buffer/node_modules/base64-js": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "funding": [ { "type": "github", @@ -1542,59 +1684,110 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/cac": { "version": "6.7.14", "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, + "node_modules/callsites": { + "version": "3.1.0", + "license": "MIT", + "peer": 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==", + "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "node_modules/chai": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.1.tgz", + "integrity": "sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==", "dev": true, "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" }, "engines": { - "node": ">= 8.10.0" + "node": ">=12" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" }, "funding": { - "url": "https://paulmillr.com/funding/" + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" }, - "optionalDependencies": { - "fsevents": "~2.3.2" + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/chalk/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/chalk/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT", + "peer": true + }, + "node_modules/check-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", + "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", + "dev": true, + "engines": { + "node": ">= 16" } }, "node_modules/clean-git-ref": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clean-git-ref/-/clean-git-ref-1.0.3.tgz", - "integrity": "sha512-Bw1gv1mXHgdB/6ssP++8NtUHm+vbg60Lb+yAX5copA8wjNOgiyFCA+PzrO3a4O+7AkrDql2q1DO8Hx5G+gtPiA==" + "license": "Apache-2.0" }, "node_modules/cliui": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "license": "ISC", "dependencies": { "string-width": "^2.1.1", "strip-ansi": "^4.0.0", @@ -1602,30 +1795,65 @@ } }, "node_modules/code-block-writer": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-10.1.1.tgz", - "integrity": "sha512-67ueh2IRGst/51p0n6FvPrnRjAGHY5F8xdjkgrYE7DDzpJe6qA07RYQ9VcoUeo5ATOjSOiWpSL3SWBRRbempMw==" + "version": "13.0.2", + "license": "MIT" }, "node_modules/code-point-at": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, + "node_modules/color": { + "version": "3.2.1", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.3", + "color-string": "^1.6.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "license": "MIT" + }, + "node_modules/color-string": { + "version": "1.9.1", + "license": "MIT", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/colorette": { + "version": "2.0.20", + "license": "MIT" + }, "node_modules/colors": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "license": "MIT", "engines": { "node": ">=0.1.90" } }, + "node_modules/colorspace": { + "version": "1.1.4", + "license": "MIT", + "dependencies": { + "color": "^3.1.3", + "text-hex": "1.0.x" + } + }, "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==", + "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" }, @@ -1635,8 +1863,7 @@ }, "node_modules/command-line-args": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", - "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", + "license": "MIT", "dependencies": { "array-back": "^3.1.0", "find-replace": "^3.0.0", @@ -1647,10 +1874,16 @@ "node": ">=4.0.0" } }, + "node_modules/commander": { + "version": "12.1.0", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/comment-json": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.3.tgz", - "integrity": "sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==", + "version": "4.2.5", + "license": "MIT", "dependencies": { "array-timsort": "^1.0.3", "core-util-is": "^1.0.3", @@ -1664,8 +1897,7 @@ }, "node_modules/commonmark": { "version": "0.28.1", - "resolved": "https://registry.npmjs.org/commonmark/-/commonmark-0.28.1.tgz", - "integrity": "sha512-PklsZ9pgrfFQ5hQH9BRzoWnqI9db2LeR9MhvkNk8iz97kfaTNmhTU+IE8jKDHTEfivZZXoFqzGqzddXdk14EJw==", + "license": "BSD-2-Clause", "dependencies": { "entities": "~ 1.1.1", "mdurl": "~ 1.0.1", @@ -1681,8 +1913,7 @@ }, "node_modules/compress-commons": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-2.1.1.tgz", - "integrity": "sha512-eVw6n7CnEMFzc3duyFVrQEuY1BlHR3rYsSztyG32ibGMW722i3C6IizEGMFmfMU+A+fALvBIwxN3czffTcdA+Q==", + "license": "MIT", "dependencies": { "buffer-crc32": "^0.2.13", "crc32-stream": "^3.0.1", @@ -1695,8 +1926,7 @@ }, "node_modules/compress-commons/node_modules/readable-stream": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -1709,46 +1939,33 @@ }, "node_modules/compress-commons/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==" + "license": "MIT" }, "node_modules/compress-commons/node_modules/string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } }, "node_modules/concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "node_modules/confbox": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.7.tgz", - "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==", - "dev": true, "license": "MIT" }, "node_modules/core-util-is": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + "license": "MIT" }, "node_modules/crc": { "version": "3.8.0", - "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz", - "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", + "license": "MIT", "dependencies": { "buffer": "^5.1.0" } }, "node_modules/crc-32": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "license": "Apache-2.0", "bin": { "crc32": "bin/crc32.njs" }, @@ -1758,8 +1975,7 @@ }, "node_modules/crc32-stream": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-3.0.1.tgz", - "integrity": "sha512-mctvpXlbzsvK+6z8kJwSJ5crm7yBwrQMTybJzMw1O4lLGJqjlDCXY2Zw7KheiA6XBEcBmfLx1D88mjRGVJtY9w==", + "license": "MIT", "dependencies": { "crc": "^3.4.4", "readable-stream": "^3.4.0" @@ -1768,39 +1984,28 @@ "node": ">= 6.9.0" } }, - "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-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "version": "7.0.3", + "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" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, "engines": { - "node": ">=4.8" + "node": ">= 8" } }, - "node_modules/cross-spawn/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "bin": { - "semver": "bin/semver" + "node_modules/dateformat": { + "version": "4.6.3", + "license": "MIT", + "engines": { + "node": "*" } }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.6", + "license": "MIT", "dependencies": { "ms": "2.1.2" }, @@ -1815,16 +2020,14 @@ }, "node_modules/decamelize": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/decompress-response": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", - "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", + "license": "MIT", "dependencies": { "mimic-response": "^2.0.0" }, @@ -1832,79 +2035,91 @@ "node": ">=8" } }, + "node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "license": "MIT", + "peer": true + }, "node_modules/delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", "engines": { "node": ">=0.4.0" } }, + "node_modules/deprecation": { + "version": "2.3.1", + "license": "ISC" + }, "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, + "version": "3.5.0", + "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } }, "node_modules/diff-lines": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/diff-lines/-/diff-lines-1.1.1.tgz", - "integrity": "sha512-Oo5JzEEriF/+T0usOeRP5yOzr6SWvni2rrxvIgijMZSxPcEvf8JOvCO5GpnWwkte7fcOgnue/f5ECg1H9lMPCw==", + "license": "MIT", "dependencies": { "diff": "^3.5.0" } }, - "node_modules/diff-lines/node_modules/diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "node_modules/dir-glob": { + "version": "3.0.1", + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, "engines": { - "node": ">=0.3.1" + "node": ">=8" } }, - "node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", - "dev": true, - "license": "MIT", + "node_modules/doctrine": { + "version": "3.0.0", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "esutils": "^2.0.2" + }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6.0.0" } }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "license": "MIT" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "license": "MIT" + }, + "node_modules/enabled": { + "version": "2.0.0", + "license": "MIT" + }, "node_modules/end-of-stream": { "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "license": "MIT", "dependencies": { "once": "^1.4.0" } }, "node_modules/entities": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" - }, - "node_modules/es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" - }, - "node_modules/es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==", - "dependencies": { - "es6-promise": "^4.0.3" - } + "license": "BSD-2-Clause" }, "node_modules/esbuild": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", - "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "version": "0.23.0", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -1912,93 +2127,353 @@ "esbuild": "bin/esbuild" }, "engines": { - "node": ">=12" + "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.20.2", - "@esbuild/android-arm": "0.20.2", - "@esbuild/android-arm64": "0.20.2", - "@esbuild/android-x64": "0.20.2", - "@esbuild/darwin-arm64": "0.20.2", - "@esbuild/darwin-x64": "0.20.2", - "@esbuild/freebsd-arm64": "0.20.2", - "@esbuild/freebsd-x64": "0.20.2", - "@esbuild/linux-arm": "0.20.2", - "@esbuild/linux-arm64": "0.20.2", - "@esbuild/linux-ia32": "0.20.2", - "@esbuild/linux-loong64": "0.20.2", - "@esbuild/linux-mips64el": "0.20.2", - "@esbuild/linux-ppc64": "0.20.2", - "@esbuild/linux-riscv64": "0.20.2", - "@esbuild/linux-s390x": "0.20.2", - "@esbuild/linux-x64": "0.20.2", - "@esbuild/netbsd-x64": "0.20.2", - "@esbuild/openbsd-x64": "0.20.2", - "@esbuild/sunos-x64": "0.20.2", - "@esbuild/win32-arm64": "0.20.2", - "@esbuild/win32-ia32": "0.20.2", - "@esbuild/win32-x64": "0.20.2" + "@esbuild/aix-ppc64": "0.23.0", + "@esbuild/android-arm": "0.23.0", + "@esbuild/android-arm64": "0.23.0", + "@esbuild/android-x64": "0.23.0", + "@esbuild/darwin-arm64": "0.23.0", + "@esbuild/darwin-x64": "0.23.0", + "@esbuild/freebsd-arm64": "0.23.0", + "@esbuild/freebsd-x64": "0.23.0", + "@esbuild/linux-arm": "0.23.0", + "@esbuild/linux-arm64": "0.23.0", + "@esbuild/linux-ia32": "0.23.0", + "@esbuild/linux-loong64": "0.23.0", + "@esbuild/linux-mips64el": "0.23.0", + "@esbuild/linux-ppc64": "0.23.0", + "@esbuild/linux-riscv64": "0.23.0", + "@esbuild/linux-s390x": "0.23.0", + "@esbuild/linux-x64": "0.23.0", + "@esbuild/netbsd-x64": "0.23.0", + "@esbuild/openbsd-arm64": "0.23.0", + "@esbuild/openbsd-x64": "0.23.0", + "@esbuild/sunos-x64": "0.23.0", + "@esbuild/win32-arm64": "0.23.0", + "@esbuild/win32-ia32": "0.23.0", + "@esbuild/win32-x64": "0.23.0" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "node_modules/eslint": { + "version": "8.57.0", + "license": "MIT", + "peer": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" + "eslint": "bin/eslint.js" }, "engines": { - "node": ">=4" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/estree-walker": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", - "dev": true, - "license": "MIT", + "node_modules/eslint-scope": { + "version": "7.2.2", + "license": "BSD-2-Clause", + "peer": true, "dependencies": { - "@types/estree": "^1.0.0" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ansi-regex": { + "version": "5.0.1", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "license": "MIT", + "peer": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "license": "ISC", + "peer": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "license": "MIT", + "peer": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-limit": { + "version": "3.1.0", + "license": "MIT", + "peer": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "license": "MIT", + "peer": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/path-exists": { + "version": "4.0.0", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/strip-ansi": { + "version": "6.0.1", + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/yocto-queue": { + "version": "0.1.0", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "license": "BSD-2-Clause", + "peer": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "license": "BSD-2-Clause", + "peer": true, + "engines": { + "node": ">=0.10.0" } }, "node_modules/event-target-shim": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/events": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", "engines": { "node": ">=0.8.x" } }, "node_modules/execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "version": "8.0.1", + "dev": true, + "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" + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" }, "engines": { - "node": ">=6" + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, + "node_modules/fast-copy": { + "version": "3.0.2", + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "license": "MIT", + "peer": true + }, "node_modules/fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "version": "3.3.2", + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -2010,18 +2485,52 @@ "node": ">=8.6.0" } }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "license": "MIT", + "peer": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "license": "MIT", + "peer": true + }, + "node_modules/fast-redact": { + "version": "3.5.0", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "license": "MIT" + }, "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "version": "1.17.1", + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } }, + "node_modules/fecha": { + "version": "4.2.3", + "license": "MIT" + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "license": "MIT", + "peer": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, "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==", + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -2031,8 +2540,7 @@ }, "node_modules/find-replace": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", - "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", + "license": "MIT", "dependencies": { "array-back": "^3.0.1" }, @@ -2042,8 +2550,7 @@ }, "node_modules/find-up": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "license": "MIT", "dependencies": { "locate-path": "^3.0.0" }, @@ -2051,31 +2558,71 @@ "node": ">=6" } }, + "node_modules/flat-cache": { + "version": "3.2.0", + "license": "MIT", + "peer": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "license": "ISC", + "peer": true + }, + "node_modules/fn.name": { + "version": "1.1.0", + "license": "MIT" + }, + "node_modules/foreground-child": { + "version": "3.3.0", + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "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==", + "version": "2.5.1", + "license": "MIT", "dependencies": { "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", + "combined-stream": "^1.0.6", "mime-types": "^2.1.12" }, "engines": { - "node": ">= 6" + "node": ">= 0.12" } }, "node_modules/front-matter": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/front-matter/-/front-matter-4.0.2.tgz", - "integrity": "sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==", + "license": "MIT", "dependencies": { "js-yaml": "^3.13.1" } }, + "node_modules/front-matter/node_modules/argparse": { + "version": "1.0.10", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, "node_modules/front-matter/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==", + "license": "MIT", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -2086,13 +2633,11 @@ }, "node_modules/fs-constants": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + "license": "MIT" }, "node_modules/fs-extra": { "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -2107,74 +2652,73 @@ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, - "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, - "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==" + "version": "1.1.2", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/get-caller-file": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" + "license": "ISC" }, "node_modules/get-func-name": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", "dev": true, - "license": "MIT", "engines": { "node": "*" } }, "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==", - "dependencies": { - "pump": "^3.0.0" - }, + "version": "8.0.1", + "dev": true, + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-tsconfig": { + "version": "4.7.6", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" } }, "node_modules/git-apply-delta": { "version": "0.0.7", - "resolved": "https://registry.npmjs.org/git-apply-delta/-/git-apply-delta-0.0.7.tgz", - "integrity": "sha512-P99rChCrhraaY7D6E4NUotfhjzRRNvlf3Mumw9BHgOJFQTfYHhTwAgSTEtcBvb25iXttvMRLEHtzyz9mE2gLjQ==", + "license": "MIT", "dependencies": { "bops": "~0.0.6", "varint": "0.0.3" } }, "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", + "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", "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" + "foreground-child": "^3.1.0", + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" + }, + "bin": { + "glob": "dist/esm/bin.mjs" }, "engines": { - "node": "*" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -2182,8 +2726,7 @@ }, "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==", + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -2191,98 +2734,107 @@ "node": ">= 6" } }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "license": "MIT", + "peer": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/globalyzer": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.4.tgz", - "integrity": "sha512-LeguVWaxgHN0MNbWC6YljNMzHkrCny9fzjmEUdnF1kQ7wATFD1RHFRqA1qxaX2tgxGENlcxjOflopBwj3YZiXA==" + "license": "MIT" + }, + "node_modules/globby": { + "version": "11.1.0", + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/globrex": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", - "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==" + "license": "MIT" }, "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==" + "license": "ISC" }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } + "node_modules/graphemer": { + "version": "1.4.0", + "license": "MIT" }, "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, + "version": "4.0.0", + "license": "MIT", + "peer": true, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/has-own-prop": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-own-prop/-/has-own-prop-2.0.0.tgz", - "integrity": "sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==", + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/http-proxy-agent": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", - "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", - "dependencies": { - "agent-base": "4", - "debug": "3.1.0" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/http-proxy-agent/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/http-proxy-agent/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/https-proxy-agent": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", - "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "node_modules/hasown": { + "version": "2.0.2", + "license": "MIT", "dependencies": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" + "function-bind": "^1.1.2" }, "engines": { - "node": ">= 4.5.0" + "node": ">= 0.4" } }, - "node_modules/https-proxy-agent/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dependencies": { - "ms": "^2.1.1" - } + "node_modules/help-me": { + "version": "5.0.0", + "license": "MIT" }, "node_modules/human-signals": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", "dev": true, "license": "Apache-2.0", "engines": { @@ -2291,8 +2843,6 @@ }, "node_modules/ieee754": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "funding": [ { "type": "github", @@ -2306,26 +2856,44 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "BSD-3-Clause" }, "node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "version": "5.3.2", + "license": "MIT", "engines": { "node": ">= 4" } }, - "node_modules/ignore-by-default": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", - "dev": true + "node_modules/import-fresh": { + "version": "3.3.0", + "license": "MIT", + "peer": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.8.19" + } }, "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.", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -2333,43 +2901,34 @@ }, "node_modules/inherits": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "license": "ISC" }, "node_modules/interpret": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "license": "MIT", "engines": { "node": ">= 0.10" } }, "node_modules/invert-kv": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "license": "MIT", "engines": { "node": ">=4" } }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } + "node_modules/is-arrayish": { + "version": "0.3.2", + "license": "MIT" }, "node_modules/is-core-module": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", - "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "version": "2.15.0", + "license": "MIT", "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2377,24 +2936,21 @@ }, "node_modules/is-extglob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-fullwidth-code-point": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "license": "MIT", "engines": { "node": ">=4" } }, "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==", + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -2404,34 +2960,48 @@ }, "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==", + "license": "MIT", "engines": { "node": ">=0.12.0" } }, - "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==", + "node_modules/is-path-inside": { + "version": "3.0.3", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, + "node_modules/is-stream": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "license": "MIT" }, "node_modules/isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + "license": "ISC" }, "node_modules/isomorphic-git": { "version": "0.55.6", - "resolved": "https://registry.npmjs.org/isomorphic-git/-/isomorphic-git-0.55.6.tgz", - "integrity": "sha512-A4ygiDCsMIuWknMgviK73IzdPW7HjOC57IBVY/QyC1bwMrXG+clfdBjqA3SpzxBRIxkRA9GvbkrjAjFX6n6ZbQ==", + "license": "MIT", "dependencies": { "async-lock": "^1.1.0", "clean-git-ref": "1.0.3", @@ -2456,17 +3026,32 @@ "node": ">=7.6.0" } }, - "node_modules/js-tokens": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.0.tgz", - "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==", - "dev": true, - "license": "MIT" + "node_modules/jackspeak": { + "version": "4.0.1", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/joycon": { + "version": "3.1.1", + "license": "MIT", + "engines": { + "node": ">=10" + } }, "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" }, @@ -2474,15 +3059,24 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/js-yaml/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/json-buffer": { + "version": "3.0.1", + "license": "MIT", + "peer": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "license": "MIT", + "peer": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "license": "MIT", + "peer": true }, "node_modules/jsonfile": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -2490,10 +3084,21 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/keyv": { + "version": "4.5.4", + "license": "MIT", + "peer": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kuler": { + "version": "2.0.0", + "license": "MIT" + }, "node_modules/lazystream": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", - "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "license": "MIT", "dependencies": { "readable-stream": "^2.0.5" }, @@ -2503,8 +3108,7 @@ }, "node_modules/lazystream/node_modules/readable-stream": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -2517,21 +3121,18 @@ }, "node_modules/lazystream/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==" + "license": "MIT" }, "node_modules/lazystream/node_modules/string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } }, "node_modules/lcid": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "license": "MIT", "dependencies": { "invert-kv": "^2.0.0" }, @@ -2539,27 +3140,21 @@ "node": ">=6" } }, - "node_modules/local-pkg": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz", - "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", - "dev": true, + "node_modules/levn": { + "version": "0.4.1", "license": "MIT", + "peer": true, "dependencies": { - "mlly": "^1.4.2", - "pkg-types": "^1.0.3" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" }, "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" + "node": ">= 0.8.0" } }, "node_modules/locate-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "license": "MIT", "dependencies": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" @@ -2570,48 +3165,87 @@ }, "node_modules/lodash": { "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "license": "MIT" }, "node_modules/lodash-es": { "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + "license": "MIT" }, "node_modules/lodash.camelcase": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" + "license": "MIT" }, "node_modules/lodash.defaults": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==" + "license": "MIT" }, "node_modules/lodash.difference": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==" + "license": "MIT" }, "node_modules/lodash.flatten": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==" + "license": "MIT" + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "license": "MIT" }, "node_modules/lodash.isplainobject": { "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "license": "MIT", + "peer": true + }, + "node_modules/lodash.set": { + "version": "4.3.2", + "license": "MIT" }, "node_modules/lodash.union": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==" + "license": "MIT" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "license": "MIT" + }, + "node_modules/logform": { + "version": "2.6.1", + "license": "MIT", + "dependencies": { + "@colors/colors": "1.6.0", + "@types/triple-beam": "^1.3.2", + "fecha": "^4.2.0", + "ms": "^2.1.1", + "safe-stable-stringify": "^2.3.1", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/loupe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.1.tgz", + "integrity": "sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.1" + } + }, + "node_modules/lru-cache": { + "version": "11.0.0", + "license": "ISC", + "engines": { + "node": "20 || >=22" + } }, "node_modules/macos-release": { "version": "2.5.1", - "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.5.1.tgz", - "integrity": "sha512-DXqXhEM7gW59OjZO8NIjBCz9AQ1BEMrfiOAl4AYByHCtVHRF4KoGNO8mqQeM8lRCtQe/UnJ4imO/d2HdkKsd+A==", + "license": "MIT", "engines": { "node": ">=6" }, @@ -2620,25 +3254,17 @@ } }, "node_modules/magic-string": { - "version": "0.30.10", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", - "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "version": "0.30.11", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz", + "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", "dev": true, - "license": "MIT", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" + "@jridgewell/sourcemap-codec": "^1.5.0" } }, - "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/map-age-cleaner": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "license": "MIT", "dependencies": { "p-defer": "^1.0.0" }, @@ -2646,20 +3272,27 @@ "node": ">=6" } }, + "node_modules/marked": { + "version": "13.0.3", + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 18" + } + }, "node_modules/marky": { "version": "1.2.5", - "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz", - "integrity": "sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==" + "license": "Apache-2.0" }, "node_modules/mdurl": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" + "license": "MIT" }, "node_modules/mem": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "license": "MIT", "dependencies": { "map-age-cleaner": "^0.1.1", "mimic-fn": "^2.0.0", @@ -2671,33 +3304,28 @@ }, "node_modules/mem/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==", + "license": "MIT", "engines": { "node": ">=6" } }, "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" }, "node_modules/merge2": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.7", + "license": "MIT", "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -2706,16 +3334,14 @@ }, "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==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "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==", + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -2725,8 +3351,6 @@ }, "node_modules/mimic-fn": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", "dev": true, "license": "MIT", "engines": { @@ -2738,8 +3362,7 @@ }, "node_modules/mimic-response": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -2749,8 +3372,7 @@ }, "node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -2759,49 +3381,42 @@ } }, "node_modules/minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "version": "1.2.8", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/minimisted": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/minimisted/-/minimisted-2.0.1.tgz", - "integrity": "sha512-1oPjfuLQa2caorJUM8HV8lGgWCc0qqAO1MNv/k05G4qslmsndV/5WdNZrqCiyqiz3wohia2Ij2B7w2Dr7/IyrA==", + "license": "MIT", "dependencies": { "minimist": "^1.2.5" } }, + "node_modules/minipass": { + "version": "7.1.2", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "version": "3.0.1", + "license": "MIT", "bin": { - "mkdirp": "bin/cmd.js" + "mkdirp": "dist/cjs/src/bin.js" }, "engines": { "node": ">=10" - } - }, - "node_modules/mlly": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.1.tgz", - "integrity": "sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==", - "dev": true, - "license": "MIT", - "dependencies": { - "acorn": "^8.11.3", - "pathe": "^1.1.2", - "pkg-types": "^1.1.1", - "ufo": "^1.5.3" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "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==" + "license": "MIT" }, "node_modules/nanoid": { "version": "3.3.7", @@ -2814,7 +3429,6 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -2822,15 +3436,17 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/natural-compare": { + "version": "1.4.0", + "license": "MIT" + }, "node_modules/nice-try": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + "license": "MIT" }, "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "version": "2.7.0", + "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -2846,73 +3462,72 @@ } } }, - "node_modules/nodemon": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.0.tgz", - "integrity": "sha512-xqlktYlDMCepBJd43ZQhjWwMw2obW/JRvkrLxq5RCNcuDDX1DbcPT+qT1IlIIdf+DhnWs90JpTMe+Y5KxOchvA==", - "dev": true, - "dependencies": { - "chokidar": "^3.5.2", - "debug": "^4", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.1.2", - "pstree.remy": "^1.1.8", - "semver": "^7.5.3", - "simple-update-notifier": "^2.0.0", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.5" - }, - "bin": { - "nodemon": "bin/nodemon.js" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nodemon" - } - }, "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==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "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==", + "version": "5.3.0", + "dev": true, + "license": "MIT", "dependencies": { - "path-key": "^2.0.0" + "path-key": "^4.0.0" }, "engines": { - "node": ">=4" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/number-is-nan": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, + "node_modules/octokit-pagination-methods": { + "version": "1.1.0", + "license": "MIT" + }, + "node_modules/on-exit-leak-free": { + "version": "2.1.2", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, "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==", + "license": "ISC", "dependencies": { "wrappy": "1" } }, + "node_modules/one-time": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "fn.name": "1.x.x" + } + }, "node_modules/onetime": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2925,10 +3540,25 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/optionator": { + "version": "0.9.4", + "license": "MIT", + "peer": 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.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/os-locale": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "license": "MIT", "dependencies": { "execa": "^1.0.0", "lcid": "^2.0.0", @@ -2938,10 +3568,111 @@ "node": ">=6" } }, + "node_modules/os-locale/node_modules/cross-spawn": { + "version": "6.0.5", + "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" + } + }, + "node_modules/os-locale/node_modules/execa": { + "version": "1.0.0", + "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" + } + }, + "node_modules/os-locale/node_modules/get-stream": { + "version": "4.1.0", + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/os-locale/node_modules/is-stream": { + "version": "1.1.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-locale/node_modules/npm-run-path": { + "version": "2.0.2", + "license": "MIT", + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/os-locale/node_modules/path-key": { + "version": "2.0.1", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/os-locale/node_modules/semver": { + "version": "5.7.2", + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/os-locale/node_modules/shebang-command": { + "version": "1.2.0", + "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-locale/node_modules/shebang-regex": { + "version": "1.0.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-locale/node_modules/signal-exit": { + "version": "3.0.7", + "license": "ISC" + }, + "node_modules/os-locale/node_modules/which": { + "version": "1.3.1", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, "node_modules/os-name": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz", - "integrity": "sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg==", + "license": "MIT", "dependencies": { "macos-release": "^2.2.0", "windows-release": "^3.1.0" @@ -2952,70 +3683,77 @@ }, "node_modules/p-defer": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==", + "license": "MIT", "engines": { "node": ">=4" } }, "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==", + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/p-is-promise": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", - "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", + "license": "MIT", "engines": { "node": ">=6" } }, - "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/p-locate": { + "version": "3.0.0", + "license": "MIT", "dependencies": { - "p-try": "^2.0.0" + "p-limit": "^2.0.0" }, "engines": { "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "license": "MIT", "dependencies": { - "p-limit": "^2.0.0" + "p-try": "^2.0.0" }, "engines": { "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "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==", + "license": "MIT", "engines": { "node": ">=6" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "license": "BlueOak-1.0.0" + }, "node_modules/pako": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + "license": "(MIT AND Zlib)" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "license": "MIT", + "peer": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } }, "node_modules/parse-ts-to-ast": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/parse-ts-to-ast/-/parse-ts-to-ast-0.1.3.tgz", - "integrity": "sha512-XKfcZg7ssmP58NflLUQsprG+ocdlJcxF6tAziJreZpYH0GsOxtO+or2Se+tfI85oSCJr/nVgy5Nc444txSciXw==", + "version": "0.1.4", + "license": "MIT", "dependencies": { "lodash": "^4.17.10", "lodash-es": "^4.17.10", @@ -3025,8 +3763,7 @@ }, "node_modules/parse-ts-to-ast/node_modules/typescript": { "version": "3.9.10", - "resolved": "https://registry.npmmirror.com/typescript/-/typescript-3.9.10.tgz", - "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -3037,87 +3774,260 @@ }, "node_modules/path-browserify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" + "license": "MIT" }, "node_modules/path-exists": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "license": "MIT", "engines": { "node": ">=4" } }, - "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": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "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": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "2.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" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true + }, + "node_modules/pathval": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", + "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", + "dev": true, + "engines": { + "node": ">= 14.16" + } + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pino": { + "version": "9.3.2", + "license": "MIT", + "dependencies": { + "atomic-sleep": "^1.0.0", + "fast-redact": "^3.1.1", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "^1.2.0", + "pino-std-serializers": "^7.0.0", + "process-warning": "^4.0.0", + "quick-format-unescaped": "^4.0.3", + "real-require": "^0.2.0", + "safe-stable-stringify": "^2.3.1", + "sonic-boom": "^4.0.1", + "thread-stream": "^3.0.0" + }, + "bin": { + "pino": "bin.js" + } + }, + "node_modules/pino-abstract-transport": { + "version": "1.2.0", + "license": "MIT", + "dependencies": { + "readable-stream": "^4.0.0", + "split2": "^4.0.0" + } + }, + "node_modules/pino-abstract-transport/node_modules/base64-js": { + "version": "1.5.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/pino-abstract-transport/node_modules/buffer": { + "version": "6.0.3", + "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": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/pino-abstract-transport/node_modules/readable-stream": { + "version": "4.5.2", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, "engines": { - "node": ">=0.10.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "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==", - "engines": { - "node": ">=4" + "node_modules/pino-pretty": { + "version": "11.2.2", + "license": "MIT", + "dependencies": { + "colorette": "^2.0.7", + "dateformat": "^4.6.3", + "fast-copy": "^3.0.2", + "fast-safe-stringify": "^2.1.1", + "help-me": "^5.0.0", + "joycon": "^3.1.1", + "minimist": "^1.2.6", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "^1.0.0", + "pump": "^3.0.0", + "readable-stream": "^4.0.0", + "secure-json-parse": "^2.4.0", + "sonic-boom": "^4.0.1", + "strip-json-comments": "^3.1.1" + }, + "bin": { + "pino-pretty": "bin.js" } }, - "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==" - }, - "node_modules/pathe": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", - "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", - "dev": true, + "node_modules/pino-pretty/node_modules/base64-js": { + "version": "1.5.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "license": "MIT" }, - "node_modules/picocolors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", - "dev": true, - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "engines": { - "node": ">=6" + "node_modules/pino-pretty/node_modules/buffer": { + "version": "6.0.3", + "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": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } }, - "node_modules/pkg-types": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.1.1.tgz", - "integrity": "sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==", - "dev": true, + "node_modules/pino-pretty/node_modules/readable-stream": { + "version": "4.5.2", "license": "MIT", "dependencies": { - "confbox": "^0.1.7", - "mlly": "^1.7.0", - "pathe": "^1.1.2" + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, + "node_modules/pino-std-serializers": { + "version": "7.0.0", + "license": "MIT" + }, "node_modules/postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "version": "8.4.41", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz", + "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", "dev": true, "funding": [ { @@ -3133,68 +4043,56 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.0", + "picocolors": "^1.0.1", "source-map-js": "^1.2.0" }, "engines": { "node": "^10 || ^12 || >=14" } }, - "node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, + "node_modules/prelude-ls": { + "version": "1.2.1", "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, + "peer": true, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.8.0" } }, - "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, + "node_modules/process": { + "version": "0.11.10", "license": "MIT", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">= 0.6.0" } }, "node_modules/process-nextick-args": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + "license": "MIT" }, - "node_modules/pstree.remy": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", - "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", - "dev": true + "node_modules/process-warning": { + "version": "4.0.0", + "license": "MIT" }, "node_modules/pump": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, + "node_modules/punycode": { + "version": "2.3.1", + "license": "MIT", + "peer": true, + "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==", "funding": [ { "type": "github", @@ -3208,19 +4106,16 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, - "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, + "node_modules/quick-format-unescaped": { + "version": "4.0.4", "license": "MIT" }, "node_modules/readable-stream": { "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -3230,22 +4125,15 @@ "node": ">= 6" } }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, + "node_modules/real-require": { + "version": "0.2.0", + "license": "MIT", "engines": { - "node": ">=8.10.0" + "node": ">= 12.13.0" } }, "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==", "dependencies": { "resolve": "^1.1.6" }, @@ -3253,33 +4141,34 @@ "node": ">= 0.10" } }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==" + }, "node_modules/repeat-string": { "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "license": "MIT", "engines": { "node": ">=0.10" } }, "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==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/require-main-filename": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==" + "license": "ISC" }, "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "version": "1.22.8", + "license": "MIT", "dependencies": { - "is-core-module": "^2.9.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -3290,18 +4179,32 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/resolve-from": { + "version": "4.0.0", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, "node_modules/retry": { "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/reusify": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -3309,9 +4212,7 @@ }, "node_modules/rimraf": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -3322,12 +4223,31 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rimraf/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", + "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/rollup": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz", - "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.20.0.tgz", + "integrity": "sha512-6rbWBChcnSGzIlXeIdNIZTopKYad8ZG8ajhl78lGRLsI2rX8IkaotQhVas2Ma+GPxJav19wrSzvRvuiv0YKzWw==", "dev": true, - "license": "MIT", "dependencies": { "@types/estree": "1.0.5" }, @@ -3339,29 +4259,27 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.18.0", - "@rollup/rollup-android-arm64": "4.18.0", - "@rollup/rollup-darwin-arm64": "4.18.0", - "@rollup/rollup-darwin-x64": "4.18.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", - "@rollup/rollup-linux-arm-musleabihf": "4.18.0", - "@rollup/rollup-linux-arm64-gnu": "4.18.0", - "@rollup/rollup-linux-arm64-musl": "4.18.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", - "@rollup/rollup-linux-riscv64-gnu": "4.18.0", - "@rollup/rollup-linux-s390x-gnu": "4.18.0", - "@rollup/rollup-linux-x64-gnu": "4.18.0", - "@rollup/rollup-linux-x64-musl": "4.18.0", - "@rollup/rollup-win32-arm64-msvc": "4.18.0", - "@rollup/rollup-win32-ia32-msvc": "4.18.0", - "@rollup/rollup-win32-x64-msvc": "4.18.0", + "@rollup/rollup-android-arm-eabi": "4.20.0", + "@rollup/rollup-android-arm64": "4.20.0", + "@rollup/rollup-darwin-arm64": "4.20.0", + "@rollup/rollup-darwin-x64": "4.20.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.20.0", + "@rollup/rollup-linux-arm-musleabihf": "4.20.0", + "@rollup/rollup-linux-arm64-gnu": "4.20.0", + "@rollup/rollup-linux-arm64-musl": "4.20.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.20.0", + "@rollup/rollup-linux-riscv64-gnu": "4.20.0", + "@rollup/rollup-linux-s390x-gnu": "4.20.0", + "@rollup/rollup-linux-x64-gnu": "4.20.0", + "@rollup/rollup-linux-x64-musl": "4.20.0", + "@rollup/rollup-win32-arm64-msvc": "4.20.0", + "@rollup/rollup-win32-ia32-msvc": "4.20.0", + "@rollup/rollup-win32-x64-msvc": "4.20.0", "fsevents": "~2.3.2" } }, "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==", "funding": [ { "type": "github", @@ -3376,14 +4294,13 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } }, "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==", "funding": [ { "type": "github", @@ -3397,17 +4314,27 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" + }, + "node_modules/safe-stable-stringify": { + "version": "2.4.3", + "license": "MIT", + "engines": { + "node": ">=10" + } }, "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + "version": "1.4.1", + "license": "ISC" + }, + "node_modules/secure-json-parse": { + "version": "2.7.0", + "license": "BSD-3-Clause" }, "node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -3417,13 +4344,11 @@ }, "node_modules/set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" + "license": "ISC" }, "node_modules/sha.js": { "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "license": "(MIT AND BSD-3-Clause)", "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -3433,28 +4358,25 @@ } }, "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==", + "version": "2.0.0", + "license": "MIT", "dependencies": { - "shebang-regex": "^1.0.0" + "shebang-regex": "^3.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "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==", + "version": "3.0.0", + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/shelljs": { "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "license": "BSD-3-Clause", "dependencies": { "glob": "^7.0.0", "interpret": "^1.0.0", @@ -3467,22 +4389,57 @@ "node": ">=4" } }, + "node_modules/shelljs/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", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/shx": { + "version": "0.3.4", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.3", + "shelljs": "^0.8.5" + }, + "bin": { + "shx": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/siginfo": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", - "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", "dev": true, "license": "ISC" }, "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==" + "version": "4.1.0", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, "node_modules/simple-concat": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", "funding": [ { "type": "github", @@ -3496,12 +4453,12 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/simple-get": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", - "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", + "license": "MIT", "dependencies": { "decompress-response": "^4.2.0", "once": "^1.3.1", @@ -3509,29 +4466,37 @@ } }, "node_modules/simple-git": { - "version": "3.16.0", - "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.16.0.tgz", - "integrity": "sha512-zuWYsOLEhbJRWVxpjdiXl6eyAyGo/KzVW+KFhhw9MqEEJttcq+32jTWSGyxTdf9e/YCohxRE+9xpWFj9FdiJNw==", + "version": "3.25.0", + "license": "MIT", "dependencies": { "@kwsites/file-exists": "^1.1.1", "@kwsites/promise-deferred": "^1.1.1", - "debug": "^4.3.4" + "debug": "^4.3.5" }, "funding": { "type": "github", "url": "https://github.com/steveukx/git-js?sponsor=1" } }, - "node_modules/simple-update-notifier": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", - "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", - "dev": true, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "license": "MIT", "dependencies": { - "semver": "^7.5.3" - }, + "is-arrayish": "^0.3.1" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=8" + } + }, + "node_modules/sonic-boom": { + "version": "4.0.1", + "license": "MIT", + "dependencies": { + "atomic-sleep": "^1.0.0" } }, "node_modules/source-map-js": { @@ -3539,42 +4504,48 @@ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, + "node_modules/split2": { + "version": "4.2.0", + "license": "ISC", + "engines": { + "node": ">= 10.x" + } + }, "node_modules/sprintf-js": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + "license": "BSD-3-Clause" + }, + "node_modules/stack-trace": { + "version": "0.0.10", + "license": "MIT", + "engines": { + "node": "*" + } }, "node_modules/stackback": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", - "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", "dev": true, "license": "MIT" }, "node_modules/std-env": { "version": "3.7.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz", - "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==", "dev": true, "license": "MIT" }, "node_modules/string_decoder": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" } }, "node_modules/string-width": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "license": "MIT", "dependencies": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" @@ -3583,15 +4554,49 @@ "node": ">=4" } }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "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/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/string.prototype.repeat": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-0.2.0.tgz", - "integrity": "sha512-1BH+X+1hSthZFW+X+JaUkjkkUPwIlLEMJBLANN3hOob3RhEk5snLWNECDnYbgn/m5c5JV7Ersu1Yubaf+05cIA==" + "version": "0.2.0" }, "node_modules/strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "license": "MIT", "dependencies": { "ansi-regex": "^3.0.0" }, @@ -3599,18 +4604,33 @@ "node": ">=4" } }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "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==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/strip-final-newline": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "dev": true, "license": "MIT", "engines": { @@ -3620,35 +4640,30 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/strip-literal": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-2.1.0.tgz", - "integrity": "sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==", - "dev": true, + "node_modules/strip-json-comments": { + "version": "3.1.1", "license": "MIT", - "dependencies": { - "js-tokens": "^9.0.0" + "engines": { + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/antfu" + "url": "https://github.com/sponsors/sindresorhus" } }, "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==", - "dev": true, + "version": "7.2.0", + "license": "MIT", + "peer": true, "dependencies": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, "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==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -3658,8 +4673,7 @@ }, "node_modules/tar-stream": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "license": "MIT", "dependencies": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", @@ -3671,37 +4685,57 @@ "node": ">=6" } }, + "node_modules/text-hex": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/text-table": { + "version": "0.2.0", + "license": "MIT", + "peer": true + }, + "node_modules/thread-stream": { + "version": "3.1.0", + "license": "MIT", + "dependencies": { + "real-require": "^0.2.0" + } + }, "node_modules/tinybench": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.8.0.tgz", - "integrity": "sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==", + "version": "2.9.0", "dev": true, "license": "MIT" }, "node_modules/tinypool": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.4.tgz", - "integrity": "sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.0.tgz", + "integrity": "sha512-KIKExllK7jp3uvrNtvRBYBWBOAXSX8ZvoaD8T+7KB/QHIuoJW3Pmr60zucywjAlMb5TeXUkcs/MWeWLu0qvuAQ==", + "dev": true, + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, + "node_modules/tinyrainbow": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz", + "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=14.0.0" } }, "node_modules/tinyspy": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz", - "integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.0.tgz", + "integrity": "sha512-q5nmENpTHgiPVd1cJDDc9cVoYN5x4vCvwT3FMilvKPKneCBZAxn2YWQjDF0UMcE9k0Cay1gBiDfTMU0g+mPMQA==", "dev": true, - "license": "MIT", "engines": { "node": ">=14.0.0" } }, "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==", + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -3711,103 +4745,91 @@ }, "node_modules/to-utf8": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/to-utf8/-/to-utf8-0.0.1.tgz", - "integrity": "sha512-zks18/TWT1iHO3v0vFp5qLKOG27m67ycq/Y7a7cTiRuUNlc4gf3HGnkRgMv0NyhnfTamtkYBJl+YeD1/j07gBQ==" - }, - "node_modules/touch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz", - "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", - "dev": true, - "bin": { - "nodetouch": "bin/nodetouch.js" - } + "license": "MIT" }, "node_modules/tr46": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + "license": "MIT" + }, + "node_modules/triple-beam": { + "version": "1.4.1", + "license": "MIT", + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/ts-api-utils": { + "version": "1.3.0", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } }, "node_modules/ts-morph": { - "version": "12.2.0", - "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-12.2.0.tgz", - "integrity": "sha512-WHXLtFDcIRwoqaiu0elAoZ/AmI+SwwDafnPKjgJmdwJ2gRVO0jMKBt88rV2liT/c6MTsXyuWbGFiHe9MRddWJw==", + "version": "23.0.0", + "license": "MIT", "dependencies": { - "@ts-morph/common": "~0.11.1", - "code-block-writer": "^10.1.1" + "@ts-morph/common": "~0.24.0", + "code-block-writer": "^13.0.1" } }, - "node_modules/ts-node": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", - "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "node_modules/tslib": { + "version": "1.14.1", + "license": "0BSD" + }, + "node_modules/tsx": { + "version": "4.17.0", "dev": true, + "license": "MIT", "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" + "esbuild": "~0.23.0", + "get-tsconfig": "^4.7.5" }, "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" + "tsx": "dist/cli.mjs" }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" + "engines": { + "node": ">=18.0.0" }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } + "optionalDependencies": { + "fsevents": "~2.3.3" } }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, "node_modules/tunnel": { "version": "0.0.6", - "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", - "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "license": "MIT", "engines": { "node": ">=0.6.11 <=0.7.0 || >=0.7.3" } }, - "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, + "node_modules/type-check": { + "version": "0.4.0", "license": "MIT", + "peer": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, "engines": { - "node": ">=4" + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "license": "(MIT OR CC0-1.0)", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", - "dev": true, + "version": "5.5.3", + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -3816,86 +4838,129 @@ "node": ">=14.17" } }, + "node_modules/typescript-codegen-breaking-change-detector": { + "version": "0.4.11", + "license": "MIT", + "dependencies": { + "@azure-tools/openapi-tools-common": "^1.2.2", + "@typescript-eslint/scope-manager": "^7.17.0", + "@typescript-eslint/types": "^7.17.0", + "@typescript-eslint/typescript-estree": "^7.17.0", + "@typescript-eslint/utils": "^7.17.0", + "@typescript-eslint/visitor-keys": "^7.17.0", + "commander": "^12.1.0", + "fs-extra": "^11.2.0", + "glob": "^11.0.0", + "marked": "^13.0.2", + "pino": "^9.3.1", + "pino-pretty": "^11.2.1", + "ts-morph": "^23.0.0", + "typescript": "5.5.3", + "typescript-eslint": "^7.17.0" + } + }, + "node_modules/typescript-eslint": { + "version": "7.18.0", + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "7.18.0", + "@typescript-eslint/parser": "7.18.0", + "@typescript-eslint/utils": "7.18.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/typical": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/ufo": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.3.tgz", - "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==", - "dev": true, - "license": "MIT" - }, - "node_modules/undefsafe": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", - "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", - "dev": true - }, "node_modules/undici-types": { "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + "license": "MIT" }, "node_modules/universal-user-agent": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-2.1.0.tgz", - "integrity": "sha512-8itiX7G05Tu3mGDTdNY2fB4KJ8MgZLS54RdG6PkkfwMAavrXu1mV/lls/GABx9O3Rw4PnTtasxrvbMQoBYY92Q==", + "version": "4.0.1", + "license": "ISC", "dependencies": { - "os-name": "^3.0.0" + "os-name": "^3.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==", + "license": "MIT", "engines": { "node": ">= 10.0.0" } }, - "node_modules/url-template": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz", - "integrity": "sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw==" + "node_modules/unixify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unixify/-/unixify-1.0.0.tgz", + "integrity": "sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg==", + "dependencies": { + "normalize-path": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unixify/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "punycode": "^2.1.0" + } }, "node_modules/util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + "license": "MIT" }, "node_modules/uuid": { "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true - }, "node_modules/varint": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/varint/-/varint-0.0.3.tgz", - "integrity": "sha512-SZOWhAh1wbG6fxU5QJMudwrudDkVFCQJlcZEDFQoKdcpr0q2YG5VuS24WSA+w4m0N+9SNe1S2Zd5IdLWXaHyKQ==" + "license": "MIT" }, "node_modules/vite": { - "version": "5.2.13", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.13.tgz", - "integrity": "sha512-SSq1noJfY9pR3I1TUENL3rQYDQCFqgD+lM6fTRAM8Nv6Lsg5hDLaXkjETVeBt+7vZBCMoibD+6IWnT2mJ+Zb/A==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.1.tgz", + "integrity": "sha512-1oE6yuNXssjrZdblI9AfBbHCC41nnyoVoEZxQnID6yvQZAFBzxxkqoFLtHUMkYunL8hwOLEjgTuxpkRxvba3kA==", "dev": true, - "license": "MIT", "dependencies": { - "esbuild": "^0.20.1", - "postcss": "^8.4.38", + "esbuild": "^0.21.3", + "postcss": "^8.4.41", "rollup": "^4.13.0" }, "bin": { @@ -3915,6 +4980,7 @@ "less": "*", "lightningcss": "^1.21.0", "sass": "*", + "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.4.0" @@ -3932,6 +4998,9 @@ "sass": { "optional": true }, + "sass-embedded": { + "optional": true + }, "stylus": { "optional": true }, @@ -3944,16 +5013,15 @@ } }, "node_modules/vite-node": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.6.0.tgz", - "integrity": "sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.0.5.tgz", + "integrity": "sha512-LdsW4pxj0Ot69FAoXZ1yTnA9bjGohr2yNBU7QKRxpz8ITSkhuDl6h3zS/tvgz4qrNjeRnvrWeXQ8ZF7Um4W00Q==", "dev": true, - "license": "MIT", "dependencies": { "cac": "^6.7.14", - "debug": "^4.3.4", - "pathe": "^1.1.1", - "picocolors": "^1.0.0", + "debug": "^4.3.5", + "pathe": "^1.1.2", + "tinyrainbow": "^1.2.0", "vite": "^5.0.0" }, "bin": { @@ -3966,33 +5034,85 @@ "url": "https://opencollective.com/vitest" } }, - "node_modules/vitest": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.6.0.tgz", - "integrity": "sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==", + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/expect": "1.6.0", - "@vitest/runner": "1.6.0", - "@vitest/snapshot": "1.6.0", - "@vitest/spy": "1.6.0", - "@vitest/utils": "1.6.0", - "acorn-walk": "^8.3.2", - "chai": "^4.3.10", - "debug": "^4.3.4", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/vitest": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.0.5.tgz", + "integrity": "sha512-8GUxONfauuIdeSl5f9GTgVEpg5BTOlplET4WEDaeY2QBiN8wSm68vxN/tb5z405OwppfoCavnwXafiaYBC/xOA==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.3.0", + "@vitest/expect": "2.0.5", + "@vitest/pretty-format": "^2.0.5", + "@vitest/runner": "2.0.5", + "@vitest/snapshot": "2.0.5", + "@vitest/spy": "2.0.5", + "@vitest/utils": "2.0.5", + "chai": "^5.1.1", + "debug": "^4.3.5", "execa": "^8.0.1", - "local-pkg": "^0.5.0", - "magic-string": "^0.30.5", - "pathe": "^1.1.1", - "picocolors": "^1.0.0", - "std-env": "^3.5.0", - "strip-literal": "^2.0.0", - "tinybench": "^2.5.1", - "tinypool": "^0.8.3", + "magic-string": "^0.30.10", + "pathe": "^1.1.2", + "std-env": "^3.7.0", + "tinybench": "^2.8.0", + "tinypool": "^1.0.0", + "tinyrainbow": "^1.2.0", "vite": "^5.0.0", - "vite-node": "1.6.0", - "why-is-node-running": "^2.2.2" + "vite-node": "2.0.5", + "why-is-node-running": "^2.3.0" }, "bin": { "vitest": "vitest.mjs" @@ -4006,8 +5126,8 @@ "peerDependencies": { "@edge-runtime/vm": "*", "@types/node": "^18.0.0 || >=20.0.0", - "@vitest/browser": "1.6.0", - "@vitest/ui": "1.6.0", + "@vitest/browser": "2.0.5", + "@vitest/ui": "2.0.5", "happy-dom": "*", "jsdom": "*" }, @@ -4032,322 +5152,319 @@ } } }, - "node_modules/vitest/node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "node_modules/webidl-conversions": { + "version": "3.0.1", + "license": "BSD-2-Clause" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-module": { + "version": "2.0.1", + "license": "ISC" + }, + "node_modules/why-is-node-running": { + "version": "2.3.0", "dev": true, "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, "engines": { - "node": "*" + "node": ">=8" } }, - "node_modules/vitest/node_modules/chai": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", - "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", - "dev": true, + "node_modules/windows-release": { + "version": "3.3.3", "license": "MIT", "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.3", - "deep-eql": "^4.1.3", - "get-func-name": "^2.0.2", - "loupe": "^2.3.6", - "pathval": "^1.1.1", - "type-detect": "^4.0.8" + "execa": "^1.0.0" }, "engines": { - "node": ">=4" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/vitest/node_modules/check-error": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", - "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", - "dev": true, + "node_modules/windows-release/node_modules/cross-spawn": { + "version": "6.0.5", "license": "MIT", "dependencies": { - "get-func-name": "^2.0.2" + "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": "*" + "node": ">=4.8" } }, - "node_modules/vitest/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, + "node_modules/windows-release/node_modules/execa": { + "version": "1.0.0", "license": "MIT", "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "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": ">= 8" + "node": ">=6" } }, - "node_modules/vitest/node_modules/deep-eql": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz", - "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==", - "dev": true, + "node_modules/windows-release/node_modules/get-stream": { + "version": "4.1.0", "license": "MIT", "dependencies": { - "type-detect": "^4.0.0" + "pump": "^3.0.0" }, "engines": { "node": ">=6" } }, - "node_modules/vitest/node_modules/execa": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", - "dev": true, + "node_modules/windows-release/node_modules/is-stream": { + "version": "1.1.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/windows-release/node_modules/npm-run-path": { + "version": "2.0.2", "license": "MIT", "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^8.0.1", - "human-signals": "^5.0.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^4.1.0", - "strip-final-newline": "^3.0.0" + "path-key": "^2.0.0" }, "engines": { - "node": ">=16.17" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "node": ">=4" } }, - "node_modules/vitest/node_modules/get-stream": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", - "dev": true, + "node_modules/windows-release/node_modules/path-key": { + "version": "2.0.1", "license": "MIT", "engines": { - "node": ">=16" + "node": ">=4" + } + }, + "node_modules/windows-release/node_modules/semver": { + "version": "5.7.2", + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/windows-release/node_modules/shebang-command": { + "version": "1.2.0", + "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/vitest/node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, + "node_modules/windows-release/node_modules/shebang-regex": { + "version": "1.0.0", "license": "MIT", "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=0.10.0" + } + }, + "node_modules/windows-release/node_modules/signal-exit": { + "version": "3.0.7", + "license": "ISC" + }, + "node_modules/windows-release/node_modules/which": { + "version": "1.3.1", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "which": "bin/which" } }, - "node_modules/vitest/node_modules/loupe": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", - "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", - "dev": true, + "node_modules/winston": { + "version": "3.14.2", "license": "MIT", "dependencies": { - "get-func-name": "^2.0.1" + "@colors/colors": "^1.6.0", + "@dabh/diagnostics": "^2.0.2", + "async": "^3.2.3", + "is-stream": "^2.0.0", + "logform": "^2.6.0", + "one-time": "^1.0.0", + "readable-stream": "^3.4.0", + "safe-stable-stringify": "^2.3.1", + "stack-trace": "0.0.x", + "triple-beam": "^1.3.0", + "winston-transport": "^4.7.0" + }, + "engines": { + "node": ">= 12.0.0" } }, - "node_modules/vitest/node_modules/npm-run-path": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", - "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", - "dev": true, + "node_modules/winston-transport": { + "version": "4.7.1", "license": "MIT", "dependencies": { - "path-key": "^4.0.0" + "logform": "^2.6.1", + "readable-stream": "^3.6.2", + "triple-beam": "^1.3.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 12.0.0" } }, - "node_modules/vitest/node_modules/npm-run-path/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, + "node_modules/winston/node_modules/async": { + "version": "3.2.5", + "license": "MIT" + }, + "node_modules/winston/node_modules/is-stream": { + "version": "2.0.1", "license": "MIT", "engines": { - "node": ">=12" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/vitest/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, + "node_modules/word-wrap": { + "version": "1.2.5", "license": "MIT", + "peer": true, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/vitest/node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "dev": true, + "node_modules/wrap-ansi": { + "version": "2.1.0", "license": "MIT", + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, "engines": { - "node": "*" + "node": ">=0.10.0" } }, - "node_modules/vitest/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, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", "license": "MIT", "dependencies": { - "shebang-regex": "^3.0.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/vitest/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, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/vitest/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, - "license": "ISC", + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=14" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/vitest/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, - "license": "ISC", + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" + "color-name": "~1.1.4" }, "engines": { - "node": ">= 8" - } - }, - "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==" - }, - "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==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" + "node": ">=7.0.0" } }, - "node_modules/which-module": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==" + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" }, - "node_modules/why-is-node-running": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz", - "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", - "dev": true, + "node_modules/wrap-ansi-cjs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", "license": "MIT", - "dependencies": { - "siginfo": "^2.0.0", - "stackback": "0.0.2" - }, - "bin": { - "why-is-node-running": "cli.js" - }, "engines": { "node": ">=8" } }, - "node_modules/windows-release": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.3.3.tgz", - "integrity": "sha512-OSOGH1QYiW5yVor9TtmXKQvt2vjQqbYS+DqmsZw+r7xDwLXEeT3JGW0ZppFmHx4diyXmxt238KFR3N9jzevBRg==", + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "license": "MIT", "dependencies": { - "execa": "^1.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==", + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "license": "MIT", "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/wrap-ansi/node_modules/ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "license": "MIT", "dependencies": { "number-is-nan": "^1.0.0" }, @@ -4357,8 +5474,7 @@ }, "node_modules/wrap-ansi/node_modules/string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "license": "MIT", "dependencies": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -4370,8 +5486,7 @@ }, "node_modules/wrap-ansi/node_modules/strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "license": "MIT", "dependencies": { "ansi-regex": "^2.0.0" }, @@ -4381,34 +5496,40 @@ }, "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==" + "license": "ISC" + }, + "node_modules/xml2js": { + "version": "0.5.0", + "license": "MIT", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } }, "node_modules/xmlbuilder": { "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "license": "MIT", "engines": { "node": ">=4.0" } }, "node_modules/y18n": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + "license": "ISC" }, "node_modules/yaml": { "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "license": "ISC", "engines": { "node": ">= 6" } }, "node_modules/yargs": { "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "license": "MIT", "dependencies": { "cliui": "^4.0.0", "decamelize": "^1.2.0", @@ -4426,26 +5547,15 @@ }, "node_modules/yargs-parser": { "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "license": "ISC", "dependencies": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" } }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/zip-stream": { "version": "2.1.3", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-2.1.3.tgz", - "integrity": "sha512-EkXc2JGcKhO5N5aZ7TmuNo45budRaFGHOmz24wtJR7znbNqDPmdZtUauKX6et8KAVseAMBOyWJqEpXcHTBsh7Q==", + "license": "MIT", "dependencies": { "archiver-utils": "^2.1.0", "compress-commons": "^2.1.1", diff --git a/tools/js-sdk-release-tools/package.json b/tools/js-sdk-release-tools/package.json index 6c5699529b9..40cb6e19053 100644 --- a/tools/js-sdk-release-tools/package.json +++ b/tools/js-sdk-release-tools/package.json @@ -3,14 +3,13 @@ "version": "2.7.11", "description": "", "scripts": { - "dev": "nodemon src/changelogToolCli.ts", + "dev": "tsx watch src/changelogToolCli.ts", "start": "node dist/changelogToolCli.js", "debug": "node --inspect-brk dist/changelogToolCli.js", "build": "rimraf dist && tsc -p .", "prepack": "npm run build", "test": "vitest --run", - "test:watch": "vitest", - "test:ci": "node dist/changelogToolCli.js src/test/testCases/ci/arm-networkanalytics" + "test:watch": "vitest" }, "bin": { "changelog-tool": "./dist/changelogToolCli.js", @@ -28,23 +27,45 @@ "command-line-args": "^5.1.1", "comment-json": "^4.1.0", "fs-extra": "^11.2.0", + "glob": "^11.0.0", "js-yaml": "^4.1.0", "parse-ts-to-ast": "^0.1.1", "semver": "^7.3.5", "shelljs": "^0.8.4", + "shx": "^0.3.4", "simple-git": "^3.5.0", - "ts-morph": "^12.0.0", + "ts-morph": "^23.0.0", "tslib": "^1.9.3", + "typescript-codegen-breaking-change-detector": "0.4.11", + "unixify": "^1.0.0", "winston": "^3.13.1", "yaml": "^1.10.2" }, "devDependencies": { "@types/node": "^20.12.12", "@types/shelljs": "^0.8.15", - "nodemon": "^3.1.0", + "@types/unixify": "^1.0.2", "rimraf": "^3.0.2", - "ts-node": "^10.9.2", - "typescript": "^5.4.5", - "vitest": "^1.6.0" + "tsx": "^4.16.5", + "typescript": "5.5.3", + "vitest": "2.0.5" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.20.0", + "@rollup/rollup-android-arm64": "4.20.0", + "@rollup/rollup-darwin-arm64": "4.20.0", + "@rollup/rollup-darwin-x64": "4.20.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.20.0", + "@rollup/rollup-linux-arm-musleabihf": "4.20.0", + "@rollup/rollup-linux-arm64-gnu": "4.20.0", + "@rollup/rollup-linux-arm64-musl": "4.20.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.20.0", + "@rollup/rollup-linux-riscv64-gnu": "4.20.0", + "@rollup/rollup-linux-s390x-gnu": "4.20.0", + "@rollup/rollup-linux-x64-gnu": "4.20.0", + "@rollup/rollup-linux-x64-musl": "4.20.0", + "@rollup/rollup-win32-arm64-msvc": "4.20.0", + "@rollup/rollup-win32-ia32-msvc": "4.20.0", + "@rollup/rollup-win32-x64-msvc": "4.20.0" } } diff --git a/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/.eslintignore b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/.eslintignore new file mode 100644 index 00000000000..29ed9f2e097 --- /dev/null +++ b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/.eslintignore @@ -0,0 +1,4 @@ +node_modules +build +coverage +src/tests/e2e/cases diff --git a/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/.eslintrc b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/.eslintrc new file mode 100644 index 00000000000..c1203214a43 --- /dev/null +++ b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/.eslintrc @@ -0,0 +1,17 @@ +{ + "root": true, + "parser": "@typescript-eslint/parser", + "plugins": [ + "@typescript-eslint", + "prettier" + ], + "extends": [ + "eslint:recommended", + "plugin:@typescript-eslint/eslint-recommended", + "plugin:@typescript-eslint/recommended", + "prettier" + ], + "rules": { + "prettier/prettier": 2 + } + } \ No newline at end of file diff --git a/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/.gitignore b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/.gitignore new file mode 100644 index 00000000000..9811acf3314 --- /dev/null +++ b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/.gitignore @@ -0,0 +1,132 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.pnpm-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional stylelint cache +.stylelintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# vuepress v2.x temp and cache directory +.temp +.cache + +# Docusaurus cache and generated files +.docusaurus + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* + +.tmp/ diff --git a/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/.hintrc b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/.hintrc new file mode 100644 index 00000000000..aa8de6b4ec9 --- /dev/null +++ b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/.hintrc @@ -0,0 +1,5 @@ +{ + "extends": [ + "development" + ] +} \ No newline at end of file diff --git a/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/.npmrc b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/.npmrc new file mode 100644 index 00000000000..5660f81af2f --- /dev/null +++ b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/.npmrc @@ -0,0 +1 @@ +registry=https://registry.npmjs.org/ \ No newline at end of file diff --git a/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/.prettierignore b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/.prettierignore new file mode 100644 index 00000000000..29ed9f2e097 --- /dev/null +++ b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/.prettierignore @@ -0,0 +1,4 @@ +node_modules +build +coverage +src/tests/e2e/cases diff --git a/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/.prettierrc b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/.prettierrc new file mode 100644 index 00000000000..def018c4de5 --- /dev/null +++ b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/.prettierrc @@ -0,0 +1,9 @@ +{ + "arrowParens": "always", + "semi": true, + "endOfLine": "lf", + "tabWidth": 2, + "trailingComma": "es5", + "singleQuote": true, + "printWidth": 120 +} diff --git a/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/README.md b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/README.md new file mode 100644 index 00000000000..1712a2f3e4f --- /dev/null +++ b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/README.md @@ -0,0 +1,11 @@ +# typescript-codegen-breaking-change-detector + +> 🏗 Work in progress... + +Detect breaking changes to your TypeScript client generated by open api, typespec and more... + +## Contribution + +### sort-imports + +Install `amatiasq.sort-imports` VS code extension to sort imports automatically. diff --git a/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/docs/azure-rest-level-client-breaking-change-rules.md b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/docs/azure-rest-level-client-breaking-change-rules.md new file mode 100644 index 00000000000..b8480de5b68 --- /dev/null +++ b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/docs/azure-rest-level-client-breaking-change-rules.md @@ -0,0 +1,20 @@ +# Azure REST Level Breaking Change Rules + +## Special Rule Set + +Special rule set for Azure REST level client: [rule set](../src/azure/rule-sets/rest-level-client-rule-sets.ts). + +### Non-Breaking Changes + +- Operation name changes: [rule](../src/azure/common/rules/ignore-operation-interface-name-changes.ts) +- Request parameter model name changes: [rule](../src/azure/common/rules/ignore-request-parameter-model-name-changes.ts) +- Response model name changes: +- + +### Breaking Changes + +- Path value changes + +### TODO + +- Request parameter type changes with content type diff --git a/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/misc/test-cases/rest-level-client-to-rest-level-client/baseline-package/package.json b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/misc/test-cases/rest-level-client-to-rest-level-client/baseline-package/package.json new file mode 100644 index 00000000000..140803e2a9a --- /dev/null +++ b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/misc/test-cases/rest-level-client-to-rest-level-client/baseline-package/package.json @@ -0,0 +1,127 @@ +{ + "name": "@azure-rest/arm-servicefabric", + "sdk-type": "client", + "author": "Microsoft Corporation", + "version": "1.0.0-beta.1", + "description": "", + "keywords": [ + "node", + "azure", + "cloud", + "typescript", + "browser", + "isomorphic" + ], + "license": "MIT", + "main": "dist/index.js", + "module": "./dist-esm/src/index.js", + "types": "./types/arm-servicefabric.d.ts", + "homepage": "https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/servicefabric/arm-servicefabric-rest/README.md", + "repository": "github:Azure/azure-sdk-for-js", + "bugs": { + "url": "https://github.com/Azure/azure-sdk-for-js/issues" + }, + "files": [ + "dist/", + "dist-esm/src/", + "types/arm-servicefabric.d.ts", + "README.md", + "LICENSE", + "review/*" + ], + "//metadata": { + "constantPaths": [ + { + "path": "swagger/README.md", + "prefix": "package-version" + } + ] + }, + "engines": { + "node": ">=12.0.0" + }, + "scripts": { + "audit": "node ../../../common/scripts/rush-audit.js && rimraf node_modules package-lock.json && npm i --package-lock-only 2>&1 && npm audit", + "build:browser": "tsc -p . && cross-env ONLY_BROWSER=true rollup -c 2>&1", + "build:node": "tsc -p . && cross-env ONLY_NODE=true rollup -c 2>&1", + "build:samples": "echo skipped.", + "build:test": "tsc -p . && dev-tool run bundle", + "build:debug": "tsc -p . && dev-tool run bundle && api-extractor run --local", + "check-format": "prettier --list-different --config ../../../.prettierrc.json --ignore-path ../../../.prettierignore \"src/**/*.ts\" \"test/**/*.ts\" \"samples-dev/**/*.ts\" \"*.{js,json}\"", + "clean": "rimraf dist dist-browser dist-esm test-dist temp types *.tgz *.log", + "execute:samples": "dev-tool samples run samples-dev", + "extract-api": "rimraf review && mkdirp ./review && api-extractor run --local", + "format": "prettier --write --config ../../../.prettierrc.json --ignore-path ../../../.prettierignore \"src/**/*.ts\" \"test/**/*.ts\" \"samples-dev/**/*.ts\" \"*.{js,json}\"", + "generate:client": "autorest --typescript swagger/README.md && npm run format", + "integration-test:browser": "dev-tool run test:browser", + "integration-test:node": "dev-tool run test:node-js-input -- --timeout 5000000 'dist-esm/test/**/*.spec.js'", + "integration-test": "npm run integration-test:node && npm run integration-test:browser", + "lint:fix": "eslint package.json api-extractor.json src test --ext .ts --fix --fix-type [problem,suggestion]", + "lint": "eslint package.json api-extractor.json src test --ext .ts", + "pack": "npm pack 2>&1", + "test:browser": "npm run clean && npm run build:test && npm run unit-test:browser", + "test:node": "npm run clean && npm run build:test && npm run unit-test:node", + "test": "npm run clean && npm run build:test && npm run unit-test", + "unit-test": "npm run unit-test:node && npm run unit-test:browser", + "unit-test:node": "dev-tool run test:node-ts-input -- --timeout 1200000 --exclude 'test/**/browser/*.spec.ts' 'test/**/*.spec.ts'", + "unit-test:browser": "dev-tool run test:browser", + "build": "npm run clean && tsc -p . && dev-tool run bundle && mkdirp ./review && api-extractor run --local" + }, + "sideEffects": false, + "autoPublish": false, + "dependencies": { + "@azure/core-auth": "^1.3.0", + "@azure-rest/core-client": "1.0.0-beta.10", + "@azure/core-rest-pipeline": "^1.8.0", + "@azure/logger": "^1.0.0", + "tslib": "^2.2.0", + "@azure/core-paging": "^1.2.0", + "@azure/core-lro": "^2.2.0" + }, + "devDependencies": { + "@microsoft/api-extractor": "7.18.11", + "autorest": "latest", + "@types/node": "^12.0.0", + "dotenv": "^8.2.0", + "eslint": "^7.15.0", + "mkdirp": "^1.0.4", + "prettier": "2.2.1", + "rimraf": "^3.0.0", + "source-map-support": "^0.5.9", + "typescript": "~4.2.0", + "@azure/dev-tool": "^1.0.0", + "@azure/eslint-plugin-azure-sdk": "^3.0.0", + "@azure-tools/test-credential": "^1.0.0", + "@azure/identity": "^2.0.1", + "@azure-tools/test-recorder": "^2.0.0", + "mocha": "^7.1.1", + "mocha-junit-reporter": "^1.18.0", + "cross-env": "^7.0.2", + "@types/chai": "^4.2.8", + "chai": "^4.2.0", + "karma-chrome-launcher": "^3.0.0", + "karma-coverage": "^2.0.0", + "karma-edge-launcher": "^0.4.2", + "karma-env-preprocessor": "^0.1.1", + "karma-firefox-launcher": "^1.1.0", + "karma-ie-launcher": "^1.0.0", + "karma-junit-reporter": "^2.0.1", + "karma-mocha-reporter": "^2.2.5", + "karma-mocha": "^2.0.1", + "karma-source-map-support": "~1.4.0", + "karma-sourcemap-loader": "^0.3.8", + "karma": "^6.2.0", + "nyc": "^14.0.0" + }, + "browser": { + "./dist-esm/test/public/utils/env.js": "./dist-esm/test/public/utils/env.browser.js" + }, + "//sampleConfiguration": { + "productName": "", + "productSlugs": [ + "azure" + ], + "disableDocsMs": true, + "apiRefLink": "https://docs.microsoft.com/javascript/api/@azure-rest/arm-servicefabric?view=azure-node-preview" + } +} diff --git a/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/misc/test-cases/rest-level-client-to-rest-level-client/baseline-package/review/arm-servicefabric.api.md b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/misc/test-cases/rest-level-client-to-rest-level-client/baseline-package/review/arm-servicefabric.api.md new file mode 100644 index 00000000000..b54c9321979 --- /dev/null +++ b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/misc/test-cases/rest-level-client-to-rest-level-client/baseline-package/review/arm-servicefabric.api.md @@ -0,0 +1,2071 @@ +## API Report File for "@azure-rest/arm-servicefabric" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +import { Client } from '@azure-rest/core-client'; +import { ClientOptions } from '@azure-rest/core-client'; +import { HttpResponse } from '@azure-rest/core-client'; +import { LroEngineOptions } from '@azure/core-lro'; +import { PagedAsyncIterableIterator } from '@azure/core-paging'; +import { PathUncheckedResponse } from '@azure-rest/core-client'; +import { PollerLike } from '@azure/core-lro'; +import { PollOperationState } from '@azure/core-lro'; +import { RequestParameters } from '@azure-rest/core-client'; +import { StreamableMethod } from '@azure-rest/core-client'; +import { TokenCredential } from '@azure/core-auth'; + +// @public (undocumented) +export interface ApplicationDeltaHealthPolicy { + defaultServiceTypeDeltaHealthPolicy?: ServiceTypeDeltaHealthPolicy; + serviceTypeDeltaHealthPolicies?: Record; +} + +// @public (undocumented) +export interface ApplicationDeltaHealthPolicyOutput { + defaultServiceTypeDeltaHealthPolicy?: ServiceTypeDeltaHealthPolicyOutput; + serviceTypeDeltaHealthPolicies?: Record; +} + +// @public (undocumented) +export interface ApplicationHealthPolicy { + defaultServiceTypeHealthPolicy?: ServiceTypeHealthPolicy; + serviceTypeHealthPolicies?: Record; +} + +// @public (undocumented) +export interface ApplicationHealthPolicyOutput { + defaultServiceTypeHealthPolicy?: ServiceTypeHealthPolicyOutput; + serviceTypeHealthPolicies?: Record; +} + +// @public (undocumented) +export interface ApplicationMetricDescription { + maximumCapacity?: number; + name?: string; + reservationCapacity?: number; + totalApplicationCapacity?: number; +} + +// @public (undocumented) +export interface ApplicationMetricDescriptionOutput { + maximumCapacity?: number; + name?: string; + reservationCapacity?: number; + totalApplicationCapacity?: number; +} + +// @public (undocumented) +export interface ApplicationResource extends ProxyResource { + identity?: ManagedIdentity; + properties?: ApplicationResourceProperties; +} + +// @public (undocumented) +export interface ApplicationResourceListOutput { + nextLink?: string; + // (undocumented) + value?: Array; +} + +// @public (undocumented) +export interface ApplicationResourceOutput extends ProxyResourceOutput { + identity?: ManagedIdentityOutput; + properties?: ApplicationResourcePropertiesOutput; +} + +// @public (undocumented) +export interface ApplicationResourceProperties extends ApplicationResourceUpdateProperties { + provisioningState?: string; + typeName?: string; +} + +// @public (undocumented) +export interface ApplicationResourcePropertiesOutput extends ApplicationResourceUpdatePropertiesOutput { + provisioningState?: string; + typeName?: string; +} + +// @public (undocumented) +export interface ApplicationResourceUpdate extends ProxyResource { + properties?: ApplicationResourceUpdateProperties; +} + +// @public (undocumented) +export interface ApplicationResourceUpdateOutput extends ProxyResourceOutput { + properties?: ApplicationResourceUpdatePropertiesOutput; +} + +// @public (undocumented) +export interface ApplicationResourceUpdateProperties { + managedIdentities?: Array; + maximumNodes?: number; + metrics?: Array; + minimumNodes?: number; + parameters?: Record; + removeApplicationCapacity?: boolean; + typeVersion?: string; + upgradePolicy?: ApplicationUpgradePolicy; +} + +// @public (undocumented) +export interface ApplicationResourceUpdatePropertiesOutput { + managedIdentities?: Array; + maximumNodes?: number; + metrics?: Array; + minimumNodes?: number; + parameters?: Record; + removeApplicationCapacity?: boolean; + typeVersion?: string; + upgradePolicy?: ApplicationUpgradePolicyOutput; +} + +// @public +export interface ApplicationsCreateOrUpdate202Response extends HttpResponse { + // (undocumented) + body: ApplicationResourceOutput; + // (undocumented) + status: "202"; +} + +// @public (undocumented) +export interface ApplicationsCreateOrUpdateBodyParam { + body: ApplicationResource; +} + +// @public +export interface ApplicationsCreateOrUpdatedefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export interface ApplicationsCreateOrUpdateMediaTypesParam { + contentType?: "application/json"; +} + +// @public (undocumented) +export type ApplicationsCreateOrUpdateParameters = ApplicationsCreateOrUpdateMediaTypesParam & ApplicationsCreateOrUpdateBodyParam & RequestParameters; + +// @public +export interface ApplicationsDelete202Response extends HttpResponse { + // (undocumented) + body: Record; + // (undocumented) + status: "202"; +} + +// @public +export interface ApplicationsDelete204Response extends HttpResponse { + // (undocumented) + body: Record; + // (undocumented) + status: "204"; +} + +// @public +export interface ApplicationsDeletedefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type ApplicationsDeleteParameters = RequestParameters; + +// @public (undocumented) +export interface ApplicationsGet { + delete(options?: ApplicationsDeleteParameters): StreamableMethod; + get(options?: ApplicationsGetParameters): StreamableMethod; + patch(options: ApplicationsUpdateParameters): StreamableMethod; + put(options: ApplicationsCreateOrUpdateParameters): StreamableMethod; +} + +// @public +export interface ApplicationsGet200Response extends HttpResponse { + // (undocumented) + body: ApplicationResourceOutput; + // (undocumented) + status: "200"; +} + +// @public +export interface ApplicationsGetdefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type ApplicationsGetParameters = RequestParameters; + +// @public (undocumented) +export interface ApplicationsList { + get(options?: ApplicationsListParameters): StreamableMethod; +} + +// @public +export interface ApplicationsList200Response extends HttpResponse { + // (undocumented) + body: ApplicationResourceListOutput; + // (undocumented) + status: "200"; +} + +// @public +export interface ApplicationsListdefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type ApplicationsListParameters = RequestParameters; + +// @public +export interface ApplicationsUpdate202Response extends HttpResponse { + // (undocumented) + body: ApplicationResourceOutput; + // (undocumented) + status: "202"; +} + +// @public (undocumented) +export interface ApplicationsUpdateBodyParam { + body: ApplicationResourceUpdate; +} + +// @public +export interface ApplicationsUpdatedefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export interface ApplicationsUpdateMediaTypesParam { + contentType?: "application/json"; +} + +// @public (undocumented) +export type ApplicationsUpdateParameters = ApplicationsUpdateMediaTypesParam & ApplicationsUpdateBodyParam & RequestParameters; + +// @public (undocumented) +export interface ApplicationTypeResource extends ProxyResource { + properties?: ApplicationTypeResourceProperties; +} + +// @public (undocumented) +export interface ApplicationTypeResourceListOutput { + nextLink?: string; + // (undocumented) + value?: Array; +} + +// @public (undocumented) +export interface ApplicationTypeResourceOutput extends ProxyResourceOutput { + properties?: ApplicationTypeResourcePropertiesOutput; +} + +// @public (undocumented) +export interface ApplicationTypeResourceProperties { + provisioningState?: string; +} + +// @public (undocumented) +export interface ApplicationTypeResourcePropertiesOutput { + provisioningState?: string; +} + +// @public +export interface ApplicationTypesCreateOrUpdate200Response extends HttpResponse { + // (undocumented) + body: ApplicationTypeResourceOutput; + // (undocumented) + status: "200"; +} + +// @public (undocumented) +export interface ApplicationTypesCreateOrUpdateBodyParam { + body: ApplicationTypeResource; +} + +// @public +export interface ApplicationTypesCreateOrUpdatedefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export interface ApplicationTypesCreateOrUpdateMediaTypesParam { + contentType?: "application/json"; +} + +// @public (undocumented) +export type ApplicationTypesCreateOrUpdateParameters = ApplicationTypesCreateOrUpdateMediaTypesParam & ApplicationTypesCreateOrUpdateBodyParam & RequestParameters; + +// @public +export interface ApplicationTypesDelete202Response extends HttpResponse { + // (undocumented) + body: Record; + // (undocumented) + status: "202"; +} + +// @public +export interface ApplicationTypesDelete204Response extends HttpResponse { + // (undocumented) + body: Record; + // (undocumented) + status: "204"; +} + +// @public +export interface ApplicationTypesDeletedefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type ApplicationTypesDeleteParameters = RequestParameters; + +// @public (undocumented) +export interface ApplicationTypesGet { + delete(options?: ApplicationTypesDeleteParameters): StreamableMethod; + get(options?: ApplicationTypesGetParameters): StreamableMethod; + put(options: ApplicationTypesCreateOrUpdateParameters): StreamableMethod; +} + +// @public +export interface ApplicationTypesGet200Response extends HttpResponse { + // (undocumented) + body: ApplicationTypeResourceOutput; + // (undocumented) + status: "200"; +} + +// @public +export interface ApplicationTypesGetdefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type ApplicationTypesGetParameters = RequestParameters; + +// @public (undocumented) +export interface ApplicationTypesList { + get(options?: ApplicationTypesListParameters): StreamableMethod; +} + +// @public +export interface ApplicationTypesList200Response extends HttpResponse { + // (undocumented) + body: ApplicationTypeResourceListOutput; + // (undocumented) + status: "200"; +} + +// @public +export interface ApplicationTypesListdefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type ApplicationTypesListParameters = RequestParameters; + +// @public (undocumented) +export interface ApplicationTypeVersionResource extends ProxyResource { + properties?: ApplicationTypeVersionResourceProperties; +} + +// @public (undocumented) +export interface ApplicationTypeVersionResourceListOutput { + nextLink?: string; + // (undocumented) + value?: Array; +} + +// @public (undocumented) +export interface ApplicationTypeVersionResourceOutput extends ProxyResourceOutput { + properties?: ApplicationTypeVersionResourcePropertiesOutput; +} + +// @public (undocumented) +export interface ApplicationTypeVersionResourceProperties { + appPackageUrl: string; + defaultParameterList?: Record; + provisioningState?: string; +} + +// @public (undocumented) +export interface ApplicationTypeVersionResourcePropertiesOutput { + appPackageUrl: string; + defaultParameterList?: Record; + provisioningState?: string; +} + +// @public (undocumented) +export interface ApplicationTypeVersionsCleanupPolicy { + maxUnusedVersionsToKeep: number; +} + +// @public (undocumented) +export interface ApplicationTypeVersionsCleanupPolicyOutput { + maxUnusedVersionsToKeep: number; +} + +// @public +export interface ApplicationTypeVersionsCreateOrUpdate202Response extends HttpResponse { + // (undocumented) + body: ApplicationTypeVersionResourceOutput; + // (undocumented) + status: "202"; +} + +// @public (undocumented) +export interface ApplicationTypeVersionsCreateOrUpdateBodyParam { + body: ApplicationTypeVersionResource; +} + +// @public +export interface ApplicationTypeVersionsCreateOrUpdatedefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export interface ApplicationTypeVersionsCreateOrUpdateMediaTypesParam { + contentType?: "application/json"; +} + +// @public (undocumented) +export type ApplicationTypeVersionsCreateOrUpdateParameters = ApplicationTypeVersionsCreateOrUpdateMediaTypesParam & ApplicationTypeVersionsCreateOrUpdateBodyParam & RequestParameters; + +// @public +export interface ApplicationTypeVersionsDelete202Response extends HttpResponse { + // (undocumented) + body: Record; + // (undocumented) + status: "202"; +} + +// @public +export interface ApplicationTypeVersionsDelete204Response extends HttpResponse { + // (undocumented) + body: Record; + // (undocumented) + status: "204"; +} + +// @public +export interface ApplicationTypeVersionsDeletedefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type ApplicationTypeVersionsDeleteParameters = RequestParameters; + +// @public (undocumented) +export interface ApplicationTypeVersionsGet { + delete(options?: ApplicationTypeVersionsDeleteParameters): StreamableMethod; + get(options?: ApplicationTypeVersionsGetParameters): StreamableMethod; + put(options: ApplicationTypeVersionsCreateOrUpdateParameters): StreamableMethod; +} + +// @public +export interface ApplicationTypeVersionsGet200Response extends HttpResponse { + // (undocumented) + body: ApplicationTypeVersionResourceOutput; + // (undocumented) + status: "200"; +} + +// @public +export interface ApplicationTypeVersionsGetdefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type ApplicationTypeVersionsGetParameters = RequestParameters; + +// @public (undocumented) +export interface ApplicationTypeVersionsList { + get(options?: ApplicationTypeVersionsListParameters): StreamableMethod; +} + +// @public +export interface ApplicationTypeVersionsList200Response extends HttpResponse { + // (undocumented) + body: ApplicationTypeVersionResourceListOutput; + // (undocumented) + status: "200"; +} + +// @public +export interface ApplicationTypeVersionsListdefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type ApplicationTypeVersionsListParameters = RequestParameters; + +// @public (undocumented) +export interface ApplicationUpgradePolicy { + applicationHealthPolicy?: ArmApplicationHealthPolicy; + forceRestart?: boolean; + recreateApplication?: boolean; + rollingUpgradeMonitoringPolicy?: ArmRollingUpgradeMonitoringPolicy; + upgradeMode?: "Invalid" | "UnmonitoredAuto" | "UnmonitoredManual" | "Monitored"; + upgradeReplicaSetCheckTimeout?: string; +} + +// @public (undocumented) +export interface ApplicationUpgradePolicyOutput { + applicationHealthPolicy?: ArmApplicationHealthPolicyOutput; + forceRestart?: boolean; + recreateApplication?: boolean; + rollingUpgradeMonitoringPolicy?: ArmRollingUpgradeMonitoringPolicyOutput; + upgradeMode?: "Invalid" | "UnmonitoredAuto" | "UnmonitoredManual" | "Monitored"; + upgradeReplicaSetCheckTimeout?: string; +} + +// @public (undocumented) +export interface ApplicationUserAssignedIdentity { + name: string; + principalId: string; +} + +// @public (undocumented) +export interface ApplicationUserAssignedIdentityOutput { + name: string; + principalId: string; +} + +// @public (undocumented) +export interface ArmApplicationHealthPolicy { + considerWarningAsError?: boolean; + defaultServiceTypeHealthPolicy?: ArmServiceTypeHealthPolicy; + maxPercentUnhealthyDeployedApplications?: number; + serviceTypeHealthPolicyMap?: Record; +} + +// @public (undocumented) +export interface ArmApplicationHealthPolicyOutput { + considerWarningAsError?: boolean; + defaultServiceTypeHealthPolicy?: ArmServiceTypeHealthPolicyOutput; + maxPercentUnhealthyDeployedApplications?: number; + serviceTypeHealthPolicyMap?: Record; +} + +// @public (undocumented) +export interface ArmRollingUpgradeMonitoringPolicy { + failureAction?: "Rollback" | "Manual"; + healthCheckRetryTimeout?: string; + healthCheckStableDuration?: string; + healthCheckWaitDuration?: string; + upgradeDomainTimeout?: string; + upgradeTimeout?: string; +} + +// @public (undocumented) +export interface ArmRollingUpgradeMonitoringPolicyOutput { + failureAction?: "Rollback" | "Manual"; + healthCheckRetryTimeout?: string; + healthCheckStableDuration?: string; + healthCheckWaitDuration?: string; + upgradeDomainTimeout?: string; + upgradeTimeout?: string; +} + +// @public (undocumented) +export interface ArmServiceTypeHealthPolicy { + maxPercentUnhealthyPartitionsPerService?: number; + maxPercentUnhealthyReplicasPerPartition?: number; + maxPercentUnhealthyServices?: number; +} + +// @public (undocumented) +export interface ArmServiceTypeHealthPolicyOutput { + maxPercentUnhealthyPartitionsPerService?: number; + maxPercentUnhealthyReplicasPerPartition?: number; + maxPercentUnhealthyServices?: number; +} + +// @public (undocumented) +export interface AvailableOperationDisplayOutput { + description?: string; + operation?: string; + provider?: string; + resource?: string; +} + +// @public (undocumented) +export interface AzureActiveDirectory { + clientApplication?: string; + clusterApplication?: string; + tenantId?: string; +} + +// @public (undocumented) +export interface AzureActiveDirectoryOutput { + clientApplication?: string; + clusterApplication?: string; + tenantId?: string; +} + +// @public (undocumented) +export interface CertificateDescription { + thumbprint: string; + thumbprintSecondary?: string; + x509StoreName?: "AddressBook" | "AuthRoot" | "CertificateAuthority" | "Disallowed" | "My" | "Root" | "TrustedPeople" | "TrustedPublisher"; +} + +// @public (undocumented) +export interface CertificateDescriptionOutput { + thumbprint: string; + thumbprintSecondary?: string; + x509StoreName?: "AddressBook" | "AuthRoot" | "CertificateAuthority" | "Disallowed" | "My" | "Root" | "TrustedPeople" | "TrustedPublisher"; +} + +// @public (undocumented) +export interface ClientCertificateCommonName { + certificateCommonName: string; + certificateIssuerThumbprint: string; + isAdmin: boolean; +} + +// @public (undocumented) +export interface ClientCertificateCommonNameOutput { + certificateCommonName: string; + certificateIssuerThumbprint: string; + isAdmin: boolean; +} + +// @public (undocumented) +export interface ClientCertificateThumbprint { + certificateThumbprint: string; + isAdmin: boolean; +} + +// @public (undocumented) +export interface ClientCertificateThumbprintOutput { + certificateThumbprint: string; + isAdmin: boolean; +} + +// @public (undocumented) +export interface Cluster extends Resource { + properties?: ClusterProperties; +} + +// @public (undocumented) +export interface ClusterCodeVersionsListResultOutput { + nextLink?: string; + // (undocumented) + value?: Array; +} + +// @public (undocumented) +export interface ClusterCodeVersionsResultOutput { + id?: string; + name?: string; + properties?: ClusterVersionDetailsOutput; + type?: string; +} + +// @public (undocumented) +export interface ClusterHealthPolicy { + applicationHealthPolicies?: Record; + maxPercentUnhealthyApplications?: number; + maxPercentUnhealthyNodes?: number; +} + +// @public (undocumented) +export interface ClusterHealthPolicyOutput { + applicationHealthPolicies?: Record; + maxPercentUnhealthyApplications?: number; + maxPercentUnhealthyNodes?: number; +} + +// @public (undocumented) +export interface ClusterListResultOutput { + nextLink?: string; + // (undocumented) + value?: Array; +} + +// @public (undocumented) +export interface ClusterOutput extends ResourceOutput { + properties?: ClusterPropertiesOutput; +} + +// @public (undocumented) +export interface ClusterProperties { + addOnFeatures?: Array<"RepairManager" | "DnsService" | "BackupRestoreService" | "ResourceMonitorService">; + applicationTypeVersionsCleanupPolicy?: ApplicationTypeVersionsCleanupPolicy; + availableClusterVersions?: Array; + azureActiveDirectory?: AzureActiveDirectory; + certificate?: CertificateDescription; + certificateCommonNames?: ServerCertificateCommonNames; + clientCertificateCommonNames?: Array; + clientCertificateThumbprints?: Array; + clusterCodeVersion?: string; + clusterEndpoint?: string; + clusterId?: string; + clusterState?: "WaitingForNodes" | "Deploying" | "BaselineUpgrade" | "UpdatingUserConfiguration" | "UpdatingUserCertificate" | "UpdatingInfrastructure" | "EnforcingClusterVersion" | "UpgradeServiceUnreachable" | "AutoScale" | "Ready"; + diagnosticsStorageAccountConfig?: DiagnosticsStorageAccountConfig; + eventStoreServiceEnabled?: boolean; + fabricSettings?: Array; + infrastructureServiceManager?: boolean; + managementEndpoint: string; + nodeTypes: Array; + notifications?: Array; + provisioningState?: "Updating" | "Succeeded" | "Failed" | "Canceled"; + reliabilityLevel?: "None" | "Bronze" | "Silver" | "Gold" | "Platinum"; + reverseProxyCertificate?: CertificateDescription; + reverseProxyCertificateCommonNames?: ServerCertificateCommonNames; + sfZonalUpgradeMode?: "Parallel" | "Hierarchical"; + upgradeDescription?: ClusterUpgradePolicy; + upgradeMode?: "Automatic" | "Manual"; + upgradePauseEndTimestampUtc?: Date | string; + upgradePauseStartTimestampUtc?: Date | string; + upgradeWave?: "Wave0" | "Wave1" | "Wave2"; + vmImage?: string; + vmssZonalUpgradeMode?: "Parallel" | "Hierarchical"; + waveUpgradePaused?: boolean; +} + +// @public (undocumented) +export interface ClusterPropertiesOutput { + addOnFeatures?: Array<"RepairManager" | "DnsService" | "BackupRestoreService" | "ResourceMonitorService">; + applicationTypeVersionsCleanupPolicy?: ApplicationTypeVersionsCleanupPolicyOutput; + availableClusterVersions?: Array; + azureActiveDirectory?: AzureActiveDirectoryOutput; + certificate?: CertificateDescriptionOutput; + certificateCommonNames?: ServerCertificateCommonNamesOutput; + clientCertificateCommonNames?: Array; + clientCertificateThumbprints?: Array; + clusterCodeVersion?: string; + clusterEndpoint?: string; + clusterId?: string; + clusterState?: "WaitingForNodes" | "Deploying" | "BaselineUpgrade" | "UpdatingUserConfiguration" | "UpdatingUserCertificate" | "UpdatingInfrastructure" | "EnforcingClusterVersion" | "UpgradeServiceUnreachable" | "AutoScale" | "Ready"; + diagnosticsStorageAccountConfig?: DiagnosticsStorageAccountConfigOutput; + eventStoreServiceEnabled?: boolean; + fabricSettings?: Array; + infrastructureServiceManager?: boolean; + managementEndpoint: string; + nodeTypes: Array; + notifications?: Array; + provisioningState?: "Updating" | "Succeeded" | "Failed" | "Canceled"; + reliabilityLevel?: "None" | "Bronze" | "Silver" | "Gold" | "Platinum"; + reverseProxyCertificate?: CertificateDescriptionOutput; + reverseProxyCertificateCommonNames?: ServerCertificateCommonNamesOutput; + sfZonalUpgradeMode?: "Parallel" | "Hierarchical"; + upgradeDescription?: ClusterUpgradePolicyOutput; + upgradeMode?: "Automatic" | "Manual"; + upgradePauseEndTimestampUtc?: string; + upgradePauseStartTimestampUtc?: string; + upgradeWave?: "Wave0" | "Wave1" | "Wave2"; + vmImage?: string; + vmssZonalUpgradeMode?: "Parallel" | "Hierarchical"; + waveUpgradePaused?: boolean; +} + +// @public (undocumented) +export interface ClusterPropertiesUpdateParameters { + addOnFeatures?: Array<"RepairManager" | "DnsService" | "BackupRestoreService" | "ResourceMonitorService">; + applicationTypeVersionsCleanupPolicy?: ApplicationTypeVersionsCleanupPolicy; + certificate?: CertificateDescription; + certificateCommonNames?: ServerCertificateCommonNames; + clientCertificateCommonNames?: Array; + clientCertificateThumbprints?: Array; + clusterCodeVersion?: string; + eventStoreServiceEnabled?: boolean; + fabricSettings?: Array; + infrastructureServiceManager?: boolean; + nodeTypes?: Array; + notifications?: Array; + reliabilityLevel?: "None" | "Bronze" | "Silver" | "Gold" | "Platinum"; + reverseProxyCertificate?: CertificateDescription; + sfZonalUpgradeMode?: "Parallel" | "Hierarchical"; + upgradeDescription?: ClusterUpgradePolicy; + upgradeMode?: "Automatic" | "Manual"; + upgradePauseEndTimestampUtc?: Date | string; + upgradePauseStartTimestampUtc?: Date | string; + upgradeWave?: "Wave0" | "Wave1" | "Wave2"; + vmssZonalUpgradeMode?: "Parallel" | "Hierarchical"; + waveUpgradePaused?: boolean; +} + +// @public +export interface ClustersCreateOrUpdate200Response extends HttpResponse { + // (undocumented) + body: ClusterOutput; + // (undocumented) + status: "200"; +} + +// @public +export interface ClustersCreateOrUpdate202Response extends HttpResponse { + // (undocumented) + body: ClusterOutput; + // (undocumented) + status: "202"; +} + +// @public (undocumented) +export interface ClustersCreateOrUpdateBodyParam { + body: Cluster; +} + +// @public +export interface ClustersCreateOrUpdatedefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export interface ClustersCreateOrUpdateMediaTypesParam { + contentType?: "application/json"; +} + +// @public (undocumented) +export type ClustersCreateOrUpdateParameters = ClustersCreateOrUpdateMediaTypesParam & ClustersCreateOrUpdateBodyParam & RequestParameters; + +// @public +export interface ClustersDelete200Response extends HttpResponse { + // (undocumented) + body: Record; + // (undocumented) + status: "200"; +} + +// @public +export interface ClustersDelete204Response extends HttpResponse { + // (undocumented) + body: Record; + // (undocumented) + status: "204"; +} + +// @public +export interface ClustersDeletedefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type ClustersDeleteParameters = RequestParameters; + +// @public (undocumented) +export interface ClustersGet { + delete(options?: ClustersDeleteParameters): StreamableMethod; + get(options?: ClustersGetParameters): StreamableMethod; + patch(options: ClustersUpdateParameters): StreamableMethod; + put(options: ClustersCreateOrUpdateParameters): StreamableMethod; +} + +// @public +export interface ClustersGet200Response extends HttpResponse { + // (undocumented) + body: ClusterOutput; + // (undocumented) + status: "200"; +} + +// @public +export interface ClustersGetdefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type ClustersGetParameters = RequestParameters; + +// @public (undocumented) +export interface ClustersList { + get(options?: ClustersListParameters): StreamableMethod; +} + +// @public +export interface ClustersList200Response extends HttpResponse { + // (undocumented) + body: ClusterListResultOutput; + // (undocumented) + status: "200"; +} + +// @public (undocumented) +export interface ClustersListByResourceGroup { + get(options?: ClustersListByResourceGroupParameters): StreamableMethod; +} + +// @public +export interface ClustersListByResourceGroup200Response extends HttpResponse { + // (undocumented) + body: ClusterListResultOutput; + // (undocumented) + status: "200"; +} + +// @public +export interface ClustersListByResourceGroupdefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type ClustersListByResourceGroupParameters = RequestParameters; + +// @public +export interface ClustersListdefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type ClustersListParameters = RequestParameters; + +// @public (undocumented) +export interface ClustersListUpgradableVersions { + post(options?: ClustersListUpgradableVersionsParameters): StreamableMethod; +} + +// @public +export interface ClustersListUpgradableVersions200Response extends HttpResponse { + // (undocumented) + body: UpgradableVersionPathResultOutput; + // (undocumented) + status: "200"; +} + +// @public (undocumented) +export interface ClustersListUpgradableVersionsBodyParam { + body?: UpgradableVersionsDescription; +} + +// @public +export interface ClustersListUpgradableVersionsdefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export interface ClustersListUpgradableVersionsMediaTypesParam { + contentType?: "application/json"; +} + +// @public (undocumented) +export type ClustersListUpgradableVersionsParameters = ClustersListUpgradableVersionsMediaTypesParam & ClustersListUpgradableVersionsBodyParam & RequestParameters; + +// @public +export interface ClustersUpdate200Response extends HttpResponse { + // (undocumented) + body: ClusterOutput; + // (undocumented) + status: "200"; +} + +// @public +export interface ClustersUpdate202Response extends HttpResponse { + // (undocumented) + body: ClusterOutput; + // (undocumented) + status: "202"; +} + +// @public (undocumented) +export interface ClustersUpdateBodyParam { + body: ClusterUpdateParameters; +} + +// @public +export interface ClustersUpdatedefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export interface ClustersUpdateMediaTypesParam { + contentType?: "application/json"; +} + +// @public (undocumented) +export type ClustersUpdateParameters = ClustersUpdateMediaTypesParam & ClustersUpdateBodyParam & RequestParameters; + +// @public (undocumented) +export interface ClusterUpdateParameters { + properties?: ClusterPropertiesUpdateParameters; + tags?: Record; +} + +// @public (undocumented) +export interface ClusterUpgradeDeltaHealthPolicy { + applicationDeltaHealthPolicies?: Record; + maxPercentDeltaUnhealthyApplications: number; + maxPercentDeltaUnhealthyNodes: number; + maxPercentUpgradeDomainDeltaUnhealthyNodes: number; +} + +// @public (undocumented) +export interface ClusterUpgradeDeltaHealthPolicyOutput { + applicationDeltaHealthPolicies?: Record; + maxPercentDeltaUnhealthyApplications: number; + maxPercentDeltaUnhealthyNodes: number; + maxPercentUpgradeDomainDeltaUnhealthyNodes: number; +} + +// @public (undocumented) +export interface ClusterUpgradePolicy { + deltaHealthPolicy?: ClusterUpgradeDeltaHealthPolicy; + forceRestart?: boolean; + healthCheckRetryTimeout: string; + healthCheckStableDuration: string; + healthCheckWaitDuration: string; + healthPolicy: ClusterHealthPolicy; + upgradeDomainTimeout: string; + upgradeReplicaSetCheckTimeout: string; + upgradeTimeout: string; +} + +// @public (undocumented) +export interface ClusterUpgradePolicyOutput { + deltaHealthPolicy?: ClusterUpgradeDeltaHealthPolicyOutput; + forceRestart?: boolean; + healthCheckRetryTimeout: string; + healthCheckStableDuration: string; + healthCheckWaitDuration: string; + healthPolicy: ClusterHealthPolicyOutput; + upgradeDomainTimeout: string; + upgradeReplicaSetCheckTimeout: string; + upgradeTimeout: string; +} + +// @public (undocumented) +export interface ClusterVersionDetails { + codeVersion?: string; + environment?: "Windows" | "Linux"; + supportExpiryUtc?: string; +} + +// @public (undocumented) +export interface ClusterVersionDetailsOutput { + codeVersion?: string; + environment?: "Windows" | "Linux"; + supportExpiryUtc?: string; +} + +// @public (undocumented) +export interface ClusterVersionsGet { + get(options?: ClusterVersionsGetParameters): StreamableMethod; +} + +// @public +export interface ClusterVersionsGet200Response extends HttpResponse { + // (undocumented) + body: ClusterCodeVersionsListResultOutput; + // (undocumented) + status: "200"; +} + +// @public (undocumented) +export interface ClusterVersionsGetByEnvironment { + get(options?: ClusterVersionsGetByEnvironmentParameters): StreamableMethod; +} + +// @public +export interface ClusterVersionsGetByEnvironment200Response extends HttpResponse { + // (undocumented) + body: ClusterCodeVersionsListResultOutput; + // (undocumented) + status: "200"; +} + +// @public +export interface ClusterVersionsGetByEnvironmentdefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type ClusterVersionsGetByEnvironmentParameters = RequestParameters; + +// @public +export interface ClusterVersionsGetdefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type ClusterVersionsGetParameters = RequestParameters; + +// @public (undocumented) +export interface ClusterVersionsList { + get(options?: ClusterVersionsListParameters): StreamableMethod; +} + +// @public +export interface ClusterVersionsList200Response extends HttpResponse { + // (undocumented) + body: ClusterCodeVersionsListResultOutput; + // (undocumented) + status: "200"; +} + +// @public (undocumented) +export interface ClusterVersionsListByEnvironment { + get(options?: ClusterVersionsListByEnvironmentParameters): StreamableMethod; +} + +// @public +export interface ClusterVersionsListByEnvironment200Response extends HttpResponse { + // (undocumented) + body: ClusterCodeVersionsListResultOutput; + // (undocumented) + status: "200"; +} + +// @public +export interface ClusterVersionsListByEnvironmentdefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type ClusterVersionsListByEnvironmentParameters = RequestParameters; + +// @public +export interface ClusterVersionsListdefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type ClusterVersionsListParameters = RequestParameters; + +// @public (undocumented) +function createClient(credentials: TokenCredential, options?: ClientOptions): ServiceFabricClient; +export default createClient; + +// @public (undocumented) +export interface DiagnosticsStorageAccountConfig { + blobEndpoint: string; + protectedAccountKeyName: string; + protectedAccountKeyName2?: string; + queueEndpoint: string; + storageAccountName: string; + tableEndpoint: string; +} + +// @public (undocumented) +export interface DiagnosticsStorageAccountConfigOutput { + blobEndpoint: string; + protectedAccountKeyName: string; + protectedAccountKeyName2?: string; + queueEndpoint: string; + storageAccountName: string; + tableEndpoint: string; +} + +// @public (undocumented) +export interface EndpointRangeDescription { + endPort: number; + startPort: number; +} + +// @public (undocumented) +export interface EndpointRangeDescriptionOutput { + endPort: number; + startPort: number; +} + +// @public (undocumented) +export interface ErrorModelErrorOutput { + code?: string; + message?: string; +} + +// @public (undocumented) +export interface ErrorModelOutput { + error?: ErrorModelErrorOutput; +} + +// @public +export type GetArrayType = T extends Array ? TData : never; + +// @public +export function getLongRunningPoller(client: Client, initialResponse: TResult, options?: LroEngineOptions>): PollerLike, TResult>; + +// @public +export type GetPage = (pageLink: string, maxPageSize?: number) => Promise<{ + page: TPage; + nextPageLink?: string; +}>; + +// @public (undocumented) +export function isUnexpected(response: ClustersGet200Response | ClustersGetdefaultResponse): response is ClustersGetdefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ClustersCreateOrUpdate200Response | ClustersCreateOrUpdate202Response | ClustersCreateOrUpdatedefaultResponse): response is ClustersCreateOrUpdatedefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ClustersUpdate200Response | ClustersUpdate202Response | ClustersUpdatedefaultResponse): response is ClustersUpdatedefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ClustersDelete200Response | ClustersDelete204Response | ClustersDeletedefaultResponse): response is ClustersDeletedefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ClustersListByResourceGroup200Response | ClustersListByResourceGroupdefaultResponse): response is ClustersListByResourceGroupdefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ClustersList200Response | ClustersListdefaultResponse): response is ClustersListdefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ClustersListUpgradableVersions200Response | ClustersListUpgradableVersionsdefaultResponse): response is ClustersListUpgradableVersionsdefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ClusterVersionsGet200Response | ClusterVersionsGetdefaultResponse): response is ClusterVersionsGetdefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ClusterVersionsGetByEnvironment200Response | ClusterVersionsGetByEnvironmentdefaultResponse): response is ClusterVersionsGetByEnvironmentdefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ClusterVersionsList200Response | ClusterVersionsListdefaultResponse): response is ClusterVersionsListdefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ClusterVersionsListByEnvironment200Response | ClusterVersionsListByEnvironmentdefaultResponse): response is ClusterVersionsListByEnvironmentdefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: OperationsList200Response | OperationsListdefaultResponse): response is OperationsListdefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ApplicationTypesGet200Response | ApplicationTypesGetdefaultResponse): response is ApplicationTypesGetdefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ApplicationTypesCreateOrUpdate200Response | ApplicationTypesCreateOrUpdatedefaultResponse): response is ApplicationTypesCreateOrUpdatedefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ApplicationTypesDelete202Response | ApplicationTypesDelete204Response | ApplicationTypesDeletedefaultResponse): response is ApplicationTypesDeletedefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ApplicationTypesList200Response | ApplicationTypesListdefaultResponse): response is ApplicationTypesListdefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ApplicationTypeVersionsGet200Response | ApplicationTypeVersionsGetdefaultResponse): response is ApplicationTypeVersionsGetdefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ApplicationTypeVersionsCreateOrUpdate202Response | ApplicationTypeVersionsCreateOrUpdatedefaultResponse): response is ApplicationTypeVersionsCreateOrUpdatedefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ApplicationTypeVersionsDelete202Response | ApplicationTypeVersionsDelete204Response | ApplicationTypeVersionsDeletedefaultResponse): response is ApplicationTypeVersionsDeletedefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ApplicationTypeVersionsList200Response | ApplicationTypeVersionsListdefaultResponse): response is ApplicationTypeVersionsListdefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ApplicationsGet200Response | ApplicationsGetdefaultResponse): response is ApplicationsGetdefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ApplicationsCreateOrUpdate202Response | ApplicationsCreateOrUpdatedefaultResponse): response is ApplicationsCreateOrUpdatedefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ApplicationsUpdate202Response | ApplicationsUpdatedefaultResponse): response is ApplicationsUpdatedefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ApplicationsDelete202Response | ApplicationsDelete204Response | ApplicationsDeletedefaultResponse): response is ApplicationsDeletedefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ApplicationsList200Response | ApplicationsListdefaultResponse): response is ApplicationsListdefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ServicesGet200Response | ServicesGetdefaultResponse): response is ServicesGetdefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ServicesCreateOrUpdate202Response | ServicesCreateOrUpdatedefaultResponse): response is ServicesCreateOrUpdatedefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ServicesUpdate202Response | ServicesUpdatedefaultResponse): response is ServicesUpdatedefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ServicesDelete202Response | ServicesDelete204Response | ServicesDeletedefaultResponse): response is ServicesDeletedefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ServicesList200Response | ServicesListdefaultResponse): response is ServicesListdefaultResponse; + +// @public (undocumented) +export interface ManagedIdentity { + principalId?: string; + tenantId?: string; + type?: "SystemAssigned" | "UserAssigned" | "SystemAssigned, UserAssigned" | "None"; + userAssignedIdentities?: Record; +} + +// @public (undocumented) +export interface ManagedIdentityOutput { + principalId?: string; + tenantId?: string; + type?: "SystemAssigned" | "UserAssigned" | "SystemAssigned, UserAssigned" | "None"; + userAssignedIdentities?: Record; +} + +// @public (undocumented) +export interface NamedPartitionSchemeDescription extends PartitionSchemeDescriptionParent { + count: number; + names: Array; + // (undocumented) + partitionScheme: "Named"; +} + +// @public (undocumented) +export interface NamedPartitionSchemeDescriptionOutput extends PartitionSchemeDescriptionOutputParent { + count: number; + names: Array; + // (undocumented) + partitionScheme: "Named"; +} + +// @public (undocumented) +export interface NodeTypeDescription { + applicationPorts?: EndpointRangeDescription; + capacities?: Record; + clientConnectionEndpointPort: number; + durabilityLevel?: "Bronze" | "Silver" | "Gold"; + ephemeralPorts?: EndpointRangeDescription; + httpGatewayEndpointPort: number; + isPrimary: boolean; + isStateless?: boolean; + multipleAvailabilityZones?: boolean; + name: string; + placementProperties?: Record; + reverseProxyEndpointPort?: number; + vmInstanceCount: number; +} + +// @public (undocumented) +export interface NodeTypeDescriptionOutput { + applicationPorts?: EndpointRangeDescriptionOutput; + capacities?: Record; + clientConnectionEndpointPort: number; + durabilityLevel?: "Bronze" | "Silver" | "Gold"; + ephemeralPorts?: EndpointRangeDescriptionOutput; + httpGatewayEndpointPort: number; + isPrimary: boolean; + isStateless?: boolean; + multipleAvailabilityZones?: boolean; + name: string; + placementProperties?: Record; + reverseProxyEndpointPort?: number; + vmInstanceCount: number; +} + +// @public (undocumented) +export interface Notification { + isEnabled: boolean; + notificationCategory: "WaveProgress"; + notificationLevel: "Critical" | "All"; + notificationTargets: Array; +} + +// @public (undocumented) +export interface NotificationOutput { + isEnabled: boolean; + notificationCategory: "WaveProgress"; + notificationLevel: "Critical" | "All"; + notificationTargets: Array; +} + +// @public (undocumented) +export interface NotificationTarget { + notificationChannel: "EmailUser" | "EmailSubscription"; + receivers: Array; +} + +// @public (undocumented) +export interface NotificationTargetOutput { + notificationChannel: "EmailUser" | "EmailSubscription"; + receivers: Array; +} + +// @public (undocumented) +export interface OperationListResultOutput { + nextLink?: string; + value?: Array; +} + +// @public (undocumented) +export interface OperationResultOutput { + display?: AvailableOperationDisplayOutput; + isDataAction?: boolean; + name?: string; + nextLink?: string; + origin?: string; +} + +// @public (undocumented) +export interface OperationsList { + get(options?: OperationsListParameters): StreamableMethod; +} + +// @public +export interface OperationsList200Response extends HttpResponse { + // (undocumented) + body: OperationListResultOutput; + // (undocumented) + status: "200"; +} + +// @public +export interface OperationsListdefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type OperationsListParameters = RequestParameters; + +// @public +export function paginate(client: Client, initialResponse: TResponse, options?: PagingOptions): PagedAsyncIterableIterator>; + +// @public +export type PaginateReturn = TResult extends { + body: { + value?: infer TPage; + }; +} ? GetArrayType : Array; + +// @public +export interface PagingOptions { + customGetPage?: GetPage[]>; +} + +// @public (undocumented) +export type PartitionSchemeDescription = NamedPartitionSchemeDescription | SingletonPartitionSchemeDescription | UniformInt64RangePartitionSchemeDescription; + +// @public (undocumented) +export type PartitionSchemeDescriptionOutput = NamedPartitionSchemeDescriptionOutput | SingletonPartitionSchemeDescriptionOutput | UniformInt64RangePartitionSchemeDescriptionOutput; + +// @public (undocumented) +export interface PartitionSchemeDescriptionOutputParent { + // (undocumented) + partitionScheme: "PartitionSchemeDescription" | "Named" | "Singleton" | "UniformInt64Range"; +} + +// @public (undocumented) +export interface PartitionSchemeDescriptionParent { + // (undocumented) + partitionScheme: "PartitionSchemeDescription" | "Named" | "Singleton" | "UniformInt64Range"; +} + +// @public (undocumented) +export interface ProxyResource { + etag?: string; + id?: string; + location?: string; + name?: string; + systemData?: SystemData; + tags?: Record; + type?: string; +} + +// @public (undocumented) +export interface ProxyResourceOutput { + etag?: string; + id?: string; + location?: string; + name?: string; + systemData?: SystemDataOutput; + tags?: Record; + type?: string; +} + +// @public (undocumented) +export interface Resource { + etag?: string; + id?: string; + location: string; + name?: string; + systemData?: SystemData; + tags?: Record; + type?: string; +} + +// @public (undocumented) +export interface ResourceOutput { + etag?: string; + id?: string; + location: string; + name?: string; + systemData?: SystemDataOutput; + tags?: Record; + type?: string; +} + +// @public (undocumented) +export interface Routes { + (path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters/{clusterName}", subscriptionId: string, resourceGroupName: string, clusterName: string): ClustersGet; + (path: "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters", subscriptionId: string, resourceGroupName: string): ClustersListByResourceGroup; + (path: "/subscriptions/{subscriptionId}/providers/Microsoft.ServiceFabric/clusters", subscriptionId: string): ClustersList; + (path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters/{clusterName}/listUpgradableVersions", subscriptionId: string, resourceGroupName: string, clusterName: string): ClustersListUpgradableVersions; + (path: "/subscriptions/{subscriptionId}/providers/Microsoft.ServiceFabric/locations/{location}/clusterVersions/{clusterVersion}", subscriptionId: string, location: string, clusterVersion: string): ClusterVersionsGet; + (path: "/subscriptions/{subscriptionId}/providers/Microsoft.ServiceFabric/locations/{location}/environments/{environment}/clusterVersions/{clusterVersion}", subscriptionId: string, location: string, environment: "Windows" | "Linux", clusterVersion: string): ClusterVersionsGetByEnvironment; + (path: "/subscriptions/{subscriptionId}/providers/Microsoft.ServiceFabric/locations/{location}/clusterVersions", subscriptionId: string, location: string): ClusterVersionsList; + (path: "/subscriptions/{subscriptionId}/providers/Microsoft.ServiceFabric/locations/{location}/environments/{environment}/clusterVersions", subscriptionId: string, location: string, environment: "Windows" | "Linux"): ClusterVersionsListByEnvironment; + (path: "/providers/Microsoft.ServiceFabric/operations"): OperationsList; + (path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters/{clusterName}/applicationTypes/{applicationTypeName}", subscriptionId: string, resourceGroupName: string, clusterName: string, applicationTypeName: string): ApplicationTypesGet; + (path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters/{clusterName}/applicationTypes", subscriptionId: string, resourceGroupName: string, clusterName: string): ApplicationTypesList; + (path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters/{clusterName}/applicationTypes/{applicationTypeName}/versions/{version}", subscriptionId: string, resourceGroupName: string, clusterName: string, applicationTypeName: string, version: string): ApplicationTypeVersionsGet; + (path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters/{clusterName}/applicationTypes/{applicationTypeName}/versions", subscriptionId: string, resourceGroupName: string, clusterName: string, applicationTypeName: string): ApplicationTypeVersionsList; + (path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters/{clusterName}/applications/{applicationName}", subscriptionId: string, resourceGroupName: string, clusterName: string, applicationName: string): ApplicationsGet; + (path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters/{clusterName}/applications", subscriptionId: string, resourceGroupName: string, clusterName: string): ApplicationsList; + (path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters/{clusterName}/applications/{applicationName}/services/{serviceName}", subscriptionId: string, resourceGroupName: string, clusterName: string, applicationName: string, serviceName: string): ServicesGet; + (path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters/{clusterName}/applications/{applicationName}/services", subscriptionId: string, resourceGroupName: string, clusterName: string, applicationName: string): ServicesList; +} + +// @public (undocumented) +export interface ServerCertificateCommonName { + certificateCommonName: string; + certificateIssuerThumbprint: string; +} + +// @public (undocumented) +export interface ServerCertificateCommonNameOutput { + certificateCommonName: string; + certificateIssuerThumbprint: string; +} + +// @public (undocumented) +export interface ServerCertificateCommonNames { + commonNames?: Array; + x509StoreName?: "AddressBook" | "AuthRoot" | "CertificateAuthority" | "Disallowed" | "My" | "Root" | "TrustedPeople" | "TrustedPublisher"; +} + +// @public (undocumented) +export interface ServerCertificateCommonNamesOutput { + commonNames?: Array; + x509StoreName?: "AddressBook" | "AuthRoot" | "CertificateAuthority" | "Disallowed" | "My" | "Root" | "TrustedPeople" | "TrustedPublisher"; +} + +// @public (undocumented) +export interface ServiceCorrelationDescription { + scheme: "Invalid" | "Affinity" | "AlignedAffinity" | "NonAlignedAffinity"; + serviceName: string; +} + +// @public (undocumented) +export interface ServiceCorrelationDescriptionOutput { + scheme: "Invalid" | "Affinity" | "AlignedAffinity" | "NonAlignedAffinity"; + serviceName: string; +} + +// @public (undocumented) +export type ServiceFabricClient = Client & { + path: Routes; +}; + +// @public (undocumented) +export interface ServiceLoadMetricDescription { + defaultLoad?: number; + name: string; + primaryDefaultLoad?: number; + secondaryDefaultLoad?: number; + weight?: "Zero" | "Low" | "Medium" | "High"; +} + +// @public (undocumented) +export interface ServiceLoadMetricDescriptionOutput { + defaultLoad?: number; + name: string; + primaryDefaultLoad?: number; + secondaryDefaultLoad?: number; + weight?: "Zero" | "Low" | "Medium" | "High"; +} + +// @public (undocumented) +export interface ServicePlacementPolicyDescription { + // (undocumented) + type: "ServicePlacementPolicyDescription"; +} + +// @public (undocumented) +export interface ServicePlacementPolicyDescriptionOutput { + // (undocumented) + type: "ServicePlacementPolicyDescription"; +} + +// @public (undocumented) +export interface ServiceResource extends ProxyResource { + properties?: ServiceResourceProperties; +} + +// @public (undocumented) +export interface ServiceResourceListOutput { + nextLink?: string; + // (undocumented) + value?: Array; +} + +// @public (undocumented) +export interface ServiceResourceOutput extends ProxyResourceOutput { + properties?: ServiceResourcePropertiesOutput; +} + +// @public (undocumented) +export type ServiceResourceProperties = StatefulServiceProperties | StatelessServiceProperties; + +// @public (undocumented) +export interface ServiceResourcePropertiesBase { + correlationScheme?: Array; + defaultMoveCost?: "Zero" | "Low" | "Medium" | "High"; + placementConstraints?: string; + serviceLoadMetrics?: Array; + servicePlacementPolicies?: Array; +} + +// @public (undocumented) +export interface ServiceResourcePropertiesBaseOutput { + correlationScheme?: Array; + defaultMoveCost?: "Zero" | "Low" | "Medium" | "High"; + placementConstraints?: string; + serviceLoadMetrics?: Array; + servicePlacementPolicies?: Array; +} + +// @public (undocumented) +export type ServiceResourcePropertiesOutput = StatefulServicePropertiesOutput | StatelessServicePropertiesOutput; + +// @public (undocumented) +export interface ServiceResourcePropertiesOutputParent extends ServiceResourcePropertiesBaseOutput { + partitionDescription?: PartitionSchemeDescriptionOutput; + provisioningState?: string; + serviceDnsName?: string; + // (undocumented) + serviceKind: "ServiceResourceProperties" | "Stateful" | "Stateless"; + servicePackageActivationMode?: "SharedProcess" | "ExclusiveProcess"; + serviceTypeName?: string; +} + +// @public (undocumented) +export interface ServiceResourcePropertiesParent extends ServiceResourcePropertiesBase { + partitionDescription?: PartitionSchemeDescription; + provisioningState?: string; + serviceDnsName?: string; + // (undocumented) + serviceKind: "ServiceResourceProperties" | "Stateful" | "Stateless"; + servicePackageActivationMode?: "SharedProcess" | "ExclusiveProcess"; + serviceTypeName?: string; +} + +// @public (undocumented) +export interface ServiceResourceUpdate extends ProxyResource { + properties?: ServiceResourceUpdateProperties; +} + +// @public (undocumented) +export interface ServiceResourceUpdateOutput extends ProxyResourceOutput { + properties?: ServiceResourceUpdatePropertiesOutput; +} + +// @public (undocumented) +export type ServiceResourceUpdateProperties = StatefulServiceUpdateProperties | StatelessServiceUpdateProperties; + +// @public (undocumented) +export type ServiceResourceUpdatePropertiesOutput = StatefulServiceUpdatePropertiesOutput | StatelessServiceUpdatePropertiesOutput; + +// @public (undocumented) +export interface ServiceResourceUpdatePropertiesOutputParent extends ServiceResourcePropertiesBaseOutput { + // (undocumented) + serviceKind: "ServiceResourceUpdateProperties" | "Stateful" | "Stateless"; +} + +// @public (undocumented) +export interface ServiceResourceUpdatePropertiesParent extends ServiceResourcePropertiesBase { + // (undocumented) + serviceKind: "ServiceResourceUpdateProperties" | "Stateful" | "Stateless"; +} + +// @public +export interface ServicesCreateOrUpdate202Response extends HttpResponse { + // (undocumented) + body: ServiceResourceOutput; + // (undocumented) + status: "202"; +} + +// @public (undocumented) +export interface ServicesCreateOrUpdateBodyParam { + body: ServiceResource; +} + +// @public +export interface ServicesCreateOrUpdatedefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export interface ServicesCreateOrUpdateMediaTypesParam { + contentType?: "application/json"; +} + +// @public (undocumented) +export type ServicesCreateOrUpdateParameters = ServicesCreateOrUpdateMediaTypesParam & ServicesCreateOrUpdateBodyParam & RequestParameters; + +// @public +export interface ServicesDelete202Response extends HttpResponse { + // (undocumented) + body: Record; + // (undocumented) + status: "202"; +} + +// @public +export interface ServicesDelete204Response extends HttpResponse { + // (undocumented) + body: Record; + // (undocumented) + status: "204"; +} + +// @public +export interface ServicesDeletedefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type ServicesDeleteParameters = RequestParameters; + +// @public (undocumented) +export interface ServicesGet { + delete(options?: ServicesDeleteParameters): StreamableMethod; + get(options?: ServicesGetParameters): StreamableMethod; + patch(options: ServicesUpdateParameters): StreamableMethod; + put(options: ServicesCreateOrUpdateParameters): StreamableMethod; +} + +// @public +export interface ServicesGet200Response extends HttpResponse { + // (undocumented) + body: ServiceResourceOutput; + // (undocumented) + status: "200"; +} + +// @public +export interface ServicesGetdefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type ServicesGetParameters = RequestParameters; + +// @public (undocumented) +export interface ServicesList { + get(options?: ServicesListParameters): StreamableMethod; +} + +// @public +export interface ServicesList200Response extends HttpResponse { + // (undocumented) + body: ServiceResourceListOutput; + // (undocumented) + status: "200"; +} + +// @public +export interface ServicesListdefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type ServicesListParameters = RequestParameters; + +// @public +export interface ServicesUpdate202Response extends HttpResponse { + // (undocumented) + body: ServiceResourceOutput; + // (undocumented) + status: "202"; +} + +// @public (undocumented) +export interface ServicesUpdateBodyParam { + body: ServiceResourceUpdate; +} + +// @public +export interface ServicesUpdatedefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export interface ServicesUpdateMediaTypesParam { + contentType?: "application/json"; +} + +// @public (undocumented) +export type ServicesUpdateParameters = ServicesUpdateMediaTypesParam & ServicesUpdateBodyParam & RequestParameters; + +// @public (undocumented) +export interface ServiceTypeDeltaHealthPolicy { + maxPercentDeltaUnhealthyServices?: number; +} + +// @public (undocumented) +export interface ServiceTypeDeltaHealthPolicyOutput { + maxPercentDeltaUnhealthyServices?: number; +} + +// @public (undocumented) +export interface ServiceTypeHealthPolicy { + maxPercentUnhealthyServices?: number; +} + +// @public (undocumented) +export interface ServiceTypeHealthPolicyOutput { + maxPercentUnhealthyServices?: number; +} + +// @public (undocumented) +export interface SettingsParameterDescription { + name: string; + value: string; +} + +// @public (undocumented) +export interface SettingsParameterDescriptionOutput { + name: string; + value: string; +} + +// @public (undocumented) +export interface SettingsSectionDescription { + name: string; + parameters: Array; +} + +// @public (undocumented) +export interface SettingsSectionDescriptionOutput { + name: string; + parameters: Array; +} + +// @public (undocumented) +export interface SingletonPartitionSchemeDescription extends PartitionSchemeDescriptionParent { + // (undocumented) + partitionScheme: "Singleton"; +} + +// @public (undocumented) +export interface SingletonPartitionSchemeDescriptionOutput extends PartitionSchemeDescriptionOutputParent { + // (undocumented) + partitionScheme: "Singleton"; +} + +// @public (undocumented) +export interface StatefulServiceProperties extends ServiceResourcePropertiesParent { + hasPersistedState?: boolean; + minReplicaSetSize?: number; + quorumLossWaitDuration?: Date | string; + replicaRestartWaitDuration?: Date | string; + // (undocumented) + serviceKind: "Stateful"; + standByReplicaKeepDuration?: Date | string; + targetReplicaSetSize?: number; +} + +// @public (undocumented) +export interface StatefulServicePropertiesOutput extends ServiceResourcePropertiesOutputParent { + hasPersistedState?: boolean; + minReplicaSetSize?: number; + quorumLossWaitDuration?: string; + replicaRestartWaitDuration?: string; + // (undocumented) + serviceKind: "Stateful"; + standByReplicaKeepDuration?: string; + targetReplicaSetSize?: number; +} + +// @public (undocumented) +export interface StatefulServiceUpdateProperties extends ServiceResourceUpdatePropertiesParent { + minReplicaSetSize?: number; + quorumLossWaitDuration?: Date | string; + replicaRestartWaitDuration?: Date | string; + // (undocumented) + serviceKind: "Stateful"; + standByReplicaKeepDuration?: Date | string; + targetReplicaSetSize?: number; +} + +// @public (undocumented) +export interface StatefulServiceUpdatePropertiesOutput extends ServiceResourceUpdatePropertiesOutputParent { + minReplicaSetSize?: number; + quorumLossWaitDuration?: string; + replicaRestartWaitDuration?: string; + // (undocumented) + serviceKind: "Stateful"; + standByReplicaKeepDuration?: string; + targetReplicaSetSize?: number; +} + +// @public (undocumented) +export interface StatelessServiceProperties extends ServiceResourcePropertiesParent { + instanceCloseDelayDuration?: string; + instanceCount?: number; + // (undocumented) + serviceKind: "Stateless"; +} + +// @public (undocumented) +export interface StatelessServicePropertiesOutput extends ServiceResourcePropertiesOutputParent { + instanceCloseDelayDuration?: string; + instanceCount?: number; + // (undocumented) + serviceKind: "Stateless"; +} + +// @public (undocumented) +export interface StatelessServiceUpdateProperties extends ServiceResourceUpdatePropertiesParent { + instanceCloseDelayDuration?: string; + instanceCount?: number; + // (undocumented) + serviceKind: "Stateless"; +} + +// @public (undocumented) +export interface StatelessServiceUpdatePropertiesOutput extends ServiceResourceUpdatePropertiesOutputParent { + instanceCloseDelayDuration?: string; + instanceCount?: number; + // (undocumented) + serviceKind: "Stateless"; +} + +// @public (undocumented) +export interface SystemData { + createdAt?: Date | string; + createdBy?: string; + createdByType?: string; + lastModifiedAt?: Date | string; + lastModifiedBy?: string; + lastModifiedByType?: string; +} + +// @public (undocumented) +export interface SystemDataOutput { + createdAt?: string; + createdBy?: string; + createdByType?: string; + lastModifiedAt?: string; + lastModifiedBy?: string; + lastModifiedByType?: string; +} + +// @public (undocumented) +export interface UniformInt64RangePartitionSchemeDescription extends PartitionSchemeDescriptionParent { + count: number; + highKey: string; + lowKey: string; + // (undocumented) + partitionScheme: "UniformInt64Range"; +} + +// @public (undocumented) +export interface UniformInt64RangePartitionSchemeDescriptionOutput extends PartitionSchemeDescriptionOutputParent { + count: number; + highKey: string; + lowKey: string; + // (undocumented) + partitionScheme: "UniformInt64Range"; +} + +// @public (undocumented) +export interface UpgradableVersionPathResultOutput { + // (undocumented) + supportedPath?: Array; +} + +// @public (undocumented) +export interface UpgradableVersionsDescription { + targetVersion: string; +} + +// @public (undocumented) +export interface UserAssignedIdentity { + clientId?: string; + principalId?: string; +} + +// @public (undocumented) +export interface UserAssignedIdentityOutput { + clientId?: string; + principalId?: string; +} + +// (No @packageDocumentation comment for this package) + +``` diff --git a/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/misc/test-cases/rest-level-client-to-rest-level-client/current-package/CHANGELOG.md b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/misc/test-cases/rest-level-client-to-rest-level-client/current-package/CHANGELOG.md new file mode 100644 index 00000000000..daaa1db24a6 --- /dev/null +++ b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/misc/test-cases/rest-level-client-to-rest-level-client/current-package/CHANGELOG.md @@ -0,0 +1,17 @@ +# Release History + +## 1.0.0 (2024-08-16) + +### Features Added + + - Added operation group ClustersGet_DDD + - Added Interface DiagnosticsStorageAccountConfigOutput_FFF + +### Breaking Changes + + - Removed operation group ClustersGet + - Operation ClusterVersionsGet.get has a new signature + - Interface DiagnosticsStorageAccountConfig no longer has parameter protectedAccountKeyName + - Interface DiagnosticsStorageAccountConfig has a new required parameter protectedAccountKeyName_GGG + - Type of parameter diagnosticsStorageAccountConfig of interface ClusterPropertiesOutput is changed from DiagnosticsStorageAccountConfigOutput to DiagnosticsStorageAccountConfigOutput_FFF + diff --git a/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/misc/test-cases/rest-level-client-to-rest-level-client/current-package/package.json b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/misc/test-cases/rest-level-client-to-rest-level-client/current-package/package.json new file mode 100644 index 00000000000..81136257d0c --- /dev/null +++ b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/misc/test-cases/rest-level-client-to-rest-level-client/current-package/package.json @@ -0,0 +1,125 @@ +{ + "name": "@azure-rest/arm-servicefabric", + "sdk-type": "client", + "author": "Microsoft Corporation", + "version": "1.0.0", + "description": "", + "keywords": [ + "node", + "azure", + "cloud", + "typescript", + "browser", + "isomorphic" + ], + "license": "MIT", + "main": "dist/index.js", + "module": "./dist-esm/src/index.js", + "types": "./types/arm-servicefabric.d.ts", + "homepage": "https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/servicefabric/arm-servicefabric-rest/README.md", + "repository": "github:Azure/azure-sdk-for-js", + "bugs": { + "url": "https://github.com/Azure/azure-sdk-for-js/issues" + }, + "files": [ + "dist/", + "dist-esm/src/", + "types/arm-servicefabric.d.ts", + "README.md", + "LICENSE", + "review/*" + ], + "//metadata": { + "constantPaths": [ + { + "path": "swagger/README.md", + "prefix": "package-version" + } + ] + }, + "engines": { + "node": ">=18.0.0" + }, + "scripts": { + "audit": "node ../../../common/scripts/rush-audit.js && rimraf node_modules package-lock.json && npm i --package-lock-only 2>&1 && npm audit", + "build:browser": "tsc -p . && dev-tool run bundle", + "build:node": "tsc -p . && dev-tool run bundle --browser-test false", + "build:samples": "echo skipped.", + "build:test": "tsc -p . && dev-tool run bundle", + "build:debug": "tsc -p . && dev-tool run bundle && dev-tool run extract-api", + "check-format": "dev-tool run vendored prettier --list-different --config ../../../.prettierrc.json --ignore-path ../../../.prettierignore \"src/**/*.ts\" \"test/**/*.ts\" \"samples-dev/**/*.ts\" \"*.{js,json}\"", + "clean": "rimraf --glob dist dist-browser dist-esm test-dist temp types *.tgz *.log", + "execute:samples": "dev-tool samples run samples-dev", + "extract-api": "rimraf review && mkdirp ./review && dev-tool run extract-api", + "format": "dev-tool run vendored prettier --write --config ../../../.prettierrc.json --ignore-path ../../../.prettierignore \"src/**/*.ts\" \"test/**/*.ts\" \"samples-dev/**/*.ts\" \"*.{js,json}\"", + "generate:client": "autorest --typescript swagger/README.md && npm run format", + "integration-test:browser": "dev-tool run test:browser", + "integration-test:node": "dev-tool run test:node-js-input -- --timeout 5000000 'dist-esm/test/**/*.spec.js'", + "integration-test": "npm run integration-test:node && npm run integration-test:browser", + "lint:fix": "eslint package.json api-extractor.json src test --ext .ts --fix --fix-type [problem,suggestion]", + "lint": "eslint package.json api-extractor.json src test --ext .ts", + "pack": "npm pack 2>&1", + "test:browser": "npm run clean && npm run build:test && npm run unit-test:browser", + "test:node": "npm run clean && npm run build:test && npm run unit-test:node", + "test": "npm run clean && npm run build:test && npm run unit-test", + "unit-test": "npm run unit-test:node && npm run unit-test:browser", + "unit-test:node": "dev-tool run test:node-ts-input -- --timeout 1200000 --exclude 'test/**/browser/*.spec.ts' 'test/**/*.spec.ts'", + "unit-test:browser": "dev-tool run test:browser", + "build": "npm run clean && tsc -p . && dev-tool run bundle && mkdirp ./review && dev-tool run extract-api" + }, + "sideEffects": false, + "autoPublish": false, + "dependencies": { + "@azure/core-auth": "^1.3.0", + "@azure-rest/core-client": "^1.0.0", + "@azure/core-rest-pipeline": "^1.8.0", + "@azure/logger": "^1.0.0", + "tslib": "^2.2.0", + "@azure/core-paging": "^1.2.0", + "@azure/core-lro": "^2.2.0" + }, + "devDependencies": { + "@microsoft/api-extractor": "^7.31.1", + "autorest": "latest", + "@types/node": "^18.0.0", + "dotenv": "^16.0.0", + "eslint": "^8.0.0", + "mkdirp": "^3.0.1", + "rimraf": "^5.0.5", + "source-map-support": "^0.5.9", + "typescript": "~5.5.3", + "@azure/dev-tool": "^1.0.0", + "@azure/eslint-plugin-azure-sdk": "^3.0.0", + "@azure-tools/test-credential": "^1.0.0", + "@azure/identity": "^4.0.1", + "@azure-tools/test-recorder": "^3.0.0", + "mocha": "^10.0.0", + "cross-env": "^7.0.2", + "@types/chai": "^4.2.8", + "chai": "^4.2.0", + "karma-chrome-launcher": "^3.0.0", + "karma-coverage": "^2.0.0", + "karma-env-preprocessor": "^0.1.1", + "karma-firefox-launcher": "^1.1.0", + "karma-junit-reporter": "^2.0.1", + "karma-mocha-reporter": "^2.2.5", + "karma-mocha": "^2.0.1", + "karma-source-map-support": "~1.4.0", + "karma-sourcemap-loader": "^0.3.8", + "karma": "^6.2.0", + "nyc": "^17.0.0", + "ts-node": "^10.0.0", + "@types/mocha": "^10.0.0" + }, + "browser": { + "./dist-esm/test/public/utils/env.js": "./dist-esm/test/public/utils/env.browser.js" + }, + "//sampleConfiguration": { + "productName": "", + "productSlugs": [ + "azure" + ], + "disableDocsMs": true, + "apiRefLink": "https://docs.microsoft.com/javascript/api/@azure-rest/arm-servicefabric?view=azure-node-preview" + } +} diff --git a/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/misc/test-cases/rest-level-client-to-rest-level-client/current-package/review/arm-servicefabric.api.md b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/misc/test-cases/rest-level-client-to-rest-level-client/current-package/review/arm-servicefabric.api.md new file mode 100644 index 00000000000..3bc37dcb0ed --- /dev/null +++ b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/misc/test-cases/rest-level-client-to-rest-level-client/current-package/review/arm-servicefabric.api.md @@ -0,0 +1,2072 @@ +## API Report File for "@azure-rest/arm-servicefabric" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +import { Client } from '@azure-rest/core-client'; +import { ClientOptions } from '@azure-rest/core-client'; +import { HttpResponse } from '@azure-rest/core-client'; +import { LroEngineOptions } from '@azure/core-lro'; +import { PagedAsyncIterableIterator } from '@azure/core-paging'; +import { PathUncheckedResponse } from '@azure-rest/core-client'; +import { PollerLike } from '@azure/core-lro'; +import { PollOperationState } from '@azure/core-lro'; +import { RequestParameters } from '@azure-rest/core-client'; +import { StreamableMethod } from '@azure-rest/core-client'; +import { TokenCredential } from '@azure/core-auth'; + +// @public (undocumented) +export interface ApplicationDeltaHealthPolicy { + defaultServiceTypeDeltaHealthPolicy?: ServiceTypeDeltaHealthPolicy; + serviceTypeDeltaHealthPolicies?: Record; +} + +// @public (undocumented) +export interface ApplicationDeltaHealthPolicyOutput { + defaultServiceTypeDeltaHealthPolicy?: ServiceTypeDeltaHealthPolicyOutput; + serviceTypeDeltaHealthPolicies?: Record; +} + +// @public (undocumented) +export interface ApplicationHealthPolicy { + defaultServiceTypeHealthPolicy?: ServiceTypeHealthPolicy; + serviceTypeHealthPolicies?: Record; +} + +// @public (undocumented) +export interface ApplicationHealthPolicyOutput { + defaultServiceTypeHealthPolicy?: ServiceTypeHealthPolicyOutput; + serviceTypeHealthPolicies?: Record; +} + +// @public (undocumented) +export interface ApplicationMetricDescription { + maximumCapacity?: number; + name?: string; + reservationCapacity?: number; + totalApplicationCapacity?: number; +} + +// @public (undocumented) +export interface ApplicationMetricDescriptionOutput { + maximumCapacity?: number; + name?: string; + reservationCapacity?: number; + totalApplicationCapacity?: number; +} + +// @public (undocumented) +export interface ApplicationResource extends ProxyResource { + identity?: ManagedIdentity; + properties?: ApplicationResourceProperties; +} + +// @public (undocumented) +export interface ApplicationResourceListOutput { + nextLink?: string; + // (undocumented) + value?: Array; +} + +// @public (undocumented) +export interface ApplicationResourceOutput extends ProxyResourceOutput { + identity?: ManagedIdentityOutput; + properties?: ApplicationResourcePropertiesOutput; +} + +// @public (undocumented) +export interface ApplicationResourceProperties extends ApplicationResourceUpdateProperties { + provisioningState?: string; + typeName?: string; +} + +// @public (undocumented) +export interface ApplicationResourcePropertiesOutput extends ApplicationResourceUpdatePropertiesOutput { + provisioningState?: string; + typeName?: string; +} + +// @public (undocumented) +export interface ApplicationResourceUpdate extends ProxyResource { + properties?: ApplicationResourceUpdateProperties; +} + +// @public (undocumented) +export interface ApplicationResourceUpdateOutput extends ProxyResourceOutput { + properties?: ApplicationResourceUpdatePropertiesOutput; +} + +// @public (undocumented) +export interface ApplicationResourceUpdateProperties { + managedIdentities?: Array; + maximumNodes?: number; + metrics?: Array; + minimumNodes?: number; + parameters?: Record; + removeApplicationCapacity?: boolean; + typeVersion?: string; + upgradePolicy?: ApplicationUpgradePolicy; +} + +// @public (undocumented) +export interface ApplicationResourceUpdatePropertiesOutput { + managedIdentities?: Array; + maximumNodes?: number; + metrics?: Array; + minimumNodes?: number; + parameters?: Record; + removeApplicationCapacity?: boolean; + typeVersion?: string; + upgradePolicy?: ApplicationUpgradePolicyOutput; +} + +// @public +export interface ApplicationsCreateOrUpdate202Response extends HttpResponse { + // (undocumented) + body: ApplicationResourceOutput; + // (undocumented) + status: "202"; +} + +// @public (undocumented) +export interface ApplicationsCreateOrUpdateBodyParam { + body: ApplicationResource; +} + +// @public +export interface ApplicationsCreateOrUpdatedefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export interface ApplicationsCreateOrUpdateMediaTypesParam { + contentType?: "application/json"; +} + +// @public (undocumented) +export type ApplicationsCreateOrUpdateParameters = ApplicationsCreateOrUpdateMediaTypesParam & ApplicationsCreateOrUpdateBodyParam & RequestParameters; + +// @public +export interface ApplicationsDelete202Response extends HttpResponse { + // (undocumented) + body: Record; + // (undocumented) + status: "202"; +} + +// @public +export interface ApplicationsDelete204Response extends HttpResponse { + // (undocumented) + body: Record; + // (undocumented) + status: "204"; +} + +// @public +export interface ApplicationsDeletedefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type ApplicationsDeleteParameters = RequestParameters; + +// @public (undocumented) +export interface ApplicationsGet { + delete(options?: ApplicationsDeleteParameters): StreamableMethod; + get(options?: ApplicationsGetParameters): StreamableMethod; + patch(options: ApplicationsUpdateParameters): StreamableMethod; + put(options: ApplicationsCreateOrUpdateParameters): StreamableMethod; +} + +// @public +export interface ApplicationsGet200Response extends HttpResponse { + // (undocumented) + body: ApplicationResourceOutput; + // (undocumented) + status: "200"; +} + +// @public +export interface ApplicationsGetdefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type ApplicationsGetParameters = RequestParameters; + +// @public (undocumented) +export interface ApplicationsList { + get(options?: ApplicationsListParameters): StreamableMethod; +} + +// @public +export interface ApplicationsList200Response extends HttpResponse { + // (undocumented) + body: ApplicationResourceListOutput; + // (undocumented) + status: "200"; +} + +// @public +export interface ApplicationsListdefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type ApplicationsListParameters = RequestParameters; + +// @public +export interface ApplicationsUpdate202Response extends HttpResponse { + // (undocumented) + body: ApplicationResourceOutput; + // (undocumented) + status: "202"; +} + +// @public (undocumented) +export interface ApplicationsUpdateBodyParam { + body: ApplicationResourceUpdate; +} + +// @public +export interface ApplicationsUpdatedefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export interface ApplicationsUpdateMediaTypesParam { + contentType?: "application/json"; +} + +// @public (undocumented) +export type ApplicationsUpdateParameters = ApplicationsUpdateMediaTypesParam & ApplicationsUpdateBodyParam & RequestParameters; + +// @public (undocumented) +export interface ApplicationTypeResource extends ProxyResource { + properties?: ApplicationTypeResourceProperties; +} + +// @public (undocumented) +export interface ApplicationTypeResourceListOutput { + nextLink?: string; + // (undocumented) + value?: Array; +} + +// @public (undocumented) +export interface ApplicationTypeResourceOutput extends ProxyResourceOutput { + properties?: ApplicationTypeResourcePropertiesOutput; +} + +// @public (undocumented) +export interface ApplicationTypeResourceProperties { + provisioningState?: string; +} + +// @public (undocumented) +export interface ApplicationTypeResourcePropertiesOutput { + provisioningState?: string; +} + +// @public +export interface ApplicationTypesCreateOrUpdate200Response extends HttpResponse { + // (undocumented) + body: ApplicationTypeResourceOutput; + // (undocumented) + status: "200"; +} + +// @public (undocumented) +export interface ApplicationTypesCreateOrUpdateBodyParam { + body: ApplicationTypeResource; +} + +// @public +export interface ApplicationTypesCreateOrUpdatedefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export interface ApplicationTypesCreateOrUpdateMediaTypesParam { + contentType?: "application/json"; +} + +// @public (undocumented) +export type ApplicationTypesCreateOrUpdateParameters = ApplicationTypesCreateOrUpdateMediaTypesParam & ApplicationTypesCreateOrUpdateBodyParam & RequestParameters; + +// @public +export interface ApplicationTypesDelete202Response extends HttpResponse { + // (undocumented) + body: Record; + // (undocumented) + status: "202"; +} + +// @public +export interface ApplicationTypesDelete204Response extends HttpResponse { + // (undocumented) + body: Record; + // (undocumented) + status: "204"; +} + +// @public +export interface ApplicationTypesDeletedefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type ApplicationTypesDeleteParameters = RequestParameters; + +// @public (undocumented) +export interface ApplicationTypesGet { + delete(options?: ApplicationTypesDeleteParameters): StreamableMethod; + get(options?: ApplicationTypesGetParameters): StreamableMethod; + put(options: ApplicationTypesCreateOrUpdateParameters): StreamableMethod; +} + +// @public +export interface ApplicationTypesGet200Response extends HttpResponse { + // (undocumented) + body: ApplicationTypeResourceOutput; + // (undocumented) + status: "200"; +} + +// @public +export interface ApplicationTypesGetdefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type ApplicationTypesGetParameters = RequestParameters; + +// @public (undocumented) +export interface ApplicationTypesList { + get(options?: ApplicationTypesListParameters): StreamableMethod; +} + +// @public +export interface ApplicationTypesList200Response extends HttpResponse { + // (undocumented) + body: ApplicationTypeResourceListOutput; + // (undocumented) + status: "200"; +} + +// @public +export interface ApplicationTypesListdefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type ApplicationTypesListParameters = RequestParameters; + +// @public (undocumented) +export interface ApplicationTypeVersionResource extends ProxyResource { + properties?: ApplicationTypeVersionResourceProperties; +} + +// @public (undocumented) +export interface ApplicationTypeVersionResourceListOutput { + nextLink?: string; + // (undocumented) + value?: Array; +} + +// @public (undocumented) +export interface ApplicationTypeVersionResourceOutput extends ProxyResourceOutput { + properties?: ApplicationTypeVersionResourcePropertiesOutput; +} + +// @public (undocumented) +export interface ApplicationTypeVersionResourceProperties { + appPackageUrl: string; + defaultParameterList?: Record; + provisioningState?: string; +} + +// @public (undocumented) +export interface ApplicationTypeVersionResourcePropertiesOutput { + appPackageUrl: string; + defaultParameterList?: Record; + provisioningState?: string; +} + +// @public (undocumented) +export interface ApplicationTypeVersionsCleanupPolicy { + maxUnusedVersionsToKeep: number; +} + +// @public (undocumented) +export interface ApplicationTypeVersionsCleanupPolicyOutput { + maxUnusedVersionsToKeep: number; +} + +// @public +export interface ApplicationTypeVersionsCreateOrUpdate202Response extends HttpResponse { + // (undocumented) + body: ApplicationTypeVersionResourceOutput; + // (undocumented) + status: "202"; +} + +// @public (undocumented) +export interface ApplicationTypeVersionsCreateOrUpdateBodyParam { + body: ApplicationTypeVersionResource; +} + +// @public +export interface ApplicationTypeVersionsCreateOrUpdatedefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export interface ApplicationTypeVersionsCreateOrUpdateMediaTypesParam { + contentType?: "application/json"; +} + +// @public (undocumented) +export type ApplicationTypeVersionsCreateOrUpdateParameters = ApplicationTypeVersionsCreateOrUpdateMediaTypesParam & ApplicationTypeVersionsCreateOrUpdateBodyParam & RequestParameters; + +// @public +export interface ApplicationTypeVersionsDelete202Response extends HttpResponse { + // (undocumented) + body: Record; + // (undocumented) + status: "202"; +} + +// @public +export interface ApplicationTypeVersionsDelete204Response extends HttpResponse { + // (undocumented) + body: Record; + // (undocumented) + status: "204"; +} + +// @public +export interface ApplicationTypeVersionsDeletedefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type ApplicationTypeVersionsDeleteParameters = RequestParameters; + +// @public (undocumented) +export interface ApplicationTypeVersionsGet { + delete(options?: ApplicationTypeVersionsDeleteParameters): StreamableMethod; + get(options?: ApplicationTypeVersionsGetParameters): StreamableMethod; + put(options: ApplicationTypeVersionsCreateOrUpdateParameters): StreamableMethod; +} + +// @public +export interface ApplicationTypeVersionsGet200Response extends HttpResponse { + // (undocumented) + body: ApplicationTypeVersionResourceOutput; + // (undocumented) + status: "200"; +} + +// @public +export interface ApplicationTypeVersionsGetdefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type ApplicationTypeVersionsGetParameters = RequestParameters; + +// @public (undocumented) +export interface ApplicationTypeVersionsList { + get(options?: ApplicationTypeVersionsListParameters): StreamableMethod; +} + +// @public +export interface ApplicationTypeVersionsList200Response extends HttpResponse { + // (undocumented) + body: ApplicationTypeVersionResourceListOutput; + // (undocumented) + status: "200"; +} + +// @public +export interface ApplicationTypeVersionsListdefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type ApplicationTypeVersionsListParameters = RequestParameters; + +// @public (undocumented) +export interface ApplicationUpgradePolicy { + applicationHealthPolicy?: ArmApplicationHealthPolicy; + forceRestart?: boolean; + recreateApplication?: boolean; + rollingUpgradeMonitoringPolicy?: ArmRollingUpgradeMonitoringPolicy; + upgradeMode?: "Invalid" | "UnmonitoredAuto" | "UnmonitoredManual" | "Monitored"; + upgradeReplicaSetCheckTimeout?: string; +} + +// @public (undocumented) +export interface ApplicationUpgradePolicyOutput { + applicationHealthPolicy?: ArmApplicationHealthPolicyOutput; + forceRestart?: boolean; + recreateApplication?: boolean; + rollingUpgradeMonitoringPolicy?: ArmRollingUpgradeMonitoringPolicyOutput; + upgradeMode?: "Invalid" | "UnmonitoredAuto" | "UnmonitoredManual" | "Monitored"; + upgradeReplicaSetCheckTimeout?: string; +} + +// @public (undocumented) +export interface ApplicationUserAssignedIdentity { + name: string; + principalId: string; +} + +// @public (undocumented) +export interface ApplicationUserAssignedIdentityOutput { + name: string; + principalId: string; +} + +// @public (undocumented) +export interface ArmApplicationHealthPolicy { + considerWarningAsError?: boolean; + defaultServiceTypeHealthPolicy?: ArmServiceTypeHealthPolicy; + maxPercentUnhealthyDeployedApplications?: number; + serviceTypeHealthPolicyMap?: Record; +} + +// @public (undocumented) +export interface ArmApplicationHealthPolicyOutput { + considerWarningAsError?: boolean; + defaultServiceTypeHealthPolicy?: ArmServiceTypeHealthPolicyOutput; + maxPercentUnhealthyDeployedApplications?: number; + serviceTypeHealthPolicyMap?: Record; +} + +// @public (undocumented) +export interface ArmRollingUpgradeMonitoringPolicy { + failureAction?: "Rollback" | "Manual"; + healthCheckRetryTimeout?: string; + healthCheckStableDuration?: string; + healthCheckWaitDuration?: string; + upgradeDomainTimeout?: string; + upgradeTimeout?: string; +} + +// @public (undocumented) +export interface ArmRollingUpgradeMonitoringPolicyOutput { + failureAction?: "Rollback" | "Manual"; + healthCheckRetryTimeout?: string; + healthCheckStableDuration?: string; + healthCheckWaitDuration?: string; + upgradeDomainTimeout?: string; + upgradeTimeout?: string; +} + +// @public (undocumented) +export interface ArmServiceTypeHealthPolicy { + maxPercentUnhealthyPartitionsPerService?: number; + maxPercentUnhealthyReplicasPerPartition?: number; + maxPercentUnhealthyServices?: number; +} + +// @public (undocumented) +export interface ArmServiceTypeHealthPolicyOutput { + maxPercentUnhealthyPartitionsPerService?: number; + maxPercentUnhealthyReplicasPerPartition?: number; + maxPercentUnhealthyServices?: number; +} + +// @public (undocumented) +export interface AvailableOperationDisplayOutput { + description?: string; + operation?: string; + provider?: string; + resource?: string; +} + +// @public (undocumented) +export interface AzureActiveDirectory { + clientApplication?: string; + clusterApplication?: string; + tenantId?: string; +} + +// @public (undocumented) +export interface AzureActiveDirectoryOutput { + clientApplication?: string; + clusterApplication?: string; + tenantId?: string; +} + +// @public (undocumented) +export interface CertificateDescription { + thumbprint: string; + thumbprintSecondary?: string; + x509StoreName?: "AddressBook" | "AuthRoot" | "CertificateAuthority" | "Disallowed" | "My" | "Root" | "TrustedPeople" | "TrustedPublisher"; +} + +// @public (undocumented) +export interface CertificateDescriptionOutput { + thumbprint: string; + thumbprintSecondary?: string; + x509StoreName?: "AddressBook" | "AuthRoot" | "CertificateAuthority" | "Disallowed" | "My" | "Root" | "TrustedPeople" | "TrustedPublisher"; +} + +// @public (undocumented) +export interface ClientCertificateCommonName { + certificateCommonName: string; + certificateIssuerThumbprint: string; + isAdmin: boolean; +} + +// @public (undocumented) +export interface ClientCertificateCommonNameOutput { + certificateCommonName: string; + certificateIssuerThumbprint: string; + isAdmin: boolean; +} + +// @public (undocumented) +export interface ClientCertificateThumbprint { + certificateThumbprint: string; + isAdmin: boolean; +} + +// @public (undocumented) +export interface ClientCertificateThumbprintOutput { + certificateThumbprint: string; + isAdmin: boolean; +} + +// @public (undocumented) +export interface Cluster extends Resource { + properties?: ClusterProperties; +} + +// @public (undocumented) +export interface ClusterCodeVersionsListResultOutput { + nextLink?: string; + // (undocumented) + value?: Array; +} + +// @public (undocumented) +export interface ClusterCodeVersionsResultOutput { + id?: string; + name?: string; + properties?: ClusterVersionDetailsOutput; + type?: string; +} + +// @public (undocumented) +export interface ClusterHealthPolicy { + applicationHealthPolicies?: Record; + maxPercentUnhealthyApplications?: number; + maxPercentUnhealthyNodes?: number; +} + +// @public (undocumented) +export interface ClusterHealthPolicyOutput { + applicationHealthPolicies?: Record; + maxPercentUnhealthyApplications?: number; + maxPercentUnhealthyNodes?: number; +} + +// @public (undocumented) +export interface ClusterListResultOutput { + nextLink?: string; + // (undocumented) + value?: Array; +} + +// @public (undocumented) +export interface ClusterOutput extends ResourceOutput { + properties?: ClusterPropertiesOutput; +} + +// @public (undocumented) +export interface ClusterProperties { + addOnFeatures?: Array<"RepairManager" | "DnsService" | "BackupRestoreService" | "ResourceMonitorService">; + applicationTypeVersionsCleanupPolicy?: ApplicationTypeVersionsCleanupPolicy; + availableClusterVersions?: Array; + azureActiveDirectory?: AzureActiveDirectory; + certificate?: CertificateDescription; + certificateCommonNames?: ServerCertificateCommonNames; + clientCertificateCommonNames?: Array; + clientCertificateThumbprints?: Array; + clusterCodeVersion?: string; + clusterEndpoint?: string; + clusterId?: string; + clusterState?: "WaitingForNodes" | "Deploying" | "BaselineUpgrade" | "UpdatingUserConfiguration" | "UpdatingUserCertificate" | "UpdatingInfrastructure" | "EnforcingClusterVersion" | "UpgradeServiceUnreachable" | "AutoScale" | "Ready"; + diagnosticsStorageAccountConfig?: DiagnosticsStorageAccountConfig; + eventStoreServiceEnabled?: boolean; + fabricSettings?: Array; + infrastructureServiceManager?: boolean; + managementEndpoint: string; + nodeTypes: Array; + notifications?: Array; + provisioningState?: "Updating" | "Succeeded" | "Failed" | "Canceled"; + reliabilityLevel?: "None" | "Bronze" | "Silver" | "Gold" | "Platinum"; + reverseProxyCertificate?: CertificateDescription; + reverseProxyCertificateCommonNames?: ServerCertificateCommonNames; + sfZonalUpgradeMode?: "Parallel" | "Hierarchical"; + upgradeDescription?: ClusterUpgradePolicy; + upgradeMode?: "Automatic" | "Manual"; + upgradePauseEndTimestampUtc?: Date | string; + upgradePauseStartTimestampUtc?: Date | string; + upgradeWave?: "Wave0" | "Wave1" | "Wave2"; + vmImage?: string; + vmssZonalUpgradeMode?: "Parallel" | "Hierarchical"; + waveUpgradePaused?: boolean; +} + +// @public (undocumented) +export interface ClusterPropertiesOutput { + addOnFeatures?: Array<"RepairManager" | "DnsService" | "BackupRestoreService" | "ResourceMonitorService">; + applicationTypeVersionsCleanupPolicy?: ApplicationTypeVersionsCleanupPolicyOutput; + availableClusterVersions?: Array; + azureActiveDirectory?: AzureActiveDirectoryOutput; + certificate?: CertificateDescriptionOutput; + certificateCommonNames?: ServerCertificateCommonNamesOutput; + clientCertificateCommonNames?: Array; + clientCertificateThumbprints?: Array; + clusterCodeVersion?: string; + clusterEndpoint?: string; + clusterId?: string; + clusterState?: "WaitingForNodes" | "Deploying" | "BaselineUpgrade" | "UpdatingUserConfiguration" | "UpdatingUserCertificate" | "UpdatingInfrastructure" | "EnforcingClusterVersion" | "UpgradeServiceUnreachable" | "AutoScale" | "Ready"; + diagnosticsStorageAccountConfig?: DiagnosticsStorageAccountConfigOutput_FFF; + eventStoreServiceEnabled?: boolean; + fabricSettings?: Array; + infrastructureServiceManager?: boolean; + managementEndpoint: string; + nodeTypes: Array; + notifications?: Array; + provisioningState?: "Updating" | "Succeeded" | "Failed" | "Canceled"; + reliabilityLevel?: "None" | "Bronze" | "Silver" | "Gold" | "Platinum"; + reverseProxyCertificate?: CertificateDescriptionOutput; + reverseProxyCertificateCommonNames?: ServerCertificateCommonNamesOutput; + sfZonalUpgradeMode?: "Parallel" | "Hierarchical"; + upgradeDescription?: ClusterUpgradePolicyOutput; + upgradeMode?: "Automatic" | "Manual"; + upgradePauseEndTimestampUtc?: string; + upgradePauseStartTimestampUtc?: string; + upgradeWave?: "Wave0" | "Wave1" | "Wave2"; + vmImage?: string; + vmssZonalUpgradeMode?: "Parallel" | "Hierarchical"; + waveUpgradePaused?: boolean; +} + +// @public (undocumented) +export interface ClusterPropertiesUpdateParameters { + addOnFeatures?: Array<"RepairManager" | "DnsService" | "BackupRestoreService" | "ResourceMonitorService">; + applicationTypeVersionsCleanupPolicy?: ApplicationTypeVersionsCleanupPolicy; + certificate?: CertificateDescription; + certificateCommonNames?: ServerCertificateCommonNames; + clientCertificateCommonNames?: Array; + clientCertificateThumbprints?: Array; + clusterCodeVersion?: string; + eventStoreServiceEnabled?: boolean; + fabricSettings?: Array; + infrastructureServiceManager?: boolean; + nodeTypes?: Array; + notifications?: Array; + reliabilityLevel?: "None" | "Bronze" | "Silver" | "Gold" | "Platinum"; + reverseProxyCertificate?: CertificateDescription; + sfZonalUpgradeMode?: "Parallel" | "Hierarchical"; + upgradeDescription?: ClusterUpgradePolicy; + upgradeMode?: "Automatic" | "Manual"; + upgradePauseEndTimestampUtc?: Date | string; + upgradePauseStartTimestampUtc?: Date | string; + upgradeWave?: "Wave0" | "Wave1" | "Wave2"; + vmssZonalUpgradeMode?: "Parallel" | "Hierarchical"; + waveUpgradePaused?: boolean; +} + +// @public +export interface ClustersCreateOrUpdate200Response extends HttpResponse { + // (undocumented) + body: ClusterOutput; + // (undocumented) + status: "200"; +} + +// @public +export interface ClustersCreateOrUpdate202Response extends HttpResponse { + // (undocumented) + body: ClusterOutput; + // (undocumented) + status: "202"; +} + +// @public (undocumented) +export interface ClustersCreateOrUpdateBodyParam { + body: Cluster; +} + +// @public +export interface ClustersCreateOrUpdatedefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export interface ClustersCreateOrUpdateMediaTypesParam { + contentType?: "application/json"; +} + +// @public (undocumented) +export type ClustersCreateOrUpdateParameters = ClustersCreateOrUpdateMediaTypesParam & ClustersCreateOrUpdateBodyParam & RequestParameters; + +// @public +export interface ClustersDelete200Response extends HttpResponse { + // (undocumented) + body: Record; + // (undocumented) + status: "200"; +} + +// @public +export interface ClustersDelete204Response extends HttpResponse { + // (undocumented) + body: Record; + // (undocumented) + status: "204"; +} + +// @public +export interface ClustersDeletedefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type ClustersDeleteParameters = RequestParameters; + +// @public (undocumented) +export interface ClustersGet_DDD { + delete(options?: ClustersDeleteParameters): StreamableMethod; + get(options?: ClustersGetParameters): StreamableMethod; + patch(options: ClustersUpdateParameters): StreamableMethod; + put(options: ClustersCreateOrUpdateParameters): StreamableMethod; +} + +// @public +export interface ClustersGet200Response extends HttpResponse { + // (undocumented) + body: ClusterOutput; + // (undocumented) + status: "200"; +} + +// @public +export interface ClustersGetdefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type ClustersGetParameters = RequestParameters; + +// @public (undocumented) +export interface ClustersList { + get(options?: ClustersListParameters): StreamableMethod; +} + +// @public +export interface ClustersList200Response extends HttpResponse { + // (undocumented) + body: ClusterListResultOutput; + // (undocumented) + status: "200"; +} + +// @public (undocumented) +export interface ClustersListByResourceGroup { + get(options?: ClustersListByResourceGroupParameters): StreamableMethod; +} + +// @public +export interface ClustersListByResourceGroup200Response extends HttpResponse { + // (undocumented) + body: ClusterListResultOutput; + // (undocumented) + status: "200"; +} + +// @public +export interface ClustersListByResourceGroupdefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type ClustersListByResourceGroupParameters = RequestParameters; + +// @public +export interface ClustersListdefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type ClustersListParameters = RequestParameters; + +// @public (undocumented) +export interface ClustersListUpgradableVersions { + post(options?: ClustersListUpgradableVersionsParameters): StreamableMethod; +} + +// @public +export interface ClustersListUpgradableVersions200Response extends HttpResponse { + // (undocumented) + body: UpgradableVersionPathResultOutput; + // (undocumented) + status: "200"; +} + +// @public (undocumented) +export interface ClustersListUpgradableVersionsBodyParam { + body?: UpgradableVersionsDescription; +} + +// @public +export interface ClustersListUpgradableVersionsdefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export interface ClustersListUpgradableVersionsMediaTypesParam { + contentType?: "application/json"; +} + +// @public (undocumented) +export type ClustersListUpgradableVersionsParameters = ClustersListUpgradableVersionsMediaTypesParam & ClustersListUpgradableVersionsBodyParam & RequestParameters; + +// @public +export interface ClustersUpdate200Response extends HttpResponse { + // (undocumented) + body: ClusterOutput; + // (undocumented) + status: "200"; +} + +// @public +export interface ClustersUpdate202Response extends HttpResponse { + // (undocumented) + body: ClusterOutput; + // (undocumented) + status: "202"; +} + +// @public (undocumented) +export interface ClustersUpdateBodyParam { + body: ClusterUpdateParameters_BBB; +} + +// @public +export interface ClustersUpdatedefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export interface ClustersUpdateMediaTypesParam_CCC { + contentType?: "application/json"; +} + +// @public (undocumented) +export type ClustersUpdateParameters = ClustersUpdateMediaTypesParam_CCC & ClustersUpdateBodyParam & RequestParameters; + +// @public (undocumented) +export interface ClusterUpdateParameters_BBB { + properties?: ClusterPropertiesUpdateParameters; + tags?: Record; +} + +// @public (undocumented) +export interface ClusterUpgradeDeltaHealthPolicy { + applicationDeltaHealthPolicies?: Record; + maxPercentDeltaUnhealthyApplications: number; + maxPercentDeltaUnhealthyNodes: number; + maxPercentUpgradeDomainDeltaUnhealthyNodes: number; +} + +// @public (undocumented) +export interface ClusterUpgradeDeltaHealthPolicyOutput { + applicationDeltaHealthPolicies?: Record; + maxPercentDeltaUnhealthyApplications: number; + maxPercentDeltaUnhealthyNodes: number; + maxPercentUpgradeDomainDeltaUnhealthyNodes: number; +} + +// @public (undocumented) +export interface ClusterUpgradePolicy { + deltaHealthPolicy?: ClusterUpgradeDeltaHealthPolicy; + forceRestart?: boolean; + healthCheckRetryTimeout: string; + healthCheckStableDuration: string; + healthCheckWaitDuration: string; + healthPolicy: ClusterHealthPolicy; + upgradeDomainTimeout: string; + upgradeReplicaSetCheckTimeout: string; + upgradeTimeout: string; +} + +// @public (undocumented) +export interface ClusterUpgradePolicyOutput { + deltaHealthPolicy?: ClusterUpgradeDeltaHealthPolicyOutput; + forceRestart?: boolean; + healthCheckRetryTimeout: string; + healthCheckStableDuration: string; + healthCheckWaitDuration: string; + healthPolicy: ClusterHealthPolicyOutput; + upgradeDomainTimeout: string; + upgradeReplicaSetCheckTimeout: string; + upgradeTimeout: string; +} + +// @public (undocumented) +export interface ClusterVersionDetails { + codeVersion?: string; + environment?: "Windows" | "Linux"; + supportExpiryUtc?: string; +} + +// @public (undocumented) +export interface ClusterVersionDetailsOutput { + codeVersion?: string; + environment?: "Windows" | "Linux"; + supportExpiryUtc?: string; +} + +// @public (undocumented) +export interface ClusterVersionsGet { + get(options?: ClusterVersionsGetParameters_EEE): StreamableMethod; +} + +// @public +export interface ClusterVersionsGet200Response extends HttpResponse { + // (undocumented) + body: ClusterCodeVersionsListResultOutput; + // (undocumented) + status: "200"; +} + +// @public (undocumented) +export interface ClusterVersionsGetByEnvironment { + get(options?: ClusterVersionsGetByEnvironmentParameters): StreamableMethod; +} + +// @public +export interface ClusterVersionsGetByEnvironment200Response extends HttpResponse { + // (undocumented) + body: ClusterCodeVersionsListResultOutput; + // (undocumented) + status: "200"; +} + +// @public +export interface ClusterVersionsGetByEnvironmentdefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type ClusterVersionsGetByEnvironmentParameters = RequestParameters; + +// @public +export interface ClusterVersionsGetdefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type ClusterVersionsGetParameters_EEE = RequestParameters; + +// @public (undocumented) +export interface ClusterVersionsList { + get(options?: ClusterVersionsListParameters): StreamableMethod; +} + +// @public +export interface ClusterVersionsList200Response extends HttpResponse { + // (undocumented) + body: ClusterCodeVersionsListResultOutput; + // (undocumented) + status: "200"; +} + +// @public (undocumented) +export interface ClusterVersionsListByEnvironment { + get(options?: ClusterVersionsListByEnvironmentParameters): StreamableMethod; +} + +// @public +export interface ClusterVersionsListByEnvironment200Response extends HttpResponse { + // (undocumented) + body: ClusterCodeVersionsListResultOutput; + // (undocumented) + status: "200"; +} + +// @public +export interface ClusterVersionsListByEnvironmentdefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type ClusterVersionsListByEnvironmentParameters = RequestParameters; + +// @public +export interface ClusterVersionsListdefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type ClusterVersionsListParameters = RequestParameters; + +// @public (undocumented) +function createClient(credentials: TokenCredential, options?: ClientOptions): ServiceFabricClient; +export default createClient; + +// @public (undocumented) +export interface DiagnosticsStorageAccountConfig { + blobEndpoint: string; + protectedAccountKeyName_GGG: string; + protectedAccountKeyName2?: string; + queueEndpoint: string; + storageAccountName: string; + tableEndpoint: string; +} + +// @public (undocumented) +export interface DiagnosticsStorageAccountConfigOutput_FFF { + blobEndpoint: string; + protectedAccountKeyName: string; + protectedAccountKeyName2?: string; + queueEndpoint_III: string; + storageAccountName: string; + tableEndpoint: string; +} + +// @public (undocumented) +export interface EndpointRangeDescription { + endPort: number; + startPort: number; +} + +// @public (undocumented) +export interface EndpointRangeDescriptionOutput { + endPort: number; + startPort: number; +} + +// @public (undocumented) +export interface ErrorModelErrorOutput { + code?: string; + message?: string; +} + +// @public (undocumented) +export interface ErrorModelOutput { + error?: ErrorModelErrorOutput; + testRecurvice: Array; +} + +// @public +export type GetArrayType = T extends Array ? TData : never; + +// @public +export function getLongRunningPoller(client: Client, initialResponse: TResult, options?: LroEngineOptions>): PollerLike, TResult>; + +// @public +export type GetPage = (pageLink: string, maxPageSize?: number) => Promise<{ + page: TPage; + nextPageLink?: string; +}>; + +// @public (undocumented) +export function isUnexpected(response: ClustersGet200Response | ClustersGetdefaultResponse): response is ClustersGetdefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ClustersCreateOrUpdate200Response | ClustersCreateOrUpdate202Response | ClustersCreateOrUpdatedefaultResponse): response is ClustersCreateOrUpdatedefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ClustersUpdate200Response | ClustersUpdate202Response | ClustersUpdatedefaultResponse): response is ClustersUpdatedefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ClustersDelete200Response | ClustersDelete204Response | ClustersDeletedefaultResponse): response is ClustersDeletedefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ClustersListByResourceGroup200Response | ClustersListByResourceGroupdefaultResponse): response is ClustersListByResourceGroupdefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ClustersList200Response | ClustersListdefaultResponse): response is ClustersListdefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ClustersListUpgradableVersions200Response | ClustersListUpgradableVersionsdefaultResponse): response is ClustersListUpgradableVersionsdefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ClusterVersionsGet200Response | ClusterVersionsGetdefaultResponse): response is ClusterVersionsGetdefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ClusterVersionsGetByEnvironment200Response | ClusterVersionsGetByEnvironmentdefaultResponse): response is ClusterVersionsGetByEnvironmentdefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ClusterVersionsList200Response | ClusterVersionsListdefaultResponse): response is ClusterVersionsListdefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ClusterVersionsListByEnvironment200Response | ClusterVersionsListByEnvironmentdefaultResponse): response is ClusterVersionsListByEnvironmentdefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: OperationsList200Response | OperationsListdefaultResponse): response is OperationsListdefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ApplicationTypesGet200Response | ApplicationTypesGetdefaultResponse): response is ApplicationTypesGetdefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ApplicationTypesCreateOrUpdate200Response | ApplicationTypesCreateOrUpdatedefaultResponse): response is ApplicationTypesCreateOrUpdatedefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ApplicationTypesDelete202Response | ApplicationTypesDelete204Response | ApplicationTypesDeletedefaultResponse): response is ApplicationTypesDeletedefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ApplicationTypesList200Response | ApplicationTypesListdefaultResponse): response is ApplicationTypesListdefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ApplicationTypeVersionsGet200Response | ApplicationTypeVersionsGetdefaultResponse): response is ApplicationTypeVersionsGetdefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ApplicationTypeVersionsCreateOrUpdate202Response | ApplicationTypeVersionsCreateOrUpdatedefaultResponse): response is ApplicationTypeVersionsCreateOrUpdatedefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ApplicationTypeVersionsDelete202Response | ApplicationTypeVersionsDelete204Response | ApplicationTypeVersionsDeletedefaultResponse): response is ApplicationTypeVersionsDeletedefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ApplicationTypeVersionsList200Response | ApplicationTypeVersionsListdefaultResponse): response is ApplicationTypeVersionsListdefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ApplicationsGet200Response | ApplicationsGetdefaultResponse): response is ApplicationsGetdefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ApplicationsCreateOrUpdate202Response | ApplicationsCreateOrUpdatedefaultResponse): response is ApplicationsCreateOrUpdatedefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ApplicationsUpdate202Response | ApplicationsUpdatedefaultResponse): response is ApplicationsUpdatedefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ApplicationsDelete202Response | ApplicationsDelete204Response | ApplicationsDeletedefaultResponse): response is ApplicationsDeletedefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ApplicationsList200Response | ApplicationsListdefaultResponse): response is ApplicationsListdefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ServicesGet200Response | ServicesGetdefaultResponse): response is ServicesGetdefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ServicesCreateOrUpdate202Response | ServicesCreateOrUpdatedefaultResponse): response is ServicesCreateOrUpdatedefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ServicesUpdate202Response | ServicesUpdatedefaultResponse): response is ServicesUpdatedefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ServicesDelete202Response | ServicesDelete204Response | ServicesDeletedefaultResponse): response is ServicesDeletedefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: ServicesList200Response | ServicesListdefaultResponse): response is ServicesListdefaultResponse; + +// @public (undocumented) +export interface ManagedIdentity { + principalId?: string; + tenantId?: string; + type?: "SystemAssigned" | "UserAssigned" | "SystemAssigned, UserAssigned" | "None"; + userAssignedIdentities?: Record; +} + +// @public (undocumented) +export interface ManagedIdentityOutput { + principalId?: string; + tenantId?: string; + type?: "SystemAssigned" | "UserAssigned" | "SystemAssigned, UserAssigned" | "None"; + userAssignedIdentities?: Record; +} + +// @public (undocumented) +export interface NamedPartitionSchemeDescription extends PartitionSchemeDescriptionParent { + count: number; + names: Array; + // (undocumented) + partitionScheme: "Named"; +} + +// @public (undocumented) +export interface NamedPartitionSchemeDescriptionOutput extends PartitionSchemeDescriptionOutputParent { + count: number; + names: Array; + // (undocumented) + partitionScheme: "Named"; +} + +// @public (undocumented) +export interface NodeTypeDescription { + applicationPorts?: EndpointRangeDescription; + capacities?: Record; + clientConnectionEndpointPort: number; + durabilityLevel?: "Bronze" | "Silver" | "Gold"; + ephemeralPorts?: EndpointRangeDescription; + httpGatewayEndpointPort: number; + isPrimary: boolean; + isStateless?: boolean; + multipleAvailabilityZones?: boolean; + name: string; + placementProperties?: Record; + reverseProxyEndpointPort?: number; + vmInstanceCount: number; +} + +// @public (undocumented) +export interface NodeTypeDescriptionOutput { + applicationPorts?: EndpointRangeDescriptionOutput; + capacities?: Record; + clientConnectionEndpointPort: number; + durabilityLevel?: "Bronze" | "Silver" | "Gold"; + ephemeralPorts?: EndpointRangeDescriptionOutput; + httpGatewayEndpointPort: number; + isPrimary: boolean; + isStateless?: boolean; + multipleAvailabilityZones?: boolean; + name: string; + placementProperties?: Record; + reverseProxyEndpointPort?: number; + vmInstanceCount: number; +} + +// @public (undocumented) +export interface Notification { + isEnabled: boolean; + notificationCategory: "WaveProgress"; + notificationLevel: "Critical" | "All"; + notificationTargets: Array; +} + +// @public (undocumented) +export interface NotificationOutput { + isEnabled: boolean; + notificationCategory: "WaveProgress"; + notificationLevel: "Critical" | "All"; + notificationTargets: Array; +} + +// @public (undocumented) +export interface NotificationTarget { + notificationChannel: "EmailUser" | "EmailSubscription"; + receivers: Array; +} + +// @public (undocumented) +export interface NotificationTargetOutput { + notificationChannel: "EmailUser" | "EmailSubscription"; + receivers: Array; +} + +// @public (undocumented) +export interface OperationListResultOutput { + nextLink?: string; + value?: Array; +} + +// @public (undocumented) +export interface OperationResultOutput { + display?: AvailableOperationDisplayOutput; + isDataAction?: boolean; + name?: string; + nextLink?: string; + origin?: string; +} + +// @public (undocumented) +export interface OperationsList { + get(options?: OperationsListParameters): StreamableMethod; +} + +// @public +export interface OperationsList200Response extends HttpResponse { + // (undocumented) + body: OperationListResultOutput; + // (undocumented) + status: "200"; +} + +// @public +export interface OperationsListdefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type OperationsListParameters = RequestParameters; + +// @public +export function paginate(client: Client, initialResponse: TResponse, options?: PagingOptions): PagedAsyncIterableIterator>; + +// @public +export type PaginateReturn = TResult extends { + body: { + value?: infer TPage; + }; +} ? GetArrayType : Array; + +// @public +export interface PagingOptions { + customGetPage?: GetPage[]>; +} + +// @public (undocumented) +export type PartitionSchemeDescription = NamedPartitionSchemeDescription | SingletonPartitionSchemeDescription | UniformInt64RangePartitionSchemeDescription; + +// @public (undocumented) +export type PartitionSchemeDescriptionOutput = NamedPartitionSchemeDescriptionOutput | SingletonPartitionSchemeDescriptionOutput | UniformInt64RangePartitionSchemeDescriptionOutput; + +// @public (undocumented) +export interface PartitionSchemeDescriptionOutputParent { + // (undocumented) + partitionScheme: "PartitionSchemeDescription" | "Named" | "Singleton" | "UniformInt64Range"; +} + +// @public (undocumented) +export interface PartitionSchemeDescriptionParent { + // (undocumented) + partitionScheme: "PartitionSchemeDescription" | "Named" | "Singleton" | "UniformInt64Range"; +} + +// @public (undocumented) +export interface ProxyResource { + etag?: string; + id?: string; + location?: string; + name?: string; + systemData?: SystemData; + tags?: Record; + type?: string; +} + +// @public (undocumented) +export interface ProxyResourceOutput { + etag?: string; + id?: string; + location?: string; + name?: string; + systemData?: SystemDataOutput; + tags?: Record; + type?: string; +} + +// @public (undocumented) +export interface Resource { + etag?: string; + id?: string; + location: string; + name?: string; + systemData?: SystemData; + tags?: Record; + type?: string; +} + +// @public (undocumented) +export interface ResourceOutput { + etag?: string; + id?: string; + location: string; + name?: string; + systemData?: SystemDataOutput; + tags?: Record; + type?: string; +} + +// @public (undocumented) +export interface Routes { + (path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters/{clusterName}", subscriptionId: string, resourceGroupName: string, clusterName: string): ClustersGet_DDD; + (path: "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters", subscriptionId: string, resourceGroupName: string): ClustersListByResourceGroup; + (path: "/subscriptions/{subscriptionId}/providers/Microsoft.ServiceFabric/clusters", subscriptionId: string): ClustersList; + (path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters/{clusterName}/listUpgradableVersions", subscriptionId: string, resourceGroupName: string, clusterName: string): ClustersListUpgradableVersions; + (path: "/subscriptions/{subscriptionId}/providers/Microsoft.ServiceFabric/locations/{location}/clusterVersions/{clusterVersion}", subscriptionId: string, location: string, clusterVersion: string): ClusterVersionsGet; + (path: "/subscriptions/{subscriptionId}/providers/Microsoft.ServiceFabric/locations/{location}/environments/{environment}/clusterVersions/{clusterVersion}", subscriptionId: string, location: string, environment: "Windows" | "Linux", clusterVersion: string): ClusterVersionsGetByEnvironment; + (path: "/subscriptions/{subscriptionId}/providers/Microsoft.ServiceFabric/locations/{location}/clusterVersions", subscriptionId: string, location: string): ClusterVersionsList; + (path: "/subscriptions/{subscriptionId}/providers/Microsoft.ServiceFabric/locations/{location}/environments/{environment}/clusterVersions", subscriptionId: string, location: string, environment: "Windows" | "Linux"): ClusterVersionsListByEnvironment; + (path: "/providers/Microsoft.ServiceFabric/operations"): OperationsList; + (path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters/{clusterName}/applicationTypes/{applicationTypeName}", subscriptionId: string, resourceGroupName: string, clusterName: string, applicationTypeName: string): ApplicationTypesGet; + (path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters/{clusterName}/applicationTypes", subscriptionId: string, resourceGroupName: string, clusterName: string): ApplicationTypesList; + (path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters/{clusterName}/applicationTypes/{applicationTypeName}/versions/{version}", subscriptionId: string, resourceGroupName: string, clusterName: string, applicationTypeName: string, version: string): ApplicationTypeVersionsGet; + (path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters/{clusterName}/applicationTypes/{applicationTypeName}/versions", subscriptionId: string, resourceGroupName: string, clusterName: string, applicationTypeName: string): ApplicationTypeVersionsList; + (path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters/{clusterName}/applications/{applicationName}", subscriptionId: string, resourceGroupName: string, clusterName: string, applicationName: string): ApplicationsGet; + (path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters/{clusterName}/applications", subscriptionId: string, resourceGroupName: string, clusterName: string): ApplicationsList; + (path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters/{clusterName}/applications/{applicationName}/services/{serviceName}", subscriptionId: string, resourceGroupName: string, clusterName: string, applicationName: string, serviceName: string): ServicesGet; + (path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters/{clusterName}/applications/{applicationName}/services", subscriptionId: string, resourceGroupName: string, clusterName: string, applicationName: string): ServicesList; +} + +// @public (undocumented) +export interface ServerCertificateCommonName { + certificateCommonName: string; + certificateIssuerThumbprint: string; +} + +// @public (undocumented) +export interface ServerCertificateCommonNameOutput { + certificateCommonName: string; + certificateIssuerThumbprint: string; +} + +// @public (undocumented) +export interface ServerCertificateCommonNames { + commonNames?: Array; + x509StoreName?: "AddressBook" | "AuthRoot" | "CertificateAuthority" | "Disallowed" | "My" | "Root" | "TrustedPeople" | "TrustedPublisher"; +} + +// @public (undocumented) +export interface ServerCertificateCommonNamesOutput { + commonNames?: Array; + x509StoreName?: "AddressBook" | "AuthRoot" | "CertificateAuthority" | "Disallowed" | "My" | "Root" | "TrustedPeople" | "TrustedPublisher"; +} + +// @public (undocumented) +export interface ServiceCorrelationDescription { + scheme: "Invalid" | "Affinity" | "AlignedAffinity" | "NonAlignedAffinity"; + serviceName: string; +} + +// @public (undocumented) +export interface ServiceCorrelationDescriptionOutput { + scheme: "Invalid" | "Affinity" | "AlignedAffinity" | "NonAlignedAffinity"; + serviceName: string; +} + +// @public (undocumented) +export type ServiceFabricClient = Client & { + path: Routes; +}; + +// @public (undocumented) +export interface ServiceLoadMetricDescription { + defaultLoad?: number; + name: string; + primaryDefaultLoad?: number; + secondaryDefaultLoad?: number; + weight?: "Zero" | "Low" | "Medium" | "High"; +} + +// @public (undocumented) +export interface ServiceLoadMetricDescriptionOutput { + defaultLoad?: number; + name: string; + primaryDefaultLoad?: number; + secondaryDefaultLoad?: number; + weight?: "Zero" | "Low" | "Medium" | "High"; +} + +// @public (undocumented) +export interface ServicePlacementPolicyDescription { + // (undocumented) + type: "ServicePlacementPolicyDescription"; +} + +// @public (undocumented) +export interface ServicePlacementPolicyDescriptionOutput { + // (undocumented) + type: "ServicePlacementPolicyDescription"; +} + +// @public (undocumented) +export interface ServiceResource extends ProxyResource { + properties?: ServiceResourceProperties; +} + +// @public (undocumented) +export interface ServiceResourceListOutput { + nextLink?: string; + // (undocumented) + value?: Array; +} + +// @public (undocumented) +export interface ServiceResourceOutput extends ProxyResourceOutput { + properties?: ServiceResourcePropertiesOutput; +} + +// @public (undocumented) +export type ServiceResourceProperties = StatefulServiceProperties | StatelessServiceProperties; + +// @public (undocumented) +export interface ServiceResourcePropertiesBase { + correlationScheme?: Array; + defaultMoveCost?: "Zero" | "Low" | "Medium" | "High"; + placementConstraints?: string; + serviceLoadMetrics?: Array; + servicePlacementPolicies?: Array; +} + +// @public (undocumented) +export interface ServiceResourcePropertiesBaseOutput { + correlationScheme?: Array; + defaultMoveCost?: "Zero" | "Low" | "Medium" | "High"; + placementConstraints?: string; + serviceLoadMetrics?: Array; + servicePlacementPolicies?: Array; +} + +// @public (undocumented) +export type ServiceResourcePropertiesOutput = StatefulServicePropertiesOutput | StatelessServicePropertiesOutput; + +// @public (undocumented) +export interface ServiceResourcePropertiesOutputParent extends ServiceResourcePropertiesBaseOutput { + partitionDescription?: PartitionSchemeDescriptionOutput; + provisioningState?: string; + serviceDnsName?: string; + // (undocumented) + serviceKind: "ServiceResourceProperties" | "Stateful" | "Stateless"; + servicePackageActivationMode?: "SharedProcess" | "ExclusiveProcess"; + serviceTypeName?: string; +} + +// @public (undocumented) +export interface ServiceResourcePropertiesParent extends ServiceResourcePropertiesBase { + partitionDescription?: PartitionSchemeDescription; + provisioningState?: string; + serviceDnsName?: string; + // (undocumented) + serviceKind: "ServiceResourceProperties" | "Stateful" | "Stateless"; + servicePackageActivationMode?: "SharedProcess" | "ExclusiveProcess"; + serviceTypeName?: string; +} + +// @public (undocumented) +export interface ServiceResourceUpdate extends ProxyResource { + properties?: ServiceResourceUpdateProperties; +} + +// @public (undocumented) +export interface ServiceResourceUpdateOutput extends ProxyResourceOutput { + properties?: ServiceResourceUpdatePropertiesOutput; +} + +// @public (undocumented) +export type ServiceResourceUpdateProperties = StatefulServiceUpdateProperties | StatelessServiceUpdateProperties; + +// @public (undocumented) +export type ServiceResourceUpdatePropertiesOutput = StatefulServiceUpdatePropertiesOutput | StatelessServiceUpdatePropertiesOutput; + +// @public (undocumented) +export interface ServiceResourceUpdatePropertiesOutputParent extends ServiceResourcePropertiesBaseOutput { + // (undocumented) + serviceKind: "ServiceResourceUpdateProperties" | "Stateful" | "Stateless"; +} + +// @public (undocumented) +export interface ServiceResourceUpdatePropertiesParent extends ServiceResourcePropertiesBase { + // (undocumented) + serviceKind: "ServiceResourceUpdateProperties" | "Stateful" | "Stateless"; +} + +// @public +export interface ServicesCreateOrUpdate202Response extends HttpResponse { + // (undocumented) + body: ServiceResourceOutput; + // (undocumented) + status: "202"; +} + +// @public (undocumented) +export interface ServicesCreateOrUpdateBodyParam { + body: ServiceResource; +} + +// @public +export interface ServicesCreateOrUpdatedefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export interface ServicesCreateOrUpdateMediaTypesParam { + contentType?: "application/json"; +} + +// @public (undocumented) +export type ServicesCreateOrUpdateParameters = ServicesCreateOrUpdateMediaTypesParam & ServicesCreateOrUpdateBodyParam & RequestParameters; + +// @public +export interface ServicesDelete202Response extends HttpResponse { + // (undocumented) + body: Record; + // (undocumented) + status: "202"; +} + +// @public +export interface ServicesDelete204Response extends HttpResponse { + // (undocumented) + body: Record; + // (undocumented) + status: "204"; +} + +// @public +export interface ServicesDeletedefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type ServicesDeleteParameters = RequestParameters; + +// @public (undocumented) +export interface ServicesGet { + delete(options?: ServicesDeleteParameters): StreamableMethod; + get(options?: ServicesGetParameters): StreamableMethod; + patch(options: ServicesUpdateParameters): StreamableMethod; + put(options: ServicesCreateOrUpdateParameters): StreamableMethod; +} + +// @public +export interface ServicesGet200Response extends HttpResponse { + // (undocumented) + body: ServiceResourceOutput; + // (undocumented) + status: "200"; +} + +// @public +export interface ServicesGetdefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type ServicesGetParameters = RequestParameters; + +// @public (undocumented) +export interface ServicesList { + get(options?: ServicesListParameters): StreamableMethod; +} + +// @public +export interface ServicesList200Response extends HttpResponse { + // (undocumented) + body: ServiceResourceListOutput; + // (undocumented) + status: "200"; +} + +// @public +export interface ServicesListdefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type ServicesListParameters = RequestParameters; + +// @public +export interface ServicesUpdate202Response extends HttpResponse { + // (undocumented) + body: ServiceResourceOutput; + // (undocumented) + status: "202"; +} + +// @public (undocumented) +export interface ServicesUpdateBodyParam { + body: ServiceResourceUpdate; +} + +// @public +export interface ServicesUpdatedefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorModelOutput; + // (undocumented) + status: string; +} + +// @public (undocumented) +export interface ServicesUpdateMediaTypesParam { + contentType?: "application/json"; +} + +// @public (undocumented) +export type ServicesUpdateParameters = ServicesUpdateMediaTypesParam & ServicesUpdateBodyParam & RequestParameters; + +// @public (undocumented) +export interface ServiceTypeDeltaHealthPolicy { + maxPercentDeltaUnhealthyServices?: number; +} + +// @public (undocumented) +export interface ServiceTypeDeltaHealthPolicyOutput { + maxPercentDeltaUnhealthyServices?: number; +} + +// @public (undocumented) +export interface ServiceTypeHealthPolicy { + maxPercentUnhealthyServices?: number; +} + +// @public (undocumented) +export interface ServiceTypeHealthPolicyOutput { + maxPercentUnhealthyServices?: number; +} + +// @public (undocumented) +export interface SettingsParameterDescription { + name: string; + value: string; +} + +// @public (undocumented) +export interface SettingsParameterDescriptionOutput { + name: string; + value: string; +} + +// @public (undocumented) +export interface SettingsSectionDescription { + name: string; + parameters: Array; +} + +// @public (undocumented) +export interface SettingsSectionDescriptionOutput { + name: string; + parameters: Array; +} + +// @public (undocumented) +export interface SingletonPartitionSchemeDescription extends PartitionSchemeDescriptionParent { + // (undocumented) + partitionScheme: "Singleton"; +} + +// @public (undocumented) +export interface SingletonPartitionSchemeDescriptionOutput extends PartitionSchemeDescriptionOutputParent { + // (undocumented) + partitionScheme: "Singleton"; +} + +// @public (undocumented) +export interface StatefulServiceProperties extends ServiceResourcePropertiesParent { + hasPersistedState?: boolean; + minReplicaSetSize?: number; + quorumLossWaitDuration?: Date | string; + replicaRestartWaitDuration?: Date | string; + // (undocumented) + serviceKind: "Stateful"; + standByReplicaKeepDuration?: Date | string; + targetReplicaSetSize?: number; +} + +// @public (undocumented) +export interface StatefulServicePropertiesOutput extends ServiceResourcePropertiesOutputParent { + hasPersistedState?: boolean; + minReplicaSetSize?: number; + quorumLossWaitDuration?: string; + replicaRestartWaitDuration?: string; + // (undocumented) + serviceKind: "Stateful"; + standByReplicaKeepDuration?: string; + targetReplicaSetSize?: number; +} + +// @public (undocumented) +export interface StatefulServiceUpdateProperties extends ServiceResourceUpdatePropertiesParent { + minReplicaSetSize?: number; + quorumLossWaitDuration?: Date | string; + replicaRestartWaitDuration?: Date | string; + // (undocumented) + serviceKind: "Stateful"; + standByReplicaKeepDuration?: Date | string; + targetReplicaSetSize?: number; +} + +// @public (undocumented) +export interface StatefulServiceUpdatePropertiesOutput extends ServiceResourceUpdatePropertiesOutputParent { + minReplicaSetSize?: number; + quorumLossWaitDuration?: string; + replicaRestartWaitDuration?: string; + // (undocumented) + serviceKind: "Stateful"; + standByReplicaKeepDuration?: string; + targetReplicaSetSize?: number; +} + +// @public (undocumented) +export interface StatelessServiceProperties extends ServiceResourcePropertiesParent { + instanceCloseDelayDuration?: string; + instanceCount?: number; + // (undocumented) + serviceKind: "Stateless"; +} + +// @public (undocumented) +export interface StatelessServicePropertiesOutput extends ServiceResourcePropertiesOutputParent { + instanceCloseDelayDuration?: string; + instanceCount?: number; + // (undocumented) + serviceKind: "Stateless"; +} + +// @public (undocumented) +export interface StatelessServiceUpdateProperties extends ServiceResourceUpdatePropertiesParent { + instanceCloseDelayDuration?: string; + instanceCount?: number; + // (undocumented) + serviceKind: "Stateless"; +} + +// @public (undocumented) +export interface StatelessServiceUpdatePropertiesOutput extends ServiceResourceUpdatePropertiesOutputParent { + instanceCloseDelayDuration?: string; + instanceCount?: number; + // (undocumented) + serviceKind: "Stateless"; +} + +// @public (undocumented) +export interface SystemData { + createdAt?: Date | string; + createdBy?: string; + createdByType?: string; + lastModifiedAt?: Date | string; + lastModifiedBy?: string; + lastModifiedByType?: string; +} + +// @public (undocumented) +export interface SystemDataOutput { + createdAt?: string; + createdBy?: string; + createdByType?: string; + lastModifiedAt?: string; + lastModifiedBy?: string; + lastModifiedByType?: string; +} + +// @public (undocumented) +export interface UniformInt64RangePartitionSchemeDescription extends PartitionSchemeDescriptionParent { + count: number; + highKey: string; + lowKey: string; + // (undocumented) + partitionScheme: "UniformInt64Range"; +} + +// @public (undocumented) +export interface UniformInt64RangePartitionSchemeDescriptionOutput extends PartitionSchemeDescriptionOutputParent { + count: number; + highKey: string; + lowKey: string; + // (undocumented) + partitionScheme: "UniformInt64Range"; +} + +// @public (undocumented) +export interface UpgradableVersionPathResultOutput { + // (undocumented) + supportedPath?: Array; +} + +// @public (undocumented) +export interface UpgradableVersionsDescription { + targetVersion: string; +} + +// @public (undocumented) +export interface UserAssignedIdentity { + clientId?: string; + principalId?: string; +} + +// @public (undocumented) +export interface UserAssignedIdentityOutput { + clientId?: string; + principalId?: string; +} + +// (No @packageDocumentation comment for this package) + +``` diff --git a/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/misc/test-cases/rest-level-client-to-rest-level-client/current-package/src/serviceFabricClient.ts b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/misc/test-cases/rest-level-client-to-rest-level-client/current-package/src/serviceFabricClient.ts new file mode 100644 index 00000000000..f354610b040 --- /dev/null +++ b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/misc/test-cases/rest-level-client-to-rest-level-client/current-package/src/serviceFabricClient.ts @@ -0,0 +1,42 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import { ClientOptions, getClient } from "@azure-rest/core-client"; +import { TokenCredential } from "@azure/core-auth"; +import { ServiceFabricClient } from "./clientDefinitions"; +import { customizedApiVersionPolicy } from "./customizedApiVersionPolicy"; + +export default function createClient( + credentials: TokenCredential, + options: ClientOptions = {}, +): ServiceFabricClient { + const baseUrl = options.baseUrl ?? "https://management.azure.com"; + options.apiVersion = options.apiVersion ?? "2021-06-01"; + options = { + ...options, + credentials: { + scopes: ["https://management.azure.com/.default"], + }, + }; + + const userAgentInfo = `azsdk-js-arm-servicefabric-rest/1.0.0-beta.1`; + const userAgentPrefix = + options.userAgentOptions && options.userAgentOptions.userAgentPrefix + ? `${options.userAgentOptions.userAgentPrefix} ${userAgentInfo}` + : `${userAgentInfo}`; + options = { + ...options, + userAgentOptions: { + userAgentPrefix, + }, + }; + + const client = getClient(baseUrl, credentials, options) as ServiceFabricClient; + // Considering ApiVersionPolicy in core has bugs so we replace with our customized one + client.pipeline.removePolicy({ + name: "ApiVersionPolicy", + }); + client.pipeline.addPolicy(customizedApiVersionPolicy(options)); + + return client; +} diff --git a/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/misc/test-cases/rest-level-client-to-rest-level-client/current-package/tsconfig.json b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/misc/test-cases/rest-level-client-to-rest-level-client/current-package/tsconfig.json new file mode 100644 index 00000000000..9686c443aef --- /dev/null +++ b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/misc/test-cases/rest-level-client-to-rest-level-client/current-package/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../../tsconfig", + "compilerOptions": { + "outDir": "./dist-esm", + "declarationDir": "./types", + "paths": { "@azure-rest/arm-servicefabric": ["./src/index"] } + }, + "include": ["src/**/*.ts", "./test/**/*.ts", "samples-dev/**/*.ts"] +} diff --git a/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/package.json b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/package.json new file mode 100644 index 00000000000..33fc56a6dad --- /dev/null +++ b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/package.json @@ -0,0 +1,64 @@ +{ + "name": "typescript-codegen-breaking-change-detector", + "version": "0.4.11", + "description": "Detect breaking changes to your TypeScript client generated by open api, typespec and more...", + "main": "dist/src/index.js", + "types": "./dist/src/index.d.ts", + "files": [ + "dist" + ], + "scripts": { + "build": "rimraf ./dist && tsc", + "start:dev": "tsx watch src/cli.ts", + "start": "npm run build && node dist/index.js", + "test": "vitest --run", + "test:watch": "vitest", + "lint": "eslint . --ext .ts --max-warnings=0", + "prettier-format": "run-script-os", + "prettier-format:win32": "prettier --config .prettierrc \"./src/**/*.ts\" --write", + "prettier-format:darwin:linux": "prettier --config .prettierrc 'src/**/*.ts' --write", + "prettier-format:default": "prettier --config .prettierrc 'src/**/*.ts' --write", + "prettier-watch": "run-script-os", + "prettier-watch:win32": "onchange \"src/**/*.ts\" -- prettier --write {{changed}}", + "prettier-watch:darwin:linux": "onchange 'src/**/*.ts' -- prettier --write {{changed}}", + "prettier-watch:default": "onchange 'src/**/*.ts' -- prettier --write {{changed}}" + }, + "license": "MIT", + "dependencies": { + "@azure-tools/openapi-tools-common": "^1.2.2", + "@typescript-eslint/scope-manager": "^7.17.0", + "@typescript-eslint/types": "^7.17.0", + "@typescript-eslint/typescript-estree": "^7.17.0", + "@typescript-eslint/utils": "^7.17.0", + "@typescript-eslint/visitor-keys": "^7.17.0", + "commander": "^12.1.0", + "fs-extra": "^11.2.0", + "glob": "^11.0.0", + "marked": "^13.0.2", + "pino": "^9.3.1", + "pino-pretty": "^11.2.1", + "ts-morph": "^23.0.0", + "typescript": "5.5.3", + "typescript-eslint": "^7.17.0" + }, + "devDependencies": { + "@types/eslint": "^8.56.10", + "@types/eslint-scope": "^3.7.7", + "@types/fs-extra": "^11.0.4", + "@typescript-eslint/eslint-plugin": "^7.17.0", + "@typescript-eslint/parser": "^7.17.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-prettier": "^5.1.3", + "husky": "^9.0.11", + "onchange": "^7.1.0", + "prettier": "3.3.2", + "rimraf": "^5.0.7", + "tsx": "^4.16.2", + "vitest": "^2.0.4" + }, + "husky": { + "hooks": { + "pre-commit": "npm run prettier-format && npm run lint" + } + } +} diff --git a/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/pnpm-lock.yaml b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/pnpm-lock.yaml new file mode 100644 index 00000000000..4657607511f --- /dev/null +++ b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/pnpm-lock.yaml @@ -0,0 +1,3214 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@azure-tools/openapi-tools-common': + specifier: ^1.2.2 + version: 1.2.2 + '@typescript-eslint/scope-manager': + specifier: ^7.17.0 + version: 7.18.0 + '@typescript-eslint/types': + specifier: ^7.17.0 + version: 7.18.0 + '@typescript-eslint/typescript-estree': + specifier: ^7.17.0 + version: 7.18.0(typescript@5.5.3) + '@typescript-eslint/utils': + specifier: ^7.17.0 + version: 7.18.0(eslint@8.57.0)(typescript@5.5.3) + '@typescript-eslint/visitor-keys': + specifier: ^7.17.0 + version: 7.18.0 + commander: + specifier: ^12.1.0 + version: 12.1.0 + fs-extra: + specifier: ^11.2.0 + version: 11.2.0 + glob: + specifier: ^11.0.0 + version: 11.0.0 + marked: + specifier: ^13.0.2 + version: 13.0.3 + pino: + specifier: ^9.3.1 + version: 9.3.2 + pino-pretty: + specifier: ^11.2.1 + version: 11.2.2 + ts-morph: + specifier: ^23.0.0 + version: 23.0.0 + typescript: + specifier: 5.5.3 + version: 5.5.3 + typescript-eslint: + specifier: ^7.17.0 + version: 7.18.0(eslint@8.57.0)(typescript@5.5.3) + devDependencies: + '@types/eslint': + specifier: ^8.56.10 + version: 8.56.11 + '@types/eslint-scope': + specifier: ^3.7.7 + version: 3.7.7 + '@types/fs-extra': + specifier: ^11.0.4 + version: 11.0.4 + '@typescript-eslint/eslint-plugin': + specifier: ^7.17.0 + version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0)(typescript@5.5.3) + '@typescript-eslint/parser': + specifier: ^7.17.0 + version: 7.18.0(eslint@8.57.0)(typescript@5.5.3) + eslint-config-prettier: + specifier: ^9.1.0 + version: 9.1.0(eslint@8.57.0) + eslint-plugin-prettier: + specifier: ^5.1.3 + version: 5.2.1(@types/eslint@8.56.11)(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.3.2) + husky: + specifier: ^9.0.11 + version: 9.1.4 + onchange: + specifier: ^7.1.0 + version: 7.1.0 + prettier: + specifier: 3.3.2 + version: 3.3.2 + rimraf: + specifier: ^5.0.7 + version: 5.0.10 + tsx: + specifier: ^4.16.2 + version: 4.17.0 + vitest: + specifier: ^2.0.4 + version: 2.0.5(@types/node@22.3.0) + +packages: + + '@ampproject/remapping@2.3.0': + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + + '@azure-tools/openapi-tools-common@1.2.2': + resolution: {integrity: sha512-r6oBkNsND1sA+ZjHlE1vTf2hUj4RUnbD9KG9uksEKnLVC6oOD5WuJYCO5y4xDzWWuR0x+9gImovQqXAE7ZXYfg==} + + '@blakeembrey/deque@1.0.5': + resolution: {integrity: sha512-6xnwtvp9DY1EINIKdTfvfeAtCYw4OqBZJhtiqkT3ivjnEfa25VQ3TsKvaFfKm8MyGIEfE95qLe+bNEt3nB0Ylg==} + + '@blakeembrey/template@1.1.0': + resolution: {integrity: sha512-iZf+UWfL+DogJVpd/xMQyP6X6McYd6ArdYoPMiv/zlOTzeXXfQbYxBNJJBF6tThvsjLMbA8tLjkCdm9RWMFCCw==} + + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + + '@esbuild/aix-ppc64@0.23.0': + resolution: {integrity: sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm64@0.23.0': + resolution: {integrity: sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-arm@0.23.0': + resolution: {integrity: sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/android-x64@0.23.0': + resolution: {integrity: sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-arm64@0.23.0': + resolution: {integrity: sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/darwin-x64@0.23.0': + resolution: {integrity: sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-arm64@0.23.0': + resolution: {integrity: sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.23.0': + resolution: {integrity: sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm64@0.23.0': + resolution: {integrity: sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-arm@0.23.0': + resolution: {integrity: sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-ia32@0.23.0': + resolution: {integrity: sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-loong64@0.23.0': + resolution: {integrity: sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-mips64el@0.23.0': + resolution: {integrity: sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-ppc64@0.23.0': + resolution: {integrity: sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-riscv64@0.23.0': + resolution: {integrity: sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-s390x@0.23.0': + resolution: {integrity: sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/linux-x64@0.23.0': + resolution: {integrity: sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.23.0': + resolution: {integrity: sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.23.0': + resolution: {integrity: sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.23.0': + resolution: {integrity: sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/sunos-x64@0.23.0': + resolution: {integrity: sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-arm64@0.23.0': + resolution: {integrity: sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-ia32@0.23.0': + resolution: {integrity: sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@esbuild/win32-x64@0.23.0': + resolution: {integrity: sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@eslint-community/eslint-utils@4.4.0': + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.11.0': + resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/eslintrc@2.1.4': + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@eslint/js@8.57.0': + resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@humanwhocodes/config-array@0.11.14': + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} + engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/object-schema@2.0.3': + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + deprecated: Use @eslint/object-schema instead + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@pkgr/core@0.1.1': + resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + + '@rollup/rollup-android-arm-eabi@4.20.0': + resolution: {integrity: sha512-TSpWzflCc4VGAUJZlPpgAJE1+V60MePDQnBd7PPkpuEmOy8i87aL6tinFGKBFKuEDikYpig72QzdT3QPYIi+oA==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.20.0': + resolution: {integrity: sha512-u00Ro/nok7oGzVuh/FMYfNoGqxU5CPWz1mxV85S2w9LxHR8OoMQBuSk+3BKVIDYgkpeOET5yXkx90OYFc+ytpQ==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.20.0': + resolution: {integrity: sha512-uFVfvzvsdGtlSLuL0ZlvPJvl6ZmrH4CBwLGEFPe7hUmf7htGAN+aXo43R/V6LATyxlKVC/m6UsLb7jbG+LG39Q==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.20.0': + resolution: {integrity: sha512-xbrMDdlev53vNXexEa6l0LffojxhqDTBeL+VUxuuIXys4x6xyvbKq5XqTXBCEUA8ty8iEJblHvFaWRJTk/icAQ==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-linux-arm-gnueabihf@4.20.0': + resolution: {integrity: sha512-jMYvxZwGmoHFBTbr12Xc6wOdc2xA5tF5F2q6t7Rcfab68TT0n+r7dgawD4qhPEvasDsVpQi+MgDzj2faOLsZjA==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.20.0': + resolution: {integrity: sha512-1asSTl4HKuIHIB1GcdFHNNZhxAYEdqML/MW4QmPS4G0ivbEcBr1JKlFLKsIRqjSwOBkdItn3/ZDlyvZ/N6KPlw==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.20.0': + resolution: {integrity: sha512-COBb8Bkx56KldOYJfMf6wKeYJrtJ9vEgBRAOkfw6Ens0tnmzPqvlpjZiLgkhg6cA3DGzCmLmmd319pmHvKWWlQ==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.20.0': + resolution: {integrity: sha512-+it+mBSyMslVQa8wSPvBx53fYuZK/oLTu5RJoXogjk6x7Q7sz1GNRsXWjn6SwyJm8E/oMjNVwPhmNdIjwP135Q==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-powerpc64le-gnu@4.20.0': + resolution: {integrity: sha512-yAMvqhPfGKsAxHN8I4+jE0CpLWD8cv4z7CK7BMmhjDuz606Q2tFKkWRY8bHR9JQXYcoLfopo5TTqzxgPUjUMfw==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.20.0': + resolution: {integrity: sha512-qmuxFpfmi/2SUkAw95TtNq/w/I7Gpjurx609OOOV7U4vhvUhBcftcmXwl3rqAek+ADBwSjIC4IVNLiszoj3dPA==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.20.0': + resolution: {integrity: sha512-I0BtGXddHSHjV1mqTNkgUZLnS3WtsqebAXv11D5BZE/gfw5KoyXSAXVqyJximQXNvNzUo4GKlCK/dIwXlz+jlg==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.20.0': + resolution: {integrity: sha512-y+eoL2I3iphUg9tN9GB6ku1FA8kOfmF4oUEWhztDJ4KXJy1agk/9+pejOuZkNFhRwHAOxMsBPLbXPd6mJiCwew==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.20.0': + resolution: {integrity: sha512-hM3nhW40kBNYUkZb/r9k2FKK+/MnKglX7UYd4ZUy5DJs8/sMsIbqWK2piZtVGE3kcXVNj3B2IrUYROJMMCikNg==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-win32-arm64-msvc@4.20.0': + resolution: {integrity: sha512-psegMvP+Ik/Bg7QRJbv8w8PAytPA7Uo8fpFjXyCRHWm6Nt42L+JtoqH8eDQ5hRP7/XW2UiIriy1Z46jf0Oa1kA==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.20.0': + resolution: {integrity: sha512-GabekH3w4lgAJpVxkk7hUzUf2hICSQO0a/BLFA11/RMxQT92MabKAqyubzDZmMOC/hcJNlc+rrypzNzYl4Dx7A==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.20.0': + resolution: {integrity: sha512-aJ1EJSuTdGnM6qbVC4B5DSmozPTqIag9fSzXRNNo+humQLG89XpPgdt16Ia56ORD7s+H8Pmyx44uczDQ0yDzpg==} + cpu: [x64] + os: [win32] + + '@ts-morph/common@0.24.0': + resolution: {integrity: sha512-c1xMmNHWpNselmpIqursHeOHHBTIsJLbB+NuovbTTRCNiTLEr/U9dbJ8qy0jd/O2x5pc3seWuOUN5R2IoOTp8A==} + + '@types/async-retry@1.4.8': + resolution: {integrity: sha512-Qup/B5PWLe86yI5I3av6ePGaeQrIHNKCwbsQotD6aHQ6YkHsMUxVZkZsmx/Ry3VZQ6uysHwTjQ7666+k6UjVJA==} + + '@types/commonmark@0.27.9': + resolution: {integrity: sha512-d3+57WgyPCcIc6oshmcPkmP4+JqRRot9eeZLsBsutWtIxwWivpoyc2wEcolOp8MyO3ZWN846mMdoR02kdHSMCw==} + + '@types/eslint-scope@3.7.7': + resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} + + '@types/eslint@8.56.11': + resolution: {integrity: sha512-sVBpJMf7UPo/wGecYOpk2aQya2VUGeHhe38WG7/mN5FufNSubf5VT9Uh9Uyp8/eLJpu1/tuhJ/qTo4mhSB4V4Q==} + + '@types/estree@1.0.5': + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + + '@types/fs-extra@11.0.4': + resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/jsonfile@6.1.4': + resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} + + '@types/node-fetch@2.6.11': + resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} + + '@types/node@22.3.0': + resolution: {integrity: sha512-nrWpWVaDZuaVc5X84xJ0vNrLvomM205oQyLsRt7OHNZbSHslcWsvgFR7O7hire2ZonjLrWBbedmotmIlJDVd6g==} + + '@types/retry@0.12.5': + resolution: {integrity: sha512-3xSjTp3v03X/lSQLkczaN9UIEwJMoMCA1+Nb5HfbJEQWogdeQIyVtTvxPXDQjZ5zws8rFQfVfRdz03ARihPJgw==} + + '@typescript-eslint/eslint-plugin@7.18.0': + resolution: {integrity: sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + '@typescript-eslint/parser': ^7.0.0 + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/parser@7.18.0': + resolution: {integrity: sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/scope-manager@7.18.0': + resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/type-utils@7.18.0': + resolution: {integrity: sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/types@7.18.0': + resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/typescript-estree@7.18.0': + resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/utils@7.18.0': + resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + + '@typescript-eslint/visitor-keys@7.18.0': + resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@ungap/structured-clone@1.2.0': + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + + '@vitest/expect@2.0.5': + resolution: {integrity: sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA==} + + '@vitest/pretty-format@2.0.5': + resolution: {integrity: sha512-h8k+1oWHfwTkyTkb9egzwNMfJAEx4veaPSnMeKbVSjp4euqGSbQlm5+6VHwTr7u4FJslVVsUG5nopCaAYdOmSQ==} + + '@vitest/runner@2.0.5': + resolution: {integrity: sha512-TfRfZa6Bkk9ky4tW0z20WKXFEwwvWhRY+84CnSEtq4+3ZvDlJyY32oNTJtM7AW9ihW90tX/1Q78cb6FjoAs+ig==} + + '@vitest/snapshot@2.0.5': + resolution: {integrity: sha512-SgCPUeDFLaM0mIUHfaArq8fD2WbaXG/zVXjRupthYfYGzc8ztbFbu6dUNOblBG7XLMR1kEhS/DNnfCZ2IhdDew==} + + '@vitest/spy@2.0.5': + resolution: {integrity: sha512-c/jdthAhvJdpfVuaexSrnawxZz6pywlTPe84LUB2m/4t3rl2fTo9NFGBG4oWgaD+FTgDDV8hJ/nibT7IfH3JfA==} + + '@vitest/utils@2.0.5': + resolution: {integrity: sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ==} + + abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn@8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} + engines: {node: '>=0.4.0'} + hasBin: true + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} + + async-retry@1.3.3: + resolution: {integrity: sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + atomic-sleep@1.0.0: + resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} + engines: {node: '>=8.0.0'} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + + cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + chai@5.1.1: + resolution: {integrity: sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==} + engines: {node: '>=12'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + check-error@2.1.1: + resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} + engines: {node: '>= 16'} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + code-block-writer@13.0.2: + resolution: {integrity: sha512-XfXzAGiStXSmCIwrkdfvc7FS5Dtj8yelCtyOf2p2skCAfvLd6zu0rGzuS9NSCO3bq1JKpFZ7tbKdKlcd5occQA==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + commander@12.1.0: + resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} + engines: {node: '>=18'} + + commonmark@0.28.1: + resolution: {integrity: sha512-PklsZ9pgrfFQ5hQH9BRzoWnqI9db2LeR9MhvkNk8iz97kfaTNmhTU+IE8jKDHTEfivZZXoFqzGqzddXdk14EJw==} + hasBin: true + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + + dateformat@4.6.3: + resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==} + + debug@4.3.6: + resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + deep-eql@5.0.2: + resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} + engines: {node: '>=6'} + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + + doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + + entities@1.1.2: + resolution: {integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==} + + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true + + esbuild@0.23.0: + resolution: {integrity: sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA==} + engines: {node: '>=18'} + hasBin: true + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + eslint-config-prettier@9.1.0: + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + + eslint-plugin-prettier@5.2.1: + resolution: {integrity: sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' + eslint-config-prettier: '*' + prettier: '>=3.0.0' + peerDependenciesMeta: + '@types/eslint': + optional: true + eslint-config-prettier: + optional: true + + eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + + execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + + fast-copy@3.0.2: + resolution: {integrity: sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fast-redact@3.5.0: + resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==} + engines: {node: '>=6'} + + fast-safe-stringify@2.1.1: + resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + + fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + + file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + + flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + + foreground-child@3.3.0: + resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} + engines: {node: '>=14'} + + form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + + front-matter@4.0.2: + resolution: {integrity: sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==} + + fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} + engines: {node: '>=14.14'} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + + get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + + get-tsconfig@4.7.6: + resolution: {integrity: sha512-ZAqrLlu18NbDdRaHq+AKXzAmqIUPswPWKUchfytdAjiRFnCe5ojG2bstg6mRiZabkKfCoL/e98pbBELIV/YCeA==} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + + glob@11.0.0: + resolution: {integrity: sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==} + engines: {node: 20 || >=22} + hasBin: true + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + + globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + help-me@5.0.0: + resolution: {integrity: sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==} + + human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + + husky@9.1.4: + resolution: {integrity: sha512-bho94YyReb4JV7LYWRWxZ/xr6TtOTt8cMfmQ39MQYJ7f/YE268s3GdghGwi+y4zAeqewE5zYLvuhV0M0ijsDEA==} + engines: {node: '>=18'} + hasBin: true + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + inflight@1.0.6: + resolution: {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. + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + + is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + + jackspeak@4.0.1: + resolution: {integrity: sha512-cub8rahkh0Q/bw1+GxP7aeSe29hHHn2V4m29nnDlvCdlgU+3UGxkZp7Z53jLUdpX3jdTO0nJZUDl3xvbWc2Xog==} + engines: {node: 20 || >=22} + + joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + + js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + loupe@3.1.1: + resolution: {integrity: sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==} + + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + lru-cache@11.0.0: + resolution: {integrity: sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA==} + engines: {node: 20 || >=22} + + magic-string@0.30.11: + resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} + + marked@13.0.3: + resolution: {integrity: sha512-rqRix3/TWzE9rIoFGIn8JmsVfhiuC8VIQ8IdX5TfzmeBucdY05/0UlzKaw0eVtpcN/OdVFpBk7CjKGo9iHJ/zA==} + engines: {node: '>= 18'} + hasBin: true + + mdurl@1.0.1: + resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micromatch@4.0.7: + resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} + engines: {node: '>=8.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + + minimatch@10.0.1: + resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==} + engines: {node: 20 || >=22} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + + mkdirp@3.0.1: + resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} + engines: {node: '>=10'} + hasBin: true + + ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + on-exit-leak-free@2.1.2: + resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==} + engines: {node: '>=14.0.0'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + onchange@7.1.0: + resolution: {integrity: sha512-ZJcqsPiWUAUpvmnJri5TPBooqJOPmC0ttN65juhN15Q8xA+Nbg3BaxBHXQ45EistKKlKElb0edmbPWnKSBkvMg==} + hasBin: true + + onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + package-json-from-dist@1.0.0: + resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + path-scurry@2.0.0: + resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} + engines: {node: 20 || >=22} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + + pathval@2.0.0: + resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} + engines: {node: '>= 14.16'} + + picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + pino-abstract-transport@1.2.0: + resolution: {integrity: sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==} + + pino-pretty@11.2.2: + resolution: {integrity: sha512-2FnyGir8nAJAqD3srROdrF1J5BIcMT4nwj7hHSc60El6Uxlym00UbCCd8pYIterstVBFlMyF1yFV8XdGIPbj4A==} + hasBin: true + + pino-std-serializers@7.0.0: + resolution: {integrity: sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==} + + pino@9.3.2: + resolution: {integrity: sha512-WtARBjgZ7LNEkrGWxMBN/jvlFiE17LTbBoH0konmBU684Kd0uIiDwBXlcTCW7iJnA6HfIKwUssS/2AC6cDEanw==} + hasBin: true + + postcss@8.4.41: + resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==} + engines: {node: ^10 || ^12 || >=14} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prettier-linter-helpers@1.0.0: + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + engines: {node: '>=6.0.0'} + + prettier@3.3.2: + resolution: {integrity: sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==} + engines: {node: '>=14'} + hasBin: true + + process-warning@4.0.0: + resolution: {integrity: sha512-/MyYDxttz7DfGMMHiysAsFE4qF+pQYAA8ziO/3NcRVrQ5fSk+Mns4QZA/oRPFzvcqNoVJXQNWNAsdwBXLUkQKw==} + + process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + + pump@3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + quick-format-unescaped@4.0.4: + resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} + + readable-stream@4.5.2: + resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + real-require@0.2.0: + resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} + engines: {node: '>= 12.13.0'} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + retry@0.13.1: + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} + + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + rimraf@5.0.10: + resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} + hasBin: true + + rollup@4.20.0: + resolution: {integrity: sha512-6rbWBChcnSGzIlXeIdNIZTopKYad8ZG8ajhl78lGRLsI2rX8IkaotQhVas2Ma+GPxJav19wrSzvRvuiv0YKzWw==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safe-stable-stringify@2.4.3: + resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} + engines: {node: '>=10'} + + secure-json-parse@2.7.0: + resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} + + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + sonic-boom@4.0.1: + resolution: {integrity: sha512-hTSD/6JMLyT4r9zeof6UtuBDpjJ9sO08/nmS5djaA9eozT9oOlNdpXSnzcgj4FTqpk3nkLrs61l4gip9r1HCrQ==} + + source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} + + split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + + std-env@3.7.0: + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + string.prototype.repeat@0.2.0: + resolution: {integrity: sha512-1BH+X+1hSthZFW+X+JaUkjkkUPwIlLEMJBLANN3hOob3RhEk5snLWNECDnYbgn/m5c5JV7Ersu1Yubaf+05cIA==} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + synckit@0.9.1: + resolution: {integrity: sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==} + engines: {node: ^14.18.0 || >=16.0.0} + + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + thread-stream@3.1.0: + resolution: {integrity: sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==} + + tinybench@2.9.0: + resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} + + tinypool@1.0.0: + resolution: {integrity: sha512-KIKExllK7jp3uvrNtvRBYBWBOAXSX8ZvoaD8T+7KB/QHIuoJW3Pmr60zucywjAlMb5TeXUkcs/MWeWLu0qvuAQ==} + engines: {node: ^18.0.0 || >=20.0.0} + + tinyrainbow@1.2.0: + resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} + engines: {node: '>=14.0.0'} + + tinyspy@3.0.0: + resolution: {integrity: sha512-q5nmENpTHgiPVd1cJDDc9cVoYN5x4vCvwT3FMilvKPKneCBZAxn2YWQjDF0UMcE9k0Cay1gBiDfTMU0g+mPMQA==} + engines: {node: '>=14.0.0'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + + ts-api-utils@1.3.0: + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + + ts-morph@23.0.0: + resolution: {integrity: sha512-FcvFx7a9E8TUe6T3ShihXJLiJOiqyafzFKUO4aqIHDUCIvADdGNShcbc2W5PMr3LerXRv7mafvFZ9lRENxJmug==} + + tslib@2.6.3: + resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + + tsx@4.17.0: + resolution: {integrity: sha512-eN4mnDA5UMKDt4YZixo9tBioibaMBpoxBkD+rIPAjVmYERSG0/dWEY1CEFuV89CgASlKL499q8AhmkMnnjtOJg==} + engines: {node: '>=18.0.0'} + hasBin: true + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + typescript-eslint@7.18.0: + resolution: {integrity: sha512-PonBkP603E3tt05lDkbOMyaxJjvKqQrXsnow72sVeOFINDE/qNmnnd+f9b4N+U7W6MXnnYyrhtmF2t08QWwUbA==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + typescript@5.5.3: + resolution: {integrity: sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==} + engines: {node: '>=14.17'} + hasBin: true + + undici-types@6.18.2: + resolution: {integrity: sha512-5ruQbENj95yDYJNS3TvcaxPMshV7aizdv/hWYjGIKoANWKjhWNBsr2YEuYZKodQulB1b8l7ILOuDQep3afowQQ==} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + vite-node@2.0.5: + resolution: {integrity: sha512-LdsW4pxj0Ot69FAoXZ1yTnA9bjGohr2yNBU7QKRxpz8ITSkhuDl6h3zS/tvgz4qrNjeRnvrWeXQ8ZF7Um4W00Q==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + + vite@5.4.1: + resolution: {integrity: sha512-1oE6yuNXssjrZdblI9AfBbHCC41nnyoVoEZxQnID6yvQZAFBzxxkqoFLtHUMkYunL8hwOLEjgTuxpkRxvba3kA==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + + vitest@2.0.5: + resolution: {integrity: sha512-8GUxONfauuIdeSl5f9GTgVEpg5BTOlplET4WEDaeY2QBiN8wSm68vxN/tb5z405OwppfoCavnwXafiaYBC/xOA==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': 2.0.5 + '@vitest/ui': 2.0.5 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + why-is-node-running@2.3.0: + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} + engines: {node: '>=8'} + hasBin: true + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + +snapshots: + + '@ampproject/remapping@2.3.0': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + + '@azure-tools/openapi-tools-common@1.2.2': + dependencies: + '@types/async-retry': 1.4.8 + '@types/commonmark': 0.27.9 + '@types/node-fetch': 2.6.11 + async-retry: 1.3.3 + commonmark: 0.28.1 + front-matter: 4.0.2 + node-fetch: 2.7.0 + tslib: 2.6.3 + transitivePeerDependencies: + - encoding + + '@blakeembrey/deque@1.0.5': {} + + '@blakeembrey/template@1.1.0': {} + + '@esbuild/aix-ppc64@0.21.5': + optional: true + + '@esbuild/aix-ppc64@0.23.0': + optional: true + + '@esbuild/android-arm64@0.21.5': + optional: true + + '@esbuild/android-arm64@0.23.0': + optional: true + + '@esbuild/android-arm@0.21.5': + optional: true + + '@esbuild/android-arm@0.23.0': + optional: true + + '@esbuild/android-x64@0.21.5': + optional: true + + '@esbuild/android-x64@0.23.0': + optional: true + + '@esbuild/darwin-arm64@0.21.5': + optional: true + + '@esbuild/darwin-arm64@0.23.0': + optional: true + + '@esbuild/darwin-x64@0.21.5': + optional: true + + '@esbuild/darwin-x64@0.23.0': + optional: true + + '@esbuild/freebsd-arm64@0.21.5': + optional: true + + '@esbuild/freebsd-arm64@0.23.0': + optional: true + + '@esbuild/freebsd-x64@0.21.5': + optional: true + + '@esbuild/freebsd-x64@0.23.0': + optional: true + + '@esbuild/linux-arm64@0.21.5': + optional: true + + '@esbuild/linux-arm64@0.23.0': + optional: true + + '@esbuild/linux-arm@0.21.5': + optional: true + + '@esbuild/linux-arm@0.23.0': + optional: true + + '@esbuild/linux-ia32@0.21.5': + optional: true + + '@esbuild/linux-ia32@0.23.0': + optional: true + + '@esbuild/linux-loong64@0.21.5': + optional: true + + '@esbuild/linux-loong64@0.23.0': + optional: true + + '@esbuild/linux-mips64el@0.21.5': + optional: true + + '@esbuild/linux-mips64el@0.23.0': + optional: true + + '@esbuild/linux-ppc64@0.21.5': + optional: true + + '@esbuild/linux-ppc64@0.23.0': + optional: true + + '@esbuild/linux-riscv64@0.21.5': + optional: true + + '@esbuild/linux-riscv64@0.23.0': + optional: true + + '@esbuild/linux-s390x@0.21.5': + optional: true + + '@esbuild/linux-s390x@0.23.0': + optional: true + + '@esbuild/linux-x64@0.21.5': + optional: true + + '@esbuild/linux-x64@0.23.0': + optional: true + + '@esbuild/netbsd-x64@0.21.5': + optional: true + + '@esbuild/netbsd-x64@0.23.0': + optional: true + + '@esbuild/openbsd-arm64@0.23.0': + optional: true + + '@esbuild/openbsd-x64@0.21.5': + optional: true + + '@esbuild/openbsd-x64@0.23.0': + optional: true + + '@esbuild/sunos-x64@0.21.5': + optional: true + + '@esbuild/sunos-x64@0.23.0': + optional: true + + '@esbuild/win32-arm64@0.21.5': + optional: true + + '@esbuild/win32-arm64@0.23.0': + optional: true + + '@esbuild/win32-ia32@0.21.5': + optional: true + + '@esbuild/win32-ia32@0.23.0': + optional: true + + '@esbuild/win32-x64@0.21.5': + optional: true + + '@esbuild/win32-x64@0.23.0': + optional: true + + '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': + dependencies: + eslint: 8.57.0 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.11.0': {} + + '@eslint/eslintrc@2.1.4': + dependencies: + ajv: 6.12.6 + debug: 4.3.6 + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.2 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@8.57.0': {} + + '@humanwhocodes/config-array@0.11.14': + dependencies: + '@humanwhocodes/object-schema': 2.0.3 + debug: 4.3.6 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/object-schema@2.0.3': {} + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@jridgewell/gen-mapping@0.3.5': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@pkgr/core@0.1.1': {} + + '@rollup/rollup-android-arm-eabi@4.20.0': + optional: true + + '@rollup/rollup-android-arm64@4.20.0': + optional: true + + '@rollup/rollup-darwin-arm64@4.20.0': + optional: true + + '@rollup/rollup-darwin-x64@4.20.0': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.20.0': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.20.0': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.20.0': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.20.0': + optional: true + + '@rollup/rollup-linux-powerpc64le-gnu@4.20.0': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.20.0': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.20.0': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.20.0': + optional: true + + '@rollup/rollup-linux-x64-musl@4.20.0': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.20.0': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.20.0': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.20.0': + optional: true + + '@ts-morph/common@0.24.0': + dependencies: + fast-glob: 3.3.2 + minimatch: 9.0.5 + mkdirp: 3.0.1 + path-browserify: 1.0.1 + + '@types/async-retry@1.4.8': + dependencies: + '@types/retry': 0.12.5 + + '@types/commonmark@0.27.9': {} + + '@types/eslint-scope@3.7.7': + dependencies: + '@types/eslint': 8.56.11 + '@types/estree': 1.0.5 + + '@types/eslint@8.56.11': + dependencies: + '@types/estree': 1.0.5 + '@types/json-schema': 7.0.15 + + '@types/estree@1.0.5': {} + + '@types/fs-extra@11.0.4': + dependencies: + '@types/jsonfile': 6.1.4 + '@types/node': 22.3.0 + + '@types/json-schema@7.0.15': {} + + '@types/jsonfile@6.1.4': + dependencies: + '@types/node': 22.3.0 + + '@types/node-fetch@2.6.11': + dependencies: + '@types/node': 22.3.0 + form-data: 4.0.0 + + '@types/node@22.3.0': + dependencies: + undici-types: 6.18.2 + + '@types/retry@0.12.5': {} + + '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0)(typescript@5.5.3)': + dependencies: + '@eslint-community/regexpp': 4.11.0 + '@typescript-eslint/parser': 7.18.0(eslint@8.57.0)(typescript@5.5.3) + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/type-utils': 7.18.0(eslint@8.57.0)(typescript@5.5.3) + '@typescript-eslint/utils': 7.18.0(eslint@8.57.0)(typescript@5.5.3) + '@typescript-eslint/visitor-keys': 7.18.0 + eslint: 8.57.0 + graphemer: 1.4.0 + ignore: 5.3.2 + natural-compare: 1.4.0 + ts-api-utils: 1.3.0(typescript@5.5.3) + optionalDependencies: + typescript: 5.5.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.3)': + dependencies: + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.3) + '@typescript-eslint/visitor-keys': 7.18.0 + debug: 4.3.6 + eslint: 8.57.0 + optionalDependencies: + typescript: 5.5.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@7.18.0': + dependencies: + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/visitor-keys': 7.18.0 + + '@typescript-eslint/type-utils@7.18.0(eslint@8.57.0)(typescript@5.5.3)': + dependencies: + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.3) + '@typescript-eslint/utils': 7.18.0(eslint@8.57.0)(typescript@5.5.3) + debug: 4.3.6 + eslint: 8.57.0 + ts-api-utils: 1.3.0(typescript@5.5.3) + optionalDependencies: + typescript: 5.5.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@7.18.0': {} + + '@typescript-eslint/typescript-estree@7.18.0(typescript@5.5.3)': + dependencies: + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/visitor-keys': 7.18.0 + debug: 4.3.6 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.3 + ts-api-utils: 1.3.0(typescript@5.5.3) + optionalDependencies: + typescript: 5.5.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@7.18.0(eslint@8.57.0)(typescript@5.5.3)': + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.3) + eslint: 8.57.0 + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/visitor-keys@7.18.0': + dependencies: + '@typescript-eslint/types': 7.18.0 + eslint-visitor-keys: 3.4.3 + + '@ungap/structured-clone@1.2.0': {} + + '@vitest/expect@2.0.5': + dependencies: + '@vitest/spy': 2.0.5 + '@vitest/utils': 2.0.5 + chai: 5.1.1 + tinyrainbow: 1.2.0 + + '@vitest/pretty-format@2.0.5': + dependencies: + tinyrainbow: 1.2.0 + + '@vitest/runner@2.0.5': + dependencies: + '@vitest/utils': 2.0.5 + pathe: 1.1.2 + + '@vitest/snapshot@2.0.5': + dependencies: + '@vitest/pretty-format': 2.0.5 + magic-string: 0.30.11 + pathe: 1.1.2 + + '@vitest/spy@2.0.5': + dependencies: + tinyspy: 3.0.0 + + '@vitest/utils@2.0.5': + dependencies: + '@vitest/pretty-format': 2.0.5 + estree-walker: 3.0.3 + loupe: 3.1.1 + tinyrainbow: 1.2.0 + + abort-controller@3.0.0: + dependencies: + event-target-shim: 5.0.1 + + acorn-jsx@5.3.2(acorn@8.12.1): + dependencies: + acorn: 8.12.1 + + acorn@8.12.1: {} + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ansi-regex@5.0.1: {} + + ansi-regex@6.0.1: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@6.2.1: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + arg@4.1.3: {} + + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + + argparse@2.0.1: {} + + array-union@2.1.0: {} + + assertion-error@2.0.1: {} + + async-retry@1.3.3: + dependencies: + retry: 0.13.1 + + asynckit@0.4.0: {} + + atomic-sleep@1.0.0: {} + + balanced-match@1.0.2: {} + + base64-js@1.5.1: {} + + binary-extensions@2.3.0: {} + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + buffer@6.0.3: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + cac@6.7.14: {} + + callsites@3.1.0: {} + + chai@5.1.1: + dependencies: + assertion-error: 2.0.1 + check-error: 2.1.1 + deep-eql: 5.0.2 + loupe: 3.1.1 + pathval: 2.0.0 + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + check-error@2.1.1: {} + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + code-block-writer@13.0.2: {} + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + colorette@2.0.20: {} + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + commander@12.1.0: {} + + commonmark@0.28.1: + dependencies: + entities: 1.1.2 + mdurl: 1.0.1 + minimist: 1.2.8 + string.prototype.repeat: 0.2.0 + + concat-map@0.0.1: {} + + cross-spawn@7.0.3: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + dateformat@4.6.3: {} + + debug@4.3.6: + dependencies: + ms: 2.1.2 + + deep-eql@5.0.2: {} + + deep-is@0.1.4: {} + + delayed-stream@1.0.0: {} + + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + + doctrine@3.0.0: + dependencies: + esutils: 2.0.3 + + eastasianwidth@0.2.0: {} + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + end-of-stream@1.4.4: + dependencies: + once: 1.4.0 + + entities@1.1.2: {} + + esbuild@0.21.5: + optionalDependencies: + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 + + esbuild@0.23.0: + optionalDependencies: + '@esbuild/aix-ppc64': 0.23.0 + '@esbuild/android-arm': 0.23.0 + '@esbuild/android-arm64': 0.23.0 + '@esbuild/android-x64': 0.23.0 + '@esbuild/darwin-arm64': 0.23.0 + '@esbuild/darwin-x64': 0.23.0 + '@esbuild/freebsd-arm64': 0.23.0 + '@esbuild/freebsd-x64': 0.23.0 + '@esbuild/linux-arm': 0.23.0 + '@esbuild/linux-arm64': 0.23.0 + '@esbuild/linux-ia32': 0.23.0 + '@esbuild/linux-loong64': 0.23.0 + '@esbuild/linux-mips64el': 0.23.0 + '@esbuild/linux-ppc64': 0.23.0 + '@esbuild/linux-riscv64': 0.23.0 + '@esbuild/linux-s390x': 0.23.0 + '@esbuild/linux-x64': 0.23.0 + '@esbuild/netbsd-x64': 0.23.0 + '@esbuild/openbsd-arm64': 0.23.0 + '@esbuild/openbsd-x64': 0.23.0 + '@esbuild/sunos-x64': 0.23.0 + '@esbuild/win32-arm64': 0.23.0 + '@esbuild/win32-ia32': 0.23.0 + '@esbuild/win32-x64': 0.23.0 + + escape-string-regexp@4.0.0: {} + + eslint-config-prettier@9.1.0(eslint@8.57.0): + dependencies: + eslint: 8.57.0 + + eslint-plugin-prettier@5.2.1(@types/eslint@8.56.11)(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.3.2): + dependencies: + eslint: 8.57.0 + prettier: 3.3.2 + prettier-linter-helpers: 1.0.0 + synckit: 0.9.1 + optionalDependencies: + '@types/eslint': 8.56.11 + eslint-config-prettier: 9.1.0(eslint@8.57.0) + + eslint-scope@7.2.2: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint@8.57.0: + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/regexpp': 4.11.0 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.57.0 + '@humanwhocodes/config-array': 0.11.14 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.6 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.24.0 + graphemer: 1.4.0 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + + espree@9.6.1: + dependencies: + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) + eslint-visitor-keys: 3.4.3 + + esprima@4.0.1: {} + + esquery@1.6.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.5 + + esutils@2.0.3: {} + + event-target-shim@5.0.1: {} + + events@3.3.0: {} + + execa@8.0.1: + dependencies: + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.3.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + + fast-copy@3.0.2: {} + + fast-deep-equal@3.1.3: {} + + fast-diff@1.3.0: {} + + fast-glob@3.3.2: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.7 + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fast-redact@3.5.0: {} + + fast-safe-stringify@2.1.1: {} + + fastq@1.17.1: + dependencies: + reusify: 1.0.4 + + file-entry-cache@6.0.1: + dependencies: + flat-cache: 3.2.0 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flat-cache@3.2.0: + dependencies: + flatted: 3.3.1 + keyv: 4.5.4 + rimraf: 3.0.2 + + flatted@3.3.1: {} + + foreground-child@3.3.0: + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + + form-data@4.0.0: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + + front-matter@4.0.2: + dependencies: + js-yaml: 3.14.1 + + fs-extra@11.2.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fs.realpath@1.0.0: {} + + fsevents@2.3.3: + optional: true + + get-func-name@2.0.2: {} + + get-stream@8.0.1: {} + + get-tsconfig@4.7.6: + dependencies: + resolve-pkg-maps: 1.0.0 + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob@10.4.5: + dependencies: + foreground-child: 3.3.0 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.0 + path-scurry: 1.11.1 + + glob@11.0.0: + dependencies: + foreground-child: 3.3.0 + jackspeak: 4.0.1 + minimatch: 10.0.1 + minipass: 7.1.2 + package-json-from-dist: 1.0.0 + path-scurry: 2.0.0 + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + globals@13.24.0: + dependencies: + type-fest: 0.20.2 + + globby@11.1.0: + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 3.0.0 + + graceful-fs@4.2.11: {} + + graphemer@1.4.0: {} + + has-flag@4.0.0: {} + + help-me@5.0.0: {} + + human-signals@5.0.0: {} + + husky@9.1.4: {} + + ieee754@1.2.1: {} + + ignore@5.3.2: {} + + import-fresh@3.3.0: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + imurmurhash@0.1.4: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.4: {} + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-number@7.0.0: {} + + is-path-inside@3.0.3: {} + + is-stream@3.0.0: {} + + isexe@2.0.0: {} + + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + jackspeak@4.0.1: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + joycon@3.1.1: {} + + js-yaml@3.14.1: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + json-buffer@3.0.1: {} + + json-schema-traverse@0.4.1: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + jsonfile@6.1.0: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lodash.merge@4.6.2: {} + + loupe@3.1.1: + dependencies: + get-func-name: 2.0.2 + + lru-cache@10.4.3: {} + + lru-cache@11.0.0: {} + + magic-string@0.30.11: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + + marked@13.0.3: {} + + mdurl@1.0.1: {} + + merge-stream@2.0.0: {} + + merge2@1.4.1: {} + + micromatch@4.0.7: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + mimic-fn@4.0.0: {} + + minimatch@10.0.1: + dependencies: + brace-expansion: 2.0.1 + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + + minimist@1.2.8: {} + + minipass@7.1.2: {} + + mkdirp@3.0.1: {} + + ms@2.1.2: {} + + nanoid@3.3.7: {} + + natural-compare@1.4.0: {} + + node-fetch@2.7.0: + dependencies: + whatwg-url: 5.0.0 + + normalize-path@3.0.0: {} + + npm-run-path@5.3.0: + dependencies: + path-key: 4.0.0 + + on-exit-leak-free@2.1.2: {} + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + onchange@7.1.0: + dependencies: + '@blakeembrey/deque': 1.0.5 + '@blakeembrey/template': 1.1.0 + arg: 4.1.3 + chokidar: 3.6.0 + cross-spawn: 7.0.3 + ignore: 5.3.2 + tree-kill: 1.2.2 + + onetime@6.0.0: + dependencies: + mimic-fn: 4.0.0 + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + package-json-from-dist@1.0.0: {} + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + path-browserify@1.0.1: {} + + path-exists@4.0.0: {} + + path-is-absolute@1.0.1: {} + + path-key@3.1.1: {} + + path-key@4.0.0: {} + + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + + path-scurry@2.0.0: + dependencies: + lru-cache: 11.0.0 + minipass: 7.1.2 + + path-type@4.0.0: {} + + pathe@1.1.2: {} + + pathval@2.0.0: {} + + picocolors@1.0.1: {} + + picomatch@2.3.1: {} + + pino-abstract-transport@1.2.0: + dependencies: + readable-stream: 4.5.2 + split2: 4.2.0 + + pino-pretty@11.2.2: + dependencies: + colorette: 2.0.20 + dateformat: 4.6.3 + fast-copy: 3.0.2 + fast-safe-stringify: 2.1.1 + help-me: 5.0.0 + joycon: 3.1.1 + minimist: 1.2.8 + on-exit-leak-free: 2.1.2 + pino-abstract-transport: 1.2.0 + pump: 3.0.0 + readable-stream: 4.5.2 + secure-json-parse: 2.7.0 + sonic-boom: 4.0.1 + strip-json-comments: 3.1.1 + + pino-std-serializers@7.0.0: {} + + pino@9.3.2: + dependencies: + atomic-sleep: 1.0.0 + fast-redact: 3.5.0 + on-exit-leak-free: 2.1.2 + pino-abstract-transport: 1.2.0 + pino-std-serializers: 7.0.0 + process-warning: 4.0.0 + quick-format-unescaped: 4.0.4 + real-require: 0.2.0 + safe-stable-stringify: 2.4.3 + sonic-boom: 4.0.1 + thread-stream: 3.1.0 + + postcss@8.4.41: + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.1 + source-map-js: 1.2.0 + + prelude-ls@1.2.1: {} + + prettier-linter-helpers@1.0.0: + dependencies: + fast-diff: 1.3.0 + + prettier@3.3.2: {} + + process-warning@4.0.0: {} + + process@0.11.10: {} + + pump@3.0.0: + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + + punycode@2.3.1: {} + + queue-microtask@1.2.3: {} + + quick-format-unescaped@4.0.4: {} + + readable-stream@4.5.2: + dependencies: + abort-controller: 3.0.0 + buffer: 6.0.3 + events: 3.3.0 + process: 0.11.10 + string_decoder: 1.3.0 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + real-require@0.2.0: {} + + resolve-from@4.0.0: {} + + resolve-pkg-maps@1.0.0: {} + + retry@0.13.1: {} + + reusify@1.0.4: {} + + rimraf@3.0.2: + dependencies: + glob: 7.2.3 + + rimraf@5.0.10: + dependencies: + glob: 10.4.5 + + rollup@4.20.0: + dependencies: + '@types/estree': 1.0.5 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.20.0 + '@rollup/rollup-android-arm64': 4.20.0 + '@rollup/rollup-darwin-arm64': 4.20.0 + '@rollup/rollup-darwin-x64': 4.20.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.20.0 + '@rollup/rollup-linux-arm-musleabihf': 4.20.0 + '@rollup/rollup-linux-arm64-gnu': 4.20.0 + '@rollup/rollup-linux-arm64-musl': 4.20.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.20.0 + '@rollup/rollup-linux-riscv64-gnu': 4.20.0 + '@rollup/rollup-linux-s390x-gnu': 4.20.0 + '@rollup/rollup-linux-x64-gnu': 4.20.0 + '@rollup/rollup-linux-x64-musl': 4.20.0 + '@rollup/rollup-win32-arm64-msvc': 4.20.0 + '@rollup/rollup-win32-ia32-msvc': 4.20.0 + '@rollup/rollup-win32-x64-msvc': 4.20.0 + fsevents: 2.3.3 + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + safe-buffer@5.2.1: {} + + safe-stable-stringify@2.4.3: {} + + secure-json-parse@2.7.0: {} + + semver@7.6.3: {} + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + siginfo@2.0.0: {} + + signal-exit@4.1.0: {} + + slash@3.0.0: {} + + sonic-boom@4.0.1: + dependencies: + atomic-sleep: 1.0.0 + + source-map-js@1.2.0: {} + + split2@4.2.0: {} + + sprintf-js@1.0.3: {} + + stackback@0.0.2: {} + + std-env@3.7.0: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + + string.prototype.repeat@0.2.0: {} + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.0.1 + + strip-final-newline@3.0.0: {} + + strip-json-comments@3.1.1: {} + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + synckit@0.9.1: + dependencies: + '@pkgr/core': 0.1.1 + tslib: 2.6.3 + + text-table@0.2.0: {} + + thread-stream@3.1.0: + dependencies: + real-require: 0.2.0 + + tinybench@2.9.0: {} + + tinypool@1.0.0: {} + + tinyrainbow@1.2.0: {} + + tinyspy@3.0.0: {} + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + tr46@0.0.3: {} + + tree-kill@1.2.2: {} + + ts-api-utils@1.3.0(typescript@5.5.3): + dependencies: + typescript: 5.5.3 + + ts-morph@23.0.0: + dependencies: + '@ts-morph/common': 0.24.0 + code-block-writer: 13.0.2 + + tslib@2.6.3: {} + + tsx@4.17.0: + dependencies: + esbuild: 0.23.0 + get-tsconfig: 4.7.6 + optionalDependencies: + fsevents: 2.3.3 + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + type-fest@0.20.2: {} + + typescript-eslint@7.18.0(eslint@8.57.0)(typescript@5.5.3): + dependencies: + '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0)(typescript@5.5.3) + '@typescript-eslint/parser': 7.18.0(eslint@8.57.0)(typescript@5.5.3) + '@typescript-eslint/utils': 7.18.0(eslint@8.57.0)(typescript@5.5.3) + eslint: 8.57.0 + optionalDependencies: + typescript: 5.5.3 + transitivePeerDependencies: + - supports-color + + typescript@5.5.3: {} + + undici-types@6.18.2: {} + + universalify@2.0.1: {} + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + vite-node@2.0.5(@types/node@22.3.0): + dependencies: + cac: 6.7.14 + debug: 4.3.6 + pathe: 1.1.2 + tinyrainbow: 1.2.0 + vite: 5.4.1(@types/node@22.3.0) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + + vite@5.4.1(@types/node@22.3.0): + dependencies: + esbuild: 0.21.5 + postcss: 8.4.41 + rollup: 4.20.0 + optionalDependencies: + '@types/node': 22.3.0 + fsevents: 2.3.3 + + vitest@2.0.5(@types/node@22.3.0): + dependencies: + '@ampproject/remapping': 2.3.0 + '@vitest/expect': 2.0.5 + '@vitest/pretty-format': 2.0.5 + '@vitest/runner': 2.0.5 + '@vitest/snapshot': 2.0.5 + '@vitest/spy': 2.0.5 + '@vitest/utils': 2.0.5 + chai: 5.1.1 + debug: 4.3.6 + execa: 8.0.1 + magic-string: 0.30.11 + pathe: 1.1.2 + std-env: 3.7.0 + tinybench: 2.9.0 + tinypool: 1.0.0 + tinyrainbow: 1.2.0 + vite: 5.4.1(@types/node@22.3.0) + vite-node: 2.0.5(@types/node@22.3.0) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/node': 22.3.0 + transitivePeerDependencies: + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + + webidl-conversions@3.0.1: {} + + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + why-is-node-running@2.3.0: + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + + word-wrap@1.2.5: {} + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + + wrappy@1.0.2: {} + + yocto-queue@0.1.0: {} diff --git a/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/src/azure/common/rules/ignore-inline-declarations-in-operation-group.ts b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/src/azure/common/rules/ignore-inline-declarations-in-operation-group.ts new file mode 100644 index 00000000000..af0e9bccad7 --- /dev/null +++ b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/src/azure/common/rules/ignore-inline-declarations-in-operation-group.ts @@ -0,0 +1,63 @@ +import { + CreateOperationRule, + InlineDeclarationNameSetMessage, + NodeContext, + ParseForESLintResult, + RuleMessageKind, +} from '../types'; +import { RuleListener, getParserServices } from '@typescript-eslint/utils/eslint-utils'; +import { + convertToMorphNode, + findAllRenameAbleDeclarationsInNode, + findDeclaration, + getGlobalScope, + isInterfaceDeclarationNode, + isParseServiceWithTypeInfo, +} from '../../../utils/ast-utils'; + +import { ParserServicesWithTypeInformation } from '@typescript-eslint/typescript-estree'; +import { RuleContext } from '@typescript-eslint/utils/ts-eslint'; +import { Scope } from '@typescript-eslint/scope-manager'; +import { createOperationRuleListener } from '../../utils/azure-rule-utils'; +import { getSettings } from '../../../utils/common-utils'; +import { ignoreInlineDeclarationsInOperationGroup } from '../../../common/models/rules/rule-ids'; + +function getInlineDeclarationNameSet(service: ParserServicesWithTypeInformation, scope: Scope) { + const inlineDeclarationMap = new Map(); + const routes = findDeclaration('Routes', scope, isInterfaceDeclarationNode); + const moNode = convertToMorphNode(routes, service); + const result = findAllRenameAbleDeclarationsInNode(moNode, scope, service); + result.interfaces.forEach((i) => inlineDeclarationMap.set(i.getName(), { node: i, used: false })); + result.typeAliases.forEach((t) => inlineDeclarationMap.set(t.getName(), { node: t, used: false })); + result.enums.forEach((e) => inlineDeclarationMap.set(e.getName(), { node: e, used: false })); + return inlineDeclarationMap; +} + +const rule: CreateOperationRule = (baselineParsedResult: ParseForESLintResult | undefined) => { + if (!baselineParsedResult) + throw new Error(`ParseForESLintResult is required in ${ignoreInlineDeclarationsInOperationGroup} rule`); + const baselineService = baselineParsedResult.services; + if (!isParseServiceWithTypeInfo(baselineService)) { + throw new Error(`Failed to get ParserServicesWithTypeInformation. It indicates the parser configuration is wrong.`); + } + const baselineGlobalScope = getGlobalScope(baselineParsedResult.scopeManager); + const baselineInlineDeclarationNameSet = getInlineDeclarationNameSet(baselineService, baselineGlobalScope); + + return createOperationRuleListener( + ignoreInlineDeclarationsInOperationGroup, + (context: RuleContext): RuleListener => { + const currentService = getParserServices(context); + const currentGlobalScope = getGlobalScope(context.sourceCode.scopeManager); + const currentInlineDeclarationMap = getInlineDeclarationNameSet(currentService, currentGlobalScope); + const message: InlineDeclarationNameSetMessage = { + id: ignoreInlineDeclarationsInOperationGroup, + baseline: baselineInlineDeclarationNameSet, + current: currentInlineDeclarationMap, + kind: RuleMessageKind.InlineDeclarationNameSetMessage, + }; + getSettings(context).reportInlineDeclarationNameSetMessage(message); + return {}; + } + ); +}; +export default rule; diff --git a/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/src/azure/common/types.ts b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/src/azure/common/types.ts new file mode 100644 index 00000000000..df767f424b4 --- /dev/null +++ b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/src/azure/common/types.ts @@ -0,0 +1,52 @@ +import { RuleListener, RuleModule } from '@typescript-eslint/utils/eslint-utils'; + +import { ParserServices } from '@typescript-eslint/parser'; +import type { ScopeManager } from '@typescript-eslint/scope-manager'; +import { TSESTree } from '@typescript-eslint/utils'; +import type { VisitorKeys } from '@typescript-eslint/visitor-keys'; +import { EnumDeclaration, InterfaceDeclaration, Node, TypeAliasDeclaration } from 'ts-morph'; + +export interface ParseForESLintResult { + ast: TSESTree.Program & { + range?: [number, number]; + tokens?: TSESTree.Token[]; + comments?: TSESTree.Comment[]; + }; + services: ParserServices; + visitorKeys: VisitorKeys; + scopeManager: ScopeManager; +} + +export interface CreateOperationRule { + (baselineParsedResult: ParseForESLintResult | undefined): RuleModule<'default', readonly unknown[], RuleListener>; +} + +export interface RuleMessage { + id: string; + kind: RuleMessageKind; +} + +export enum RuleMessageKind { + InlineDeclarationNameSetMessage = 'InlineDeclarationNameSetMessage', +} + +export interface InlineDeclarationNameSetMessage extends RuleMessage { + baseline: Map; + current: Map; + kind: RuleMessageKind.InlineDeclarationNameSetMessage; +} + +export interface LinterSettings { + reportInlineDeclarationNameSetMessage(message: InlineDeclarationNameSetMessage): void; +} + +export interface NodeContext { + node: InterfaceDeclaration | TypeAliasDeclaration | EnumDeclaration; + used: boolean; +} + +export interface RenameAbleDeclarations { + interfaces: InterfaceDeclaration[]; + typeAliases: TypeAliasDeclaration[]; + enums: EnumDeclaration[]; +} diff --git a/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/src/azure/detect-breaking-changes.ts b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/src/azure/detect-breaking-changes.ts new file mode 100644 index 00000000000..7ee330fc8e3 --- /dev/null +++ b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/src/azure/detect-breaking-changes.ts @@ -0,0 +1,195 @@ +import * as parser from '@typescript-eslint/parser'; +import * as ruleIds from '../common/models/rules/rule-ids'; + +import { + InlineDeclarationNameSetMessage, + LinterSettings, + ParseForESLintResult, + RuleMessage, +} from './common/types'; +import { Renderer, marked } from 'marked'; +import { basename, join, posix, relative } from 'node:path'; +import { devConsolelog, toPosixPath } from '../utils/common-utils'; +import { exists, outputFile, readFile, remove } from 'fs-extra'; + +import { TSESLint } from '@typescript-eslint/utils'; +import ignoreInlineDeclarationsInOperationGroup from './common/rules/ignore-inline-declarations-in-operation-group'; +import { glob } from 'glob'; +import { logger } from '../logging/logger'; + +const tsconfig = ` +{ + "compilerOptions": { + "jsx": "preserve", + "target": "es5", + "module": "commonjs", + "strict": true, + "esModuleInterop": true, + "lib": ["es2015", "es2017", "esnext"], + "experimentalDecorators": true, + "rootDir": "." + }, + "include": [ + "**/*.ts", + ], + "exclude": ["**/node_modules/**/*.*"] +} +`; + +interface SubProjectContext { + code: string; + relativeFilePath: string; +} +interface ProjectContext { + root: string; + baseline: SubProjectContext; + current: SubProjectContext; +} + +async function loadCodeFromApiView(path: string) { + const content = await readFile(path, { encoding: 'utf-8' }); + const markdown = content.toString(); + const codeBlocks: string[] = []; + const renderer = new Renderer(); + renderer.code = ({ text }) => { + codeBlocks.push(text); + return ''; + }; + marked(markdown, { renderer }); + if (codeBlocks.length !== 1) throw new Error(`Expected 1 code block, got ${codeBlocks.length} in "${path}".`); + + return codeBlocks[0]; +} + +async function prepareProject( + currentPackageFolder: string, + baselinePackageFolder: string, + tempFolder: string +): Promise { + const [currentCode, baselineCode] = await Promise.all([ + loadCodeFromApiView(currentPackageFolder), + loadCodeFromApiView(baselinePackageFolder), + ]); + + const relativeCurrentPath = join('current', 'review', 'index.ts'); + const relativeBaselinePath = join('baseline', 'review', 'index.ts'); + const currentPath = join(tempFolder, relativeCurrentPath); + const baselinePath = join(tempFolder, relativeBaselinePath); + const tsConfigPath = join(tempFolder, 'tsconfig.json'); + await Promise.all([ + outputFile(tsConfigPath, tsconfig, 'utf-8'), + outputFile(currentPath, currentCode, 'utf-8'), + outputFile(baselinePath, baselineCode, 'utf-8'), + ]); + return { + root: tempFolder, + baseline: { + code: baselineCode, + relativeFilePath: relativeBaselinePath, + }, + current: { + code: currentCode, + relativeFilePath: relativeCurrentPath, + }, + }; +} + +async function parseBaselinePackage(projectContext: ProjectContext): Promise { + const result = parser.parseForESLint(projectContext.baseline.code, { + comment: true, + tokens: true, + range: true, + loc: true, + project: './tsconfig.json', + tsconfigRootDir: projectContext.root, + filePath: projectContext.baseline.relativeFilePath, + }); + return result; +} + +async function detectBreakingChangesCore(projectContext: ProjectContext): Promise { + try { + const breakingChangeResults: RuleMessage[] = []; + const baselineParsed = await parseBaselinePackage(projectContext); + const linter = new TSESLint.Linter({ cwd: projectContext.root }); + // linter.defineRule(ruleIds.ignoreOperationGroupNameChanges, ignoreOperationGroupNameChangesRule(baselineParsed)); + linter.defineRule( + ruleIds.ignoreInlineDeclarationsInOperationGroup, + ignoreInlineDeclarationsInOperationGroup(baselineParsed) + ); + linter.defineParser('@typescript-eslint/parser', parser); + linter.verify( + projectContext.current.code, + { + rules: { + // [ruleIds.ignoreOperationGroupNameChanges]: [2], + [ruleIds.ignoreInlineDeclarationsInOperationGroup]: [2], + }, + parser: '@typescript-eslint/parser', + parserOptions: { + filePath: projectContext.current.relativeFilePath, + comment: true, + tokens: true, + range: true, + loc: true, + project: './tsconfig.json', + tsconfigRootDir: projectContext.root, + }, + settings: ({ + reportInlineDeclarationNameSetMessage: (message: InlineDeclarationNameSetMessage) => { + breakingChangeResults.push(message); + }, + }) as any, + }, + projectContext.current.relativeFilePath + ); + return breakingChangeResults; + } catch (err) { + logger.error(`Failed to detect breaking changes due to ${(err as Error).stack ?? err}`); + return undefined; + } +} + +export async function detectBreakingChangesBetweenPackages( + baselinePackageFolder: string | undefined, + currentPackageFolder: string | undefined, + tempFolder: string | undefined, + cleanUpAtTheEnd: boolean +): Promise> { + if (!baselinePackageFolder) throw new Error(`Failed to use undefined or null baseline package folder`); + + if (!currentPackageFolder) throw new Error(`Failed to use undefined or null current package folder`); + + if (!tempFolder) throw new Error(`Failed to use undefined or null temp folder`); + + try { + baselinePackageFolder = toPosixPath(baselinePackageFolder); + currentPackageFolder = toPosixPath(currentPackageFolder); + tempFolder = toPosixPath(tempFolder); + + const apiViewPathPattern = posix.join(baselinePackageFolder, 'review/*.api.md'); + const baselineApiViewPaths = await glob(apiViewPathPattern); + const messsagesPromises = baselineApiViewPaths.map(async (baselineApiViewPath) => { + const relativeApiViewPath = relative(baselinePackageFolder!, baselineApiViewPath); + const apiViewBasename = basename(relativeApiViewPath); + const currentApiViewPath = join(currentPackageFolder!, relativeApiViewPath); + if (!(await exists(currentApiViewPath))) throw new Error(`Failed to find API view: ${currentApiViewPath}`); + const projectContext = await prepareProject(currentApiViewPath, baselineApiViewPath, tempFolder!); + const messages = await detectBreakingChangesCore(projectContext); + return { name: apiViewBasename, messages }; + }); + const messagesMap = new Map(); + const promises = messsagesPromises.map(async (p) => { + const result = await p; + messagesMap.set(result.name, result.messages); + }); + await Promise.all(promises); + return messagesMap; + } finally { + if (cleanUpAtTheEnd) { + if (await exists(tempFolder)) { + await remove(tempFolder); + } + } + } +} diff --git a/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/src/azure/rule-sets/rest-level-client-rule-sets.ts b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/src/azure/rule-sets/rest-level-client-rule-sets.ts new file mode 100644 index 00000000000..70b786d12ed --- /dev/null +++ b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/src/azure/rule-sets/rest-level-client-rule-sets.ts @@ -0,0 +1 @@ +// TODO diff --git a/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/src/azure/utils/azure-rule-utils.ts b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/src/azure/utils/azure-rule-utils.ts new file mode 100644 index 00000000000..d7fd8af28f5 --- /dev/null +++ b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/src/azure/utils/azure-rule-utils.ts @@ -0,0 +1,33 @@ +import { ESLintUtils } from '@typescript-eslint/utils'; +import { RuleContext } from '@typescript-eslint/utils/ts-eslint'; +import { RuleListener } from '@typescript-eslint/utils/eslint-utils'; +import { ruleDescriptions } from '../../common/models/rules/rule-descriptions'; + +// TODO: provide correct endpint +const endpoint = 'https://a.b.c/rules'; +const createRule = ESLintUtils.RuleCreator((name) => `${endpoint}/${name}`); + +export function createOperationRuleListener( + id: string, + createListener: (context: RuleContext) => RuleListener +) { + const messages = { default: '' }; + const defaultOptions: ReadonlyArray = []; + const rule = createRule({ + name: id, + meta: { + docs: { + description: ruleDescriptions[id], + }, + messages, + schema: [], + type: 'problem', + }, + defaultOptions, + create(context) { + const listener = createListener(context); + return listener; + }, + }); + return rule; +} diff --git a/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/src/common/models/rules/rule-descriptions.ts b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/src/common/models/rules/rule-descriptions.ts new file mode 100644 index 00000000000..37efbaafa44 --- /dev/null +++ b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/src/common/models/rules/rule-descriptions.ts @@ -0,0 +1,7 @@ +import { + ignoreInlineDeclarationsInOperationGroup +} from './rule-ids'; + +export const ruleDescriptions: { [ruleId: string]: string } = { + [ignoreInlineDeclarationsInOperationGroup]: 'Ignore inline types in routes', +}; diff --git a/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/src/common/models/rules/rule-ids.ts b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/src/common/models/rules/rule-ids.ts new file mode 100644 index 00000000000..879e78f9386 --- /dev/null +++ b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/src/common/models/rules/rule-ids.ts @@ -0,0 +1 @@ +export const ignoreInlineDeclarationsInOperationGroup = 'ignore-inline-declarations-in-operation-group' \ No newline at end of file diff --git a/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/src/index.ts b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/src/index.ts new file mode 100644 index 00000000000..142f97ba5ed --- /dev/null +++ b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/src/index.ts @@ -0,0 +1,2 @@ +export * from './azure/detect-breaking-changes'; +export * from './azure/common/types'; diff --git a/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/src/logging/logger.ts b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/src/logging/logger.ts new file mode 100644 index 00000000000..ff2a9837697 --- /dev/null +++ b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/src/logging/logger.ts @@ -0,0 +1,23 @@ +import { pino } from 'pino'; +import pretty from 'pino-pretty'; + +const devStream = pretty({ + colorize: false, + levelFirst: true, + translateTime: 'yyyy-dd-mm, h:MM:ss TT', + // destination: 'logs/app.log', + append: false, +}); + +const stream = pretty({ + colorize: false, + levelFirst: true, + translateTime: 'yyyy-dd-mm, h:MM:ss TT', + // destination: 'logs/app.log', + append: true, +}); + +// TODO: make logger configurable +export const devFileLogger = pino({}, devStream); + +export const logger = pino({}, stream); diff --git a/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/src/tests/rest-level-client-rule.test.ts b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/src/tests/rest-level-client-rule.test.ts new file mode 100644 index 00000000000..4bc5e04326d --- /dev/null +++ b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/src/tests/rest-level-client-rule.test.ts @@ -0,0 +1,46 @@ +import { mkdirp, pathExists } from 'fs-extra'; +import { describe, expect, test } from 'vitest'; + +import { join } from 'node:path'; +import { detectBreakingChangesBetweenPackages } from '../azure/detect-breaking-changes'; + +function getFormattedDate(): string { + const today = new Date(); + + const year = today.getFullYear(); + const month = String(today.getMonth() + 1).padStart(2, '0'); + const day = String(today.getDate()).padStart(2, '0'); + + return `${year}-${month}-${day}`; +} + +async function createTempFolder(tempFolderPrefix: string): Promise { + const maxRetry = 1000; + let tempFolder = ''; + for (let i = 0; i < maxRetry; i++) { + tempFolder = `${tempFolderPrefix}-${Math.round(Math.random() * 1000)}`; + if (await pathExists(tempFolder)) continue; + + await mkdirp(tempFolder); + return tempFolder; + } + throw new Error(`Failed to create temp folder at "${tempFolder}" for ${maxRetry} times`); +} + +describe('detect rest level client breaking changes', async () => { + test('should ignore operation rename', async () => { + const testCaseDir = '../../misc/test-cases/rest-level-client-to-rest-level-client/'; + const currentPackageFolder = join(__dirname, testCaseDir, 'current-package'); + const baselinePackageFolder = join(__dirname, testCaseDir, 'baseline-package'); + const date = getFormattedDate(); + const tempFolder = await createTempFolder(`.tmp/temp-${date}`); + const messagesMap = await detectBreakingChangesBetweenPackages( + baselinePackageFolder, + currentPackageFolder, + tempFolder, + true + ); + expect(messagesMap.size).toBe(1); + // TODO: add more checks + }); +}); diff --git a/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/src/utils/ast-utils.ts b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/src/utils/ast-utils.ts new file mode 100644 index 00000000000..6e900fd0ce1 --- /dev/null +++ b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/src/utils/ast-utils.ts @@ -0,0 +1,159 @@ +import { + EnumDeclaration, + InterfaceDeclaration, + Node, + SyntaxKind, + TypeAliasDeclaration, + TypeReferenceNode, + createWrappedNode, +} from 'ts-morph'; +import { ParserServices, ParserServicesWithTypeInformation } from '@typescript-eslint/typescript-estree'; +import { Scope, ScopeManager } from '@typescript-eslint/scope-manager'; + +import { RenameAbleDeclarations } from '../azure/common/types'; +import { TSESTree } from '@typescript-eslint/types'; +import { findVariable } from '@typescript-eslint/utils/ast-utils'; +import { logger } from '../logging/logger'; + +function tryFindDeclaration( + name: string, + scope: Scope, + typeGuard: ((node: TSESTree.Node) => node is TNode) | undefined, + shouldLog: boolean = true +): TNode | undefined { + const variable = findVariable(scope as Scope, name); + const node = variable?.defs?.[0]?.node; + if (!node) { + if (shouldLog) logger.warn(`Failed to find ${name}'s declaration`); + return undefined; + } + if (typeGuard && !typeGuard(node)) { + if (shouldLog) logger.warn(`Found ${name}'s declaration but with another node type "${node.type}"`); + return undefined; + } + return node as TNode; +} + +function getAllTypeReferencesInNode(node: Node, found: Set) { + const types: TypeReferenceNode[] = []; + if (!node) return types; + node.forEachChild((child) => { + if (Node.isTypeReference(child) && !found.has(child.getText())) { + types.push(child); + } + + const childTypes = getAllTypeReferencesInNode(child, found); + childTypes.forEach((c) => { + types.push(c); + }); + }); + return types; +} + +function updateRenameAbleDeclarations( + declaration: TypeAliasDeclaration | InterfaceDeclaration | EnumDeclaration, + renameAbleDeclarations: RenameAbleDeclarations, + found: Set +) { + const foundDeclarations = new Set( + [...renameAbleDeclarations.interfaces, ...renameAbleDeclarations.typeAliases, ...renameAbleDeclarations.enums].map( + (i) => i.getName() + ) + ); + if (foundDeclarations.has(declaration.getName())) return; + switch (declaration.getKind()) { + case SyntaxKind.InterfaceDeclaration: + renameAbleDeclarations.interfaces.push(declaration as InterfaceDeclaration); + break; + case SyntaxKind.TypeAliasDeclaration: + renameAbleDeclarations.typeAliases.push(declaration as TypeAliasDeclaration); + break; + case SyntaxKind.EnumDeclaration: + renameAbleDeclarations.enums.push(declaration as EnumDeclaration); + break; + } + found.add(declaration.getName()); +} + +function findDeclarationOfTypeReference( + reference: TypeReferenceNode, + scope: Scope, + service: ParserServicesWithTypeInformation +): (TypeAliasDeclaration | InterfaceDeclaration | EnumDeclaration) | undefined { + const esDeclaration = tryFindDeclaration(reference.getText(), scope, undefined, false); + if (!esDeclaration) return; + const msDeclaration = convertToMorphNode(esDeclaration, service); + const msDeclarationKind = msDeclaration.getKind(); + if ( + msDeclarationKind !== SyntaxKind.InterfaceDeclaration && + msDeclarationKind !== SyntaxKind.TypeAliasDeclaration && + msDeclarationKind !== SyntaxKind.EnumDeclaration + ) + return; + const declaration = msDeclaration as TypeAliasDeclaration | InterfaceDeclaration | EnumDeclaration; + return declaration; +} + +function findAllRenameAbleDeclarationsInNodeCore( + node: Node, + scope: Scope, + service: ParserServicesWithTypeInformation, + renameAbleDeclarations: RenameAbleDeclarations, + found: Set +): void { + if (!node) return; + + const references = getAllTypeReferencesInNode(node, found); + references.forEach((reference) => { + const declaration = findDeclarationOfTypeReference(reference, scope, service); + if (!declaration) return; + updateRenameAbleDeclarations(declaration, renameAbleDeclarations, found); + findAllRenameAbleDeclarationsInNodeCore(declaration, scope, service, renameAbleDeclarations, found); + }); +} + +export function getGlobalScope(scopeManager: ScopeManager | null): Scope { + const globalScope = scopeManager?.globalScope; + if (!globalScope) throw new Error(`Failed to find global scope`); + return globalScope; +} + +export function findDeclaration( + name: string, + scope: Scope, + typeGuard: (node: TSESTree.Node) => node is TNode +): TNode { + const node = tryFindDeclaration(name, scope, typeGuard); + if (!node) throw new Error(`Failed to find "${name}"`); + return node; +} + +export function isParseServiceWithTypeInfo(service: ParserServices): service is ParserServicesWithTypeInformation { + return service.program !== null; +} + +export function isInterfaceDeclarationNode(node: TSESTree.Node): node is TSESTree.TSInterfaceDeclaration { + return node.type === TSESTree.AST_NODE_TYPES.TSInterfaceDeclaration; +} + +export function convertToMorphNode(node: TSESTree.Node, service: ParserServicesWithTypeInformation) { + const tsNode = service.esTreeNodeToTSNodeMap.get(node); + const typeChecker = service.program.getTypeChecker(); + const moNode = createWrappedNode(tsNode, { typeChecker }); + return moNode; +} + +export function findAllRenameAbleDeclarationsInNode( + node: Node, + scope: Scope, + service: ParserServicesWithTypeInformation +): { interfaces: InterfaceDeclaration[]; typeAliases: TypeAliasDeclaration[]; enums: EnumDeclaration[] } { + const renameAbleDeclarations: RenameAbleDeclarations = { + interfaces: [], + typeAliases: [], + enums: [], + }; + const found = new Set(); + findAllRenameAbleDeclarationsInNodeCore(node, scope, service, renameAbleDeclarations, found); + return renameAbleDeclarations; +} diff --git a/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/src/utils/common-utils.ts b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/src/utils/common-utils.ts new file mode 100644 index 00000000000..a45fafebabf --- /dev/null +++ b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/src/utils/common-utils.ts @@ -0,0 +1,24 @@ +import { LinterSettings } from '../azure/common/types'; +import { RuleContext } from '@typescript-eslint/utils/ts-eslint'; +import path from 'path'; +import util from 'util'; + +// IMPORTANT: dev with chakrounanas.turbo-console-log vscode extension +export function devConsolelog(title?: any, ...optionalParams: any[]): void { + const start = '💎💎💎💎'; + const end = '📍📍📍📍'; + const body = util.inspect(optionalParams, { depth: null, colors: true }); + console.log(start, 'START:', title, start); + console.log(body); + console.log(end, 'END :', title, end); + console.log(); +} + +export function getSettings(context: RuleContext) { + return (context.settings as any as LinterSettings)!; +} + +export function toPosixPath(winPath: string) { + const posixPath = winPath.split(path.sep).join(path.posix.sep); + return posixPath; +} diff --git a/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/tsconfig.json b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/tsconfig.json new file mode 100644 index 00000000000..a1f30e01548 --- /dev/null +++ b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/tsconfig.json @@ -0,0 +1,105 @@ +{ + "compilerOptions": { + /* Visit https://aka.ms/tsconfig to read more about this file */ + /* Projects */ + // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ + // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ + // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ + // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ + // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ + // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ + /* Language and Environment */ + "target": "ES2022", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ + // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ + // "jsx": "preserve", /* Specify what JSX code is generated. */ + // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */ + // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ + // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ + // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ + // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ + // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ + // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ + // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ + // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ + /* Modules */ + "module": "NodeNext", /* Specify what module code is generated. */ + "rootDir": ".", /* Specify the root folder within your source files. */ + "moduleResolution": "NodeNext", /* Specify how TypeScript looks up a file from a given module specifier. */ + // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ + // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ + // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ + // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ + // "types": [], /* Specify type package names to be included without being referenced in a source file. */ + // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ + // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ + // "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */ + // "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */ + // "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */ + // "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */ + "resolveJsonModule": true, /* Enable importing .json files. */ + // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ + // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ + /* JavaScript Support */ + // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ + // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ + // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ + /* Emit */ + "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ + "declarationMap": true, /* Create sourcemaps for d.ts files. */ + // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ + // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ + // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ + // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ + "outDir": "dist", /* Specify an output folder for all emitted files. */ + // "removeComments": true, /* Disable emitting comments. */ + // "noEmit": true, /* Disable emitting files from a compilation. */ + // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ + // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ + // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ + // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ + // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ + // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ + // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ + // "newLine": "crlf", /* Set the newline character for emitting files. */ + // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ + // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ + // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ + // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ + // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ + // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ + /* Interop Constraints */ + // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ + // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */ + // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ + "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ + // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ + "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ + /* Type Checking */ + "strict": true, /* Enable all strict type-checking options. */ + // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ + // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ + // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ + // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ + // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ + // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ + // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ + // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ + // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ + // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ + // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ + // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ + // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ + // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ + // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ + // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ + // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ + // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ + /* Completeness */ + // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ + "skipLibCheck": true, /* Skip type checking all .d.ts files. */ + "typeRoots": ["./node_modules/@types", "./dist/src"], + + }, + "exclude": ["**/tests/**/cases/**", "dist/**", "packages/**"], + "include": ["src/**/*.ts"] +} \ No newline at end of file diff --git a/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/vitest.config.ts b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/vitest.config.ts new file mode 100644 index 00000000000..8eccd5a5784 --- /dev/null +++ b/tools/js-sdk-release-tools/packages/typescript-codegen-breaking-change-detector/vitest.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + exclude: ['misc/**', 'dist/**', 'node_modules/**'], + }, +}); diff --git a/tools/js-sdk-release-tools/pnpm-lock.yaml b/tools/js-sdk-release-tools/pnpm-lock.yaml deleted file mode 100644 index dfb1a94c9ac..00000000000 --- a/tools/js-sdk-release-tools/pnpm-lock.yaml +++ /dev/null @@ -1,3386 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -importers: - - .: - dependencies: - '@azure-tools/openapi-tools-common': - specifier: ^1.2.2 - version: 1.2.2 - '@ts-common/azure-js-dev-tools': - specifier: ^21.1.0 - version: 21.4.0(@octokit/core@6.1.2) - colors: - specifier: 1.4.0 - version: 1.4.0 - command-line-args: - specifier: ^5.1.1 - version: 5.2.1 - comment-json: - specifier: ^4.1.0 - version: 4.2.4 - js-yaml: - specifier: ^4.1.0 - version: 4.1.0 - parse-ts-to-ast: - specifier: ^0.1.1 - version: 0.1.4 - semver: - specifier: ^7.3.5 - version: 7.6.3 - shelljs: - specifier: ^0.8.4 - version: 0.8.5 - simple-git: - specifier: ^3.5.0 - version: 3.25.0 - ts-morph: - specifier: ^12.0.0 - version: 12.2.0 - tslib: - specifier: ^1.9.3 - version: 1.14.1 - winston: - specifier: ^3.13.1 - version: 3.13.1 - yaml: - specifier: ^1.10.2 - version: 1.10.2 - devDependencies: - '@types/node': - specifier: ^20.12.12 - version: 20.14.14 - '@types/shelljs': - specifier: ^0.8.15 - version: 0.8.15 - nodemon: - specifier: ^3.1.0 - version: 3.1.4 - rimraf: - specifier: ^3.0.2 - version: 3.0.2 - ts-node: - specifier: ^10.9.2 - version: 10.9.2(@types/node@20.14.14)(typescript@5.5.4) - typescript: - specifier: ^5.4.5 - version: 5.5.4 - vitest: - specifier: ^1.6.0 - version: 1.6.0(@types/node@20.14.14) - -packages: - - '@azure-tools/openapi-tools-common@1.2.2': - resolution: {integrity: sha512-r6oBkNsND1sA+ZjHlE1vTf2hUj4RUnbD9KG9uksEKnLVC6oOD5WuJYCO5y4xDzWWuR0x+9gImovQqXAE7ZXYfg==} - - '@azure/abort-controller@2.1.2': - resolution: {integrity: sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==} - engines: {node: '>=18.0.0'} - - '@azure/core-auth@1.7.2': - resolution: {integrity: sha512-Igm/S3fDYmnMq1uKS38Ae1/m37B3zigdlZw+kocwEhh5GjyKjPrXKO2J6rzpC1wAxrNil/jX9BJRqBshyjnF3g==} - engines: {node: '>=18.0.0'} - - '@azure/core-util@1.9.2': - resolution: {integrity: sha512-l1Qrqhi4x1aekkV+OlcqsJa4AnAkj5p0JV8omgwjaV9OAbP41lvrMvs+CptfetKkeEaGRGSzby7sjPZEX7+kkQ==} - engines: {node: '>=18.0.0'} - - '@azure/logger-js@1.3.2': - resolution: {integrity: sha512-h58oEROO2tniBTSmFmuHBGvuiFuYsHQBWTVdpT2AiOED4F2Kgf7rs0MPYPXiBcDvihC70M7QPRhIQ3JK1H/ygw==} - - '@azure/ms-rest-js@2.7.0': - resolution: {integrity: sha512-ngbzWbqF+NmztDOpLBVDxYM+XLcUj7nKhxGbSU9WtIsXfRB//cf2ZbAG5HkOrhU9/wd/ORRB6lM/d69RKVjiyA==} - - '@azure/storage-blob@10.5.0': - resolution: {integrity: sha512-67+0EP7STy9BQgzvN1RgmSvXhxRd044eDgepX7zBp7XslBxz8YGo2cSLm9w5o5Qf1FLCRlwuziRMikaPCLMpVw==} - deprecated: This version has been deprecated, please upgrade to the version tagged as latest - - '@colors/colors@1.6.0': - resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} - engines: {node: '>=0.1.90'} - - '@cspotcode/source-map-support@0.8.1': - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} - engines: {node: '>=12'} - - '@dabh/diagnostics@2.0.3': - resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==} - - '@esbuild/aix-ppc64@0.21.5': - resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - - '@esbuild/android-arm64@0.21.5': - resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm@0.21.5': - resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - - '@esbuild/android-x64@0.21.5': - resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - - '@esbuild/darwin-arm64@0.21.5': - resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-x64@0.21.5': - resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - - '@esbuild/freebsd-arm64@0.21.5': - resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.21.5': - resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - - '@esbuild/linux-arm64@0.21.5': - resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm@0.21.5': - resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.21.5': - resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-loong64@0.21.5': - resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-mips64el@0.21.5': - resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-ppc64@0.21.5': - resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-riscv64@0.21.5': - resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-s390x@0.21.5': - resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-x64@0.21.5': - resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - - '@esbuild/netbsd-x64@0.21.5': - resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-x64@0.21.5': - resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - - '@esbuild/sunos-x64@0.21.5': - resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - - '@esbuild/win32-arm64@0.21.5': - resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-ia32@0.21.5': - resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-x64@0.21.5': - resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - - '@jest/schemas@29.6.3': - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/sourcemap-codec@1.5.0': - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - - '@jridgewell/trace-mapping@0.3.9': - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - - '@kwsites/file-exists@1.1.1': - resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==} - - '@kwsites/promise-deferred@1.1.1': - resolution: {integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==} - - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - - '@octokit/auth-token@2.5.0': - resolution: {integrity: sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==} - - '@octokit/auth-token@5.1.1': - resolution: {integrity: sha512-rh3G3wDO8J9wSjfI436JUKzHIxq8NaiL0tVeB2aXmG6p/9859aUOAjA9pmSPNGGZxfwmaJ9ozOJImuNVJdpvbA==} - engines: {node: '>= 18'} - - '@octokit/core@6.1.2': - resolution: {integrity: sha512-hEb7Ma4cGJGEUNOAVmyfdB/3WirWMg5hDuNFVejGEDFqupeOysLc2sG6HJxY2etBp5YQu5Wtxwi020jS9xlUwg==} - engines: {node: '>= 18'} - - '@octokit/endpoint@10.1.1': - resolution: {integrity: sha512-JYjh5rMOwXMJyUpj028cu0Gbp7qe/ihxfJMLc8VZBMMqSwLgOxDI1911gV4Enl1QSavAQNJcwmwBF9M0VvLh6Q==} - engines: {node: '>= 18'} - - '@octokit/endpoint@6.0.12': - resolution: {integrity: sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==} - - '@octokit/graphql@8.1.1': - resolution: {integrity: sha512-ukiRmuHTi6ebQx/HFRCXKbDlOh/7xEV6QUXaE7MJEKGNAncGI/STSbOkl12qVXZrfZdpXctx5O9X1AIaebiDBg==} - engines: {node: '>= 18'} - - '@octokit/openapi-types@12.11.0': - resolution: {integrity: sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==} - - '@octokit/openapi-types@22.2.0': - resolution: {integrity: sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==} - - '@octokit/plugin-paginate-rest@1.1.2': - resolution: {integrity: sha512-jbsSoi5Q1pj63sC16XIUboklNw+8tL9VOnJsWycWYR78TKss5PVpIPb1TUUcMQ+bBh7cY579cVAWmf5qG+dw+Q==} - - '@octokit/plugin-request-log@1.0.4': - resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==} - peerDependencies: - '@octokit/core': '>=3' - - '@octokit/plugin-rest-endpoint-methods@2.4.0': - resolution: {integrity: sha512-EZi/AWhtkdfAYi01obpX0DF7U6b1VRr30QNQ5xSFPITMdLSfhcBqjamE3F+sKcxPbD7eZuMHu3Qkk2V+JGxBDQ==} - - '@octokit/request-error@1.2.1': - resolution: {integrity: sha512-+6yDyk1EES6WK+l3viRDElw96MvwfJxCt45GvmjDUKWjYIb3PJZQkq3i46TwGwoPD4h8NmTrENmtyA1FwbmhRA==} - - '@octokit/request-error@2.1.0': - resolution: {integrity: sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==} - - '@octokit/request-error@6.1.4': - resolution: {integrity: sha512-VpAhIUxwhWZQImo/dWAN/NpPqqojR6PSLgLYAituLM6U+ddx9hCioFGwBr5Mi+oi5CLeJkcAs3gJ0PYYzU6wUg==} - engines: {node: '>= 18'} - - '@octokit/request@5.6.3': - resolution: {integrity: sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==} - - '@octokit/request@9.1.3': - resolution: {integrity: sha512-V+TFhu5fdF3K58rs1pGUJIDH5RZLbZm5BI+MNF+6o/ssFNT4vWlCh/tVpF3NxGtP15HUxTTMUbsG5llAuU2CZA==} - engines: {node: '>= 18'} - - '@octokit/rest@16.43.2': - resolution: {integrity: sha512-ngDBevLbBTFfrHZeiS7SAMAZ6ssuVmXuya+F/7RaVvlysgGa1JKJkKWY+jV6TCJYcW0OALfJ7nTIGXcBXzycfQ==} - - '@octokit/types@13.5.0': - resolution: {integrity: sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==} - - '@octokit/types@2.16.2': - resolution: {integrity: sha512-O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q==} - - '@octokit/types@6.41.0': - resolution: {integrity: sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==} - - '@rollup/rollup-android-arm-eabi@4.20.0': - resolution: {integrity: sha512-TSpWzflCc4VGAUJZlPpgAJE1+V60MePDQnBd7PPkpuEmOy8i87aL6tinFGKBFKuEDikYpig72QzdT3QPYIi+oA==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm64@4.20.0': - resolution: {integrity: sha512-u00Ro/nok7oGzVuh/FMYfNoGqxU5CPWz1mxV85S2w9LxHR8OoMQBuSk+3BKVIDYgkpeOET5yXkx90OYFc+ytpQ==} - cpu: [arm64] - os: [android] - - '@rollup/rollup-darwin-arm64@4.20.0': - resolution: {integrity: sha512-uFVfvzvsdGtlSLuL0ZlvPJvl6ZmrH4CBwLGEFPe7hUmf7htGAN+aXo43R/V6LATyxlKVC/m6UsLb7jbG+LG39Q==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-x64@4.20.0': - resolution: {integrity: sha512-xbrMDdlev53vNXexEa6l0LffojxhqDTBeL+VUxuuIXys4x6xyvbKq5XqTXBCEUA8ty8iEJblHvFaWRJTk/icAQ==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-linux-arm-gnueabihf@4.20.0': - resolution: {integrity: sha512-jMYvxZwGmoHFBTbr12Xc6wOdc2xA5tF5F2q6t7Rcfab68TT0n+r7dgawD4qhPEvasDsVpQi+MgDzj2faOLsZjA==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm-musleabihf@4.20.0': - resolution: {integrity: sha512-1asSTl4HKuIHIB1GcdFHNNZhxAYEdqML/MW4QmPS4G0ivbEcBr1JKlFLKsIRqjSwOBkdItn3/ZDlyvZ/N6KPlw==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm64-gnu@4.20.0': - resolution: {integrity: sha512-COBb8Bkx56KldOYJfMf6wKeYJrtJ9vEgBRAOkfw6Ens0tnmzPqvlpjZiLgkhg6cA3DGzCmLmmd319pmHvKWWlQ==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-musl@4.20.0': - resolution: {integrity: sha512-+it+mBSyMslVQa8wSPvBx53fYuZK/oLTu5RJoXogjk6x7Q7sz1GNRsXWjn6SwyJm8E/oMjNVwPhmNdIjwP135Q==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-powerpc64le-gnu@4.20.0': - resolution: {integrity: sha512-yAMvqhPfGKsAxHN8I4+jE0CpLWD8cv4z7CK7BMmhjDuz606Q2tFKkWRY8bHR9JQXYcoLfopo5TTqzxgPUjUMfw==} - cpu: [ppc64] - os: [linux] - - '@rollup/rollup-linux-riscv64-gnu@4.20.0': - resolution: {integrity: sha512-qmuxFpfmi/2SUkAw95TtNq/w/I7Gpjurx609OOOV7U4vhvUhBcftcmXwl3rqAek+ADBwSjIC4IVNLiszoj3dPA==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-s390x-gnu@4.20.0': - resolution: {integrity: sha512-I0BtGXddHSHjV1mqTNkgUZLnS3WtsqebAXv11D5BZE/gfw5KoyXSAXVqyJximQXNvNzUo4GKlCK/dIwXlz+jlg==} - cpu: [s390x] - os: [linux] - - '@rollup/rollup-linux-x64-gnu@4.20.0': - resolution: {integrity: sha512-y+eoL2I3iphUg9tN9GB6ku1FA8kOfmF4oUEWhztDJ4KXJy1agk/9+pejOuZkNFhRwHAOxMsBPLbXPd6mJiCwew==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-musl@4.20.0': - resolution: {integrity: sha512-hM3nhW40kBNYUkZb/r9k2FKK+/MnKglX7UYd4ZUy5DJs8/sMsIbqWK2piZtVGE3kcXVNj3B2IrUYROJMMCikNg==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-win32-arm64-msvc@4.20.0': - resolution: {integrity: sha512-psegMvP+Ik/Bg7QRJbv8w8PAytPA7Uo8fpFjXyCRHWm6Nt42L+JtoqH8eDQ5hRP7/XW2UiIriy1Z46jf0Oa1kA==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.20.0': - resolution: {integrity: sha512-GabekH3w4lgAJpVxkk7hUzUf2hICSQO0a/BLFA11/RMxQT92MabKAqyubzDZmMOC/hcJNlc+rrypzNzYl4Dx7A==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.20.0': - resolution: {integrity: sha512-aJ1EJSuTdGnM6qbVC4B5DSmozPTqIag9fSzXRNNo+humQLG89XpPgdt16Ia56ORD7s+H8Pmyx44uczDQ0yDzpg==} - cpu: [x64] - os: [win32] - - '@sinclair/typebox@0.27.8': - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - - '@ts-common/azure-js-dev-tools@21.4.0': - resolution: {integrity: sha512-0N0NO9CG+e6mVsUaNETa4sWzqEYG67pLnU/XhbIL4wMIEFsMGCvVrYE+Iu3+OOhh8RSOsWmHFq0CAJsMtdWygw==} - - '@ts-morph/common@0.11.1': - resolution: {integrity: sha512-7hWZS0NRpEsNV8vWJzg7FEz6V8MaLNeJOmwmghqUXTpzk16V1LLZhdo+4QvE/+zv4cVci0OviuJFnqhEfoV3+g==} - - '@tsconfig/node10@1.0.11': - resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} - - '@tsconfig/node12@1.0.11': - resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} - - '@tsconfig/node14@1.0.3': - resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} - - '@tsconfig/node16@1.0.4': - resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - - '@types/archiver@2.1.3': - resolution: {integrity: sha512-x37dj6VvV8jArjvqvZP+qz5+24qOwgFesLMvn98uNz8qebjCg+uteqquRf9mqaxxhcM7S1vPl4YFhBs2/abcFQ==} - - '@types/async-retry@1.4.8': - resolution: {integrity: sha512-Qup/B5PWLe86yI5I3av6ePGaeQrIHNKCwbsQotD6aHQ6YkHsMUxVZkZsmx/Ry3VZQ6uysHwTjQ7666+k6UjVJA==} - - '@types/commonmark@0.27.9': - resolution: {integrity: sha512-d3+57WgyPCcIc6oshmcPkmP4+JqRRot9eeZLsBsutWtIxwWivpoyc2wEcolOp8MyO3ZWN846mMdoR02kdHSMCw==} - - '@types/estree@1.0.5': - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - - '@types/glob@7.2.0': - resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} - - '@types/glob@8.1.0': - resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} - - '@types/js-yaml@3.12.10': - resolution: {integrity: sha512-/Mtaq/wf+HxXpvhzFYzrzCqNRcA958sW++7JOFC8nPrZcvfi/TrzOaaGbvt27ltJB2NQbHVAg5a1wUCsyMH7NA==} - - '@types/minimatch@5.1.2': - resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} - - '@types/node-fetch@2.6.11': - resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} - - '@types/node@20.14.14': - resolution: {integrity: sha512-d64f00982fS9YoOgJkAMolK7MN8Iq3TDdVjchbYHdEmjth/DHowx82GnoA+tVUAN+7vxfYUgAzi+JXbKNd2SDQ==} - - '@types/retry@0.12.5': - resolution: {integrity: sha512-3xSjTp3v03X/lSQLkczaN9UIEwJMoMCA1+Nb5HfbJEQWogdeQIyVtTvxPXDQjZ5zws8rFQfVfRdz03ARihPJgw==} - - '@types/shelljs@0.8.15': - resolution: {integrity: sha512-vzmnCHl6hViPu9GNLQJ+DZFd6BQI2DBTUeOvYHqkWQLMfKAAQYMb/xAmZkTogZI/vqXHCWkqDRymDI5p0QTi5Q==} - - '@types/triple-beam@1.3.5': - resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==} - - '@vitest/expect@1.6.0': - resolution: {integrity: sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==} - - '@vitest/runner@1.6.0': - resolution: {integrity: sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==} - - '@vitest/snapshot@1.6.0': - resolution: {integrity: sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==} - - '@vitest/spy@1.6.0': - resolution: {integrity: sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==} - - '@vitest/utils@1.6.0': - resolution: {integrity: sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==} - - abort-controller@3.0.0: - resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} - engines: {node: '>=6.5'} - - acorn-walk@8.3.3: - resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} - engines: {node: '>=0.4.0'} - - acorn@8.12.1: - resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} - engines: {node: '>=0.4.0'} - hasBin: true - - ansi-regex@2.1.1: - resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} - engines: {node: '>=0.10.0'} - - ansi-regex@3.0.1: - resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==} - engines: {node: '>=4'} - - ansi-styles@5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} - - anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - - archiver-utils@2.1.0: - resolution: {integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==} - engines: {node: '>= 6'} - - archiver@3.1.1: - resolution: {integrity: sha512-5Hxxcig7gw5Jod/8Gq0OneVgLYET+oNHcxgWItq4TbhOzRLKNAFUb9edAftiMKXvXfCB0vbGrJdZDNq0dWMsxg==} - engines: {node: '>= 6'} - - arg@4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} - - argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - - argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - - array-back@3.1.0: - resolution: {integrity: sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==} - engines: {node: '>=6'} - - array-timsort@1.0.3: - resolution: {integrity: sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==} - - assertion-error@1.1.0: - resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} - - async-lock@1.4.1: - resolution: {integrity: sha512-Az2ZTpuytrtqENulXwO3GGv1Bztugx6TT37NIo7imr/Qo0gsYiGtSdBa2B6fsXhTpVZDNfu1Qn3pk531e3q+nQ==} - - async-retry@1.3.3: - resolution: {integrity: sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==} - - async@2.6.4: - resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} - - async@3.2.5: - resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} - - asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - - atob-lite@2.0.0: - resolution: {integrity: sha512-LEeSAWeh2Gfa2FtlQE1shxQ8zi5F9GHarrGKz08TMdODD5T4eH6BMsvtnhbWZ+XQn+Gb6om/917ucvRu7l7ukw==} - - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - base64-js@0.0.2: - resolution: {integrity: sha512-Pj9L87dCdGcKlSqPVUjD+q96pbIx1zQQLb2CUiWURfjiBELv84YX+0nGnKmyT/9KkC7PQk7UN1w+Al8bBozaxQ==} - engines: {node: '>= 0.4'} - - base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - - before-after-hook@2.2.3: - resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} - - before-after-hook@3.0.2: - resolution: {integrity: sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==} - - binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} - engines: {node: '>=8'} - - bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - - bops@0.0.7: - resolution: {integrity: sha512-oF8JFj2vZoTTzbS4haaB/37vqoJbZXxPBWmNdFONu3dUBW+zp7JcoIIYYd1r+4/YwFM8QUSR1u4rrPbtcdHsRg==} - - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - - braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} - - btoa-lite@1.0.0: - resolution: {integrity: sha512-gvW7InbIyF8AicrqWoptdW08pUxuhq8BEgowNajy9RhiE86fmGAGl+bLKo6oB8QP0CkqHLowfN0oJdKC/J6LbA==} - - buffer-crc32@0.2.13: - resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} - - buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - - cac@6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} - engines: {node: '>=8'} - - camelcase@5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} - - chai@4.5.0: - resolution: {integrity: sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==} - engines: {node: '>=4'} - - check-error@1.0.3: - resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} - - chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} - - clean-git-ref@1.0.3: - resolution: {integrity: sha512-Bw1gv1mXHgdB/6ssP++8NtUHm+vbg60Lb+yAX5copA8wjNOgiyFCA+PzrO3a4O+7AkrDql2q1DO8Hx5G+gtPiA==} - - cliui@4.1.0: - resolution: {integrity: sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==} - - code-block-writer@10.1.1: - resolution: {integrity: sha512-67ueh2IRGst/51p0n6FvPrnRjAGHY5F8xdjkgrYE7DDzpJe6qA07RYQ9VcoUeo5ATOjSOiWpSL3SWBRRbempMw==} - - code-point-at@1.1.0: - resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==} - engines: {node: '>=0.10.0'} - - color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - - color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - color-string@1.9.1: - resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} - - color@3.2.1: - resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} - - colors@1.4.0: - resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==} - engines: {node: '>=0.1.90'} - - colorspace@1.1.4: - resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==} - - combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} - - command-line-args@5.2.1: - resolution: {integrity: sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==} - engines: {node: '>=4.0.0'} - - comment-json@4.2.4: - resolution: {integrity: sha512-E5AjpSW+O+N5T2GsOQMHLLsJvrYw6G/AFt9GvU6NguEAfzKShh7hRiLtVo6S9KbRpFMGqE5ojo0/hE+sdteWvQ==} - engines: {node: '>= 6'} - - commonmark@0.28.1: - resolution: {integrity: sha512-PklsZ9pgrfFQ5hQH9BRzoWnqI9db2LeR9MhvkNk8iz97kfaTNmhTU+IE8jKDHTEfivZZXoFqzGqzddXdk14EJw==} - hasBin: true - - compress-commons@2.1.1: - resolution: {integrity: sha512-eVw6n7CnEMFzc3duyFVrQEuY1BlHR3rYsSztyG32ibGMW722i3C6IizEGMFmfMU+A+fALvBIwxN3czffTcdA+Q==} - engines: {node: '>= 6'} - - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - - confbox@0.1.7: - resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} - - core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - - crc-32@1.2.2: - resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} - engines: {node: '>=0.8'} - hasBin: true - - crc32-stream@3.0.1: - resolution: {integrity: sha512-mctvpXlbzsvK+6z8kJwSJ5crm7yBwrQMTybJzMw1O4lLGJqjlDCXY2Zw7KheiA6XBEcBmfLx1D88mjRGVJtY9w==} - engines: {node: '>= 6.9.0'} - - crc@3.8.0: - resolution: {integrity: sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==} - - create-require@1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - - cross-spawn@6.0.5: - resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} - engines: {node: '>=4.8'} - - cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - - debug@4.3.6: - resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - decamelize@1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} - engines: {node: '>=0.10.0'} - - decompress-response@4.2.1: - resolution: {integrity: sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==} - engines: {node: '>=8'} - - deep-eql@4.1.4: - resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} - engines: {node: '>=6'} - - delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} - - deprecation@2.3.1: - resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} - - diff-lines@1.1.1: - resolution: {integrity: sha512-Oo5JzEEriF/+T0usOeRP5yOzr6SWvni2rrxvIgijMZSxPcEvf8JOvCO5GpnWwkte7fcOgnue/f5ECg1H9lMPCw==} - - diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - diff@3.5.0: - resolution: {integrity: sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==} - engines: {node: '>=0.3.1'} - - diff@4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} - engines: {node: '>=0.3.1'} - - enabled@2.0.0: - resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==} - - end-of-stream@1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} - - entities@1.1.2: - resolution: {integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==} - - esbuild@0.21.5: - resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} - engines: {node: '>=12'} - hasBin: true - - esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - - estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - - event-target-shim@5.0.1: - resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} - engines: {node: '>=6'} - - events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} - - execa@1.0.0: - resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} - engines: {node: '>=6'} - - execa@8.0.1: - resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} - engines: {node: '>=16.17'} - - fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} - - fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} - - fecha@4.2.3: - resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} - - fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} - - find-replace@3.0.0: - resolution: {integrity: sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==} - engines: {node: '>=4.0.0'} - - find-up@3.0.0: - resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} - engines: {node: '>=6'} - - fn.name@1.1.0: - resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} - - form-data@2.5.1: - resolution: {integrity: sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==} - engines: {node: '>= 0.12'} - - form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} - engines: {node: '>= 6'} - - front-matter@4.0.2: - resolution: {integrity: sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==} - - fs-constants@1.0.0: - resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} - - fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - - get-caller-file@1.0.3: - resolution: {integrity: sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==} - - get-func-name@2.0.2: - resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} - - get-stream@4.1.0: - resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} - engines: {node: '>=6'} - - get-stream@8.0.1: - resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} - engines: {node: '>=16'} - - git-apply-delta@0.0.7: - resolution: {integrity: sha512-P99rChCrhraaY7D6E4NUotfhjzRRNvlf3Mumw9BHgOJFQTfYHhTwAgSTEtcBvb25iXttvMRLEHtzyz9mE2gLjQ==} - - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - - glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported - - globalyzer@0.1.4: - resolution: {integrity: sha512-LeguVWaxgHN0MNbWC6YljNMzHkrCny9fzjmEUdnF1kQ7wATFD1RHFRqA1qxaX2tgxGENlcxjOflopBwj3YZiXA==} - - globrex@0.1.2: - resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} - - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - - has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - - has-own-prop@2.0.0: - resolution: {integrity: sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==} - engines: {node: '>=8'} - - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} - - human-signals@5.0.0: - resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} - engines: {node: '>=16.17.0'} - - ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - - ignore-by-default@1.0.1: - resolution: {integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==} - - ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} - engines: {node: '>= 4'} - - inflight@1.0.6: - resolution: {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. - - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - interpret@1.4.0: - resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} - engines: {node: '>= 0.10'} - - invert-kv@2.0.0: - resolution: {integrity: sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==} - engines: {node: '>=4'} - - is-arrayish@0.3.2: - resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} - - is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - - is-core-module@2.15.0: - resolution: {integrity: sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==} - engines: {node: '>= 0.4'} - - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - - is-fullwidth-code-point@1.0.0: - resolution: {integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==} - engines: {node: '>=0.10.0'} - - is-fullwidth-code-point@2.0.0: - resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} - engines: {node: '>=4'} - - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - is-plain-object@5.0.0: - resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} - engines: {node: '>=0.10.0'} - - is-stream@1.1.0: - resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} - engines: {node: '>=0.10.0'} - - is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - - is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - isomorphic-git@0.55.6: - resolution: {integrity: sha512-A4ygiDCsMIuWknMgviK73IzdPW7HjOC57IBVY/QyC1bwMrXG+clfdBjqA3SpzxBRIxkRA9GvbkrjAjFX6n6ZbQ==} - engines: {node: '>=7.6.0'} - hasBin: true - - js-tokens@9.0.0: - resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} - - js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true - - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - - kuler@2.0.0: - resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} - - lazystream@1.0.1: - resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} - engines: {node: '>= 0.6.3'} - - lcid@2.0.0: - resolution: {integrity: sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==} - engines: {node: '>=6'} - - local-pkg@0.5.0: - resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} - engines: {node: '>=14'} - - locate-path@3.0.0: - resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} - engines: {node: '>=6'} - - lodash-es@4.17.21: - resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} - - lodash.camelcase@4.3.0: - resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} - - lodash.defaults@4.2.0: - resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} - - lodash.difference@4.5.0: - resolution: {integrity: sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==} - - lodash.flatten@4.4.0: - resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==} - - lodash.get@4.4.2: - resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} - - lodash.isplainobject@4.0.6: - resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} - - lodash.set@4.3.2: - resolution: {integrity: sha512-4hNPN5jlm/N/HLMCO43v8BXKq9Z7QdAGc/VGrRD61w8gN9g/6jF9A4L1pbUgBLCffi0w9VsXfTOij5x8iTyFvg==} - - lodash.union@4.6.0: - resolution: {integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==} - - lodash.uniq@4.5.0: - resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} - - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - - logform@2.6.1: - resolution: {integrity: sha512-CdaO738xRapbKIMVn2m4F6KTj4j7ooJ8POVnebSgKo3KBz5axNXRAL7ZdRjIV6NOr2Uf4vjtRkxrFETOioCqSA==} - engines: {node: '>= 12.0.0'} - - loupe@2.3.7: - resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} - - macos-release@2.5.1: - resolution: {integrity: sha512-DXqXhEM7gW59OjZO8NIjBCz9AQ1BEMrfiOAl4AYByHCtVHRF4KoGNO8mqQeM8lRCtQe/UnJ4imO/d2HdkKsd+A==} - engines: {node: '>=6'} - - magic-string@0.30.11: - resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} - - make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - - map-age-cleaner@0.1.3: - resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==} - engines: {node: '>=6'} - - marky@1.2.5: - resolution: {integrity: sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==} - - mdurl@1.0.1: - resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} - - mem@4.3.0: - resolution: {integrity: sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==} - engines: {node: '>=6'} - - merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - - micromatch@4.0.7: - resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} - engines: {node: '>=8.6'} - - mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - - mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - - mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} - - mimic-response@2.1.0: - resolution: {integrity: sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==} - engines: {node: '>=8'} - - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - - minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - - minimisted@2.0.1: - resolution: {integrity: sha512-1oPjfuLQa2caorJUM8HV8lGgWCc0qqAO1MNv/k05G4qslmsndV/5WdNZrqCiyqiz3wohia2Ij2B7w2Dr7/IyrA==} - - mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} - hasBin: true - - mlly@1.7.1: - resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==} - - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - - nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - nice-try@1.0.5: - resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} - - node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - - nodemon@3.1.4: - resolution: {integrity: sha512-wjPBbFhtpJwmIeY2yP7QF+UKzPfltVGtfce1g/bB15/8vCGZj8uxD62b/b9M9/WVgme0NZudpownKN+c0plXlQ==} - engines: {node: '>=10'} - hasBin: true - - normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - - npm-run-path@2.0.2: - resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} - engines: {node: '>=4'} - - npm-run-path@5.3.0: - resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - number-is-nan@1.0.1: - resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==} - engines: {node: '>=0.10.0'} - - octokit-pagination-methods@1.1.0: - resolution: {integrity: sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ==} - - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - - one-time@1.0.0: - resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==} - - onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} - - os-locale@3.1.0: - resolution: {integrity: sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==} - engines: {node: '>=6'} - - os-name@3.1.0: - resolution: {integrity: sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg==} - engines: {node: '>=6'} - - p-defer@1.0.0: - resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==} - engines: {node: '>=4'} - - p-finally@1.0.0: - resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} - engines: {node: '>=4'} - - p-is-promise@2.1.0: - resolution: {integrity: sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==} - engines: {node: '>=6'} - - p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - - p-limit@5.0.0: - resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} - engines: {node: '>=18'} - - p-locate@3.0.0: - resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} - engines: {node: '>=6'} - - p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - - pako@1.0.11: - resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} - - parse-ts-to-ast@0.1.4: - resolution: {integrity: sha512-Cr+p2cyXiK9q+MUgC0N4PGZJdPiCazw54IhDDzL7KaHlGGdsJg+5Rd3DRS24WPbs22V5xaZtlzZ5GESdNgsfEw==} - - path-browserify@1.0.1: - resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} - - path-exists@3.0.0: - resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} - engines: {node: '>=4'} - - path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - - path-key@2.0.1: - resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} - engines: {node: '>=4'} - - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - - path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} - - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - - pathe@1.1.2: - resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - - pathval@1.1.1: - resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} - - picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} - - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} - - pkg-types@1.1.3: - resolution: {integrity: sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA==} - - postcss@8.4.41: - resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==} - engines: {node: ^10 || ^12 || >=14} - - pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - - pstree.remy@1.1.8: - resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==} - - pump@3.0.0: - resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} - - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - - react-is@18.3.1: - resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - - readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - - readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - - readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - - rechoir@0.6.2: - resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} - engines: {node: '>= 0.10'} - - repeat-string@1.6.1: - resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} - engines: {node: '>=0.10'} - - require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - - require-main-filename@1.0.1: - resolution: {integrity: sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==} - - resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true - - retry@0.13.1: - resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} - engines: {node: '>= 4'} - - reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - - rollup@4.20.0: - resolution: {integrity: sha512-6rbWBChcnSGzIlXeIdNIZTopKYad8ZG8ajhl78lGRLsI2rX8IkaotQhVas2Ma+GPxJav19wrSzvRvuiv0YKzWw==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - - safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - - safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - - safe-stable-stringify@2.4.3: - resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} - engines: {node: '>=10'} - - sax@1.4.1: - resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} - - semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} - hasBin: true - - semver@7.6.3: - resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} - engines: {node: '>=10'} - hasBin: true - - set-blocking@2.0.0: - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - - sha.js@2.4.11: - resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} - hasBin: true - - shebang-command@1.2.0: - resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} - engines: {node: '>=0.10.0'} - - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - - shebang-regex@1.0.0: - resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} - engines: {node: '>=0.10.0'} - - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - shelljs@0.8.5: - resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} - engines: {node: '>=4'} - hasBin: true - - siginfo@2.0.0: - resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} - - signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - - signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - - simple-concat@1.0.1: - resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} - - simple-get@3.1.1: - resolution: {integrity: sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==} - - simple-git@3.25.0: - resolution: {integrity: sha512-KIY5sBnzc4yEcJXW7Tdv4viEz8KyG+nU0hay+DWZasvdFOYKeUZ6Xc25LUHHjw0tinPT7O1eY6pzX7pRT1K8rw==} - - simple-swizzle@0.2.2: - resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} - - simple-update-notifier@2.0.0: - resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} - engines: {node: '>=10'} - - source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} - - sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - - stack-trace@0.0.10: - resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} - - stackback@0.0.2: - resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - - std-env@3.7.0: - resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} - - string-width@1.0.2: - resolution: {integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==} - engines: {node: '>=0.10.0'} - - string-width@2.1.1: - resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==} - engines: {node: '>=4'} - - string.prototype.repeat@0.2.0: - resolution: {integrity: sha512-1BH+X+1hSthZFW+X+JaUkjkkUPwIlLEMJBLANN3hOob3RhEk5snLWNECDnYbgn/m5c5JV7Ersu1Yubaf+05cIA==} - - string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - - string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - - strip-ansi@3.0.1: - resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} - engines: {node: '>=0.10.0'} - - strip-ansi@4.0.0: - resolution: {integrity: sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==} - engines: {node: '>=4'} - - strip-eof@1.0.0: - resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} - engines: {node: '>=0.10.0'} - - strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} - - strip-literal@2.1.0: - resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} - - supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - - tar-stream@2.2.0: - resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} - engines: {node: '>=6'} - - text-hex@1.0.0: - resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} - - tinybench@2.9.0: - resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} - - tinypool@0.8.4: - resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==} - engines: {node: '>=14.0.0'} - - tinyspy@2.2.1: - resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} - engines: {node: '>=14.0.0'} - - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - - to-utf8@0.0.1: - resolution: {integrity: sha512-zks18/TWT1iHO3v0vFp5qLKOG27m67ycq/Y7a7cTiRuUNlc4gf3HGnkRgMv0NyhnfTamtkYBJl+YeD1/j07gBQ==} - - touch@3.1.1: - resolution: {integrity: sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==} - hasBin: true - - tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - - triple-beam@1.4.1: - resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==} - engines: {node: '>= 14.0.0'} - - ts-morph@12.2.0: - resolution: {integrity: sha512-WHXLtFDcIRwoqaiu0elAoZ/AmI+SwwDafnPKjgJmdwJ2gRVO0jMKBt88rV2liT/c6MTsXyuWbGFiHe9MRddWJw==} - - ts-node@10.9.2: - resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} - hasBin: true - peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' - peerDependenciesMeta: - '@swc/core': - optional: true - '@swc/wasm': - optional: true - - tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - - tslib@2.6.3: - resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} - - tunnel@0.0.6: - resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} - engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} - - type-detect@4.1.0: - resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==} - engines: {node: '>=4'} - - typescript@3.9.10: - resolution: {integrity: sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==} - engines: {node: '>=4.2.0'} - hasBin: true - - typescript@5.5.4: - resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} - engines: {node: '>=14.17'} - hasBin: true - - typical@4.0.0: - resolution: {integrity: sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==} - engines: {node: '>=8'} - - ufo@1.5.4: - resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} - - undefsafe@2.0.5: - resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==} - - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - - universal-user-agent@4.0.1: - resolution: {integrity: sha512-LnST3ebHwVL2aNe4mejI9IQh2HfZ1RLo8Io2HugSif8ekzD1TlWpHpColOB/eh8JHMLkGH3Akqf040I+4ylNxg==} - - universal-user-agent@6.0.1: - resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} - - universal-user-agent@7.0.2: - resolution: {integrity: sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==} - - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - - uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} - hasBin: true - - v8-compile-cache-lib@3.0.1: - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - - varint@0.0.3: - resolution: {integrity: sha512-SZOWhAh1wbG6fxU5QJMudwrudDkVFCQJlcZEDFQoKdcpr0q2YG5VuS24WSA+w4m0N+9SNe1S2Zd5IdLWXaHyKQ==} - - vite-node@1.6.0: - resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - - vite@5.3.5: - resolution: {integrity: sha512-MdjglKR6AQXQb9JGiS7Rc2wC6uMjcm7Go/NHNO63EwiJXfuk9PgqiP/n5IDJCziMkfw9n4Ubp7lttNwz+8ZVKA==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - - vitest@1.6.0: - resolution: {integrity: sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 1.6.0 - '@vitest/ui': 1.6.0 - happy-dom: '*' - jsdom: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@types/node': - optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true - - webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - - whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - - which-module@2.0.1: - resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} - - which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} - hasBin: true - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - - why-is-node-running@2.3.0: - resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} - engines: {node: '>=8'} - hasBin: true - - windows-release@3.3.3: - resolution: {integrity: sha512-OSOGH1QYiW5yVor9TtmXKQvt2vjQqbYS+DqmsZw+r7xDwLXEeT3JGW0ZppFmHx4diyXmxt238KFR3N9jzevBRg==} - engines: {node: '>=6'} - - winston-transport@4.7.1: - resolution: {integrity: sha512-wQCXXVgfv/wUPOfb2x0ruxzwkcZfxcktz6JIMUaPLmcNhO4bZTwA/WtDWK74xV3F2dKu8YadrFv0qhwYjVEwhA==} - engines: {node: '>= 12.0.0'} - - winston@3.13.1: - resolution: {integrity: sha512-SvZit7VFNvXRzbqGHsv5KSmgbEYR5EiQfDAL9gxYkRqa934Hnk++zze0wANKtMHcy/gI4W/3xmSDwlhf865WGw==} - engines: {node: '>= 12.0.0'} - - wrap-ansi@2.1.0: - resolution: {integrity: sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==} - engines: {node: '>=0.10.0'} - - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - - xml2js@0.5.0: - resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==} - engines: {node: '>=4.0.0'} - - xmlbuilder@11.0.1: - resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} - engines: {node: '>=4.0'} - - y18n@4.0.3: - resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} - - yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} - - yargs-parser@11.1.1: - resolution: {integrity: sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==} - - yargs@12.0.5: - resolution: {integrity: sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==} - - yn@3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} - engines: {node: '>=6'} - - yocto-queue@1.1.1: - resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} - engines: {node: '>=12.20'} - - zip-stream@2.1.3: - resolution: {integrity: sha512-EkXc2JGcKhO5N5aZ7TmuNo45budRaFGHOmz24wtJR7znbNqDPmdZtUauKX6et8KAVseAMBOyWJqEpXcHTBsh7Q==} - engines: {node: '>= 6'} - -snapshots: - - '@azure-tools/openapi-tools-common@1.2.2': - dependencies: - '@types/async-retry': 1.4.8 - '@types/commonmark': 0.27.9 - '@types/node-fetch': 2.6.11 - async-retry: 1.3.3 - commonmark: 0.28.1 - front-matter: 4.0.2 - node-fetch: 2.7.0 - tslib: 2.6.3 - transitivePeerDependencies: - - encoding - - '@azure/abort-controller@2.1.2': - dependencies: - tslib: 2.6.3 - - '@azure/core-auth@1.7.2': - dependencies: - '@azure/abort-controller': 2.1.2 - '@azure/core-util': 1.9.2 - tslib: 2.6.3 - - '@azure/core-util@1.9.2': - dependencies: - '@azure/abort-controller': 2.1.2 - tslib: 2.6.3 - - '@azure/logger-js@1.3.2': - dependencies: - tslib: 1.14.1 - - '@azure/ms-rest-js@2.7.0': - dependencies: - '@azure/core-auth': 1.7.2 - abort-controller: 3.0.0 - form-data: 2.5.1 - node-fetch: 2.7.0 - tslib: 1.14.1 - tunnel: 0.0.6 - uuid: 8.3.2 - xml2js: 0.5.0 - transitivePeerDependencies: - - encoding - - '@azure/storage-blob@10.5.0': - dependencies: - '@azure/ms-rest-js': 2.7.0 - events: 3.3.0 - tslib: 1.14.1 - transitivePeerDependencies: - - encoding - - '@colors/colors@1.6.0': {} - - '@cspotcode/source-map-support@0.8.1': - dependencies: - '@jridgewell/trace-mapping': 0.3.9 - - '@dabh/diagnostics@2.0.3': - dependencies: - colorspace: 1.1.4 - enabled: 2.0.0 - kuler: 2.0.0 - - '@esbuild/aix-ppc64@0.21.5': - optional: true - - '@esbuild/android-arm64@0.21.5': - optional: true - - '@esbuild/android-arm@0.21.5': - optional: true - - '@esbuild/android-x64@0.21.5': - optional: true - - '@esbuild/darwin-arm64@0.21.5': - optional: true - - '@esbuild/darwin-x64@0.21.5': - optional: true - - '@esbuild/freebsd-arm64@0.21.5': - optional: true - - '@esbuild/freebsd-x64@0.21.5': - optional: true - - '@esbuild/linux-arm64@0.21.5': - optional: true - - '@esbuild/linux-arm@0.21.5': - optional: true - - '@esbuild/linux-ia32@0.21.5': - optional: true - - '@esbuild/linux-loong64@0.21.5': - optional: true - - '@esbuild/linux-mips64el@0.21.5': - optional: true - - '@esbuild/linux-ppc64@0.21.5': - optional: true - - '@esbuild/linux-riscv64@0.21.5': - optional: true - - '@esbuild/linux-s390x@0.21.5': - optional: true - - '@esbuild/linux-x64@0.21.5': - optional: true - - '@esbuild/netbsd-x64@0.21.5': - optional: true - - '@esbuild/openbsd-x64@0.21.5': - optional: true - - '@esbuild/sunos-x64@0.21.5': - optional: true - - '@esbuild/win32-arm64@0.21.5': - optional: true - - '@esbuild/win32-ia32@0.21.5': - optional: true - - '@esbuild/win32-x64@0.21.5': - optional: true - - '@jest/schemas@29.6.3': - dependencies: - '@sinclair/typebox': 0.27.8 - - '@jridgewell/resolve-uri@3.1.2': {} - - '@jridgewell/sourcemap-codec@1.5.0': {} - - '@jridgewell/trace-mapping@0.3.9': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 - - '@kwsites/file-exists@1.1.1': - dependencies: - debug: 4.3.6(supports-color@5.5.0) - transitivePeerDependencies: - - supports-color - - '@kwsites/promise-deferred@1.1.1': {} - - '@nodelib/fs.scandir@2.1.5': - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - - '@nodelib/fs.stat@2.0.5': {} - - '@nodelib/fs.walk@1.2.8': - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.1 - - '@octokit/auth-token@2.5.0': - dependencies: - '@octokit/types': 6.41.0 - - '@octokit/auth-token@5.1.1': {} - - '@octokit/core@6.1.2': - dependencies: - '@octokit/auth-token': 5.1.1 - '@octokit/graphql': 8.1.1 - '@octokit/request': 9.1.3 - '@octokit/request-error': 6.1.4 - '@octokit/types': 13.5.0 - before-after-hook: 3.0.2 - universal-user-agent: 7.0.2 - - '@octokit/endpoint@10.1.1': - dependencies: - '@octokit/types': 13.5.0 - universal-user-agent: 7.0.2 - - '@octokit/endpoint@6.0.12': - dependencies: - '@octokit/types': 6.41.0 - is-plain-object: 5.0.0 - universal-user-agent: 6.0.1 - - '@octokit/graphql@8.1.1': - dependencies: - '@octokit/request': 9.1.3 - '@octokit/types': 13.5.0 - universal-user-agent: 7.0.2 - - '@octokit/openapi-types@12.11.0': {} - - '@octokit/openapi-types@22.2.0': {} - - '@octokit/plugin-paginate-rest@1.1.2': - dependencies: - '@octokit/types': 2.16.2 - - '@octokit/plugin-request-log@1.0.4(@octokit/core@6.1.2)': - dependencies: - '@octokit/core': 6.1.2 - - '@octokit/plugin-rest-endpoint-methods@2.4.0': - dependencies: - '@octokit/types': 2.16.2 - deprecation: 2.3.1 - - '@octokit/request-error@1.2.1': - dependencies: - '@octokit/types': 2.16.2 - deprecation: 2.3.1 - once: 1.4.0 - - '@octokit/request-error@2.1.0': - dependencies: - '@octokit/types': 6.41.0 - deprecation: 2.3.1 - once: 1.4.0 - - '@octokit/request-error@6.1.4': - dependencies: - '@octokit/types': 13.5.0 - - '@octokit/request@5.6.3': - dependencies: - '@octokit/endpoint': 6.0.12 - '@octokit/request-error': 2.1.0 - '@octokit/types': 6.41.0 - is-plain-object: 5.0.0 - node-fetch: 2.7.0 - universal-user-agent: 6.0.1 - transitivePeerDependencies: - - encoding - - '@octokit/request@9.1.3': - dependencies: - '@octokit/endpoint': 10.1.1 - '@octokit/request-error': 6.1.4 - '@octokit/types': 13.5.0 - universal-user-agent: 7.0.2 - - '@octokit/rest@16.43.2(@octokit/core@6.1.2)': - dependencies: - '@octokit/auth-token': 2.5.0 - '@octokit/plugin-paginate-rest': 1.1.2 - '@octokit/plugin-request-log': 1.0.4(@octokit/core@6.1.2) - '@octokit/plugin-rest-endpoint-methods': 2.4.0 - '@octokit/request': 5.6.3 - '@octokit/request-error': 1.2.1 - atob-lite: 2.0.0 - before-after-hook: 2.2.3 - btoa-lite: 1.0.0 - deprecation: 2.3.1 - lodash.get: 4.4.2 - lodash.set: 4.3.2 - lodash.uniq: 4.5.0 - octokit-pagination-methods: 1.1.0 - once: 1.4.0 - universal-user-agent: 4.0.1 - transitivePeerDependencies: - - '@octokit/core' - - encoding - - '@octokit/types@13.5.0': - dependencies: - '@octokit/openapi-types': 22.2.0 - - '@octokit/types@2.16.2': - dependencies: - '@types/node': 20.14.14 - - '@octokit/types@6.41.0': - dependencies: - '@octokit/openapi-types': 12.11.0 - - '@rollup/rollup-android-arm-eabi@4.20.0': - optional: true - - '@rollup/rollup-android-arm64@4.20.0': - optional: true - - '@rollup/rollup-darwin-arm64@4.20.0': - optional: true - - '@rollup/rollup-darwin-x64@4.20.0': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.20.0': - optional: true - - '@rollup/rollup-linux-arm-musleabihf@4.20.0': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.20.0': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.20.0': - optional: true - - '@rollup/rollup-linux-powerpc64le-gnu@4.20.0': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.20.0': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.20.0': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.20.0': - optional: true - - '@rollup/rollup-linux-x64-musl@4.20.0': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.20.0': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.20.0': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.20.0': - optional: true - - '@sinclair/typebox@0.27.8': {} - - '@ts-common/azure-js-dev-tools@21.4.0(@octokit/core@6.1.2)': - dependencies: - '@azure/logger-js': 1.3.2 - '@azure/storage-blob': 10.5.0 - '@octokit/rest': 16.43.2(@octokit/core@6.1.2) - '@types/archiver': 2.1.3 - '@types/commonmark': 0.27.9 - '@types/js-yaml': 3.12.10 - archiver: 3.1.1 - commonmark: 0.28.1 - isomorphic-git: 0.55.6 - js-yaml: 3.14.1 - yargs: 12.0.5 - transitivePeerDependencies: - - '@octokit/core' - - encoding - - '@ts-morph/common@0.11.1': - dependencies: - fast-glob: 3.3.2 - minimatch: 3.1.2 - mkdirp: 1.0.4 - path-browserify: 1.0.1 - - '@tsconfig/node10@1.0.11': {} - - '@tsconfig/node12@1.0.11': {} - - '@tsconfig/node14@1.0.3': {} - - '@tsconfig/node16@1.0.4': {} - - '@types/archiver@2.1.3': - dependencies: - '@types/glob': 8.1.0 - - '@types/async-retry@1.4.8': - dependencies: - '@types/retry': 0.12.5 - - '@types/commonmark@0.27.9': {} - - '@types/estree@1.0.5': {} - - '@types/glob@7.2.0': - dependencies: - '@types/minimatch': 5.1.2 - '@types/node': 20.14.14 - - '@types/glob@8.1.0': - dependencies: - '@types/minimatch': 5.1.2 - '@types/node': 20.14.14 - - '@types/js-yaml@3.12.10': {} - - '@types/minimatch@5.1.2': {} - - '@types/node-fetch@2.6.11': - dependencies: - '@types/node': 20.14.14 - form-data: 4.0.0 - - '@types/node@20.14.14': - dependencies: - undici-types: 5.26.5 - - '@types/retry@0.12.5': {} - - '@types/shelljs@0.8.15': - dependencies: - '@types/glob': 7.2.0 - '@types/node': 20.14.14 - - '@types/triple-beam@1.3.5': {} - - '@vitest/expect@1.6.0': - dependencies: - '@vitest/spy': 1.6.0 - '@vitest/utils': 1.6.0 - chai: 4.5.0 - - '@vitest/runner@1.6.0': - dependencies: - '@vitest/utils': 1.6.0 - p-limit: 5.0.0 - pathe: 1.1.2 - - '@vitest/snapshot@1.6.0': - dependencies: - magic-string: 0.30.11 - pathe: 1.1.2 - pretty-format: 29.7.0 - - '@vitest/spy@1.6.0': - dependencies: - tinyspy: 2.2.1 - - '@vitest/utils@1.6.0': - dependencies: - diff-sequences: 29.6.3 - estree-walker: 3.0.3 - loupe: 2.3.7 - pretty-format: 29.7.0 - - abort-controller@3.0.0: - dependencies: - event-target-shim: 5.0.1 - - acorn-walk@8.3.3: - dependencies: - acorn: 8.12.1 - - acorn@8.12.1: {} - - ansi-regex@2.1.1: {} - - ansi-regex@3.0.1: {} - - ansi-styles@5.2.0: {} - - anymatch@3.1.3: - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - - archiver-utils@2.1.0: - dependencies: - glob: 7.2.3 - graceful-fs: 4.2.11 - lazystream: 1.0.1 - lodash.defaults: 4.2.0 - lodash.difference: 4.5.0 - lodash.flatten: 4.4.0 - lodash.isplainobject: 4.0.6 - lodash.union: 4.6.0 - normalize-path: 3.0.0 - readable-stream: 2.3.8 - - archiver@3.1.1: - dependencies: - archiver-utils: 2.1.0 - async: 2.6.4 - buffer-crc32: 0.2.13 - glob: 7.2.3 - readable-stream: 3.6.2 - tar-stream: 2.2.0 - zip-stream: 2.1.3 - - arg@4.1.3: {} - - argparse@1.0.10: - dependencies: - sprintf-js: 1.0.3 - - argparse@2.0.1: {} - - array-back@3.1.0: {} - - array-timsort@1.0.3: {} - - assertion-error@1.1.0: {} - - async-lock@1.4.1: {} - - async-retry@1.3.3: - dependencies: - retry: 0.13.1 - - async@2.6.4: - dependencies: - lodash: 4.17.21 - - async@3.2.5: {} - - asynckit@0.4.0: {} - - atob-lite@2.0.0: {} - - balanced-match@1.0.2: {} - - base64-js@0.0.2: {} - - base64-js@1.5.1: {} - - before-after-hook@2.2.3: {} - - before-after-hook@3.0.2: {} - - binary-extensions@2.3.0: {} - - bl@4.1.0: - dependencies: - buffer: 5.7.1 - inherits: 2.0.4 - readable-stream: 3.6.2 - - bops@0.0.7: - dependencies: - base64-js: 0.0.2 - to-utf8: 0.0.1 - - brace-expansion@1.1.11: - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - - braces@3.0.3: - dependencies: - fill-range: 7.1.1 - - btoa-lite@1.0.0: {} - - buffer-crc32@0.2.13: {} - - buffer@5.7.1: - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - - cac@6.7.14: {} - - camelcase@5.3.1: {} - - chai@4.5.0: - dependencies: - assertion-error: 1.1.0 - check-error: 1.0.3 - deep-eql: 4.1.4 - get-func-name: 2.0.2 - loupe: 2.3.7 - pathval: 1.1.1 - type-detect: 4.1.0 - - check-error@1.0.3: - dependencies: - get-func-name: 2.0.2 - - chokidar@3.6.0: - dependencies: - anymatch: 3.1.3 - braces: 3.0.3 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.3 - - clean-git-ref@1.0.3: {} - - cliui@4.1.0: - dependencies: - string-width: 2.1.1 - strip-ansi: 4.0.0 - wrap-ansi: 2.1.0 - - code-block-writer@10.1.1: {} - - code-point-at@1.1.0: {} - - color-convert@1.9.3: - dependencies: - color-name: 1.1.3 - - color-name@1.1.3: {} - - color-name@1.1.4: {} - - color-string@1.9.1: - dependencies: - color-name: 1.1.4 - simple-swizzle: 0.2.2 - - color@3.2.1: - dependencies: - color-convert: 1.9.3 - color-string: 1.9.1 - - colors@1.4.0: {} - - colorspace@1.1.4: - dependencies: - color: 3.2.1 - text-hex: 1.0.0 - - combined-stream@1.0.8: - dependencies: - delayed-stream: 1.0.0 - - command-line-args@5.2.1: - dependencies: - array-back: 3.1.0 - find-replace: 3.0.0 - lodash.camelcase: 4.3.0 - typical: 4.0.0 - - comment-json@4.2.4: - dependencies: - array-timsort: 1.0.3 - core-util-is: 1.0.3 - esprima: 4.0.1 - has-own-prop: 2.0.0 - repeat-string: 1.6.1 - - commonmark@0.28.1: - dependencies: - entities: 1.1.2 - mdurl: 1.0.1 - minimist: 1.2.8 - string.prototype.repeat: 0.2.0 - - compress-commons@2.1.1: - dependencies: - buffer-crc32: 0.2.13 - crc32-stream: 3.0.1 - normalize-path: 3.0.0 - readable-stream: 2.3.8 - - concat-map@0.0.1: {} - - confbox@0.1.7: {} - - core-util-is@1.0.3: {} - - crc-32@1.2.2: {} - - crc32-stream@3.0.1: - dependencies: - crc: 3.8.0 - readable-stream: 3.6.2 - - crc@3.8.0: - dependencies: - buffer: 5.7.1 - - create-require@1.1.1: {} - - cross-spawn@6.0.5: - dependencies: - nice-try: 1.0.5 - path-key: 2.0.1 - semver: 5.7.2 - shebang-command: 1.2.0 - which: 1.3.1 - - cross-spawn@7.0.3: - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - - debug@4.3.6(supports-color@5.5.0): - dependencies: - ms: 2.1.2 - optionalDependencies: - supports-color: 5.5.0 - - decamelize@1.2.0: {} - - decompress-response@4.2.1: - dependencies: - mimic-response: 2.1.0 - - deep-eql@4.1.4: - dependencies: - type-detect: 4.1.0 - - delayed-stream@1.0.0: {} - - deprecation@2.3.1: {} - - diff-lines@1.1.1: - dependencies: - diff: 3.5.0 - - diff-sequences@29.6.3: {} - - diff@3.5.0: {} - - diff@4.0.2: {} - - enabled@2.0.0: {} - - end-of-stream@1.4.4: - dependencies: - once: 1.4.0 - - entities@1.1.2: {} - - esbuild@0.21.5: - optionalDependencies: - '@esbuild/aix-ppc64': 0.21.5 - '@esbuild/android-arm': 0.21.5 - '@esbuild/android-arm64': 0.21.5 - '@esbuild/android-x64': 0.21.5 - '@esbuild/darwin-arm64': 0.21.5 - '@esbuild/darwin-x64': 0.21.5 - '@esbuild/freebsd-arm64': 0.21.5 - '@esbuild/freebsd-x64': 0.21.5 - '@esbuild/linux-arm': 0.21.5 - '@esbuild/linux-arm64': 0.21.5 - '@esbuild/linux-ia32': 0.21.5 - '@esbuild/linux-loong64': 0.21.5 - '@esbuild/linux-mips64el': 0.21.5 - '@esbuild/linux-ppc64': 0.21.5 - '@esbuild/linux-riscv64': 0.21.5 - '@esbuild/linux-s390x': 0.21.5 - '@esbuild/linux-x64': 0.21.5 - '@esbuild/netbsd-x64': 0.21.5 - '@esbuild/openbsd-x64': 0.21.5 - '@esbuild/sunos-x64': 0.21.5 - '@esbuild/win32-arm64': 0.21.5 - '@esbuild/win32-ia32': 0.21.5 - '@esbuild/win32-x64': 0.21.5 - - esprima@4.0.1: {} - - estree-walker@3.0.3: - dependencies: - '@types/estree': 1.0.5 - - event-target-shim@5.0.1: {} - - events@3.3.0: {} - - execa@1.0.0: - dependencies: - cross-spawn: 6.0.5 - get-stream: 4.1.0 - is-stream: 1.1.0 - npm-run-path: 2.0.2 - p-finally: 1.0.0 - signal-exit: 3.0.7 - strip-eof: 1.0.0 - - execa@8.0.1: - dependencies: - cross-spawn: 7.0.3 - get-stream: 8.0.1 - human-signals: 5.0.0 - is-stream: 3.0.0 - merge-stream: 2.0.0 - npm-run-path: 5.3.0 - onetime: 6.0.0 - signal-exit: 4.1.0 - strip-final-newline: 3.0.0 - - fast-glob@3.3.2: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.7 - - fastq@1.17.1: - dependencies: - reusify: 1.0.4 - - fecha@4.2.3: {} - - fill-range@7.1.1: - dependencies: - to-regex-range: 5.0.1 - - find-replace@3.0.0: - dependencies: - array-back: 3.1.0 - - find-up@3.0.0: - dependencies: - locate-path: 3.0.0 - - fn.name@1.1.0: {} - - form-data@2.5.1: - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - - form-data@4.0.0: - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - - front-matter@4.0.2: - dependencies: - js-yaml: 3.14.1 - - fs-constants@1.0.0: {} - - fs.realpath@1.0.0: {} - - fsevents@2.3.3: - optional: true - - function-bind@1.1.2: {} - - get-caller-file@1.0.3: {} - - get-func-name@2.0.2: {} - - get-stream@4.1.0: - dependencies: - pump: 3.0.0 - - get-stream@8.0.1: {} - - git-apply-delta@0.0.7: - dependencies: - bops: 0.0.7 - varint: 0.0.3 - - glob-parent@5.1.2: - dependencies: - is-glob: 4.0.3 - - glob@7.2.3: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - - globalyzer@0.1.4: {} - - globrex@0.1.2: {} - - graceful-fs@4.2.11: {} - - has-flag@3.0.0: {} - - has-own-prop@2.0.0: {} - - hasown@2.0.2: - dependencies: - function-bind: 1.1.2 - - human-signals@5.0.0: {} - - ieee754@1.2.1: {} - - ignore-by-default@1.0.1: {} - - ignore@5.3.1: {} - - inflight@1.0.6: - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - - inherits@2.0.4: {} - - interpret@1.4.0: {} - - invert-kv@2.0.0: {} - - is-arrayish@0.3.2: {} - - is-binary-path@2.1.0: - dependencies: - binary-extensions: 2.3.0 - - is-core-module@2.15.0: - dependencies: - hasown: 2.0.2 - - is-extglob@2.1.1: {} - - is-fullwidth-code-point@1.0.0: - dependencies: - number-is-nan: 1.0.1 - - is-fullwidth-code-point@2.0.0: {} - - is-glob@4.0.3: - dependencies: - is-extglob: 2.1.1 - - is-number@7.0.0: {} - - is-plain-object@5.0.0: {} - - is-stream@1.1.0: {} - - is-stream@2.0.1: {} - - is-stream@3.0.0: {} - - isarray@1.0.0: {} - - isexe@2.0.0: {} - - isomorphic-git@0.55.6: - dependencies: - async-lock: 1.4.1 - clean-git-ref: 1.0.3 - crc-32: 1.2.2 - diff-lines: 1.1.1 - git-apply-delta: 0.0.7 - globalyzer: 0.1.4 - globrex: 0.1.2 - ignore: 5.3.1 - marky: 1.2.5 - minimisted: 2.0.1 - pako: 1.0.11 - pify: 4.0.1 - readable-stream: 3.6.2 - sha.js: 2.4.11 - simple-get: 3.1.1 - - js-tokens@9.0.0: {} - - js-yaml@3.14.1: - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 - - js-yaml@4.1.0: - dependencies: - argparse: 2.0.1 - - kuler@2.0.0: {} - - lazystream@1.0.1: - dependencies: - readable-stream: 2.3.8 - - lcid@2.0.0: - dependencies: - invert-kv: 2.0.0 - - local-pkg@0.5.0: - dependencies: - mlly: 1.7.1 - pkg-types: 1.1.3 - - locate-path@3.0.0: - dependencies: - p-locate: 3.0.0 - path-exists: 3.0.0 - - lodash-es@4.17.21: {} - - lodash.camelcase@4.3.0: {} - - lodash.defaults@4.2.0: {} - - lodash.difference@4.5.0: {} - - lodash.flatten@4.4.0: {} - - lodash.get@4.4.2: {} - - lodash.isplainobject@4.0.6: {} - - lodash.set@4.3.2: {} - - lodash.union@4.6.0: {} - - lodash.uniq@4.5.0: {} - - lodash@4.17.21: {} - - logform@2.6.1: - dependencies: - '@colors/colors': 1.6.0 - '@types/triple-beam': 1.3.5 - fecha: 4.2.3 - ms: 2.1.2 - safe-stable-stringify: 2.4.3 - triple-beam: 1.4.1 - - loupe@2.3.7: - dependencies: - get-func-name: 2.0.2 - - macos-release@2.5.1: {} - - magic-string@0.30.11: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 - - make-error@1.3.6: {} - - map-age-cleaner@0.1.3: - dependencies: - p-defer: 1.0.0 - - marky@1.2.5: {} - - mdurl@1.0.1: {} - - mem@4.3.0: - dependencies: - map-age-cleaner: 0.1.3 - mimic-fn: 2.1.0 - p-is-promise: 2.1.0 - - merge-stream@2.0.0: {} - - merge2@1.4.1: {} - - micromatch@4.0.7: - dependencies: - braces: 3.0.3 - picomatch: 2.3.1 - - mime-db@1.52.0: {} - - mime-types@2.1.35: - dependencies: - mime-db: 1.52.0 - - mimic-fn@2.1.0: {} - - mimic-fn@4.0.0: {} - - mimic-response@2.1.0: {} - - minimatch@3.1.2: - dependencies: - brace-expansion: 1.1.11 - - minimist@1.2.8: {} - - minimisted@2.0.1: - dependencies: - minimist: 1.2.8 - - mkdirp@1.0.4: {} - - mlly@1.7.1: - dependencies: - acorn: 8.12.1 - pathe: 1.1.2 - pkg-types: 1.1.3 - ufo: 1.5.4 - - ms@2.1.2: {} - - nanoid@3.3.7: {} - - nice-try@1.0.5: {} - - node-fetch@2.7.0: - dependencies: - whatwg-url: 5.0.0 - - nodemon@3.1.4: - dependencies: - chokidar: 3.6.0 - debug: 4.3.6(supports-color@5.5.0) - ignore-by-default: 1.0.1 - minimatch: 3.1.2 - pstree.remy: 1.1.8 - semver: 7.6.3 - simple-update-notifier: 2.0.0 - supports-color: 5.5.0 - touch: 3.1.1 - undefsafe: 2.0.5 - - normalize-path@3.0.0: {} - - npm-run-path@2.0.2: - dependencies: - path-key: 2.0.1 - - npm-run-path@5.3.0: - dependencies: - path-key: 4.0.0 - - number-is-nan@1.0.1: {} - - octokit-pagination-methods@1.1.0: {} - - once@1.4.0: - dependencies: - wrappy: 1.0.2 - - one-time@1.0.0: - dependencies: - fn.name: 1.1.0 - - onetime@6.0.0: - dependencies: - mimic-fn: 4.0.0 - - os-locale@3.1.0: - dependencies: - execa: 1.0.0 - lcid: 2.0.0 - mem: 4.3.0 - - os-name@3.1.0: - dependencies: - macos-release: 2.5.1 - windows-release: 3.3.3 - - p-defer@1.0.0: {} - - p-finally@1.0.0: {} - - p-is-promise@2.1.0: {} - - p-limit@2.3.0: - dependencies: - p-try: 2.2.0 - - p-limit@5.0.0: - dependencies: - yocto-queue: 1.1.1 - - p-locate@3.0.0: - dependencies: - p-limit: 2.3.0 - - p-try@2.2.0: {} - - pako@1.0.11: {} - - parse-ts-to-ast@0.1.4: - dependencies: - lodash: 4.17.21 - lodash-es: 4.17.21 - tslib: 1.14.1 - typescript: 3.9.10 - - path-browserify@1.0.1: {} - - path-exists@3.0.0: {} - - path-is-absolute@1.0.1: {} - - path-key@2.0.1: {} - - path-key@3.1.1: {} - - path-key@4.0.0: {} - - path-parse@1.0.7: {} - - pathe@1.1.2: {} - - pathval@1.1.1: {} - - picocolors@1.0.1: {} - - picomatch@2.3.1: {} - - pify@4.0.1: {} - - pkg-types@1.1.3: - dependencies: - confbox: 0.1.7 - mlly: 1.7.1 - pathe: 1.1.2 - - postcss@8.4.41: - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.1 - source-map-js: 1.2.0 - - pretty-format@29.7.0: - dependencies: - '@jest/schemas': 29.6.3 - ansi-styles: 5.2.0 - react-is: 18.3.1 - - process-nextick-args@2.0.1: {} - - pstree.remy@1.1.8: {} - - pump@3.0.0: - dependencies: - end-of-stream: 1.4.4 - once: 1.4.0 - - queue-microtask@1.2.3: {} - - react-is@18.3.1: {} - - readable-stream@2.3.8: - dependencies: - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 1.0.0 - process-nextick-args: 2.0.1 - safe-buffer: 5.1.2 - string_decoder: 1.1.1 - util-deprecate: 1.0.2 - - readable-stream@3.6.2: - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 - - readdirp@3.6.0: - dependencies: - picomatch: 2.3.1 - - rechoir@0.6.2: - dependencies: - resolve: 1.22.8 - - repeat-string@1.6.1: {} - - require-directory@2.1.1: {} - - require-main-filename@1.0.1: {} - - resolve@1.22.8: - dependencies: - is-core-module: 2.15.0 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - - retry@0.13.1: {} - - reusify@1.0.4: {} - - rimraf@3.0.2: - dependencies: - glob: 7.2.3 - - rollup@4.20.0: - dependencies: - '@types/estree': 1.0.5 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.20.0 - '@rollup/rollup-android-arm64': 4.20.0 - '@rollup/rollup-darwin-arm64': 4.20.0 - '@rollup/rollup-darwin-x64': 4.20.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.20.0 - '@rollup/rollup-linux-arm-musleabihf': 4.20.0 - '@rollup/rollup-linux-arm64-gnu': 4.20.0 - '@rollup/rollup-linux-arm64-musl': 4.20.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.20.0 - '@rollup/rollup-linux-riscv64-gnu': 4.20.0 - '@rollup/rollup-linux-s390x-gnu': 4.20.0 - '@rollup/rollup-linux-x64-gnu': 4.20.0 - '@rollup/rollup-linux-x64-musl': 4.20.0 - '@rollup/rollup-win32-arm64-msvc': 4.20.0 - '@rollup/rollup-win32-ia32-msvc': 4.20.0 - '@rollup/rollup-win32-x64-msvc': 4.20.0 - fsevents: 2.3.3 - - run-parallel@1.2.0: - dependencies: - queue-microtask: 1.2.3 - - safe-buffer@5.1.2: {} - - safe-buffer@5.2.1: {} - - safe-stable-stringify@2.4.3: {} - - sax@1.4.1: {} - - semver@5.7.2: {} - - semver@7.6.3: {} - - set-blocking@2.0.0: {} - - sha.js@2.4.11: - dependencies: - inherits: 2.0.4 - safe-buffer: 5.2.1 - - shebang-command@1.2.0: - dependencies: - shebang-regex: 1.0.0 - - shebang-command@2.0.0: - dependencies: - shebang-regex: 3.0.0 - - shebang-regex@1.0.0: {} - - shebang-regex@3.0.0: {} - - shelljs@0.8.5: - dependencies: - glob: 7.2.3 - interpret: 1.4.0 - rechoir: 0.6.2 - - siginfo@2.0.0: {} - - signal-exit@3.0.7: {} - - signal-exit@4.1.0: {} - - simple-concat@1.0.1: {} - - simple-get@3.1.1: - dependencies: - decompress-response: 4.2.1 - once: 1.4.0 - simple-concat: 1.0.1 - - simple-git@3.25.0: - dependencies: - '@kwsites/file-exists': 1.1.1 - '@kwsites/promise-deferred': 1.1.1 - debug: 4.3.6(supports-color@5.5.0) - transitivePeerDependencies: - - supports-color - - simple-swizzle@0.2.2: - dependencies: - is-arrayish: 0.3.2 - - simple-update-notifier@2.0.0: - dependencies: - semver: 7.6.3 - - source-map-js@1.2.0: {} - - sprintf-js@1.0.3: {} - - stack-trace@0.0.10: {} - - stackback@0.0.2: {} - - std-env@3.7.0: {} - - string-width@1.0.2: - dependencies: - code-point-at: 1.1.0 - is-fullwidth-code-point: 1.0.0 - strip-ansi: 3.0.1 - - string-width@2.1.1: - dependencies: - is-fullwidth-code-point: 2.0.0 - strip-ansi: 4.0.0 - - string.prototype.repeat@0.2.0: {} - - string_decoder@1.1.1: - dependencies: - safe-buffer: 5.1.2 - - string_decoder@1.3.0: - dependencies: - safe-buffer: 5.2.1 - - strip-ansi@3.0.1: - dependencies: - ansi-regex: 2.1.1 - - strip-ansi@4.0.0: - dependencies: - ansi-regex: 3.0.1 - - strip-eof@1.0.0: {} - - strip-final-newline@3.0.0: {} - - strip-literal@2.1.0: - dependencies: - js-tokens: 9.0.0 - - supports-color@5.5.0: - dependencies: - has-flag: 3.0.0 - - supports-preserve-symlinks-flag@1.0.0: {} - - tar-stream@2.2.0: - dependencies: - bl: 4.1.0 - end-of-stream: 1.4.4 - fs-constants: 1.0.0 - inherits: 2.0.4 - readable-stream: 3.6.2 - - text-hex@1.0.0: {} - - tinybench@2.9.0: {} - - tinypool@0.8.4: {} - - tinyspy@2.2.1: {} - - to-regex-range@5.0.1: - dependencies: - is-number: 7.0.0 - - to-utf8@0.0.1: {} - - touch@3.1.1: {} - - tr46@0.0.3: {} - - triple-beam@1.4.1: {} - - ts-morph@12.2.0: - dependencies: - '@ts-morph/common': 0.11.1 - code-block-writer: 10.1.1 - - ts-node@10.9.2(@types/node@20.14.14)(typescript@5.5.4): - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.11 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 20.14.14 - acorn: 8.12.1 - acorn-walk: 8.3.3 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 5.5.4 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - - tslib@1.14.1: {} - - tslib@2.6.3: {} - - tunnel@0.0.6: {} - - type-detect@4.1.0: {} - - typescript@3.9.10: {} - - typescript@5.5.4: {} - - typical@4.0.0: {} - - ufo@1.5.4: {} - - undefsafe@2.0.5: {} - - undici-types@5.26.5: {} - - universal-user-agent@4.0.1: - dependencies: - os-name: 3.1.0 - - universal-user-agent@6.0.1: {} - - universal-user-agent@7.0.2: {} - - util-deprecate@1.0.2: {} - - uuid@8.3.2: {} - - v8-compile-cache-lib@3.0.1: {} - - varint@0.0.3: {} - - vite-node@1.6.0(@types/node@20.14.14): - dependencies: - cac: 6.7.14 - debug: 4.3.6(supports-color@5.5.0) - pathe: 1.1.2 - picocolors: 1.0.1 - vite: 5.3.5(@types/node@20.14.14) - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - - vite@5.3.5(@types/node@20.14.14): - dependencies: - esbuild: 0.21.5 - postcss: 8.4.41 - rollup: 4.20.0 - optionalDependencies: - '@types/node': 20.14.14 - fsevents: 2.3.3 - - vitest@1.6.0(@types/node@20.14.14): - dependencies: - '@vitest/expect': 1.6.0 - '@vitest/runner': 1.6.0 - '@vitest/snapshot': 1.6.0 - '@vitest/spy': 1.6.0 - '@vitest/utils': 1.6.0 - acorn-walk: 8.3.3 - chai: 4.5.0 - debug: 4.3.6(supports-color@5.5.0) - execa: 8.0.1 - local-pkg: 0.5.0 - magic-string: 0.30.11 - pathe: 1.1.2 - picocolors: 1.0.1 - std-env: 3.7.0 - strip-literal: 2.1.0 - tinybench: 2.9.0 - tinypool: 0.8.4 - vite: 5.3.5(@types/node@20.14.14) - vite-node: 1.6.0(@types/node@20.14.14) - why-is-node-running: 2.3.0 - optionalDependencies: - '@types/node': 20.14.14 - transitivePeerDependencies: - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - - webidl-conversions@3.0.1: {} - - whatwg-url@5.0.0: - dependencies: - tr46: 0.0.3 - webidl-conversions: 3.0.1 - - which-module@2.0.1: {} - - which@1.3.1: - dependencies: - isexe: 2.0.0 - - which@2.0.2: - dependencies: - isexe: 2.0.0 - - why-is-node-running@2.3.0: - dependencies: - siginfo: 2.0.0 - stackback: 0.0.2 - - windows-release@3.3.3: - dependencies: - execa: 1.0.0 - - winston-transport@4.7.1: - dependencies: - logform: 2.6.1 - readable-stream: 3.6.2 - triple-beam: 1.4.1 - - winston@3.13.1: - dependencies: - '@colors/colors': 1.6.0 - '@dabh/diagnostics': 2.0.3 - async: 3.2.5 - is-stream: 2.0.1 - logform: 2.6.1 - one-time: 1.0.0 - readable-stream: 3.6.2 - safe-stable-stringify: 2.4.3 - stack-trace: 0.0.10 - triple-beam: 1.4.1 - winston-transport: 4.7.1 - - wrap-ansi@2.1.0: - dependencies: - string-width: 1.0.2 - strip-ansi: 3.0.1 - - wrappy@1.0.2: {} - - xml2js@0.5.0: - dependencies: - sax: 1.4.1 - xmlbuilder: 11.0.1 - - xmlbuilder@11.0.1: {} - - y18n@4.0.3: {} - - yaml@1.10.2: {} - - yargs-parser@11.1.1: - dependencies: - camelcase: 5.3.1 - decamelize: 1.2.0 - - yargs@12.0.5: - dependencies: - cliui: 4.1.0 - decamelize: 1.2.0 - find-up: 3.0.0 - get-caller-file: 1.0.3 - os-locale: 3.1.0 - require-directory: 2.1.1 - require-main-filename: 1.0.1 - set-blocking: 2.0.0 - string-width: 2.1.1 - which-module: 2.0.1 - y18n: 4.0.3 - yargs-parser: 11.1.1 - - yn@3.1.1: {} - - yocto-queue@1.1.1: {} - - zip-stream@2.1.3: - dependencies: - archiver-utils: 2.1.0 - compress-commons: 2.1.1 - readable-stream: 3.6.2 diff --git a/tools/js-sdk-release-tools/src/changelog/RestLevelClientChangelogPostProcessor.ts b/tools/js-sdk-release-tools/src/changelog/RestLevelClientChangelogPostProcessor.ts new file mode 100644 index 00000000000..5ac66c4f437 --- /dev/null +++ b/tools/js-sdk-release-tools/src/changelog/RestLevelClientChangelogPostProcessor.ts @@ -0,0 +1,118 @@ +import { Changelog, ChangelogItem } from './changelogGenerator'; +import { InlineDeclarationNameSetMessage, NodeContext } from 'typescript-codegen-breaking-change-detector'; + +export class RestLevelClientChangelogPostProcessor { + private changelog: Changelog; + private message: InlineDeclarationNameSetMessage; + constructor(changelog: Changelog, message: InlineDeclarationNameSetMessage) { + this.changelog = changelog; + this.message = message; + } + + public run() { + this.handleChangelogItems(this.changelog.addedOperationGroup); + this.handleChangelogItems(this.changelog.removedOperationGroup); + this.handleChangelogItems(this.changelog.addedOperation); + this.handleChangelogItems(this.changelog.addedInterface); + this.handleChangelogItems(this.changelog.addedClass); + this.handleChangelogItems(this.changelog.addedTypeAlias); + this.handleChangelogItems(this.changelog.interfaceAddOptionalParam); + this.handleChangelogItems(this.changelog.interfaceParamTypeExtended); + this.handleChangelogItems(this.changelog.typeAliasAddInherit); + this.handleChangelogItems(this.changelog.typeAliasAddParam); + this.handleChangelogItems(this.changelog.addedEnum); + this.handleChangelogItems(this.changelog.addedEnumValue); + this.handleChangelogItems(this.changelog.addedFunction); + this.handleChangelogItems(this.changelog.removedOperation); + this.handleChangelogItems(this.changelog.operationSignatureChange); + this.handleChangelogItems(this.changelog.deletedClass); + this.handleChangelogItems(this.changelog.classSignatureChange); + this.handleChangelogItems(this.changelog.interfaceParamDelete); + this.handleChangelogItems(this.changelog.interfaceParamAddRequired); + this.handleChangelogItems(this.changelog.interfaceParamTypeChanged); + this.handleChangelogItems(this.changelog.interfaceParamChangeRequired); + this.handleChangelogItems(this.changelog.classParamDelete); + this.handleChangelogItems(this.changelog.classParamChangeRequired); + this.handleChangelogItems(this.changelog.typeAliasDeleteInherit); + this.handleChangelogItems(this.changelog.typeAliasParamDelete); + this.handleChangelogItems(this.changelog.typeAliasAddRequiredParam); + this.handleChangelogItems(this.changelog.typeAliasParamChangeRequired); + this.handleChangelogItems(this.changelog.removedEnum); + this.handleChangelogItems(this.changelog.removedEnumValue); + this.handleChangelogItems(this.changelog.removedFunction); + } + + private getCurrentNodeContext(name: string | undefined): NodeContext | undefined { + if (!name) return undefined; + return this.message.current.get(name); + } + + private getBaselineNodeContext(name: string | undefined): NodeContext | undefined { + if (!name) return undefined; + return this.message.baseline.get(name); + } + + private findCompatibleNodeContext( + inputContext: NodeContext, + contextMapToFind: Map, + ): NodeContext | undefined { + for (const [_, foundContext] of contextMapToFind) { + const isCompatibleFromInputToFound = inputContext.node.getType().isAssignableTo(foundContext.node.getType()) + const isCompatibleFromFoundToInput = foundContext.node.getType().isAssignableTo(inputContext.node.getType()) + if (isCompatibleFromInputToFound && isCompatibleFromFoundToInput) return foundContext; + } + return undefined; + } + + private tryIgnoreInlineTypeInChangelogItem( + inputContext: NodeContext, + nodeContextMapToFind: Map, + item: ChangelogItem + ) { + if (!inputContext) return; + const foundContext = this.findCompatibleNodeContext( + inputContext, + nodeContextMapToFind, + ); + if (foundContext) { + inputContext.used = true; + foundContext.used = true; + item.toDelete = true; + } + return; + } + + private handleChangelogItems(items: ChangelogItem[]) { + items.forEach((item) => { + if (!item.oldName && !item.newName) return; + + if (item.newName && item.oldName) { + const currentContext = this.getCurrentNodeContext(item.newName); + if (!currentContext) return; + const baselineContext = this.getBaselineNodeContext(item.oldName); + if (!baselineContext) return; + const currentType = currentContext.node.getType(); + const baselineType = baselineContext.node.getType(); + if (currentType.isAssignableTo(baselineType)) { + item.toDelete = true; + currentContext.used = true; + baselineContext.used = true; + } + return; + } + + if (item.newName) { + const inputContext = this.getCurrentNodeContext(item.newName); + if (!inputContext) return; + this.tryIgnoreInlineTypeInChangelogItem(inputContext, this.message.baseline, item); + return; + } + + // item.oldName exists + const inputContext = this.getBaselineNodeContext(item.oldName); + if (!inputContext) return; + this.tryIgnoreInlineTypeInChangelogItem(inputContext, this.message.current, item); + return; + }); + } +} diff --git a/tools/js-sdk-release-tools/src/changelog/changelogGenerator.ts b/tools/js-sdk-release-tools/src/changelog/changelogGenerator.ts index 9eef5cf0fcf..1f768ad0d9e 100644 --- a/tools/js-sdk-release-tools/src/changelog/changelogGenerator.ts +++ b/tools/js-sdk-release-tools/src/changelog/changelogGenerator.ts @@ -4,103 +4,115 @@ import { InterfaceDeclaration, TypeAliasDeclaration } from "parse-ts-to-ast"; +// TODO: add detection for routes and overloads in base detector +import { InlineDeclarationNameSetMessage, RuleMessage, RuleMessageKind, detectBreakingChangesBetweenPackages } from "typescript-codegen-breaking-change-detector"; + import { IntersectionDeclaration } from "parse-ts-to-ast/build/declarations/IntersectionDeclaration"; import { TypeLiteralDeclaration } from "parse-ts-to-ast/build/declarations/TypeLiteralDeclaration"; -import { TSExportedMetaData } from "./extractMetaData"; +import { join } from "path"; import { SDKType } from "../common/types"; import { logger } from "../utils/logger"; +import { TSExportedMetaData } from "./extractMetaData"; +import { RestLevelClientChangelogPostProcessor } from "./RestLevelClientChangelogPostProcessor"; + +export interface ChangelogItem { + line: string; + oldName?: string; + newName?: string; + toDelete?: boolean; +} export class Changelog { // features - public addedOperationGroup: string[] = []; - public addedOperation: string[] = []; - public addedInterface: string[] = []; - public addedClass: string[] = []; - public addedTypeAlias: string[] = []; - public interfaceAddOptionalParam: string[] = []; - public interfaceParamTypeExtended: string[] = []; - public typeAliasAddInherit: string[] = []; - public typeAliasAddParam: string[] = []; - public addedEnum: string[] = []; - public addedEnumValue: string[] = []; - public addedFunction: string[] = []; + public addedOperationGroup: ChangelogItem[] = []; + public addedOperation: ChangelogItem[] = []; + public addedInterface: ChangelogItem[] = []; + public addedClass: ChangelogItem[] = []; + public addedTypeAlias: ChangelogItem[] = []; + public interfaceAddOptionalParam: ChangelogItem[] = []; + public interfaceParamTypeExtended: ChangelogItem[] = []; + public typeAliasAddInherit: ChangelogItem[] = []; + public typeAliasAddParam: ChangelogItem[] = []; + public addedEnum: ChangelogItem[] = []; + public addedEnumValue: ChangelogItem[] = []; + public addedFunction: ChangelogItem[] = []; // breaking changes - public removedOperationGroup: string[] = []; - public removedOperation: string[] = []; - public operationSignatureChange: string[] = []; - public deletedClass: string[] = []; - public classSignatureChange: string[] = []; - public interfaceParamDelete: string[] = []; - public interfaceParamAddRequired: string[] = []; - public interfaceParamTypeChanged: string[] = []; - public interfaceParamChangeRequired: string[] = []; - public classParamDelete: string[] = []; - public classParamChangeRequired: string[] = []; - public typeAliasDeleteInherit: string[] = []; - public typeAliasParamDelete: string[] = []; - public typeAliasAddRequiredParam: string[] = []; - public typeAliasParamChangeRequired: string[] = []; - public removedEnum: string[] = []; - public removedEnumValue: string[] = []; - public removedFunction: string[] = []; + public removedOperationGroup: ChangelogItem[] = []; + public removedOperation: ChangelogItem[] = []; + public operationSignatureChange: ChangelogItem[] = []; + public deletedClass: ChangelogItem[] = []; + public classSignatureChange: ChangelogItem[] = []; + public interfaceParamDelete: ChangelogItem[] = []; + public interfaceParamAddRequired: ChangelogItem[] = []; + public interfaceParamTypeChanged: ChangelogItem[] = []; + public interfaceParamChangeRequired: ChangelogItem[] = []; + public classParamDelete: ChangelogItem[] = []; + public classParamChangeRequired: ChangelogItem[] = []; + public typeAliasDeleteInherit: ChangelogItem[] = []; + public typeAliasParamDelete: ChangelogItem[] = []; + public typeAliasAddRequiredParam: ChangelogItem[] = []; + public typeAliasParamChangeRequired: ChangelogItem[] = []; + public removedEnum: ChangelogItem[] = []; + public removedEnumValue: ChangelogItem[] = []; + public removedFunction: ChangelogItem[] = []; public get hasBreakingChange() { - return this.removedOperationGroup.length > 0 || - this.removedOperation.length > 0 || - this.operationSignatureChange.length > 0 || - this.deletedClass.length > 0 || - this.classSignatureChange.length > 0 || - this.interfaceParamDelete.length > 0 || - this.interfaceParamAddRequired.length > 0 || - this.interfaceParamChangeRequired.length > 0 || - this.interfaceParamTypeChanged.length > 0 || - this.classParamDelete.length > 0 || - this.classParamChangeRequired.length > 0 || - this.typeAliasDeleteInherit.length > 0 || - this.typeAliasParamDelete.length > 0 || - this.typeAliasAddRequiredParam.length > 0 || - this.typeAliasParamChangeRequired.length > 0 || - this.removedEnum.length > 0 || - this.removedEnumValue.length > 0; - this.removedFunction.length > 0; + return this.removedOperationGroup.filter(i => !i.toDelete).length > 0 || + this.removedOperation.filter(i => !i.toDelete).length > 0 || + this.operationSignatureChange.filter(i => !i.toDelete).length > 0 || + this.deletedClass.filter(i => !i.toDelete).length > 0 || + this.classSignatureChange.filter(i => !i.toDelete).length > 0 || + this.interfaceParamDelete.filter(i => !i.toDelete).length > 0 || + this.interfaceParamAddRequired.filter(i => !i.toDelete).length > 0 || + this.interfaceParamChangeRequired.filter(i => !i.toDelete).length > 0 || + this.interfaceParamTypeChanged.filter(i => !i.toDelete).length > 0 || + this.classParamDelete.filter(i => !i.toDelete).length > 0 || + this.classParamChangeRequired.filter(i => !i.toDelete).length > 0 || + this.typeAliasDeleteInherit.filter(i => !i.toDelete).length > 0 || + this.typeAliasParamDelete.filter(i => !i.toDelete).length > 0 || + this.typeAliasAddRequiredParam.filter(i => !i.toDelete).length > 0 || + this.typeAliasParamChangeRequired.filter(i => !i.toDelete).length > 0 || + this.removedEnum.filter(i => !i.toDelete).length > 0 || + this.removedEnumValue.filter(i => !i.toDelete).length > 0; + this.removedFunction.filter(i => !i.toDelete).length > 0; } public get hasFeature() { - return this.addedOperationGroup.length > 0 || - this.addedOperation.length > 0 || - this.addedInterface.length > 0 || - this.addedClass.length > 0 || - this.addedTypeAlias.length > 0 || - this.interfaceAddOptionalParam.length > 0 || - this.interfaceParamTypeExtended.length > 0 || - this.typeAliasAddInherit.length > 0 || - this.typeAliasAddParam.length > 0 || - this.addedEnum.length > 0 || - this.addedEnumValue.length > 0; - this.addedFunction.length > 0; + return this.addedOperationGroup.filter(i => !i.toDelete).length > 0 || + this.addedOperation.filter(i => !i.toDelete).length > 0 || + this.addedInterface.filter(i => !i.toDelete).length > 0 || + this.addedClass.filter(i => !i.toDelete).length > 0 || + this.addedTypeAlias.filter(i => !i.toDelete).length > 0 || + this.interfaceAddOptionalParam.filter(i => !i.toDelete).length > 0 || + this.interfaceParamTypeExtended.filter(i => !i.toDelete).length > 0 || + this.typeAliasAddInherit.filter(i => !i.toDelete).length > 0 || + this.typeAliasAddParam.filter(i => !i.toDelete).length > 0 || + this.addedEnum.filter(i => !i.toDelete).length > 0 || + this.addedEnumValue.filter(i => !i.toDelete).length > 0; + this.addedFunction.filter(i => !i.toDelete).length > 0; } public getBreakingChangeItems(): string[] { let items: string[] = []; if (this.hasBreakingChange) { - this.removedOperationGroup - .concat(this.removedOperation) - .concat(this.operationSignatureChange) - .concat(this.deletedClass) - .concat(this.classSignatureChange) - .concat(this.interfaceParamDelete) - .concat(this.interfaceParamAddRequired) - .concat(this.interfaceParamChangeRequired) - .concat(this.interfaceParamTypeChanged) - .concat(this.classParamDelete) - .concat(this.classParamChangeRequired) - .concat(this.typeAliasDeleteInherit) - .concat(this.typeAliasParamDelete) - .concat(this.typeAliasAddRequiredParam) - .concat(this.typeAliasParamChangeRequired) - .concat(this.removedEnum) - .concat(this.removedEnumValue) - .concat(this.removedFunction) + this.removedOperationGroup.filter(i => !i.toDelete).map(i => i.line) + .concat(this.removedOperation.filter(i => !i.toDelete).map(i => i.line)) + .concat(this.operationSignatureChange.filter(i => !i.toDelete).map(i => i.line)) + .concat(this.deletedClass.filter(i => !i.toDelete).map(i => i.line)) + .concat(this.classSignatureChange.filter(i => !i.toDelete).map(i => i.line)) + .concat(this.interfaceParamDelete.filter(i => !i.toDelete).map(i => i.line)) + .concat(this.interfaceParamAddRequired.filter(i => !i.toDelete).map(i => i.line)) + .concat(this.interfaceParamChangeRequired.filter(i => !i.toDelete).map(i => i.line)) + .concat(this.interfaceParamTypeChanged.filter(i => !i.toDelete).map(i => i.line)) + .concat(this.classParamDelete.filter(i => !i.toDelete).map(i => i.line)) + .concat(this.classParamChangeRequired.filter(i => !i.toDelete).map(i => i.line)) + .concat(this.typeAliasDeleteInherit.filter(i => !i.toDelete).map(i => i.line)) + .concat(this.typeAliasParamDelete.filter(i => !i.toDelete).map(i => i.line)) + .concat(this.typeAliasAddRequiredParam.filter(i => !i.toDelete).map(i => i.line)) + .concat(this.typeAliasParamChangeRequired.filter(i => !i.toDelete).map(i => i.line)) + .concat(this.removedEnum.filter(i => !i.toDelete).map(i => i.line)) + .concat(this.removedEnumValue.filter(i => !i.toDelete).map(i => i.line)) + .concat(this.removedFunction.filter(i => !i.toDelete).map(i => i.line)) .forEach(e => { items.push(e); }); @@ -113,18 +125,18 @@ export class Changelog { if (this.hasFeature) { display.push('### Features Added'); display.push(''); - this.addedOperationGroup - .concat(this.addedOperation) - .concat(this.addedInterface) - .concat(this.addedClass) - .concat(this.addedTypeAlias) - .concat(this.interfaceAddOptionalParam) - .concat(this.interfaceParamTypeExtended) - .concat(this.typeAliasAddInherit) - .concat(this.typeAliasAddParam) - .concat(this.addedEnum) - .concat(this.addedEnumValue) - .concat(this.addedFunction) + this.addedOperationGroup.filter(i => !i.toDelete).map(i => i.line) + .concat(this.addedOperation.filter(i => !i.toDelete).map(i => i.line)) + .concat(this.addedInterface.filter(i => !i.toDelete).map(i => i.line)) + .concat(this.addedClass.filter(i => !i.toDelete).map(i => i.line)) + .concat(this.addedTypeAlias.filter(i => !i.toDelete).map(i => i.line)) + .concat(this.interfaceAddOptionalParam.filter(i => !i.toDelete).map(i => i.line)) + .concat(this.interfaceParamTypeExtended.filter(i => !i.toDelete).map(i => i.line)) + .concat(this.typeAliasAddInherit.filter(i => !i.toDelete).map(i => i.line)) + .concat(this.typeAliasAddParam.filter(i => !i.toDelete).map(i => i.line)) + .concat(this.addedEnum.filter(i => !i.toDelete).map(i => i.line)) + .concat(this.addedEnumValue.filter(i => !i.toDelete).map(i => i.line)) + .concat(this.addedFunction.filter(i => !i.toDelete).map(i => i.line)) .forEach(e => { display.push(' - ' + e); }); @@ -134,24 +146,24 @@ export class Changelog { if (this.hasFeature) display.push(''); display.push('### Breaking Changes'); display.push(''); - this.removedOperationGroup - .concat(this.removedOperation) - .concat(this.operationSignatureChange) - .concat(this.deletedClass) - .concat(this.classSignatureChange) - .concat(this.interfaceParamDelete) - .concat(this.interfaceParamAddRequired) - .concat(this.interfaceParamChangeRequired) - .concat(this.interfaceParamTypeChanged) - .concat(this.classParamDelete) - .concat(this.classParamChangeRequired) - .concat(this.typeAliasDeleteInherit) - .concat(this.typeAliasParamDelete) - .concat(this.typeAliasAddRequiredParam) - .concat(this.typeAliasParamChangeRequired) - .concat(this.removedEnum) - .concat(this.removedEnumValue) - .concat(this.removedFunction) + this.removedOperationGroup.filter(i => !i.toDelete).map(i => i.line) + .concat(this.removedOperation.filter(i => !i.toDelete).map(i => i.line)) + .concat(this.operationSignatureChange.filter(i => !i.toDelete).map(i => i.line)) + .concat(this.deletedClass.filter(i => !i.toDelete).map(i => i.line)) + .concat(this.classSignatureChange.filter(i => !i.toDelete).map(i => i.line)) + .concat(this.interfaceParamDelete.filter(i => !i.toDelete).map(i => i.line)) + .concat(this.interfaceParamAddRequired.filter(i => !i.toDelete).map(i => i.line)) + .concat(this.interfaceParamChangeRequired.filter(i => !i.toDelete).map(i => i.line)) + .concat(this.interfaceParamTypeChanged.filter(i => !i.toDelete).map(i => i.line)) + .concat(this.classParamDelete.filter(i => !i.toDelete).map(i => i.line)) + .concat(this.classParamChangeRequired.filter(i => !i.toDelete).map(i => i.line)) + .concat(this.typeAliasDeleteInherit.filter(i => !i.toDelete).map(i => i.line)) + .concat(this.typeAliasParamDelete.filter(i => !i.toDelete).map(i => i.line)) + .concat(this.typeAliasAddRequiredParam.filter(i => !i.toDelete).map(i => i.line)) + .concat(this.typeAliasParamChangeRequired.filter(i => !i.toDelete).map(i => i.line)) + .concat(this.removedEnum.filter(i => !i.toDelete).map(i => i.line)) + .concat(this.removedEnumValue.filter(i => !i.toDelete).map(i => i.line)) + .concat(this.removedFunction.filter(i => !i.toDelete).map(i => i.line)) .forEach(e => { display.push(' - ' + e); }); @@ -159,6 +171,47 @@ export class Changelog { return display.join('\n'); } + + // TODO: add modular + public async postProcess(baselinePackageRoot: string, currentPackageRoot: string, sdkType: SDKType): Promise { + if (sdkType !== SDKType.RestLevelClient) { + logger.warn(`No need to post process changelog for ${sdkType}.`) + return; + } + try { + const tempFolder = join('~/.tmp-breaking-change-detect'); + const messageMap = await detectBreakingChangesBetweenPackages(baselinePackageRoot, currentPackageRoot, tempFolder, false); + switch (sdkType) { + case SDKType.RestLevelClient: + await this.postProcessForRestLevelClient(messageMap); + break; + } + } catch (err) { + throw new Error(`Failed to apply special breaking change rules to ${sdkType}`); + } + } + + private processInlineMessage(messages: InlineDeclarationNameSetMessage[]) { + logger.info('Before post process rename messages in changelog') + logger.info(this.displayChangeLog()); + + if (messages.length !== 1) { + throw new Error(`Multiple inline messages are unsupported`) + } + const postProcesser = new RestLevelClientChangelogPostProcessor(this, messages[0]); + postProcesser.run(); + + logger.info('After post process rename messages in changelog') + logger.info(this.displayChangeLog()); + } + + private async postProcessForRestLevelClient(messageMap: Map) { + // RLC only has 1 api view + const key = Array.from(messageMap.keys())[0] + const messages = messageMap.get(key)! + const inlineMessages = messages.filter(m => m.kind === RuleMessageKind.InlineDeclarationNameSetMessage).map(m => m as InlineDeclarationNameSetMessage) + this.processInlineMessage(inlineMessages) + } } // todo: special rules for HLC convert to Modular, will use a more generic method to replace @@ -174,13 +227,13 @@ function getRenamedOperationGroupFromToMap(from: TSExportedMetaData): { [id: str const findAddedOperationGroup = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData, oldSdkType: SDKType, newSdkType: SDKType -): string[] => { +): ChangelogItem[] => { const newToOldMap = getRenamedOperationGroupFromToMap(metaDataNew); - const addOperationGroup: string[] = []; + const addOperationGroup: ChangelogItem[] = []; Object.keys(metaDataNew.operationInterface).forEach(operationGroup => { const oldName = oldSdkType === newSdkType ? operationGroup : newToOldMap[operationGroup]; if (!metaDataOld.operationInterface[oldName]) { - addOperationGroup.push('Added operation group ' + operationGroup); + addOperationGroup.push({ line: 'Added operation group ' + operationGroup, newName: operationGroup }); } }); return addOperationGroup; @@ -194,9 +247,9 @@ function getAllMethodNameInInterface(interface_: InterfaceDeclaration): Array { +): ChangelogItem[] => { const newToOldMap = getRenamedOperationGroupFromToMap(metaDataNew); - const addOperation: string[] = []; + const addOperation: ChangelogItem[] = []; Object.keys(metaDataNew.operationInterface).forEach(newOperationGroup => { const oldOperationGroup = oldSdkType === newSdkType ? newOperationGroup : newToOldMap[newOperationGroup]; if(!metaDataOld.operationInterface[oldOperationGroup]) { @@ -206,44 +259,44 @@ const findAddedOperation = (metaDataOld: TSExportedMetaData, metaDataNew: TSExpo const oldInterfaceMethodNames = getAllMethodNameInInterface(metaDataOld.operationInterface[oldOperationGroup]); newInterfaceMethodNames .filter(newOpName => !oldInterfaceMethodNames.includes(newOpName)) - .forEach(newOpName => { addOperation.push('Added operation ' + newOperationGroup + '.' + newOpName); }); + .forEach(newOpName => { addOperation.push({ line: 'Added operation ' + newOperationGroup + '.' + newOpName, newName: newOperationGroup }); }); return; }); return addOperation; }; -const findAddedInterface = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): string[] => { - const addInterface: string[] = []; +const findAddedInterface = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): ChangelogItem[] => { + const addInterface: ChangelogItem[] = []; Object.keys(metaDataNew.modelInterface).forEach(model => { if (!metaDataOld.modelInterface[model]) { - addInterface.push('Added Interface ' + model); + addInterface.push({ line: 'Added Interface ' + model, newName: model }); } }); return addInterface; }; -const findAddedClass = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): string[] => { - const addClass: string[] = []; +const findAddedClass = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): ChangelogItem[] => { + const addClass: ChangelogItem[] = []; Object.keys(metaDataNew.classes).forEach(model => { if (!metaDataOld.classes[model]) { - addClass.push('Added Class ' + model); + addClass.push({ line: 'Added Class ' + model, newName: model }); } }); return addClass; }; -const findAddedTypeAlias = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): string[] => { - const addModel: string[] = []; +const findAddedTypeAlias = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): ChangelogItem[] => { + const addModel: ChangelogItem[] = []; Object.keys(metaDataNew.typeAlias).forEach(typeAlias => { if (!metaDataOld.typeAlias[typeAlias]) { - addModel.push('Added Type Alias ' + typeAlias); + addModel.push({ line: 'Added Type Alias ' + typeAlias, newName: typeAlias }); } }); return addModel; }; -const findInterfaceAddOptinalParam = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): string[] => { - const interfaceAddedParam: string[] = []; +const findInterfaceAddOptinalParam = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): ChangelogItem[] => { + const interfaceAddedParam: ChangelogItem[] = []; Object.keys(metaDataNew.modelInterface).forEach(model => { if (metaDataOld.modelInterface[model]) { const modelFromOld = metaDataOld.modelInterface[model] as InterfaceDeclaration; @@ -258,7 +311,7 @@ const findInterfaceAddOptinalParam = (metaDataOld: TSExportedMetaData, metaDataN } }); if (!find) { - interfaceAddedParam.push('Interface ' + model + ' has a new optional parameter ' + pNew.name); + interfaceAddedParam.push({ line: 'Interface ' + model + ' has a new optional parameter ' + pNew.name }); } } }); @@ -267,8 +320,8 @@ const findInterfaceAddOptinalParam = (metaDataOld: TSExportedMetaData, metaDataN return interfaceAddedParam; }; -const findInterfaceParamTypeExtended = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): string[] => { - const interfaceParamTypeExtended: string[] = []; +const findInterfaceParamTypeExtended = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): ChangelogItem[] => { + const interfaceParamTypeExtended: ChangelogItem[] = []; Object.keys(metaDataNew.modelInterface).forEach(model => { if (metaDataOld.modelInterface[model]) { const modelFromOld = metaDataOld.modelInterface[model] as InterfaceDeclaration; @@ -289,7 +342,7 @@ const findInterfaceParamTypeExtended = (metaDataOld: TSExportedMetaData, metaDat } } if (allFind) { - interfaceParamTypeExtended.push(`Type of parameter ${pNew.name} of interface ${model} is changed from ${pOld.type} to ${pNew.type}`); + interfaceParamTypeExtended.push({ line: `Type of parameter ${pNew.name} of interface ${model} is changed from ${pOld.type} to ${pNew.type}`, newName: pNew.type, oldName: pOld.type }); } } } @@ -303,8 +356,8 @@ const findInterfaceParamTypeExtended = (metaDataOld: TSExportedMetaData, metaDat return interfaceParamTypeExtended; }; -const findTypeAliasAddInherit = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): string[] => { - const typeAliasAddInherit: string[] = []; +const findTypeAliasAddInherit = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): ChangelogItem[] => { + const typeAliasAddInherit: ChangelogItem[] = []; Object.keys(metaDataNew.typeAlias).forEach(typeAlias => { if (metaDataOld.typeAlias[typeAlias]) { const typeAliasFromOld = metaDataOld.typeAlias[typeAlias] as TypeAliasDeclaration; @@ -314,18 +367,20 @@ const findTypeAliasAddInherit = (metaDataOld: TSExportedMetaData, metaDataNew: T typeAliasFromNew.type.inherits.forEach(inherit => { if (typeof inherit === 'string') { if (typeAliasFromOld.type instanceof IntersectionDeclaration) { + // strange behavior, 'ClustersUpdateMediaTypesParam_CCC' is in intersection type, but it's in 'inherits' + // export type ClustersUpdateParameters = ClustersUpdateMediaTypesParam_CCC & ClustersUpdateBodyParam & RequestParameters; if (typeAliasFromOld.type.inherits) { if (!typeAliasFromOld.type.inherits.includes(inherit)) { - typeAliasAddInherit.push('Add parameters of ' + inherit + ' to TypeAlias ' + typeAlias); + typeAliasAddInherit.push({ line: 'Add parameters of ' + inherit + ' to TypeAlias ' + typeAlias, newName: inherit }); } } else { - typeAliasAddInherit.push('Add parameters of ' + inherit + ' to TypeAlias ' + typeAlias); + typeAliasAddInherit.push({ line: 'Add parameters of ' + inherit + ' to TypeAlias ' + typeAlias, newName: inherit }); } } else if (typeAliasFromOld.type instanceof TypeLiteralDeclaration) { - typeAliasAddInherit.push('Add parameters of ' + inherit + ' to TypeAlias ' + typeAlias); + typeAliasAddInherit.push({ line: 'Add parameters of ' + inherit + ' to TypeAlias ' + typeAlias, newName: inherit }); } else if (typeof typeAliasFromOld.type === 'string') { if (typeAliasFromOld.type !== inherit) { - typeAliasAddInherit.push('Add parameters of ' + inherit + ' to TypeAlias ' + typeAlias); + typeAliasAddInherit.push({ line: 'Add parameters of ' + inherit + ' to TypeAlias ' + typeAlias, newName: inherit }); } } } @@ -337,8 +392,8 @@ const findTypeAliasAddInherit = (metaDataOld: TSExportedMetaData, metaDataNew: T return typeAliasAddInherit; }; -const findTypeAliasAddParam = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): string[] => { - const typeAliasAddParam: string[] = []; +const findTypeAliasAddParam = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): ChangelogItem[] => { + const typeAliasAddParam: ChangelogItem[] = []; Object.keys(metaDataNew.typeAlias).forEach(typeAlias => { if (metaDataOld.typeAlias[typeAlias]) { const typeAliasFromOld = metaDataOld.typeAlias[typeAlias] as TypeAliasDeclaration; @@ -359,10 +414,10 @@ const findTypeAliasAddParam = (metaDataOld: TSExportedMetaData, metaDataNew: TSE }); }); if (!find) { - typeAliasAddParam.push('Type Alias ' + typeAlias + ' has a new parameter ' + pNew.name); + typeAliasAddParam.push({ line: 'Type Alias ' + typeAlias + ' has a new parameter ' + pNew.name }); } } else { - typeAliasAddParam.push('Type Alias ' + typeAlias + ' has a new parameter ' + pNew.name); + typeAliasAddParam.push({ line: 'Type Alias ' + typeAlias + ' has a new parameter ' + pNew.name }); } } else if (typeAliasFromOld.type instanceof TypeLiteralDeclaration) { let find = false; @@ -372,10 +427,10 @@ const findTypeAliasAddParam = (metaDataOld: TSExportedMetaData, metaDataNew: TSE } }); if (!find) { - typeAliasAddParam.push('Type Alias ' + typeAlias + ' has a new parameter ' + pNew.name); + typeAliasAddParam.push({ line: 'Type Alias ' + typeAlias + ' has a new parameter ' + pNew.name }); } } else if (typeof typeAliasFromOld.type === 'string') { - typeAliasAddParam.push('Type Alias ' + typeAlias + ' has a new parameter ' + pNew.name); + typeAliasAddParam.push({ line: 'Type Alias ' + typeAlias + ' has a new parameter ' + pNew.name }); } }); }); @@ -394,10 +449,10 @@ const findTypeAliasAddParam = (metaDataOld: TSExportedMetaData, metaDataNew: TSE }); }); if (!find) { - typeAliasAddParam.push('Type Alias ' + typeAlias + ' has a new parameter ' + pNew.name); + typeAliasAddParam.push({ line: 'Type Alias ' + typeAlias + ' has a new parameter ' + pNew.name }); } } else { - typeAliasAddParam.push('Type Alias ' + typeAlias + ' has a new parameter ' + pNew.name); + typeAliasAddParam.push({ line: 'Type Alias ' + typeAlias + ' has a new parameter ' + pNew.name }); } } else if (typeAliasFromOld.type instanceof TypeLiteralDeclaration) { let find = false; @@ -407,10 +462,10 @@ const findTypeAliasAddParam = (metaDataOld: TSExportedMetaData, metaDataNew: TSE } }); if (!find) { - typeAliasAddParam.push('Type Alias ' + typeAlias + ' has a new parameter ' + pNew.name); + typeAliasAddParam.push({ line: 'Type Alias ' + typeAlias + ' has a new parameter ' + pNew.name }); } } else if (typeof typeAliasFromOld.type === 'string') { - typeAliasAddParam.push('Type Alias ' + typeAlias + ' has a new parameter ' + pNew.name); + typeAliasAddParam.push({ line: 'Type Alias ' + typeAlias + ' has a new parameter ' + pNew.name }); } }); } @@ -420,25 +475,25 @@ const findTypeAliasAddParam = (metaDataOld: TSExportedMetaData, metaDataNew: TSE return typeAliasAddParam; }; -const findAddedEnum = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): string[] => { - const addedEnum: string[] = []; +const findAddedEnum = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): ChangelogItem[] => { + const addedEnum: ChangelogItem[] = []; Object.keys(metaDataNew.enums).forEach(e => { if (!metaDataOld.enums[e]) { - addedEnum.push('Added Enum ' + e); + addedEnum.push({ line: 'Added Enum ' + e, newName: e }); } }); return addedEnum; }; -const findAddedEnumValue = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): string[] => { - const addedEnumValue: string[] = []; +const findAddedEnumValue = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): ChangelogItem[] => { + const addedEnumValue: ChangelogItem[] = []; Object.keys(metaDataNew.enums).forEach(e => { if (metaDataOld.enums[e]) { const enumOld = metaDataOld.enums[e] as EnumDeclaration; const enumNew = metaDataNew.enums[e] as EnumDeclaration; enumNew.members.forEach(v => { if (!enumOld.members.includes(v)) { - addedEnumValue.push('Enum ' + e + ' has a new value ' + v); + addedEnumValue.push({ line: 'Enum ' + e + ' has a new value ' + v, newName: e }); } }); } @@ -446,11 +501,11 @@ const findAddedEnumValue = (metaDataOld: TSExportedMetaData, metaDataNew: TSExpo return addedEnumValue; }; -const findAddedFunction = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): string[] => { - const addedFunction: string[] = []; +const findAddedFunction = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): ChangelogItem[] => { + const addedFunction: ChangelogItem[] = []; Object.keys(metaDataNew.functions).forEach(e => { if (!metaDataOld.functions[e]) { - addedFunction.push(`Added function ${e}`); + addedFunction.push({ line: `Added function ${e}`, newName: e }); } }); return addedFunction; @@ -459,13 +514,13 @@ const findAddedFunction = (metaDataOld: TSExportedMetaData, metaDataNew: TSExpor const findRemovedOperationGroup = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData, oldSdkType: SDKType, newSdkType: SDKType -): string[] => { +): ChangelogItem[] => { const oldToNew = getRenamedOperationGroupFromToMap(metaDataOld); - const removedOperationGroup: string[] = []; + const removedOperationGroup: ChangelogItem[] = []; Object.keys(metaDataOld.operationInterface).forEach(oldOperationGroup => { const newOperationGroup = oldSdkType === newSdkType ? oldOperationGroup : oldToNew[oldOperationGroup]; if (!metaDataNew.operationInterface[newOperationGroup]) { - removedOperationGroup.push('Removed operation group ' + oldOperationGroup); + removedOperationGroup.push({ line: 'Removed operation group ' + oldOperationGroup, oldName: oldOperationGroup }); } }); return removedOperationGroup; @@ -473,9 +528,9 @@ const findRemovedOperationGroup = (metaDataOld: TSExportedMetaData, metaDataNew: const findRemovedOperation = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData, oldSdkType: SDKType, newSdkType: SDKType -): string[] => { +): ChangelogItem[] => { const oldToNew = getRenamedOperationGroupFromToMap(metaDataOld); - const removedOperation: string[] = []; + const removedOperation: ChangelogItem[] = []; Object.keys(metaDataOld.operationInterface).forEach(oldOperationGroup => { const newOperationGroup = oldSdkType === newSdkType ? oldOperationGroup : oldToNew[oldOperationGroup]; @@ -486,16 +541,16 @@ const findRemovedOperation = (metaDataOld: TSExportedMetaData, metaDataNew: TSEx const oldInterfaceMethodNames = getAllMethodNameInInterface(metaDataOld.operationInterface[oldOperationGroup]); oldInterfaceMethodNames .filter(oldOpName => !newInterfaceMethodNames.includes(oldOpName)) - .forEach(oldOpName => { removedOperation.push('Removed operation ' + oldOperationGroup + '.' + oldOpName); }); + .forEach(oldOpName => { removedOperation.push({ line: 'Removed operation ' + oldOperationGroup + '.' + oldOpName, oldName: oldOpName }); }); return true; }); return removedOperation; }; const findOperationSignatureChange = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData, - oldSdkType: SDKType, newSdkType: SDKType): string[] => { + oldSdkType: SDKType, newSdkType: SDKType): ChangelogItem[] => { const newToOld = getRenamedOperationGroupFromToMap(metaDataNew); - const operationSignatureChange: string[] = []; + const operationSignatureChange: ChangelogItem[] = []; Object.keys(metaDataNew.operationInterface).forEach(newOperationGroup => { const oldOperationGroup = oldSdkType === newSdkType ? newOperationGroup : newToOld[newOperationGroup]; if (!metaDataOld.operationInterface[oldOperationGroup]) { @@ -533,13 +588,13 @@ const findOperationSignatureChange = (metaDataOld: TSExportedMetaData, metaDataN const parametersOld = mOld.parameters; const parametersNew = mNew.parameters; if (parametersNew.length !== parametersOld.length) { - operationSignatureChange.push('Operation ' + newOperationGroup + '.' + mNew.name + ' has a new signature'); + operationSignatureChange.push({ line:'Operation ' + newOperationGroup + '.' + mNew.name + ' has a new signature' }); } else { for (let index = 0; index < parametersNew.length; index++) { const pOld = parametersOld[index]; const pNew = parametersNew[index]; if (pOld.type !== pNew.type || pOld.isOptional !== pNew.isOptional) { - operationSignatureChange.push('Operation ' + newOperationGroup + '.' + mNew.name + ' has a new signature'); + operationSignatureChange.push({ line:'Operation ' + newOperationGroup + '.' + mNew.name + ' has a new signature', newName: pNew.type }); return; } } @@ -553,18 +608,18 @@ const findOperationSignatureChange = (metaDataOld: TSExportedMetaData, metaDataN return operationSignatureChange; }; -const findDeletedClass = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): string[] => { - const deletedClass: string[] = []; +const findDeletedClass = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): ChangelogItem[] => { + const deletedClass: ChangelogItem[] = []; Object.keys(metaDataOld.classes).forEach(model => { if (!metaDataNew.classes[model]) { - deletedClass.push('Deleted Class ' + model); + deletedClass.push({ line: 'Deleted Class ' + model, oldName: model }); } }); return deletedClass; }; -const findClassSignatureChange = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): string[] => { - const classSignatureChange: string[] = []; +const findClassSignatureChange = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): ChangelogItem[] => { + const classSignatureChange: ChangelogItem[] = []; Object.keys(metaDataNew.classes).forEach(model => { if (metaDataOld.classes[model]) { const modelFromOld = metaDataOld.classes[model] as ClassDeclaration; @@ -573,19 +628,23 @@ const findClassSignatureChange = (metaDataOld: TSExportedMetaData, metaDataNew: const constructorNew = modelFromNew.ctor; if (constructorOld === undefined && constructorNew === undefined) return; if (constructorOld === undefined || constructorNew === undefined) { - classSignatureChange.push('Class ' + model + ' has a new signature'); + classSignatureChange.push({ line: 'Class ' + model + ' has a new signature' }); return; } const parametersOld = constructorOld.parameters; const parametersNew = constructorNew.parameters; if (parametersNew.length !== parametersOld.length) { - classSignatureChange.push('Class ' + model + ' has a new signature'); + classSignatureChange.push({ line: 'Class ' + model + ' has a new signature' }); } else { for (let index = 0; index < parametersNew.length; index++) { const pOld = parametersOld[index]; const pNew = parametersNew[index]; - if (pOld.type !== pNew.type || pOld.isOptional !== pNew.isOptional) { - classSignatureChange.push('Class ' + model + ' has a new signature'); + if (pOld.isOptional !== pNew.isOptional) { + classSignatureChange.push({ line: 'Class ' + model + ' has a new signature' }); + return; + } + if (pOld.type !== pNew.type) { + classSignatureChange.push({ line: 'Class ' + model + ' has a new signature', oldName: pOld.type, newName: pNew.type }); return; } } @@ -595,8 +654,8 @@ const findClassSignatureChange = (metaDataOld: TSExportedMetaData, metaDataNew: return classSignatureChange; }; -const findInterfaceParamDelete = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): string[] => { - const interfaceDeleteParam: string[] = []; +const findInterfaceParamDelete = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): ChangelogItem[] => { + const interfaceDeleteParam: ChangelogItem[] = []; Object.keys(metaDataNew.modelInterface).forEach(model => { if (metaDataOld.modelInterface[model]) { const modelFromOld = metaDataOld.modelInterface[model] as InterfaceDeclaration; @@ -623,7 +682,7 @@ const findInterfaceParamDelete = (metaDataOld: TSExportedMetaData, metaDataNew: }); } if (!find) { - interfaceDeleteParam.push('Interface ' + model + ' no longer has parameter ' + pOld.name); + interfaceDeleteParam.push({ line: 'Interface ' + model + ' no longer has parameter ' + pOld.name, oldName: pOld.name}); } }); } @@ -631,8 +690,8 @@ const findInterfaceParamDelete = (metaDataOld: TSExportedMetaData, metaDataNew: return interfaceDeleteParam; }; -const findInterfaceParamAddRequired = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): string[] => { - const interfaceAddedParam: string[] = []; +const findInterfaceParamAddRequired = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): ChangelogItem[] => { + const interfaceAddedParam: ChangelogItem[] = []; Object.keys(metaDataNew.modelInterface).forEach(model => { if (metaDataOld.modelInterface[model]) { const modelFromOld = metaDataOld.modelInterface[model] as InterfaceDeclaration; @@ -647,7 +706,7 @@ const findInterfaceParamAddRequired = (metaDataOld: TSExportedMetaData, metaData } }); if (!find) { - interfaceAddedParam.push('Interface ' + model + ' has a new required parameter ' + pNew.name); + interfaceAddedParam.push({ line: 'Interface ' + model + ' has a new required parameter ' + pNew.name, newName: '?????' }); } } }); @@ -656,8 +715,8 @@ const findInterfaceParamAddRequired = (metaDataOld: TSExportedMetaData, metaData return interfaceAddedParam; }; -const findInterfaceParamChangeRequired = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): string[] => { - const interfaceParamChangeRequired: string[] = []; +const findInterfaceParamChangeRequired = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): ChangelogItem[] => { + const interfaceParamChangeRequired: ChangelogItem[] = []; Object.keys(metaDataNew.modelInterface).forEach(model => { if (metaDataOld.modelInterface[model]) { const modelFromOld = metaDataOld.modelInterface[model] as InterfaceDeclaration; @@ -667,7 +726,7 @@ const findInterfaceParamChangeRequired = (metaDataOld: TSExportedMetaData, metaD modelFromOld.properties.forEach(pOld => { if (pNew.name === pOld.name) { if (pOld.isOptional) { - interfaceParamChangeRequired.push('Parameter ' + pNew.name + ' of interface ' + model + ' is now required'); + interfaceParamChangeRequired.push({ line: 'Parameter ' + pNew.name + ' of interface ' + model + ' is now required' }); } return; } @@ -679,8 +738,8 @@ const findInterfaceParamChangeRequired = (metaDataOld: TSExportedMetaData, metaD return interfaceParamChangeRequired; }; -const findInterfaceParamTypeChanged = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): string[] => { - const interfaceParamTypeChanged: string[] = []; +const findInterfaceParamTypeChanged = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): ChangelogItem[] => { + const interfaceParamTypeChanged: ChangelogItem[] = []; Object.keys(metaDataNew.modelInterface).forEach(model => { if (metaDataOld.modelInterface[model]) { const modelFromOld = metaDataOld.modelInterface[model] as InterfaceDeclaration; @@ -695,13 +754,13 @@ const findInterfaceParamTypeChanged = (metaDataOld: TSExportedMetaData, metaData if (!!newTypes && !!oldTypes) { for (const t of oldTypes) { if (!newTypes.includes(t)) { - interfaceParamTypeChanged.push(`Type of parameter ${pNew.name} of interface ${model} is changed from ${pOld.type} to ${pNew.type}`); + interfaceParamTypeChanged.push({ line: `Type of parameter ${pNew.name} of interface ${model} is changed from ${pOld.type} to ${pNew.type}`, oldName: pOld.type, newName: pNew.type }); break; } } } } else { - interfaceParamTypeChanged.push(`Type of parameter ${pNew.name} of interface ${model} is changed from ${pOld.type} to ${pNew.type}`); + interfaceParamTypeChanged.push({ line: `Type of parameter ${pNew.name} of interface ${model} is changed from ${pOld.type} to ${pNew.type}`, oldName: pOld.type, newName: pNew.type }); } } return; @@ -713,8 +772,8 @@ const findInterfaceParamTypeChanged = (metaDataOld: TSExportedMetaData, metaData return interfaceParamTypeChanged; }; -const findClassParamDelete = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): string[] => { - const classDeleteParam: string[] = []; +const findClassParamDelete = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): ChangelogItem[] => { + const classDeleteParam: ChangelogItem[] = []; Object.keys(metaDataNew.classes).forEach(model => { if (metaDataOld.classes[model]) { const modelFromOld = metaDataOld.classes[model] as ClassDeclaration; @@ -728,7 +787,7 @@ const findClassParamDelete = (metaDataOld: TSExportedMetaData, metaDataNew: TSEx } }); if (!find) { - classDeleteParam.push('Class ' + model + ' no longer has parameter ' + pOld.name); + classDeleteParam.push({ line: 'Class ' + model + ' no longer has parameter ' + pOld.name }); } }); } @@ -736,8 +795,8 @@ const findClassParamDelete = (metaDataOld: TSExportedMetaData, metaDataNew: TSEx return classDeleteParam; }; -const findClassParamChangeRequired = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): string[] => { - const classParamChangeRequired: string[] = []; +const findClassParamChangeRequired = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): ChangelogItem[] => { + const classParamChangeRequired: ChangelogItem[] = []; Object.keys(metaDataNew.classes).forEach(model => { if (metaDataOld.classes[model]) { const modelFromOld = metaDataOld.classes[model] as ClassDeclaration; @@ -747,7 +806,7 @@ const findClassParamChangeRequired = (metaDataOld: TSExportedMetaData, metaDataN modelFromOld.properties.forEach(pOld => { if (pNew.name === pOld.name) { if (pOld.isOptional) { - classParamChangeRequired.push('Parameter ' + pNew.name + ' of class ' + model + ' is now required'); + classParamChangeRequired.push({ line: 'Parameter ' + pNew.name + ' of class ' + model + ' is now required' }); } return; } @@ -759,8 +818,8 @@ const findClassParamChangeRequired = (metaDataOld: TSExportedMetaData, metaDataN return classParamChangeRequired; }; -const findTypeAliasDeleteInherit = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): string[] => { - const typeAliasDeleteInherit: string[] = []; +const findTypeAliasDeleteInherit = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): ChangelogItem[] => { + const typeAliasDeleteInherit: ChangelogItem[] = []; Object.keys(metaDataNew.typeAlias).forEach(typeAlias => { if (metaDataOld.typeAlias[typeAlias]) { const typeAliasFromOld = metaDataOld.typeAlias[typeAlias] as TypeAliasDeclaration; @@ -772,16 +831,16 @@ const findTypeAliasDeleteInherit = (metaDataOld: TSExportedMetaData, metaDataNew if (typeAliasFromNew.type instanceof IntersectionDeclaration) { if (typeAliasFromNew.type.inherits) { if (!typeAliasFromNew.type.inherits.includes(inherit)) { - typeAliasDeleteInherit.push('Delete parameters of ' + inherit + ' in TypeAlias ' + typeAlias); + typeAliasDeleteInherit.push({ line: 'Delete parameters of ' + inherit + ' in TypeAlias ' + typeAlias, oldName: inherit }); } } else { - typeAliasDeleteInherit.push('Delete parameters of ' + inherit + ' in TypeAlias ' + typeAlias); + typeAliasDeleteInherit.push({ line: 'Delete parameters of ' + inherit + ' in TypeAlias ' + typeAlias, oldName: inherit }); } } else if (typeAliasFromNew.type instanceof TypeLiteralDeclaration) { - typeAliasDeleteInherit.push('Delete parameters of ' + inherit + ' in TypeAlias ' + typeAlias); + typeAliasDeleteInherit.push({ line: 'Delete parameters of ' + inherit + ' in TypeAlias ' + typeAlias, oldName: inherit }); } else if (typeof typeAliasFromNew.type === 'string') { if (typeAliasFromNew.type !== inherit) { - typeAliasDeleteInherit.push('Delete parameters of ' + inherit + ' in TypeAlias ' + typeAlias); + typeAliasDeleteInherit.push({ line: 'Delete parameters of ' + inherit + ' in TypeAlias ' + typeAlias, oldName: inherit }); } } } @@ -793,8 +852,8 @@ const findTypeAliasDeleteInherit = (metaDataOld: TSExportedMetaData, metaDataNew return typeAliasDeleteInherit; }; -const findTypeAliasDeleteParam = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): string[] => { - const typeAliasDeleteParam: string[] = []; +const findTypeAliasDeleteParam = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): ChangelogItem[] => { + const typeAliasDeleteParam: ChangelogItem[] = []; Object.keys(metaDataNew.typeAlias).forEach(typeAlias => { if (metaDataOld.typeAlias[typeAlias]) { const typeAliasFromOld = metaDataOld.typeAlias[typeAlias] as TypeAliasDeclaration; @@ -826,10 +885,10 @@ const findTypeAliasDeleteParam = (metaDataOld: TSExportedMetaData, metaDataNew: }) } if (!find) { - typeAliasDeleteParam.push('Type Alias ' + typeAlias + ' no longer has parameter ' + pOld.name); + typeAliasDeleteParam.push({ line: 'Type Alias ' + typeAlias + ' no longer has parameter ' + pOld.name }); } } else { - typeAliasDeleteParam.push('Type Alias ' + typeAlias + ' no longer has parameter ' + pOld.name); + typeAliasDeleteParam.push({ line: 'Type Alias ' + typeAlias + ' no longer has parameter ' + pOld.name }); } } else if (typeAliasFromNew.type instanceof TypeLiteralDeclaration) { let find = false; @@ -839,10 +898,10 @@ const findTypeAliasDeleteParam = (metaDataOld: TSExportedMetaData, metaDataNew: } }); if (!find) { - typeAliasDeleteParam.push('Type Alias ' + typeAlias + ' no longer has parameter ' + pOld.name); + typeAliasDeleteParam.push({ line: 'Type Alias ' + typeAlias + ' no longer has parameter ' + pOld.name }); } } else if (typeof typeAliasFromNew.type === 'string') { - typeAliasDeleteParam.push('Type Alias ' + typeAlias + ' no longer has parameter ' + pOld.name); + typeAliasDeleteParam.push({ line: 'Type Alias ' + typeAlias + ' no longer has parameter ' + pOld.name }); } }); }); @@ -860,10 +919,10 @@ const findTypeAliasDeleteParam = (metaDataOld: TSExportedMetaData, metaDataNew: }); }); if (!find) { - typeAliasDeleteParam.push('Type Alias ' + typeAlias + ' has a new parameter ' + pOld.name); + typeAliasDeleteParam.push({ line: 'Type Alias ' + typeAlias + ' has a new parameter ' + pOld.name }); } } else { - typeAliasDeleteParam.push('Type Alias ' + typeAlias + ' has a new parameter ' + pOld.name); + typeAliasDeleteParam.push({ line: 'Type Alias ' + typeAlias + ' has a new parameter ' + pOld.name }); } } else if (typeAliasFromNew.type instanceof TypeLiteralDeclaration) { let find = false; @@ -873,10 +932,10 @@ const findTypeAliasDeleteParam = (metaDataOld: TSExportedMetaData, metaDataNew: } }); if (!find) { - typeAliasDeleteParam.push('Type Alias ' + typeAlias + ' has a new parameter ' + pOld.name); + typeAliasDeleteParam.push({ line: 'Type Alias ' + typeAlias + ' has a new parameter ' + pOld.name }); } } else if (typeof typeAliasFromNew.type === 'string') { - typeAliasDeleteParam.push('Type Alias ' + typeAlias + ' has a new parameter ' + pOld.name); + typeAliasDeleteParam.push({ line: 'Type Alias ' + typeAlias + ' has a new parameter ' + pOld.name }); } }); } @@ -886,8 +945,8 @@ const findTypeAliasDeleteParam = (metaDataOld: TSExportedMetaData, metaDataNew: return typeAliasDeleteParam; }; -const findTypeAliasAddRequiredParam = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): string[] => { - const typeAliasAddRequiredParam: string[] = []; +const findTypeAliasAddRequiredParam = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): ChangelogItem[] => { + const typeAliasAddRequiredParam: ChangelogItem[] = []; Object.keys(metaDataNew.typeAlias).forEach(typeAlias => { if (metaDataOld.typeAlias[typeAlias]) { const typeAliasFromOld = metaDataOld.typeAlias[typeAlias] as TypeAliasDeclaration; @@ -908,10 +967,10 @@ const findTypeAliasAddRequiredParam = (metaDataOld: TSExportedMetaData, metaData }); }); if (!find) { - typeAliasAddRequiredParam.push('Type Alias ' + typeAlias + ' has a new parameter ' + pNew.name); + typeAliasAddRequiredParam.push({ line: 'Type Alias ' + typeAlias + ' has a new parameter ' + pNew.name }); } } else { - typeAliasAddRequiredParam.push('Type Alias ' + typeAlias + ' has a new parameter ' + pNew.name); + typeAliasAddRequiredParam.push({ line: 'Type Alias ' + typeAlias + ' has a new parameter ' + pNew.name }); } } else if (typeAliasFromOld.type instanceof TypeLiteralDeclaration) { let find = false; @@ -921,10 +980,10 @@ const findTypeAliasAddRequiredParam = (metaDataOld: TSExportedMetaData, metaData } }); if (!find) { - typeAliasAddRequiredParam.push('Type Alias ' + typeAlias + ' has a new parameter ' + pNew.name); + typeAliasAddRequiredParam.push({ line: 'Type Alias ' + typeAlias + ' has a new parameter ' + pNew.name }); } } else if (typeof typeAliasFromOld.type === 'string') { - typeAliasAddRequiredParam.push('Type Alias ' + typeAlias + ' has a new parameter ' + pNew.name); + typeAliasAddRequiredParam.push({ line: 'Type Alias ' + typeAlias + ' has a new parameter ' + pNew.name }); } }); }); @@ -943,10 +1002,10 @@ const findTypeAliasAddRequiredParam = (metaDataOld: TSExportedMetaData, metaData }); }); if (!find) { - typeAliasAddRequiredParam.push('Type Alias ' + typeAlias + ' has a new parameter ' + pNew.name); + typeAliasAddRequiredParam.push({ line: 'Type Alias ' + typeAlias + ' has a new parameter ' + pNew.name }); } } else { - typeAliasAddRequiredParam.push('Type Alias ' + typeAlias + ' has a new parameter ' + pNew.name); + typeAliasAddRequiredParam.push({ line: 'Type Alias ' + typeAlias + ' has a new parameter ' + pNew.name }); } } else if (typeAliasFromOld.type instanceof TypeLiteralDeclaration) { let find = false; @@ -956,10 +1015,10 @@ const findTypeAliasAddRequiredParam = (metaDataOld: TSExportedMetaData, metaData } }); if (!find) { - typeAliasAddRequiredParam.push('Type Alias ' + typeAlias + ' has a new parameter ' + pNew.name); + typeAliasAddRequiredParam.push({ line: 'Type Alias ' + typeAlias + ' has a new parameter ' + pNew.name }); } } else if (typeof typeAliasFromOld.type === 'string') { - typeAliasAddRequiredParam.push('Type Alias ' + typeAlias + ' has a new parameter ' + pNew.name); + typeAliasAddRequiredParam.push({ line: 'Type Alias ' + typeAlias + ' has a new parameter ' + pNew.name }); } }); } @@ -969,8 +1028,8 @@ const findTypeAliasAddRequiredParam = (metaDataOld: TSExportedMetaData, metaData return typeAliasAddRequiredParam; }; -const findTypeAliasParamChangeRequired = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): string[] => { - const typeAliasParamChangeRequired: string[] = []; +const findTypeAliasParamChangeRequired = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): ChangelogItem[] => { + const typeAliasParamChangeRequired: ChangelogItem[] = []; Object.keys(metaDataNew.typeAlias).forEach(typeAlias => { if (metaDataOld.typeAlias[typeAlias]) { const typeAliasFromOld = metaDataOld.typeAlias[typeAlias] as TypeAliasDeclaration; @@ -985,7 +1044,7 @@ const findTypeAliasParamChangeRequired = (metaDataOld: TSExportedMetaData, metaD typeAliasFromOld.type.typeLiteralDeclarations.forEach(typeLiteralDeclarationOld => { typeLiteralDeclarationOld.properties.forEach(pOld => { if (pNew.name === pOld.name && pOld.isOptional) { - typeAliasParamChangeRequired.push('Parameter ' + pNew.name + ' of Type Alias ' + typeAlias + ' is now required'); + typeAliasParamChangeRequired.push({ line: 'Parameter ' + pNew.name + ' of Type Alias ' + typeAlias + ' is now required' }); } }); }); @@ -993,7 +1052,7 @@ const findTypeAliasParamChangeRequired = (metaDataOld: TSExportedMetaData, metaD } else if (typeAliasFromOld.type instanceof TypeLiteralDeclaration) { typeAliasFromOld.type.properties.forEach(pOld => { if (pNew.name === pOld.name && pOld.isOptional) { - typeAliasParamChangeRequired.push('Parameter ' + pNew.name + ' of Type Alias ' + typeAlias + ' is now required'); + typeAliasParamChangeRequired.push({ line: 'Parameter ' + pNew.name + ' of Type Alias ' + typeAlias + ' is now required' }); } }); } @@ -1007,7 +1066,7 @@ const findTypeAliasParamChangeRequired = (metaDataOld: TSExportedMetaData, metaD typeAliasFromOld.type.typeLiteralDeclarations.forEach(typeLiteralDeclarationOld => { typeLiteralDeclarationOld.properties.forEach(pOld => { if (pNew.name === pOld.name && pOld.isOptional) { - typeAliasParamChangeRequired.push('Parameter ' + pNew.name + ' of Type Alias ' + typeAlias + ' is now required'); + typeAliasParamChangeRequired.push({ line: 'Parameter ' + pNew.name + ' of Type Alias ' + typeAlias + ' is now required' }); } }); }); @@ -1015,7 +1074,7 @@ const findTypeAliasParamChangeRequired = (metaDataOld: TSExportedMetaData, metaD } else if (typeAliasFromOld.type instanceof TypeLiteralDeclaration) { typeAliasFromOld.type.properties.forEach(pOld => { if (pNew.name === pOld.name && pOld.isOptional) { - typeAliasParamChangeRequired.push('Parameter ' + pNew.name + ' of Type Alias ' + typeAlias + ' is now required'); + typeAliasParamChangeRequired.push({ line: 'Parameter ' + pNew.name + ' of Type Alias ' + typeAlias + ' is now required' }); } }); } @@ -1027,25 +1086,25 @@ const findTypeAliasParamChangeRequired = (metaDataOld: TSExportedMetaData, metaD return typeAliasParamChangeRequired; }; -const findRemovedEnum = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): string[] => { - const removedEnum: string[] = []; +const findRemovedEnum = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): ChangelogItem[] => { + const removedEnum: ChangelogItem[] = []; Object.keys(metaDataOld.enums).forEach(e => { if (!metaDataNew.enums[e]) { - removedEnum.push('Removed Enum ' + e); + removedEnum.push({ line: 'Removed Enum ' + e }); } }); return removedEnum; }; -const findRemovedEnumValue = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): string[] => { - const removedEnumValue: string[] = []; +const findRemovedEnumValue = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): ChangelogItem[] => { + const removedEnumValue: ChangelogItem[] = []; Object.keys(metaDataNew.enums).forEach(e => { if (metaDataOld.enums[e]) { const enumOld = metaDataOld.enums[e] as EnumDeclaration; const enumNew = metaDataNew.enums[e] as EnumDeclaration; enumOld.members.forEach(v => { if (!enumNew.members.includes(v)) { - removedEnumValue.push('Enum ' + e + ' no longer has value ' + v); + removedEnumValue.push({ line: 'Enum ' + e + ' no longer has value ' + v }); } }); } @@ -1053,11 +1112,11 @@ const findRemovedEnumValue = (metaDataOld: TSExportedMetaData, metaDataNew: TSEx return removedEnumValue; }; -const findRemovedFunction = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): string[] => { - const removedFunction: string[] = []; +const findRemovedFunction = (metaDataOld: TSExportedMetaData, metaDataNew: TSExportedMetaData): ChangelogItem[] => { + const removedFunction: ChangelogItem[] = []; Object.keys(metaDataOld.functions).forEach(e => { if (!metaDataNew.functions[e]) { - removedFunction.push('Removed function ' + e); + removedFunction.push({ line: 'Removed function ' + e, oldName: e}); } }); return removedFunction; diff --git a/tools/js-sdk-release-tools/src/common/interfaces.ts b/tools/js-sdk-release-tools/src/common/interfaces.ts index 165579494f6..ba29411b3d4 100644 --- a/tools/js-sdk-release-tools/src/common/interfaces.ts +++ b/tools/js-sdk-release-tools/src/common/interfaces.ts @@ -1,5 +1,5 @@ import { ApiVersionType } from "./types"; export interface IApiVersionTypeExtractor { - (packageRoot: string): ApiVersionType; + (packageRoot: string): Promise; } \ No newline at end of file diff --git a/tools/js-sdk-release-tools/src/common/utils.ts b/tools/js-sdk-release-tools/src/common/utils.ts index f3b855d9b0f..ba700b3eb1c 100644 --- a/tools/js-sdk-release-tools/src/common/utils.ts +++ b/tools/js-sdk-release-tools/src/common/utils.ts @@ -47,6 +47,10 @@ export function getClassicClientParametersPath(packageRoot: string): string { export function getSDKType(packageRoot: string): SDKType { const paraPath = getClassicClientParametersPath(packageRoot); + const packageName = getNpmPackageName(packageRoot); + if (packageName.startsWith('@azure-rest/')) { + return SDKType.RestLevelClient; + } const exist = shell.test('-e', paraPath); const type = exist ? SDKType.HighLevelClient : SDKType.ModularClient; logger.info(`SDK type '${type}' is detected in '${packageRoot}'.`); diff --git a/tools/js-sdk-release-tools/src/hlc/apiVersion/apiVersionTypeExtractor.ts b/tools/js-sdk-release-tools/src/hlc/apiVersion/apiVersionTypeExtractor.ts index 31c6b0a641e..ca600fd5f86 100644 --- a/tools/js-sdk-release-tools/src/hlc/apiVersion/apiVersionTypeExtractor.ts +++ b/tools/js-sdk-release-tools/src/hlc/apiVersion/apiVersionTypeExtractor.ts @@ -3,7 +3,7 @@ import { IApiVersionTypeExtractor } from "../../common/interfaces"; import { getClassicClientParametersPath, getTsSourceFile } from "../../common/utils"; // TODO: add unit test -export const getApiVersionType: IApiVersionTypeExtractor = (packageRoot: string): ApiVersionType => { +export const getApiVersionType: IApiVersionTypeExtractor = async (packageRoot: string): Promise => { const paraPath = getClassicClientParametersPath(packageRoot); const source = getTsSourceFile(paraPath); const variableDeclarations = source?.getVariableDeclarations(); diff --git a/tools/js-sdk-release-tools/src/hlc/utils/automaticGenerateChangeLogAndBumpVersion.ts b/tools/js-sdk-release-tools/src/hlc/utils/automaticGenerateChangeLogAndBumpVersion.ts index 0eacc791141..86fa412200e 100644 --- a/tools/js-sdk-release-tools/src/hlc/utils/automaticGenerateChangeLogAndBumpVersion.ts +++ b/tools/js-sdk-release-tools/src/hlc/utils/automaticGenerateChangeLogAndBumpVersion.ts @@ -20,14 +20,14 @@ import { } from "../../utils/version"; import { execSync } from "child_process"; import { getversionDate } from "../../utils/version"; -import { ApiVersionType } from "../../common/types" +import { ApiVersionType, SDKType } from "../../common/types" import { getApiVersionType } from '../../xlc/apiVersion/apiVersionTypeExtractor' import { fixChangelogFormat, getApiReviewPath, getNpmPackageName, getSDKType, tryReadNpmPackageChangelog } from '../../common/utils'; export async function generateChangelogAndBumpVersion(packageFolderPath: string) { const jsSdkRepoPath = String(shell.pwd()); packageFolderPath = path.join(jsSdkRepoPath, packageFolderPath); - const ApiType = getApiVersionType(packageFolderPath); + const ApiType = await getApiVersionType(packageFolderPath); const isStableRelease = ApiType != ApiVersionType.Preview; const packageName = getNpmPackageName(packageFolderPath); const npm = new NPMScope({ executionFolderPath: packageFolderPath }); @@ -57,7 +57,8 @@ export async function generateChangelogAndBumpVersion(packageFolderPath: string) // only track2 sdk includes sdk-type with value mgmt const sdkType = JSON.parse(fs.readFileSync(path.join(packageFolderPath, 'changelog-temp', 'package', 'package.json'), {encoding: 'utf-8'}))['sdk-type']; - if (sdkType && sdkType === 'mgmt') { + const clientType = getSDKType(packageFolderPath); + if (sdkType && sdkType === 'mgmt' || clientType === SDKType.RestLevelClient) { logger.info(`Package ${packageName} released before is track2 sdk.`); logger.info('Start to generate changelog by comparing api.md.'); const npmPackageRoot = path.join(packageFolderPath, 'changelog-temp', 'package'); @@ -100,6 +101,7 @@ export async function generateChangelogAndBumpVersion(packageFolderPath: string) } makeChangesForPatchReleasingTrack2(packageFolderPath, newVersion); } else { + await changelog.postProcess(npmPackageRoot, packageFolderPath, clientType) const newVersion = getNewVersion(stableVersion, usedVersions, changelog.hasBreakingChange, isStableRelease); makeChangesForReleasingTrack2(packageFolderPath, newVersion, changelog, originalChangeLogContent,stableVersion); logger.info('Generated changelogs and set version for track2 release successfully.'); diff --git a/tools/js-sdk-release-tools/src/llc/apiVersion/apiVersionTypeExtractor.ts b/tools/js-sdk-release-tools/src/llc/apiVersion/apiVersionTypeExtractor.ts new file mode 100644 index 00000000000..b643fa32346 --- /dev/null +++ b/tools/js-sdk-release-tools/src/llc/apiVersion/apiVersionTypeExtractor.ts @@ -0,0 +1,20 @@ +import { findParametersPath, getApiVersionTypeFromOperations, getApiVersionTypeFromRestClient, tryFindRestClientPath } from "../../xlc/apiVersion/utils"; + +import { ApiVersionType } from "../../common/types"; +import { IApiVersionTypeExtractor } from "../../common/interfaces"; + +export const getApiVersionType: IApiVersionTypeExtractor = async ( + packageRoot: string +): Promise => { + let clientPattern = "src/*Context.ts"; + let typeFromClient = await getApiVersionTypeFromRestClient(packageRoot, clientPattern, tryFindRestClientPath); + if (typeFromClient !== ApiVersionType.None) return typeFromClient; + + clientPattern = "src/*Client.ts"; + typeFromClient = await getApiVersionTypeFromRestClient(packageRoot, clientPattern, tryFindRestClientPath); + if (typeFromClient !== ApiVersionType.None) return typeFromClient; + + const typeFromOperations = getApiVersionTypeFromOperations(packageRoot, clientPattern, findParametersPath); + if (typeFromOperations !== ApiVersionType.None) return typeFromOperations; + return ApiVersionType.Stable; +}; diff --git a/tools/js-sdk-release-tools/src/mlc/apiVersion/apiVersionTypeExtractor.ts b/tools/js-sdk-release-tools/src/mlc/apiVersion/apiVersionTypeExtractor.ts index d03678606b9..591c0f70e5b 100644 --- a/tools/js-sdk-release-tools/src/mlc/apiVersion/apiVersionTypeExtractor.ts +++ b/tools/js-sdk-release-tools/src/mlc/apiVersion/apiVersionTypeExtractor.ts @@ -1,135 +1,19 @@ -import { SourceFile, SyntaxKind } from "ts-morph"; -import shell from "shelljs"; -import path from "path"; -import * as ts from "typescript"; - import { ApiVersionType } from "../../common/types"; import { IApiVersionTypeExtractor } from "../../common/interfaces"; -import { getTsSourceFile } from "../../common/utils"; -import { readFileSync } from "fs"; - -const findRestClientPath = (packageRoot: string): string => { - const restPath = path.join(packageRoot, "src/rest/"); - const fileNames = shell.ls(restPath); - const clientFiles = fileNames.filter((f) => f.endsWith("Client.ts")); - if (clientFiles.length !== 1) - throw new Error(`Single client is supported, but found "${clientFiles}" in ${restPath}`); - - const clientPath = path.join(restPath, clientFiles[0]); - return clientPath; -}; - -const findApiVersionInRestClientV1 = ( - clientPath: string -): string | undefined => { - const sourceFile = getTsSourceFile(clientPath); - const createClientFunction = sourceFile?.getFunction("createClient"); - if (!createClientFunction) - throw new Error("Function 'createClient' not found."); - - const apiVersionStatements = createClientFunction - .getStatements() - .filter((s) => s.getText().includes("options.apiVersion")); - if (apiVersionStatements.length === 0) { - return undefined; - } - const text = - apiVersionStatements[apiVersionStatements.length - 1].getText(); - return extractApiVersionFromText(text); -}; - -const extractApiVersionFromText = (text: string): string | undefined => { - const begin = text.indexOf('"'); - const end = text.lastIndexOf('"'); - return text.substring(begin + 1, end); -}; - -// new ways in @autorest/typespec-ts emitter to set up api-version -const findApiVersionInRestClientV2 = (clientPath: string): string | undefined => { - const sourceCode= readFileSync(clientPath, {encoding: 'utf-8'}) - const sourceFile = ts.createSourceFile("example.ts", sourceCode, ts.ScriptTarget.Latest, true); - const createClientFunction = sourceFile.statements.filter(s => (s as ts.FunctionDeclaration)?.name?.escapedText === 'createClient').map(s => (s as ts.FunctionDeclaration))[0]; - let apiVersion: string | undefined = undefined; - createClientFunction.parameters.forEach(p => { - const isBindingPattern = node => node && typeof node === "object" && "elements" in node && "parent" in node && "kind" in node; - if (!isBindingPattern(p.name)) { - return; - } - const binding = p.name as ts.ObjectBindingPattern; - const apiVersionTexts = binding.elements?.filter(e => (e.name as ts.Identifier)?.escapedText === "apiVersion").map(e => e.initializer?.getText()); - // apiVersionTexts.length must be 0 or 1, otherwise the binding pattern contains the same keys, which causes a ts error - if (apiVersionTexts.length === 1 && apiVersionTexts[0]) { - apiVersion = extractApiVersionFromText(apiVersionTexts[0]); - } - }); - return apiVersion; -}; +import { findParametersPath, getApiVersionTypeFromOperations, getApiVersionTypeFromRestClient, tryFindRestClientPath } from "../../xlc/apiVersion/utils"; -// workaround for createClient function changes it's way to setup api-version -export const findApiVersionInRestClient = (clientPath: string): string | undefined => { - const version2 = findApiVersionInRestClientV2(clientPath); - if (version2) { - return version2; - } - const version1 = findApiVersionInRestClientV1(clientPath); - return version1; -}; - -const getApiVersionTypeFromRestClient: IApiVersionTypeExtractor = ( +export const getApiVersionType: IApiVersionTypeExtractor = async ( packageRoot: string -): ApiVersionType => { - const clientPath = findRestClientPath(packageRoot); - const apiVersion = findApiVersionInRestClient(clientPath); - if (apiVersion && apiVersion.indexOf("-preview") >= 0) - return ApiVersionType.Preview; - if (apiVersion && apiVersion.indexOf("-preview") < 0) - return ApiVersionType.Stable; - return ApiVersionType.None; -}; - -const findApiVersionsInOperations = ( - sourceFile: SourceFile | undefined -): Array | undefined => { - const interfaces = sourceFile?.getInterfaces(); - const interfacesWithApiVersion = interfaces?.filter((itf) => - itf.getProperty('"api-version"') - ); - const apiVersions = interfacesWithApiVersion?.map((itf) => { - const property = itf.getMembers().filter((m) => { - const defaultValue = m.getChildrenOfKind( - SyntaxKind.StringLiteral - )[0]; - return defaultValue && defaultValue.getText() === '"api-version"'; - })[0]; - const apiVersion = property - .getChildrenOfKind(SyntaxKind.LiteralType)[0] - .getText(); - return apiVersion; - }); - return apiVersions; -}; - -const getApiVersionTypeFromOperations: IApiVersionTypeExtractor = ( - packageRoot: string -): ApiVersionType => { - const paraPath = path.join(packageRoot, "src/rest/parameters.ts"); - const sourceFile = getTsSourceFile(paraPath); - const apiVersions = findApiVersionsInOperations(sourceFile); - if (!apiVersions) return ApiVersionType.None; - const previewVersions = apiVersions.filter( - (v) => v.indexOf("-preview") >= 0 - ); - return previewVersions.length > 0 - ? ApiVersionType.Preview - : ApiVersionType.Stable; -}; +): Promise => { + let clientPattern = "src/api/*Context.ts"; + let typeFromClient = await getApiVersionTypeFromRestClient(packageRoot, clientPattern, tryFindRestClientPath); + if (typeFromClient !== ApiVersionType.None) return typeFromClient; -export const getApiVersionType: IApiVersionTypeExtractor = ( - packageRoot: string -): ApiVersionType => { - const typeFromClient = getApiVersionTypeFromRestClient(packageRoot); + clientPattern = "src/rest/*Client.ts"; + typeFromClient = await getApiVersionTypeFromRestClient(packageRoot, clientPattern, tryFindRestClientPath); if (typeFromClient !== ApiVersionType.None) return typeFromClient; - const typeFromOperations = getApiVersionTypeFromOperations(packageRoot); + + const typeFromOperations = getApiVersionTypeFromOperations(packageRoot, clientPattern, findParametersPath); if (typeFromOperations !== ApiVersionType.None) return typeFromOperations; return ApiVersionType.Stable; }; diff --git a/tools/js-sdk-release-tools/src/test/apiVersion/apiVersionExtractor.test.ts b/tools/js-sdk-release-tools/src/test/apiVersion/apiVersionExtractor.test.ts index 2788820487b..bac8f4dfa52 100644 --- a/tools/js-sdk-release-tools/src/test/apiVersion/apiVersionExtractor.test.ts +++ b/tools/js-sdk-release-tools/src/test/apiVersion/apiVersionExtractor.test.ts @@ -1,7 +1,9 @@ -import { expect, test } from "vitest"; -import { findApiVersionInRestClient, getApiVersionType } from "../../mlc/apiVersion/apiVersionTypeExtractor"; +import { describe, expect, test } from "vitest"; +import { getApiVersionType } from "../../mlc/apiVersion/apiVersionTypeExtractor"; +import { getApiVersionType as getApiVersionTypeInRLC } from "../../llc/apiVersion/apiVersionTypeExtractor"; import { join } from "path"; import { ApiVersionType } from "../../common/types"; +import { findApiVersionInRestClient } from "../../xlc/apiVersion/utils"; test("MLC api-version Extractor: new createClient function", async () => { const clientPath = join(__dirname, 'testCases/new/src/rest/newClient.ts'); @@ -11,7 +13,7 @@ test("MLC api-version Extractor: new createClient function", async () => { test("MLC api-version Extractor: get api version type from new createClient function", async () => { const root = join(__dirname, 'testCases/new/'); - const version = getApiVersionType(root); + const version = await getApiVersionType(root); expect(version).toBe(ApiVersionType.Preview); }); @@ -23,7 +25,7 @@ test("MLC api-version Extractor: old createClient function 1", async () => { test("MLC api-version Extractor: get api version type from old createClient function 1", async () => { const root = join(__dirname, 'testCases/old1/'); - const version = getApiVersionType(root); + const version = await getApiVersionType(root); expect(version).toBe(ApiVersionType.Preview); }); @@ -35,6 +37,36 @@ test("MLC api-version Extractor: old createClient function 2", async () => { test("MLC api-version Extractor: get api version type from old createClient function 2", async () => { const root = join(__dirname, 'testCases/old2/'); - const version = getApiVersionType(root); + const version = await getApiVersionType(root); expect(version).toBe(ApiVersionType.Stable); +}); + +describe("Rest client file fallbacks", () => { + // Modular + { + test("Modular: src/api/xxxContext.ts exists", async () => { + const root = join(__dirname, 'testCases/new-context/'); + const version = await getApiVersionType(root); + expect(version).toBe(ApiVersionType.Preview); + }); + test("Modular: src/api/xxxContext.ts doesn't exists, fallback to src/rest/xxxClient.ts", async () => { + const root = join(__dirname, 'testCases/new/'); + const version = await getApiVersionType(root); + expect(version).toBe(ApiVersionType.Preview); + }); + } + // RLC + { + test("RLC: src/xxxContext.ts exists", async () => { + const root = join(__dirname, 'testCases/rlc-context/'); + const version = await getApiVersionTypeInRLC(root); + expect(version).toBe(ApiVersionType.Preview); + + }); + test("RLC: src/xxxContext.ts doesn't exists, fallback to src/xxxClient.ts", async () => { + const root = join(__dirname, 'testCases/rlc-client/'); + const version = await getApiVersionTypeInRLC(root); + expect(version).toBe(ApiVersionType.Preview); + }); + } }); \ No newline at end of file diff --git a/tools/js-sdk-release-tools/src/test/apiVersion/testCases/new-context/src/api/newContext.ts b/tools/js-sdk-release-tools/src/test/apiVersion/testCases/new-context/src/api/newContext.ts new file mode 100644 index 00000000000..83492bbb81b --- /dev/null +++ b/tools/js-sdk-release-tools/src/test/apiVersion/testCases/new-context/src/api/newContext.ts @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import { getClient, ClientOptions } from "@azure-rest/core-client"; +import { logger } from "../logger.js"; +import { TokenCredential } from "@azure/core-auth"; +import { DocumentDBContext } from "./clientDefinitions.js"; + +/** The optional parameters for the client */ +export interface DocumentDBContextOptions extends ClientOptions { + /** The api version option of the client */ + apiVersion?: string; +} + +/** + * Initialize a new instance of `DocumentDBContext` + * @param credentials - uniquely identify client credential + * @param options - the parameter for all optional parameters + */ +export default function createClient( + credentials: TokenCredential, + { + apiVersion = "2024-03-01-preview", + ...options + }: DocumentDBContextOptions = {}, +): DocumentDBContext { + const endpointUrl = + options.endpoint ?? options.baseUrl ?? `https://management.azure.com`; + const userAgentInfo = `azsdk-js-arm-mongocluster/1.0.0-beta.1`; + const userAgentPrefix = + options.userAgentOptions && options.userAgentOptions.userAgentPrefix + ? `${options.userAgentOptions.userAgentPrefix} ${userAgentInfo}` + : `${userAgentInfo}`; + options = { + ...options, + userAgentOptions: { + userAgentPrefix, + }, + loggingOptions: { + logger: options.loggingOptions?.logger ?? logger.info, + }, + credentials: { + scopes: options.credentials?.scopes ?? [`${endpointUrl}/.default`], + }, + }; + const client = getClient( + endpointUrl, + credentials, + options, + ) as DocumentDBContext; + + client.pipeline.removePolicy({ name: "ApiVersionPolicy" }); + client.pipeline.addPolicy({ + name: "ClientApiVersionPolicy", + sendRequest: (req, next) => { + // Use the apiVersion defined in request url directly + // Append one if there is no apiVersion and we have one at client options + const url = new URL(req.url); + if (!url.searchParams.get("api-version") && apiVersion) { + req.url = `${req.url}${Array.from(url.searchParams.keys()).length > 0 ? "&" : "?" + }api-version=${apiVersion}`; + } + + return next(req); + }, + }); + return client; +} diff --git a/tools/js-sdk-release-tools/src/test/apiVersion/testCases/rlc-client/src/newClient.ts b/tools/js-sdk-release-tools/src/test/apiVersion/testCases/rlc-client/src/newClient.ts new file mode 100644 index 00000000000..83492bbb81b --- /dev/null +++ b/tools/js-sdk-release-tools/src/test/apiVersion/testCases/rlc-client/src/newClient.ts @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import { getClient, ClientOptions } from "@azure-rest/core-client"; +import { logger } from "../logger.js"; +import { TokenCredential } from "@azure/core-auth"; +import { DocumentDBContext } from "./clientDefinitions.js"; + +/** The optional parameters for the client */ +export interface DocumentDBContextOptions extends ClientOptions { + /** The api version option of the client */ + apiVersion?: string; +} + +/** + * Initialize a new instance of `DocumentDBContext` + * @param credentials - uniquely identify client credential + * @param options - the parameter for all optional parameters + */ +export default function createClient( + credentials: TokenCredential, + { + apiVersion = "2024-03-01-preview", + ...options + }: DocumentDBContextOptions = {}, +): DocumentDBContext { + const endpointUrl = + options.endpoint ?? options.baseUrl ?? `https://management.azure.com`; + const userAgentInfo = `azsdk-js-arm-mongocluster/1.0.0-beta.1`; + const userAgentPrefix = + options.userAgentOptions && options.userAgentOptions.userAgentPrefix + ? `${options.userAgentOptions.userAgentPrefix} ${userAgentInfo}` + : `${userAgentInfo}`; + options = { + ...options, + userAgentOptions: { + userAgentPrefix, + }, + loggingOptions: { + logger: options.loggingOptions?.logger ?? logger.info, + }, + credentials: { + scopes: options.credentials?.scopes ?? [`${endpointUrl}/.default`], + }, + }; + const client = getClient( + endpointUrl, + credentials, + options, + ) as DocumentDBContext; + + client.pipeline.removePolicy({ name: "ApiVersionPolicy" }); + client.pipeline.addPolicy({ + name: "ClientApiVersionPolicy", + sendRequest: (req, next) => { + // Use the apiVersion defined in request url directly + // Append one if there is no apiVersion and we have one at client options + const url = new URL(req.url); + if (!url.searchParams.get("api-version") && apiVersion) { + req.url = `${req.url}${Array.from(url.searchParams.keys()).length > 0 ? "&" : "?" + }api-version=${apiVersion}`; + } + + return next(req); + }, + }); + return client; +} diff --git a/tools/js-sdk-release-tools/src/test/apiVersion/testCases/rlc-context/src/newContext.ts b/tools/js-sdk-release-tools/src/test/apiVersion/testCases/rlc-context/src/newContext.ts new file mode 100644 index 00000000000..83492bbb81b --- /dev/null +++ b/tools/js-sdk-release-tools/src/test/apiVersion/testCases/rlc-context/src/newContext.ts @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import { getClient, ClientOptions } from "@azure-rest/core-client"; +import { logger } from "../logger.js"; +import { TokenCredential } from "@azure/core-auth"; +import { DocumentDBContext } from "./clientDefinitions.js"; + +/** The optional parameters for the client */ +export interface DocumentDBContextOptions extends ClientOptions { + /** The api version option of the client */ + apiVersion?: string; +} + +/** + * Initialize a new instance of `DocumentDBContext` + * @param credentials - uniquely identify client credential + * @param options - the parameter for all optional parameters + */ +export default function createClient( + credentials: TokenCredential, + { + apiVersion = "2024-03-01-preview", + ...options + }: DocumentDBContextOptions = {}, +): DocumentDBContext { + const endpointUrl = + options.endpoint ?? options.baseUrl ?? `https://management.azure.com`; + const userAgentInfo = `azsdk-js-arm-mongocluster/1.0.0-beta.1`; + const userAgentPrefix = + options.userAgentOptions && options.userAgentOptions.userAgentPrefix + ? `${options.userAgentOptions.userAgentPrefix} ${userAgentInfo}` + : `${userAgentInfo}`; + options = { + ...options, + userAgentOptions: { + userAgentPrefix, + }, + loggingOptions: { + logger: options.loggingOptions?.logger ?? logger.info, + }, + credentials: { + scopes: options.credentials?.scopes ?? [`${endpointUrl}/.default`], + }, + }; + const client = getClient( + endpointUrl, + credentials, + options, + ) as DocumentDBContext; + + client.pipeline.removePolicy({ name: "ApiVersionPolicy" }); + client.pipeline.addPolicy({ + name: "ClientApiVersionPolicy", + sendRequest: (req, next) => { + // Use the apiVersion defined in request url directly + // Append one if there is no apiVersion and we have one at client options + const url = new URL(req.url); + if (!url.searchParams.get("api-version") && apiVersion) { + req.url = `${req.url}${Array.from(url.searchParams.keys()).length > 0 ? "&" : "?" + }api-version=${apiVersion}`; + } + + return next(req); + }, + }); + return client; +} diff --git a/tools/js-sdk-release-tools/src/test/changelog/changelogGenerator.test.ts b/tools/js-sdk-release-tools/src/test/changelog/changelogGenerator.test.ts index 13d2f7edddd..855c43097cc 100644 --- a/tools/js-sdk-release-tools/src/test/changelog/changelogGenerator.test.ts +++ b/tools/js-sdk-release-tools/src/test/changelog/changelogGenerator.test.ts @@ -3,9 +3,8 @@ import { extractExportAndGenerateChangelog } from "../../changelog/extractMetaDa import path, { join } from "path"; import { SDKType } from "../../common/types"; import { describe } from "node:test"; -import { mkdirSync } from "node:fs"; import { tryReadNpmPackageChangelog } from "../../common/utils"; -import { rmdirSync, writeFileSync } from "fs"; +import { ensureDirSync, removeSync, outputFileSync } from "fs-extra"; function getRandomInt(max) { return Math.floor(Math.random() * max); @@ -34,10 +33,10 @@ describe("Breaking change detection", () => { expect(changelog.addedOperation.length).toBe(1); expect(changelog.removedOperation.length).toBe(1); - expect(changelog.addedOperation[0]).toBe( + expect(changelog.addedOperation[0].line).toBe( "Added operation DataProductsCatalogsOperations.listByResourceGroup_NEW" ); - expect(changelog.removedOperation[0]).toBe( + expect(changelog.removedOperation[0].line).toBe( "Removed operation DataProductsCatalogs.listByResourceGroup" ); }); @@ -64,10 +63,10 @@ describe("Breaking change detection", () => { expect(changelog.addedOperation.length).toBe(1); expect(changelog.removedOperation.length).toBe(1); - expect(changelog.addedOperation[0]).toBe( + expect(changelog.addedOperation[0].line).toBe( "Added operation DataProductsCatalogs.get_NEW" ); - expect(changelog.removedOperation[0]).toBe( + expect(changelog.removedOperation[0].line).toBe( "Removed operation DataProductsCatalogs.get" ); }); @@ -94,10 +93,10 @@ describe("Breaking change detection", () => { expect(changelog.addedOperation.length).toBe(1); expect(changelog.removedOperation.length).toBe(1); - expect(changelog.addedOperation[0]).toBe( + expect(changelog.addedOperation[0].line).toBe( "Added operation DataProductsCatalogsOperations.listByResourceGroup_NEW" ); - expect(changelog.removedOperation[0]).toBe( + expect(changelog.removedOperation[0].line).toBe( "Removed operation DataProductsCatalogsOperations.listByResourceGroup" ); }); @@ -126,33 +125,34 @@ describe("Breaking change detection", () => { expect(changelog.operationSignatureChange.length).toBe(1); - expect(changelog.addedOperationGroup[0]).toBe( + expect(changelog.addedOperationGroup[0].line).toBe( "Added operation group DataProductsCatalogs_add" ); - expect(changelog.removedOperationGroup[0]).toBe( + expect(changelog.removedOperationGroup[0].line).toBe( "Removed operation group DataProductsCatalogs_remove" ); - expect(changelog.operationSignatureChange[0]).toBe( + expect(changelog.operationSignatureChange[0].line).toBe( "Operation DataProductsCatalogs_sig_change.get has a new signature" ); }); }); describe("Changelog reading", () => { - const tempPackageFolder = `./tmp/package-${getRandomInt(10000)}`; - try { test("Read changelog that doesn't exist", () => { - const content = tryReadNpmPackageChangelog(tempPackageFolder); + const content = tryReadNpmPackageChangelog('./do/not/exist'); expect(content).toBe(""); }); - const changelogPath = join(tempPackageFolder, 'CHANGELOG.md') - writeFileSync(changelogPath, 'aaa', 'utf-8'); - test("Read changelog that exists", () => { - const content = tryReadNpmPackageChangelog(tempPackageFolder); - expect(content).toBe("aaa"); + test("Read changelog that exists", () => { + const tempPackageFolder = path.join(__dirname, `tmp/package-${getRandomInt(10000)}`); + try { + ensureDirSync(tempPackageFolder); + const changelogPath = path.join(tempPackageFolder, 'changelog-temp', 'package', 'CHANGELOG.md') + outputFileSync(changelogPath, 'aaa', 'utf-8'); + const content = tryReadNpmPackageChangelog(tempPackageFolder); + expect(content).toBe("aaa"); + } finally { + removeSync(tempPackageFolder); + } }) - } finally { - rmdirSync(tempPackageFolder); - } -}); +}); \ No newline at end of file diff --git a/tools/js-sdk-release-tools/src/utils/logger.ts b/tools/js-sdk-release-tools/src/utils/logger.ts index ecae194606e..3890305fc17 100644 --- a/tools/js-sdk-release-tools/src/utils/logger.ts +++ b/tools/js-sdk-release-tools/src/utils/logger.ts @@ -14,7 +14,6 @@ const pipeline = winston.format((info, opts) => { export const logger = winston.createLogger({ level: "info", format: winston.format.combine(winston.format.json(), pipeline()), - defaultMeta: { service: "user-service" }, }); if (process.env.NODE_ENV !== "production") { diff --git a/tools/js-sdk-release-tools/src/xlc/apiVersion/apiVersionTypeExtractor.ts b/tools/js-sdk-release-tools/src/xlc/apiVersion/apiVersionTypeExtractor.ts index 797b0340c2e..88301468953 100644 --- a/tools/js-sdk-release-tools/src/xlc/apiVersion/apiVersionTypeExtractor.ts +++ b/tools/js-sdk-release-tools/src/xlc/apiVersion/apiVersionTypeExtractor.ts @@ -3,15 +3,18 @@ import { ApiVersionType, SDKType } from "../../common/types"; import { IApiVersionTypeExtractor } from "../../common/interfaces"; import * as mlcApi from '../../mlc/apiVersion/apiVersionTypeExtractor' import * as hlcApi from '../../hlc/apiVersion/apiVersionTypeExtractor' +import * as rlcApi from '../../llc/apiVersion/apiVersionTypeExtractor' // TODO: move to x-level-client folder -export const getApiVersionType: IApiVersionTypeExtractor = (packageRoot: string): ApiVersionType => { +export const getApiVersionType: IApiVersionTypeExtractor = async (packageRoot: string): Promise => { const sdkType = getSDKType(packageRoot); switch (sdkType) { case SDKType.ModularClient: - return mlcApi.getApiVersionType(packageRoot); + return await mlcApi.getApiVersionType(packageRoot); case SDKType.HighLevelClient: - return hlcApi.getApiVersionType(packageRoot); + return await hlcApi.getApiVersionType(packageRoot); + case SDKType.RestLevelClient: + return await rlcApi.getApiVersionType(packageRoot); default: console.warn(`Unsupported SDK type ${sdkType} to get detact api version`); return ApiVersionType.None; diff --git a/tools/js-sdk-release-tools/src/xlc/apiVersion/utils.ts b/tools/js-sdk-release-tools/src/xlc/apiVersion/utils.ts new file mode 100644 index 00000000000..14e197a92ec --- /dev/null +++ b/tools/js-sdk-release-tools/src/xlc/apiVersion/utils.ts @@ -0,0 +1,142 @@ +import { readFileSync } from "node:fs"; +import { getTsSourceFile } from "../../common/utils"; +import { ApiVersionType, SDKType } from "../../common/types"; +import ts from "typescript"; +import path from "node:path"; +import shell from "shelljs"; +import { SourceFile, SyntaxKind } from "ts-morph"; +import { logger } from "../../utils/logger"; +import { glob } from 'glob' + +var unixify = require('unixify'); + +const findApiVersionInRestClientV1 = ( + clientPath: string +): string | undefined => { + const sourceFile = getTsSourceFile(clientPath); + const createClientFunction = sourceFile?.getFunction("createClient"); + if (!createClientFunction) + throw new Error("Function 'createClient' not found."); + + const apiVersionStatements = createClientFunction + .getStatements() + .filter((s) => s.getText().includes("options.apiVersion")); + if (apiVersionStatements.length === 0) { + return undefined; + } + const text = + apiVersionStatements[apiVersionStatements.length - 1].getText(); + return extractApiVersionFromText(text); +}; + +const extractApiVersionFromText = (text: string): string | undefined => { + const begin = text.indexOf('"'); + const end = text.lastIndexOf('"'); + return text.substring(begin + 1, end); +}; + +// new ways in @autorest/typespec-ts emitter to set up api-version +const findApiVersionInRestClientV2 = (clientPath: string): string | undefined => { + const sourceCode= readFileSync(clientPath, {encoding: 'utf-8'}) + const sourceFile = ts.createSourceFile("example.ts", sourceCode, ts.ScriptTarget.Latest, true); + const createClientFunction = sourceFile.statements.filter(s => (s as ts.FunctionDeclaration)?.name?.escapedText === 'createClient').map(s => (s as ts.FunctionDeclaration))[0]; + let apiVersion: string | undefined = undefined; + createClientFunction.parameters.forEach(p => { + const isBindingPattern = node => node && typeof node === "object" && "elements" in node && "parent" in node && "kind" in node; + if (!isBindingPattern(p.name)) { + return; + } + const binding = p.name as ts.ObjectBindingPattern; + const apiVersionTexts = binding.elements?.filter(e => (e.name as ts.Identifier)?.escapedText === "apiVersion").map(e => e.initializer?.getText()); + // apiVersionTexts.length must be 0 or 1, otherwise the binding pattern contains the same keys, which causes a ts error + if (apiVersionTexts.length === 1 && apiVersionTexts[0]) { + apiVersion = extractApiVersionFromText(apiVersionTexts[0]); + } + }); + return apiVersion; +}; + +const findApiVersionsInOperations = ( + sourceFile: SourceFile | undefined +): Array | undefined => { + const interfaces = sourceFile?.getInterfaces(); + const interfacesWithApiVersion = interfaces?.filter((itf) => + itf.getProperty('"api-version"') + ); + const apiVersions = interfacesWithApiVersion?.map((itf) => { + const property = itf.getMembers().filter((m) => { + const defaultValue = m.getChildrenOfKind( + SyntaxKind.StringLiteral + )[0]; + return defaultValue && defaultValue.getText() === '"api-version"'; + })[0]; + const apiVersion = property + .getChildrenOfKind(SyntaxKind.LiteralType)[0] + .getText(); + return apiVersion; + }); + return apiVersions; +}; + +// workaround for createClient function changes it's way to setup api-version +export const findApiVersionInRestClient = (clientPath: string): string | undefined => { + const version2 = findApiVersionInRestClientV2(clientPath); + if (version2) { + return version2; + } + const version1 = findApiVersionInRestClientV1(clientPath); + return version1; +}; + +export const tryFindRestClientPath = async (packageRoot: string, clientPattern: string): Promise => { + const pattern = unixify(path.join(packageRoot, clientPattern)); + const clientFiles = await glob(pattern); + if (clientFiles.length !== 1) { + logger.warn(`Failed to find extactly one REST client in pattern '${pattern}', got '${clientFiles}'.`); + return undefined; + } + return clientFiles[0]; +}; + +export const findParametersPath = (packageRoot: string, relativeParametersFolder: string): string => { + const parametersPath = path.join(packageRoot, relativeParametersFolder); + const fileNames = shell.ls(parametersPath); + const clientFiles = fileNames.filter((f) => f === "parameters.ts"); + if (clientFiles.length !== 1) + throw new Error(`Expected 1 'parameters.ts' file, but found '${clientFiles}' in '${parametersPath}'.`); + + const clientPath = path.join(parametersPath, clientFiles[0]); + return clientPath; +}; + +export const getApiVersionTypeFromRestClient = async ( + packageRoot: string, + clientPattern: string, + findRestClientPath: (packageRoot: string, clientPattern: string) => Promise +): Promise => { + const clientPath = await findRestClientPath(packageRoot, clientPattern); + if (!clientPath) return ApiVersionType.None; + const apiVersion = findApiVersionInRestClient(clientPath); + if (apiVersion && apiVersion.indexOf("-preview") >= 0) + return ApiVersionType.Preview; + if (apiVersion && apiVersion.indexOf("-preview") < 0) + return ApiVersionType.Stable; + return ApiVersionType.None; +}; + +export const getApiVersionTypeFromOperations = ( + packageRoot: string, + relativeParametersFolder: string, + findPararametersPath: (packageRoot: string, relativeParametersFolder: string) => string +): ApiVersionType => { + const paraPath = findPararametersPath(packageRoot, relativeParametersFolder); + const sourceFile = getTsSourceFile(paraPath); + const apiVersions = findApiVersionsInOperations(sourceFile); + if (!apiVersions) return ApiVersionType.None; + const previewVersions = apiVersions.filter( + (v) => v.indexOf("-preview") >= 0 + ); + return previewVersions.length > 0 + ? ApiVersionType.Preview + : ApiVersionType.Stable; +}; \ No newline at end of file diff --git a/tools/js-sdk-release-tools/tsconfig.json b/tools/js-sdk-release-tools/tsconfig.json index 8cf41ce5cb0..0a04df0e255 100644 --- a/tools/js-sdk-release-tools/tsconfig.json +++ b/tools/js-sdk-release-tools/tsconfig.json @@ -4,14 +4,13 @@ /* Basic Options */ // "incremental": true, /* Enable incremental compilation */ - "target": "es6" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */, - "module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */, - "lib": ["ES6"] /* Specify library files to be included in the compilation. */, + "target": "ES2022" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */, + "module": "NodeNext" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */, // "allowJs": true, /* Allow javascript files to be compiled. */ // "checkJs": true, /* Report errors in .js files. */ // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', 'react', 'react-jsx' or 'react-jsxdev'. */ "declaration": true, /* Generates corresponding '.d.ts' file. */ - // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ + "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ "sourceMap": true /* Generates corresponding '.map' file. */, // "outFile": "./", /* Concatenate and emit output to single file. */ "outDir": "./dist" /* Redirect output structure to the directory. */, @@ -43,7 +42,7 @@ // "noPropertyAccessFromIndexSignature": true, /* Require undeclared properties from index signatures to use element accesses. */ /* Module Resolution Options */ - // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ + "moduleResolution": "NodeNext", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ @@ -68,5 +67,6 @@ "skipLibCheck": true /* Skip type checking of declaration files. */, "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ }, - "exclude": ["src/test/**/testCases/**", "vitest.config.ts"] + "exclude": ["src/test/**/testCases/**", "vitest.config.ts"], + "include": ["src/**/*"] } diff --git a/tools/js-sdk-release-tools/vitest.config.ts b/tools/js-sdk-release-tools/vitest.config.ts index bf39de39012..36bbb444907 100644 --- a/tools/js-sdk-release-tools/vitest.config.ts +++ b/tools/js-sdk-release-tools/vitest.config.ts @@ -2,6 +2,12 @@ import { defineConfig } from "vitest/config"; export default defineConfig({ test: { - exclude: ["src/test/testCases/**", "dist/**", "node_modules/**"], + exclude: [ + "src/test/testCases/**", + "dist/**", + "**/node_modules/**", + "**/misc/**", + "packages/**", + ], }, });