diff --git a/.github/workflows/build-vsix.yml b/.github/workflows/build-vsix.yml new file mode 100644 index 000000000..1dbad40dc --- /dev/null +++ b/.github/workflows/build-vsix.yml @@ -0,0 +1,51 @@ +name: Build VSIX + +# Packages the extension and, for a v* tag, attaches the VSIX to that release +# so it can be installed on a machine without the build toolchain: +# +# gh release download v1.14.2 --repo teoboetti/vscode-react-native +# codium --install-extension vscode-react-native-1.14.2.vsix + +on: + push: + tags: + - "v*" + workflow_dispatch: + +permissions: + contents: write + +jobs: + package: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-node@v4 + with: + node-version: "24" + cache: npm + + - name: Install dependencies + run: npm ci + + - name: Package + run: npx vsce package + + - name: Attach the VSIX to the release + if: startsWith(github.ref, 'refs/tags/') + env: + GH_TOKEN: ${{ github.token }} + run: | + if gh release view "$GITHUB_REF_NAME" >/dev/null 2>&1; then + gh release upload "$GITHUB_REF_NAME" ./*.vsix --clobber + else + gh release create "$GITHUB_REF_NAME" ./*.vsix --generate-notes + fi + + - uses: actions/upload-artifact@v4 + with: + name: vsix + path: "*.vsix" + if-no-files-found: error diff --git a/package-lock.json b/package-lock.json index 3a2401a8e..be0a81c7e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "vscode-react-native", - "version": "1.14.1", + "version": "1.14.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "vscode-react-native", - "version": "1.14.1", + "version": "1.14.2", "hasInstallScript": true, "license": "%reactNative.license%", "dependencies": { @@ -637,7 +637,7 @@ }, "node_modules/@eslint-community/eslint-utils": { "version": "4.10.1", - "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@eslint-community/eslint-utils/-/eslint-utils-4.10.1.tgz", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.10.1.tgz", "integrity": "sha1-iRG9crLDZApUNgngQAuMTS5+fLY=", "dev": true, "license": "MIT", @@ -656,7 +656,7 @@ }, "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { "version": "3.4.3", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha1-DNcv6FUOPC6uFWqWpN3c0cisWAA=", "dev": true, "license": "Apache-2.0", @@ -669,7 +669,7 @@ }, "node_modules/@eslint-community/regexpp": { "version": "4.12.2", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", "integrity": "sha1-vM32Fbz3tujbgw7AuNIcmiXeWXs=", "dev": true, "license": "MIT", @@ -679,7 +679,7 @@ }, "node_modules/@eslint/eslintrc": { "version": "2.1.4", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", "integrity": "sha1-OIomnw8lwbatwxe1osVXFIlMcK0=", "dev": true, "license": "MIT", @@ -703,7 +703,7 @@ }, "node_modules/@eslint/eslintrc/node_modules/strip-json-comments": { "version": "3.1.1", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY=", "dev": true, "license": "MIT", @@ -716,7 +716,7 @@ }, "node_modules/@eslint/js": { "version": "8.57.1", - "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@eslint/js/-/js-8.57.1.tgz", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", "integrity": "sha1-3mM9s+wu9qPIni8ZA4Bj6KEi4sI=", "dev": true, "license": "MIT", @@ -747,7 +747,7 @@ }, "node_modules/@humanwhocodes/config-array": { "version": "0.13.0", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", "integrity": "sha1-+5B2JN8yVtBLmqLfUNeql+xkh0g=", "deprecated": "Use @eslint/config-array instead", "dev": true, @@ -763,7 +763,7 @@ }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", "integrity": "sha1-r1smkaIrRL6EewyoFkHF+2rQFyw=", "dev": true, "license": "Apache-2.0", @@ -777,7 +777,7 @@ }, "node_modules/@humanwhocodes/object-schema": { "version": "2.0.3", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", "integrity": "sha1-Siho111taWPkI7z5C3/RvjQ0CdM=", "deprecated": "Use @eslint/object-schema instead", "dev": true, @@ -998,7 +998,7 @@ }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", - "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha1-dhnC6yGyVIP20WdUi0z9WnSIw9U=", "dev": true, "license": "MIT", @@ -1012,7 +1012,7 @@ }, "node_modules/@nodelib/fs.stat": { "version": "2.0.5", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha1-W9Jir5Tp0lvR5xsF3u1Eh2oiLos=", "dev": true, "license": "MIT", @@ -1022,7 +1022,7 @@ }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha1-6Vc36LtnRt3t9pxVaVNJTxlv5po=", "dev": true, "license": "MIT", @@ -1584,7 +1584,7 @@ }, "node_modules/@types/vscode": { "version": "1.75.0", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@types/vscode/-/vscode-1.75.0.tgz", + "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.75.0.tgz", "integrity": "sha1-8Ykqcn25oOtJlwWKgEFwuMC6IY4=", "dev": true, "license": "MIT" @@ -1609,7 +1609,7 @@ }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "8.67.0", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.67.0.tgz", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.67.0.tgz", "integrity": "sha1-Uvnw5H1adXHEM25pv+6lgVCe8s8=", "dev": true, "license": "MIT", @@ -1638,7 +1638,7 @@ }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { "version": "7.0.6", - "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/ignore/-/ignore-7.0.6.tgz", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.6.tgz", "integrity": "sha1-aleq70yQ3yesNZCHXSno8RmIyI4=", "dev": true, "license": "MIT", @@ -1648,7 +1648,7 @@ }, "node_modules/@typescript-eslint/parser": { "version": "8.67.0", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript-eslint/parser/-/parser-8.67.0.tgz", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.67.0.tgz", "integrity": "sha1-AVgCLsmSfgr81YqMwq1X4B2JL1w=", "dev": true, "license": "MIT", @@ -1673,7 +1673,7 @@ }, "node_modules/@typescript-eslint/project-service": { "version": "8.67.0", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript-eslint/project-service/-/project-service-8.67.0.tgz", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.67.0.tgz", "integrity": "sha1-FVLbAHypIGocbHrPSeIQvReoxW8=", "dev": true, "license": "MIT", @@ -1695,7 +1695,7 @@ }, "node_modules/@typescript-eslint/scope-manager": { "version": "8.67.0", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript-eslint/scope-manager/-/scope-manager-8.67.0.tgz", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.67.0.tgz", "integrity": "sha1-TUwtoJVg0Q3X2UfLotKdFNJa8W0=", "dev": true, "license": "MIT", @@ -1713,7 +1713,7 @@ }, "node_modules/@typescript-eslint/tsconfig-utils": { "version": "8.67.0", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.67.0.tgz", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.67.0.tgz", "integrity": "sha1-9Fo+umuRMvtHFB7APOLydfHqmR0=", "dev": true, "license": "MIT", @@ -1730,7 +1730,7 @@ }, "node_modules/@typescript-eslint/type-utils": { "version": "8.67.0", - "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript-eslint/type-utils/-/type-utils-8.67.0.tgz", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.67.0.tgz", "integrity": "sha1-lr7RBSdVWd87zwRJtzpkFNNcWc4=", "dev": true, "license": "MIT", @@ -1755,7 +1755,7 @@ }, "node_modules/@typescript-eslint/types": { "version": "8.67.0", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript-eslint/types/-/types-8.67.0.tgz", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.67.0.tgz", "integrity": "sha1-So0AzB+rpcFP6rxg+Ft6MmUvNLY=", "dev": true, "license": "MIT", @@ -1769,7 +1769,7 @@ }, "node_modules/@typescript-eslint/typescript-estree": { "version": "8.67.0", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript-eslint/typescript-estree/-/typescript-estree-8.67.0.tgz", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.67.0.tgz", "integrity": "sha1-EWw6R8BhGcWgUOiFGGHWSX3WS8I=", "dev": true, "license": "MIT", @@ -1797,7 +1797,7 @@ }, "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { "version": "10.2.6", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/minimatch/-/minimatch-10.2.6.tgz", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", "integrity": "sha1-/ZVrvgt3JB6fFaxdzLHGOAYJaO8=", "dev": true, "license": "BlueOak-1.0.0", @@ -1813,7 +1813,7 @@ }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { "version": "7.8.5", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/semver/-/semver-7.8.5.tgz", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", "integrity": "sha1-ObZGA33VDBT7RR5+TKxY7YuGP2k=", "dev": true, "license": "ISC", @@ -1826,7 +1826,7 @@ }, "node_modules/@typescript-eslint/utils": { "version": "8.67.0", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript-eslint/utils/-/utils-8.67.0.tgz", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.67.0.tgz", "integrity": "sha1-PkeKPWnTMKH8UMEnRswu4HMsz80=", "dev": true, "license": "MIT", @@ -1850,7 +1850,7 @@ }, "node_modules/@typescript-eslint/visitor-keys": { "version": "8.67.0", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript-eslint/visitor-keys/-/visitor-keys-8.67.0.tgz", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.67.0.tgz", "integrity": "sha1-YB1Ar5rPgqKNoihvPtr8abupAX8=", "dev": true, "license": "MIT", @@ -1868,7 +1868,7 @@ }, "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { "version": "5.0.1", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", "integrity": "sha1-njyUiWl4JNLUzjqK0SYo+R6fWb4=", "dev": true, "license": "Apache-2.0", @@ -1882,7 +1882,7 @@ "node_modules/@typescript/old": { "name": "typescript", "version": "6.0.3", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/typescript/-/typescript-6.0.3.tgz", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", "integrity": "sha1-kCUdwAeRbpcnhsuU100VsYVXfSE=", "dev": true, "license": "Apache-2.0", @@ -1896,7 +1896,7 @@ }, "node_modules/@typescript/typescript-aix-ppc64": { "version": "7.0.2", - "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript/typescript-aix-ppc64/-/typescript-aix-ppc64-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/@typescript/typescript-aix-ppc64/-/typescript-aix-ppc64-7.0.2.tgz", "integrity": "sha1-zcfOgdYPHgkDSWDd+x+4gNendrY=", "cpu": [ "ppc64" @@ -1913,7 +1913,7 @@ }, "node_modules/@typescript/typescript-darwin-arm64": { "version": "7.0.2", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript/typescript-darwin-arm64/-/typescript-darwin-arm64-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-arm64/-/typescript-darwin-arm64-7.0.2.tgz", "integrity": "sha1-pV/fz6WN9Y0n2yI3zealweNacjU=", "cpu": [ "arm64" @@ -1930,7 +1930,7 @@ }, "node_modules/@typescript/typescript-darwin-x64": { "version": "7.0.2", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript/typescript-darwin-x64/-/typescript-darwin-x64-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-x64/-/typescript-darwin-x64-7.0.2.tgz", "integrity": "sha1-ONHJFygAqR1we+xk0qNwoBZjTbQ=", "cpu": [ "x64" @@ -1947,7 +1947,7 @@ }, "node_modules/@typescript/typescript-freebsd-arm64": { "version": "7.0.2", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript/typescript-freebsd-arm64/-/typescript-freebsd-arm64-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-arm64/-/typescript-freebsd-arm64-7.0.2.tgz", "integrity": "sha1-8f+IEAMLNdK1vg22otxlBGDqlPo=", "cpu": [ "arm64" @@ -1964,7 +1964,7 @@ }, "node_modules/@typescript/typescript-freebsd-x64": { "version": "7.0.2", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript/typescript-freebsd-x64/-/typescript-freebsd-x64-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-x64/-/typescript-freebsd-x64-7.0.2.tgz", "integrity": "sha1-PYawPzU8WxupUWLrbONVM7/ClL0=", "cpu": [ "x64" @@ -1981,7 +1981,7 @@ }, "node_modules/@typescript/typescript-linux-arm": { "version": "7.0.2", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript/typescript-linux-arm/-/typescript-linux-arm-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm/-/typescript-linux-arm-7.0.2.tgz", "integrity": "sha1-rZS0HhruKk3MaimMe2fEM0X94y4=", "cpu": [ "arm" @@ -1998,7 +1998,7 @@ }, "node_modules/@typescript/typescript-linux-arm64": { "version": "7.0.2", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript/typescript-linux-arm64/-/typescript-linux-arm64-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm64/-/typescript-linux-arm64-7.0.2.tgz", "integrity": "sha1-2TNNltbaxv+F2pyGVYiUjek56R8=", "cpu": [ "arm64" @@ -2015,7 +2015,7 @@ }, "node_modules/@typescript/typescript-linux-loong64": { "version": "7.0.2", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript/typescript-linux-loong64/-/typescript-linux-loong64-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-loong64/-/typescript-linux-loong64-7.0.2.tgz", "integrity": "sha1-KWWu5PyHM2ATnYk9qv5jl6KROK0=", "cpu": [ "loong64" @@ -2032,7 +2032,7 @@ }, "node_modules/@typescript/typescript-linux-mips64el": { "version": "7.0.2", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript/typescript-linux-mips64el/-/typescript-linux-mips64el-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-mips64el/-/typescript-linux-mips64el-7.0.2.tgz", "integrity": "sha1-Goh6MRvtOoM/gL/Uqe03wnGTbPA=", "cpu": [ "mips64el" @@ -2049,7 +2049,7 @@ }, "node_modules/@typescript/typescript-linux-ppc64": { "version": "7.0.2", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript/typescript-linux-ppc64/-/typescript-linux-ppc64-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-ppc64/-/typescript-linux-ppc64-7.0.2.tgz", "integrity": "sha1-i2PJsvRFs5PrTkPsIdoiXa3jV30=", "cpu": [ "ppc64" @@ -2066,7 +2066,7 @@ }, "node_modules/@typescript/typescript-linux-riscv64": { "version": "7.0.2", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript/typescript-linux-riscv64/-/typescript-linux-riscv64-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-riscv64/-/typescript-linux-riscv64-7.0.2.tgz", "integrity": "sha1-tuijXCibPql6kqQdRhqu7Q07NuE=", "cpu": [ "riscv64" @@ -2083,7 +2083,7 @@ }, "node_modules/@typescript/typescript-linux-s390x": { "version": "7.0.2", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript/typescript-linux-s390x/-/typescript-linux-s390x-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-s390x/-/typescript-linux-s390x-7.0.2.tgz", "integrity": "sha1-Lvlmk75IYfbReWVCflsAnLvtGj4=", "cpu": [ "s390x" @@ -2100,7 +2100,7 @@ }, "node_modules/@typescript/typescript-linux-x64": { "version": "7.0.2", - "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript/typescript-linux-x64/-/typescript-linux-x64-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-x64/-/typescript-linux-x64-7.0.2.tgz", "integrity": "sha1-cyacsLq6UK6gygYERaa4jlg/HOI=", "cpu": [ "x64" @@ -2117,7 +2117,7 @@ }, "node_modules/@typescript/typescript-netbsd-arm64": { "version": "7.0.2", - "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript/typescript-netbsd-arm64/-/typescript-netbsd-arm64-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-arm64/-/typescript-netbsd-arm64-7.0.2.tgz", "integrity": "sha1-OjZJ+X+vohC05uN5jBXgZgXIqQE=", "cpu": [ "arm64" @@ -2134,7 +2134,7 @@ }, "node_modules/@typescript/typescript-netbsd-x64": { "version": "7.0.2", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript/typescript-netbsd-x64/-/typescript-netbsd-x64-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-x64/-/typescript-netbsd-x64-7.0.2.tgz", "integrity": "sha1-R+xZSRpAxHDSgH3E0rglUo/Zeas=", "cpu": [ "x64" @@ -2151,7 +2151,7 @@ }, "node_modules/@typescript/typescript-openbsd-arm64": { "version": "7.0.2", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript/typescript-openbsd-arm64/-/typescript-openbsd-arm64-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-arm64/-/typescript-openbsd-arm64-7.0.2.tgz", "integrity": "sha1-eWvo2gvZidij+5bygB44qDZbS68=", "cpu": [ "arm64" @@ -2168,7 +2168,7 @@ }, "node_modules/@typescript/typescript-openbsd-x64": { "version": "7.0.2", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript/typescript-openbsd-x64/-/typescript-openbsd-x64-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-x64/-/typescript-openbsd-x64-7.0.2.tgz", "integrity": "sha1-03/ipynrlCwHbEVO5/GBX699Vg8=", "cpu": [ "x64" @@ -2185,7 +2185,7 @@ }, "node_modules/@typescript/typescript-sunos-x64": { "version": "7.0.2", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript/typescript-sunos-x64/-/typescript-sunos-x64-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/@typescript/typescript-sunos-x64/-/typescript-sunos-x64-7.0.2.tgz", "integrity": "sha1-q6jTRkw1ZacER4m6upaRa9SrLIg=", "cpu": [ "x64" @@ -2202,7 +2202,7 @@ }, "node_modules/@typescript/typescript-win32-arm64": { "version": "7.0.2", - "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript/typescript-win32-arm64/-/typescript-win32-arm64-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-arm64/-/typescript-win32-arm64-7.0.2.tgz", "integrity": "sha1-ud5QoXGWOD9iYgtfnQovNK07YNc=", "cpu": [ "arm64" @@ -2219,7 +2219,7 @@ }, "node_modules/@typescript/typescript-win32-x64": { "version": "7.0.2", - "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript/typescript-win32-x64/-/typescript-win32-x64-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-x64/-/typescript-win32-x64-7.0.2.tgz", "integrity": "sha1-zzt7DWzlY12spMjgHBic3N5H7Dw=", "cpu": [ "x64" @@ -2256,7 +2256,7 @@ }, "node_modules/@ungap/structured-clone": { "version": "1.3.3", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@ungap/structured-clone/-/structured-clone-1.3.3.tgz", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.3.tgz", "integrity": "sha1-CUBB4aTLGYfwODNUISgayL45C8w=", "dev": true, "license": "ISC" @@ -2344,7 +2344,7 @@ }, "node_modules/@vscode/test-electron": { "version": "3.1.0", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@vscode/test-electron/-/test-electron-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/@vscode/test-electron/-/test-electron-3.1.0.tgz", "integrity": "sha1-Rrk9EY3NOzyJyq4pahP5p/XrY8U=", "dev": true, "license": "MIT", @@ -3019,7 +3019,7 @@ }, "node_modules/acorn": { "version": "8.18.0", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/acorn/-/acorn-8.18.0.tgz", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.18.0.tgz", "integrity": "sha1-T68BstbTJr/u2XrqH1IiC19MGUA=", "dev": true, "license": "MIT", @@ -3032,7 +3032,7 @@ }, "node_modules/acorn-jsx": { "version": "5.3.2", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha1-ftW7VZCLOy8bxVxq8WU7rafweTc=", "dev": true, "license": "MIT", @@ -3077,7 +3077,7 @@ }, "node_modules/ajv": { "version": "6.15.0", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/ajv/-/ajv-6.15.0.tgz", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", "integrity": "sha1-B+mCx0YmFnqnoklcU4F4ktcTlJI=", "dev": true, "license": "MIT", @@ -3712,7 +3712,7 @@ }, "node_modules/brace-expansion": { "version": "5.0.9", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/brace-expansion/-/brace-expansion-5.0.9.tgz", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.9.tgz", "integrity": "sha1-fHJDiAm1+lur9UGZofHCgaaYT88=", "license": "MIT", "dependencies": { @@ -3817,7 +3817,7 @@ }, "node_modules/builtin-modules": { "version": "3.3.0", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/builtin-modules/-/builtin-modules-3.3.0.tgz", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", "integrity": "sha1-yuYoEriYAellYzbkYiPgMDhr57Y=", "dev": true, "license": "MIT", @@ -3908,7 +3908,7 @@ }, "node_modules/callsites": { "version": "3.1.0", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/callsites/-/callsites-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M=", "dev": true, "license": "MIT", @@ -3939,7 +3939,7 @@ }, "node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { @@ -4055,7 +4055,7 @@ }, "node_modules/ci-info": { "version": "3.9.0", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/ci-info/-/ci-info-3.9.0.tgz", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", "integrity": "sha1-QnmmICinsfJi80c/yWBfXiGMWbQ=", "dev": true, "funding": [ @@ -4395,7 +4395,7 @@ }, "node_modules/dateformat": { "version": "4.6.3", - "resolved": "https://registry.npmmirror.com/dateformat/-/dateformat-4.6.3.tgz", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==", "dev": true, "engines": { @@ -4430,7 +4430,7 @@ }, "node_modules/decode-uri-component": { "version": "0.5.0", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/decode-uri-component/-/decode-uri-component-0.5.0.tgz", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.5.0.tgz", "integrity": "sha1-RZL6Hh1kDsXidg4uForSq18snaE=", "license": "MIT", "engines": { @@ -4462,7 +4462,7 @@ }, "node_modules/deep-is": { "version": "0.1.4", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/deep-is/-/deep-is-0.1.4.tgz", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha1-pvLc5hL63S7x9Rm3NVHxfoUZmDE=", "dev": true, "license": "MIT" @@ -5045,7 +5045,7 @@ }, "node_modules/escape-html": { "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", "dev": true }, @@ -5060,7 +5060,7 @@ }, "node_modules/eslint": { "version": "8.57.1", - "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/eslint/-/eslint-8.57.1.tgz", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", "integrity": "sha1-ffEJZUq6fju+XI6uUzxeRh08bKk=", "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, @@ -5418,7 +5418,7 @@ }, "node_modules/eslint-plugin-unicorn": { "version": "48.0.1", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/eslint-plugin-unicorn/-/eslint-plugin-unicorn-48.0.1.tgz", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-48.0.1.tgz", "integrity": "sha1-plc7wWh66NtxIf3Y+SOUtlSaaVk=", "dev": true, "license": "MIT", @@ -5532,7 +5532,7 @@ }, "node_modules/eslint/node_modules/escape-string-regexp": { "version": "4.0.0", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ=", "dev": true, "license": "MIT", @@ -5545,7 +5545,7 @@ }, "node_modules/eslint/node_modules/eslint-scope": { "version": "7.2.2", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/eslint-scope/-/eslint-scope-7.2.2.tgz", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", "integrity": "sha1-3rT5JWM5DzIAaJSvYqItuhxGQj8=", "dev": true, "license": "BSD-2-Clause", @@ -5562,7 +5562,7 @@ }, "node_modules/eslint/node_modules/eslint-visitor-keys": { "version": "3.4.3", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha1-DNcv6FUOPC6uFWqWpN3c0cisWAA=", "dev": true, "license": "Apache-2.0", @@ -5575,7 +5575,7 @@ }, "node_modules/eslint/node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/estraverse/-/estraverse-5.3.0.tgz", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha1-LupSkHAvJquP5TcDcP+GyWXSESM=", "dev": true, "license": "BSD-2-Clause", @@ -5585,7 +5585,7 @@ }, "node_modules/eslint/node_modules/find-up": { "version": "5.0.0", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/find-up/-/find-up-5.0.0.tgz", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha1-TJKBnstwg1YeT0okCoa+UZj1Nvw=", "dev": true, "license": "MIT", @@ -5602,7 +5602,7 @@ }, "node_modules/eslint/node_modules/glob-parent": { "version": "6.0.2", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/glob-parent/-/glob-parent-6.0.2.tgz", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha1-bSN9mQg5UMeSkPJMdkKj3poo+eM=", "dev": true, "license": "ISC", @@ -5615,7 +5615,7 @@ }, "node_modules/eslint/node_modules/is-glob": { "version": "4.0.3", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/is-glob/-/is-glob-4.0.3.tgz", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha1-ZPYeQsu7LuwgcanawLKLoeZdUIQ=", "dev": true, "license": "MIT", @@ -5628,7 +5628,7 @@ }, "node_modules/eslint/node_modules/is-path-inside": { "version": "3.0.3", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/is-path-inside/-/is-path-inside-3.0.3.tgz", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha1-0jE2LlOgf/Kw4Op/7QSRYf/RYoM=", "dev": true, "license": "MIT", @@ -5638,7 +5638,7 @@ }, "node_modules/eslint/node_modules/locate-path": { "version": "6.0.0", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/locate-path/-/locate-path-6.0.0.tgz", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha1-VTIeswn+u8WcSAHZMackUqaB0oY=", "dev": true, "license": "MIT", @@ -5654,7 +5654,7 @@ }, "node_modules/eslint/node_modules/p-limit": { "version": "3.1.0", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/p-limit/-/p-limit-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha1-4drMvnjQ0TiMoYxk/qOOPlfjcGs=", "dev": true, "license": "MIT", @@ -5670,7 +5670,7 @@ }, "node_modules/eslint/node_modules/p-locate": { "version": "5.0.0", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/p-locate/-/p-locate-5.0.0.tgz", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha1-g8gxXGeFAF470CGDlBHJ4RDm2DQ=", "dev": true, "license": "MIT", @@ -5686,7 +5686,7 @@ }, "node_modules/espree": { "version": "9.6.1", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/espree/-/espree-9.6.1.tgz", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", "integrity": "sha1-oqF7jkNGkKVDLy+AGM5x0zGkjG8=", "dev": true, "license": "BSD-2-Clause", @@ -5704,7 +5704,7 @@ }, "node_modules/espree/node_modules/eslint-visitor-keys": { "version": "3.4.3", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha1-DNcv6FUOPC6uFWqWpN3c0cisWAA=", "dev": true, "license": "Apache-2.0", @@ -5717,7 +5717,7 @@ }, "node_modules/esquery": { "version": "1.7.0", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/esquery/-/esquery-1.7.0.tgz", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", "integrity": "sha1-CNBI8mHw3e21uulfRoCUY9nJSW0=", "dev": true, "license": "BSD-3-Clause", @@ -5962,21 +5962,21 @@ }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", - "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=", "dev": true, "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true, "license": "MIT" }, "node_modules/fast-uri": { "version": "3.1.6", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/fast-uri/-/fast-uri-3.1.6.tgz", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.6.tgz", "integrity": "sha1-v90wjvdj+DX+0Fnzxskl9wjjPjo=", "dev": true, "funding": [ @@ -6298,7 +6298,7 @@ }, "node_modules/fs-extra": { "version": "10.1.0", - "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dev": true, "dependencies": { @@ -6333,7 +6333,7 @@ }, "node_modules/fsu": { "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/fsu/-/fsu-1.1.1.tgz", + "resolved": "https://registry.npmjs.org/fsu/-/fsu-1.1.1.tgz", "integrity": "sha512-xQVsnjJ/5pQtcKh+KjUoZGzVWn4uNkchxTF6Lwjr4Gf7nQr8fmUfhKJ62zE77+xQg9xnxi5KUps7XGs+VC986A==", "dev": true }, @@ -6700,7 +6700,7 @@ }, "node_modules/globals": { "version": "13.24.0", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/globals/-/globals-13.24.0.tgz", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", "integrity": "sha1-hDKhnXjODB6DOUnDats0VAC7EXE=", "dev": true, "license": "MIT", @@ -6716,7 +6716,7 @@ }, "node_modules/globals/node_modules/type-fest": { "version": "0.20.2", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/type-fest/-/type-fest-0.20.2.tgz", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha1-G/IH9LKPkVg2ZstfvTJ4hzAc1fQ=", "dev": true, "license": "(MIT OR CC0-1.0)", @@ -6758,7 +6758,7 @@ }, "node_modules/graphemer": { "version": "1.4.0", - "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/graphemer/-/graphemer-1.4.0.tgz", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", "integrity": "sha1-+y8dVeDjoYSa7/yQxPoN1ToOZsY=", "dev": true, "license": "MIT" @@ -7652,7 +7652,7 @@ }, "node_modules/import-fresh": { "version": "3.3.1", - "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/import-fresh/-/import-fresh-3.3.1.tgz", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", "integrity": "sha1-nOy1ZQPAraHydB271lRuSxO1fM8=", "dev": true, "license": "MIT", @@ -7745,7 +7745,7 @@ }, "node_modules/ip-address": { "version": "10.3.1", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/ip-address/-/ip-address-10.3.1.tgz", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.3.1.tgz", "integrity": "sha1-kp+WKdFyT34bdIXOiXUvNnUzahA=", "license": "MIT", "engines": { @@ -7830,7 +7830,7 @@ }, "node_modules/is-builtin-module": { "version": "3.2.1", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", "integrity": "sha1-8DJxcX2GVM/K8HqwRj+qNXFYEWk=", "dev": true, "license": "MIT", @@ -8437,7 +8437,7 @@ }, "node_modules/js-yaml": { "version": "4.3.2", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/js-yaml/-/js-yaml-4.3.2.tgz", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.2.tgz", "integrity": "sha1-jkT7FKJkPFlya7FXh7XxUSyz0/s=", "dev": true, "funding": [ @@ -8479,7 +8479,7 @@ }, "node_modules/json-schema-traverse": { "version": "0.4.1", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=", "dev": true, "license": "MIT" @@ -8519,7 +8519,7 @@ }, "node_modules/json-stringify-safe": { "version": "5.0.1", - "resolved": "https://registry.npmmirror.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", "dev": true }, @@ -8541,7 +8541,7 @@ }, "node_modules/jsonfile": { "version": "6.1.0", - "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, "dependencies": { @@ -8676,7 +8676,7 @@ }, "node_modules/levn": { "version": "0.4.1", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/levn/-/levn-0.4.1.tgz", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha1-rkViwAdHO5MqYgDUAyaN0v/8at4=", "dev": true, "license": "MIT", @@ -8800,13 +8800,13 @@ }, "node_modules/lodash.isempty": { "version": "4.4.0", - "resolved": "https://registry.npmmirror.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz", + "resolved": "https://registry.npmjs.org/lodash.isempty/-/lodash.isempty-4.4.0.tgz", "integrity": "sha512-oKMuF3xEeqDltrGMfDxAPGIVMSSRv8tbRSODbrs4KGsRRLEhrW8N8Rd4DRgB2+621hY8A8XwwrTVhXWpxFvMzg==", "dev": true }, "node_modules/lodash.isfunction": { "version": "3.0.9", - "resolved": "https://registry.npmmirror.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", + "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==", "dev": true }, @@ -8824,7 +8824,7 @@ }, "node_modules/lodash.isobject": { "version": "3.0.2", - "resolved": "https://registry.npmmirror.com/lodash.isobject/-/lodash.isobject-3.0.2.tgz", + "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz", "integrity": "sha512-3/Qptq2vr7WeJbB4KHUSKlq8Pl7ASXi3UG6CMbBm8WRtXi8+GHm7mKaU3urfpSEzWe2wCIChs6/sdocUsTKJiA==", "dev": true }, @@ -8836,13 +8836,13 @@ }, "node_modules/lodash.isstring": { "version": "4.0.1", - "resolved": "https://registry.npmmirror.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", "dev": true }, "node_modules/lodash.merge": { "version": "4.6.2", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/lodash.merge/-/lodash.merge-4.6.2.tgz", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha1-VYqlO0O2YeGSWgr9+japoQhf5Xo=", "dev": true, "license": "MIT" @@ -9090,7 +9090,7 @@ }, "node_modules/min-indent": { "version": "1.0.1", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/min-indent/-/min-indent-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", "integrity": "sha1-pj9oFnOzBXH76LwlaGrnRu76mGk=", "dev": true, "license": "MIT", @@ -9431,7 +9431,7 @@ }, "node_modules/mochawesome": { "version": "7.1.3", - "resolved": "https://registry.npmmirror.com/mochawesome/-/mochawesome-7.1.3.tgz", + "resolved": "https://registry.npmjs.org/mochawesome/-/mochawesome-7.1.3.tgz", "integrity": "sha512-Vkb3jR5GZ1cXohMQQ73H3cZz7RoxGjjUo0G5hu0jLaW+0FdUxUwg3Cj29bqQdh0rFcnyV06pWmqmi5eBPnEuNQ==", "dev": true, "dependencies": { @@ -9452,7 +9452,7 @@ }, "node_modules/mochawesome-report-generator": { "version": "6.2.0", - "resolved": "https://registry.npmmirror.com/mochawesome-report-generator/-/mochawesome-report-generator-6.2.0.tgz", + "resolved": "https://registry.npmjs.org/mochawesome-report-generator/-/mochawesome-report-generator-6.2.0.tgz", "integrity": "sha512-Ghw8JhQFizF0Vjbtp9B0i//+BOkV5OWcQCPpbO0NGOoxV33o+gKDYU0Pr2pGxkIHnqZ+g5mYiXF7GMNgAcDpSg==", "dev": true, "dependencies": { @@ -9475,7 +9475,7 @@ }, "node_modules/mochawesome-report-generator/node_modules/yargs": { "version": "17.5.1", - "resolved": "https://registry.npmmirror.com/yargs/-/yargs-17.5.1.tgz", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", "dev": true, "dependencies": { @@ -9493,7 +9493,7 @@ }, "node_modules/mochawesome-report-generator/node_modules/yargs-parser": { "version": "21.0.1", - "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-21.0.1.tgz", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", "dev": true, "engines": { @@ -10130,7 +10130,7 @@ }, "node_modules/optionator": { "version": "0.9.4", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/optionator/-/optionator-0.9.4.tgz", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", "integrity": "sha1-fqHBpdkddk+yghOciP4R4YKjpzQ=", "dev": true, "license": "MIT", @@ -10247,7 +10247,7 @@ }, "node_modules/parent-module": { "version": "1.0.1", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/parent-module/-/parent-module-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI=", "dev": true, "license": "MIT", @@ -10690,7 +10690,7 @@ }, "node_modules/prelude-ls": { "version": "1.2.1", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/prelude-ls/-/prelude-ls-1.2.1.tgz", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha1-3rxkidem5rDnYRiIzsiAM30xY5Y=", "dev": true, "license": "MIT", @@ -10750,7 +10750,7 @@ }, "node_modules/prop-types": { "version": "15.8.1", - "resolved": "https://registry.npmmirror.com/prop-types/-/prop-types-15.8.1.tgz", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", "dev": true, "dependencies": { @@ -10848,7 +10848,7 @@ }, "node_modules/queue-microtask": { "version": "1.2.3", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/queue-microtask/-/queue-microtask-1.2.3.tgz", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha1-SSkii7xyTfrEPg77BYyve2z7YkM=", "dev": true, "funding": [ @@ -10915,7 +10915,7 @@ }, "node_modules/react-is": { "version": "16.13.1", - "resolved": "https://registry.npmmirror.com/react-is/-/react-is-16.13.1.tgz", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "dev": true }, @@ -11047,7 +11047,7 @@ }, "node_modules/regexp-tree": { "version": "0.1.27", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/regexp-tree/-/regexp-tree-0.1.27.tgz", + "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz", "integrity": "sha1-IZjw71RRj/p0P+dNmDtW/9Yxts0=", "dev": true, "license": "MIT", @@ -11057,7 +11057,7 @@ }, "node_modules/regjsparser": { "version": "0.10.0", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/regjsparser/-/regjsparser-0.10.0.tgz", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.10.0.tgz", "integrity": "sha1-se0mBRc2tDbyL97ByPcmNfn0SJI=", "dev": true, "license": "BSD-2-Clause", @@ -11070,7 +11070,7 @@ }, "node_modules/regjsparser/node_modules/jsesc": { "version": "0.5.0", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/jsesc/-/jsesc-0.5.0.tgz", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", "dev": true, "bin": { @@ -11156,7 +11156,7 @@ }, "node_modules/resolve-from": { "version": "4.0.0", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/resolve-from/-/resolve-from-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=", "dev": true, "license": "MIT", @@ -11291,7 +11291,7 @@ }, "node_modules/run-parallel": { "version": "1.2.0", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/run-parallel/-/run-parallel-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha1-ZtE2jae9+SHrnZW9GpIp5/IaQ+4=", "dev": true, "funding": [ @@ -11573,7 +11573,7 @@ }, "node_modules/shell-quote": { "version": "1.10.0", - "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/shell-quote/-/shell-quote-1.10.0.tgz", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.10.0.tgz", "integrity": "sha1-SCAz4ZLk9cBxUVIf+gNADscbGw8=", "dev": true, "license": "MIT", @@ -11981,7 +11981,7 @@ }, "node_modules/string-width": { "version": "4.2.3", - "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dependencies": { "emoji-regex": "^8.0.0", @@ -12028,7 +12028,7 @@ }, "node_modules/strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dependencies": { "ansi-regex": "^5.0.1" @@ -12059,7 +12059,7 @@ }, "node_modules/strip-indent": { "version": "3.0.0", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/strip-indent/-/strip-indent-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", "integrity": "sha1-wy4c7pQLazQyx3G8LFS8znPNMAE=", "dev": true, "license": "MIT", @@ -12236,13 +12236,13 @@ }, "node_modules/tcomb": { "version": "3.2.29", - "resolved": "https://registry.npmmirror.com/tcomb/-/tcomb-3.2.29.tgz", + "resolved": "https://registry.npmjs.org/tcomb/-/tcomb-3.2.29.tgz", "integrity": "sha512-di2Hd1DB2Zfw6StGv861JoAF5h/uQVu/QJp2g8KVbtfKnoHdBQl5M32YWq6mnSYBQ1vFFrns5B1haWJL7rKaOQ==", "dev": true }, "node_modules/tcomb-validation": { "version": "3.4.1", - "resolved": "https://registry.npmmirror.com/tcomb-validation/-/tcomb-validation-3.4.1.tgz", + "resolved": "https://registry.npmjs.org/tcomb-validation/-/tcomb-validation-3.4.1.tgz", "integrity": "sha512-urVVMQOma4RXwiVCa2nM2eqrAomHROHvWPuj6UkDGz/eb5kcy0x6P0dVt6kzpUZtYMNoAqJLWmz1BPtxrtjtrA==", "dev": true, "dependencies": { @@ -12484,7 +12484,7 @@ }, "node_modules/tinyglobby": { "version": "0.2.17", - "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/tinyglobby/-/tinyglobby-0.2.17.tgz", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", "integrity": "sha1-ViqabJ6ys7Ej05cZ+a9btE/NdjE=", "dev": true, "license": "MIT", @@ -12501,7 +12501,7 @@ }, "node_modules/tinyglobby/node_modules/fdir": { "version": "6.5.0", - "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/fdir/-/fdir-6.5.0.tgz", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", "integrity": "sha1-7Sq5Z6MxreYvGNB32uGSaE1Q01A=", "dev": true, "license": "MIT", @@ -12519,7 +12519,7 @@ }, "node_modules/tinyglobby/node_modules/picomatch": { "version": "4.0.5", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/picomatch/-/picomatch-4.0.5.tgz", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", "integrity": "sha1-UepXoX2G9gX4EDlZX7xA7QalX6s=", "dev": true, "license": "MIT", @@ -12587,7 +12587,7 @@ }, "node_modules/ts-api-utils": { "version": "2.5.0", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/ts-api-utils/-/ts-api-utils-2.5.0.tgz", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", "integrity": "sha1-Ss1KFV4ic0mQpe0f6el/ETvLN8E=", "dev": true, "license": "MIT", @@ -12649,7 +12649,7 @@ }, "node_modules/type-check": { "version": "0.4.0", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/type-check/-/type-check-0.4.0.tgz", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha1-B7ggO/pwVsBlcFDjzNLDdzC6uPE=", "dev": true, "license": "MIT", @@ -12700,7 +12700,7 @@ "node_modules/typescript": { "name": "@typescript/typescript6", "version": "6.0.2", - "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript/typescript6/-/typescript6-6.0.2.tgz", + "resolved": "https://registry.npmjs.org/@typescript/typescript6/-/typescript6-6.0.2.tgz", "integrity": "sha1-eeDkdJJWTIP4YCAT190Q1evFGow=", "dev": true, "license": "Apache-2.0", @@ -12714,7 +12714,7 @@ "node_modules/typescript-7": { "name": "typescript", "version": "7.0.2", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/typescript/-/typescript-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-7.0.2.tgz", "integrity": "sha1-nsdz15VKjBgsF8xbvVdaoovFFYI=", "dev": true, "license": "Apache-2.0", @@ -12866,7 +12866,7 @@ }, "node_modules/universalify": { "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "dev": true, "engines": { @@ -13457,7 +13457,7 @@ }, "node_modules/word-wrap": { "version": "1.2.5", - "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/word-wrap/-/word-wrap-1.2.5.tgz", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", "integrity": "sha1-0sRcbdT7zmIaZvE2y+Mor9BBCzQ=", "dev": true, "license": "MIT", @@ -14153,7 +14153,7 @@ }, "@eslint-community/eslint-utils": { "version": "4.10.1", - "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@eslint-community/eslint-utils/-/eslint-utils-4.10.1.tgz", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.10.1.tgz", "integrity": "sha1-iRG9crLDZApUNgngQAuMTS5+fLY=", "dev": true, "requires": { @@ -14162,7 +14162,7 @@ "dependencies": { "eslint-visitor-keys": { "version": "3.4.3", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha1-DNcv6FUOPC6uFWqWpN3c0cisWAA=", "dev": true } @@ -14170,13 +14170,13 @@ }, "@eslint-community/regexpp": { "version": "4.12.2", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", "integrity": "sha1-vM32Fbz3tujbgw7AuNIcmiXeWXs=", "dev": true }, "@eslint/eslintrc": { "version": "2.1.4", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", "integrity": "sha1-OIomnw8lwbatwxe1osVXFIlMcK0=", "dev": true, "requires": { @@ -14193,7 +14193,7 @@ "dependencies": { "strip-json-comments": { "version": "3.1.1", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY=", "dev": true } @@ -14201,7 +14201,7 @@ }, "@eslint/js": { "version": "8.57.1", - "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@eslint/js/-/js-8.57.1.tgz", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", "integrity": "sha1-3mM9s+wu9qPIni8ZA4Bj6KEi4sI=", "dev": true }, @@ -14222,7 +14222,7 @@ }, "@humanwhocodes/config-array": { "version": "0.13.0", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", "integrity": "sha1-+5B2JN8yVtBLmqLfUNeql+xkh0g=", "dev": true, "requires": { @@ -14233,13 +14233,13 @@ }, "@humanwhocodes/module-importer": { "version": "1.0.1", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", "integrity": "sha1-r1smkaIrRL6EewyoFkHF+2rQFyw=", "dev": true }, "@humanwhocodes/object-schema": { "version": "2.0.3", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", "integrity": "sha1-Siho111taWPkI7z5C3/RvjQ0CdM=", "dev": true }, @@ -14403,7 +14403,7 @@ }, "@nodelib/fs.scandir": { "version": "2.1.5", - "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha1-dhnC6yGyVIP20WdUi0z9WnSIw9U=", "dev": true, "requires": { @@ -14413,13 +14413,13 @@ }, "@nodelib/fs.stat": { "version": "2.0.5", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha1-W9Jir5Tp0lvR5xsF3u1Eh2oiLos=", "dev": true }, "@nodelib/fs.walk": { "version": "1.2.8", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha1-6Vc36LtnRt3t9pxVaVNJTxlv5po=", "dev": true, "requires": { @@ -14923,7 +14923,7 @@ }, "@types/vscode": { "version": "1.75.0", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@types/vscode/-/vscode-1.75.0.tgz", + "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.75.0.tgz", "integrity": "sha1-8Ykqcn25oOtJlwWKgEFwuMC6IY4=", "dev": true }, @@ -14947,7 +14947,7 @@ }, "@typescript-eslint/eslint-plugin": { "version": "8.67.0", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.67.0.tgz", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.67.0.tgz", "integrity": "sha1-Uvnw5H1adXHEM25pv+6lgVCe8s8=", "dev": true, "requires": { @@ -14963,7 +14963,7 @@ "dependencies": { "ignore": { "version": "7.0.6", - "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/ignore/-/ignore-7.0.6.tgz", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.6.tgz", "integrity": "sha1-aleq70yQ3yesNZCHXSno8RmIyI4=", "dev": true } @@ -14971,7 +14971,7 @@ }, "@typescript-eslint/parser": { "version": "8.67.0", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript-eslint/parser/-/parser-8.67.0.tgz", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.67.0.tgz", "integrity": "sha1-AVgCLsmSfgr81YqMwq1X4B2JL1w=", "dev": true, "requires": { @@ -14984,7 +14984,7 @@ }, "@typescript-eslint/project-service": { "version": "8.67.0", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript-eslint/project-service/-/project-service-8.67.0.tgz", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.67.0.tgz", "integrity": "sha1-FVLbAHypIGocbHrPSeIQvReoxW8=", "dev": true, "requires": { @@ -14995,7 +14995,7 @@ }, "@typescript-eslint/scope-manager": { "version": "8.67.0", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript-eslint/scope-manager/-/scope-manager-8.67.0.tgz", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.67.0.tgz", "integrity": "sha1-TUwtoJVg0Q3X2UfLotKdFNJa8W0=", "dev": true, "requires": { @@ -15005,14 +15005,14 @@ }, "@typescript-eslint/tsconfig-utils": { "version": "8.67.0", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.67.0.tgz", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.67.0.tgz", "integrity": "sha1-9Fo+umuRMvtHFB7APOLydfHqmR0=", "dev": true, "requires": {} }, "@typescript-eslint/type-utils": { "version": "8.67.0", - "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript-eslint/type-utils/-/type-utils-8.67.0.tgz", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.67.0.tgz", "integrity": "sha1-lr7RBSdVWd87zwRJtzpkFNNcWc4=", "dev": true, "requires": { @@ -15025,13 +15025,13 @@ }, "@typescript-eslint/types": { "version": "8.67.0", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript-eslint/types/-/types-8.67.0.tgz", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.67.0.tgz", "integrity": "sha1-So0AzB+rpcFP6rxg+Ft6MmUvNLY=", "dev": true }, "@typescript-eslint/typescript-estree": { "version": "8.67.0", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript-eslint/typescript-estree/-/typescript-estree-8.67.0.tgz", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.67.0.tgz", "integrity": "sha1-EWw6R8BhGcWgUOiFGGHWSX3WS8I=", "dev": true, "requires": { @@ -15048,7 +15048,7 @@ "dependencies": { "minimatch": { "version": "10.2.6", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/minimatch/-/minimatch-10.2.6.tgz", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", "integrity": "sha1-/ZVrvgt3JB6fFaxdzLHGOAYJaO8=", "dev": true, "requires": { @@ -15057,7 +15057,7 @@ }, "semver": { "version": "7.8.5", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/semver/-/semver-7.8.5.tgz", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", "integrity": "sha1-ObZGA33VDBT7RR5+TKxY7YuGP2k=", "dev": true } @@ -15065,7 +15065,7 @@ }, "@typescript-eslint/utils": { "version": "8.67.0", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript-eslint/utils/-/utils-8.67.0.tgz", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.67.0.tgz", "integrity": "sha1-PkeKPWnTMKH8UMEnRswu4HMsz80=", "dev": true, "requires": { @@ -15077,7 +15077,7 @@ }, "@typescript-eslint/visitor-keys": { "version": "8.67.0", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript-eslint/visitor-keys/-/visitor-keys-8.67.0.tgz", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.67.0.tgz", "integrity": "sha1-YB1Ar5rPgqKNoihvPtr8abupAX8=", "dev": true, "requires": { @@ -15087,7 +15087,7 @@ "dependencies": { "eslint-visitor-keys": { "version": "5.0.1", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", "integrity": "sha1-njyUiWl4JNLUzjqK0SYo+R6fWb4=", "dev": true } @@ -15095,146 +15095,146 @@ }, "@typescript/old": { "version": "npm:typescript@6.0.3", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/typescript/-/typescript-6.0.3.tgz", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", "integrity": "sha1-kCUdwAeRbpcnhsuU100VsYVXfSE=", "dev": true }, "@typescript/typescript-aix-ppc64": { "version": "7.0.2", - "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript/typescript-aix-ppc64/-/typescript-aix-ppc64-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/@typescript/typescript-aix-ppc64/-/typescript-aix-ppc64-7.0.2.tgz", "integrity": "sha1-zcfOgdYPHgkDSWDd+x+4gNendrY=", "dev": true, "optional": true }, "@typescript/typescript-darwin-arm64": { "version": "7.0.2", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript/typescript-darwin-arm64/-/typescript-darwin-arm64-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-arm64/-/typescript-darwin-arm64-7.0.2.tgz", "integrity": "sha1-pV/fz6WN9Y0n2yI3zealweNacjU=", "dev": true, "optional": true }, "@typescript/typescript-darwin-x64": { "version": "7.0.2", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript/typescript-darwin-x64/-/typescript-darwin-x64-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-x64/-/typescript-darwin-x64-7.0.2.tgz", "integrity": "sha1-ONHJFygAqR1we+xk0qNwoBZjTbQ=", "dev": true, "optional": true }, "@typescript/typescript-freebsd-arm64": { "version": "7.0.2", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript/typescript-freebsd-arm64/-/typescript-freebsd-arm64-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-arm64/-/typescript-freebsd-arm64-7.0.2.tgz", "integrity": "sha1-8f+IEAMLNdK1vg22otxlBGDqlPo=", "dev": true, "optional": true }, "@typescript/typescript-freebsd-x64": { "version": "7.0.2", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript/typescript-freebsd-x64/-/typescript-freebsd-x64-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-x64/-/typescript-freebsd-x64-7.0.2.tgz", "integrity": "sha1-PYawPzU8WxupUWLrbONVM7/ClL0=", "dev": true, "optional": true }, "@typescript/typescript-linux-arm": { "version": "7.0.2", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript/typescript-linux-arm/-/typescript-linux-arm-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm/-/typescript-linux-arm-7.0.2.tgz", "integrity": "sha1-rZS0HhruKk3MaimMe2fEM0X94y4=", "dev": true, "optional": true }, "@typescript/typescript-linux-arm64": { "version": "7.0.2", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript/typescript-linux-arm64/-/typescript-linux-arm64-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm64/-/typescript-linux-arm64-7.0.2.tgz", "integrity": "sha1-2TNNltbaxv+F2pyGVYiUjek56R8=", "dev": true, "optional": true }, "@typescript/typescript-linux-loong64": { "version": "7.0.2", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript/typescript-linux-loong64/-/typescript-linux-loong64-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-loong64/-/typescript-linux-loong64-7.0.2.tgz", "integrity": "sha1-KWWu5PyHM2ATnYk9qv5jl6KROK0=", "dev": true, "optional": true }, "@typescript/typescript-linux-mips64el": { "version": "7.0.2", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript/typescript-linux-mips64el/-/typescript-linux-mips64el-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-mips64el/-/typescript-linux-mips64el-7.0.2.tgz", "integrity": "sha1-Goh6MRvtOoM/gL/Uqe03wnGTbPA=", "dev": true, "optional": true }, "@typescript/typescript-linux-ppc64": { "version": "7.0.2", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript/typescript-linux-ppc64/-/typescript-linux-ppc64-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-ppc64/-/typescript-linux-ppc64-7.0.2.tgz", "integrity": "sha1-i2PJsvRFs5PrTkPsIdoiXa3jV30=", "dev": true, "optional": true }, "@typescript/typescript-linux-riscv64": { "version": "7.0.2", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript/typescript-linux-riscv64/-/typescript-linux-riscv64-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-riscv64/-/typescript-linux-riscv64-7.0.2.tgz", "integrity": "sha1-tuijXCibPql6kqQdRhqu7Q07NuE=", "dev": true, "optional": true }, "@typescript/typescript-linux-s390x": { "version": "7.0.2", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript/typescript-linux-s390x/-/typescript-linux-s390x-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-s390x/-/typescript-linux-s390x-7.0.2.tgz", "integrity": "sha1-Lvlmk75IYfbReWVCflsAnLvtGj4=", "dev": true, "optional": true }, "@typescript/typescript-linux-x64": { "version": "7.0.2", - "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript/typescript-linux-x64/-/typescript-linux-x64-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-x64/-/typescript-linux-x64-7.0.2.tgz", "integrity": "sha1-cyacsLq6UK6gygYERaa4jlg/HOI=", "dev": true, "optional": true }, "@typescript/typescript-netbsd-arm64": { "version": "7.0.2", - "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript/typescript-netbsd-arm64/-/typescript-netbsd-arm64-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-arm64/-/typescript-netbsd-arm64-7.0.2.tgz", "integrity": "sha1-OjZJ+X+vohC05uN5jBXgZgXIqQE=", "dev": true, "optional": true }, "@typescript/typescript-netbsd-x64": { "version": "7.0.2", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript/typescript-netbsd-x64/-/typescript-netbsd-x64-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-x64/-/typescript-netbsd-x64-7.0.2.tgz", "integrity": "sha1-R+xZSRpAxHDSgH3E0rglUo/Zeas=", "dev": true, "optional": true }, "@typescript/typescript-openbsd-arm64": { "version": "7.0.2", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript/typescript-openbsd-arm64/-/typescript-openbsd-arm64-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-arm64/-/typescript-openbsd-arm64-7.0.2.tgz", "integrity": "sha1-eWvo2gvZidij+5bygB44qDZbS68=", "dev": true, "optional": true }, "@typescript/typescript-openbsd-x64": { "version": "7.0.2", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript/typescript-openbsd-x64/-/typescript-openbsd-x64-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-x64/-/typescript-openbsd-x64-7.0.2.tgz", "integrity": "sha1-03/ipynrlCwHbEVO5/GBX699Vg8=", "dev": true, "optional": true }, "@typescript/typescript-sunos-x64": { "version": "7.0.2", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript/typescript-sunos-x64/-/typescript-sunos-x64-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/@typescript/typescript-sunos-x64/-/typescript-sunos-x64-7.0.2.tgz", "integrity": "sha1-q6jTRkw1ZacER4m6upaRa9SrLIg=", "dev": true, "optional": true }, "@typescript/typescript-win32-arm64": { "version": "7.0.2", - "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript/typescript-win32-arm64/-/typescript-win32-arm64-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-arm64/-/typescript-win32-arm64-7.0.2.tgz", "integrity": "sha1-ud5QoXGWOD9iYgtfnQovNK07YNc=", "dev": true, "optional": true }, "@typescript/typescript-win32-x64": { "version": "7.0.2", - "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript/typescript-win32-x64/-/typescript-win32-x64-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-x64/-/typescript-win32-x64-7.0.2.tgz", "integrity": "sha1-zzt7DWzlY12spMjgHBic3N5H7Dw=", "dev": true, "optional": true @@ -15260,7 +15260,7 @@ }, "@ungap/structured-clone": { "version": "1.3.3", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@ungap/structured-clone/-/structured-clone-1.3.3.tgz", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.3.tgz", "integrity": "sha1-CUBB4aTLGYfwODNUISgayL45C8w=", "dev": true }, @@ -15329,7 +15329,7 @@ }, "@vscode/test-electron": { "version": "3.1.0", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@vscode/test-electron/-/test-electron-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/@vscode/test-electron/-/test-electron-3.1.0.tgz", "integrity": "sha1-Rrk9EY3NOzyJyq4pahP5p/XrY8U=", "dev": true, "requires": { @@ -15824,13 +15824,13 @@ }, "acorn": { "version": "8.18.0", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/acorn/-/acorn-8.18.0.tgz", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.18.0.tgz", "integrity": "sha1-T68BstbTJr/u2XrqH1IiC19MGUA=", "dev": true }, "acorn-jsx": { "version": "5.3.2", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha1-ftW7VZCLOy8bxVxq8WU7rafweTc=", "dev": true, "requires": {} @@ -15862,7 +15862,7 @@ }, "ajv": { "version": "6.15.0", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/ajv/-/ajv-6.15.0.tgz", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", "integrity": "sha1-B+mCx0YmFnqnoklcU4F4ktcTlJI=", "dev": true, "requires": { @@ -16353,7 +16353,7 @@ }, "brace-expansion": { "version": "5.0.9", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/brace-expansion/-/brace-expansion-5.0.9.tgz", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.9.tgz", "integrity": "sha1-fHJDiAm1+lur9UGZofHCgaaYT88=", "requires": { "balanced-match": "^4.0.2" @@ -16424,7 +16424,7 @@ }, "builtin-modules": { "version": "3.3.0", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/builtin-modules/-/builtin-modules-3.3.0.tgz", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", "integrity": "sha1-yuYoEriYAellYzbkYiPgMDhr57Y=", "dev": true }, @@ -16483,7 +16483,7 @@ }, "callsites": { "version": "3.1.0", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/callsites/-/callsites-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M=", "dev": true }, @@ -16495,7 +16495,7 @@ }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { @@ -16589,7 +16589,7 @@ }, "ci-info": { "version": "3.9.0", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/ci-info/-/ci-info-3.9.0.tgz", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", "integrity": "sha1-QnmmICinsfJi80c/yWBfXiGMWbQ=", "dev": true }, @@ -16844,7 +16844,7 @@ }, "dateformat": { "version": "4.6.3", - "resolved": "https://registry.npmmirror.com/dateformat/-/dateformat-4.6.3.tgz", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==", "dev": true }, @@ -16865,7 +16865,7 @@ }, "decode-uri-component": { "version": "0.5.0", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/decode-uri-component/-/decode-uri-component-0.5.0.tgz", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.5.0.tgz", "integrity": "sha1-RZL6Hh1kDsXidg4uForSq18snaE=" }, "decompress-response": { @@ -16887,7 +16887,7 @@ }, "deep-is": { "version": "0.1.4", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/deep-is/-/deep-is-0.1.4.tgz", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha1-pvLc5hL63S7x9Rm3NVHxfoUZmDE=", "dev": true }, @@ -17343,7 +17343,7 @@ }, "escape-html": { "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", "dev": true }, @@ -17355,7 +17355,7 @@ }, "eslint": { "version": "8.57.1", - "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/eslint/-/eslint-8.57.1.tgz", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", "integrity": "sha1-ffEJZUq6fju+XI6uUzxeRh08bKk=", "dev": true, "requires": { @@ -17401,13 +17401,13 @@ "dependencies": { "escape-string-regexp": { "version": "4.0.0", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ=", "dev": true }, "eslint-scope": { "version": "7.2.2", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/eslint-scope/-/eslint-scope-7.2.2.tgz", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", "integrity": "sha1-3rT5JWM5DzIAaJSvYqItuhxGQj8=", "dev": true, "requires": { @@ -17417,19 +17417,19 @@ }, "eslint-visitor-keys": { "version": "3.4.3", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha1-DNcv6FUOPC6uFWqWpN3c0cisWAA=", "dev": true }, "estraverse": { "version": "5.3.0", - "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/estraverse/-/estraverse-5.3.0.tgz", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha1-LupSkHAvJquP5TcDcP+GyWXSESM=", "dev": true }, "find-up": { "version": "5.0.0", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/find-up/-/find-up-5.0.0.tgz", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha1-TJKBnstwg1YeT0okCoa+UZj1Nvw=", "dev": true, "requires": { @@ -17439,7 +17439,7 @@ }, "glob-parent": { "version": "6.0.2", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/glob-parent/-/glob-parent-6.0.2.tgz", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha1-bSN9mQg5UMeSkPJMdkKj3poo+eM=", "dev": true, "requires": { @@ -17448,7 +17448,7 @@ }, "is-glob": { "version": "4.0.3", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/is-glob/-/is-glob-4.0.3.tgz", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha1-ZPYeQsu7LuwgcanawLKLoeZdUIQ=", "dev": true, "requires": { @@ -17457,13 +17457,13 @@ }, "is-path-inside": { "version": "3.0.3", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/is-path-inside/-/is-path-inside-3.0.3.tgz", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha1-0jE2LlOgf/Kw4Op/7QSRYf/RYoM=", "dev": true }, "locate-path": { "version": "6.0.0", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/locate-path/-/locate-path-6.0.0.tgz", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha1-VTIeswn+u8WcSAHZMackUqaB0oY=", "dev": true, "requires": { @@ -17472,7 +17472,7 @@ }, "p-limit": { "version": "3.1.0", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/p-limit/-/p-limit-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha1-4drMvnjQ0TiMoYxk/qOOPlfjcGs=", "dev": true, "requires": { @@ -17481,7 +17481,7 @@ }, "p-locate": { "version": "5.0.0", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/p-locate/-/p-locate-5.0.0.tgz", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha1-g8gxXGeFAF470CGDlBHJ4RDm2DQ=", "dev": true, "requires": { @@ -17725,7 +17725,7 @@ }, "eslint-plugin-unicorn": { "version": "48.0.1", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/eslint-plugin-unicorn/-/eslint-plugin-unicorn-48.0.1.tgz", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-48.0.1.tgz", "integrity": "sha1-plc7wWh66NtxIf3Y+SOUtlSaaVk=", "dev": true, "requires": { @@ -17812,7 +17812,7 @@ }, "espree": { "version": "9.6.1", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/espree/-/espree-9.6.1.tgz", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", "integrity": "sha1-oqF7jkNGkKVDLy+AGM5x0zGkjG8=", "dev": true, "requires": { @@ -17823,7 +17823,7 @@ "dependencies": { "eslint-visitor-keys": { "version": "3.4.3", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha1-DNcv6FUOPC6uFWqWpN3c0cisWAA=", "dev": true } @@ -17831,7 +17831,7 @@ }, "esquery": { "version": "1.7.0", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/esquery/-/esquery-1.7.0.tgz", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", "integrity": "sha1-CNBI8mHw3e21uulfRoCUY9nJSW0=", "dev": true, "requires": { @@ -18028,19 +18028,19 @@ }, "fast-json-stable-stringify": { "version": "2.1.0", - "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=", "dev": true }, "fast-levenshtein": { "version": "2.0.6", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, "fast-uri": { "version": "3.1.6", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/fast-uri/-/fast-uri-3.1.6.tgz", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.6.tgz", "integrity": "sha1-v90wjvdj+DX+0Fnzxskl9wjjPjo=", "dev": true }, @@ -18301,7 +18301,7 @@ }, "fs-extra": { "version": "10.1.0", - "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dev": true, "requires": { @@ -18325,7 +18325,7 @@ }, "fsu": { "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/fsu/-/fsu-1.1.1.tgz", + "resolved": "https://registry.npmjs.org/fsu/-/fsu-1.1.1.tgz", "integrity": "sha512-xQVsnjJ/5pQtcKh+KjUoZGzVWn4uNkchxTF6Lwjr4Gf7nQr8fmUfhKJ62zE77+xQg9xnxi5KUps7XGs+VC986A==", "dev": true }, @@ -18601,7 +18601,7 @@ }, "globals": { "version": "13.24.0", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/globals/-/globals-13.24.0.tgz", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", "integrity": "sha1-hDKhnXjODB6DOUnDats0VAC7EXE=", "dev": true, "requires": { @@ -18610,7 +18610,7 @@ "dependencies": { "type-fest": { "version": "0.20.2", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/type-fest/-/type-fest-0.20.2.tgz", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha1-G/IH9LKPkVg2ZstfvTJ4hzAc1fQ=", "dev": true } @@ -18638,7 +18638,7 @@ }, "graphemer": { "version": "1.4.0", - "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/graphemer/-/graphemer-1.4.0.tgz", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", "integrity": "sha1-+y8dVeDjoYSa7/yQxPoN1ToOZsY=", "dev": true }, @@ -19258,7 +19258,7 @@ }, "import-fresh": { "version": "3.3.1", - "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/import-fresh/-/import-fresh-3.3.1.tgz", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", "integrity": "sha1-nOy1ZQPAraHydB271lRuSxO1fM8=", "dev": true, "requires": { @@ -19324,7 +19324,7 @@ }, "ip-address": { "version": "10.3.1", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/ip-address/-/ip-address-10.3.1.tgz", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.3.1.tgz", "integrity": "sha1-kp+WKdFyT34bdIXOiXUvNnUzahA=" }, "is": { @@ -19390,7 +19390,7 @@ }, "is-builtin-module": { "version": "3.2.1", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", "integrity": "sha1-8DJxcX2GVM/K8HqwRj+qNXFYEWk=", "dev": true, "requires": { @@ -19825,7 +19825,7 @@ }, "js-yaml": { "version": "4.3.2", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/js-yaml/-/js-yaml-4.3.2.tgz", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.2.tgz", "integrity": "sha1-jkT7FKJkPFlya7FXh7XxUSyz0/s=", "dev": true, "requires": { @@ -19846,7 +19846,7 @@ }, "json-schema-traverse": { "version": "0.4.1", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=", "dev": true }, @@ -19879,7 +19879,7 @@ }, "json-stringify-safe": { "version": "5.0.1", - "resolved": "https://registry.npmmirror.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", "dev": true }, @@ -19898,7 +19898,7 @@ }, "jsonfile": { "version": "6.1.0", - "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, "requires": { @@ -20013,7 +20013,7 @@ }, "levn": { "version": "0.4.1", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/levn/-/levn-0.4.1.tgz", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha1-rkViwAdHO5MqYgDUAyaN0v/8at4=", "dev": true, "requires": { @@ -20109,13 +20109,13 @@ }, "lodash.isempty": { "version": "4.4.0", - "resolved": "https://registry.npmmirror.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz", + "resolved": "https://registry.npmjs.org/lodash.isempty/-/lodash.isempty-4.4.0.tgz", "integrity": "sha512-oKMuF3xEeqDltrGMfDxAPGIVMSSRv8tbRSODbrs4KGsRRLEhrW8N8Rd4DRgB2+621hY8A8XwwrTVhXWpxFvMzg==", "dev": true }, "lodash.isfunction": { "version": "3.0.9", - "resolved": "https://registry.npmmirror.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", + "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==", "dev": true }, @@ -20133,7 +20133,7 @@ }, "lodash.isobject": { "version": "3.0.2", - "resolved": "https://registry.npmmirror.com/lodash.isobject/-/lodash.isobject-3.0.2.tgz", + "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz", "integrity": "sha512-3/Qptq2vr7WeJbB4KHUSKlq8Pl7ASXi3UG6CMbBm8WRtXi8+GHm7mKaU3urfpSEzWe2wCIChs6/sdocUsTKJiA==", "dev": true }, @@ -20145,13 +20145,13 @@ }, "lodash.isstring": { "version": "4.0.1", - "resolved": "https://registry.npmmirror.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", "dev": true }, "lodash.merge": { "version": "4.6.2", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/lodash.merge/-/lodash.merge-4.6.2.tgz", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha1-VYqlO0O2YeGSWgr9+japoQhf5Xo=", "dev": true }, @@ -20333,7 +20333,7 @@ }, "min-indent": { "version": "1.0.1", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/min-indent/-/min-indent-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", "integrity": "sha1-pj9oFnOzBXH76LwlaGrnRu76mGk=", "dev": true }, @@ -20582,7 +20582,7 @@ }, "mochawesome": { "version": "7.1.3", - "resolved": "https://registry.npmmirror.com/mochawesome/-/mochawesome-7.1.3.tgz", + "resolved": "https://registry.npmjs.org/mochawesome/-/mochawesome-7.1.3.tgz", "integrity": "sha512-Vkb3jR5GZ1cXohMQQ73H3cZz7RoxGjjUo0G5hu0jLaW+0FdUxUwg3Cj29bqQdh0rFcnyV06pWmqmi5eBPnEuNQ==", "dev": true, "requires": { @@ -20608,7 +20608,7 @@ }, "mochawesome-report-generator": { "version": "6.2.0", - "resolved": "https://registry.npmmirror.com/mochawesome-report-generator/-/mochawesome-report-generator-6.2.0.tgz", + "resolved": "https://registry.npmjs.org/mochawesome-report-generator/-/mochawesome-report-generator-6.2.0.tgz", "integrity": "sha512-Ghw8JhQFizF0Vjbtp9B0i//+BOkV5OWcQCPpbO0NGOoxV33o+gKDYU0Pr2pGxkIHnqZ+g5mYiXF7GMNgAcDpSg==", "dev": true, "requires": { @@ -20628,7 +20628,7 @@ "dependencies": { "yargs": { "version": "17.5.1", - "resolved": "https://registry.npmmirror.com/yargs/-/yargs-17.5.1.tgz", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", "dev": true, "requires": { @@ -20643,7 +20643,7 @@ }, "yargs-parser": { "version": "21.0.1", - "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-21.0.1.tgz", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", "dev": true } @@ -21150,7 +21150,7 @@ }, "optionator": { "version": "0.9.4", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/optionator/-/optionator-0.9.4.tgz", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", "integrity": "sha1-fqHBpdkddk+yghOciP4R4YKjpzQ=", "dev": true, "requires": { @@ -21242,7 +21242,7 @@ }, "parent-module": { "version": "1.0.1", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/parent-module/-/parent-module-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI=", "dev": true, "requires": { @@ -21573,7 +21573,7 @@ }, "prelude-ls": { "version": "1.2.1", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/prelude-ls/-/prelude-ls-1.2.1.tgz", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha1-3rxkidem5rDnYRiIzsiAM30xY5Y=", "dev": true }, @@ -21617,7 +21617,7 @@ }, "prop-types": { "version": "15.8.1", - "resolved": "https://registry.npmmirror.com/prop-types/-/prop-types-15.8.1.tgz", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", "dev": true, "requires": { @@ -21696,7 +21696,7 @@ }, "queue-microtask": { "version": "1.2.3", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/queue-microtask/-/queue-microtask-1.2.3.tgz", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha1-SSkii7xyTfrEPg77BYyve2z7YkM=", "dev": true }, @@ -21741,7 +21741,7 @@ }, "react-is": { "version": "16.13.1", - "resolved": "https://registry.npmmirror.com/react-is/-/react-is-16.13.1.tgz", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "dev": true }, @@ -21842,13 +21842,13 @@ }, "regexp-tree": { "version": "0.1.27", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/regexp-tree/-/regexp-tree-0.1.27.tgz", + "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz", "integrity": "sha1-IZjw71RRj/p0P+dNmDtW/9Yxts0=", "dev": true }, "regjsparser": { "version": "0.10.0", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/regjsparser/-/regjsparser-0.10.0.tgz", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.10.0.tgz", "integrity": "sha1-se0mBRc2tDbyL97ByPcmNfn0SJI=", "dev": true, "requires": { @@ -21857,7 +21857,7 @@ "dependencies": { "jsesc": { "version": "0.5.0", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/jsesc/-/jsesc-0.5.0.tgz", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", "dev": true } @@ -21924,7 +21924,7 @@ }, "resolve-from": { "version": "4.0.0", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/resolve-from/-/resolve-from-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=", "dev": true }, @@ -22032,7 +22032,7 @@ }, "run-parallel": { "version": "1.2.0", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/run-parallel/-/run-parallel-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha1-ZtE2jae9+SHrnZW9GpIp5/IaQ+4=", "dev": true, "requires": { @@ -22228,7 +22228,7 @@ }, "shell-quote": { "version": "1.10.0", - "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/shell-quote/-/shell-quote-1.10.0.tgz", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.10.0.tgz", "integrity": "sha1-SCAz4ZLk9cBxUVIf+gNADscbGw8=", "dev": true }, @@ -22565,7 +22565,7 @@ }, "string-width": { "version": "4.2.3", - "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "requires": { "emoji-regex": "^8.0.0", @@ -22605,7 +22605,7 @@ }, "strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { "ansi-regex": "^5.0.1" @@ -22626,7 +22626,7 @@ }, "strip-indent": { "version": "3.0.0", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/strip-indent/-/strip-indent-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", "integrity": "sha1-wy4c7pQLazQyx3G8LFS8znPNMAE=", "dev": true, "requires": { @@ -22777,13 +22777,13 @@ }, "tcomb": { "version": "3.2.29", - "resolved": "https://registry.npmmirror.com/tcomb/-/tcomb-3.2.29.tgz", + "resolved": "https://registry.npmjs.org/tcomb/-/tcomb-3.2.29.tgz", "integrity": "sha512-di2Hd1DB2Zfw6StGv861JoAF5h/uQVu/QJp2g8KVbtfKnoHdBQl5M32YWq6mnSYBQ1vFFrns5B1haWJL7rKaOQ==", "dev": true }, "tcomb-validation": { "version": "3.4.1", - "resolved": "https://registry.npmmirror.com/tcomb-validation/-/tcomb-validation-3.4.1.tgz", + "resolved": "https://registry.npmjs.org/tcomb-validation/-/tcomb-validation-3.4.1.tgz", "integrity": "sha512-urVVMQOma4RXwiVCa2nM2eqrAomHROHvWPuj6UkDGz/eb5kcy0x6P0dVt6kzpUZtYMNoAqJLWmz1BPtxrtjtrA==", "dev": true, "requires": { @@ -22970,7 +22970,7 @@ }, "tinyglobby": { "version": "0.2.17", - "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/tinyglobby/-/tinyglobby-0.2.17.tgz", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", "integrity": "sha1-ViqabJ6ys7Ej05cZ+a9btE/NdjE=", "dev": true, "requires": { @@ -22980,14 +22980,14 @@ "dependencies": { "fdir": { "version": "6.5.0", - "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/fdir/-/fdir-6.5.0.tgz", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", "integrity": "sha1-7Sq5Z6MxreYvGNB32uGSaE1Q01A=", "dev": true, "requires": {} }, "picomatch": { "version": "4.0.5", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/picomatch/-/picomatch-4.0.5.tgz", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", "integrity": "sha1-UepXoX2G9gX4EDlZX7xA7QalX6s=", "dev": true } @@ -23038,7 +23038,7 @@ }, "ts-api-utils": { "version": "2.5.0", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/ts-api-utils/-/ts-api-utils-2.5.0.tgz", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", "integrity": "sha1-Ss1KFV4ic0mQpe0f6el/ETvLN8E=", "dev": true, "requires": {} @@ -23087,7 +23087,7 @@ }, "type-check": { "version": "0.4.0", - "resolved": "https://ms-feed-17.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/type-check/-/type-check-0.4.0.tgz", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha1-B7ggO/pwVsBlcFDjzNLDdzC6uPE=", "dev": true, "requires": { @@ -23126,7 +23126,7 @@ }, "typescript": { "version": "npm:@typescript/typescript6@6.0.2", - "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript/typescript6/-/typescript6-6.0.2.tgz", + "resolved": "https://registry.npmjs.org/@typescript/typescript6/-/typescript6-6.0.2.tgz", "integrity": "sha1-eeDkdJJWTIP4YCAT190Q1evFGow=", "dev": true, "requires": { @@ -23135,7 +23135,7 @@ }, "typescript-7": { "version": "npm:typescript@7.0.2", - "resolved": "https://ms-feed-2.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/typescript/-/typescript-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-7.0.2.tgz", "integrity": "sha1-nsdz15VKjBgsF8xbvVdaoovFFYI=", "dev": true, "requires": { @@ -23251,7 +23251,7 @@ }, "universalify": { "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "dev": true }, @@ -23689,7 +23689,7 @@ }, "word-wrap": { "version": "1.2.5", - "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/word-wrap/-/word-wrap-1.2.5.tgz", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", "integrity": "sha1-0sRcbdT7zmIaZvE2y+Mor9BBCzQ=", "dev": true }, diff --git a/package.json b/package.json index 4fe1eeb6f..9795b6f78 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "vscode-react-native", "displayName": "React Native Tools", - "version": "1.14.1", + "version": "1.14.2", "private": true, "publisher": "msjsdiag", "icon": "resources/images/icon.png", @@ -1394,6 +1394,7 @@ }, "scripts": { "build": "gulp build", + "install-local": "vsce package && codium --install-extension vscode-react-native-$npm_package_version.vsix", "lint": "gulp lint", "format": "gulp format", "vscode:prepublish": "gulp", diff --git a/src/cdp-proxy/CDPMessageHandlers/CDPAPINames.ts b/src/cdp-proxy/CDPMessageHandlers/CDPAPINames.ts index e005635f9..710553244 100644 --- a/src/cdp-proxy/CDPMessageHandlers/CDPAPINames.ts +++ b/src/cdp-proxy/CDPMessageHandlers/CDPAPINames.ts @@ -12,4 +12,5 @@ export const CDP_API_NAMES = { CLOSE: "close", DEBUGGER_SCRIPT_PARSED: "Debugger.scriptParsed", DEBUGGER_SET_BREAKPOINT_BY_URL: "Debugger.setBreakpointByUrl", + PAGE_RELOAD: "Page.reload", }; diff --git a/src/cdp-proxy/CDPMessageHandlers/hermesCDPMessageHandler.ts b/src/cdp-proxy/CDPMessageHandlers/hermesCDPMessageHandler.ts index 82314e4ec..02b5f748d 100644 --- a/src/cdp-proxy/CDPMessageHandlers/hermesCDPMessageHandler.ts +++ b/src/cdp-proxy/CDPMessageHandlers/hermesCDPMessageHandler.ts @@ -19,8 +19,34 @@ export class HermesCDPMessageHandler extends BaseCDPMessageHandler { */ private readonly HERMES_NATIVE_FUNCTION_SCRIPT_ID: string = "4294967295"; + /** + * @description Quiet period after the last breakpoint request before the application + * is reloaded, so that a burst of breakpoint requests causes a single reload + * @type {number} + */ + private readonly RELOAD_DEBOUNCE_MS: number = 300; + + /** + * @description Id of the out-of-band Page.reload request. The debugger never sent it, + * so it discards the reply as an unknown response id + * @type {number} + */ + private readonly RELOAD_REQUEST_ID: number = 2147483646; + + private isFirstRun: boolean = true; + private reloadTimer: NodeJS.Timeout | null = null; + public processDebuggerCDPMessage(event: any): ProcessedCDPMessage { let sendBack = false; + if (event.method === CDP_API_NAMES.CLOSE) { + this.cancelFirstRunReload(); + } else if ( + event.method === CDP_API_NAMES.DEBUGGER_SET_BREAKPOINT || + event.method === CDP_API_NAMES.DEBUGGER_SET_BREAKPOINT_BY_URL + ) { + this.scheduleFirstRunReload(); + } + if (event.method === CDP_API_NAMES.DEBUGGER_SET_BREAKPOINT) { event = this.handleBreakpointSetting(event); } else if (event.method === CDP_API_NAMES.RUNTIME_CALL_FUNCTION_ON) { @@ -100,6 +126,46 @@ export class HermesCDPMessageHandler extends BaseCDPMessageHandler { return event; } + /** + * The application finishes executing its bundle before the debugger manages to attach, + * so breakpoints registered for the first run resolve but are never reached. Reload the + * application once the debugger has finished sending its initial breakpoints, so that the + * bundle is evaluated again while they are in place. Reloading is driven by the device + * (the "nativePageReloads" capability), so the debugger stays attached across it. + */ + private scheduleFirstRunReload(): void { + if (!this.isFirstRun) { + return; + } + + if (this.reloadTimer) { + clearTimeout(this.reloadTimer); + } + + this.reloadTimer = setTimeout(() => { + this.reloadTimer = null; + + if (!this.isFirstRun) { + return; + } + this.isFirstRun = false; + + this.applicationTarget?.send({ + id: this.RELOAD_REQUEST_ID, + method: CDP_API_NAMES.PAGE_RELOAD, + params: {}, + }); + }, this.RELOAD_DEBOUNCE_MS); + } + + private cancelFirstRunReload(): void { + if (this.reloadTimer) { + clearTimeout(this.reloadTimer); + this.reloadTimer = null; + } + this.isFirstRun = true; + } + private handleBreakpointSetting(event: any): any { if (event.params) { delete event.params.location.columnNumber; diff --git a/src/cdp-proxy/reactNativeCDPProxy.ts b/src/cdp-proxy/reactNativeCDPProxy.ts index dfd947afd..e5e067db4 100644 --- a/src/cdp-proxy/reactNativeCDPProxy.ts +++ b/src/cdp-proxy/reactNativeCDPProxy.ts @@ -2,6 +2,7 @@ // Licensed under the MIT license. See LICENSE file in the project root for details. import { IncomingMessage } from "http"; +import { URL } from "url"; import { Connection, Server, @@ -11,6 +12,7 @@ import { IProtocolSuccess, } from "vscode-cdp-proxy"; import { CancellationToken, EventEmitter } from "vscode"; +import WebSocket = require("ws"); import { OutputChannelLogger } from "../extension/log/OutputChannelLogger"; import { LogLevel } from "../extension/log/LogHelper"; import { DebuggerEndpointHelper } from "./debuggerEndpointHelper"; @@ -123,9 +125,7 @@ export class ReactNativeCDPProxy { } } - this.applicationTarget = new Connection( - await WebSocketTransport.create(this.browserInspectUri), - ); + this.applicationTarget = new Connection(await this.createApplicationTransport()); this.applicationTarget.onError(this.onApplicationTargetError.bind(this)); this.debuggerTarget.onError(this.onDebuggerTargetError.bind(this)); @@ -214,6 +214,39 @@ export class ReactNativeCDPProxy { this.logger.error("Error on application transport", err); } + private createApplicationTransport(): Promise { + // Metro's inspector proxy rejects debugger WebSockets whose Origin is not the + // dev server itself (or a loopback host), so send the expected Origin header. + const webSocket = new WebSocket(this.browserInspectUri, [], { + perMessageDeflate: false, + maxPayload: 256 * 1024 * 1024, + origin: ReactNativeCDPProxy.getWebSocketOrigin(this.browserInspectUri), + } as WebSocket.IClientOptions & { maxPayload: number; perMessageDeflate: boolean }); + + return new Promise((resolve, reject) => { + webSocket.once("open", () => { + // vscode-cdp-proxy resolves its own copy of @types/ws, so the two + // structurally identical WebSocket types are not assignable + resolve(new WebSocketTransport(webSocket as any)); + }); + webSocket.once("error", reject); + }); + } + + private static getWebSocketOrigin(webSocketUrl: string): string | undefined { + const url = new URL(webSocketUrl); + + if (url.protocol === "ws:") { + return `http://${url.host}`; + } + + if (url.protocol === "wss:") { + return `https://${url.host}`; + } + + return undefined; + } + private async onApplicationTargetClosed() { this.applicationTarget = null; this.applicationTargetEventEmitter.fire({}); diff --git a/src/extension/reactNativeSessionManager.ts b/src/extension/reactNativeSessionManager.ts index 62438be97..3bb81dbd2 100644 --- a/src/extension/reactNativeSessionManager.ts +++ b/src/extension/reactNativeSessionManager.ts @@ -23,7 +23,7 @@ export class ReactNativeSessionManager ): vscode.ProviderResult { const rnSession = new RNSession(session); - let debugServer; + let debugServer: Net.Server; if (session.configuration.platform != "expoweb") { debugServer = Net.createServer(socket => { const rnDebugSession = @@ -45,11 +45,18 @@ export class ReactNativeSessionManager }); } - debugServer.listen(0, "127.0.0.1"); - this.servers.set(session.id, debugServer); + return new Promise((resolve, reject) => { + debugServer.once("error", reject); + debugServer.listen(0, "127.0.0.1", () => { + debugServer.removeListener("error", reject); + this.servers.set(session.id, debugServer); - // make VS Code connect to debug server - return new vscode.DebugAdapterServer((debugServer.address()).port); + // make VS Code connect to debug server + resolve( + new vscode.DebugAdapterServer((debugServer.address()).port), + ); + }); + }); } public terminate(terminateEvent: TerminateEventArgs): void { diff --git a/test/cdp-proxy/hermesCDPMessageHandler.test.ts b/test/cdp-proxy/hermesCDPMessageHandler.test.ts new file mode 100644 index 000000000..91a630af6 --- /dev/null +++ b/test/cdp-proxy/hermesCDPMessageHandler.test.ts @@ -0,0 +1,101 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for details. + +import { Connection } from "vscode-cdp-proxy"; +import { HermesCDPMessageHandler } from "../../src/cdp-proxy/CDPMessageHandlers/hermesCDPMessageHandler"; +import { CDP_API_NAMES } from "../../src/cdp-proxy/CDPMessageHandlers/CDPAPINames"; +import { PromiseUtil } from "../../src/common/node/promise"; +import assert = require("assert"); + +suite("hermesCDPMessageHandler", function () { + // Must outlast RELOAD_DEBOUNCE_MS (300) in the handler + const afterDebounce = 500; + + function createHandler(): { + handler: HermesCDPMessageHandler; + sent: Array>; + } { + const handler = new HermesCDPMessageHandler(); + const sent: Array> = []; + handler.setApplicationTarget({ + send: (message: Record) => sent.push(message), + } as unknown as Connection); + return { handler, sent }; + } + + suite("first run reload", function () { + test("reloads the application once the debugger has sent its breakpoints", async () => { + const { handler, sent } = createHandler(); + + handler.processDebuggerCDPMessage({ + method: CDP_API_NAMES.DEBUGGER_SET_BREAKPOINT_BY_URL, + params: {}, + }); + await PromiseUtil.delay(afterDebounce); + + assert.strictEqual(sent.length, 1); + assert.strictEqual(sent[0].method, CDP_API_NAMES.PAGE_RELOAD); + }); + + test("coalesces a burst of breakpoints into a single reload", async () => { + const { handler, sent } = createHandler(); + + for (let i = 0; i < 5; i++) { + handler.processDebuggerCDPMessage({ + method: CDP_API_NAMES.DEBUGGER_SET_BREAKPOINT_BY_URL, + params: {}, + }); + } + await PromiseUtil.delay(afterDebounce); + + assert.strictEqual(sent.length, 1); + }); + + test("does not reload again for later breakpoints in the same session", async () => { + const { handler, sent } = createHandler(); + + handler.processDebuggerCDPMessage({ + method: CDP_API_NAMES.DEBUGGER_SET_BREAKPOINT_BY_URL, + params: {}, + }); + await PromiseUtil.delay(afterDebounce); + + handler.processDebuggerCDPMessage({ + method: CDP_API_NAMES.DEBUGGER_SET_BREAKPOINT_BY_URL, + params: {}, + }); + await PromiseUtil.delay(afterDebounce); + + assert.strictEqual(sent.length, 1); + }); + + test("does not reload after the debugger disconnects", async () => { + const { handler, sent } = createHandler(); + + handler.processDebuggerCDPMessage({ + method: CDP_API_NAMES.DEBUGGER_SET_BREAKPOINT_BY_URL, + params: {}, + }); + handler.processDebuggerCDPMessage({ method: CDP_API_NAMES.CLOSE }); + await PromiseUtil.delay(afterDebounce); + + assert.strictEqual(sent.length, 0); + }); + + test("leaves breakpoint messages on their way to the application", function () { + const { handler } = createHandler(); + + const processed = handler.processDebuggerCDPMessage({ + method: CDP_API_NAMES.DEBUGGER_SET_BREAKPOINT, + params: { location: { lineNumber: 1, columnNumber: 2 } }, + }); + + const event = processed.event as Record; + + assert.strictEqual(processed.sendBack, false); + assert.strictEqual(event.method, CDP_API_NAMES.DEBUGGER_SET_BREAKPOINT); + // Hermes rejects breakpoints carrying a column number + assert.strictEqual(event.params.location.columnNumber, undefined); + }); + }); +}); diff --git a/test/cdp-proxy/reactNativeCDPProxy.test.ts b/test/cdp-proxy/reactNativeCDPProxy.test.ts index 30ee415ef..521c47b6f 100644 --- a/test/cdp-proxy/reactNativeCDPProxy.test.ts +++ b/test/cdp-proxy/reactNativeCDPProxy.test.ts @@ -290,9 +290,10 @@ suite("reactNativeCDPProxy", function () { generateRandomPortNumber(), ); const debuggerTarget = createConnectionStub(); - const createWebSocketTransportStub = Sinon.stub(WebSocketTransport, "create").returns( - Promise.resolve(createTransportStub()), - ); + const createApplicationTransportStub = Sinon.stub( + localProxy as any, + "createApplicationTransport", + ).returns(Promise.resolve(createTransportStub())); Object.assign(localProxy, { browserInspectUri: "ws://localhost:1234/debugger", @@ -310,7 +311,7 @@ suite("reactNativeCDPProxy", function () { }, ]); } finally { - createWebSocketTransportStub.restore(); + createApplicationTransportStub.restore(); } assert.strictEqual(debuggerTarget.close.called, false);