Skip to content

Commit b64cead

Browse files
committed
Update gitlab rest client
1 parent c451467 commit b64cead

File tree

9 files changed

+56
-117
lines changed

9 files changed

+56
-117
lines changed

components/server/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
"@authzed/authzed-node": "^0.12.1",
3838
"@bufbuild/connect": "^0.8.1",
3939
"@bufbuild/connect-express": "^0.8.1",
40-
"@gitbeaker/node": "^35.8.1",
40+
"@gitbeaker/rest": "^39.12.0",
4141
"@gitpod/content-service": "0.1.5",
4242
"@gitpod/gitpod-db": "0.1.5",
4343
"@gitpod/gitpod-protocol": "0.1.5",

components/server/src/gitlab/api.ts

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import { injectable, inject } from "inversify";
88
import { User } from "@gitpod/gitpod-protocol";
99

10-
import { Gitlab } from "@gitbeaker/node";
10+
import { Gitlab } from "@gitbeaker/rest";
1111
import {
1212
Projects,
1313
Users,
@@ -19,10 +19,11 @@ import {
1919
MergeRequests,
2020
Issues,
2121
RepositoryFiles,
22+
NamespaceSchema,
23+
UserSchema,
24+
ExpandedUserSchema,
25+
ProjectSchema,
2226
} from "@gitbeaker/core";
23-
import { ProjectExtendedSchema } from "@gitbeaker/core/dist/types/resources/Projects";
24-
import { NamespaceSchema } from "@gitbeaker/core/dist/types/resources/Namespaces";
25-
import { UserExtendedSchema, UserSchema } from "@gitbeaker/core/dist/types/resources/Users";
2627
import { log } from "@gitpod/gitpod-protocol/lib/util/logging";
2728
import { GitLabScope } from "./scopes";
2829
import { AuthProviderParams } from "../auth/auth-provider";
@@ -90,9 +91,7 @@ export class GitLabApi {
9091
path: string,
9192
): Promise<string | undefined> {
9293
const projectId = `${org}/${name}`;
93-
const result = await this.run<string>(user, (api) =>
94-
api.RepositoryFiles.showRaw(projectId, path, { ref: commitish }),
95-
);
94+
const result = await this.run<string>(user, (api) => api.RepositoryFiles.showRaw(projectId, path, commitish));
9695
if (GitLab.ApiError.is(result)) {
9796
return undefined; // e.g. 404 error, because the file isn't found
9897
}
@@ -137,7 +136,7 @@ export namespace GitLab {
137136
/**
138137
* https://github.com/gitlabhq/gitlabhq/blob/master/doc/api/projects.md#get-single-project
139138
*/
140-
export interface Project extends ProjectExtendedSchema {
139+
export interface Project extends ProjectSchema {
141140
visibility: "public" | "private" | "internal";
142141
archived: boolean;
143142
path: string; // "diaspora-project-site"
@@ -227,7 +226,7 @@ export namespace GitLab {
227226
merge_requests_count: number;
228227
}
229228
// https://docs.gitlab.com/ee/api/users.html#list-current-user-for-normal-users
230-
export interface User extends UserExtendedSchema {
229+
export interface User extends ExpandedUserSchema {
231230
email: string;
232231
state: "active" | string;
233232
}
@@ -256,19 +255,19 @@ export namespace GitLab {
256255
export namespace Permissions {
257256
export function hasWriteAccess(repo: Project): boolean {
258257
if (repo.permissions.project_access) {
259-
return repo.permissions.project_access.access_level >= 30;
258+
return (repo.permissions.project_access as unknown as { access_level: number }).access_level >= 30;
260259
}
261260
if (repo.permissions.group_access) {
262-
return repo.permissions.group_access.access_level >= 30;
261+
return (repo.permissions.group_access as unknown as { access_level: number }).access_level >= 30;
263262
}
264263
return false;
265264
}
266265
export function hasMaintainerAccess(repo: Project): boolean {
267266
if (repo.permissions.project_access) {
268-
return repo.permissions.project_access.access_level >= 40;
267+
return (repo.permissions.project_access as unknown as { access_level: number }).access_level >= 40;
269268
}
270269
if (repo.permissions.group_access) {
271-
return repo.permissions.group_access.access_level >= 40;
270+
return (repo.permissions.group_access as unknown as { access_level: number }).access_level >= 40;
272271
}
273272
return false;
274273
}

components/server/src/gitlab/file-provider.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ export class GitlabFileProvider implements FileProvider {
3030
path: string,
3131
): Promise<string> {
3232
const result = await this.gitlabApi.run<GitLab.Commit[]>(user, async (g) => {
33-
return g.Commits.all(`${repository.owner}/${repository.name}`, { path, ref_name: revisionOrBranch });
33+
return g.Commits.all(`${repository.owner}/${repository.name}`, { path, refName: revisionOrBranch });
3434
});
3535

3636
if (GitLab.ApiError.is(result)) {

components/server/src/gitlab/gitlab-app-support.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
import { AuthProviderInfo, ProviderRepository, User } from "@gitpod/gitpod-protocol";
88
import { inject, injectable } from "inversify";
9-
import { Gitlab } from "@gitbeaker/node";
9+
import { Gitlab } from "@gitbeaker/rest";
1010
import { GitLab } from "./api";
1111
import { TokenProvider } from "../user/token-provider";
1212

@@ -36,7 +36,7 @@ export class GitLabAppSupport {
3636
// also cf. https://docs.gitlab.com/ee/api/members.html#valid-access-levels
3737
//
3838
const projectsWithAccess = await api.Projects.all({
39-
min_access_level: "40",
39+
minAccessLevel: 40,
4040
perPage: 100,
4141
});
4242
for (const project of projectsWithAccess) {

components/server/src/gitlab/gitlab-auth-provider.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ export class GitLabAuthProvider extends GenericAuthProvider {
6666
host: this.baseURL,
6767
});
6868
const getCurrentUser = async () => {
69-
const response = await api.Users.current();
69+
const response = await api.Users.showCurrentUser();
7070
return response as unknown as GitLab.User;
7171
};
7272
const unconfirmedUserMessage = "Please confirm your GitLab account and try again.";

components/server/src/gitlab/gitlab-context-parser.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ export class GitlabContextParser extends AbstractContextParser implements IConte
222222
}
223223

224224
const result = await this.gitlabApi.run<GitLab.TreeObject[]>(user, async (g) => {
225-
return g.Repositories.tree(`${owner}/${repoName}`, {
225+
return g.Repositories.allRepositoryTrees(`${owner}/${repoName}`, {
226226
ref: branchOrTag.name,
227227
path: path.dirname(branchOrTag.fullPath),
228228
});
@@ -421,7 +421,7 @@ export class GitlabContextParser extends AbstractContextParser implements IConte
421421
): Promise<IssueContext> {
422422
const ctxPromise = this.handleDefaultContext(user, host, owner, repoName);
423423
const result = await this.gitlabApi.run<GitLab.Issue>(user, async (g) => {
424-
return g.Issues.show(`${owner}/${repoName}`, nr);
424+
return g.Issues.show(nr, { projectId: `${owner}/${repoName}` });
425425
});
426426
if (GitLab.ApiError.is(result)) {
427427
throw await NotFoundError.create(await this.tokenHelper.getCurrentToken(user), user, host, owner, repoName);

components/server/src/gitlab/gitlab-file-provider.spec.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,8 @@ class TestFileProvider {
7575
const project = await api.run<GitLab.Project>(this.user, (g) =>
7676
g.Projects.create({
7777
name: `test_project_${i}`,
78-
path: `test_project_${i}`,
79-
namespace_id: 57982169,
80-
initialize_with_readme: true,
78+
namespaceId: 57982169,
79+
initializeWithReadme: true,
8180
description: "generated project to test pagination",
8281
}),
8382
);

components/server/src/gitlab/gitlab-repository-provider.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,8 +126,8 @@ export class GitlabRepositoryProvider implements RepositoryProvider {
126126
const projectId = `${owner}/${repo}`;
127127
const result = await this.gitlab.run<GitLab.Commit[]>(user, async (g) => {
128128
return g.Commits.all(projectId, {
129-
ref_name: ref,
130-
per_page: maxDepth,
129+
refName: ref,
130+
perPage: maxDepth,
131131
page: 1,
132132
});
133133
});

yarn.lock

Lines changed: 33 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -2190,37 +2190,30 @@
21902190
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.47.0.tgz#5478fdf443ff8158f9de171c704ae45308696c7d"
21912191
integrity sha512-P6omY1zv5MItm93kLM8s2vr1HICJH8v0dvddDhysbIuZ+vcjOHg5Zbkf1mTkcmi2JA9oBG2anOkRnW8WJTS8Og==
21922192

2193-
"@gitbeaker/core@^35.8.1":
2194-
version "35.8.1"
2195-
resolved "https://registry.yarnpkg.com/@gitbeaker/core/-/core-35.8.1.tgz#b4ce2d08d344ff50e76c38ff81b800bec6dfe851"
2196-
integrity sha512-KBrDykVKSmU9Q9Gly8KeHOgdc0lZSa435srECxuO0FGqqBcUQ82hPqUc13YFkkdOI9T1JRA3qSFajg8ds0mZKA==
2193+
"@gitbeaker/core@^39.12.0":
2194+
version "39.12.0"
2195+
resolved "https://registry.yarnpkg.com/@gitbeaker/core/-/core-39.12.0.tgz#89a83bb44ae5abf38ab0cd831351ac7ca8f367bf"
2196+
integrity sha512-c/LQl+UI+rXjXx+P+kLrdTOZnyD/RdhRWnkuBE8b8/dwfvnJ3ANEv1WBZhVJpTwn6miHlurERiOeLmKeQJ+J6w==
21972197
dependencies:
2198-
"@gitbeaker/requester-utils" "^35.8.1"
2199-
form-data "^4.0.0"
2200-
li "^1.3.0"
2201-
mime "^3.0.0"
2202-
query-string "^7.0.0"
2198+
"@gitbeaker/requester-utils" "^39.12.0"
2199+
qs "^6.11.2"
22032200
xcase "^2.0.1"
22042201

2205-
"@gitbeaker/node@^35.8.1":
2206-
version "35.8.1"
2207-
resolved "https://registry.yarnpkg.com/@gitbeaker/node/-/node-35.8.1.tgz#d67885c827f2d7405afd7e39538a230721756e5c"
2208-
integrity sha512-g6rX853y61qNhzq9cWtxIEoe2KDeFBtXAeWMGWJnc3nz3WRump2pIICvJqw/yobLZqmTNt+ea6w3/n92Mnbn3g==
2202+
"@gitbeaker/requester-utils@^39.12.0":
2203+
version "39.12.0"
2204+
resolved "https://registry.yarnpkg.com/@gitbeaker/requester-utils/-/requester-utils-39.12.0.tgz#e71919dc236df411d59a974e37e4684436ffab13"
2205+
integrity sha512-0016Xnt6xIO3kSUuJ/mcXyN8LWUMpqAmLFbXZWMzJ9YZpQHX9vPKsrFHz4/P9Dh9eWKoAnkjEXEf/F6w1gX6Dg==
22092206
dependencies:
2210-
"@gitbeaker/core" "^35.8.1"
2211-
"@gitbeaker/requester-utils" "^35.8.1"
2212-
delay "^5.0.0"
2213-
got "^11.8.3"
2207+
qs "^6.11.2"
22142208
xcase "^2.0.1"
22152209

2216-
"@gitbeaker/requester-utils@^35.8.1":
2217-
version "35.8.1"
2218-
resolved "https://registry.yarnpkg.com/@gitbeaker/requester-utils/-/requester-utils-35.8.1.tgz#f345cdd05abd4169cfcd239d202db6283eb17dc8"
2219-
integrity sha512-MFzdH+Z6eJaCZA5ruWsyvm6SXRyrQHjYVR6aY8POFraIy7ceIHOprWCs1R+0ydDZ8KtBnd8OTHjlJ0sLtSFJCg==
2210+
"@gitbeaker/rest@^39.12.0":
2211+
version "39.12.0"
2212+
resolved "https://registry.yarnpkg.com/@gitbeaker/rest/-/rest-39.12.0.tgz#3579267804deb78be3dee911b8f11ad481b9a804"
2213+
integrity sha512-PILr042hCuB/A/QE7IGQ0ADTMN1e8lvehEfZEQEp78aWlqyNFmi6IUZqL6q8v3Stu6WRKSRcMCOidY83hiCSsA==
22202214
dependencies:
2221-
form-data "^4.0.0"
2222-
qs "^6.10.1"
2223-
xcase "^2.0.1"
2215+
"@gitbeaker/core" "^39.12.0"
2216+
"@gitbeaker/requester-utils" "^39.12.0"
22242217

22252218
"@grpc/[email protected]", "@grpc/grpc-js@^1.8.3":
22262219
version "1.8.8"
@@ -3123,11 +3116,6 @@
31233116
resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz"
31243117
integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==
31253118

3126-
"@sindresorhus/is@^4.0.0":
3127-
version "4.2.0"
3128-
resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz"
3129-
integrity sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==
3130-
31313119
"@sinonjs/commons@^1.7.0":
31323120
version "1.8.3"
31333121
resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz"
@@ -3525,16 +3513,6 @@
35253513
resolved "https://registry.npmjs.org/@types/btoa-lite/-/btoa-lite-1.0.0.tgz"
35263514
integrity sha512-wJsiX1tosQ+J5+bY5LrSahHxr2wT+uME5UDwdN1kg4frt40euqA+wzECkmq4t5QbveHiJepfdThgQrPw6KiSlg==
35273515

3528-
"@types/cacheable-request@^6.0.1":
3529-
version "6.0.2"
3530-
resolved "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz"
3531-
integrity sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==
3532-
dependencies:
3533-
"@types/http-cache-semantics" "*"
3534-
"@types/keyv" "*"
3535-
"@types/node" "*"
3536-
"@types/responselike" "*"
3537-
35383516
"@types/chai-subset@^1.3.3":
35393517
version "1.3.3"
35403518
resolved "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.3.tgz"
@@ -3864,13 +3842,6 @@
38643842
dependencies:
38653843
"@types/node" "*"
38663844

3867-
"@types/keyv@*":
3868-
version "3.1.3"
3869-
resolved "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.3.tgz"
3870-
integrity sha512-FXCJgyyN3ivVgRoml4h94G/p3kY+u/B86La+QptcqJaWtBWtmc6TtkNfS40n9bIvyLteHh7zXOtgbobORKPbDg==
3871-
dependencies:
3872-
"@types/node" "*"
3873-
38743845
"@types/lodash.debounce@^4.0.6":
38753846
version "4.0.6"
38763847
resolved "https://registry.npmjs.org/@types/lodash.debounce/-/lodash.debounce-4.0.6.tgz"
@@ -5616,19 +5587,6 @@ cacheable-request@^6.0.0:
56165587
normalize-url "^4.1.0"
56175588
responselike "^1.0.2"
56185589

5619-
cacheable-request@^7.0.2:
5620-
version "7.0.2"
5621-
resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz"
5622-
integrity sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==
5623-
dependencies:
5624-
clone-response "^1.0.2"
5625-
get-stream "^5.1.0"
5626-
http-cache-semantics "^4.0.0"
5627-
keyv "^4.0.0"
5628-
lowercase-keys "^2.0.0"
5629-
normalize-url "^6.0.1"
5630-
responselike "^2.0.0"
5631-
56325590
call-bind@^1.0.0, call-bind@^1.0.2:
56335591
version "1.0.2"
56345592
resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz"
@@ -6683,13 +6641,6 @@ decompress-response@^3.3.0:
66836641
dependencies:
66846642
mimic-response "^1.0.0"
66856643

6686-
decompress-response@^6.0.0:
6687-
version "6.0.0"
6688-
resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz"
6689-
integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==
6690-
dependencies:
6691-
mimic-response "^3.1.0"
6692-
66936644
dedent@^0.7.0:
66946645
version "0.7.0"
66956646
resolved "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz"
@@ -6783,11 +6734,6 @@ define-properties@^1.1.4, define-properties@^1.2.0:
67836734
has-property-descriptors "^1.0.0"
67846735
object-keys "^1.1.1"
67856736

6786-
delay@^5.0.0:
6787-
version "5.0.0"
6788-
resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d"
6789-
integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==
6790-
67916737
delayed-stream@~1.0.0:
67926738
version "1.0.0"
67936739
resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
@@ -8186,6 +8132,13 @@ form-data@^4.0.0:
81868132
combined-stream "^1.0.8"
81878133
mime-types "^2.1.12"
81888134

8135+
formdata-polyfill@^4.0.10:
8136+
version "4.0.10"
8137+
resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423"
8138+
integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==
8139+
dependencies:
8140+
fetch-blob "^3.1.2"
8141+
81898142
formidable@^1.2.0:
81908143
version "1.2.6"
81918144
resolved "https://registry.npmjs.org/formidable/-/formidable-1.2.6.tgz"
@@ -10497,11 +10450,6 @@ levn@~0.3.0:
1049710450
prelude-ls "~1.1.2"
1049810451
type-check "~0.3.2"
1049910452

10500-
li@^1.3.0:
10501-
version "1.3.0"
10502-
resolved "https://registry.npmjs.org/li/-/li-1.3.0.tgz"
10503-
integrity sha1-IsWbyu+qmo7zWc91l4TkvxBq6hs=
10504-
1050510453
libphonenumber-js-utils@^8.10.5:
1050610454
version "8.10.5"
1050710455
resolved "https://registry.yarnpkg.com/libphonenumber-js-utils/-/libphonenumber-js-utils-8.10.5.tgz#778cb7633c94e2524f08c3109a7450095b4e6727"
@@ -10902,11 +10850,6 @@ mimic-response@^1.0.0, mimic-response@^1.0.1:
1090210850
resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz"
1090310851
integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==
1090410852

10905-
mimic-response@^3.1.0:
10906-
version "3.1.0"
10907-
resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz"
10908-
integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==
10909-
1091010853
min-indent@^1.0.0:
1091110854
version "1.0.1"
1091210855
resolved "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz"
@@ -12751,17 +12694,10 @@ [email protected]:
1275112694
resolved "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz"
1275212695
integrity sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==
1275312696

12754-
qs@^6.10.1, qs@^6.11.0, qs@^6.9.4:
12755-
version "6.11.0"
12756-
resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a"
12757-
integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==
12758-
dependencies:
12759-
side-channel "^1.0.4"
12760-
12761-
qs@^6.10.3:
12762-
version "6.10.3"
12763-
resolved "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz"
12764-
integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==
12697+
qs@^6.10.3, qs@^6.11.0, qs@^6.11.2, qs@^6.9.4:
12698+
version "6.11.2"
12699+
resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9"
12700+
integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==
1276512701
dependencies:
1276612702
side-channel "^1.0.4"
1276712703

@@ -15534,6 +15470,11 @@ weak-map@^1.0.5:
1553415470
resolved "https://registry.yarnpkg.com/weak-map/-/weak-map-1.0.8.tgz#394c18a9e8262e790544ed8b55c6a4ddad1cb1a3"
1553515471
integrity sha512-lNR9aAefbGPpHO7AEnY0hCFjz1eTkWCXYvkTRrTHs9qv8zJp+SkVYpzfLIFXQQiG3tVvbNFQgVg2bQS8YGgxyw==
1553615472

15473+
web-streams-polyfill@^3.0.3, web-streams-polyfill@^3.1.1:
15474+
version "3.2.1"
15475+
resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6"
15476+
integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==
15477+
1553715478
web-vitals@^1.1.1:
1553815479
version "1.1.2"
1553915480
resolved "https://registry.npmjs.org/web-vitals/-/web-vitals-1.1.2.tgz"

0 commit comments

Comments
 (0)