build before hand so the types are picked up -_____-

This commit is contained in:
Noah Gilson 2024-09-10 15:41:01 -07:00
Родитель 074b664d24
Коммит e5381b42df
5 изменённых файлов: 341 добавлений и 58 удалений

168
eslint.config.mjs Normal file
Просмотреть файл

@ -0,0 +1,168 @@
import jsdoc from "eslint-plugin-jsdoc";
import preferArrow from "eslint-plugin-prefer-arrow";
import typescriptEslint from "@typescript-eslint/eslint-plugin";
import typescriptEslintTslint from "@typescript-eslint/eslint-plugin-tslint";
import globals from "globals";
import tsParser from "@typescript-eslint/parser";
import path from "node:path";
import { fileURLToPath } from "node:url";
import js from "@eslint/js";
import { FlatCompat } from "@eslint/eslintrc";
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const compat = new FlatCompat({
baseDirectory: __dirname,
recommendedConfig: js.configs.recommended,
allConfig: js.configs.all
});
export default [...compat.extends(
"plugin:@typescript-eslint/recommended",
"plugin:@typescript-eslint/recommended-requiring-type-checking",
"prettier",
), {
plugins: {
jsdoc,
"prefer-arrow": preferArrow,
"@typescript-eslint": typescriptEslint,
"@typescript-eslint/tslint": typescriptEslintTslint,
},
languageOptions: {
globals: {
...globals.browser,
},
parser: tsParser,
ecmaVersion: 5,
sourceType: "module",
parserOptions: {
project: "tsconfig.eslint.json",
},
},
settings: {
typescript: {},
},
rules: {
"@typescript-eslint/adjacent-overload-signatures": "error",
"@typescript-eslint/array-type": "off",
"@typescript-eslint/ban-types": "off",
"@typescript-eslint/consistent-type-assertions": "error",
"@typescript-eslint/dot-notation": "error",
"@typescript-eslint/explicit-function-return-type": "off",
"@typescript-eslint/explicit-module-boundary-types": "off",
"@typescript-eslint/no-var-requires": "off",
"@typescript-eslint/only-throw-error": "off",
"@typescript-eslint/no-empty-function": "off",
"@typescript-eslint/naming-convention": ["off", {
selector: "variable",
format: ["camelCase", "UPPER_CASE"],
leadingUnderscore: "forbid",
trailingUnderscore: "forbid",
}],
"@typescript-eslint/no-empty-interface": "error",
"@typescript-eslint/no-unsafe-return": "warn",
"@typescript-eslint/no-unsafe-call": "warn",
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/prefer-promise-reject-errors": "warn",
"@typescript-eslint/no-inferrable-types": "error",
"@typescript-eslint/no-misused-new": "error",
"@typescript-eslint/no-misused-promises": "warn",
"@typescript-eslint/no-namespace": "off",
"@typescript-eslint/no-parameter-properties": "off",
"@typescript-eslint/no-shadow": ["error", {
hoist: "all",
}],
"@typescript-eslint/no-unused-expressions": "error",
"@typescript-eslint/restrict-template-expressions": ["error", {
allowNumber: true,
allowBoolean: true,
allowAny: true,
allowArray: true,
}],
"@typescript-eslint/no-use-before-define": "off",
"@typescript-eslint/prefer-for-of": "error",
"@typescript-eslint/no-unused-vars": "off",
"@typescript-eslint/prefer-function-type": "error",
"@typescript-eslint/prefer-namespace-keyword": "error",
"@typescript-eslint/no-require-imports": "off",
"@typescript-eslint/no-unsafe-argument": "off",
"@typescript-eslint/no-unsafe-assignment": "off",
"@typescript-eslint/no-unnecessary-type-assertion": "off",
"@typescript-eslint/quotes": "off",
"@typescript-eslint/triple-slash-reference": ["error", {
path: "always",
types: "prefer-import",
lib: "always",
}],
"@typescript-eslint/typedef": "off",
"@typescript-eslint/unified-signatures": "error",
"arrow-parens": ["off", "always"],
complexity: "off",
"constructor-super": "error",
"dot-notation": "off",
eqeqeq: ["error", "smart"],
"guard-for-in": "error",
"id-denylist": "error",
"id-match": "error",
"jsdoc/check-alignment": "error",
"jsdoc/check-indentation": "error",
"jsdoc/newline-after-description": "off",
"max-classes-per-file": "off",
"max-len": ["error", {
code: 300,
}],
"new-parens": "error",
"no-bitwise": "error",
"no-caller": "error",
"no-cond-assign": "error",
"no-console": "off",
"no-debugger": "error",
"no-empty": "off",
"no-empty-function": "off",
"no-eval": "error",
"no-fallthrough": "off",
"no-invalid-this": "off",
"no-new-wrappers": "error",
"no-return-await": "error",
"no-shadow": "off",
"no-throw-literal": "error",
"no-trailing-spaces": "error",
"no-undef-init": "error",
"no-underscore-dangle": "off",
"no-unsafe-finally": "error",
"no-unused-expressions": "off",
"no-unused-labels": "error",
"no-use-before-define": "off",
"no-var": "error",
"object-shorthand": "error",
"one-var": ["error", "never"],
"prefer-arrow/prefer-arrow-functions": "off",
"prefer-const": "error",
"prefer-template": "error",
quotes: "off",
radix: "error",
"use-isnan": "error",
"valid-typeof": "off",
"@typescript-eslint/tslint/config": ["error", {
rules: {
"file-header": [true, "------"],
},
}],
},
}];

