From 39322d9057268cdf73af96d4067656dcd3bd790d Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 28 Jan 2023 22:21:40 +0100 Subject: [PATCH] don't depend on the GitHub API to check release Signed-off-by: CrazyMax --- .github/workflows/test.yml | 2 - README.md | 30 -------- __tests__/buildx.test.ts | 30 +++++++- __tests__/github.test.ts | 20 ------ action.yml | 9 --- dev.Dockerfile | 3 +- docker-bake.hcl | 1 - package.json | 2 +- src/buildx.ts | 34 ++++++--- src/context.ts | 4 +- src/github.ts | 41 ----------- src/main.ts | 2 +- yarn.lock | 143 +------------------------------------ 13 files changed, 60 insertions(+), 261 deletions(-) delete mode 100644 __tests__/github.test.ts delete mode 100644 src/github.ts diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5d442a7..4da49a3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -30,8 +30,6 @@ jobs: uses: docker/bake-action@v2 with: targets: test - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Upload coverage uses: codecov/codecov-action@v3 diff --git a/README.md b/README.md index 21ae407..1018732 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,6 @@ ___ * [Notes](#notes) * [`nodes` output](#nodes-output) * [BuildKit container logs](#buildkit-container-logs) -* [Using on GHES](#using-on-ghes) * [Contributing](#contributing) ## Usage @@ -175,35 +174,6 @@ The following [official docker environment variables](https://docs.docker.com/en See https://docs.docker.com/build/ci/github-actions/configure-builder/#buildkit-container-logs -## Using on GHES - -GitHub Runners come [pre-installed with Docker Buildx](https://github.com/actions/runner-images/blob/main/images/linux/Ubuntu2204-Readme.md) -following your virtual environment. If you specify a version or `latest` of -Docker Buildx in your workflow, the version will be downloaded from [GitHub Releases in `docker/buildx`](https://github.com/docker/buildx/releases) -repository. These calls to `docker/buildx` are made via unauthenticated requests, -which are limited to [60 requests per hour per IP](https://docs.github.com/en/rest/overview/resources-in-the-rest-api#rate-limiting). - -If more requests are made within the time frame, then you will start to see -rate-limit errors during downloading that looks like: - -``` -##[error]API rate limit exceeded for... -``` - -To get a higher rate limit, you can [generate a personal access token on github.com](https://github.com/settings/tokens/new) -and pass it as the `github_token` input for the action: - -```yaml -uses: docker/setup-buildx-action@v2 -with: - github_token: ${{ secrets.GH_DOTCOM_TOKEN }} - version: v0.10.1 -``` - -If the runner is not able to access `github.com`, it will take the default one -available on the GitHub Runner or runner's tool cache. See "[Setting up the tool cache on self-hosted runners without internet access](https://docs.github.com/en/enterprise-server/admin/github-actions/managing-access-to-actions-from-githubcom/setting-up-the-tool-cache-on-self-hosted-runners-without-internet-access)" -for more information. - ## Contributing Want to contribute? Awesome! You can find information about contributing to diff --git a/__tests__/buildx.test.ts b/__tests__/buildx.test.ts index af3b944..1de8177 100644 --- a/__tests__/buildx.test.ts +++ b/__tests__/buildx.test.ts @@ -28,6 +28,34 @@ describe('isAvailable', () => { }); }); +describe('getRelease', () => { + it('returns latest buildx GitHub release', async () => { + const release = await buildx.getRelease('latest'); + expect(release).not.toBeNull(); + expect(release?.tag_name).not.toEqual(''); + }); + + it('returns v0.10.1 buildx GitHub release', async () => { + const release = await buildx.getRelease('v0.10.1'); + expect(release).not.toBeNull(); + expect(release?.id).toEqual(90346950); + expect(release?.tag_name).toEqual('v0.10.1'); + expect(release?.html_url).toEqual('https://github.com/docker/buildx/releases/tag/v0.10.1'); + }); + + it('returns v0.2.2 buildx GitHub release', async () => { + const release = await buildx.getRelease('v0.2.2'); + expect(release).not.toBeNull(); + expect(release?.id).toEqual(17671545); + expect(release?.tag_name).toEqual('v0.2.2'); + expect(release?.html_url).toEqual('https://github.com/docker/buildx/releases/tag/v0.2.2'); + }); + + it('unknown release', async () => { + await expect(buildx.getRelease('foo')).rejects.toThrowError(new Error('Cannot find Buildx release foo in https://raw.githubusercontent.com/docker/buildx/master/.github/releases.json')); + }); +}); + describe('isAvailable standalone', () => { const execSpy = jest.spyOn(exec, 'getExecOutput'); buildx.isAvailable(true); @@ -221,7 +249,7 @@ describe('install', () => { ])( 'acquires %p of buildx (standalone: %p)', async (version, standalone) => { - const buildxBin = await buildx.install(version, process.env.GITHUB_TOKEN || '', tmpDir, standalone); + const buildxBin = await buildx.install(version, tmpDir, standalone); expect(fs.existsSync(buildxBin)).toBe(true); }, 100000 diff --git a/__tests__/github.test.ts b/__tests__/github.test.ts deleted file mode 100644 index 0fa8037..0000000 --- a/__tests__/github.test.ts +++ /dev/null @@ -1,20 +0,0 @@ -import {describe, expect, it} from '@jest/globals'; -import * as github from '../src/github'; - -describe('github', () => { - it('returns latest buildx GitHub release', async () => { - const release = await github.getLatestRelease(process.env.GITHUB_TOKEN || ''); - expect(release).not.toBeNull(); - expect(release?.tag_name).not.toEqual(''); - }); - - it('returns v0.2.2 buildx GitHub release', async () => { - const release = await github.getReleaseTag('v0.2.2', process.env.GITHUB_TOKEN || ''); - expect(release).not.toBeNull(); - expect(release?.tag_name).toEqual('v0.2.2'); - }); - - it('unknown release', async () => { - await expect(github.getReleaseTag('foo', process.env.GITHUB_TOKEN || '')).rejects.toThrowError(new Error('Cannot get release foo: HttpError: Not Found')); - }); -}); diff --git a/action.yml b/action.yml index ba1b7c2..885679e 100644 --- a/action.yml +++ b/action.yml @@ -44,15 +44,6 @@ inputs: append: description: 'Append additional nodes to the builder' required: false - github_token: - # https://github.com/actions/setup-go/blob/21459d0b7b1d63741429b748885bf5a4974593b4/action.yml#L12-L14 - description: > - Used to verifiy the Git tag exists on docker/buildx repo. Since there's a - default, this is typically not supplied by the user. When running this - action on github.com, the default value is sufficient. When running on - GHES, you can pass a personal access token for github.com if you are - experiencing rate limiting. - default: ${{ github.server_url == 'https://github.com' && github.token || '' }} outputs: name: diff --git a/dev.Dockerfile b/dev.Dockerfile index 8d92a0d..43b44a1 100644 --- a/dev.Dockerfile +++ b/dev.Dockerfile @@ -72,8 +72,7 @@ RUN --mount=type=bind,target=.,rw \ --mount=type=cache,target=/src/node_modules \ --mount=type=bind,from=docker,source=/usr/local/bin/docker,target=/usr/bin/docker \ --mount=type=bind,from=buildx,source=/buildx,target=/usr/libexec/docker/cli-plugins/docker-buildx \ - --mount=type=secret,id=GITHUB_TOKEN \ - GITHUB_TOKEN=$(cat /run/secrets/GITHUB_TOKEN) yarn run test --coverageDirectory=/tmp/coverage + yarn run test --coverageDirectory=/tmp/coverage FROM scratch AS test-coverage COPY --from=test /tmp/coverage / diff --git a/docker-bake.hcl b/docker-bake.hcl index b64f6c6..2942972 100644 --- a/docker-bake.hcl +++ b/docker-bake.hcl @@ -50,5 +50,4 @@ target "test" { dockerfile = "dev.Dockerfile" target = "test-coverage" output = ["./coverage"] - secret = ["id=GITHUB_TOKEN,env=GITHUB_TOKEN"] } diff --git a/package.json b/package.json index e4f928c..7cf7bd7 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "dependencies": { "@actions/core": "^1.10.0", "@actions/exec": "^1.1.1", - "@actions/github": "^5.1.1", + "@actions/http-client": "^2.0.1", "@actions/tool-cache": "^2.0.1", "csv-parse": "^5.3.3", "js-yaml": "^4.1.0", diff --git a/src/buildx.ts b/src/buildx.ts index f3e7d19..323f5c8 100644 --- a/src/buildx.ts +++ b/src/buildx.ts @@ -4,9 +4,9 @@ import * as semver from 'semver'; import * as util from 'util'; import * as context from './context'; import * as git from './git'; -import * as github from './github'; import * as core from '@actions/core'; import * as exec from '@actions/exec'; +import * as httpm from '@actions/http-client'; import * as tc from '@actions/tool-cache'; export type Builder = { @@ -25,6 +25,29 @@ export type Node = { platforms?: string; }; +export interface GitHubRelease { + id: number; + tag_name: string; + html_url: string; + assets: Array; +} + +export const getRelease = async (version: string): Promise => { + const url = `https://raw.githubusercontent.com/docker/buildx/master/.github/releases.json`; + const http: httpm.HttpClient = new httpm.HttpClient('setup-buildx'); + const resp: httpm.HttpClientResponse = await http.get(url); + const body = await resp.readBody(); + const statusCode = resp.message.statusCode || 500; + if (statusCode >= 400) { + throw new Error(`Failed to get Buildx release ${version} from ${url} with status code ${statusCode}: ${body}`); + } + const releases = >JSON.parse(body); + if (!releases[version]) { + throw new Error(`Cannot find Buildx release ${version} in ${url}`); + } + return releases[version]; +}; + export async function getConfigInline(s: string): Promise { return getConfig(s, false); } @@ -237,13 +260,8 @@ export async function build(inputBuildRef: string, dest: string, standalone: boo return setPlugin(toolPath, dest); } -export async function install(inputVersion: string, githubToken: string, dest: string, standalone: boolean): Promise { - let release: github.Release; - if (inputVersion == 'latest') { - release = await github.getLatestRelease(githubToken); - } else { - release = await github.getReleaseTag(inputVersion, githubToken); - } +export async function install(inputVersion: string, dest: string, standalone: boolean): Promise { + const release: GitHubRelease = await getRelease(inputVersion); core.debug(`Release ${release.tag_name} found`); const version = release.tag_name.replace(/^v+|v+$/g, ''); diff --git a/src/context.ts b/src/context.ts index 6a863d5..5146bc1 100644 --- a/src/context.ts +++ b/src/context.ts @@ -36,7 +36,6 @@ export interface Inputs { config: string; configInline: string; append: string; - githubToken: string; } export async function getInputs(): Promise { @@ -52,8 +51,7 @@ export async function getInputs(): Promise { endpoint: core.getInput('endpoint'), config: core.getInput('config'), configInline: core.getInput('config-inline'), - append: core.getInput('append'), - githubToken: core.getInput('github_token') + append: core.getInput('append') }; } diff --git a/src/github.ts b/src/github.ts deleted file mode 100644 index c819fd9..0000000 --- a/src/github.ts +++ /dev/null @@ -1,41 +0,0 @@ -import * as github from '@actions/github'; - -export interface Release { - id: number; - tag_name: string; -} - -const [owner, repo] = 'docker/buildx'.split('/'); - -export const getReleaseTag = async (tag: string, githubToken: string): Promise => { - return ( - await github - .getOctokit(githubToken, { - baseUrl: 'https://api.github.com' - }) - .rest.repos.getReleaseByTag({ - owner, - repo, - tag - }) - .catch(error => { - throw new Error(`Cannot get release ${tag}: ${error}`); - }) - ).data as Release; -}; - -export const getLatestRelease = async (githubToken: string): Promise => { - return ( - await github - .getOctokit(githubToken, { - baseUrl: 'https://api.github.com' - }) - .rest.repos.getLatestRelease({ - owner, - repo - }) - .catch(error => { - throw new Error(`Cannot get latest release: ${error}`); - }) - ).data as Release; -}; diff --git a/src/main.ts b/src/main.ts index b737ed9..46f54d1 100644 --- a/src/main.ts +++ b/src/main.ts @@ -42,7 +42,7 @@ async function run(): Promise { core.endGroup(); } else if (!(await buildx.isAvailable(standalone)) || inputs.version) { core.startGroup(`Download and install buildx`); - await buildx.install(inputs.version || 'latest', inputs.githubToken, standalone ? context.tmpDir() : dockerConfigHome, standalone); + await buildx.install(inputs.version || 'latest', standalone ? context.tmpDir() : dockerConfigHome, standalone); core.endGroup(); } diff --git a/yarn.lock b/yarn.lock index e3eb8c4..405ad83 100644 --- a/yarn.lock +++ b/yarn.lock @@ -17,16 +17,6 @@ dependencies: "@actions/io" "^1.0.1" -"@actions/github@^5.1.1": - version "5.1.1" - resolved "https://registry.yarnpkg.com/@actions/github/-/github-5.1.1.tgz#40b9b9e1323a5efcf4ff7dadd33d8ea51651bbcb" - integrity sha512-Nk59rMDoJaV+mHCOJPXuvB1zIbomlKS0dmSIqPGxd0enAXBnOfn4VWF+CGtRCwXZG9Epa54tZA7VIRlJDS8A6g== - dependencies: - "@actions/http-client" "^2.0.1" - "@octokit/core" "^3.6.0" - "@octokit/plugin-paginate-rest" "^2.17.0" - "@octokit/plugin-rest-endpoint-methods" "^5.13.0" - "@actions/http-client@^2.0.1": version "2.0.1" resolved "https://registry.yarnpkg.com/@actions/http-client/-/http-client-2.0.1.tgz#873f4ca98fe32f6839462a6f046332677322f99c" @@ -811,92 +801,6 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@octokit/auth-token@^2.4.4": - version "2.5.0" - resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.5.0.tgz#27c37ea26c205f28443402477ffd261311f21e36" - integrity sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g== - dependencies: - "@octokit/types" "^6.0.3" - -"@octokit/core@^3.6.0": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@octokit/core/-/core-3.6.0.tgz#3376cb9f3008d9b3d110370d90e0a1fcd5fe6085" - integrity sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q== - dependencies: - "@octokit/auth-token" "^2.4.4" - "@octokit/graphql" "^4.5.8" - "@octokit/request" "^5.6.3" - "@octokit/request-error" "^2.0.5" - "@octokit/types" "^6.0.3" - before-after-hook "^2.2.0" - universal-user-agent "^6.0.0" - -"@octokit/endpoint@^6.0.1": - version "6.0.12" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.12.tgz#3b4d47a4b0e79b1027fb8d75d4221928b2d05658" - integrity sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA== - dependencies: - "@octokit/types" "^6.0.3" - is-plain-object "^5.0.0" - universal-user-agent "^6.0.0" - -"@octokit/graphql@^4.5.8": - version "4.8.0" - resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.8.0.tgz#664d9b11c0e12112cbf78e10f49a05959aa22cc3" - integrity sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg== - dependencies: - "@octokit/request" "^5.6.0" - "@octokit/types" "^6.0.3" - universal-user-agent "^6.0.0" - -"@octokit/openapi-types@^12.11.0": - version "12.11.0" - resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-12.11.0.tgz#da5638d64f2b919bca89ce6602d059f1b52d3ef0" - integrity sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ== - -"@octokit/plugin-paginate-rest@^2.17.0": - version "2.21.3" - resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.3.tgz#7f12532797775640dbb8224da577da7dc210c87e" - integrity sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw== - dependencies: - "@octokit/types" "^6.40.0" - -"@octokit/plugin-rest-endpoint-methods@^5.13.0": - version "5.16.2" - resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz#7ee8bf586df97dd6868cf68f641354e908c25342" - integrity sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw== - dependencies: - "@octokit/types" "^6.39.0" - deprecation "^2.3.1" - -"@octokit/request-error@^2.0.5", "@octokit/request-error@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.1.0.tgz#9e150357831bfc788d13a4fd4b1913d60c74d677" - integrity sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg== - dependencies: - "@octokit/types" "^6.0.3" - deprecation "^2.0.0" - once "^1.4.0" - -"@octokit/request@^5.6.0", "@octokit/request@^5.6.3": - version "5.6.3" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.6.3.tgz#19a022515a5bba965ac06c9d1334514eb50c48b0" - integrity sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A== - dependencies: - "@octokit/endpoint" "^6.0.1" - "@octokit/request-error" "^2.1.0" - "@octokit/types" "^6.16.1" - is-plain-object "^5.0.0" - node-fetch "^2.6.7" - universal-user-agent "^6.0.0" - -"@octokit/types@^6.0.3", "@octokit/types@^6.16.1", "@octokit/types@^6.39.0", "@octokit/types@^6.40.0": - version "6.41.0" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.41.0.tgz#e58ef78d78596d2fb7df9c6259802464b5f84a04" - integrity sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg== - dependencies: - "@octokit/openapi-types" "^12.11.0" - "@sinonjs/commons@^1.7.0": version "1.8.3" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" @@ -1330,11 +1234,6 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -before-after-hook@^2.2.0: - version "2.2.3" - resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c" - integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ== - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -1609,11 +1508,6 @@ delayed-stream@~1.0.0: resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= -deprecation@^2.0.0, deprecation@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" - integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== - detect-newline@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" @@ -2205,11 +2099,6 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-plain-object@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" - integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== - is-potential-custom-element-name@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" @@ -2891,13 +2780,6 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= -node-fetch@^2.6.7: - version "2.6.8" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.8.tgz#a68d30b162bc1d8fd71a367e81b997e1f4d4937e" - integrity sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg== - dependencies: - whatwg-url "^5.0.0" - node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" @@ -2930,7 +2812,7 @@ nwsapi@^2.2.0: resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== -once@^1.3.0, once@^1.4.0: +once@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= @@ -3423,11 +3305,6 @@ tr46@^2.1.0: dependencies: punycode "^2.1.1" -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - ts-jest@^27.1.2: version "27.1.3" resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.1.3.tgz#1f723e7e74027c4da92c0ffbd73287e8af2b2957" @@ -3519,11 +3396,6 @@ typescript@^4.4.4: resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.2.tgz#fe12d2727b708f4eef40f51598b3398baa9611d4" integrity sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg== -universal-user-agent@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" - integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w== - universalify@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" @@ -3591,11 +3463,6 @@ walker@^1.0.7: dependencies: makeerror "1.0.x" -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - webidl-conversions@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" @@ -3618,14 +3485,6 @@ whatwg-mimetype@^2.3.0: resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - whatwg-url@^8.0.0, whatwg-url@^8.5.0: version "8.6.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.6.0.tgz#27c0205a4902084b872aecb97cf0f2a7a3011f4c"