mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Compare commits
5
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f6895e9b53 | ||
|
|
8c2a667e26 | ||
|
|
007317128d | ||
|
|
e18cf90d71 | ||
|
|
07c454b2d2 |
+4
-4
@@ -56,7 +56,7 @@ GEM
|
||||
colored2 (3.1.2)
|
||||
concurrent-ruby (1.1.9)
|
||||
escape (0.0.4)
|
||||
ethon (0.14.0)
|
||||
ethon (0.15.0)
|
||||
ffi (>= 1.15.0)
|
||||
ffi (1.15.4)
|
||||
fourflusher (2.3.1)
|
||||
@@ -65,7 +65,7 @@ GEM
|
||||
httpclient (2.8.3)
|
||||
i18n (1.8.10)
|
||||
concurrent-ruby (~> 1.0)
|
||||
json (2.5.1)
|
||||
json (2.6.0)
|
||||
minitest (5.14.4)
|
||||
molinillo (0.8.0)
|
||||
nanaimo (0.3.0)
|
||||
@@ -85,7 +85,7 @@ GEM
|
||||
colored2 (~> 3.1)
|
||||
nanaimo (~> 0.3.0)
|
||||
rexml (~> 3.2.4)
|
||||
zeitwerk (2.4.2)
|
||||
zeitwerk (2.5.1)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
@@ -97,4 +97,4 @@ RUBY VERSION
|
||||
ruby 2.7.4p191
|
||||
|
||||
BUNDLED WITH
|
||||
2.2.28
|
||||
2.2.29
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
/**
|
||||
* @generated by scripts/bump-oss-version.js
|
||||
*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
* @format
|
||||
* @generated by scripts/bump-oss-version.js
|
||||
* @flow strict
|
||||
*/
|
||||
|
||||
exports.version = {
|
||||
major: 0,
|
||||
minor: 0,
|
||||
minor: 67,
|
||||
patch: 0,
|
||||
prerelease: null,
|
||||
prerelease: 'rc.1',
|
||||
};
|
||||
|
||||
@@ -21,11 +21,11 @@ NSDictionary* RCTGetReactNativeVersion(void)
|
||||
static dispatch_once_t onceToken;
|
||||
dispatch_once(&onceToken, ^(void){
|
||||
__rnVersion = @{
|
||||
RCTVersionMajor: @(0),
|
||||
RCTVersionMinor: @(0),
|
||||
RCTVersionPatch: @(0),
|
||||
RCTVersionPrerelease: [NSNull null],
|
||||
};
|
||||
RCTVersionMajor: @(0),
|
||||
RCTVersionMinor: @(67),
|
||||
RCTVersionPatch: @(0),
|
||||
RCTVersionPrerelease: @"rc.1",
|
||||
};
|
||||
});
|
||||
return __rnVersion;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
VERSION_NAME=1000.0.0-main
|
||||
VERSION_NAME=0.67.0-rc.1
|
||||
GROUP=com.facebook.react
|
||||
|
||||
POM_NAME=ReactNative
|
||||
|
||||
+2
-2
@@ -16,7 +16,7 @@ import java.util.Map;
|
||||
public class ReactNativeVersion {
|
||||
public static final Map<String, Object> VERSION = MapBuilder.<String, Object>of(
|
||||
"major", 0,
|
||||
"minor", 0,
|
||||
"minor", 67,
|
||||
"patch", 0,
|
||||
"prerelease", null);
|
||||
"prerelease", "rc.1");
|
||||
}
|
||||
|
||||
@@ -16,9 +16,9 @@ namespace facebook::react {
|
||||
|
||||
constexpr struct {
|
||||
int32_t Major = 0;
|
||||
int32_t Minor = 0;
|
||||
int32_t Minor = 67;
|
||||
int32_t Patch = 0;
|
||||
std::string_view Prerelease = "";
|
||||
std::string_view Prerelease = "rc.1";
|
||||
} ReactNativeVersion;
|
||||
|
||||
} // namespace facebook::react
|
||||
|
||||
+6
-2
@@ -92,12 +92,14 @@ function getBinarySizesCollection(db) {
|
||||
* @param {firebase.firestore.CollectionReference<firebase.firestore.DocumentData>} collection
|
||||
* @param {string} sha The Git SHA used to identify the entry
|
||||
* @param {firebase.firestore.UpdateData} data The data to be inserted/updated
|
||||
* @param {string} branch The Git branch where this data was computed for
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
function createOrUpdateDocument(collectionRef, sha, data) {
|
||||
function createOrUpdateDocument(collectionRef, sha, data, branch) {
|
||||
const stampedData = {
|
||||
...data,
|
||||
timestamp: firestore.Timestamp.now(),
|
||||
branch,
|
||||
};
|
||||
const docRef = firestore.doc(collectionRef, sha);
|
||||
return firestore.updateDoc(docRef, stampedData).catch(async error => {
|
||||
@@ -115,14 +117,16 @@ function createOrUpdateDocument(collectionRef, sha, data) {
|
||||
* Returns the latest document in collection.
|
||||
*
|
||||
* @param {firebase.firestore.CollectionReference<firebase.firestore.DocumentData>} collection
|
||||
* @param {string} branch The Git branch for the data
|
||||
* @returns {Promise<firebase.firestore.DocumentData | undefined>}
|
||||
*/
|
||||
async function getLatestDocument(collectionRef) {
|
||||
async function getLatestDocument(collectionRef, branch) {
|
||||
try {
|
||||
const querySnapshot = await firestore.getDocs(
|
||||
firestore.query(
|
||||
collectionRef,
|
||||
firestore.orderBy('timestamp', 'desc'),
|
||||
firestore.where('branch', '==', branch),
|
||||
firestore.limit(1),
|
||||
),
|
||||
);
|
||||
|
||||
+67
-45
@@ -25,7 +25,7 @@ const datastore = require('./datastore');
|
||||
const {createOrUpdateComment} = require('./make-comment');
|
||||
|
||||
/**
|
||||
* Generates and submits a comment. If this is run on main branch, data is
|
||||
* Generates and submits a comment. If this is run on the main or release branch, data is
|
||||
* committed to the store instead.
|
||||
* @param {{
|
||||
'android-hermes-arm64-v8a'?: number;
|
||||
@@ -47,7 +47,7 @@ async function reportSizeStats(stats, replacePattern) {
|
||||
);
|
||||
const collection = datastore.getBinarySizesCollection(store);
|
||||
|
||||
if (GITHUB_REF === 'main') {
|
||||
if (GITHUB_REF === 'main' || GITHUB_REF.endsWith('-stable')) {
|
||||
// Ensure we only store numbers greater than zero.
|
||||
const validatedStats = Object.keys(stats).reduce((validated, key) => {
|
||||
const value = stats[key];
|
||||
@@ -58,63 +58,85 @@ async function reportSizeStats(stats, replacePattern) {
|
||||
validated[key] = value;
|
||||
return validated;
|
||||
}, {});
|
||||
|
||||
if (Object.keys(validatedStats).length > 0) {
|
||||
// Print out the new stats
|
||||
const document =
|
||||
(await datastore.getLatestDocument(collection, GITHUB_REF)) || {};
|
||||
const formattedStats = formatBundleStats(document, validatedStats);
|
||||
console.log(formattedStats);
|
||||
|
||||
await datastore.createOrUpdateDocument(
|
||||
collection,
|
||||
GITHUB_SHA,
|
||||
validatedStats,
|
||||
GITHUB_REF,
|
||||
);
|
||||
}
|
||||
} else {
|
||||
const document = await datastore.getLatestDocument(collection);
|
||||
|
||||
const diffFormatter = new Intl.NumberFormat('en', {signDisplay: 'always'});
|
||||
const sizeFormatter = new Intl.NumberFormat('en', {});
|
||||
|
||||
// | Platform | Engine | Arch | Size (bytes) | Diff |
|
||||
// |:---------|:-------|:------------|-------------:|-----:|
|
||||
// | android | hermes | arm64-v8a | 9437184 | ±0 |
|
||||
// | android | hermes | armeabi-v7a | 9015296 | ±0 |
|
||||
// | android | hermes | x86 | 9498624 | ±0 |
|
||||
// | android | hermes | x86_64 | 9965568 | ±0 |
|
||||
// | android | jsc | arm64-v8a | 9236480 | ±0 |
|
||||
// | android | jsc | armeabi-v7a | 8814592 | ±0 |
|
||||
// | android | jsc | x86 | 9297920 | ±0 |
|
||||
// | android | jsc | x86_64 | 9764864 | ±0 |
|
||||
// | android | jsc | x86_64 | 9764864 | ±0 |
|
||||
// | ios | - | universal | 10715136 | ±0 |
|
||||
const comment = [
|
||||
'| Platform | Engine | Arch | Size (bytes) | Diff |',
|
||||
'|:---------|:-------|:-----|-------------:|-----:|',
|
||||
...Object.keys(stats).map(identifier => {
|
||||
const [size, diff] = (() => {
|
||||
const statSize = stats[identifier];
|
||||
if (!statSize) {
|
||||
return ['n/a', '--'];
|
||||
} else if (!(identifier in document)) {
|
||||
return [statSize, 'n/a'];
|
||||
} else {
|
||||
return [
|
||||
sizeFormatter.format(statSize),
|
||||
diffFormatter.format(statSize - document[identifier]),
|
||||
];
|
||||
}
|
||||
})();
|
||||
|
||||
const [platform, engineOrArch, ...archParts] = identifier.split('-');
|
||||
const arch = archParts.join('-') || engineOrArch;
|
||||
const engine = arch === engineOrArch ? '-' : engineOrArch; // e.g. 'ios-universal'
|
||||
return `| ${platform} | ${engine} | ${arch} | ${size} | ${diff} |`;
|
||||
}),
|
||||
'',
|
||||
`Base commit: ${document.commit}`,
|
||||
].join('\n');
|
||||
// For PRs, always compare vs main.
|
||||
const document =
|
||||
(await datastore.getLatestDocument(collection, 'main')) || {};
|
||||
const comment = formatBundleStats(document, stats);
|
||||
createOrUpdateComment(comment, replacePattern);
|
||||
}
|
||||
|
||||
await datastore.terminateStore(store);
|
||||
}
|
||||
|
||||
/**
|
||||
* Format the new bundle stats as compared to the latest stored entry.
|
||||
* @param {firebase.firestore.DocumentData} document the latest entry to compare against
|
||||
* @param {firebase.firestore.UpdateData} stats The stats to be formatted
|
||||
* @returns {string}
|
||||
*/
|
||||
function formatBundleStats(document, stats) {
|
||||
const diffFormatter = new Intl.NumberFormat('en', {signDisplay: 'always'});
|
||||
const sizeFormatter = new Intl.NumberFormat('en', {});
|
||||
|
||||
// | Platform | Engine | Arch | Size (bytes) | Diff |
|
||||
// |:---------|:-------|:------------|-------------:|-----:|
|
||||
// | android | hermes | arm64-v8a | 9437184 | ±0 |
|
||||
// | android | hermes | armeabi-v7a | 9015296 | ±0 |
|
||||
// | android | hermes | x86 | 9498624 | ±0 |
|
||||
// | android | hermes | x86_64 | 9965568 | ±0 |
|
||||
// | android | jsc | arm64-v8a | 9236480 | ±0 |
|
||||
// | android | jsc | armeabi-v7a | 8814592 | ±0 |
|
||||
// | android | jsc | x86 | 9297920 | ±0 |
|
||||
// | android | jsc | x86_64 | 9764864 | ±0 |
|
||||
// | android | jsc | x86_64 | 9764864 | ±0 |
|
||||
// | ios | - | universal | 10715136 | ±0 |
|
||||
const formatted = [
|
||||
'| Platform | Engine | Arch | Size (bytes) | Diff |',
|
||||
'|:---------|:-------|:-----|-------------:|-----:|',
|
||||
...Object.keys(stats).map(identifier => {
|
||||
const [size, diff] = (() => {
|
||||
const statSize = stats[identifier];
|
||||
if (!statSize) {
|
||||
return ['n/a', '--'];
|
||||
} else if (!(identifier in document)) {
|
||||
return [statSize, 'n/a'];
|
||||
} else {
|
||||
return [
|
||||
sizeFormatter.format(statSize),
|
||||
diffFormatter.format(statSize - document[identifier]),
|
||||
];
|
||||
}
|
||||
})();
|
||||
|
||||
const [platform, engineOrArch, ...archParts] = identifier.split('-');
|
||||
const arch = archParts.join('-') || engineOrArch;
|
||||
const engine = arch === engineOrArch ? '-' : engineOrArch; // e.g. 'ios-universal'
|
||||
return `| ${platform} | ${engine} | ${arch} | ${size} | ${diff} |`;
|
||||
}),
|
||||
'',
|
||||
`Base commit: ${document.commit || '<unknown>'}`,
|
||||
`Branch: ${document.branch || '<unknown>'}`,
|
||||
].join('\n');
|
||||
|
||||
return formatted;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the size of the file at specified path in bytes.
|
||||
* @param {fs.PathLike} path
|
||||
|
||||
+45
-9
@@ -1,7 +1,6 @@
|
||||
{
|
||||
"name": "react-native",
|
||||
"private": true,
|
||||
"version": "1000.0.0",
|
||||
"version": "0.67.0-rc.1",
|
||||
"bin": "./cli.js",
|
||||
"description": "A framework for building native apps using React",
|
||||
"license": "MIT",
|
||||
@@ -80,10 +79,6 @@
|
||||
"test-ios-e2e": "detox test -c ios.sim.release packages/rn-tester/e2e",
|
||||
"test-ios": "./scripts/objc-test.sh test"
|
||||
},
|
||||
"workspaces": [
|
||||
"packages/!(eslint-config-react-native-community)",
|
||||
"repo-config"
|
||||
],
|
||||
"peerDependencies": {
|
||||
"react": "17.0.2"
|
||||
},
|
||||
@@ -116,11 +111,52 @@
|
||||
"stacktrace-parser": "^0.1.3",
|
||||
"use-subscription": "^1.0.0",
|
||||
"whatwg-fetch": "^3.0.0",
|
||||
"ws": "^6.1.4"
|
||||
"ws": "^6.1.4",
|
||||
"react-native-codegen": "^0.0.8"
|
||||
},
|
||||
"devDependencies": {
|
||||
"flow-bin": "^0.162.0",
|
||||
"react": "17.0.2"
|
||||
"react": "17.0.2",
|
||||
"@babel/core": "^7.14.0",
|
||||
"@babel/generator": "^7.14.0",
|
||||
"@babel/template": "^7.0.0",
|
||||
"@babel/types": "^7.0.0",
|
||||
"@react-native-community/eslint-plugin": "*",
|
||||
"@reactions/component": "^2.0.2",
|
||||
"async": "^2.4.0",
|
||||
"babel-eslint": "^10.1.0",
|
||||
"babel-preset-fbjs": "^3.4.0",
|
||||
"clang-format": "^1.2.4",
|
||||
"connect": "^3.6.5",
|
||||
"coveralls": "^3.0.2",
|
||||
"detox": "16.7.2",
|
||||
"eslint": "7.12.0",
|
||||
"eslint-config-fb-strict": "^24.9.0",
|
||||
"eslint-config-fbjs": "2.1.0",
|
||||
"eslint-config-prettier": "^6.0.0",
|
||||
"eslint-plugin-babel": "^5.3.0",
|
||||
"eslint-plugin-eslint-comments": "^3.1.1",
|
||||
"eslint-plugin-flowtype": "2.50.3",
|
||||
"eslint-plugin-jest": "22.4.1",
|
||||
"eslint-plugin-jsx-a11y": "6.2.1",
|
||||
"eslint-plugin-prettier": "2.6.2",
|
||||
"eslint-plugin-react": "7.21.5",
|
||||
"eslint-plugin-react-hooks": "^4.2.0",
|
||||
"eslint-plugin-react-native": "3.10.0",
|
||||
"eslint-plugin-relay": "1.8.1",
|
||||
"jest": "^26.6.3",
|
||||
"jest-junit": "^10.0.0",
|
||||
"jscodeshift": "^0.11.0",
|
||||
"metro-babel-register": "0.66.2",
|
||||
"metro-transform-plugins": "^0.66.2",
|
||||
"mkdirp": "^0.5.1",
|
||||
"prettier": "1.19.1",
|
||||
"react-shallow-renderer": "16.14.1",
|
||||
"react-test-renderer": "17.0.2",
|
||||
"shelljs": "^0.7.8",
|
||||
"signedsource": "^1.0.0",
|
||||
"ws": "^6.1.4",
|
||||
"yargs": "^15.3.1"
|
||||
},
|
||||
"detox": {
|
||||
"test-runner": "jest",
|
||||
@@ -159,4 +195,4 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+522
-522
File diff suppressed because it is too large
Load Diff
@@ -55,6 +55,9 @@ sed_i -e "s/^\(ruby '\)[^']*\('.*\)$/\1$VERSION\2/" template/Gemfile
|
||||
|
||||
rm -f Gemfile.lock template/Gemfile.lock
|
||||
|
||||
export BUNDLE_APP_CONFIG="$ROOT/.bundle"
|
||||
cp "$BUNDLE_APP_CONFIG/"* template/_bundle # sync!
|
||||
|
||||
bundle lock
|
||||
(cd template && bundle lock)
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ GEM
|
||||
colored2 (3.1.2)
|
||||
concurrent-ruby (1.1.9)
|
||||
escape (0.0.4)
|
||||
ethon (0.14.0)
|
||||
ethon (0.15.0)
|
||||
ffi (>= 1.15.0)
|
||||
ffi (1.15.4)
|
||||
fourflusher (2.3.1)
|
||||
@@ -65,7 +65,7 @@ GEM
|
||||
httpclient (2.8.3)
|
||||
i18n (1.8.10)
|
||||
concurrent-ruby (~> 1.0)
|
||||
json (2.5.1)
|
||||
json (2.6.0)
|
||||
minitest (5.14.4)
|
||||
molinillo (0.8.0)
|
||||
nanaimo (0.3.0)
|
||||
@@ -85,10 +85,10 @@ GEM
|
||||
colored2 (~> 3.1)
|
||||
nanaimo (~> 0.3.0)
|
||||
rexml (~> 3.2.4)
|
||||
zeitwerk (2.4.2)
|
||||
zeitwerk (2.5.1)
|
||||
|
||||
PLATFORMS
|
||||
arm64-darwin-20
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
cocoapods (~> 1.11, >= 1.11.2)
|
||||
@@ -97,4 +97,4 @@ RUBY VERSION
|
||||
ruby 2.7.4p191
|
||||
|
||||
BUNDLED WITH
|
||||
2.2.28
|
||||
2.2.29
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"react": "17.0.2",
|
||||
"react-native": "1000.0.0"
|
||||
"react-native": "0.67.0-rc.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.12.9",
|
||||
|
||||
@@ -1103,6 +1103,26 @@
|
||||
sudo-prompt "^9.0.0"
|
||||
wcwidth "^1.0.1"
|
||||
|
||||
"@react-native-community/eslint-plugin@*":
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@react-native-community/eslint-plugin/-/eslint-plugin-1.1.0.tgz#e42b1bef12d2415411519fd528e64b593b1363dc"
|
||||
integrity sha512-W/J0fNYVO01tioHjvYWQ9m6RgndVtbElzYozBq1ZPrHO/iCzlqoySHl4gO/fpCl9QEFjvJfjPgtPMTMlsoq5DQ==
|
||||
|
||||
"@react-native/assets@1.0.0":
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@react-native/assets/-/assets-1.0.0.tgz#c6f9bf63d274bafc8e970628de24986b30a55c8e"
|
||||
integrity sha512-KrwSpS1tKI70wuKl68DwJZYEvXktDHdZMG0k2AXD/rJVSlB23/X2CB2cutVR0HwNMJIal9HOUOBB2rVfa6UGtQ==
|
||||
|
||||
"@react-native/normalize-color@2.0.0":
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@react-native/normalize-color/-/normalize-color-2.0.0.tgz#da955909432474a9a0fe1cbffc66576a0447f567"
|
||||
integrity sha512-Wip/xsc5lw8vsBlmY2MO/gFLp3MvuZ2baBZjDeTjjndMgM0h5sxz7AZR62RDPGgstp8Np7JzjvVqVT7tpFZqsw==
|
||||
|
||||
"@react-native/polyfills@2.0.0":
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@react-native/polyfills/-/polyfills-2.0.0.tgz#4c40b74655c83982c8cf47530ee7dc13d957b6aa"
|
||||
integrity sha512-K0aGNn1TjalKj+65D7ycc1//H9roAQ51GJVk5ZJQFb2teECGmzd86bYDC0aYdbRf7gtovescq4Zt6FR0tgXiHQ==
|
||||
|
||||
"@reactions/component@^2.0.2":
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@reactions/component/-/component-2.0.2.tgz#40f8c1c2c37baabe57a0c944edb9310dc1ec6642"
|
||||
@@ -5572,6 +5592,15 @@ react-is@^16.8.1, react-is@^16.8.4:
|
||||
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
|
||||
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
|
||||
|
||||
react-native-codegen@^0.0.8:
|
||||
version "0.0.8"
|
||||
resolved "https://registry.yarnpkg.com/react-native-codegen/-/react-native-codegen-0.0.8.tgz#b7796a54074139d956fff2862cf1285db43c891b"
|
||||
integrity sha512-k/944+0XD+8l7zDaiKfYabyEKmAmyZgS1mj+4LcSRPyHnrjgCHKrh/Y6jM6kucQ6xU1+1uyMmF/dSkikxK8i+Q==
|
||||
dependencies:
|
||||
flow-parser "^0.121.0"
|
||||
jscodeshift "^0.11.0"
|
||||
nullthrows "^1.1.1"
|
||||
|
||||
react-refresh@^0.4.0:
|
||||
version "0.4.0"
|
||||
resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.4.0.tgz#d421f9bd65e0e4b9822a399f14ac56bda9c92292"
|
||||
@@ -6171,13 +6200,6 @@ source-map-resolve@^0.5.0:
|
||||
source-map-url "^0.4.0"
|
||||
urix "^0.1.0"
|
||||
|
||||
source-map-support@0.5.0:
|
||||
version "0.5.0"
|
||||
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.0.tgz#2018a7ad2bdf8faf2691e5fddab26bed5a2bacab"
|
||||
integrity sha512-vUoN3I7fHQe0R/SJLKRdKYuEdRGogsviXFkHHo17AWaTGv17VLnxw+CFXvqy+y4ORZ3doWLQcxRYfwKrsd/H7Q==
|
||||
dependencies:
|
||||
source-map "^0.6.0"
|
||||
|
||||
source-map-support@^0.5.16, source-map-support@^0.5.6:
|
||||
version "0.5.16"
|
||||
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042"
|
||||
|
||||
Reference in New Issue
Block a user