182
package-lock.json сгенерированный
Просмотреть файл

@ -18,12 +18,15 @@
"typescript": "^5.5.4"
},
"devDependencies": {
"@eslint/eslintrc": "^3.1.0",
"@eslint/js": "^9.10.0",
"@types/source-map-support": "^0.5.6",
"@typescript-eslint/eslint-plugin": "^8.0.0",
"@typescript-eslint/parser": "^8.0.0",
"eslint-config-prettier": "^9.1.0",
"eslint-import-resolver-node": "^0.3.9",
"eslint-plugin-prettier": "^5.2.1",
"globals": "^15.9.0",
"rimraf": "3.0.2"
}
},
@ -320,15 +323,16 @@
}
},
"node_modules/@eslint/eslintrc": {
"version": "2.1.4",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
"integrity": "sha1-OIomnw8lwbatwxe1osVXFIlMcK0=",
"version": "3.1.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint/eslintrc/-/eslintrc-3.1.0.tgz",
"integrity": "sha1-29NIK/2R76Zjy+eqH1BoOYaCB7Y=",
"dev": true,
"license": "MIT",
"dependencies": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
"espree": "^9.6.0",
"globals": "^13.19.0",
"espree": "^10.0.1",
"globals": "^14.0.0",
"ignore": "^5.2.0",
"import-fresh": "^3.2.1",
"js-yaml": "^4.1.0",
@ -336,33 +340,30 @@
"strip-json-comments": "^3.1.1"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
"url": "https://opencollective.com/eslint"
}
},
"node_modules/@eslint/eslintrc/node_modules/espree": {
"version": "9.6.1",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/espree/-/espree-9.6.1.tgz",
"integrity": "sha1-oqF7jkNGkKVDLy+AGM5x0zGkjG8=",
"license": "BSD-2-Clause",
"dependencies": {
"acorn": "^8.9.0",
"acorn-jsx": "^5.3.2",
"eslint-visitor-keys": "^3.4.1"
},
"node_modules/@eslint/eslintrc/node_modules/globals": {
"version": "14.0.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/globals/-/globals-14.0.0.tgz",
"integrity": "sha1-iY10E8Kbq89rr+Vvyt3thYrack4=",
"dev": true,
"license": "MIT",
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
"node": ">=18"
},
"funding": {
"url": "https://opencollective.com/eslint"
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@eslint/eslintrc/node_modules/strip-json-comments": {
"version": "3.1.1",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
"integrity": "sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY=",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=8"
@ -371,6 +372,16 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@eslint/js": {
"version": "9.10.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint/js/-/js-9.10.0.tgz",
"integrity": "sha1-6qPLC67El5cLsp5DoVPQ1WUBQ8Y=",
"dev": true,
"license": "MIT",
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
"node_modules/@humanwhocodes/config-array": {
"version": "0.11.14",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
@ -2292,6 +2303,29 @@
"url": "https://opencollective.com/eslint"
}
},
"node_modules/eslint/node_modules/@eslint/eslintrc": {
"version": "2.1.4",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
"integrity": "sha1-OIomnw8lwbatwxe1osVXFIlMcK0=",
"license": "MIT",
"dependencies": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
"espree": "^9.6.0",
"globals": "^13.19.0",
"ignore": "^5.2.0",
"import-fresh": "^3.2.1",
"js-yaml": "^4.1.0",
"minimatch": "^3.1.2",
"strip-json-comments": "^3.1.1"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
"funding": {
"url": "https://opencollective.com/eslint"
}
},
"node_modules/eslint/node_modules/@eslint/js": {
"version": "8.57.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint/js/-/js-8.57.0.tgz",
@ -2379,6 +2413,21 @@
"url": "https://opencollective.com/eslint"
}
},
"node_modules/eslint/node_modules/globals": {
"version": "13.24.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/globals/-/globals-13.24.0.tgz",
"integrity": "sha1-hDKhnXjODB6DOUnDats0VAC7EXE=",
"license": "MIT",
"dependencies": {
"type-fest": "^0.20.2"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/eslint/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/has-flag/-/has-flag-4.0.0.tgz",
@ -2388,6 +2437,18 @@
"node": ">=8"
}
},
"node_modules/eslint/node_modules/strip-json-comments": {
"version": "3.1.1",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
"integrity": "sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY=",
"license": "MIT",
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/eslint/node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/supports-color/-/supports-color-7.2.0.tgz",
@ -2794,15 +2855,13 @@
}
},
"node_modules/globals": {
"version": "13.24.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/globals/-/globals-13.24.0.tgz",
"integrity": "sha1-hDKhnXjODB6DOUnDats0VAC7EXE=",
"version": "15.9.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/globals/-/globals-15.9.0.tgz",
"integrity": "sha1-6d4BdxCR/7w321cU2rSE+faf85k=",
"dev": true,
"license": "MIT",
"dependencies": {
"type-fest": "^0.20.2"
},
"engines": {
"node": ">=8"
"node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@ -5505,14 +5564,15 @@
"integrity": "sha1-sP/QMStKP9LW93I35ySKWtOmgK4="
},
"@eslint/eslintrc": {
"version": "2.1.4",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
"integrity": "sha1-OIomnw8lwbatwxe1osVXFIlMcK0=",
"version": "3.1.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint/eslintrc/-/eslintrc-3.1.0.tgz",
"integrity": "sha1-29NIK/2R76Zjy+eqH1BoOYaCB7Y=",
"dev": true,
"requires": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
"espree": "^9.6.0",
"globals": "^13.19.0",
"espree": "^10.0.1",
"globals": "^14.0.0",
"ignore": "^5.2.0",
"import-fresh": "^3.2.1",
"js-yaml": "^4.1.0",
@ -5520,23 +5580,26 @@
"strip-json-comments": "^3.1.1"
},
"dependencies": {
"espree": {
"version": "9.6.1",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/espree/-/espree-9.6.1.tgz",
"integrity": "sha1-oqF7jkNGkKVDLy+AGM5x0zGkjG8=",
"requires": {
"acorn": "^8.9.0",
"acorn-jsx": "^5.3.2",
"eslint-visitor-keys": "^3.4.1"
}
"globals": {
"version": "14.0.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/globals/-/globals-14.0.0.tgz",
"integrity": "sha1-iY10E8Kbq89rr+Vvyt3thYrack4=",
"dev": true
},
"strip-json-comments": {
"version": "3.1.1",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
"integrity": "sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY="
"integrity": "sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY=",
"dev": true
}
}
},
"@eslint/js": {
"version": "9.10.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint/js/-/js-9.10.0.tgz",
"integrity": "sha1-6qPLC67El5cLsp5DoVPQ1WUBQ8Y=",
"dev": true
},
"@humanwhocodes/config-array": {
"version": "0.11.14",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
@ -6582,6 +6645,22 @@
"text-table": "^0.2.0"
},
"dependencies": {
"@eslint/eslintrc": {
"version": "2.1.4",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
"integrity": "sha1-OIomnw8lwbatwxe1osVXFIlMcK0=",
"requires": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
"espree": "^9.6.0",
"globals": "^13.19.0",
"ignore": "^5.2.0",
"import-fresh": "^3.2.1",
"js-yaml": "^4.1.0",
"minimatch": "^3.1.2",
"strip-json-comments": "^3.1.1"
}
},
"@eslint/js": {
"version": "8.57.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint/js/-/js-8.57.0.tgz",
@ -6632,11 +6711,24 @@
"eslint-visitor-keys": "^3.4.1"
}
},
"globals": {
"version": "13.24.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/globals/-/globals-13.24.0.tgz",
"integrity": "sha1-hDKhnXjODB6DOUnDats0VAC7EXE=",
"requires": {
"type-fest": "^0.20.2"
}
},
"has-flag": {
"version": "4.0.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s="
},
"strip-json-comments": {
"version": "3.1.1",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
"integrity": "sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY="
},
"supports-color": {
"version": "7.2.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/supports-color/-/supports-color-7.2.0.tgz",
@ -7081,12 +7173,10 @@
}
},
"globals": {
"version": "13.24.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/globals/-/globals-13.24.0.tgz",
"integrity": "sha1-hDKhnXjODB6DOUnDats0VAC7EXE=",
"requires": {
"type-fest": "^0.20.2"
}
"version": "15.9.0",
"resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/globals/-/globals-15.9.0.tgz",
"integrity": "sha1-6d4BdxCR/7w321cU2rSE+faf85k=",
"dev": true
},
"globalthis": {
"version": "1.0.4",

Просмотреть файл

@ -11,7 +11,7 @@
"author": "Microsoft Corporation",
"scripts": {
"compile-all": "build.cmd",
"lint": "eslint -c .eslintrc.js --ext=.ts vscode-dotnet-runtime-library/src/**/*.ts vscode-dotnet-runtime-extension/src/**/*.ts --ignore-pattern \"**/test/\" --fix"
"lint": "eslint -c .eslintrc.js vscode-dotnet-runtime-library/src/**/*.ts vscode-dotnet-runtime-extension/src/**/*.ts --ignore-pattern \"test/\" --fix"
},
"dependencies": {
"@typescript-eslint/eslint-plugin-tslint": "^7.0.2",
@ -25,12 +25,15 @@
"typescript": "^5.5.4"
},
"devDependencies": {
"@eslint/eslintrc": "^3.1.0",
"@eslint/js": "^9.10.0",
"@types/source-map-support": "^0.5.6",
"@typescript-eslint/eslint-plugin": "^8.0.0",
"@typescript-eslint/parser": "^8.0.0",
"eslint-config-prettier": "^9.1.0",
"eslint-import-resolver-node": "^0.3.9",
"eslint-plugin-prettier": "^5.2.1",
"globals": "^15.9.0",
"rimraf": "3.0.2"
}
}

