diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 7bdfe4fd9c..f5700227e2 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -36,6 +36,26 @@ jobs:
run: yarn lint
- name: test
run: yarn test
+ publish-packages-dry-run:
+ needs: build_and_test
+ uses: ./.github/workflows/publish-packages.yml
+ with:
+ dry-run: true
+ publish-registry-dry-run:
+ needs: build_and_test
+ uses: ./.github/workflows/publish-registry.yml
+ with:
+ dry-run: true
+ retag-dry-run:
+ needs: build_and_test
+ uses: ./.github/workflows/retag.yml
+ with:
+ dry-run: true
+ deprecate-dry-run:
+ needs: build_and_test
+ uses: ./.github/workflows/deprecate.yml
+ with:
+ dry-run: true
publish_alpha:
name: publish alpha release
runs-on: ubuntu-latest
diff --git a/.github/workflows/deprecate.yml b/.github/workflows/deprecate.yml
new file mode 100644
index 0000000000..ef33eb3b2d
--- /dev/null
+++ b/.github/workflows/deprecate.yml
@@ -0,0 +1,37 @@
+name: Mark removed types as deprecated
+#description: Loop over npm @types packages and mark as deprecated any that no longer exist in the DT repo.
+on:
+ schedule:
+ # https://crontab.guru/#0_0_*_*_0
+ - cron: 0 0 * * 0
+ workflow_call:
+ inputs:
+ dry-run:
+ type: boolean
+ workflow_dispatch:
+ inputs:
+ dry-run:
+ type: boolean
+jobs:
+ deprecate:
+ if: github.event_name != 'schedule' || github.repository == 'microsoft/DefinitelyTyped-tools'
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ - uses: actions/setup-node@v3
+ with:
+ cache: yarn
+ - run: yarn install --frozen-lockfile
+ - run: yarn build
+ - name: Parse declarations
+ run: yarn workspace @definitelytyped/publisher parse
+ - name: Mark removed types as deprecated${{ (inputs || github.event.inputs).dry-run && ' dry run' || '' }}
+ run: node --require source-map-support/register packages/deprecate/${{ (inputs || github.event.inputs).dry-run && ' --dry-run' || '' }}
+ env:
+ GITHUB_TOKEN: ${{ github.token }}
+ NPM_TOKEN: ${{ secrets.NPM_RETAG_TOKEN }}
+ - if: always()
+ uses: actions/upload-artifact@v3
+ with:
+ name: ${{ github.job }}
+ path: packages/definitions-parser/data/
diff --git a/.github/workflows/publish-packages.yml b/.github/workflows/publish-packages.yml
new file mode 100644
index 0000000000..e4ea967716
--- /dev/null
+++ b/.github/workflows/publish-packages.yml
@@ -0,0 +1,42 @@
+name: Publish packages
+#description: Find changed @types packages in the DT repo and publish them to npm.
+on:
+ workflow_call:
+ inputs:
+ dry-run:
+ type: boolean
+ workflow_dispatch:
+ inputs:
+ dry-run:
+ type: boolean
+jobs:
+ publish-packages:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ - uses: actions/setup-node@v3
+ with:
+ cache: yarn
+ - run: yarn install --frozen-lockfile
+ - run: yarn build
+ - name: Parse declarations
+ run: yarn workspace @definitelytyped/publisher parse
+ - uses: actions/cache@v3
+ with:
+ path: packages/utils/cache/
+ key: cache-${{ github.run_id }}
+ restore-keys: cache-
+ - name: Calculate versions
+ run: yarn workspace @definitelytyped/publisher calculate-versions
+ - name: Generate packages
+ run: yarn workspace @definitelytyped/publisher generate
+ - name: Publish packages${{ (inputs || github.event.inputs).dry-run && ' dry run' || '' }}
+ run: yarn workspace @definitelytyped/publisher publish-packages${{ (inputs || github.event.inputs).dry-run && ' --dry' || '' }}
+ env:
+ GH_API_TOKEN: ${{ github.token }}
+ NPM_TOKEN: ${{ secrets.NPM_RETAG_TOKEN }}
+ - if: always()
+ uses: actions/upload-artifact@v3
+ with:
+ name: ${{ github.job }}
+ path: packages/definitions-parser/data/
diff --git a/.github/workflows/publish-registry.yml b/.github/workflows/publish-registry.yml
index e0a8a17fe3..f8533417dd 100644
--- a/.github/workflows/publish-registry.yml
+++ b/.github/workflows/publish-registry.yml
@@ -1,11 +1,20 @@
name: Publish registry
+#description: Publish the types-registry package to npm (a list of all @types packages in the DT repo).
on:
schedule:
# https://crontab.guru/#0_0_*_*_0
- cron: 0 0 * * 0
+ workflow_call:
+ inputs:
+ dry-run:
+ type: boolean
workflow_dispatch:
+ inputs:
+ dry-run:
+ type: boolean
jobs:
publish-registry:
+ if: github.event_name != 'schedule' || github.repository == 'microsoft/DefinitelyTyped-tools'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
@@ -21,11 +30,12 @@ jobs:
path: packages/utils/cache/
key: cache-${{ github.run_id }}
restore-keys: cache-
- - name: Publish registry
- run: yarn workspace @definitelytyped/publisher publish-registry
+ - name: Publish registry${{ (inputs || github.event.inputs).dry-run && ' dry run' || '' }}
+ run: yarn workspace @definitelytyped/publisher publish-registry${{ (inputs || github.event.inputs).dry-run && ' --dry' || '' }}
env:
NPM_TOKEN: ${{ secrets.NPM_RETAG_TOKEN }}
- if: always()
uses: actions/upload-artifact@v3
with:
+ name: ${{ github.job }}
path: packages/definitions-parser/data/
diff --git a/.github/workflows/retag.yml b/.github/workflows/retag.yml
new file mode 100644
index 0000000000..c0f813a148
--- /dev/null
+++ b/.github/workflows/retag.yml
@@ -0,0 +1,39 @@
+name: Update npm tags
+#description: Refresh tags on all DT-published packages in the @types scope.
+on:
+ schedule:
+ # https://crontab.guru/#0_0_*_*_0
+ - cron: 0 0 * * 0
+ workflow_call:
+ inputs:
+ dry-run:
+ type: boolean
+ workflow_dispatch:
+ inputs:
+ dry-run:
+ type: boolean
+jobs:
+ retag:
+ if: github.event_name != 'schedule' || github.repository == 'microsoft/DefinitelyTyped-tools'
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ - uses: actions/setup-node@v3
+ with:
+ cache: yarn
+ - run: yarn install --frozen-lockfile
+ - run: yarn build
+ - uses: actions/cache@v3
+ with:
+ path: packages/utils/cache/
+ key: cache-${{ github.run_id }}
+ restore-keys: cache-
+ - name: Update npm tags${{ (inputs || github.event.inputs).dry-run && ' dry run' || '' }}
+ run: yarn retag${{ (inputs || github.event.inputs).dry-run && ' --dry' || '' }}
+ env:
+ NPM_TOKEN: ${{ secrets.NPM_RETAG_TOKEN }}
+ - if: always()
+ uses: actions/upload-artifact@v3
+ with:
+ name: ${{ github.job }}
+ path: packages/definitions-parser/data/
diff --git a/.github/workflows/update-ts-version-tags.yml b/.github/workflows/update-ts-version-tags.yml
deleted file mode 100644
index 220c96e542..0000000000
--- a/.github/workflows/update-ts-version-tags.yml
+++ /dev/null
@@ -1,35 +0,0 @@
-name: Update ts* tags for ATA
-
-# For testing
-# on: pull_request
-
-# For production
-on:
- workflow_dispatch:
- inputs:
- checkout:
- description: ref to deploy
- required: true
- default: master
- schedule:
- # https://crontab.guru/#5_8_*_*_1
- - cron: "5 8 * * 1"
-
-jobs:
- publish:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - uses: actions/setup-node@v2
- with:
- node-version: '14'
- - name: retag
- run: |
- git clone --depth 1 https://github.com/DefinitelyTyped/DefinitelyTyped ../DefinitelyTyped
- yarn
- yarn build
- node packages/retag/dist/index.js
- env:
- NPM_TOKEN: ${{ secrets.NPM_RETAG_TOKEN }}
- GH_API_TOKEN: ${{ secrets.GH_API_TOKEN }}
-
\ No newline at end of file
diff --git a/README.md b/README.md
index 31d1e8ca09..f3e0956864 100644
--- a/README.md
+++ b/README.md
@@ -3,6 +3,7 @@
A monorepo for formerly disparate DefinitelyTyped-related tools:
- [definitions-parser](packages/definitions-parser): the part of [microsoft/types-publisher](https://github.com/microsoft/types-publisher) that reads DefinitelyTyped repository data
+- [deprecate](packages/publish-registry): Loop over npm @types packages and mark as deprecated any that no longer exist in the DT repo.
- [dtslint](packages/dtslint): [microsoft/dtslint](https://github.com/microsoft/dtslint)
- [dtslint-runner](packages/dtslint-runner): [DefinitelyTyped/dtslint-runner](https://github.com/DefinitelyTyped/dtslint-runner)
- [dts-critic](packages/dts-critic): [DefinitelyTyped/dts-critic](https://github.com/DefinitelyTyped/dts-critic)
diff --git a/package.json b/package.json
index 703d67b994..d0054ec5c5 100644
--- a/package.json
+++ b/package.json
@@ -11,7 +11,7 @@
"format": "prettier --write 'packages/**/*.ts'",
"test": "jest",
"build": "tsc -b .",
- "retag": "node packages/retag/dist/retag.js"
+ "retag": "node --require source-map-support/register packages/retag/"
},
"devDependencies": {
"@types/jest": "^25.1.3",
diff --git a/packages/deprecate/README.md b/packages/deprecate/README.md
new file mode 100644
index 0000000000..50e5702961
--- /dev/null
+++ b/packages/deprecate/README.md
@@ -0,0 +1,55 @@
+# deprecate
+
+[](https://github.com/microsoft/DefinitelyTyped-tools/actions/workflows/deprecate.yml)
+
+Loop over npm @types packages and mark as deprecated any that no longer exist in the DT repo.
+
+## Use
+
+```sh
+yarn workspace @definitelytyped/publisher parse
+node packages/deprecate/
+```
+
+1. [Parse declarations](../publisher/README.md#parse-the-definitions).
+2. Run this package's script.
+
+### Options
+
+
-
+
+`--dry-run`
+
+
-
+
+Don't actually mark anything as deprecated, just show what would be done.
+
+
+
+### Environment variables
+
+-
+
+`GITHUB_TOKEN`
+
+
-
+
+Required.
+Used to talk to [GitHub's GraphQL API](https://docs.github.com/en/graphql/guides/forming-calls-with-graphql#authenticating-with-graphql), to find the commit/PR that removed the types.
+That data is public and a GitHub Actions [automatic token](https://docs.github.com/en/actions/security-guides/automatic-token-authentication) is sufficient.
+
+
-
+
+[`NPM_TOKEN`](https://docs.npmjs.com/about-access-tokens)
+
+
-
+
+Not required for a dry run.
+Only used to actually mark @types packages as deprecated.
+
+
+
+## Logs
+
+GitHub Actions runs this package's script weekly.
+You can [examine the logs](https://github.com/microsoft/DefinitelyTyped-tools/actions/workflows/deprecate.yml).
diff --git a/packages/deprecate/package.json b/packages/deprecate/package.json
new file mode 100644
index 0000000000..94d2271d24
--- /dev/null
+++ b/packages/deprecate/package.json
@@ -0,0 +1,26 @@
+{
+ "name": "@definitelytyped/deprecate",
+ "version": "1.0.0",
+ "description": "Loop over npm @types packages and mark as deprecated any that no longer exist in the DT repo.",
+ "license": "MIT",
+ "main": "dist/index.js",
+ "scripts": {
+ "build": "tsc --build"
+ },
+ "dependencies": {
+ "@definitelytyped/definitions-parser": "^0.0.121",
+ "@definitelytyped/utils": "^0.0.121",
+ "@octokit/graphql": "^4.8.0",
+ "all-the-package-names": "^2.0.176",
+ "pacote": "^13.6.1",
+ "typescript-dom-lib-generator": "https://github.com/microsoft/TypeScript-DOM-lib-generator.git",
+ "yargs": "^17.5.1"
+ },
+ "devDependencies": {
+ "@types/all-the-package-names": "^1.3744.0",
+ "@types/pacote": "^11.1.5",
+ "@types/yargs": "^17.0.10"
+ },
+ "private": true,
+ "type": "module"
+}
diff --git a/packages/deprecate/src/index.ts b/packages/deprecate/src/index.ts
new file mode 100644
index 0000000000..a759e08a53
--- /dev/null
+++ b/packages/deprecate/src/index.ts
@@ -0,0 +1,97 @@
+#!/usr/bin/env node
+
+import console from "console";
+import process from "process";
+import { AllPackages, getDefinitelyTyped } from "@definitelytyped/definitions-parser";
+import { NpmPublishClient, cacheDir } from "@definitelytyped/utils";
+import { graphql } from "@octokit/graphql";
+import names from "all-the-package-names" assert { type: "json" };
+import pacote from "pacote";
+// @ts-expect-error
+import { packages } from "typescript-dom-lib-generator/deploy/createTypesPackages.js";
+import yargs from "yargs";
+
+(async () => {
+ const { dryRun } = yargs(process.argv).argv as never;
+ const options = { definitelyTypedPath: undefined, progress: false, parseInParallel: false };
+ // @ts-expect-error
+ const domLibs = new Set(packages.map((pkg) => pkg.name));
+ const dt = await getDefinitelyTyped(options, console);
+ const allPackages = await AllPackages.read(dt);
+ const client = await NpmPublishClient.create(process.env.NPM_TOKEN!);
+ // Loop over npm @types packages and mark as deprecated any that no longer exist in the DT repo.
+ for (const name of names) {
+ // Skip @types/web, etc.
+ if (!name.startsWith("@types/") || domLibs.has(name)) continue;
+ const types = name.slice("@types/".length);
+ // Skip ones that exist, either in the types/ directory or in notNeededPackages.json.
+ if (allPackages.tryGetLatestVersion(types) || allPackages.getNotNeededPackage(types)) continue;
+ // Skip already-deprecated packages.
+ // Cache package deprecation indefinitely.
+ const offline = await pacote.manifest(name, { cache: cacheDir, offline: true }).catch((reason) => {
+ if (reason.code !== "ENOTCACHED") throw reason;
+ return undefined;
+ });
+ if (offline?.deprecated) continue;
+ const online = await pacote.manifest(name, { cache: cacheDir, preferOnline: true });
+ if (online.deprecated) continue;
+ const msg = await fetchMsg(types);
+ if (!msg) {
+ console.log(`Could not find the commit that removed types/${types}/.`);
+ continue;
+ }
+ console.log(`Deprecating ${name}: ${msg}`);
+ if (!dryRun) await client.deprecate(name, "*", msg);
+ }
+})();
+
+/** Reference the commit/PR that removed the named types. */
+async function fetchMsg(types: string) {
+ const {
+ repository: {
+ defaultBranchRef: {
+ target: {
+ history: {
+ nodes: [commit],
+ },
+ },
+ },
+ },
+ } = await graphql(
+ `
+ query ($path: String!) {
+ repository(name: "DefinitelyTyped", owner: "DefinitelyTyped") {
+ defaultBranchRef {
+ target {
+ ... on Commit {
+ history(first: 1, path: $path) {
+ nodes {
+ associatedPullRequests(first: 1) {
+ nodes {
+ url
+ }
+ }
+ messageHeadline
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ `,
+ {
+ headers: { authorization: `token ${process.env.GITHUB_TOKEN}` },
+ path: `types/${types}/`,
+ }
+ );
+ if (!commit) return;
+ const {
+ associatedPullRequests: {
+ nodes: [pullRequest],
+ },
+ messageHeadline,
+ } = commit;
+ const subject = messageHeadline.replace(new RegExp(String.raw`^\[${types}] `), "").replace(/ \(#[0-9]+\)$/, "");
+ return pullRequest ? `${subject} ${pullRequest.url}` : subject;
+}
diff --git a/packages/deprecate/tsconfig.json b/packages/deprecate/tsconfig.json
new file mode 100644
index 0000000000..22d80f3892
--- /dev/null
+++ b/packages/deprecate/tsconfig.json
@@ -0,0 +1,10 @@
+{
+ "extends": "../../tsconfig.base.json",
+ "compilerOptions": {
+ "module": "esnext",
+ "moduleResolution": "node",
+ "rootDir": "src/",
+ "outDir": "dist/"
+ },
+ "references": [{ "path": "../definitions-parser/" }, { "path": "../utils/" }]
+}
diff --git a/packages/publisher/src/generate-packages.ts b/packages/publisher/src/generate-packages.ts
index d7422279a2..ae16eeb103 100644
--- a/packages/publisher/src/generate-packages.ts
+++ b/packages/publisher/src/generate-packages.ts
@@ -1,9 +1,10 @@
import { makeTypesVersionsForPackageJson } from "@definitelytyped/header-parser";
import { emptyDir, mkdir, mkdirp, readFileSync } from "fs-extra";
import path = require("path");
+import process from "process";
import yargs = require("yargs");
-import { defaultLocalOptions } from "./lib/common";
+import { defaultLocalOptions, defaultRemoteOptions } from "./lib/common";
import { outputDirPath, sourceBranch } from "./lib/settings";
import {
assertNever,
@@ -42,7 +43,7 @@ if (!module.parent) {
const tgz = !!yargs.argv.tgz;
logUncaughtErrors(async () => {
const log = loggerWithErrors()[0];
- const dt = await getDefinitelyTyped(defaultLocalOptions, log);
+ const dt = await getDefinitelyTyped(process.env.GITHUB_ACTIONS ? defaultRemoteOptions : defaultLocalOptions, log);
const allPackages = await AllPackages.read(dt);
await generatePackages(dt, allPackages, await readChangedPackages(allPackages), tgz);
});
diff --git a/packages/publisher/src/publish-packages.ts b/packages/publisher/src/publish-packages.ts
index 5b7b168526..3b11482710 100644
--- a/packages/publisher/src/publish-packages.ts
+++ b/packages/publisher/src/publish-packages.ts
@@ -1,7 +1,8 @@
+import process from "process";
import applicationinsights = require("applicationinsights");
import * as yargs from "yargs";
-import { defaultLocalOptions } from "./lib/common";
+import { defaultLocalOptions, defaultRemoteOptions } from "./lib/common";
import { publishNotNeededPackage, publishTypingsPackage } from "./lib/package-publisher";
import { getDefinitelyTyped, AllPackages } from "@definitelytyped/definitions-parser";
import {
@@ -19,7 +20,10 @@ import { getSecret, Secret } from "./lib/secrets";
if (!module.parent) {
const dry = !!yargs.argv.dry;
logUncaughtErrors(async () => {
- const dt = await getDefinitelyTyped(defaultLocalOptions, loggerWithErrors()[0]);
+ const dt = await getDefinitelyTyped(
+ process.env.GITHUB_ACTIONS ? defaultRemoteOptions : defaultLocalOptions,
+ loggerWithErrors()[0]
+ );
await publishPackages(
await readChangedPackages(await AllPackages.read(dt)),
dry,
@@ -42,7 +46,7 @@ export default async function publishPackages(
log("=== Publishing packages ===");
}
- const client = await NpmPublishClient.create(await getSecret(Secret.NPM_TOKEN), undefined);
+ const client = await NpmPublishClient.create(dry ? "" : await getSecret(Secret.NPM_TOKEN), undefined);
for (const cp of changedPackages.changedTypings) {
log(`Publishing ${cp.pkg.desc}...`);
diff --git a/packages/retag/package.json b/packages/retag/package.json
index 98b0f35439..3bf83c7096 100644
--- a/packages/retag/package.json
+++ b/packages/retag/package.json
@@ -31,9 +31,6 @@
"@types/yargs": "^15.0.5"
},
"main": "dist/index.js",
- "bin": {
- "retag": "./dist/retag.js"
- },
"publishConfig": {
"access": "public"
}
diff --git a/packages/retag/src/index.ts b/packages/retag/src/index.ts
index 277ef487ef..a4486154b5 100644
--- a/packages/retag/src/index.ts
+++ b/packages/retag/src/index.ts
@@ -1,5 +1,3 @@
-#!/usr/bin/env node
-
import assert = require("assert");
import yargs from "yargs";
import process = require("process");
@@ -49,10 +47,14 @@ async function main() {
*/
async function tag(dry: boolean, nProcesses: number, name?: string) {
const log = loggerWithErrors()[0];
- const options = { definitelyTypedPath: "../DefinitelyTyped", progress: true, parseInParallel: true };
+ const options = process.env.GITHUB_ACTIONS
+ ? { definitelyTypedPath: undefined, progress: false, parseInParallel: false }
+ : { definitelyTypedPath: "../DefinitelyTyped", progress: true, parseInParallel: true };
await parseDefinitions(
await getDefinitelyTyped(options, log),
- { nProcesses: nProcesses || os.cpus().length, definitelyTypedPath: "../DefinitelyTyped" },
+ options.parseInParallel
+ ? { nProcesses: nProcesses || os.cpus().length, definitelyTypedPath: "../DefinitelyTyped" }
+ : undefined,
log
);
diff --git a/tsconfig.json b/tsconfig.json
index 0432015905..63b862df38 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -3,14 +3,15 @@
"files": [],
"references": [
{ "path": "packages/definitions-parser" },
+ { "path": "packages/deprecate" },
{ "path": "packages/dts-critic" },
{ "path": "packages/dtslint" },
{ "path": "packages/dtslint-runner" },
{ "path": "packages/header-parser" },
{ "path": "packages/perf" },
{ "path": "packages/publisher" },
+ { "path": "packages/retag" },
{ "path": "packages/typescript-versions" },
- { "path": "packages/utils" },
- { "path": "packages/retag" }
+ { "path": "packages/utils" }
]
}
diff --git a/yarn.lock b/yarn.lock
index 5a01279d97..02823ab02b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1563,7 +1563,7 @@
is-plain-object "^3.0.0"
universal-user-agent "^5.0.0"
-"@octokit/graphql@^4.5.8":
+"@octokit/graphql@^4.5.8", "@octokit/graphql@^4.8.0":
version "4.8.0"
resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.8.0.tgz#664d9b11c0e12112cbf78e10f49a05959aa22cc3"
integrity sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==
@@ -1762,6 +1762,11 @@
resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf"
integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==
+"@types/all-the-package-names@^1.3744.0":
+ version "1.3744.0"
+ resolved "https://registry.yarnpkg.com/@types/all-the-package-names/-/all-the-package-names-1.3744.0.tgz#bf137bd79262dd24ed93ea80996f6a7bef74845e"
+ integrity sha512-pHfzXywUNwg0aKYXZqkl1H0dNOjJG8j5e1PqBrhQgF3vj+jcxZVKsaW+LFkc29R2PcIkIas8D6ocFIJqy0NFXg==
+
"@types/babel__core@^7.1.7":
version "7.1.7"
resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.7.tgz#1dacad8840364a57c98d0dd4855c6dd3752c6b89"
@@ -2124,6 +2129,13 @@
dependencies:
"@types/yargs-parser" "*"
+"@types/yargs@^17.0.10":
+ version "17.0.10"
+ resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.10.tgz#591522fce85d8739bca7b8bb90d048e4478d186a"
+ integrity sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA==
+ dependencies:
+ "@types/yargs-parser" "*"
+
"@typescript-eslint/eslint-plugin@^4.8.1":
version "4.28.2"
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.28.2.tgz#7a8320f00141666813d0ae43b49ee8244f7cf92a"
@@ -2387,6 +2399,11 @@ ajv@^8.0.1:
require-from-string "^2.0.2"
uri-js "^4.2.2"
+all-the-package-names@^2.0.176:
+ version "2.0.176"
+ resolved "https://registry.yarnpkg.com/all-the-package-names/-/all-the-package-names-2.0.176.tgz#337bd76541e85985e09494d83b4734c8f02499a6"
+ integrity sha512-iDXRXto0tg4IiPHgZybugcpyusEZ8gor5ldS69OWCGIRDgEU7K+85G8iTG6IRCt+xbSj1Fz3zbwCvEJWJX7Akg==
+
ansi-colors@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348"
@@ -9104,6 +9121,10 @@ typedarray@^0.0.6:
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
+"typescript-dom-lib-generator@https://github.com/microsoft/TypeScript-DOM-lib-generator.git":
+ version "0.0.1"
+ resolved "https://github.com/microsoft/TypeScript-DOM-lib-generator.git#bb1b98941082ed7585b4bab8215774d4833ddc49"
+
typescript@^4.1.0:
version "4.5.5"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.5.tgz#d8c953832d28924a9e3d37c73d729c846c5896f3"
@@ -9594,6 +9615,11 @@ yargs-parser@^20.2.2, yargs-parser@^20.2.3:
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee"
integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==
+yargs-parser@^21.0.0:
+ version "21.0.1"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.1.tgz#0267f286c877a4f0f728fceb6f8a3e4cb95c6e35"
+ integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==
+
yargs@15.3.1, yargs@^15.1.0, yargs@^15.3.1:
version "15.3.1"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.3.1.tgz#9505b472763963e54afe60148ad27a330818e98b"
@@ -9641,6 +9667,19 @@ yargs@^16.2.0:
y18n "^5.0.5"
yargs-parser "^20.2.2"
+yargs@^17.5.1:
+ version "17.5.1"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.5.1.tgz#e109900cab6fcb7fd44b1d8249166feb0b36e58e"
+ integrity sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==
+ dependencies:
+ cliui "^7.0.2"
+ escalade "^3.1.1"
+ get-caller-file "^2.0.5"
+ require-directory "^2.1.1"
+ string-width "^4.2.3"
+ y18n "^5.0.5"
+ yargs-parser "^21.0.0"
+
zero-fill@^2.2.3:
version "2.2.4"
resolved "https://registry.yarnpkg.com/zero-fill/-/zero-fill-2.2.4.tgz#b041320973dbcb03cd90193270ac8d4a3da05fc1"