Skip to content

Commit 9e1b7ec

Browse files
authored
Add release output validation for manifest paths and downgrade… (#18865)
* build: add release output validation for manifest paths Ensures that angular/angular@9581658 fixed all instances, and ensures that we don't regress on the components side. * build: downgrade to @octokit/rest v16 to avoid broken types We recently updated `@octokit/rest`, but the most recent version currently has broken TypeScript definitions. To workaroun this until the upstream issue is resolved, we downgrade to our last working version. https://github.com/octokit/rest.js/issues/1624
1 parent 734ca15 commit 9e1b7ec

File tree

5 files changed

+93
-86
lines changed

5 files changed

+93
-86
lines changed

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@
7878
"@bazel/protractor": "^1.4.0",
7979
"@bazel/typescript": "^1.4.0",
8080
"@firebase/app-types": "^0.3.2",
81-
"@octokit/rest": "^17.0.0",
81+
"@octokit/rest": "16.28.7",
8282
"@schematics/angular": "^9.0.4",
8383
"@types/browser-sync": "^2.26.1",
8484
"@types/fs-extra": "^4.0.3",

tools/release/release-output/check-package.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@ import {
99
checkMaterialPackage,
1010
checkPackageJsonFile,
1111
checkPackageJsonMigrations,
12-
checkReleaseBundle,
12+
checkJavaScriptOutput,
1313
checkTypeDefinitionFile
1414
} from './output-validations';
1515

16-
/** Glob that matches all JavaScript bundle files within a release package. */
17-
const releaseBundlesGlob = '+(fesm5|fesm2015|esm5|esm2015|bundles)/*.js';
16+
/** Glob that matches all JavaScript files within a release package. */
17+
const releaseJsFilesGlob = '+(fesm5|fesm2015|esm5|esm2015|bundles)/**/*.js';
1818

1919
/** Glob that matches all TypeScript definition files within a release package. */
2020
const releaseTypeDefinitionsGlob = '**/*.d.ts';
@@ -46,14 +46,14 @@ export function checkReleasePackage(
4646
failures.set(message, filePaths);
4747
};
4848

49-
const bundlePaths = glob(releaseBundlesGlob, {cwd: packagePath, absolute: true});
49+
const jsFiles = glob(releaseJsFilesGlob, {cwd: packagePath, absolute: true});
5050
const typeDefinitions = glob(releaseTypeDefinitionsGlob, {cwd: packagePath, absolute: true});
5151
const packageJsonFiles = glob(packageJsonFilesGlob, {cwd: packagePath, absolute: true});
5252

5353
// We want to walk through each bundle within the current package and run
5454
// release validations that ensure that the bundles are not invalid.
55-
bundlePaths.forEach(bundlePath => {
56-
checkReleaseBundle(bundlePath).forEach(message => addFailure(message, bundlePath));
55+
jsFiles.forEach(bundlePath => {
56+
checkJavaScriptOutput(bundlePath).forEach(message => addFailure(message, bundlePath));
5757
});
5858

5959
// Run output validations for all TypeScript definition files within the release output.

tools/release/release-output/output-validations.ts

+13-6
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ const inlineStylesSourcemapRegex = /styles: ?\[["'].*sourceMappingURL=.*["']/;
1111
/** RegExp that matches Angular component metadata properties that refer to external resources. */
1212
const externalReferencesRegex = /(templateUrl|styleUrls): *["'[]/;
1313

14+
/** RegExp that matches common Bazel manifest paths in this workspace */
15+
const bazelManifestPath = /(angular_material|external)\//;
16+
1417
/**
1518
* List of fields which are mandatory in entry-point "package.json" files and refer
1619
* to files in the release output.
@@ -19,21 +22,25 @@ const packageJsonPathFields =
1922
['main', 'module', 'typings', 'es2015', 'fesm5', 'fesm2015', 'esm5', 'esm2015'];
2023

2124
/**
22-
* Checks the specified release bundle and ensures that it does not contain
23-
* any external resource URLs.
25+
* Checks the specified JavaScript file and ensures that it does not
26+
* contain any external resource URLs, or Bazel manifest paths.
2427
*/
25-
export function checkReleaseBundle(bundlePath: string): string[] {
26-
const bundleContent = readFileSync(bundlePath, 'utf8');
28+
export function checkJavaScriptOutput(filePath: string): string[] {
29+
const fileContent = readFileSync(filePath, 'utf8');
2730
const failures: string[] = [];
2831

29-
if (inlineStylesSourcemapRegex.exec(bundleContent) !== null) {
32+
if (inlineStylesSourcemapRegex.exec(fileContent) !== null) {
3033
failures.push('Found sourcemap references in component styles.');
3134
}
3235

33-
if (externalReferencesRegex.exec(bundleContent) !== null) {
36+
if (externalReferencesRegex.exec(fileContent) !== null) {
3437
failures.push('Found external component resource references');
3538
}
3639

40+
if (bazelManifestPath.exec(fileContent) !== null) {
41+
failures.push('Found Bazel manifest path in output.');
42+
}
43+
3744
return failures;
3845
}
3946

tools/release/stage-release.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import * as OctokitApi from '@octokit/rest';
1+
import * as Octokit from '@octokit/rest';
22
import chalk from 'chalk';
33
import {existsSync, readFileSync, writeFileSync} from 'fs';
44
import {join} from 'path';
@@ -50,7 +50,7 @@ class StageReleaseTask extends BaseReleaseTask {
5050
git: GitClient;
5151

5252
/** Octokit API instance that can be used to make Github API calls. */
53-
githubApi: OctokitApi;
53+
githubApi: Octokit;
5454

5555
constructor(
5656
public projectDir: string, public packagesDir: string, public repositoryOwner: string,
@@ -68,7 +68,7 @@ class StageReleaseTask extends BaseReleaseTask {
6868
process.exit(1);
6969
}
7070

71-
this.githubApi = new OctokitApi();
71+
this.githubApi = new Octokit();
7272
}
7373

7474
async run() {

yarn.lock

+70-70
Original file line numberDiff line numberDiff line change
@@ -917,25 +917,6 @@
917917
"@nodelib/fs.scandir" "2.1.3"
918918
fastq "^1.6.0"
919919

920-
"@octokit/auth-token@^2.4.0":
921-
version "2.4.0"
922-
resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.4.0.tgz#b64178975218b99e4dfe948253f0673cbbb59d9f"
923-
integrity sha512-eoOVMjILna7FVQf96iWc3+ZtE/ZT6y8ob8ZzcqKY1ibSQCnu4O/B7pJvzMx5cyZ/RjAff6DAdEb0O0Cjcxidkg==
924-
dependencies:
925-
"@octokit/types" "^2.0.0"
926-
927-
"@octokit/core@^2.4.0":
928-
version "2.4.2"
929-
resolved "https://registry.yarnpkg.com/@octokit/core/-/core-2.4.2.tgz#c22e583afc97e74015ea5bfd3ffb3ffc56c186ed"
930-
integrity sha512-fUx/Qt774cgiPhb3HRKfdl6iufVL/ltECkwkCg373I4lIPYvAPY4cbidVZqyVqHI+ThAIlFlTW8FT4QHChv3Sg==
931-
dependencies:
932-
"@octokit/auth-token" "^2.4.0"
933-
"@octokit/graphql" "^4.3.1"
934-
"@octokit/request" "^5.3.1"
935-
"@octokit/types" "^2.0.0"
936-
before-after-hook "^2.1.0"
937-
universal-user-agent "^5.0.0"
938-
939920
"@octokit/endpoint@^5.5.0":
940921
version "5.5.3"
941922
resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-5.5.3.tgz#0397d1baaca687a4c8454ba424a627699d97c978"
@@ -945,35 +926,6 @@
945926
is-plain-object "^3.0.0"
946927
universal-user-agent "^5.0.0"
947928

948-
"@octokit/graphql@^4.3.1":
949-
version "4.3.1"
950-
resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.3.1.tgz#9ee840e04ed2906c7d6763807632de84cdecf418"
951-
integrity sha512-hCdTjfvrK+ilU2keAdqNBWOk+gm1kai1ZcdjRfB30oA3/T6n53UVJb7w0L5cR3/rhU91xT3HSqCd+qbvH06yxA==
952-
dependencies:
953-
"@octokit/request" "^5.3.0"
954-
"@octokit/types" "^2.0.0"
955-
universal-user-agent "^4.0.0"
956-
957-
"@octokit/plugin-paginate-rest@^2.0.0":
958-
version "2.0.2"
959-
resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.0.2.tgz#fee7a81a4cc7d03784aaf9225499dd6e27f6d01e"
960-
integrity sha512-HzODcSUt9mjErly26TlTOGZrhf9bmF/FEDQ2zln1izhgmIV6ulsjsHmgmR4VZ0wzVr/m52Eb6U2XuyS8fkcR1A==
961-
dependencies:
962-
"@octokit/types" "^2.0.1"
963-
964-
"@octokit/plugin-request-log@^1.0.0":
965-
version "1.0.0"
966-
resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.0.tgz#eef87a431300f6148c39a7f75f8cfeb218b2547e"
967-
integrity sha512-ywoxP68aOT3zHCLgWZgwUJatiENeHE7xJzYjfz8WI0goynp96wETBF+d95b8g/uL4QmS6owPVlaxiz3wyMAzcw==
968-
969-
"@octokit/plugin-rest-endpoint-methods@^3.0.0":
970-
version "3.2.0"
971-
resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-3.2.0.tgz#ecc4bc594a57ebfb418b8c4a8c0f200455759004"
972-
integrity sha512-k+RLsegQn4s0wvAFYuk3R18FVKRg3ktvzIGW6MkmrSiSXBwYfaEsv4CuPysyef0DL+74DRj/X9MLJYlbleUO+Q==
973-
dependencies:
974-
"@octokit/types" "^2.0.1"
975-
deprecation "^2.3.1"
976-
977929
"@octokit/request-error@^1.0.1":
978930
version "1.0.4"
979931
resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-1.0.4.tgz#15e1dc22123ba4a9a4391914d80ec1e5303a23be"
@@ -982,7 +934,16 @@
982934
deprecation "^2.0.0"
983935
once "^1.4.0"
984936

985-
"@octokit/request@^5.3.0", "@octokit/request@^5.3.1":
937+
"@octokit/request-error@^1.0.2":
938+
version "1.2.1"
939+
resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-1.2.1.tgz#ede0714c773f32347576c25649dc013ae6b31801"
940+
integrity sha512-+6yDyk1EES6WK+l3viRDElw96MvwfJxCt45GvmjDUKWjYIb3PJZQkq3i46TwGwoPD4h8NmTrENmtyA1FwbmhRA==
941+
dependencies:
942+
"@octokit/types" "^2.0.0"
943+
deprecation "^2.0.0"
944+
once "^1.4.0"
945+
946+
"@octokit/request@^5.0.0":
986947
version "5.3.2"
987948
resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.3.2.tgz#1ca8b90a407772a1ee1ab758e7e0aced213b9883"
988949
integrity sha512-7NPJpg19wVQy1cs2xqXjjRq/RmtSomja/VSWnptfYwuBxLdbYh2UjhGi0Wx7B1v5Iw5GKhfFDQL7jM7SSp7K2g==
@@ -996,17 +957,26 @@
996957
once "^1.4.0"
997958
universal-user-agent "^5.0.0"
998959

999-
"@octokit/rest@^17.0.0":
1000-
version "17.0.0"
1001-
resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-17.0.0.tgz#1f44d96005f5946665fd42a85cd3e428172f01dc"
1002-
integrity sha512-nSlmyy1DBEOsC4voRbk/SN56V/iuZfxZzjFFz+ocb2MAYwHC+z1TyVOMV9W630dVn9ukioJO34VD5NSYwcgFWg==
960+
"@octokit/rest@16.28.7":
961+
version "16.28.7"
962+
resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-16.28.7.tgz#a2c2db5b318da84144beba82d19c1a9dbdb1a1fa"
963+
integrity sha512-cznFSLEhh22XD3XeqJw51OLSfyL2fcFKUO+v2Ep9MTAFfFLS1cK1Zwd1yEgQJmJoDnj4/vv3+fGGZweG+xsbIA==
1003964
dependencies:
1004-
"@octokit/core" "^2.4.0"
1005-
"@octokit/plugin-paginate-rest" "^2.0.0"
1006-
"@octokit/plugin-request-log" "^1.0.0"
1007-
"@octokit/plugin-rest-endpoint-methods" "^3.0.0"
965+
"@octokit/request" "^5.0.0"
966+
"@octokit/request-error" "^1.0.2"
967+
atob-lite "^2.0.0"
968+
before-after-hook "^2.0.0"
969+
btoa-lite "^1.0.0"
970+
deprecation "^2.0.0"
971+
lodash.get "^4.4.2"
972+
lodash.set "^4.3.2"
973+
lodash.uniq "^4.5.0"
974+
octokit-pagination-methods "^1.1.0"
975+
once "^1.4.0"
976+
universal-user-agent "^3.0.0"
977+
url-template "^2.0.8"
1008978

1009-
"@octokit/types@^2.0.0", "@octokit/types@^2.0.1":
979+
"@octokit/types@^2.0.0":
1010980
version "2.3.1"
1011981
resolved "https://registry.yarnpkg.com/@octokit/types/-/types-2.3.1.tgz#40cd61c125a6161cfb3bfabc75805ac7a54213b4"
1012982
integrity sha512-rvJP1Y9A/+Cky2C3var1vsw3Lf5Rjn/0sojNl2AjCX+WbpIHYccaJ46abrZoIxMYnOToul6S9tPytUVkFI7CXQ==
@@ -1288,9 +1258,9 @@
12881258
integrity sha512-8KmlRxwbKZfjUHFIt3q8TF5S2B+/E5BaAoo/3mgc5h6FJzqxXkCK/VMetO+IRDtwtU6HUvovHMBn+XRj7SV9Qg==
12891259

12901260
"@types/node@>= 8":
1291-
version "13.7.7"
1292-
resolved "https://registry.yarnpkg.com/@types/node/-/node-13.7.7.tgz#1628e6461ba8cc9b53196dfeaeec7b07fa6eea99"
1293-
integrity sha512-Uo4chgKbnPNlxQwoFmYIwctkQVkMMmsAoGGU4JKwLuvBefF0pCq4FybNSnfkfRCpC7ZW7kttcC/TrRtAJsvGtg==
1261+
version "13.9.0"
1262+
resolved "https://registry.yarnpkg.com/@types/node/-/node-13.9.0.tgz#5b6ee7a77faacddd7de719017d0bc12f52f81589"
1263+
integrity sha512-0ARSQootUG1RljH2HncpsY2TJBfGQIKOOi7kxzUY6z54ePu/ZD+wJA8zI2Q6v8rol2qpG/rvqsReco8zNMPvhQ==
12941264

12951265
"@types/node@^10.1.0":
12961266
version "10.14.5"
@@ -2043,6 +2013,11 @@ asynckit@^0.4.0:
20432013
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
20442014
integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
20452015

2016+
atob-lite@^2.0.0:
2017+
version "2.0.0"
2018+
resolved "https://registry.yarnpkg.com/atob-lite/-/atob-lite-2.0.0.tgz#0fef5ad46f1bd7a8502c65727f0367d5ee43d696"
2019+
integrity sha1-D+9a1G8b16hQLGVyfwNn1e5D1pY=
2020+
20462021
atob@^2.1.1:
20472022
version "2.1.2"
20482023
resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
@@ -2197,7 +2172,7 @@ beeper@^1.0.0:
21972172
resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809"
21982173
integrity sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=
21992174

2200-
before-after-hook@^2.1.0:
2175+
before-after-hook@^2.0.0:
22012176
version "2.1.0"
22022177
resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.1.0.tgz#b6c03487f44e24200dd30ca5e6a1979c5d2fb635"
22032178
integrity sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A==
@@ -2451,6 +2426,11 @@ bs-snippet-injector@^2.0.1:
24512426
resolved "https://registry.yarnpkg.com/bs-snippet-injector/-/bs-snippet-injector-2.0.1.tgz#61b5393f11f52559ed120693100343b6edb04dd5"
24522427
integrity sha1-YbU5PxH1JVntEgaTEANDtu2wTdU=
24532428

2429+
btoa-lite@^1.0.0:
2430+
version "1.0.0"
2431+
resolved "https://registry.yarnpkg.com/btoa-lite/-/btoa-lite-1.0.0.tgz#337766da15801210fdd956c22e9c6891ab9d0337"
2432+
integrity sha1-M3dm2hWAEhD92VbCLpxokaudAzc=
2433+
24542434
buffer-alloc-unsafe@^1.1.0:
24552435
version "1.1.0"
24562436
resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0"
@@ -3784,7 +3764,7 @@ deprecated@^0.0.1:
37843764
resolved "https://registry.yarnpkg.com/deprecated/-/deprecated-0.0.1.tgz#f9c9af5464afa1e7a971458a8bdef2aa94d5bb19"
37853765
integrity sha1-+cmvVGSvoeepcUWKi97yqpTVuxk=
37863766

3787-
deprecation@^2.0.0, deprecation@^2.3.1:
3767+
deprecation@^2.0.0:
37883768
version "2.3.1"
37893769
resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919"
37903770
integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==
@@ -7193,7 +7173,7 @@ lodash.flatten@^4.4.0:
71937173
resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f"
71947174
integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=
71957175

7196-
lodash.get@^4.0.0:
7176+
lodash.get@^4.0.0, lodash.get@^4.4.2:
71977177
version "4.4.2"
71987178
resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
71997179
integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=
@@ -7298,6 +7278,11 @@ lodash.restparam@^3.0.0:
72987278
resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805"
72997279
integrity sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=
73007280

7281+
lodash.set@^4.3.2:
7282+
version "4.3.2"
7283+
resolved "https://registry.yarnpkg.com/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23"
7284+
integrity sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=
7285+
73017286
lodash.template@^2.4.1:
73027287
version "2.4.1"
73037288
resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-2.4.1.tgz#9e611007edf629129a974ab3c48b817b3e1cf20d"
@@ -7372,6 +7357,11 @@ lodash.union@^4.6.0:
73727357
resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88"
73737358
integrity sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=
73747359

7360+
lodash.uniq@^4.5.0:
7361+
version "4.5.0"
7362+
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
7363+
integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
7364+
73757365
lodash.values@^2.4.1, lodash.values@~2.4.1:
73767366
version "2.4.1"
73777367
resolved "https://registry.yarnpkg.com/lodash.values/-/lodash.values-2.4.1.tgz#abf514436b3cb705001627978cbcf30b1280eea4"
@@ -8416,6 +8406,11 @@ objectdiff@^1.1.0:
84168406
resolved "https://registry.yarnpkg.com/objectdiff/-/objectdiff-1.1.0.tgz#8d7a15be6cb8670df8a490cc6be12a4f05ea82f4"
84178407
integrity sha1-jXoVvmy4Zw34pJDMa+EqTwXqgvQ=
84188408

8409+
octokit-pagination-methods@^1.1.0:
8410+
version "1.1.0"
8411+
resolved "https://registry.yarnpkg.com/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz#cf472edc9d551055f9ef73f6e42b4dbb4c80bea4"
8412+
integrity sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ==
8413+
84198414
on-finished@^2.2.0, on-finished@~2.3.0:
84208415
version "2.3.0"
84218416
resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
@@ -8564,7 +8559,7 @@ os-locale@^3.1.0:
85648559
lcid "^2.0.0"
85658560
mem "^4.0.0"
85668561

8567-
os-name@^3.1.0:
8562+
os-name@^3.0.0, os-name@^3.1.0:
85688563
version "3.1.0"
85698564
resolved "https://registry.yarnpkg.com/os-name/-/os-name-3.1.0.tgz#dec19d966296e1cd62d701a5a66ee1ddeae70801"
85708565
integrity sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg==
@@ -11774,12 +11769,12 @@ universal-analytics@^0.4.16:
1177411769
request "^2.88.0"
1177511770
uuid "^3.0.0"
1177611771

11777-
universal-user-agent@^4.0.0:
11778-
version "4.0.1"
11779-
resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-4.0.1.tgz#fd8d6cb773a679a709e967ef8288a31fcc03e557"
11780-
integrity sha512-LnST3ebHwVL2aNe4mejI9IQh2HfZ1RLo8Io2HugSif8ekzD1TlWpHpColOB/eh8JHMLkGH3Akqf040I+4ylNxg==
11772+
universal-user-agent@^3.0.0:
11773+
version "3.0.0"
11774+
resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-3.0.0.tgz#4cc88d68097bffd7ac42e3b7c903e7481424b4b9"
11775+
integrity sha512-T3siHThqoj5X0benA5H0qcDnrKGXzU8TKoX15x/tQHw1hQBvIEBHjxQ2klizYsqBOO/Q+WuxoQUihadeeqDnoA==
1178111776
dependencies:
11782-
os-name "^3.1.0"
11777+
os-name "^3.0.0"
1178311778

1178411779
universal-user-agent@^5.0.0:
1178511780
version "5.0.0"
@@ -11883,6 +11878,11 @@ url-parse-lax@^1.0.0:
1188311878
dependencies:
1188411879
prepend-http "^1.0.1"
1188511880

11881+
url-template@^2.0.8:
11882+
version "2.0.8"
11883+
resolved "https://registry.yarnpkg.com/url-template/-/url-template-2.0.8.tgz#fc565a3cccbff7730c775f5641f9555791439f21"
11884+
integrity sha1-/FZaPMy/93MMd19WQflVV5FDnyE=
11885+
1188611886
urlencode@^1.1.0:
1188711887
version "1.1.0"
1188811888
resolved "https://registry.yarnpkg.com/urlencode/-/urlencode-1.1.0.tgz#1f2ba26f013c85f0133f7a3ad6ff2730adf7cbb7"

0 commit comments

Comments
 (0)