diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index dc14e0b5fe..a4d6981ba8 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -6,12 +6,12 @@ on: types: [opened, synchronize] jobs: - build: + lint: runs-on: ubuntu-latest strategy: matrix: node: ['16'] - name: Build with Node ${{ matrix.node }} + name: Lint with Node ${{ matrix.node }} steps: - uses: actions/checkout@v3 with: @@ -21,15 +21,9 @@ jobs: with: node-version: ${{ matrix.node }} - run: yarn install --frozen-lockfile --check-files - - run: yarn lerna run prepare --stream - run: yarn lint --max-warnings=0 - - uses: actions/cache@v2 - with: - path: '*' - key: v2-${{ github.sha }}-${{ matrix.node }} test: runs-on: ubuntu-latest - needs: build strategy: fail-fast: false matrix: @@ -46,16 +40,20 @@ jobs: ] name: Test ${{ matrix.package }} on Node ${{ matrix.node }} steps: - - uses: actions/cache@v2 + - uses: actions/checkout@v3 with: - path: '*' - key: v2-${{ github.sha }}-${{ matrix.node }} + fetch-depth: 1 - name: Set up Node uses: actions/setup-node@v3 with: node-version: ${{ matrix.node }} + - name: Install packages + run: yarn install --frozen-lockfile --check-files + - name: Build packages + run: yarn lerna run prepare --stream - name: Test ${{ matrix.package }} - run: cd packages/${{ matrix.package }} && yarn test + working-directory: packages/${{ matrix.package }} + run: yarn test # run: cd packages/${{ matrix.package }} && yarn test --coverage env: CI: true diff --git a/.github/workflows/test_windows.yml b/.github/workflows/test_windows.yml index c41812a5c0..2bdb83bbd4 100644 --- a/.github/workflows/test_windows.yml +++ b/.github/workflows/test_windows.yml @@ -5,7 +5,7 @@ on: pull_request: types: [opened, synchronize] jobs: - build: + lint: runs-on: windows-latest strategy: matrix: @@ -20,15 +20,9 @@ jobs: with: node-version: ${{ matrix.node }} - run: yarn install --frozen-lockfile --network-timeout 120000 - - run: yarn lerna run prepare --stream - run: yarn lint --max-warnings=0 - - uses: actions/cache@v2 - with: - path: '*' - key: v2-${{ github.sha }}-${{ matrix.node }} test: runs-on: ubuntu-latest - needs: build strategy: fail-fast: false matrix: @@ -45,16 +39,20 @@ jobs: ] name: Test ${{ matrix.package }} on Node ${{ matrix.node }} steps: - - uses: actions/cache@v2 + - uses: actions/checkout@v3 with: - path: '*' - key: v2-${{ github.sha }}-${{ matrix.node }} + fetch-depth: 1 - name: Set up Node uses: actions/setup-node@v3 with: node-version: ${{ matrix.node }} + - name: Install packages + run: yarn install --frozen-lockfile --check-files + - name: Build packages + run: yarn lerna run prepare --stream - name: Test ${{ matrix.package }} - run: cd packages/${{ matrix.package }} && yarn test + working-directory: packages/${{ matrix.package }} + run: yarn test # run: cd packages/${{ matrix.package }} && yarn test --coverage env: CI: true diff --git a/packages/expo-cli/e2e/TestUtils.ts b/packages/expo-cli/e2e/TestUtils.ts index 0205f990c6..ee6e1bc4a3 100644 --- a/packages/expo-cli/e2e/TestUtils.ts +++ b/packages/expo-cli/e2e/TestUtils.ts @@ -1,6 +1,6 @@ import { ExpoConfig } from '@expo/config'; import JsonFile from '@expo/json-file'; -import spawnAsync, { SpawnOptions, SpawnResult } from '@expo/spawn-async'; +import spawnAsync, { SpawnOptions, SpawnPromise, SpawnResult } from '@expo/spawn-async'; import fs from 'fs'; import path from 'path'; @@ -14,8 +14,14 @@ function isSpawnResult(errorOrResult: Error): errorOrResult is Error & SpawnResu export async function runAsync(args: string[], options?: SpawnOptions): Promise { const promise = spawnAsync(EXPO_CLI, args, options); - promise.child.stdout.pipe(process.stdout); - promise.child.stderr.pipe(process.stderr); + + promise.child.stdout?.pipe(process.stdout); + promise.child.stderr?.pipe(process.stderr); + + return await handleSpawnResult(promise); +} + +export async function handleSpawnResult(promise: SpawnPromise): Promise { try { return await promise; } catch (error: any) { @@ -88,9 +94,19 @@ export async function createMinimalProjectAsync( fs.writeFileSync(path.join(projectRoot, 'App.js'), getBasicAppJs()); - // TODO(Bacon): We shouldn't need this - // Install the packages so eject can infer the versions - await spawnAsync('yarn', [], { cwd: projectRoot, stdio: ['ignore', 'inherit', 'inherit'] }); + try { + // TODO(Bacon): We shouldn't need this + // Install the packages so eject can infer the versions + await spawnAsync('yarn', [], { + cwd: projectRoot, + stdio: process.env.CI === 'true' ? 'inherit' : ['ignore', 'inherit', 'inherit'], + }); + } catch { + await spawnAsync('npm', ['install'], { + cwd: projectRoot, + stdio: process.env.CI === 'true' ? 'inherit' : ['ignore', 'inherit', 'inherit'], + }); + } return projectRoot; } diff --git a/packages/expo-cli/e2e/__tests__/eject-test.ts b/packages/expo-cli/e2e/__tests__/eject-test.ts index 269f7a9a50..387cce039d 100644 --- a/packages/expo-cli/e2e/__tests__/eject-test.ts +++ b/packages/expo-cli/e2e/__tests__/eject-test.ts @@ -10,6 +10,7 @@ import { EXPO_CLI, getBasicExpoConfig, getBasicPackageJson, + handleSpawnResult, } from '../TestUtils'; const tempDir = temporary.directory(); @@ -32,16 +33,16 @@ beforeAll(async () => { function executeDefaultAsync(cwd: string, args: string[]) { const promise = spawnAsync(EXPO_CLI, args, { cwd }); - promise.child.stdout.pipe(process.stdout); - promise.child.stderr.pipe(process.stderr); + promise.child.stdout?.pipe(process.stdout); + promise.child.stderr?.pipe(process.stderr); // When the test is prompted to use git, skip message // TODO(Bacon): this shouldn't be blocking in non-interactive - promise.child.stdout.on('data', data => { + promise.child.stdout?.on('data', data => { const stdout = data.toString(); // Skip dirty git if (/Would you like to proceed/.test(stdout)) { - promise.child.stdin.write('\n'); + promise.child.stdin?.write('\n'); } }); @@ -59,7 +60,7 @@ it(`can eject a minimal project`, async () => { const res = executeDefaultAsync(projectRoot, ['eject']); // This shouldn't fail - await res; + await handleSpawnResult(res); // Test that native folders were generated expect(fileExists(projectName, 'ios/hworld.xcodeproj')).toBe(true); @@ -74,11 +75,11 @@ it(`can eject a minimal project`, async () => { // Remove main expect(outputPkgJson.main).toBe(undefined); // Scripts should be rewritten to use react-native-community/cli - expect(outputPkgJson.scripts['ios']).toBe('expo run:ios'); - expect(outputPkgJson.scripts['android']).toBe('expo run:android'); - expect(outputPkgJson.scripts['web']).toBe('expo start --web'); + expect(outputPkgJson.scripts?.['ios']).toBe('expo run:ios'); + expect(outputPkgJson.scripts?.['android']).toBe('expo run:android'); + expect(outputPkgJson.scripts?.['web']).toBe('expo start --web'); // Ensure the react-native version doesn't change - expect(outputPkgJson.dependencies['react-native']).toBe( + expect(outputPkgJson.dependencies?.['react-native']).toBe( getBasicPackageJson().dependencies['react-native'] ); }); diff --git a/packages/expo-cli/package.json b/packages/expo-cli/package.json index edf1239715..948e003175 100644 --- a/packages/expo-cli/package.json +++ b/packages/expo-cli/package.json @@ -51,6 +51,7 @@ "@types/js-yaml": "^3.12.2", "@types/klaw-sync": "^6.0.0", "@types/minipass": "^3.1.2", + "@types/node-fetch": "^2.6.9", "@types/npm-package-arg": "^6.1.0", "@types/pngjs": "^3.4.1", "@types/progress": "^2.0.3", @@ -100,6 +101,7 @@ "leven": "^3.1.0", "lodash": "^4.17.19", "minipass": "3.1.6", + "node-fetch": "^2.7.0", "npm-package-arg": "6.1.0", "ora": "3.4.0", "pngjs": "3.4.0", diff --git a/packages/expo-cli/src/commands/utils/CreateApp.ts b/packages/expo-cli/src/commands/utils/CreateApp.ts index 4c70bf45f7..6a28e4652d 100644 --- a/packages/expo-cli/src/commands/utils/CreateApp.ts +++ b/packages/expo-cli/src/commands/utils/CreateApp.ts @@ -200,7 +200,10 @@ export async function installCocoaPodsAsync(projectRoot: string) { } try { - await packageManager.installAsync({ spinner: step }); + await packageManager.installAsync({ + // @ts-expect-error Multiple versions of `@expo/package-manager` are installed in this repository + spinner: step, + }); // Create cached list for later await hasPackageJsonDependencyListChangedAsync(projectRoot).catch(() => null); step.succeed('Installed pods and initialized Xcode workspace.'); diff --git a/packages/webpack-config/package.json b/packages/webpack-config/package.json index 4218c0d906..7a31b85a8b 100644 --- a/packages/webpack-config/package.json +++ b/packages/webpack-config/package.json @@ -67,6 +67,7 @@ "expo": "^49.0.7" }, "devDependencies": { + "@types/babel__code-frame": "^7.0.6", "@types/copy-webpack-plugin": "^10.1.0", "@types/css-minimizer-webpack-plugin": "3.2.1", "@types/html-webpack-plugin": "^3.2.6", diff --git a/packages/xdl/package.json b/packages/xdl/package.json index e2e23b4a33..f8020e4a54 100644 --- a/packages/xdl/package.json +++ b/packages/xdl/package.json @@ -37,6 +37,7 @@ "@expo/config-plugins": "4.1.5", "@expo/dev-server": "0.2.0", "@expo/devcert": "^1.0.0", + "@expo/image-utils": "0.3.23", "@expo/json-file": "8.2.37", "@expo/osascript": "2.0.33", "@expo/package-manager": "0.0.56", @@ -105,6 +106,7 @@ "@types/fs-extra": "^9.0.1", "@types/getenv": "^0.7.0", "@types/hashids": "^1.0.30", + "@types/lodash": "^4.14.202", "@types/node-forge": "^0.9.7", "@types/semver": "^6.0.0", "@types/source-map-support": "^0.5.0", diff --git a/packages/xdl/tsconfig.json b/packages/xdl/tsconfig.json index 844dc41f35..ecb488da50 100644 --- a/packages/xdl/tsconfig.json +++ b/packages/xdl/tsconfig.json @@ -11,19 +11,5 @@ "compilerOptions": { "outDir": "build", "rootDir": "src" - }, - "references": [ - { - "path": "../image-utils" - }, - { - "path": "../json-file" - }, - { - "path": "../osascript" - }, - { - "path": "../plist" - } - ] -} \ No newline at end of file + } +} diff --git a/yarn.lock b/yarn.lock index 813a2eca76..d44a75c8d3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1859,6 +1859,23 @@ semver "7.3.2" tempy "0.3.0" +"@expo/image-utils@0.3.23": + version "0.3.23" + resolved "https://registry.yarnpkg.com/@expo/image-utils/-/image-utils-0.3.23.tgz#f14fd7e1f5ff6f8e4911a41e27dd274470665c3f" + integrity sha512-nhUVvW0TrRE4jtWzHQl8TR4ox7kcmrc2I0itaeJGjxF5A54uk7avgA0wRt7jP1rdvqQo1Ke1lXyLYREdhN9tPw== + dependencies: + "@expo/spawn-async" "1.5.0" + chalk "^4.0.0" + fs-extra "9.0.0" + getenv "^1.0.0" + jimp-compact "0.16.1" + mime "^2.4.4" + node-fetch "^2.6.0" + parse-png "^2.1.0" + resolve-from "^5.0.0" + semver "7.3.2" + tempy "0.3.0" + "@expo/json-file@8.2.36": version "8.2.36" resolved "https://registry.yarnpkg.com/@expo/json-file/-/json-file-8.2.36.tgz#62a505cb7f30a34d097386476794680a3f7385ff" @@ -1868,6 +1885,15 @@ json5 "^1.0.1" write-file-atomic "^2.3.0" +"@expo/json-file@8.2.37", "@expo/json-file@^8.2.37", "@expo/json-file@~8.2.37": + version "8.2.37" + resolved "https://registry.yarnpkg.com/@expo/json-file/-/json-file-8.2.37.tgz#9c02d3b42134907c69cc0a027b18671b69344049" + integrity sha512-YaH6rVg11JoTS2P6LsW7ybS2CULjf40AbnAHw2F1eDPuheprNjARZMnyHFPkKv7GuxCy+B9GPcbOKgc4cgA80Q== + dependencies: + "@babel/code-frame" "~7.10.4" + json5 "^2.2.2" + write-file-atomic "^2.3.0" + "@expo/metro-config@~0.10.0": version "0.10.7" resolved "https://registry.yarnpkg.com/@expo/metro-config/-/metro-config-0.10.7.tgz#d1b91baffcb7feb52fc7e2e122450bfc5d01e7c1" @@ -1981,6 +2007,14 @@ uuid "^3.3.2" yaml "^1.10.0" +"@expo/osascript@2.0.33", "@expo/osascript@^2.0.31": + version "2.0.33" + resolved "https://registry.yarnpkg.com/@expo/osascript/-/osascript-2.0.33.tgz#e9dcc8da54466c11939074aa71a006024ea884b1" + integrity sha512-FQinlwHrTlJbntp8a7NAlCKedVXe06Va/0DSLXRO8lZVtgbEMrYYSUZWQNcOlNtc58c2elNph6z9dMOYwSo3JQ== + dependencies: + "@expo/spawn-async" "^1.5.0" + exec-async "^2.2.0" + "@expo/package-manager@0.0.56": version "0.0.56" resolved "https://registry.yarnpkg.com/@expo/package-manager/-/package-manager-0.0.56.tgz#214a8db48752cde968827c20c5b54a88187b5422" @@ -2023,6 +2057,15 @@ base64-js "^1.2.3" xmlbuilder "^14.0.0" +"@expo/plist@0.0.20", "@expo/plist@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@expo/plist/-/plist-0.0.20.tgz#a6b3124438031c02b762bad5a47b70584d3c0072" + integrity sha512-UXQ4LXCfTZ580LDHGJ5q62jSTwJFFJ1GqBu8duQMThiHKWbMJ+gajJh6rsB6EJ3aLUr9wcauxneL5LVRFxwBEA== + dependencies: + "@xmldom/xmldom" "~0.7.7" + base64-js "^1.2.3" + xmlbuilder "^14.0.0" + "@expo/prebuild-config@4.0.3": version "4.0.3" resolved "https://registry.yarnpkg.com/@expo/prebuild-config/-/prebuild-config-4.0.3.tgz#35b9065d733ff1949b9b2f891633323948707ea6" @@ -2069,6 +2112,18 @@ remove-trailing-slash "^0.1.0" uuid "^8.3.2" +"@expo/schemer@1.4.5": + version "1.4.5" + resolved "https://registry.yarnpkg.com/@expo/schemer/-/schemer-1.4.5.tgz#ea466b7793be60af02e429325842d0db150a26e6" + integrity sha512-i96A2GaZWLE7K1McRt8Vf7vsMKzzM/1t+xUXOTdBEiGH2ffiJjU69ufbTI0OwjLFCUCzPI2LzXwAHVnSP+Rkog== + dependencies: + ajv "^8.1.0" + ajv-formats "^2.0.2" + json-schema-traverse "^1.0.0" + lodash "^4.17.21" + probe-image-size "^7.1.0" + read-chunk "^3.2.0" + "@expo/sdk-runtime-versions@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@expo/sdk-runtime-versions/-/sdk-runtime-versions-1.0.0.tgz#d7ebd21b19f1c6b0395e50d78da4416941c57f7c" @@ -2081,7 +2136,7 @@ dependencies: cross-spawn "^6.0.5" -"@expo/spawn-async@^1.5.0", "@expo/spawn-async@^1.7.0": +"@expo/spawn-async@^1.5.0": version "1.7.0" resolved "https://registry.yarnpkg.com/@expo/spawn-async/-/spawn-async-1.7.0.tgz#3ab6082b24318cccc4e73b13464da91325555500" integrity sha512-sqPAjOEFTrjaTybrh9SnPFLInDXcoMC06psEFmH68jLTmoipSQCq8GCEfIoHhxRDALWB+DsiwXJSbXlE/iVIIQ== @@ -3653,10 +3708,10 @@ resolved "https://registry.yarnpkg.com/@types/anymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a" integrity sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA== -"@types/babel__code-frame@^7.0.1": - version "7.0.1" - resolved "https://registry.yarnpkg.com/@types/babel__code-frame/-/babel__code-frame-7.0.1.tgz#baf2529c4abbfb5e4008c845efcfe39a187e2f99" - integrity sha512-FFfbQozKxYmOnCKFYV+EQprjBI7u2yaNc2ly/K9AhzyC8MzXtCtSRqptpw+HUJxhwCOo5mLwf1ATmzyhOaVbDg== +"@types/babel__code-frame@^7.0.6": + version "7.0.6" + resolved "https://registry.yarnpkg.com/@types/babel__code-frame/-/babel__code-frame-7.0.6.tgz#20a899c0d29fba1ddf5c2156a10a2bda75ee6f29" + integrity sha512-Anitqkl3+KrzcW2k77lRlg/GfLZLWXBuNgbEcIOU6M92yw42vsd3xV/Z/yAHEj8m+KUjL6bWOVOFqX8PFPJ4LA== "@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14", "@types/babel__core@^7.1.7": version "7.1.19" @@ -3691,11 +3746,6 @@ dependencies: "@babel/types" "^7.3.0" -"@types/base64-js@^1.2.5": - version "1.2.5" - resolved "https://registry.yarnpkg.com/@types/base64-js/-/base64-js-1.2.5.tgz#582b2476169a6cba460a214d476c744441d873d5" - integrity sha1-WCskdhaabLpGCiFNR2x0REHYc9U= - "@types/body-parser@*": version "1.17.1" resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.17.1.tgz#18fcf61768fb5c30ccc508c21d6fd2e8b3bf7897" @@ -3793,11 +3843,6 @@ dependencies: "@types/ms" "*" -"@types/envinfo@^7.8.1": - version "7.8.1" - resolved "https://registry.yarnpkg.com/@types/envinfo/-/envinfo-7.8.1.tgz#1915df82c16d637e92146645c70db9360eb099c6" - integrity sha512-pTyshpmGxqB9lRwG75v2YR0oqKYpCrklOYlZWQ88z/JB0fimT8EVmYekuIwpU3IxPZDHSXCqXKzkCrtAcKY25g== - "@types/eslint-scope@^3.7.3": version "3.7.4" resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" @@ -3987,13 +4032,6 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= -"@types/json5@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-2.2.0.tgz#afff29abf9182a7d4a7e39105ca051f11c603d13" - integrity sha512-NrVug5woqbvNZ0WX+Gv4R+L4TGddtmFek2u8RtccAgFZWtS9QXF2xCXY22/M4nzkaKF0q9Fc6M/5rxLDhfwc/A== - dependencies: - json5 "*" - "@types/keyv@*": version "3.1.1" resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.1.tgz#e45a45324fca9dab716ab1230ee249c9fb52cfa7" @@ -4016,10 +4054,10 @@ "@types/node" "*" "@types/webpack" "^4" -"@types/lodash@^4.14.176": - version "4.14.176" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.176.tgz#641150fc1cda36fbfa329de603bbb175d7ee20c0" - integrity sha512-xZmuPTa3rlZoIbtDUyJKZQimJV3bxCmzMIO2c9Pz9afyDro6kr7R79GwcB6mRhuoPmV2p1Vb66WOJH7F886WKQ== +"@types/lodash@^4.14.202": + version "4.14.202" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.202.tgz#f09dbd2fb082d507178b2f2a5c7e74bd72ff98f8" + integrity sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ== "@types/mime@*": version "2.0.1" @@ -4050,10 +4088,10 @@ dependencies: "@types/minimatch" "*" -"@types/node-fetch@^2.6.5": - version "2.6.5" - resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.5.tgz#972756a9a0fe354b2886bf3defe667ddb4f0d30a" - integrity sha512-OZsUlr2nxvkqUFLSaY2ZbA+P1q22q+KrlxWOn/38RX+u5kTkYL2mTujEpzUhGkS+K/QCYp9oagfXG39XOzyySg== +"@types/node-fetch@^2.6.9": + version "2.6.9" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.9.tgz#15f529d247f1ede1824f7e7acdaa192d5f28071e" + integrity sha512-bQVlnMLFJ2d35DkPNjEPmd9ueO/rh5EiaZt2bhqiSarPjZIuIV6bPQVqcrEyvNo+AfTrRGVazle1tl597w3gfA== dependencies: "@types/node" "*" form-data "^4.0.0" @@ -4316,13 +4354,6 @@ resolved "https://registry.yarnpkg.com/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz#18b97a972f94f60a679fd5c796d96421b9abb9fd" integrity sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g== -"@types/write-file-atomic@^2.1.1": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@types/write-file-atomic/-/write-file-atomic-2.1.2.tgz#1657761692b70cf9ad2593e4eb4ac498adb9463f" - integrity sha512-/P4wq72qka9+JNqDgHe7Kr2Gpu1kmhA0H8tLlKi9G0eXmePiuT9k0izZAdkXXNA6Nb27xnzdgjRv2jZWO3+2oQ== - dependencies: - "@types/node" "*" - "@types/ws@^8.5.1": version "8.5.4" resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.4.tgz#bb10e36116d6e570dd943735f86c933c1587b8a5" @@ -8389,7 +8420,7 @@ env-paths@^1.0.0: resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-1.0.0.tgz#4168133b42bb05c38a35b1ae4397c8298ab369e0" integrity sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA= -envinfo@^7.3.1, envinfo@^7.7.2, envinfo@^7.8.1: +envinfo@^7.3.1, envinfo@^7.7.2: version "7.8.1" resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== @@ -9576,10 +9607,10 @@ forever-agent@~0.6.1: resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= -form-data@*, form-data@^3.0.0, form-data@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== +form-data@*, form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== dependencies: asynckit "^0.4.0" combined-stream "^1.0.8" @@ -9594,10 +9625,10 @@ form-data@^2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" -form-data@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" - integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== +form-data@^3.0.0, form-data@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" + integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== dependencies: asynckit "^0.4.0" combined-stream "^1.0.8" @@ -12215,11 +12246,6 @@ json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= -json5@*, json5@^2.1.0, json5@^2.1.1, json5@^2.1.2, json5@^2.2.2, json5@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" - integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== - json5@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" @@ -12232,6 +12258,11 @@ json5@^1.0.1: dependencies: minimist "^1.2.0" +json5@^2.1.0, json5@^2.1.1, json5@^2.1.2, json5@^2.2.2, json5@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" @@ -13946,10 +13977,10 @@ node-fetch@2.6.1: resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== -node-fetch@^2.2.0, node-fetch@^2.3.0, node-fetch@^2.5.0, node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.11, node-fetch@^2.6.7: - version "2.6.11" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.11.tgz#cde7fc71deef3131ef80a738919f999e6edfff25" - integrity sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w== +node-fetch@^2.2.0, node-fetch@^2.3.0, node-fetch@^2.5.0, node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.11, node-fetch@^2.6.7, node-fetch@^2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== dependencies: whatwg-url "^5.0.0" @@ -14690,7 +14721,7 @@ p-try@^1.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= -p-try@^2.0.0: +p-try@^2.0.0, p-try@^2.1.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== @@ -15942,6 +15973,14 @@ react@^16.8.1: object-assign "^4.1.1" prop-types "^15.6.2" +read-chunk@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/read-chunk/-/read-chunk-3.2.0.tgz#2984afe78ca9bfbbdb74b19387bf9e86289c16ca" + integrity sha512-CEjy9LCzhmD7nUpJ1oVOE6s/hBkejlcJEgLQHVnQznOSilOPb+kpKktlLfFDK3/WP43+F80xkUTM2VOkYoSYvQ== + dependencies: + pify "^4.0.1" + with-open-file "^0.1.6" + read-cmd-shim@^1.0.1: version "1.0.5" resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-1.0.5.tgz#87e43eba50098ba5a32d0ceb583ab8e43b961c16" @@ -19091,6 +19130,15 @@ windows-release@^3.1.0: dependencies: execa "^1.0.0" +with-open-file@^0.1.6: + version "0.1.7" + resolved "https://registry.yarnpkg.com/with-open-file/-/with-open-file-0.1.7.tgz#e2de8d974e8a8ae6e58886be4fe8e7465b58a729" + integrity sha512-ecJS2/oHtESJ1t3ZfMI3B7KIDKyfN0O16miWxdn30zdh66Yd3LsRFebXZXq6GU4xfxLf6nVxp9kIqElb5fqczA== + dependencies: + p-finally "^1.0.0" + p-try "^2.1.0" + pify "^4.0.1" + wonka@^4.0.14: version "4.0.15" resolved "https://registry.yarnpkg.com/wonka/-/wonka-4.0.15.tgz#9aa42046efa424565ab8f8f451fcca955bf80b89" @@ -19243,11 +19291,6 @@ xcode@^3.0.1: simple-plist "^1.1.0" uuid "^7.0.3" -xcparse@^0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/xcparse/-/xcparse-0.0.3.tgz#abc2dbe07e0550c14c1b670c41d05dcbe3cfd10b" - integrity sha512-/HgjZ1o81gudtNHt5a/EGEyMa991WZjZqu8ryPWJ1UtG4NRJyQ2AthR8MaqD6nN7UnCe7IcFShMm5oEA/S9nEQ== - xml-name-validator@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a"