From 53039199bdd7a2d631d9b54800eb988861844b96 Mon Sep 17 00:00:00 2001 From: Nick Gerleman Date: Wed, 27 May 2020 09:44:43 -0700 Subject: [PATCH 01/50] Allow Override Tooling to Use Nightly Builds Fixes #4857 Teach the tooling about the pattern and make sure we can validate against `0.0.0-56cf99a96` (the earliest nightly build). We cannot do a lazy fetch against a shortned commit hash, so we need to get a bit "creative" here. We make a couple other improvements here: 1. Change fetch depth to 1 to pull in less history. This reduces the scratch repo size from 174MB to 34MB when fetching just 0.62.2 (which is already much less than the 500MB for cloning entire remote) 2. Don't add remotes to the scratch git repo and instead fetch using the URL. We've seen transient errors where `simplegit` thinks we don't yet have a repo set up and adds a duplicate remote. This should hopefully fix that. --- .../package.json | 4 ++ .../src/GitReactFileRepository.ts | 52 +++++++++++++++---- yarn.lock | 42 ++++++++++----- 3 files changed, 76 insertions(+), 22 deletions(-) diff --git a/packages/react-native-platform-override/package.json b/packages/react-native-platform-override/package.json index 06fd84fb17e..01f5ef50fe8 100644 --- a/packages/react-native-platform-override/package.json +++ b/packages/react-native-platform-override/package.json @@ -25,7 +25,9 @@ "inquirer": "^7.1.0", "io-ts": "^2.1.1", "lodash": "^4.17.15", + "node-fetch": "^2.6.0", "ora": "^4.0.3", + "semver": "^7.3.2", "simple-git": "^1.131.0", "yargs": "^15.1.0" }, @@ -39,7 +41,9 @@ "@types/jest": "^24.9.1", "@types/lodash": "^4.14.149", "@types/node": "^13.7.4", + "@types/node-fetch": "^2.5.7", "@types/ora": "^3.2.0", + "@types/semver": "^7.2.0", "@types/yargs": "^15.0.3", "babel-jest": "^24.9.0", "diff-match-patch": "^1.0.4", diff --git a/packages/react-native-platform-override/src/GitReactFileRepository.ts b/packages/react-native-platform-override/src/GitReactFileRepository.ts index eb5cb7189a2..851d2046cab 100644 --- a/packages/react-native-platform-override/src/GitReactFileRepository.ts +++ b/packages/react-native-platform-override/src/GitReactFileRepository.ts @@ -8,14 +8,18 @@ import * as fs from 'fs'; import * as os from 'os'; import * as path from 'path'; +import * as semver from 'semver'; import * as simplegit from 'simple-git/promise'; import ActionQueue from './ActionQueue'; import {VersionedReactFileRepository} from './FileRepository'; +import fetch from 'node-fetch'; import {getNpmPackage} from './PackageUtils'; -const REACT_NATIVE_GITHUB_URL = 'https://github.com/facebook/react-native.git'; -const DEFAULT_DIR = path.join(os.tmpdir(), getNpmPackage().name, 'git'); +const RN_COMMIT_ENDPOINT = + 'https://api.github.com/repos/facebook/react-native/commits'; +const RN_GITHUB_URL = 'https://github.com/facebook/react-native.git'; +const DEFAULT_DIR = path.join(os.tmpdir(), getNpmPackage().name, 'git2'); /** * Retrives React Native files using the React Native Github repo. Switching @@ -48,7 +52,6 @@ export default class GitReactFileRepository if (!(await repo.gitClient.checkIsRepo())) { await repo.gitClient.init(); - await repo.gitClient.addRemote('origin', REACT_NATIVE_GITHUB_URL); } return repo; @@ -137,19 +140,48 @@ export default class GitReactFileRepository private async checkoutVersion(reactNativeVersion: string) { if (reactNativeVersion !== this.checkedOutVersion) { + const gitRef = await this.refFromVersion(reactNativeVersion); + try { - await this.gitClient.fetch( - 'origin', - `refs/tags/v${reactNativeVersion}`, - ); + await this.gitClient.fetch([RN_GITHUB_URL, gitRef, '--depth=1']); await this.gitClient.checkout('FETCH_HEAD'); await this.gitClient.reset('hard'); this.checkedOutVersion = reactNativeVersion; } catch (ex) { - throw new Error( - `Failed to checkout tag 'v${reactNativeVersion}'. Does it exist?`, - ); + throw new Error(`Failed to fetch '${gitRef}'. Does it exist?`); } } } + + private async refFromVersion(reactNativeVersion: string): Promise { + if (!semver.valid(reactNativeVersion)) { + throw new Error(`${reactNativeVersion} is not a valid semver version`); + } + + // Stable releases of React Native use a tag where nightly releases embed + // a commit hash into the prerelease tag of 0.0.0 versions + if (semver.lt(reactNativeVersion, '0.0.0', {includePrerelease: true})) { + // We cannot do a shallow fetch of an abbreviated commit hash + const shortHash = semver.prerelease(reactNativeVersion)[0]; + return this.longCommitHash(shortHash); + } else { + return `refs/tags/v${reactNativeVersion}`; + } + } + + private async longCommitHash(shortHash: string): Promise { + try { + // Try to get the hash if we've already fetched it locally + return await this.gitClient.revparse([shortHash]); + } catch { + // We likely haven't fetched enough yet. We cannot get long hash directly + // from a remote, so query Github's API for it. + const commitInfo = await fetch(`${RN_COMMIT_ENDPOINT}/${shortHash}`); + if (!commitInfo.ok) { + throw new Error(`Unable to query Github for commit '${shortHash}`); + } + + return (await commitInfo.json()).sha; + } + } } diff --git a/yarn.lock b/yarn.lock index cb805729929..30bfe724714 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2864,6 +2864,14 @@ resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== +"@types/node-fetch@^2.5.7": + version "2.5.7" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.7.tgz#20a2afffa882ab04d44ca786449a276f9f6bbf3c" + integrity sha512-o2WVNf5UhWRkxlf6eq+jMZDu7kjgpgJfl4xVNlvryc95O/6F2ld8ztKX+qu+Rjyet93WAWm5LjeX9H5FGkODvw== + dependencies: + "@types/node" "*" + form-data "^3.0.0" + "@types/node@*", "@types/node@^13.7.4": version "13.7.4" resolved "https://registry.yarnpkg.com/@types/node/-/node-13.7.4.tgz#76c3cb3a12909510f52e5dc04a6298cdf9504ffd" @@ -2929,7 +2937,7 @@ "@types/prop-types" "*" csstype "^2.2.0" -"@types/semver@^7.1.0": +"@types/semver@^7.1.0", "@types/semver@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.2.0.tgz#0d72066965e910531e1db4621c15d0ca36b8d83b" integrity sha512-TbB0A8ACUWZt3Y6bQPstW9QNbhNeebdgLX4T/ZfkrswAfUzRiXrgd9seol+X379Wa589Pu4UEx9Uok0D4RjRCQ== @@ -3048,7 +3056,7 @@ yargs "^13.2.4" yarn-install "^1.0.0" -"@wdio/config@5.12.1", "@wdio/config@^5.12.1": +"@wdio/config@^5.12.1": version "5.12.1" resolved "https://registry.yarnpkg.com/@wdio/config/-/config-5.12.1.tgz#e7a1158302d49378de0b47d465dc441525590148" integrity sha512-8pZOA0yInNlztcixftf9U4Cc/GSC5b8X2VfWhdhlr0IWekJ5HJ4l6UsLaIRaxGjIHsRsv4Zt2/dc52Q4f3SVrw== @@ -3095,7 +3103,7 @@ async-exit-hook "^2.0.1" stream-buffers "^3.0.2" -"@wdio/logger@5.12.1", "@wdio/logger@^5.12.1": +"@wdio/logger@^5.12.1": version "5.12.1" resolved "https://registry.yarnpkg.com/@wdio/logger/-/logger-5.12.1.tgz#1f753b0fa0c1dae455c2a485553890661150fc01" integrity sha512-KUmdS0Scj0T5UQGtcWFiQRqc0NpFLQ/vSvRxlDzzkoeGwwPINqTRkLT103KL7Lyitlm9uLfaFfYc2KSzynTung== @@ -3105,7 +3113,7 @@ loglevel-plugin-prefix "^0.8.4" strip-ansi "^5.2.0" -"@wdio/repl@5.12.1", "@wdio/repl@^5.12.1": +"@wdio/repl@^5.12.1": version "5.12.1" resolved "https://registry.yarnpkg.com/@wdio/repl/-/repl-5.12.1.tgz#af5b556ac26de397ec6f83cfd649d9f973f369b9" integrity sha512-/f8bWdqoSOYiZ3MJyiAmXrf9ezi6KTA3wHrpltRYJHFsni+LWEKprAoEhPROkj7OijRuSQqWHLLLYg/BOjOClg== @@ -3119,7 +3127,7 @@ dependencies: fs-extra "^8.0.1" -"@wdio/runner@5.12.1", "@wdio/runner@^5.12.1": +"@wdio/runner@^5.12.1": version "5.12.1" resolved "https://registry.yarnpkg.com/@wdio/runner/-/runner-5.12.1.tgz#6c357a28cde9a06f3418e6c58d24e822d234b8cc" integrity sha512-ZgplqHlajHliarzPG2YqKiw5V+KYhgi3CkMMePo8vzQX37wRTQ0RuagwDQy9YQYVXFtsWSr8SFSV6GyQhdeYKw== @@ -3140,7 +3148,7 @@ "@wdio/logger" "^5.12.1" "@wdio/utils" "^5.12.1" -"@wdio/utils@5.12.1", "@wdio/utils@^5.12.1": +"@wdio/utils@^5.12.1": version "5.12.1" resolved "https://registry.yarnpkg.com/@wdio/utils/-/utils-5.12.1.tgz#077602989a0060198ea7ec0a13c3b69c76221115" integrity sha512-LrUPEdINyWHrPYY3mXfsrEzEtgB+xXvIKPj6y9P3sVk90cw6FUHHbkZOiMiBkcPaCmIyf8bFwQCiLHxIQzhHiQ== @@ -5255,7 +5263,7 @@ columnify@^1.5.4: strip-ansi "^3.0.0" wcwidth "^1.0.0" -combined-stream@^1.0.6, combined-stream@~1.0.6: +combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== @@ -6333,10 +6341,10 @@ eslint-plugin-react-native@3.8.1: dependencies: eslint-plugin-react-native-globals "^0.1.1" -eslint-plugin-react@7.19.0, eslint-plugin-react@^7.14.1: - version "7.20.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.20.0.tgz#f98712f0a5e57dfd3e5542ef0604b8739cd47be3" - integrity sha512-rqe1abd0vxMjmbPngo4NaYxTcR3Y4Hrmc/jg4T+sYz63yqlmJRknpEQfmWY+eDWPuMmix6iUIK+mv0zExjeLgA== +eslint-plugin-react@7.19.0: + version "7.19.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.19.0.tgz#6d08f9673628aa69c5559d33489e855d83551666" + integrity sha512-SPT8j72CGuAP+JFbT0sJHOB80TX/pu44gQ4vXH/cq+hQTiY2PuZ6IHkqXJV6x1b28GDdo1lbInjKUrrdUf0LOQ== dependencies: array-includes "^3.1.1" doctrine "^2.1.0" @@ -6347,6 +6355,7 @@ eslint-plugin-react@7.19.0, eslint-plugin-react@^7.14.1: object.values "^1.1.1" prop-types "^15.7.2" resolve "^1.15.1" + semver "^6.3.0" string.prototype.matchall "^4.0.2" xregexp "^4.3.0" @@ -7010,6 +7019,15 @@ forever-agent@~0.6.1: resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= +form-data@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.0.tgz#31b7e39c85f1355b7139ee0c647cf0de7f83c682" + integrity sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + form-data@~2.3.2: version "2.3.3" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" @@ -12302,7 +12320,7 @@ semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semve resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.1.3: +semver@^7.1.3, semver@^7.3.2: version "7.3.2" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== From c2450cdaf1cdbcebda05100ed1e1379c368d5cd1 Mon Sep 17 00:00:00 2001 From: Nick Gerleman Date: Wed, 27 May 2020 09:45:07 -0700 Subject: [PATCH 02/50] Change files --- ...form-override-2020-05-27-09-45-07-checkout-master.json | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 change/react-native-platform-override-2020-05-27-09-45-07-checkout-master.json diff --git a/change/react-native-platform-override-2020-05-27-09-45-07-checkout-master.json b/change/react-native-platform-override-2020-05-27-09-45-07-checkout-master.json new file mode 100644 index 00000000000..e0cca799a57 --- /dev/null +++ b/change/react-native-platform-override-2020-05-27-09-45-07-checkout-master.json @@ -0,0 +1,8 @@ +{ + "type": "patch", + "comment": "Allow Override Tooling to Use Nightly Builds", + "packageName": "react-native-platform-override", + "email": "ngerlem@microsoft.com", + "dependentChangeType": "patch", + "date": "2020-05-27T16:45:07.164Z" +} From 688cdd59fd6dbec025fe6ea77129440e2ec3da0b Mon Sep 17 00:00:00 2001 From: Nick Gerleman Date: Wed, 27 May 2020 10:36:40 -0700 Subject: [PATCH 03/50] Reduce unneeded fetches --- .../src/GitReactFileRepository.ts | 59 ++++++++++++------- 1 file changed, 37 insertions(+), 22 deletions(-) diff --git a/packages/react-native-platform-override/src/GitReactFileRepository.ts b/packages/react-native-platform-override/src/GitReactFileRepository.ts index 851d2046cab..28624f8c2a3 100644 --- a/packages/react-native-platform-override/src/GitReactFileRepository.ts +++ b/packages/react-native-platform-override/src/GitReactFileRepository.ts @@ -19,7 +19,7 @@ import {getNpmPackage} from './PackageUtils'; const RN_COMMIT_ENDPOINT = 'https://api.github.com/repos/facebook/react-native/commits'; const RN_GITHUB_URL = 'https://github.com/facebook/react-native.git'; -const DEFAULT_DIR = path.join(os.tmpdir(), getNpmPackage().name, 'git2'); +const DEFAULT_DIR = path.join(os.tmpdir(), getNpmPackage().name, 'git'); /** * Retrives React Native files using the React Native Github repo. Switching @@ -140,16 +140,36 @@ export default class GitReactFileRepository private async checkoutVersion(reactNativeVersion: string) { if (reactNativeVersion !== this.checkedOutVersion) { - const gitRef = await this.refFromVersion(reactNativeVersion); - - try { - await this.gitClient.fetch([RN_GITHUB_URL, gitRef, '--depth=1']); - await this.gitClient.checkout('FETCH_HEAD'); - await this.gitClient.reset('hard'); - this.checkedOutVersion = reactNativeVersion; - } catch (ex) { - throw new Error(`Failed to fetch '${gitRef}'. Does it exist?`); + if (!(await this.tryCheckoutLocal(reactNativeVersion))) { + await this.fetchAndCheckout(reactNativeVersion); } + + this.checkedOutVersion = reactNativeVersion; + } + } + + private async tryCheckoutLocal(reactNativeVersion: string): Promise { + try { + await this.gitClient.checkout(reactNativeVersion); + await this.gitClient.reset('hard'); + return true; + } catch { + return false; + } + } + + private async fetchAndCheckout(reactNativeVersion: string) { + const gitRef = await this.refFromVersion(reactNativeVersion); + + try { + await this.gitClient.fetch([ + RN_GITHUB_URL, + `${gitRef}:${reactNativeVersion}`, + '--depth=1', + ]); + await this.gitClient.checkout(reactNativeVersion); + } catch (ex) { + throw new Error(`Failed to fetch '${gitRef}'. Does it exist?`); } } @@ -170,18 +190,13 @@ export default class GitReactFileRepository } private async longCommitHash(shortHash: string): Promise { - try { - // Try to get the hash if we've already fetched it locally - return await this.gitClient.revparse([shortHash]); - } catch { - // We likely haven't fetched enough yet. We cannot get long hash directly - // from a remote, so query Github's API for it. - const commitInfo = await fetch(`${RN_COMMIT_ENDPOINT}/${shortHash}`); - if (!commitInfo.ok) { - throw new Error(`Unable to query Github for commit '${shortHash}`); - } - - return (await commitInfo.json()).sha; + // We cannot get long hash directly from a remote, so query Github's API + // for it. + const commitInfo = await fetch(`${RN_COMMIT_ENDPOINT}/${shortHash}`); + if (!commitInfo.ok) { + throw new Error(`Unable to query Github for commit '${shortHash}`); } + + return (await commitInfo.json()).sha; } } From 63abd1966fb927386c33482c297b36efb23e299c Mon Sep 17 00:00:00 2001 From: Nick Gerleman Date: Wed, 27 May 2020 13:39:34 -0700 Subject: [PATCH 04/50] Begin integration of 3/22 Nightly Build --- .ado/windows-vs-pr.yml | 2 +- packages/E2ETest/package.json | 5 +- .../package.json | 5 +- packages/playground/package.json | 9 +- .../package.json | 1 + packages/react-native-win32/.flowconfig | 2 +- packages/react-native-win32/package.json | 9 +- .../react-native-windows-codegen/package.json | 1 + .../react-native-windows-init/package.json | 1 + packages/scripts/package.json | 1 + vnext/.flowconfig | 2 +- vnext/package.json | 10 +- yarn.lock | 410 ++++++++---------- 13 files changed, 218 insertions(+), 240 deletions(-) diff --git a/.ado/windows-vs-pr.yml b/.ado/windows-vs-pr.yml index 5bdccb68324..083f872811f 100644 --- a/.ado/windows-vs-pr.yml +++ b/.ado/windows-vs-pr.yml @@ -11,7 +11,7 @@ variables: - template: variables/msbuild.yml - template: variables/vs2019.yml - name: reactNativeVersion - value: 0.62.2 + value: 0.0.0-56cf99a96 jobs: - job: Setup diff --git a/packages/E2ETest/package.json b/packages/E2ETest/package.json index 39183b281e1..56c8060deca 100644 --- a/packages/E2ETest/package.json +++ b/packages/E2ETest/package.json @@ -23,8 +23,8 @@ }, "dependencies": { "prompt-sync": "^4.2.0", - "react": "16.11.0", - "react-native": "0.62.2", + "react": "16.13.0", + "react-native": "0.0.0-56cf99a96", "react-native-windows": "0.0.0-master.74" }, "devDependencies": { @@ -42,6 +42,7 @@ "@wdio/local-runner": "5.12.1", "@wdio/sync": "5.12.1", "appium": "1.14.1", + "eslint": "5.1.0", "just-scripts": "^0.36.1", "metro-react-native-babel-preset": "^0.56.0", "prettier": "^1.18.2", diff --git a/packages/microsoft-reactnative-sampleapps/package.json b/packages/microsoft-reactnative-sampleapps/package.json index 3a797baae74..64fb3267fd1 100644 --- a/packages/microsoft-reactnative-sampleapps/package.json +++ b/packages/microsoft-reactnative-sampleapps/package.json @@ -14,8 +14,8 @@ "windows": "react-native run-windows" }, "dependencies": { - "react": "16.11.0", - "react-native": "0.62.2", + "react": "16.13.0", + "react-native": "0.0.0-56cf99a96", "react-native-windows": "0.0.0-master.74" }, "devDependencies": { @@ -23,6 +23,7 @@ "@babel/runtime": "^7.8.4", "@types/react": "16.9.0", "@types/react-native": "^0.62.10", + "eslint": "5.1.0", "just-scripts": "^0.36.1", "metro-react-native-babel-preset": "^0.56.0", "react-native-windows-codegen": "0.0.5", diff --git a/packages/playground/package.json b/packages/playground/package.json index ff23bdaf156..72ce2f61e6f 100644 --- a/packages/playground/package.json +++ b/packages/playground/package.json @@ -10,18 +10,19 @@ "windows": "react-native run-windows" }, "dependencies": { - "react": "16.11.0", - "react-native": "0.62.2", + "react": "16.13.0", + "react-native": "0.0.0-56cf99a96", "react-native-windows": "0.0.0-master.74" }, "devDependencies": { "@babel/core": "^7.8.4", "@babel/runtime": "^7.8.4", + "@react-native-community/eslint-config": "^1.1.0", "@types/react": "16.9.0", "@types/react-native": "^0.62.10", + "eslint": "5.1.0", "just-scripts": "^0.36.1", "metro-react-native-babel-preset": "^0.56.0", - "react-test-renderer": "16.9.0", - "@react-native-community/eslint-config": "^1.0.0" + "react-test-renderer": "16.9.0" } } diff --git a/packages/react-native-platform-override/package.json b/packages/react-native-platform-override/package.json index 01f5ef50fe8..581f0d4c030 100644 --- a/packages/react-native-platform-override/package.json +++ b/packages/react-native-platform-override/package.json @@ -47,6 +47,7 @@ "@types/yargs": "^15.0.3", "babel-jest": "^24.9.0", "diff-match-patch": "^1.0.4", + "eslint": "5.1.0", "fp-ts": "^2.5.0", "jest": "^24.9.0", "just-scripts": "^0.36.1", diff --git a/packages/react-native-win32/.flowconfig b/packages/react-native-win32/.flowconfig index e9e76df4a37..ac7be1f8ba8 100644 --- a/packages/react-native-win32/.flowconfig +++ b/packages/react-native-win32/.flowconfig @@ -158,4 +158,4 @@ untyped-import untyped-type-import [version] -^0.113.0 \ No newline at end of file +^0.120.1 \ No newline at end of file diff --git a/packages/react-native-win32/package.json b/packages/react-native-win32/package.json index 3663457c4d0..21daf871d66 100644 --- a/packages/react-native-win32/package.json +++ b/packages/react-native-win32/package.json @@ -50,17 +50,18 @@ "@types/prop-types": "15.5.1", "@types/react": "16.9.0", "@types/react-native": "^0.62.10", - "flow-bin": "^0.113.0", + "eslint": "5.1.0", + "flow-bin": "^0.120.1", "jscodeshift": "^0.6.2", "just-scripts": "^0.36.1", - "react": "16.11.0", + "react": "16.13.0", + "react-native": "0.0.0-56cf99a96", "react-native-platform-override": "^0.0.1", - "react-native": "0.62.2", "rimraf": "^3.0.0", "typescript": "^3.8.3" }, "peerDependencies": { - "react": "16.11.0", + "react": "16.13.0", "react-dom": "16.8.6", "react-native": "^0.62.0-0" }, diff --git a/packages/react-native-windows-codegen/package.json b/packages/react-native-windows-codegen/package.json index dd0a1252845..f3853090cce 100644 --- a/packages/react-native-windows-codegen/package.json +++ b/packages/react-native-windows-codegen/package.json @@ -25,6 +25,7 @@ "@types/chalk": "^2.2.0", "@types/globby": "^9.1.0", "@types/yargs": "^15.0.3", + "eslint": "5.1.0", "just-scripts": "^0.36.1" } } diff --git a/packages/react-native-windows-init/package.json b/packages/react-native-windows-init/package.json index 0e9fe1c427e..e4f72ea8041 100644 --- a/packages/react-native-windows-init/package.json +++ b/packages/react-native-windows-init/package.json @@ -29,6 +29,7 @@ "@types/semver": "^7.1.0", "@types/valid-url": "^1.0.2", "@types/yargs": "^15.0.3", + "eslint": "5.1.0", "just-scripts": "^0.36.1", "typescript": "^3.8.3" }, diff --git a/packages/scripts/package.json b/packages/scripts/package.json index ca9d14bc383..233f4ad3d5e 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -11,6 +11,7 @@ }, "devDependencies": { "clang-format": "1.2.4", + "eslint": "5.1.0", "just-scripts": "^0.36.1" } } diff --git a/vnext/.flowconfig b/vnext/.flowconfig index a4b73ab4f67..1d759505e51 100644 --- a/vnext/.flowconfig +++ b/vnext/.flowconfig @@ -166,4 +166,4 @@ untyped-import untyped-type-import [version] -^0.113.0 \ No newline at end of file +^0.120.1 \ No newline at end of file diff --git a/vnext/package.json b/vnext/package.json index 0637e5aec92..632d5c7db99 100644 --- a/vnext/package.json +++ b/vnext/package.json @@ -40,7 +40,7 @@ "devDependencies": { "@microsoft/api-documenter": "^7.3.8", "@microsoft/api-extractor": "^7.3.8", - "@react-native-community/eslint-config": "^1.0.0", + "@react-native-community/eslint-config": "^1.1.0", "@types/es6-collections": "^0.5.29", "@types/es6-promise": "0.0.32", "@types/ora": "^3.2.0", @@ -48,18 +48,18 @@ "@types/react-native": "^0.62.10", "eslint": "5.1.0", "eslint-plugin-prettier": "2.6.2", - "flow-bin": "^0.113.0", + "flow-bin": "^0.120.1", "jscodeshift": "^0.6.2", "just-scripts": "^0.36.1", "prettier": "1.17.0", - "react": "16.11.0", + "react": "16.13.0", "react-native-windows-codegen": "0.0.5", "react-native-platform-override": "^0.0.1", - "react-native": "0.62.2", + "react-native": "0.0.0-56cf99a96", "typescript": "^3.8.3" }, "peerDependencies": { - "react": "16.11.0", + "react": "16.13.0", "react-native": "^0.62.0-0" }, "beachball": { diff --git a/yarn.lock b/yarn.lock index 30bfe724714..0587b2844f5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -404,14 +404,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz#0b85a3b4bc7cdf4cc4b8bf236335b907ca22e7c7" - integrity sha512-VyN4QANJkRW6lDBmENzRszvZf3/4AXaj9YR7GwrWeeN9tEBPuXbmDYVU9bYBN0D70zCWVwUy0HWq2553VCb6Hw== +"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.2.0", "@babel/plugin-syntax-jsx@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.3.tgz#521b06c83c40480f1e58b4fd33b92eceb1d6ea94" + integrity sha512-WxdW9xyLgBdefoo0Ynn3MRSkhe5tFVxxKNVdnZSh318WrG2e2jH+E9wd/++JsqcLJZPfz87njQJ8j2Upjm0M0A== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": +"@babel/plugin-syntax-nullish-coalescing-operator@^7.0.0", "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== @@ -439,7 +439,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-optional-chaining@^7.8.0": +"@babel/plugin-syntax-optional-chaining@^7.0.0", "@babel/plugin-syntax-optional-chaining@^7.8.0": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== @@ -667,6 +667,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" +"@babel/plugin-transform-react-jsx-self@^7.0.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.9.0.tgz#f4f26a325820205239bb915bad8e06fcadabb49b" + integrity sha512-K2ObbWPKT7KUTAoyjCsFilOkEgMvFG+y0FqOl6Lezd0/13kMkkjHskVsZvblRPj1PHA44PrToaZANrryppzTvQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-jsx" "^7.8.3" + "@babel/plugin-transform-react-jsx-source@^7.0.0": version "7.5.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.5.0.tgz#583b10c49cf057e237085bcbd8cc960bd83bd96b" @@ -745,7 +753,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-typescript@^7.0.0": +"@babel/plugin-transform-typescript@^7.0.0", "@babel/plugin-transform-typescript@^7.5.0", "@babel/plugin-transform-typescript@^7.9.0": version "7.9.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.9.4.tgz#4bb4dde4f10bbf2d787fce9707fb09b483e33359" integrity sha512-yeWeUkKx2auDbSxRe8MusAG+n4m9BFY/v+lPjmQDgOFX5qnySkUY5oXzkp6FwPdsYqnKay6lorXYdC0n3bZO7w== @@ -754,24 +762,6 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-typescript" "^7.8.3" -"@babel/plugin-transform-typescript@^7.5.0": - version "7.8.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.8.7.tgz#48bccff331108a7b3a28c3a4adc89e036dc3efda" - integrity sha512-7O0UsPQVNKqpHeHLpfvOG4uXmlw+MOxYvUv6Otc9uH5SYMIxvF6eBdjkWvC3f9G+VXe0RsNExyAQBeTRug/wqQ== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-typescript" "^7.8.3" - -"@babel/plugin-transform-typescript@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.9.0.tgz#8b52649c81cb7dee117f760952ab46675a258836" - integrity sha512-GRffJyCu16H3tEhbt9Q4buVFFBqrgS8FzTuhqSxlXNgmqD8aw2xmwtRwrvWXXlw7gHs664uqacsJymHJ9SUE/Q== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-typescript" "^7.8.3" - "@babel/plugin-transform-unicode-regex@^7.0.0", "@babel/plugin-transform-unicode-regex@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz#0cef36e3ba73e5c57273effb182f46b91a1ecaad" @@ -1208,16 +1198,6 @@ "@types/istanbul-reports" "^1.1.1" "@types/yargs" "^13.0.0" -"@jest/types@^25.2.6": - version "25.2.6" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.2.6.tgz#c12f44af9bed444438091e4b59e7ed05f8659cb6" - integrity sha512-myJTTV37bxK7+3NgKc4Y/DlQ5q92/NOwZsZ+Uch7OXdElxOg61QYc72fPYNAjlvbnJ2YvbXLamIsa9tj48BmyQ== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^1.1.1" - "@types/yargs" "^15.0.0" - chalk "^3.0.0" - "@jest/types@^25.5.0": version "25.5.0" resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.5.0.tgz#4d6a4793f7b9599fc3680877b856a97dbccf2a9d" @@ -2567,7 +2547,7 @@ dependencies: serve-static "^1.13.1" -"@react-native-community/cli-platform-android@^4.5.1": +"@react-native-community/cli-platform-android@^4.2.3": version "4.9.0" resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-4.9.0.tgz#12ba32875afca81202e1dbf0005f022fa9158352" integrity sha512-Tw2rQ84zXl5BGZT3rWmDXXUtkmHr73qa/qaP2WMemHTM28boXBdzkkVCnJMdCLZnCphOcpikYsBQALgqFKWOeQ== @@ -2583,7 +2563,7 @@ slash "^3.0.0" xmldoc "^1.1.2" -"@react-native-community/cli-platform-ios@^4.5.0": +"@react-native-community/cli-platform-ios@^4.2.3": version "4.9.0" resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-4.9.0.tgz#211ca9cd3976fbbb41406c0a846e445cc04c773c" integrity sha512-8BWe3XM1vKS2/BXXDL5gbD/5rA/u34Irs0Ublrx1JSGqv83g7T9V2DlBMR5xYRbhBWnWnGXVhsN1ckxlkXh8PA== @@ -2627,7 +2607,7 @@ resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-4.9.0.tgz#4c80b5f3789f2d3ee744e4fbb01ce839d8399ac3" integrity sha512-Sjun3LHuuuA6G9NIiyiqolNA7NP0CBGhbQA7twslJi3VaE1kj7OdBRCzpPtIYwK8eFWv3CEc/Qh+CoAw83Jp8A== -"@react-native-community/cli@^4.5.1": +"@react-native-community/cli@^4.2.4": version "4.9.0" resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-4.9.0.tgz#3525d831087e084861ca484569ebfb9b1a63faac" integrity sha512-Aai8Tan2nJWbtJIzEMe/BrbbGFAAdusgXZ5/NB1k5oFUS6iXvW18+59ssC8FR2qGPbOLBg87oDn4Pca2u4CTlQ== @@ -2667,7 +2647,7 @@ sudo-prompt "^9.0.0" wcwidth "^1.0.1" -"@react-native-community/eslint-config@^1.0.0": +"@react-native-community/eslint-config@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@react-native-community/eslint-config/-/eslint-config-1.1.0.tgz#2dacad06dd44d13e778510864473fc6091f080c0" integrity sha512-hwb1hC28BhkwLwnO6vDISV6XZbipw2RIEhBVBN+pE7AUG9HjFXxoksiiOSoYgox9C8g86VJwHnKpak/3NnVBkQ== @@ -3056,7 +3036,7 @@ yargs "^13.2.4" yarn-install "^1.0.0" -"@wdio/config@^5.12.1": +"@wdio/config@5.12.1", "@wdio/config@^5.12.1": version "5.12.1" resolved "https://registry.yarnpkg.com/@wdio/config/-/config-5.12.1.tgz#e7a1158302d49378de0b47d465dc441525590148" integrity sha512-8pZOA0yInNlztcixftf9U4Cc/GSC5b8X2VfWhdhlr0IWekJ5HJ4l6UsLaIRaxGjIHsRsv4Zt2/dc52Q4f3SVrw== @@ -3103,7 +3083,7 @@ async-exit-hook "^2.0.1" stream-buffers "^3.0.2" -"@wdio/logger@^5.12.1": +"@wdio/logger@5.12.1", "@wdio/logger@^5.12.1": version "5.12.1" resolved "https://registry.yarnpkg.com/@wdio/logger/-/logger-5.12.1.tgz#1f753b0fa0c1dae455c2a485553890661150fc01" integrity sha512-KUmdS0Scj0T5UQGtcWFiQRqc0NpFLQ/vSvRxlDzzkoeGwwPINqTRkLT103KL7Lyitlm9uLfaFfYc2KSzynTung== @@ -3113,7 +3093,7 @@ loglevel-plugin-prefix "^0.8.4" strip-ansi "^5.2.0" -"@wdio/repl@^5.12.1": +"@wdio/repl@5.12.1", "@wdio/repl@^5.12.1": version "5.12.1" resolved "https://registry.yarnpkg.com/@wdio/repl/-/repl-5.12.1.tgz#af5b556ac26de397ec6f83cfd649d9f973f369b9" integrity sha512-/f8bWdqoSOYiZ3MJyiAmXrf9ezi6KTA3wHrpltRYJHFsni+LWEKprAoEhPROkj7OijRuSQqWHLLLYg/BOjOClg== @@ -3127,7 +3107,7 @@ dependencies: fs-extra "^8.0.1" -"@wdio/runner@^5.12.1": +"@wdio/runner@5.12.1", "@wdio/runner@^5.12.1": version "5.12.1" resolved "https://registry.yarnpkg.com/@wdio/runner/-/runner-5.12.1.tgz#6c357a28cde9a06f3418e6c58d24e822d234b8cc" integrity sha512-ZgplqHlajHliarzPG2YqKiw5V+KYhgi3CkMMePo8vzQX37wRTQ0RuagwDQy9YQYVXFtsWSr8SFSV6GyQhdeYKw== @@ -3148,7 +3128,7 @@ "@wdio/logger" "^5.12.1" "@wdio/utils" "^5.12.1" -"@wdio/utils@^5.12.1": +"@wdio/utils@5.12.1", "@wdio/utils@^5.12.1": version "5.12.1" resolved "https://registry.yarnpkg.com/@wdio/utils/-/utils-5.12.1.tgz#077602989a0060198ea7ec0a13c3b69c76221115" integrity sha512-LrUPEdINyWHrPYY3mXfsrEzEtgB+xXvIKPj6y9P3sVk90cw6FUHHbkZOiMiBkcPaCmIyf8bFwQCiLHxIQzhHiQ== @@ -4184,7 +4164,7 @@ art@^0.10.0: resolved "https://registry.yarnpkg.com/art/-/art-0.10.3.tgz#b01d84a968ccce6208df55a733838c96caeeaea2" integrity sha512-HXwbdofRTiJT6qZX/FnchtldzJjS3vkLJxQilc3Xj+ma2MXjY4UAyQ0ls1XZYVnDvVIBiFZbC6QsvtW86TD6tQ== -asap@^2.0.0, asap@~2.0.3: +asap@^2.0.0, asap@~2.0.3, asap@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= @@ -4238,7 +4218,7 @@ async-exit-hook@^2.0.1: resolved "https://registry.yarnpkg.com/async-exit-hook/-/async-exit-hook-2.0.1.tgz#8bd8b024b0ec9b1c01cccb9af9db29bd717dfaf3" integrity sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw== -async-limiter@^1.0.0, async-limiter@~1.0.0: +async-limiter@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== @@ -4384,40 +4364,7 @@ babel-plugin-syntax-trailing-function-commas@^7.0.0-beta.0: resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz#aa213c1435e2bffeb6fca842287ef534ad05d5cf" integrity sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ== -babel-preset-fbjs@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/babel-preset-fbjs/-/babel-preset-fbjs-3.2.0.tgz#c0e6347d3e0379ed84b3c2434d3467567aa05297" - integrity sha512-5Jo+JeWiVz2wHUUyAlvb/sSYnXNig9r+HqGAOSfh5Fzxp7SnAaR/tEGRJ1ZX7C77kfk82658w6R5Z+uPATTD9g== - dependencies: - "@babel/plugin-proposal-class-properties" "^7.0.0" - "@babel/plugin-proposal-object-rest-spread" "^7.0.0" - "@babel/plugin-syntax-class-properties" "^7.0.0" - "@babel/plugin-syntax-flow" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.0.0" - "@babel/plugin-syntax-object-rest-spread" "^7.0.0" - "@babel/plugin-transform-arrow-functions" "^7.0.0" - "@babel/plugin-transform-block-scoped-functions" "^7.0.0" - "@babel/plugin-transform-block-scoping" "^7.0.0" - "@babel/plugin-transform-classes" "^7.0.0" - "@babel/plugin-transform-computed-properties" "^7.0.0" - "@babel/plugin-transform-destructuring" "^7.0.0" - "@babel/plugin-transform-flow-strip-types" "^7.0.0" - "@babel/plugin-transform-for-of" "^7.0.0" - "@babel/plugin-transform-function-name" "^7.0.0" - "@babel/plugin-transform-literals" "^7.0.0" - "@babel/plugin-transform-member-expression-literals" "^7.0.0" - "@babel/plugin-transform-modules-commonjs" "^7.0.0" - "@babel/plugin-transform-object-super" "^7.0.0" - "@babel/plugin-transform-parameters" "^7.0.0" - "@babel/plugin-transform-property-literals" "^7.0.0" - "@babel/plugin-transform-react-display-name" "^7.0.0" - "@babel/plugin-transform-react-jsx" "^7.0.0" - "@babel/plugin-transform-shorthand-properties" "^7.0.0" - "@babel/plugin-transform-spread" "^7.0.0" - "@babel/plugin-transform-template-literals" "^7.0.0" - babel-plugin-syntax-trailing-function-commas "^7.0.0-beta.0" - -babel-preset-fbjs@^3.3.0: +babel-preset-fbjs@^3.2.0, babel-preset-fbjs@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/babel-preset-fbjs/-/babel-preset-fbjs-3.3.0.tgz#a6024764ea86c8e06a22d794ca8b69534d263541" integrity sha512-7QTLTCd2gwB2qGoi5epSULMHugSVgpcVt5YAeiFO9ABLrutDQzKfGwzxgZHLpugq8qMdg/DhRZDZ5CLKxBkEbw== @@ -4940,10 +4887,10 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -chalk@*, chalk@^3, chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== +chalk@*, chalk@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.0.0.tgz#6e98081ed2d17faab615eb52ac66ec1fe6209e72" + integrity sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A== dependencies: ansi-styles "^4.1.0" supports-color "^7.1.0" @@ -4968,10 +4915,10 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.3 escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.0.0.tgz#6e98081ed2d17faab615eb52ac66ec1fe6209e72" - integrity sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A== +chalk@^3, chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== dependencies: ansi-styles "^4.1.0" supports-color "^7.1.0" @@ -5318,12 +5265,7 @@ compare-func@^1.3.1: array-ify "^1.0.0" dot-prop "^3.0.0" -compare-versions@^3.4.0: - version "3.5.1" - resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.5.1.tgz#26e1f5cf0d48a77eced5046b9f67b6b61075a393" - integrity sha512-9fGPIB7C6AyM18CJJBHt5EnCZDG3oiTJYy0NjfIAGjKpzv0tkxWko7TNQHF5ymqm7IH03tqmeuBxtvD+Izh6mg== - -compare-versions@^3.6.0: +compare-versions@^3.4.0, compare-versions@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62" integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA== @@ -6187,7 +6129,7 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@~0.10.14: +es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50: version "0.10.50" resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.50.tgz#6d0e23a0abdb27018e5ac4fd09b412bc5517a778" integrity sha512-KMzZTPBkeQV/JcSQhI5/z6d9VWJ3EnQ194USTUwIYZ2ZbpN8+SGXQKt1h68EX44+qt+Fzr8DO17vnxrw7c3agw== @@ -6234,7 +6176,7 @@ es6-promisify@^6.0.0: resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-6.0.2.tgz#525c23725b8510f5f1f2feb5a1fbad93a93e29b4" integrity sha512-eO6vFm0JvqGzjWIQA6QVKjxpmELfhWbDUWHm1rPfIbn55mhKPiAa5xpLmQWJrNa629ZIeQ8ZvMAi13kvrjK6Mg== -es6-symbol@^3: +es6-symbol@^3, es6-symbol@^3.1.1, es6-symbol@~3.1.1: version "3.1.3" resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== @@ -6242,14 +6184,6 @@ es6-symbol@^3: d "^1.0.1" ext "^1.1.2" -es6-symbol@^3.1.1, es6-symbol@~3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" - integrity sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc= - dependencies: - d "1" - es5-ext "~0.10.14" - es6-weak-map@^2.0.1: version "2.0.3" resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53" @@ -6341,10 +6275,10 @@ eslint-plugin-react-native@3.8.1: dependencies: eslint-plugin-react-native-globals "^0.1.1" -eslint-plugin-react@7.19.0: - version "7.19.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.19.0.tgz#6d08f9673628aa69c5559d33489e855d83551666" - integrity sha512-SPT8j72CGuAP+JFbT0sJHOB80TX/pu44gQ4vXH/cq+hQTiY2PuZ6IHkqXJV6x1b28GDdo1lbInjKUrrdUf0LOQ== +eslint-plugin-react@7.19.0, eslint-plugin-react@^7.14.1: + version "7.20.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.20.0.tgz#f98712f0a5e57dfd3e5542ef0604b8739cd47be3" + integrity sha512-rqe1abd0vxMjmbPngo4NaYxTcR3Y4Hrmc/jg4T+sYz63yqlmJRknpEQfmWY+eDWPuMmix6iUIK+mv0zExjeLgA== dependencies: array-includes "^3.1.1" doctrine "^2.1.0" @@ -6355,17 +6289,9 @@ eslint-plugin-react@7.19.0: object.values "^1.1.1" prop-types "^15.7.2" resolve "^1.15.1" - semver "^6.3.0" string.prototype.matchall "^4.0.2" xregexp "^4.3.0" -eslint-plugin-relay@1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-relay/-/eslint-plugin-relay-1.4.1.tgz#5af2ac13e24bd01ad17b6a4014204918d65021cd" - integrity sha512-yb+p+4AxZTi2gXN7cZRfXMBFlRa5j6TtiVeq3yHXyy+tlgYNpxi/dDrP1+tcUTNP9vdaJovnfGZ5jp6kMiH9eg== - dependencies: - graphql "^14.0.0" - eslint-scope@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" @@ -6977,10 +6903,10 @@ flat-cache@^1.2.1: rimraf "~2.6.2" write "^0.2.1" -flow-bin@^0.113.0: - version "0.113.0" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.113.0.tgz#6457d250dbc6f71ca51e75f00a96d23cde5d987a" - integrity sha512-76uE2LGNe50wm+Jup8Np4FBcMbyy5V2iE+K25PPIYLaEMGHrL1jnQfP9L0hTzA5oh2ZJlexRLMlaPqIYIKH9nw== +flow-bin@^0.120.1: + version "0.120.1" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.120.1.tgz#ab051d6df71829b70a26a2c90bb81f9d43797cae" + integrity sha512-KgE+d+rKzdXzhweYVJty1QIOOZTTbtnXZf+4SLnmArLvmdfeLreQOZpeLbtq5h79m7HhDzX/HkUkoyu/fmSC2A== flow-parser@0.*: version "0.113.0" @@ -7351,14 +7277,7 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-parent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.0.0.tgz#1dc99f0f39b006d3e92c2c284068382f0c20e954" - integrity sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg== - dependencies: - is-glob "^4.0.1" - -glob-parent@^5.1.0: +glob-parent@^5.0.0, glob-parent@^5.1.0: version "5.1.1" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== @@ -7451,13 +7370,6 @@ grapheme-splitter@^1.0.2: resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== -graphql@^14.0.0: - version "14.6.0" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-14.6.0.tgz#57822297111e874ea12f5cd4419616930cd83e49" - integrity sha512-VKzfvHEKybTKjQVpTFrA5yUq2S9ihcZvfJAtsDBBCuV6wauPu1xl/f9ehgVf0FcEJJs4vz6ysb/ZMkGigQZseg== - dependencies: - iterall "^1.2.2" - growly@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" @@ -8293,11 +8205,6 @@ istanbul-reports@^2.2.6: dependencies: html-escaper "^2.0.0" -iterall@^1.2.2: - version "1.3.0" - resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.3.0.tgz#afcb08492e2915cbd8a0884eb93a8c94d0d72fea" - integrity sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg== - jasmine-core@~3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-3.4.0.tgz#2a74618e966026530c3518f03e9f845d26473ce3" @@ -9638,12 +9545,7 @@ merge-stream@^2.0.0: resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -merge2@^1.2.3: - version "1.2.4" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.4.tgz#c9269589e6885a60cf80605d9522d4b67ca646e3" - integrity sha512-FYE8xI+6pjFOhokZu0We3S5NKCirLbCzSh2Usf3qEyr4X8U+0jNg9P8RZ4qz+V2UoECLVwSyzU3LxXBaLGtD3A== - -merge2@^1.3.0: +merge2@^1.2.3, merge2@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81" integrity sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw== @@ -9681,6 +9583,20 @@ metro-babel-register@0.58.0: core-js "^2.2.2" escape-string-regexp "^1.0.5" +metro-babel-register@0.59.0: + version "0.59.0" + resolved "https://registry.yarnpkg.com/metro-babel-register/-/metro-babel-register-0.59.0.tgz#2bcff65641b36794cf083ba732fbc46cf870fb43" + integrity sha512-JtWc29erdsXO/V3loenXKw+aHUXgj7lt0QPaZKPpctLLy8kcEpI/8pfXXgVK9weXICCpCnYtYncIosAyzh0xjg== + dependencies: + "@babel/core" "^7.0.0" + "@babel/plugin-proposal-class-properties" "^7.0.0" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.0.0" + "@babel/plugin-proposal-optional-chaining" "^7.0.0" + "@babel/plugin-transform-flow-strip-types" "^7.0.0" + "@babel/plugin-transform-modules-commonjs" "^7.0.0" + "@babel/register" "^7.0.0" + escape-string-regexp "^1.0.5" + metro-babel-transformer@0.58.0: version "0.58.0" resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.58.0.tgz#317c83b863cceb0573943815f1711fbcbe69b106" @@ -9689,6 +9605,14 @@ metro-babel-transformer@0.58.0: "@babel/core" "^7.0.0" metro-source-map "0.58.0" +metro-babel-transformer@0.59.0: + version "0.59.0" + resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.59.0.tgz#dda99c75d831b00142c42c020c51c103b29f199d" + integrity sha512-fdZJl8rs54GVFXokxRdD7ZrQ1TJjxWzOi/xSP25VR3E8tbm3nBZqS+/ylu643qSr/IueABR+jrlqAyACwGEf6w== + dependencies: + "@babel/core" "^7.0.0" + metro-source-map "0.59.0" + metro-cache@0.58.0: version "0.58.0" resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.58.0.tgz#630ea0a4626dfb9591c71fdb85dce14b5e9a04ec" @@ -9780,6 +9704,50 @@ metro-react-native-babel-preset@0.58.0: "@babel/template" "^7.0.0" react-refresh "^0.4.0" +metro-react-native-babel-preset@0.59.0: + version "0.59.0" + resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.59.0.tgz#20e020bc6ac9849e1477de1333d303ed42aba225" + integrity sha512-BoO6ncPfceIDReIH8pQ5tQptcGo5yRWQXJGVXfANbiKLq4tfgdZB1C1e2rMUJ6iypmeJU9dzl+EhPmIFKtgREg== + dependencies: + "@babel/plugin-proposal-class-properties" "^7.0.0" + "@babel/plugin-proposal-export-default-from" "^7.0.0" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.0.0" + "@babel/plugin-proposal-object-rest-spread" "^7.0.0" + "@babel/plugin-proposal-optional-catch-binding" "^7.0.0" + "@babel/plugin-proposal-optional-chaining" "^7.0.0" + "@babel/plugin-syntax-dynamic-import" "^7.0.0" + "@babel/plugin-syntax-export-default-from" "^7.0.0" + "@babel/plugin-syntax-flow" "^7.2.0" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.0.0" + "@babel/plugin-syntax-optional-chaining" "^7.0.0" + "@babel/plugin-transform-arrow-functions" "^7.0.0" + "@babel/plugin-transform-block-scoping" "^7.0.0" + "@babel/plugin-transform-classes" "^7.0.0" + "@babel/plugin-transform-computed-properties" "^7.0.0" + "@babel/plugin-transform-destructuring" "^7.0.0" + "@babel/plugin-transform-exponentiation-operator" "^7.0.0" + "@babel/plugin-transform-flow-strip-types" "^7.0.0" + "@babel/plugin-transform-for-of" "^7.0.0" + "@babel/plugin-transform-function-name" "^7.0.0" + "@babel/plugin-transform-literals" "^7.0.0" + "@babel/plugin-transform-modules-commonjs" "^7.0.0" + "@babel/plugin-transform-object-assign" "^7.0.0" + "@babel/plugin-transform-parameters" "^7.0.0" + "@babel/plugin-transform-react-display-name" "^7.0.0" + "@babel/plugin-transform-react-jsx" "^7.0.0" + "@babel/plugin-transform-react-jsx-self" "^7.0.0" + "@babel/plugin-transform-react-jsx-source" "^7.0.0" + "@babel/plugin-transform-regenerator" "^7.0.0" + "@babel/plugin-transform-runtime" "^7.0.0" + "@babel/plugin-transform-shorthand-properties" "^7.0.0" + "@babel/plugin-transform-spread" "^7.0.0" + "@babel/plugin-transform-sticky-regex" "^7.0.0" + "@babel/plugin-transform-template-literals" "^7.0.0" + "@babel/plugin-transform-typescript" "^7.5.0" + "@babel/plugin-transform-unicode-regex" "^7.0.0" + "@babel/template" "^7.0.0" + react-refresh "^0.4.0" + metro-react-native-babel-preset@^0.56.0: version "0.56.4" resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.56.4.tgz#dcedc64b7ff5c0734839458e70eb0ebef6d063a8" @@ -9821,7 +9789,18 @@ metro-react-native-babel-preset@^0.56.0: "@babel/template" "^7.0.0" react-refresh "^0.4.0" -metro-react-native-babel-transformer@0.58.0, metro-react-native-babel-transformer@^0.58.0: +metro-react-native-babel-transformer@0.59.0: + version "0.59.0" + resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.59.0.tgz#9b3dfd6ad35c6ef37fc4ce4d20a2eb67fabbb4be" + integrity sha512-1O3wrnMq4NcPQ1asEcl9lRDn/t+F1Oef6S9WaYVIKEhg9m/EQRGVrrTVP+R6B5Eeaj3+zNKbzM8Dx/NWy1hUbQ== + dependencies: + "@babel/core" "^7.0.0" + babel-preset-fbjs "^3.3.0" + metro-babel-transformer "0.59.0" + metro-react-native-babel-preset "0.59.0" + metro-source-map "0.59.0" + +metro-react-native-babel-transformer@^0.58.0: version "0.58.0" resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.58.0.tgz#5da0e5a1b83c01d11626905fa59f34fda53a21a5" integrity sha512-3A73+cRq1eUPQ8g+hPNGgMUMCGmtQjwqHfoG1DwinAoJ/kr4WOXWWbGZo0xHJNBe/zdHGl0uHcDCp2knPglTdQ== @@ -9852,6 +9831,19 @@ metro-source-map@0.58.0: source-map "^0.5.6" vlq "^1.0.0" +metro-source-map@0.59.0: + version "0.59.0" + resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.59.0.tgz#e9beb9fc51bfb4e060f95820cf1508fc122d23f7" + integrity sha512-0w5CmCM+ybSqXIjqU4RiK40t4bvANL6lafabQ2GP2XD3vSwkLY+StWzCtsb4mPuyi9R/SgoLBel+ZOXHXAH0eQ== + dependencies: + "@babel/traverse" "^7.0.0" + "@babel/types" "^7.0.0" + invariant "^2.2.4" + metro-symbolicate "0.59.0" + ob1 "0.59.0" + source-map "^0.5.6" + vlq "^1.0.0" + metro-symbolicate@0.58.0: version "0.58.0" resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.58.0.tgz#ba9fd52549c41fc1b656adaad7c8875726dd5abe" @@ -9863,6 +9855,17 @@ metro-symbolicate@0.58.0: through2 "^2.0.1" vlq "^1.0.0" +metro-symbolicate@0.59.0: + version "0.59.0" + resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.59.0.tgz#fc7f93957a42b02c2bfc57ed1e8f393f5f636a54" + integrity sha512-asLaF2A7rndrToGFIknL13aiohwPJ95RKHf0NM3hP/nipiLDoMzXT6ZnQvBqDxkUKyP+51AI75DMtb+Wcyw4Bw== + dependencies: + invariant "^2.2.4" + metro-source-map "0.59.0" + source-map "^0.5.6" + through2 "^2.0.1" + vlq "^1.0.0" + metro@0.58.0, metro@^0.58.0: version "0.58.0" resolved "https://registry.yarnpkg.com/metro/-/metro-0.58.0.tgz#c037318c112f80dc96199780c8b401ab72cfd142" @@ -10556,6 +10559,11 @@ ob1@0.58.0: resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.58.0.tgz#484a1e9a63a8b79d9ea6f3a83b2a42110faac973" integrity sha512-uZP44cbowAfHafP1k4skpWItk5iHCoRevMfrnUvYCfyNNPPJd3rfDCyj0exklWi2gDXvjlj2ObsfiqP/bs/J7Q== +ob1@0.59.0: + version "0.59.0" + resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.59.0.tgz#ee103619ef5cb697f2866e3577da6f0ecd565a36" + integrity sha512-opXMTxyWJ9m68ZglCxwo0OPRESIC/iGmKFPXEXzMZqsVIrgoRXOHmoMDkQzz4y3irVjbyPJRAh5pI9fd0MJTFQ== + object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" @@ -11126,12 +11134,7 @@ phin@^2.9.1: resolved "https://registry.yarnpkg.com/phin/-/phin-2.9.3.tgz#f9b6ac10a035636fb65dfc576aaaa17b8743125c" integrity sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA== -picomatch@^2.0.4: - version "2.0.7" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.0.7.tgz#514169d8c7cd0bdbeecc8a2609e34a7163de69f6" - integrity sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA== - -picomatch@^2.0.5, picomatch@^2.2.1: +picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1: version "2.2.2" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== @@ -11313,7 +11316,7 @@ pretty-format@^24.7.0, pretty-format@^24.9.0: ansi-styles "^3.2.0" react-is "^16.8.4" -pretty-format@^25.1.0: +pretty-format@^25.1.0, pretty-format@^25.2.0: version "25.5.0" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.5.0.tgz#7873c1d774f682c34b8d48b6743a2bf2ac55791a" integrity sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ== @@ -11323,16 +11326,6 @@ pretty-format@^25.1.0: ansi-styles "^4.0.0" react-is "^16.12.0" -pretty-format@^25.2.0: - version "25.2.6" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.2.6.tgz#542a1c418d019bbf1cca2e3620443bc1323cb8d7" - integrity sha512-DEiWxLBaCHneffrIT4B+TpMvkV9RNvvJrd3lY9ew1CEQobDzEXmYT1mg0hJhljZty7kCc10z13ohOFAE8jrUDg== - dependencies: - "@jest/types" "^25.2.6" - ansi-regex "^5.0.0" - ansi-styles "^4.0.0" - react-is "^16.12.0" - private@^0.1.8, private@~0.1.5: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" @@ -11380,6 +11373,13 @@ promise@^7.1.1: dependencies: asap "~2.0.3" +promise@^8.0.3: + version "8.1.0" + resolved "https://registry.yarnpkg.com/promise/-/promise-8.1.0.tgz#697c25c3dfe7435dd79fcd58c38a135888eaf05e" + integrity sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q== + dependencies: + asap "~2.0.6" + prompt-sync@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/prompt-sync/-/prompt-sync-4.2.0.tgz#0198f73c5b70e3b03e4b9033a50540a7c9a1d7f4" @@ -11564,12 +11564,7 @@ react-devtools-core@^4.0.6: shell-quote "^1.6.1" ws "^7" -react-is@^16.12.0: - version "16.13.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.0.tgz#0f37c3613c34fe6b37cd7f763a0d6293ab15c527" - integrity sha512-GFMtL0vHkiBv9HluwNZTggSn/sCyEt9n02aM0dSAjGGyqyNlAyftYm4phPxdvCigG15JreC5biwxCgTAJZ7yAA== - -react-is@^16.8.1, react-is@^16.8.4, react-is@^16.9.0: +react-is@^16.12.0, react-is@^16.8.1, react-is@^16.8.4, react-is@^16.9.0: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== @@ -11583,39 +11578,35 @@ react-native-tscodegen@0.62.1: nullthrows "1.1.1" typescript "^3.5.3" -react-native@0.62.2: - version "0.62.2" - resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.62.2.tgz#d831e11a3178705449142df19a70ac2ca16bad10" - integrity sha512-gADZZ3jcm2WFTjh8CCBCbl5wRSbdxqZGd+8UpNwLQFgrkp/uHorwAhLNqcd4+fHmADgPBltNL0uR1Vhv47zcOw== +react-native@0.0.0-56cf99a96: + version "0.0.0-56cf99a96" + resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.0.0-56cf99a96.tgz#db3dab3517aec55fa515bf76aca5d3cb67109b2e" + integrity sha512-134alcdj8UzQEbnv8vKv+3MsW1KSoV6vxhSkArXGjjKes7LeZW4IhnakKH56PpLAAqesoxiO+C4XPRZkE5rHMg== dependencies: "@babel/runtime" "^7.0.0" - "@react-native-community/cli" "^4.5.1" - "@react-native-community/cli-platform-android" "^4.5.1" - "@react-native-community/cli-platform-ios" "^4.5.0" + "@react-native-community/cli" "^4.2.4" + "@react-native-community/cli-platform-android" "^4.2.3" + "@react-native-community/cli-platform-ios" "^4.2.3" abort-controller "^3.0.0" anser "^1.4.9" base64-js "^1.1.2" - connect "^3.6.5" - create-react-class "^15.6.3" - escape-string-regexp "^1.0.5" - eslint-plugin-relay "1.4.1" event-target-shim "^5.0.1" fbjs "^1.0.0" fbjs-scripts "^1.1.0" hermes-engine "~0.4.0" invariant "^2.2.4" jsc-android "^245459.0.0" - metro-babel-register "0.58.0" - metro-react-native-babel-transformer "0.58.0" - metro-source-map "0.58.0" + metro-babel-register "0.59.0" + metro-react-native-babel-transformer "0.59.0" + metro-source-map "0.59.0" nullthrows "^1.1.1" - pretty-format "^24.7.0" - promise "^7.1.1" + pretty-format "^24.9.0" + promise "^8.0.3" prop-types "^15.7.2" react-devtools-core "^4.0.6" react-refresh "^0.4.0" regenerator-runtime "^0.13.2" - scheduler "0.17.0" + scheduler "0.19.0" stacktrace-parser "^0.1.3" use-subscription "^1.0.0" whatwg-fetch "^3.0.0" @@ -11635,10 +11626,10 @@ react-test-renderer@16.9.0: react-is "^16.9.0" scheduler "^0.15.0" -react@16.11.0: - version "16.11.0" - resolved "https://registry.yarnpkg.com/react/-/react-16.11.0.tgz#d294545fe62299ccee83363599bf904e4a07fdbb" - integrity sha512-M5Y8yITaLmU0ynd0r1Yvfq98Rmll6q8AxaEe88c8e7LxO8fZ2cNgmFt0aGAS9wzf1Ao32NKXtCl+/tVVtkxq6g== +react@16.13.0: + version "16.13.0" + resolved "https://registry.yarnpkg.com/react/-/react-16.13.0.tgz#d046eabcdf64e457bbeed1e792e235e1b9934cf7" + integrity sha512-TSavZz2iSLkq5/oiE7gnFzmURKZMltmi193rm5HEoUDAXpzT9Kzw6oNZnGoai/4+fUnm7FqS5dwgUL34TujcWQ== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" @@ -12128,14 +12119,7 @@ rsvp@^4.8.4: resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== -run-async@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" - integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA= - dependencies: - is-promise "^2.1.0" - -run-async@^2.4.0: +run-async@^2.2.0, run-async@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.0.tgz#e59054a5b86876cfae07f431d18cbaddc594f1e8" integrity sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg== @@ -12178,14 +12162,7 @@ rxjs@^5.4.3, rxjs@^5.5.2: dependencies: symbol-observable "1.0.1" -rxjs@^6.4.0: - version "6.5.2" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.2.tgz#2e35ce815cd46d84d02a209fb4e5921e051dbec7" - integrity sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg== - dependencies: - tslib "^1.9.0" - -rxjs@^6.5.3: +rxjs@^6.4.0, rxjs@^6.5.3: version "6.5.5" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.5.tgz#c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec" integrity sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ== @@ -12259,10 +12236,10 @@ scheduler@0.14.0: loose-envify "^1.1.0" object-assign "^4.1.1" -scheduler@0.17.0: - version "0.17.0" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.17.0.tgz#7c9c673e4ec781fac853927916d1c426b6f3ddfe" - integrity sha512-7rro8Io3tnCPuY4la/NuI5F2yfESpnfZyT6TtkXnSWVkcu0BCDJ+8gk5ozUaFaxpIyNuWAPXrH0yFcSi28fnDA== +scheduler@0.19.0: + version "0.19.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.0.tgz#a715d56302de403df742f4a9be11975b32f5698d" + integrity sha512-xowbVaTPe9r7y7RUejcK73/j8tt2jfiyTednOvHbA8JoClvMYCp+r8QegLwK/n8zWQAtZb1fFnER4XLBZXrCxA== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" @@ -14066,18 +14043,11 @@ ws@^5.2.0: dependencies: async-limiter "~1.0.0" -ws@^7: +ws@^7, ws@^7.0.0: version "7.2.3" resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.3.tgz#a5411e1fb04d5ed0efee76d26d5c46d830c39b46" integrity sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ== -ws@^7.0.0: - version "7.1.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.1.2.tgz#c672d1629de8bb27a9699eb599be47aeeedd8f73" - integrity sha512-gftXq3XI81cJCgkUiAVixA0raD9IVmXqsylCrjRygw4+UOOGzPoxnQ6r/CnVL9i+mDncJo94tSkyrtuuQVBmrg== - dependencies: - async-limiter "^1.0.0" - xcode@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/xcode/-/xcode-2.0.0.tgz#134f1f94c26fbfe8a9aaa9724bfb2772419da1a2" From 084ea6476b06430a4a406f3461a44f9c59873219 Mon Sep 17 00:00:00 2001 From: Nick Gerleman Date: Wed, 27 May 2020 13:40:42 -0700 Subject: [PATCH 05/50] Change files --- ...ive-win32-2020-05-27-13-40-42-nightly-integration.json | 8 ++++++++ ...e-windows-2020-05-27-13-40-42-nightly-integration.json | 8 ++++++++ ...s-codegen-2020-05-27-13-40-42-nightly-integration.json | 8 ++++++++ ...dows-init-2020-05-27-13-40-42-nightly-integration.json | 8 ++++++++ 4 files changed, 32 insertions(+) create mode 100644 change/@office-iss-react-native-win32-2020-05-27-13-40-42-nightly-integration.json create mode 100644 change/react-native-windows-2020-05-27-13-40-42-nightly-integration.json create mode 100644 change/react-native-windows-codegen-2020-05-27-13-40-42-nightly-integration.json create mode 100644 change/react-native-windows-init-2020-05-27-13-40-42-nightly-integration.json diff --git a/change/@office-iss-react-native-win32-2020-05-27-13-40-42-nightly-integration.json b/change/@office-iss-react-native-win32-2020-05-27-13-40-42-nightly-integration.json new file mode 100644 index 00000000000..f3fe1476a91 --- /dev/null +++ b/change/@office-iss-react-native-win32-2020-05-27-13-40-42-nightly-integration.json @@ -0,0 +1,8 @@ +{ + "type": "prerelease", + "comment": "Upgrade React Native to 3/22 Nightly Build", + "packageName": "@office-iss/react-native-win32", + "email": "ngerlem@microsoft.com", + "dependentChangeType": "patch", + "date": "2020-05-27T20:40:04.020Z" +} diff --git a/change/react-native-windows-2020-05-27-13-40-42-nightly-integration.json b/change/react-native-windows-2020-05-27-13-40-42-nightly-integration.json new file mode 100644 index 00000000000..966c20b9962 --- /dev/null +++ b/change/react-native-windows-2020-05-27-13-40-42-nightly-integration.json @@ -0,0 +1,8 @@ +{ + "type": "prerelease", + "comment": "Upgrade React Native to 3/22 Nightly Build", + "packageName": "react-native-windows", + "email": "ngerlem@microsoft.com", + "dependentChangeType": "patch", + "date": "2020-05-27T20:40:42.294Z" +} diff --git a/change/react-native-windows-codegen-2020-05-27-13-40-42-nightly-integration.json b/change/react-native-windows-codegen-2020-05-27-13-40-42-nightly-integration.json new file mode 100644 index 00000000000..1e6b6d01780 --- /dev/null +++ b/change/react-native-windows-codegen-2020-05-27-13-40-42-nightly-integration.json @@ -0,0 +1,8 @@ +{ + "type": "patch", + "comment": "Upgrade React Native to 3/22 Nightly Build", + "packageName": "react-native-windows-codegen", + "email": "ngerlem@microsoft.com", + "dependentChangeType": "patch", + "date": "2020-05-27T20:40:29.506Z" +} diff --git a/change/react-native-windows-init-2020-05-27-13-40-42-nightly-integration.json b/change/react-native-windows-init-2020-05-27-13-40-42-nightly-integration.json new file mode 100644 index 00000000000..510cf8a497f --- /dev/null +++ b/change/react-native-windows-init-2020-05-27-13-40-42-nightly-integration.json @@ -0,0 +1,8 @@ +{ + "type": "patch", + "comment": "Upgrade React Native to 3/22 Nightly Build", + "packageName": "react-native-windows-init", + "email": "ngerlem@microsoft.com", + "dependentChangeType": "patch", + "date": "2020-05-27T20:40:39.226Z" +} From 1317b41dabc6476eb60930e67eb8670e06c911ad Mon Sep 17 00:00:00 2001 From: Nick Gerleman Date: Wed, 27 May 2020 13:45:04 -0700 Subject: [PATCH 06/50] New Specs --- .../codegen/NativeMyModuleSpec.g.h | 8 ++--- vnext/codegen/NativeDevLoadingViewSpec.g.h | 6 ++-- vnext/codegen/NativeDevSettingsSpec.g.h | 14 +++++++- vnext/codegen/NativeJSCHeapCaptureSpec.g.h | 33 +++++++++++++++++++ vnext/codegen/NativeJSDevSupportSpec.g.h | 6 ++-- 5 files changed, 56 insertions(+), 11 deletions(-) create mode 100644 vnext/codegen/NativeJSCHeapCaptureSpec.g.h diff --git a/packages/microsoft-reactnative-sampleapps/codegen/NativeMyModuleSpec.g.h b/packages/microsoft-reactnative-sampleapps/codegen/NativeMyModuleSpec.g.h index 48cfaaabad7..b879c85b0e5 100644 --- a/packages/microsoft-reactnative-sampleapps/codegen/NativeMyModuleSpec.g.h +++ b/packages/microsoft-reactnative-sampleapps/codegen/NativeMyModuleSpec.g.h @@ -19,10 +19,10 @@ struct MyModuleSpec : winrt::Microsoft::ReactNative::TurboModuleSpec { SyncMethod{1, L"getBool"}, SyncMethod{2, L"getNumber"}, SyncMethod{3, L"getString"}, - SyncMethod{4, L"getArray"}, - SyncMethod{5, L"getObject"}, - SyncMethod{6, L"getValue"}, - Method) noexcept>{7, L"getValueWithCallback"}, + SyncMethod{4, L"getArray"}, + SyncMethod{5, L"getObject"}, + SyncMethod{6, L"getValue"}, + Method) noexcept>{7, L"getValueWithCallback"}, Method) noexcept>{8, L"getValueWithPromise"}, }; diff --git a/vnext/codegen/NativeDevLoadingViewSpec.g.h b/vnext/codegen/NativeDevLoadingViewSpec.g.h index 2ad318c2ca5..ddf58021f16 100644 --- a/vnext/codegen/NativeDevLoadingViewSpec.g.h +++ b/vnext/codegen/NativeDevLoadingViewSpec.g.h @@ -15,7 +15,7 @@ namespace Microsoft::ReactNativeSpecs { struct DevLoadingViewSpec : winrt::Microsoft::ReactNative::TurboModuleSpec { static constexpr auto methods = std::tuple{ - Method{0, L"showMessage"}, + Method{0, L"showMessage"}, Method{1, L"hide"}, }; @@ -26,8 +26,8 @@ struct DevLoadingViewSpec : winrt::Microsoft::ReactNative::TurboModuleSpec { REACT_SHOW_METHOD_SPEC_ERRORS( 0, "showMessage", - " REACT_METHOD(showMessage) void showMessage(std::string message, React::JSValueObject && color, React::JSValueObject && backgroundColor) noexcept { /* implementation */ }}\n" - " REACT_METHOD(showMessage) static void showMessage(std::string message, React::JSValueObject && color, React::JSValueObject && backgroundColor) noexcept { /* implementation */ }}\n"); + " REACT_METHOD(showMessage) void showMessage(std::string message, double withColor, double withBackgroundColor) noexcept { /* implementation */ }}\n" + " REACT_METHOD(showMessage) static void showMessage(std::string message, double withColor, double withBackgroundColor) noexcept { /* implementation */ }}\n"); REACT_SHOW_METHOD_SPEC_ERRORS( 1, "hide", diff --git a/vnext/codegen/NativeDevSettingsSpec.g.h b/vnext/codegen/NativeDevSettingsSpec.g.h index 2f885a42053..00076793fa5 100644 --- a/vnext/codegen/NativeDevSettingsSpec.g.h +++ b/vnext/codegen/NativeDevSettingsSpec.g.h @@ -23,7 +23,9 @@ struct DevSettingsSpec : winrt::Microsoft::ReactNative::TurboModuleSpec { Method{5, L"setProfilingEnabled"}, Method{6, L"toggleElementInspector"}, Method{7, L"addMenuItem"}, - Method{8, L"setIsShakeToShowDevMenuEnabled"}, + Method{8, L"addListener"}, + Method{9, L"removeListeners"}, + Method{10, L"setIsShakeToShowDevMenuEnabled"}, }; template @@ -72,6 +74,16 @@ struct DevSettingsSpec : winrt::Microsoft::ReactNative::TurboModuleSpec { " REACT_METHOD(addMenuItem) static void addMenuItem(std::string title) noexcept { /* implementation */ }}\n"); REACT_SHOW_METHOD_SPEC_ERRORS( 8, + "addListener", + " REACT_METHOD(addListener) void addListener(std::string eventName) noexcept { /* implementation */ }}\n" + " REACT_METHOD(addListener) static void addListener(std::string eventName) noexcept { /* implementation */ }}\n"); + REACT_SHOW_METHOD_SPEC_ERRORS( + 9, + "removeListeners", + " REACT_METHOD(removeListeners) void removeListeners(double count) noexcept { /* implementation */ }}\n" + " REACT_METHOD(removeListeners) static void removeListeners(double count) noexcept { /* implementation */ }}\n"); + REACT_SHOW_METHOD_SPEC_ERRORS( + 10, "setIsShakeToShowDevMenuEnabled", " REACT_METHOD(setIsShakeToShowDevMenuEnabled) void setIsShakeToShowDevMenuEnabled(bool enabled) noexcept { /* implementation */ }}\n" " REACT_METHOD(setIsShakeToShowDevMenuEnabled) static void setIsShakeToShowDevMenuEnabled(bool enabled) noexcept { /* implementation */ }}\n"); diff --git a/vnext/codegen/NativeJSCHeapCaptureSpec.g.h b/vnext/codegen/NativeJSCHeapCaptureSpec.g.h new file mode 100644 index 00000000000..438cd5d2fd1 --- /dev/null +++ b/vnext/codegen/NativeJSCHeapCaptureSpec.g.h @@ -0,0 +1,33 @@ + +/* + * This file is auto-generated from a NativeModule spec file in js. + * + * This is a C++ Spec class that should be used with MakeTurboModuleProvider to register native modules + * in a way that also verifies at compile time that the native module matches the interface required + * by the TurboModule JS spec. + */ +#pragma once + +#include "NativeModules.h" +#include + +namespace Microsoft::ReactNativeSpecs { + +struct JSCHeapCaptureSpec : winrt::Microsoft::ReactNative::TurboModuleSpec { + static constexpr auto methods = std::tuple{ + Method{0, L"captureComplete"}, + }; + + template + static constexpr void ValidateModule() noexcept { + constexpr auto methodCheckResults = CheckMethods(); + + REACT_SHOW_METHOD_SPEC_ERRORS( + 0, + "captureComplete", + " REACT_METHOD(captureComplete) void captureComplete(std::string path, std::string error) noexcept { /* implementation */ }}\n" + " REACT_METHOD(captureComplete) static void captureComplete(std::string path, std::string error) noexcept { /* implementation */ }}\n"); + } +}; + +} // namespace Microsoft::ReactNativeSpecs diff --git a/vnext/codegen/NativeJSDevSupportSpec.g.h b/vnext/codegen/NativeJSDevSupportSpec.g.h index 9de127cbbf3..f849dd38230 100644 --- a/vnext/codegen/NativeJSDevSupportSpec.g.h +++ b/vnext/codegen/NativeJSDevSupportSpec.g.h @@ -15,7 +15,7 @@ namespace Microsoft::ReactNativeSpecs { struct JSDevSupportSpec : winrt::Microsoft::ReactNative::TurboModuleSpec { static constexpr auto methods = std::tuple{ - Method{0, L"onSuccess"}, + Method{0, L"onSuccess"}, Method{1, L"onFailure"}, }; @@ -26,8 +26,8 @@ struct JSDevSupportSpec : winrt::Microsoft::ReactNative::TurboModuleSpec { REACT_SHOW_METHOD_SPEC_ERRORS( 0, "onSuccess", - " REACT_METHOD(onSuccess) void onSuccess(React::JSValueObject && data) noexcept { /* implementation */ }}\n" - " REACT_METHOD(onSuccess) static void onSuccess(React::JSValueObject && data) noexcept { /* implementation */ }}\n"); + " REACT_METHOD(onSuccess) void onSuccess(std::string data) noexcept { /* implementation */ }}\n" + " REACT_METHOD(onSuccess) static void onSuccess(std::string data) noexcept { /* implementation */ }}\n"); REACT_SHOW_METHOD_SPEC_ERRORS( 1, "onFailure", From 5d514798690d72ace44f91c1acc5699a201c2c17 Mon Sep 17 00:00:00 2001 From: Nick Gerleman Date: Wed, 27 May 2020 13:51:39 -0700 Subject: [PATCH 07/50] Do auto upgrades (limited success here) --- .../AccessibilityInfo.win32.js | 6 +- .../src/Libraries/Image/Image.win32.js | 25 +-- .../Inspector/InspectorOverlay.win32.js | 7 +- .../Libraries/StyleSheet/StyleSheet.win32.js | 2 +- .../core/setUpDeveloperTools.win32.js | 1 + .../react-native-win32/src/overrides.json | 20 +- .../ReactCommon/yoga/yoga/Yoga.cpp | 8 + vnext/DeforkingPatches/overrides.json | 4 +- .../IntegrationTests/IntegrationTestsApp.js | 3 + .../RNTester/js/RNTesterApp.android.js | 2 + .../RNTester/js/RNTesterApp.ios.js | 6 +- .../RNTester/js/components/RNTesterTheme.js | 41 ++-- .../examples/Appearance/AppearanceExample.js | 4 +- .../js/examples/Image/ImageExample.js | 35 ++-- .../js/examples/Layout/LayoutEventsExample.js | 3 +- .../examples/MaskedView/MaskedViewExample.js | 9 +- .../NativeAnimationsExample.js | 6 + .../js/examples/Picker/PickerExample.js | 31 +++ .../PushNotificationIOSExample.js | 67 ++++-- .../RefreshControl/RefreshControlExample.js | 1 + .../ScrollView/ScrollViewAnimatedExample.js | 4 + .../js/examples/Share/ShareExample.js | 2 +- .../js/examples/Text/TextExample.ios.js | 17 ++ .../TextInput/TextInputExample.android.js | 2 + .../TextInput/TextInputSharedExamples.js | 9 +- .../js/examples/Touchable/TouchableExample.js | 102 ++++++--- .../js/examples/Transform/TransformExample.js | 57 +++++ .../examples/XHR/XHRExampleAbortController.js | 2 +- .../RNTester/js/utils/RNTesterActions.js | 2 - .../RNTester/js/utils/RNTesterList.android.js | 8 + .../RNTester/js/utils/RNTesterList.ios.js | 10 + vnext/ReactCopies/overrides.json | 92 ++++----- .../IntegrationTestsApp.windesktop.js | 3 + .../AccessibilityInfo.windesktop.js | 6 +- .../AccessibilityInfo.windows.js | 6 +- .../Libraries/Components/Button.windows.js | 3 +- .../Components/Picker/Picker.windows.js | 4 + .../RefreshControl/RefreshControl.windows.js | 46 +++-- .../Components/TextInput/TextInput.windows.js | 195 ++++++++++-------- .../Components/View/ViewPropTypes.windows.js | 60 +++--- vnext/src/Libraries/Image/Image.windows.js | 32 +-- .../Inspector/InspectorOverlay.windesktop.js | 7 +- .../Lists/VirtualizedList.windows.js | 149 ++++++++++--- .../core/setUpDeveloperTools.windesktop.js | 1 + vnext/src/RNTester/js/RNTesterApp.windows.js | 6 +- vnext/src/overrides.json | 52 ++--- 46 files changed, 784 insertions(+), 374 deletions(-) diff --git a/packages/react-native-win32/src/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js b/packages/react-native-win32/src/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js index aed6e3ff734..bae0b208b3f 100644 --- a/packages/react-native-win32/src/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +++ b/packages/react-native-win32/src/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js @@ -39,7 +39,7 @@ const _subscriptions = new Map(); * well as to register to be notified when the state of the screen reader * changes. * - * See http://facebook.github.io/react-native/docs/accessibilityinfo.html + * See https://reactnative.dev/docs/accessibilityinfo.html */ const AccessibilityInfo = { @@ -145,7 +145,7 @@ const AccessibilityInfo = { /** * Set accessibility focus to a react component. * - * See http://facebook.github.io/react-native/docs/accessibilityinfo.html#setaccessibilityfocus + * See https://reactnative.dev/docs/accessibilityinfo.html#setaccessibilityfocus */ setAccessibilityFocus: function(reactTag: number): void { // [Windows @@ -159,7 +159,7 @@ const AccessibilityInfo = { /** * Post a string to be announced by the screen reader. * - * See http://facebook.github.io/react-native/docs/accessibilityinfo.html#announceforaccessibility + * See https://reactnative.dev/docs/accessibilityinfo.html#announceforaccessibility */ // [Windows] add reactTag announceForAccessibility: function(announcement: string, reactTag?: ?number): void { diff --git a/packages/react-native-win32/src/Libraries/Image/Image.win32.js b/packages/react-native-win32/src/Libraries/Image/Image.win32.js index f9d678a9259..ee10f443a7f 100644 --- a/packages/react-native-win32/src/Libraries/Image/Image.win32.js +++ b/packages/react-native-win32/src/Libraries/Image/Image.win32.js @@ -23,7 +23,7 @@ import type {ImageProps as ImagePropsType} from './ImageProps'; import type {ImageStyleProp} from '../StyleSheet/StyleSheet'; import NativeImageLoaderWin32 from './NativeImageLoaderWin32'; // [Win32] Replace iOS -const RCTImageView = require('./ImageViewNativeComponent'); +import ImageViewNativeComponent from './ImageViewNativeComponent'; function getSize( uri: string, @@ -98,7 +98,7 @@ type ImageComponentStatics = $ReadOnly<{| * including network images, static resources, temporary local images, and * images from local disk, such as the camera roll. * - * See https://facebook.github.io/react-native/docs/image.html + * See https://reactnative.dev/docs/image.html */ let Image = (props: ImagePropsType, forwardedRef) => { const source = resolveAssetSource(props.source) || { @@ -140,7 +140,7 @@ let Image = (props: ImagePropsType, forwardedRef) => { } return ( - { ); }; -Image = React.forwardRef>( - Image, -); +Image = React.forwardRef< + ImagePropsType, + React.ElementRef, +>(Image); Image.displayName = 'Image'; /** * Retrieve the width and height (in pixels) of an image prior to displaying it. * - * See https://facebook.github.io/react-native/docs/image.html#getsize + * See https://reactnative.dev/docs/image.html#getsize */ /* $FlowFixMe(>=0.89.0 site=react_native_ios_fb) This comment suppresses an * error found when Flow v0.89 was deployed. To see the error, delete this @@ -170,7 +171,7 @@ Image.getSize = getSize; * Retrieve the width and height (in pixels) of an image prior to displaying it * with the ability to provide the headers for the request. * - * See https://facebook.github.io/react-native/docs/image.html#getsizewithheaders + * See https://reactnative.dev/docs/image.html#getsizewithheaders */ /* $FlowFixMe(>=0.89.0 site=react_native_ios_fb) This comment suppresses an * error found when Flow v0.89 was deployed. To see the error, delete this @@ -181,7 +182,7 @@ Image.getSizeWithHeaders = getSizeWithHeaders; * Prefetches a remote image for later use by downloading it to the disk * cache. * - * See https://facebook.github.io/react-native/docs/image.html#prefetch + * See https://reactnative.dev/docs/image.html#prefetch */ /* $FlowFixMe(>=0.89.0 site=react_native_ios_fb) This comment suppresses an * error found when Flow v0.89 was deployed. To see the error, delete this @@ -191,7 +192,7 @@ Image.prefetch = prefetch; /** * Performs cache interrogation. * - * See https://facebook.github.io/react-native/docs/image.html#querycache + * See https://reactnative.dev/docs/image.html#querycache */ /* $FlowFixMe(>=0.89.0 site=react_native_ios_fb) This comment suppresses an * error found when Flow v0.89 was deployed. To see the error, delete this @@ -201,7 +202,7 @@ Image.queryCache = queryCache; /** * Resolves an asset reference into an object. * - * See https://facebook.github.io/react-native/docs/image.html#resolveassetsource + * See https://reactnative.dev/docs/image.html#resolveassetsource */ /* $FlowFixMe(>=0.89.0 site=react_native_ios_fb) This comment suppresses an * error found when Flow v0.89 was deployed. To see the error, delete this @@ -221,6 +222,6 @@ const styles = StyleSheet.create({ module.exports = ((Image: any): React.AbstractComponent< ImagePropsType, - React.ElementRef, + React.ElementRef, > & ImageComponentStatics); diff --git a/packages/react-native-win32/src/Libraries/Inspector/InspectorOverlay.win32.js b/packages/react-native-win32/src/Libraries/Inspector/InspectorOverlay.win32.js index 5541e992bf6..e936b15a40d 100644 --- a/packages/react-native-win32/src/Libraries/Inspector/InspectorOverlay.win32.js +++ b/packages/react-native-win32/src/Libraries/Inspector/InspectorOverlay.win32.js @@ -14,9 +14,11 @@ const Dimensions = require('../Utilities/Dimensions'); const ElementBox = require('./ElementBox'); const React = require('react'); const StyleSheet = require('../StyleSheet/StyleSheet'); +const ReactNative = require('../Renderer/shims/ReactNative'); const UIManager = require('../ReactNative/UIManager'); const View = require('../Components/View/View'); +import type {HostComponent} from '../Renderer/shims/ReactNativeTypes'; import type {ViewStyleProp} from '../StyleSheet/StyleSheet'; import type {PressEvent} from '../Types/CoreEventTypes'; @@ -26,8 +28,9 @@ type Inspected = $ReadOnly<{| |}>; type Props = $ReadOnly<{| + isFabric: boolean, inspected?: Inspected, - inspectedViewTag?: ?number, + inspectedView?: ?React.ElementRef>, onTouchViewTag: (tag: number, frame: Object, pointerY: number) => mixed, |}>; @@ -35,7 +38,7 @@ class InspectorOverlay extends React.Component { findViewForTouchEvent: (e: PressEvent) => void = (e: PressEvent) => { const {locationX, locationY} = e.nativeEvent.touches[0]; UIManager.findSubviewIn( - this.props.inspectedViewTag, + ReactNative.findNodeHandle(this.props.inspectedView), [locationX, locationY], (nativeViewTag, left, top, width, height) => { this.props.onTouchViewTag( diff --git a/packages/react-native-win32/src/Libraries/StyleSheet/StyleSheet.win32.js b/packages/react-native-win32/src/Libraries/StyleSheet/StyleSheet.win32.js index 619d209e510..8299bd88d5d 100644 --- a/packages/react-native-win32/src/Libraries/StyleSheet/StyleSheet.win32.js +++ b/packages/react-native-win32/src/Libraries/StyleSheet/StyleSheet.win32.js @@ -349,7 +349,7 @@ module.exports = { /** * Creates a StyleSheet style reference from the given object. */ - create<+S: ____Styles_Internal>(obj: S): $ObjMap any> { + create<+S: ____Styles_Internal>(obj: S): $ReadOnly { // TODO: This should return S as the return type. But first, // we need to codemod all the callsites that are typing this // return value as a number (even though it was opaque). diff --git a/packages/react-native-win32/src/Libraries/core/setUpDeveloperTools.win32.js b/packages/react-native-win32/src/Libraries/core/setUpDeveloperTools.win32.js index 6e42270b310..b7fbfd375e6 100644 --- a/packages/react-native-win32/src/Libraries/core/setUpDeveloperTools.win32.js +++ b/packages/react-native-win32/src/Libraries/core/setUpDeveloperTools.win32.js @@ -54,6 +54,7 @@ if (__DEV__) { 'trace', 'info', 'warn', + 'error', 'log', 'group', 'groupCollapsed', diff --git a/packages/react-native-win32/src/overrides.json b/packages/react-native-win32/src/overrides.json index f4e967791d6..26dbe61039f 100644 --- a/packages/react-native-win32/src/overrides.json +++ b/packages/react-native-win32/src/overrides.json @@ -24,8 +24,8 @@ "type": "derived", "file": "Libraries\\Components\\AccessibilityInfo\\AccessibilityInfo.win32.js", "baseFile": "Libraries\\Components\\AccessibilityInfo\\AccessibilityInfo.android.js", - "baseVersion": "0.62.0-rc.3", - "baseHash": "eb1753df0ab59f8c23fdd6469e69bfd349be1a58", + "baseVersion": "0.0.0-56cf99a96", + "baseHash": "840be6f49fe36a3bcfb568eb285bf860f0dd441d", "issue": "LEGACY_FIXME" }, { @@ -292,8 +292,8 @@ "type": "patch", "file": "Libraries\\core\\setUpDeveloperTools.win32.js", "baseFile": "Libraries\\core\\setUpDeveloperTools.js", - "baseVersion": "0.62.0-rc.3", - "baseHash": "d09be2d9fc8c621538c2262947580a03ff47177f", + "baseVersion": "0.0.0-56cf99a96", + "baseHash": "dac10e7b4ec4b65b658f26aeeedc05cc975a53cd", "issue": "LEGACY_FIXME" }, { @@ -308,8 +308,8 @@ "type": "derived", "file": "Libraries\\Image\\Image.win32.js", "baseFile": "Libraries\\Image\\Image.ios.js", - "baseVersion": "0.62.0-rc.3", - "baseHash": "80a9ee2404220201df09a5ff97e2bf7e03c854e0", + "baseVersion": "0.0.0-56cf99a96", + "baseHash": "26acff268b815c7b3c5da0d6c9c009073b202ea8", "issue": 4320 }, { @@ -352,8 +352,8 @@ "type": "patch", "file": "Libraries\\Inspector\\InspectorOverlay.win32.js", "baseFile": "Libraries\\Inspector\\InspectorOverlay.js", - "baseVersion": "0.61.5", - "baseHash": "a8cb0b3e6bd7334214a37db8bb1bb91510a5e838", + "baseVersion": "0.0.0-56cf99a96", + "baseHash": "b8535e8c605e6c0e940aae6c04f0d573eaa4788e", "issue": "LEGACY_FIXME" }, { @@ -440,8 +440,8 @@ "type": "patch", "file": "Libraries\\StyleSheet\\StyleSheet.win32.js", "baseFile": "Libraries\\StyleSheet\\StyleSheet.js", - "baseVersion": "0.62.0-rc.3", - "baseHash": "87b211c7221c858271123d6d306ffb51f881e512", + "baseVersion": "0.0.0-56cf99a96", + "baseHash": "073367bc043b5e7e9db6ec046da088e750d3693c", "issue": "LEGACY_FIXME" }, { diff --git a/vnext/DeforkingPatches/ReactCommon/yoga/yoga/Yoga.cpp b/vnext/DeforkingPatches/ReactCommon/yoga/yoga/Yoga.cpp index 8568903310a..d5f8d013d97 100644 --- a/vnext/DeforkingPatches/ReactCommon/yoga/yoga/Yoga.cpp +++ b/vnext/DeforkingPatches/ReactCommon/yoga/yoga/Yoga.cpp @@ -387,6 +387,14 @@ YOGA_EXPORT void YGNodeInsertChild( owner->markDirtyAndPropogate(); } +YOGA_EXPORT void YGNodeSwapChild( + const YGNodeRef owner, + const YGNodeRef child, + const uint32_t index) { + owner->replaceChild(child, index); + child->setOwner(owner); +} + YOGA_EXPORT void YGNodeRemoveChild( const YGNodeRef owner, const YGNodeRef excludedChild) { diff --git a/vnext/DeforkingPatches/overrides.json b/vnext/DeforkingPatches/overrides.json index dde93dd7c94..c025aaeabf6 100644 --- a/vnext/DeforkingPatches/overrides.json +++ b/vnext/DeforkingPatches/overrides.json @@ -20,8 +20,8 @@ "type": "patch", "file": "ReactCommon\\yoga\\yoga\\Yoga.cpp", "baseFile": "ReactCommon\\yoga\\yoga\\Yoga.cpp", - "baseVersion": "0.62.0-rc.3", - "baseHash": "20b4e90cca3e5e5bfcaa5fda7bb322a7efee1fa9", + "baseVersion": "0.0.0-56cf99a96", + "baseHash": "99b23af03df9e59e1c42cd9e026ebb4c4df75cb4", "issue": 3994 } ] diff --git a/vnext/ReactCopies/IntegrationTests/IntegrationTestsApp.js b/vnext/ReactCopies/IntegrationTests/IntegrationTestsApp.js index c52fe515221..1e52877b7b9 100644 --- a/vnext/ReactCopies/IntegrationTests/IntegrationTestsApp.js +++ b/vnext/ReactCopies/IntegrationTests/IntegrationTestsApp.js @@ -79,6 +79,9 @@ class IntegrationTestsApp extends React.Component<{...}, $FlowFixMeState> { {TESTS.map(test => [ this.setState({test})} + /* $FlowFixMe(>=0.115.0 site=react_native_fb) This comment + * suppresses an error found when Flow v0.115 was deployed. To + * see the error, delete this comment and run Flow. */ style={styles.row}> {test.displayName} , diff --git a/vnext/ReactCopies/RNTester/js/RNTesterApp.android.js b/vnext/ReactCopies/RNTester/js/RNTesterApp.android.js index fd3655deec2..d7371b4ee6a 100644 --- a/vnext/ReactCopies/RNTester/js/RNTesterApp.android.js +++ b/vnext/ReactCopies/RNTester/js/RNTesterApp.android.js @@ -316,6 +316,8 @@ class RNTesterApp extends React.Component { /* $FlowFixMe(>=0.78.0 site=react_native_android_fb) This issue was found * when making Flow check .android.js files. */ this._exampleRef && + /* $FlowFixMe(>=0.78.0 site=react_native_android_fb) This issue was found + * when making Flow check .android.js files. */ this._exampleRef.handleBackAction && /* $FlowFixMe(>=0.78.0 site=react_native_android_fb) This issue was found * when making Flow check .android.js files. */ diff --git a/vnext/ReactCopies/RNTester/js/RNTesterApp.ios.js b/vnext/ReactCopies/RNTester/js/RNTesterApp.ios.js index 8245a68d12b..1ae924c9b06 100644 --- a/vnext/ReactCopies/RNTester/js/RNTesterApp.ios.js +++ b/vnext/ReactCopies/RNTester/js/RNTesterApp.ios.js @@ -31,7 +31,7 @@ const { Text, useColorScheme, View, - YellowBox, + LogBox, } = require('react-native'); import type {RNTesterExample} from './types/RNTesterTypes'; @@ -42,9 +42,7 @@ import type {ColorSchemeName} from '../../Libraries/Utilities/NativeAppearance'; type Props = {exampleFromAppetizeParams?: ?string, ...}; -YellowBox.ignoreWarnings([ - 'Module RCTImagePickerManager requires main queue setup', -]); +LogBox.ignoreLogs(['Module RCTImagePickerManager requires main queue setup']); const APP_STATE_KEY = 'RNTesterAppState.v2'; diff --git a/vnext/ReactCopies/RNTester/js/components/RNTesterTheme.js b/vnext/ReactCopies/RNTester/js/components/RNTesterTheme.js index b78a8344fe2..7bc14ea3ebd 100644 --- a/vnext/ReactCopies/RNTester/js/components/RNTesterTheme.js +++ b/vnext/ReactCopies/RNTester/js/components/RNTesterTheme.js @@ -12,28 +12,29 @@ import * as React from 'react'; import {Appearance} from 'react-native'; +import type {ColorValue} from '../../../Libraries/StyleSheet/StyleSheetTypes'; export type RNTesterTheme = { - LabelColor: string, - SecondaryLabelColor: string, - TertiaryLabelColor: string, - QuaternaryLabelColor: string, - PlaceholderTextColor: string, - SystemBackgroundColor: string, - SecondarySystemBackgroundColor: string, - TertiarySystemBackgroundColor: string, - GroupedBackgroundColor: string, - SecondaryGroupedBackgroundColor: string, - TertiaryGroupedBackgroundColor: string, - SystemFillColor: string, - SecondarySystemFillColor: string, - TertiarySystemFillColor: string, - QuaternarySystemFillColor: string, - SeparatorColor: string, - OpaqueSeparatorColor: string, - LinkColor: string, - SystemPurpleColor: string, - ToolbarColor: string, + LabelColor: ColorValue, + SecondaryLabelColor: ColorValue, + TertiaryLabelColor: ColorValue, + QuaternaryLabelColor: ColorValue, + PlaceholderTextColor: ColorValue, + SystemBackgroundColor: ColorValue, + SecondarySystemBackgroundColor: ColorValue, + TertiarySystemBackgroundColor: ColorValue, + GroupedBackgroundColor: ColorValue, + SecondaryGroupedBackgroundColor: ColorValue, + TertiaryGroupedBackgroundColor: ColorValue, + SystemFillColor: ColorValue, + SecondarySystemFillColor: ColorValue, + TertiarySystemFillColor: ColorValue, + QuaternarySystemFillColor: ColorValue, + SeparatorColor: ColorValue, + OpaqueSeparatorColor: ColorValue, + LinkColor: ColorValue, + SystemPurpleColor: ColorValue, + ToolbarColor: ColorValue, ... }; diff --git a/vnext/ReactCopies/RNTester/js/examples/Appearance/AppearanceExample.js b/vnext/ReactCopies/RNTester/js/examples/Appearance/AppearanceExample.js index ab99e9213bf..bc2d074b2be 100644 --- a/vnext/ReactCopies/RNTester/js/examples/Appearance/AppearanceExample.js +++ b/vnext/ReactCopies/RNTester/js/examples/Appearance/AppearanceExample.js @@ -191,7 +191,9 @@ exports.examples = [ paddingVertical: 2, color: theme.LabelColor, }}> - {theme[key]} + {typeof theme[key] === 'string' + ? theme[key] + : JSON.stringify(theme[key])} diff --git a/vnext/ReactCopies/RNTester/js/examples/Image/ImageExample.js b/vnext/ReactCopies/RNTester/js/examples/Image/ImageExample.js index 3fd95a4594f..da56f1865f6 100644 --- a/vnext/ReactCopies/RNTester/js/examples/Image/ImageExample.js +++ b/vnext/ReactCopies/RNTester/js/examples/Image/ImageExample.js @@ -26,7 +26,7 @@ const base64Icon = const ImageCapInsetsExample = require('./ImageCapInsetsExample'); const IMAGE_PREFETCH_URL = - 'http://origami.design/public/images/bird-logo.png?r=1&t=' + Date.now(); + 'https://www.facebook.com/favicon.ico?r=1&t=' + Date.now(); const prefetchTask = Image.prefetch(IMAGE_PREFETCH_URL); type ImageSource = $ReadOnly<{| @@ -312,18 +312,17 @@ class MultipleSourcesExample extends React.Component< style={{flex: 1}} source={[ { - uri: 'https://facebook.github.io/react-native/img/favicon.png', + uri: 'https://www.facebook.com/favicon.ico', width: 38, height: 38, }, { - uri: 'https://facebook.github.io/react-native/img/favicon.png', + uri: 'https://www.facebook.com/favicon.ico', width: 76, height: 76, }, { - uri: - 'https://facebook.github.io/react-native/img/opengraph.png', + uri: 'https://www.facebook.com/ads/pics/successstories.png', width: 400, height: 400, }, @@ -336,10 +335,10 @@ class MultipleSourcesExample extends React.Component< } const fullImage = { - uri: 'https://facebook.github.io/react-native/img/opengraph.png', + uri: 'https://www.facebook.com/ads/pics/successstories.png', }; const smallImage = { - uri: 'https://facebook.github.io/react-native/img/favicon.png', + uri: 'https://www.facebook.com/favicon.ico', }; const styles = StyleSheet.create({ @@ -448,9 +447,7 @@ exports.examples = [ return ( @@ -463,7 +460,7 @@ exports.examples = [ return ( ); @@ -476,7 +473,7 @@ exports.examples = [ return ( ); @@ -491,7 +488,7 @@ exports.examples = [ @@ -783,6 +780,9 @@ exports.examples = [ source={image} /> + {/* $FlowFixMe(>=0.115.0 site=react_native_fb) This comment + * suppresses an error found when Flow v0.115 was deployed. + * To see the error, delete this comment and run Flow. */} Cover + {/* $FlowFixMe(>=0.115.0 site=react_native_fb) This comment + * suppresses an error found when Flow v0.115 was deployed. + * To see the error, delete this comment and run Flow. */} Repeat + {/* $FlowFixMe(>=0.115.0 site=react_native_fb) This comment + * suppresses an error found when Flow v0.115 was deployed. + * To see the error, delete this comment and run Flow. */} Center =0.115.0 site=react_native_fb) This comment suppresses an + * error found when Flow v0.115 was deployed. To see the error, delete + * this comment and run Flow. */ return ; }, }, diff --git a/vnext/ReactCopies/RNTester/js/examples/Layout/LayoutEventsExample.js b/vnext/ReactCopies/RNTester/js/examples/Layout/LayoutEventsExample.js index 4791cba84a9..5abb07d95e7 100644 --- a/vnext/ReactCopies/RNTester/js/examples/Layout/LayoutEventsExample.js +++ b/vnext/ReactCopies/RNTester/js/examples/Layout/LayoutEventsExample.js @@ -102,8 +102,7 @@ class LayoutEventExample extends React.Component { onLayout={this.onImageLayout} style={styles.image} source={{ - uri: - 'https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-prn1/t39.1997/p128x128/851561_767334496626293_1958532586_n.png', + uri: 'https://www.facebook.com/favicon.ico', }} /> diff --git a/vnext/ReactCopies/RNTester/js/examples/MaskedView/MaskedViewExample.js b/vnext/ReactCopies/RNTester/js/examples/MaskedView/MaskedViewExample.js index 2b9f99c19a0..7ad01c6e41c 100644 --- a/vnext/ReactCopies/RNTester/js/examples/MaskedView/MaskedViewExample.js +++ b/vnext/ReactCopies/RNTester/js/examples/MaskedView/MaskedViewExample.js @@ -35,12 +35,12 @@ class AnimatedMaskExample extends React.Component { Animated.sequence([ Animated.timing(this._maskScaleAnimatedValue, { toValue: 1.3, - timing: 750, + duration: 750, useNativeDriver: true, }), Animated.timing(this._maskScaleAnimatedValue, { toValue: 1, - timing: 750, + duration: 750, useNativeDriver: true, }), ]), @@ -49,7 +49,7 @@ class AnimatedMaskExample extends React.Component { Animated.loop( Animated.timing(this._maskRotateAnimatedValue, { toValue: 360, - timing: 2000, + duration: 2000, useNativeDriver: true, }), ).start(); @@ -76,6 +76,9 @@ class AnimatedMaskExample extends React.Component { { rotate: this._maskRotateAnimatedValue.interpolate({ inputRange: [0, 360], + /* $FlowFixMe(>=0.38.0) - Flow error detected during the + * deployment of v0.38.0. To see the error, remove this + * comment and run flow */ outputRange: ['0deg', '360deg'], }), }, diff --git a/vnext/ReactCopies/RNTester/js/examples/NativeAnimation/NativeAnimationsExample.js b/vnext/ReactCopies/RNTester/js/examples/NativeAnimation/NativeAnimationsExample.js index cd20cb7ca50..e6c4fcb591c 100644 --- a/vnext/ReactCopies/RNTester/js/examples/NativeAnimation/NativeAnimationsExample.js +++ b/vnext/ReactCopies/RNTester/js/examples/NativeAnimation/NativeAnimationsExample.js @@ -145,6 +145,9 @@ class LoopExample extends React.Component<{...}, $FlowFixMeState> { { opacity: this.state.value.interpolate({ inputRange: [0, 0.5, 1], + /* $FlowFixMe(>=0.38.0) - Flow error detected during the + * deployment of v0.38.0. To see the error, remove this comment + * and run flow */ outputRange: [0, 1, 0], }), }, @@ -240,6 +243,9 @@ class EventExample extends React.Component<{...}, $FlowFixMeState> { { rotate: this.state.anim.interpolate({ inputRange: [0, 1], + /* $FlowFixMe(>=0.38.0) - Flow error detected during the + * deployment of v0.38.0. To see the error, remove this + * comment and run flow */ outputRange: ['0deg', '1deg'], }), }, diff --git a/vnext/ReactCopies/RNTester/js/examples/Picker/PickerExample.js b/vnext/ReactCopies/RNTester/js/examples/Picker/PickerExample.js index 7672b9ea420..c4d1e2bfcf4 100644 --- a/vnext/ReactCopies/RNTester/js/examples/Picker/PickerExample.js +++ b/vnext/ReactCopies/RNTester/js/examples/Picker/PickerExample.js @@ -125,6 +125,25 @@ class ColorPickerExample extends React.Component<{...}, ColorState> { ); } } +class AccessibilityLabelPickerExample extends React.Component<{||}, State> { + state: State = { + value: '3', + }; + + render(): React.Node { + return ( + this.setState({value: v})}> + + + + + ); + } +} const styles = StyleSheet.create({ picker: { @@ -160,6 +179,12 @@ exports.examples = [ return ; }, }, + { + title: 'Accessibility Label pickers', + render: function(): React.Element { + return ; + }, + }, { title: 'Picker with no listener', render: function(): React.Element { @@ -186,4 +211,10 @@ exports.examples = [ return ; }, }, + { + title: 'AccessibilityLabel pickers', + render: function(): React.Element { + return ; + }, + }, ]; diff --git a/vnext/ReactCopies/RNTester/js/examples/PushNotificationIOS/PushNotificationIOSExample.js b/vnext/ReactCopies/RNTester/js/examples/PushNotificationIOS/PushNotificationIOSExample.js index c291a7a6e5e..93127afb755 100644 --- a/vnext/ReactCopies/RNTester/js/examples/PushNotificationIOS/PushNotificationIOSExample.js +++ b/vnext/ReactCopies/RNTester/js/examples/PushNotificationIOS/PushNotificationIOSExample.js @@ -49,8 +49,6 @@ class NotificationExample extends React.Component<{...}> { 'localNotification', this._onLocalNotification, ); - - PushNotificationIOS.requestPermissions(); } componentWillUnmount() { @@ -173,18 +171,51 @@ class NotificationPermissionExample extends React.Component< return (