Skip to content

Commit a024221

Browse files
authored
Merge pull request #191 from crazy-max/fix-dl-release
use Octokit client to download buildx
2 parents 7932f62 + 4c3fce4 commit a024221

File tree

15 files changed

+733
-21
lines changed

15 files changed

+733
-21
lines changed

.github/workflows/test.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ jobs:
3030
uses: docker/bake-action@v2
3131
with:
3232
targets: test
33+
env:
34+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
3335
-
3436
name: Upload coverage
3537
uses: codecov/codecov-action@v3

__tests__/buildx.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ describe('install', () => {
221221
])(
222222
'acquires %p of buildx (standalone: %p)',
223223
async (version, standalone) => {
224-
const buildxBin = await buildx.install(version, tmpDir, standalone);
224+
const buildxBin = await buildx.install(version, process.env.GITHUB_TOKEN || '', tmpDir, standalone);
225225
expect(fs.existsSync(buildxBin)).toBe(true);
226226
},
227227
100000

__tests__/github.test.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,18 @@ import * as github from '../src/github';
33

44
describe('github', () => {
55
it('returns latest buildx GitHub release', async () => {
6-
const release = await github.getRelease('latest');
6+
const release = await github.getLatestRelease(process.env.GITHUB_TOKEN || '');
77
expect(release).not.toBeNull();
88
expect(release?.tag_name).not.toEqual('');
99
});
1010

1111
it('returns v0.2.2 buildx GitHub release', async () => {
12-
const release = await github.getRelease('v0.2.2');
12+
const release = await github.getReleaseTag('v0.2.2', process.env.GITHUB_TOKEN || '');
1313
expect(release).not.toBeNull();
1414
expect(release?.tag_name).toEqual('v0.2.2');
1515
});
16+
17+
it('unknown release', async () => {
18+
await expect(github.getReleaseTag('foo', process.env.GITHUB_TOKEN || '')).rejects.toThrowError(new Error('Cannot get release foo: HttpError: Not Found'));
19+
});
1620
});

action.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,10 @@ inputs:
4444
append:
4545
description: 'Append additional nodes to the builder'
4646
required: false
47+
github_token:
48+
description: 'The GitHub token used to create an authenticated client for GitHub API'
49+
default: ${{ github.token }}
50+
required: false
4751

4852
outputs:
4953
name:

dev.Dockerfile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,8 @@ RUN --mount=type=bind,target=.,rw \
7272
--mount=type=cache,target=/src/node_modules \
7373
--mount=type=bind,from=docker,source=/usr/local/bin/docker,target=/usr/bin/docker \
7474
--mount=type=bind,from=buildx,source=/buildx,target=/usr/libexec/docker/cli-plugins/docker-buildx \
75-
yarn run test --coverageDirectory=/tmp/coverage
75+
--mount=type=secret,id=GITHUB_TOKEN \
76+
GITHUB_TOKEN=$(cat /run/secrets/GITHUB_TOKEN) yarn run test --coverageDirectory=/tmp/coverage
7677

7778
FROM scratch AS test-coverage
7879
COPY --from=test /tmp/coverage /

dist/index.js

Lines changed: 8 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/licenses.txt

Lines changed: 524 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docker-bake.hcl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,4 +50,5 @@ target "test" {
5050
dockerfile = "dev.Dockerfile"
5151
target = "test-coverage"
5252
output = ["./coverage"]
53+
secret = ["id=GITHUB_TOKEN,env=GITHUB_TOKEN"]
5354
}

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
"dependencies": {
3030
"@actions/core": "^1.10.0",
3131
"@actions/exec": "^1.1.1",
32-
"@actions/http-client": "^2.0.1",
32+
"@actions/github": "^5.1.1",
3333
"@actions/tool-cache": "^2.0.1",
3434
"csv-parse": "^5.3.3",
3535
"js-yaml": "^4.1.0",

src/buildx.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -237,10 +237,12 @@ export async function build(inputBuildRef: string, dest: string, standalone: boo
237237
return setPlugin(toolPath, dest);
238238
}
239239

240-
export async function install(inputVersion: string, dest: string, standalone: boolean): Promise<string> {
241-
const release: github.GitHubRelease | null = await github.getRelease(inputVersion);
242-
if (!release) {
243-
throw new Error(`Cannot find buildx ${inputVersion} release`);
240+
export async function install(inputVersion: string, githubToken: string, dest: string, standalone: boolean): Promise<string> {
241+
let release: github.Release;
242+
if (inputVersion == 'latest') {
243+
release = await github.getLatestRelease(githubToken);
244+
} else {
245+
release = await github.getReleaseTag(inputVersion, githubToken);
244246
}
245247
core.debug(`Release ${release.tag_name} found`);
246248
const version = release.tag_name.replace(/^v+|v+$/g, '');

src/context.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ export interface Inputs {
3636
config: string;
3737
configInline: string;
3838
append: string;
39+
githubToken: string;
3940
}
4041

4142
export async function getInputs(): Promise<Inputs> {
@@ -51,7 +52,8 @@ export async function getInputs(): Promise<Inputs> {
5152
endpoint: core.getInput('endpoint'),
5253
config: core.getInput('config'),
5354
configInline: core.getInput('config-inline'),
54-
append: core.getInput('append')
55+
append: core.getInput('append'),
56+
githubToken: core.getInput('github_token')
5557
};
5658
}
5759

src/github.ts

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,37 @@
1-
import * as httpm from '@actions/http-client';
1+
import * as github from '@actions/github';
22

3-
export interface GitHubRelease {
3+
export interface Release {
44
id: number;
55
tag_name: string;
66
}
77

8-
export const getRelease = async (version: string): Promise<GitHubRelease | null> => {
9-
const url = `https://github.com/docker/buildx/releases/${version}`;
10-
const http: httpm.HttpClient = new httpm.HttpClient('setup-buildx');
11-
return (await http.getJson<GitHubRelease>(url)).result;
8+
const [owner, repo] = 'docker/buildx'.split('/');
9+
10+
export const getReleaseTag = async (tag: string, githubToken: string): Promise<Release> => {
11+
return (
12+
await github
13+
.getOctokit(githubToken)
14+
.rest.repos.getReleaseByTag({
15+
owner,
16+
repo,
17+
tag
18+
})
19+
.catch(error => {
20+
throw new Error(`Cannot get release ${tag}: ${error}`);
21+
})
22+
).data as Release;
23+
};
24+
25+
export const getLatestRelease = async (githubToken: string): Promise<Release> => {
26+
return (
27+
await github
28+
.getOctokit(githubToken)
29+
.rest.repos.getLatestRelease({
30+
owner,
31+
repo
32+
})
33+
.catch(error => {
34+
throw new Error(`Cannot get latest release: ${error}`);
35+
})
36+
).data as Release;
1237
};

src/main.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ async function run(): Promise<void> {
4242
core.endGroup();
4343
} else if (!(await buildx.isAvailable(standalone)) || inputs.version) {
4444
core.startGroup(`Download and install buildx`);
45-
await buildx.install(inputs.version || 'latest', standalone ? context.tmpDir() : dockerConfigHome, standalone);
45+
await buildx.install(inputs.version || 'latest', inputs.githubToken, standalone ? context.tmpDir() : dockerConfigHome, standalone);
4646
core.endGroup();
4747
}
4848

yarn.lock

Lines changed: 142 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,16 @@
1717
dependencies:
1818
"@actions/io" "^1.0.1"
1919

20+
"@actions/github@^5.1.1":
21+
version "5.1.1"
22+
resolved "https://registry.yarnpkg.com/@actions/github/-/github-5.1.1.tgz#40b9b9e1323a5efcf4ff7dadd33d8ea51651bbcb"
23+
integrity sha512-Nk59rMDoJaV+mHCOJPXuvB1zIbomlKS0dmSIqPGxd0enAXBnOfn4VWF+CGtRCwXZG9Epa54tZA7VIRlJDS8A6g==
24+
dependencies:
25+
"@actions/http-client" "^2.0.1"
26+
"@octokit/core" "^3.6.0"
27+
"@octokit/plugin-paginate-rest" "^2.17.0"
28+
"@octokit/plugin-rest-endpoint-methods" "^5.13.0"
29+
2030
"@actions/http-client@^2.0.1":
2131
version "2.0.1"
2232
resolved "https://registry.yarnpkg.com/@actions/http-client/-/http-client-2.0.1.tgz#873f4ca98fe32f6839462a6f046332677322f99c"
@@ -801,6 +811,92 @@
801811
"@nodelib/fs.scandir" "2.1.5"
802812
fastq "^1.6.0"
803813

814+
"@octokit/auth-token@^2.4.4":
815+
version "2.5.0"
816+
resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.5.0.tgz#27c37ea26c205f28443402477ffd261311f21e36"
817+
integrity sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==
818+
dependencies:
819+
"@octokit/types" "^6.0.3"
820+
821+
"@octokit/core@^3.6.0":
822+
version "3.6.0"
823+
resolved "https://registry.yarnpkg.com/@octokit/core/-/core-3.6.0.tgz#3376cb9f3008d9b3d110370d90e0a1fcd5fe6085"
824+
integrity sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==
825+
dependencies:
826+
"@octokit/auth-token" "^2.4.4"
827+
"@octokit/graphql" "^4.5.8"
828+
"@octokit/request" "^5.6.3"
829+
"@octokit/request-error" "^2.0.5"
830+
"@octokit/types" "^6.0.3"
831+
before-after-hook "^2.2.0"
832+
universal-user-agent "^6.0.0"
833+
834+
"@octokit/endpoint@^6.0.1":
835+
version "6.0.12"
836+
resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.12.tgz#3b4d47a4b0e79b1027fb8d75d4221928b2d05658"
837+
integrity sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==
838+
dependencies:
839+
"@octokit/types" "^6.0.3"
840+
is-plain-object "^5.0.0"
841+
universal-user-agent "^6.0.0"
842+
843+
"@octokit/graphql@^4.5.8":
844+
version "4.8.0"
845+
resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.8.0.tgz#664d9b11c0e12112cbf78e10f49a05959aa22cc3"
846+
integrity sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==
847+
dependencies:
848+
"@octokit/request" "^5.6.0"
849+
"@octokit/types" "^6.0.3"
850+
universal-user-agent "^6.0.0"
851+
852+
"@octokit/openapi-types@^12.11.0":
853+
version "12.11.0"
854+
resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-12.11.0.tgz#da5638d64f2b919bca89ce6602d059f1b52d3ef0"
855+
integrity sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==
856+
857+
"@octokit/plugin-paginate-rest@^2.17.0":
858+
version "2.21.3"
859+
resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.3.tgz#7f12532797775640dbb8224da577da7dc210c87e"
860+
integrity sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==
861+
dependencies:
862+
"@octokit/types" "^6.40.0"
863+
864+
"@octokit/plugin-rest-endpoint-methods@^5.13.0":
865+
version "5.16.2"
866+
resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz#7ee8bf586df97dd6868cf68f641354e908c25342"
867+
integrity sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==
868+
dependencies:
869+
"@octokit/types" "^6.39.0"
870+
deprecation "^2.3.1"
871+
872+
"@octokit/request-error@^2.0.5", "@octokit/request-error@^2.1.0":
873+
version "2.1.0"
874+
resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.1.0.tgz#9e150357831bfc788d13a4fd4b1913d60c74d677"
875+
integrity sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==
876+
dependencies:
877+
"@octokit/types" "^6.0.3"
878+
deprecation "^2.0.0"
879+
once "^1.4.0"
880+
881+
"@octokit/request@^5.6.0", "@octokit/request@^5.6.3":
882+
version "5.6.3"
883+
resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.6.3.tgz#19a022515a5bba965ac06c9d1334514eb50c48b0"
884+
integrity sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==
885+
dependencies:
886+
"@octokit/endpoint" "^6.0.1"
887+
"@octokit/request-error" "^2.1.0"
888+
"@octokit/types" "^6.16.1"
889+
is-plain-object "^5.0.0"
890+
node-fetch "^2.6.7"
891+
universal-user-agent "^6.0.0"
892+
893+
"@octokit/types@^6.0.3", "@octokit/types@^6.16.1", "@octokit/types@^6.39.0", "@octokit/types@^6.40.0":
894+
version "6.41.0"
895+
resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.41.0.tgz#e58ef78d78596d2fb7df9c6259802464b5f84a04"
896+
integrity sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==
897+
dependencies:
898+
"@octokit/openapi-types" "^12.11.0"
899+
804900
"@sinonjs/commons@^1.7.0":
805901
version "1.8.3"
806902
resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d"
@@ -1234,6 +1330,11 @@ balanced-match@^1.0.0:
12341330
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
12351331
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
12361332

1333+
before-after-hook@^2.2.0:
1334+
version "2.2.3"
1335+
resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c"
1336+
integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==
1337+
12371338
brace-expansion@^1.1.7:
12381339
version "1.1.11"
12391340
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
@@ -1508,6 +1609,11 @@ delayed-stream@~1.0.0:
15081609
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
15091610
integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
15101611

1612+
deprecation@^2.0.0, deprecation@^2.3.1:
1613+
version "2.3.1"
1614+
resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919"
1615+
integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==
1616+
15111617
detect-newline@^3.0.0:
15121618
version "3.1.0"
15131619
resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651"
@@ -2099,6 +2205,11 @@ is-number@^7.0.0:
20992205
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
21002206
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
21012207

2208+
is-plain-object@^5.0.0:
2209+
version "5.0.0"
2210+
resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344"
2211+
integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==
2212+
21022213
is-potential-custom-element-name@^1.0.1:
21032214
version "1.0.1"
21042215
resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5"
@@ -2780,6 +2891,13 @@ natural-compare@^1.4.0:
27802891
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
27812892
integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
27822893

2894+
node-fetch@^2.6.7:
2895+
version "2.6.8"
2896+
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.8.tgz#a68d30b162bc1d8fd71a367e81b997e1f4d4937e"
2897+
integrity sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg==
2898+
dependencies:
2899+
whatwg-url "^5.0.0"
2900+
27832901
node-int64@^0.4.0:
27842902
version "0.4.0"
27852903
resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
@@ -2812,7 +2930,7 @@ nwsapi@^2.2.0:
28122930
resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7"
28132931
integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==
28142932

2815-
once@^1.3.0:
2933+
once@^1.3.0, once@^1.4.0:
28162934
version "1.4.0"
28172935
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
28182936
integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
@@ -3305,6 +3423,11 @@ tr46@^2.1.0:
33053423
dependencies:
33063424
punycode "^2.1.1"
33073425

3426+
tr46@~0.0.3:
3427+
version "0.0.3"
3428+
resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
3429+
integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==
3430+
33083431
ts-jest@^27.1.2:
33093432
version "27.1.3"
33103433
resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.1.3.tgz#1f723e7e74027c4da92c0ffbd73287e8af2b2957"
@@ -3396,6 +3519,11 @@ typescript@^4.4.4:
33963519
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.2.tgz#fe12d2727b708f4eef40f51598b3398baa9611d4"
33973520
integrity sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==
33983521

3522+
universal-user-agent@^6.0.0:
3523+
version "6.0.0"
3524+
resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee"
3525+
integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==
3526+
33993527
universalify@^0.1.2:
34003528
version "0.1.2"
34013529
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
@@ -3463,6 +3591,11 @@ walker@^1.0.7:
34633591
dependencies:
34643592
makeerror "1.0.x"
34653593

3594+
webidl-conversions@^3.0.0:
3595+
version "3.0.1"
3596+
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
3597+
integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==
3598+
34663599
webidl-conversions@^5.0.0:
34673600
version "5.0.0"
34683601
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff"
@@ -3485,6 +3618,14 @@ whatwg-mimetype@^2.3.0:
34853618
resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf"
34863619
integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==
34873620

3621+
whatwg-url@^5.0.0:
3622+
version "5.0.0"
3623+
resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
3624+
integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==
3625+
dependencies:
3626+
tr46 "~0.0.3"
3627+
webidl-conversions "^3.0.0"
3628+
34883629
whatwg-url@^8.0.0, whatwg-url@^8.5.0:
34893630
version "8.6.0"
34903631
resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.6.0.tgz#27c0205a4902084b872aecb97cf0f2a7a3011f4c"

0 commit comments

Comments
 (0)