Просмотреть файл

@ -11,6 +11,7 @@ jobs:
displayName: '🧶 ESLint'
steps:
- template: install-node.yaml
- script: build.cmd
- bash: |
npm install eslint@^8.57.0 @typescript-eslint/parser@^8.0.0 @typescript-eslint/eslint-plugin@^8.0.0 --reg https://registry.npmjs.org/ --save-dev --verbose
npm run lint

Просмотреть файл

@ -179,6 +179,26 @@
minimatch "^3.1.2"
strip-json-comments "^3.1.1"
"@eslint/eslintrc@^3.1.0":
version "3.1.0"
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint/eslintrc/-/eslintrc-3.1.0.tgz"
integrity sha1-29NIK/2R76Zjy+eqH1BoOYaCB7Y=
dependencies:
ajv "^6.12.4"
debug "^4.3.2"
espree "^10.0.1"
globals "^14.0.0"
ignore "^5.2.0"
import-fresh "^3.2.1"
js-yaml "^4.1.0"
minimatch "^3.1.2"
strip-json-comments "^3.1.1"
"@eslint/js@^9.10.0":
version "9.10.0"
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint/js/-/js-9.10.0.tgz"
integrity sha1-6qPLC67El5cLsp5DoVPQ1WUBQ8Y=
"@eslint/js@8.57.0":
version "8.57.0"
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint/js/-/js-8.57.0.tgz"
@ -1241,7 +1261,7 @@ eslint@*, "eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8", "eslint@^6.0.0 ||
strip-ansi "^6.0.1"
text-table "^0.2.0"
espree@^10.1.0:
espree@^10.0.1, espree@^10.1.0:
version "10.1.0"
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/espree/-/espree-10.1.0.tgz"
integrity sha1-h4ja5hFXTA8HBpH1IuQRbFoR/FY=
@ -1250,16 +1270,7 @@ espree@^10.1.0:
acorn-jsx "^5.3.2"
eslint-visitor-keys "^4.0.0"
espree@^9.6.0:
version "9.6.1"
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/espree/-/espree-9.6.1.tgz"
integrity sha1-oqF7jkNGkKVDLy+AGM5x0zGkjG8=
dependencies:
acorn "^8.9.0"
acorn-jsx "^5.3.2"
eslint-visitor-keys "^3.4.1"
espree@^9.6.1:
espree@^9.6.0, espree@^9.6.1:
version "9.6.1"
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/espree/-/espree-9.6.1.tgz"
integrity sha1-oqF7jkNGkKVDLy+AGM5x0zGkjG8=
@ -1499,6 +1510,16 @@ globals@^13.19.0:
dependencies:
type-fest "^0.20.2"
globals@^14.0.0:
version "14.0.0"
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/globals/-/globals-14.0.0.tgz"
integrity sha1-iY10E8Kbq89rr+Vvyt3thYrack4=
globals@^15.9.0:
version "15.9.0"
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/globals/-/globals-15.9.0.tgz"
integrity sha1-6d4BdxCR/7w321cU2rSE+faf85k=
globalthis@^1.0.3:
version "1.0.4"
resolved "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/globalthis/-/globalthis-1.0.4.tgz"