react-native: [v0.57.0-rc.3] New project unit testing doesn't work

UPDATE: This might be a duplicate of https://github.com/facebook/react-native/issues/19859 but it definitely exists in 0.57-rc.3 still.

Environment

Run react-native info in your terminal and paste its contents here.

React Native Environment Info: System: OS: macOS High Sierra 10.13.6 CPU: x64 Intel® Core™ i7-7700HQ CPU @ 2.80GHz Memory: 270.51 MB / 16.00 GB Shell: 2.7.1 - /usr/local/bin/fish Binaries: Node: 8.11.4 - /usr/local/bin/node Yarn: 1.9.4 - /usr/local/bin/yarn npm: 5.6.0 - /usr/local/bin/npm Watchman: 4.9.0 - /usr/local/bin/watchman SDKs: iOS SDK: Platforms: iOS 11.4, macOS 10.13, tvOS 11.4, watchOS 4.3 IDEs: Android Studio: 3.1 AI-173.4907809 Xcode: 9.4.1/9F2000 - /usr/bin/xcodebuild npmPackages: react: 16.4.1 => 16.4.1 react-native: 0.57.0-rc.3 => 0.57.0-rc.3

Description

Unit tests in new projects generated using the react-native CLI are broken. Here’s the steps to reproduce:

$ react-native init rntest
....
$ cd rntest
$ mkdir __tests__
$ cat "class Button {
    _binder 

    constructor() {
        this._binder = this._binder.bind(this);
    }

    _binder() {
        console.log('_binder bound to:', this);
    }
}

describe('Button', () => {
    it('does stuff', () => {
        const x = new Button();
    })
});
" > __tests__/Button.test.js
$ yarn test
yarn run v1.9.4
$ jest
 FAIL  __tests__/Button.test.js
  ● Test suite failed to run

    Couldn't find preset "module:metro-react-native-babel-preset" relative to directory "/Users/jeremy/dev/rntest"

      at node_modules/babel-core/lib/transformation/file/options/option-manager.js:293:19
          at Array.map (<anonymous>)
      at OptionManager.resolvePresets (node_modules/babel-core/lib/transformation/file/options/option-manager.js:275:20)
      at OptionManager.mergePresets (node_modules/babel-core/lib/transformation/file/options/option-manager.js:264:10)
      at OptionManager.mergeOptions (node_modules/babel-core/lib/transformation/file/options/option-manager.js:249:14)
      at OptionManager.init (node_modules/babel-core/lib/transformation/file/options/option-manager.js:368:12)
      at File.initOptions (node_modules/babel-core/lib/transformation/file/index.js:212:65)
      at new File (node_modules/babel-core/lib/transformation/file/index.js:135:24)
      at Pipeline.transform (node_modules/babel-core/lib/transformation/pipeline.js:46:16)

Test Suites: 1 failed, 1 total
Tests:       0 total
Snapshots:   0 total
Time:        0.309s
Ran all test suites.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
$ _
`yarn info`
$ yarn list
yarn list v1.9.4
├─ @babel/code-frame@7.0.0-beta.56
│  └─ @babel/highlight@7.0.0-beta.56
├─ @babel/core@7.0.0-beta.56
│  ├─ @babel/code-frame@7.0.0-beta.56
│  ├─ @babel/generator@7.0.0-beta.56
│  ├─ @babel/helpers@7.0.0-beta.56
│  ├─ @babel/parser@7.0.0-beta.56
│  ├─ @babel/template@7.0.0-beta.56
│  ├─ @babel/traverse@7.0.0-beta.56
│  ├─ @babel/types@7.0.0-beta.56
│  ├─ convert-source-map@^1.1.0
│  ├─ debug@^3.1.0
│  ├─ debug@3.1.0
│  │  └─ ms@2.0.0
│  ├─ json5@^0.5.0
│  ├─ lodash@^4.17.10
│  ├─ resolve@^1.3.2
│  ├─ semver@^5.4.1
│  └─ source-map@^0.5.0
├─ @babel/generator@7.0.0-beta.56
│  ├─ @babel/types@7.0.0-beta.56
│  ├─ jsesc@^2.5.1
│  ├─ jsesc@2.5.1
│  ├─ lodash@^4.17.10
│  ├─ source-map@^0.5.0
│  └─ trim-right@^1.0.1
├─ @babel/helper-annotate-as-pure@7.0.0-beta.56
│  └─ @babel/types@7.0.0-beta.56
├─ @babel/helper-builder-binary-assignment-operator-visitor@7.0.0-beta.56
│  ├─ @babel/helper-explode-assignable-expression@7.0.0-beta.56
│  └─ @babel/types@7.0.0-beta.56
├─ @babel/helper-builder-react-jsx@7.0.0-beta.56
│  ├─ @babel/types@7.0.0-beta.56
│  └─ esutils@^2.0.0
├─ @babel/helper-call-delegate@7.0.0-beta.56
│  ├─ @babel/helper-hoist-variables@7.0.0-beta.56
│  ├─ @babel/traverse@7.0.0-beta.56
│  └─ @babel/types@7.0.0-beta.56
├─ @babel/helper-define-map@7.0.0-beta.56
│  ├─ @babel/helper-function-name@7.0.0-beta.56
│  ├─ @babel/types@7.0.0-beta.56
│  └─ lodash@^4.17.10
├─ @babel/helper-explode-assignable-expression@7.0.0-beta.56
│  ├─ @babel/traverse@7.0.0-beta.56
│  └─ @babel/types@7.0.0-beta.56
├─ @babel/helper-function-name@7.0.0-beta.56
│  ├─ @babel/helper-get-function-arity@7.0.0-beta.56
│  ├─ @babel/template@7.0.0-beta.56
│  └─ @babel/types@7.0.0-beta.56
├─ @babel/helper-get-function-arity@7.0.0-beta.56
│  └─ @babel/types@7.0.0-beta.56
├─ @babel/helper-hoist-variables@7.0.0-beta.56
│  └─ @babel/types@7.0.0-beta.56
├─ @babel/helper-member-expression-to-functions@7.0.0-beta.56
│  └─ @babel/types@7.0.0-beta.56
├─ @babel/helper-module-imports@7.0.0-beta.56
│  ├─ @babel/types@7.0.0-beta.56
│  └─ lodash@^4.17.10
├─ @babel/helper-module-transforms@7.0.0-beta.56
│  ├─ @babel/helper-module-imports@7.0.0-beta.56
│  ├─ @babel/helper-simple-access@7.0.0-beta.56
│  ├─ @babel/helper-split-export-declaration@7.0.0-beta.56
│  ├─ @babel/template@7.0.0-beta.56
│  ├─ @babel/types@7.0.0-beta.56
│  └─ lodash@^4.17.10
├─ @babel/helper-optimise-call-expression@7.0.0-beta.56
│  └─ @babel/types@7.0.0-beta.56
├─ @babel/helper-plugin-utils@7.0.0-beta.56
├─ @babel/helper-regex@7.0.0-beta.56
│  └─ lodash@^4.17.10
├─ @babel/helper-remap-async-to-generator@7.0.0-beta.56
│  ├─ @babel/helper-annotate-as-pure@7.0.0-beta.56
│  ├─ @babel/helper-wrap-function@7.0.0-beta.56
│  ├─ @babel/template@7.0.0-beta.56
│  ├─ @babel/traverse@7.0.0-beta.56
│  └─ @babel/types@7.0.0-beta.56
├─ @babel/helper-replace-supers@7.0.0-beta.56
│  ├─ @babel/helper-member-expression-to-functions@7.0.0-beta.56
│  ├─ @babel/helper-optimise-call-expression@7.0.0-beta.56
│  ├─ @babel/traverse@7.0.0-beta.56
│  └─ @babel/types@7.0.0-beta.56
├─ @babel/helper-simple-access@7.0.0-beta.56
│  ├─ @babel/template@7.0.0-beta.56
│  ├─ @babel/types@7.0.0-beta.56
│  └─ lodash@^4.17.10
├─ @babel/helper-split-export-declaration@7.0.0-beta.56
│  └─ @babel/types@7.0.0-beta.56
├─ @babel/helper-wrap-function@7.0.0-beta.56
│  ├─ @babel/helper-function-name@7.0.0-beta.56
│  ├─ @babel/template@7.0.0-beta.56
│  ├─ @babel/traverse@7.0.0-beta.56
│  └─ @babel/types@7.0.0-beta.56
├─ @babel/helpers@7.0.0-beta.56
│  ├─ @babel/template@7.0.0-beta.56
│  ├─ @babel/traverse@7.0.0-beta.56
│  └─ @babel/types@7.0.0-beta.56
├─ @babel/highlight@7.0.0-beta.56
│  ├─ chalk@^2.0.0
│  ├─ esutils@^2.0.2
│  └─ js-tokens@^3.0.0
├─ @babel/parser@7.0.0-beta.56
├─ @babel/plugin-external-helpers@7.0.0-beta.56
│  └─ @babel/helper-plugin-utils@7.0.0-beta.56
├─ @babel/plugin-proposal-class-properties@7.0.0-beta.56
│  ├─ @babel/helper-function-name@7.0.0-beta.56
│  ├─ @babel/helper-member-expression-to-functions@7.0.0-beta.56
│  ├─ @babel/helper-optimise-call-expression@7.0.0-beta.56
│  ├─ @babel/helper-plugin-utils@7.0.0-beta.56
│  ├─ @babel/helper-replace-supers@7.0.0-beta.56
│  └─ @babel/plugin-syntax-class-properties@7.0.0-beta.56
├─ @babel/plugin-proposal-nullish-coalescing-operator@7.0.0-beta.56
│  ├─ @babel/helper-plugin-utils@7.0.0-beta.56
│  └─ @babel/plugin-syntax-nullish-coalescing-operator@7.0.0-beta.56
├─ @babel/plugin-proposal-object-rest-spread@7.0.0-beta.56
│  ├─ @babel/helper-plugin-utils@7.0.0-beta.56
│  └─ @babel/plugin-syntax-object-rest-spread@7.0.0-beta.56
├─ @babel/plugin-proposal-optional-catch-binding@7.0.0-beta.56
│  ├─ @babel/helper-plugin-utils@7.0.0-beta.56
│  └─ @babel/plugin-syntax-optional-catch-binding@7.0.0-beta.56
├─ @babel/plugin-proposal-optional-chaining@7.0.0-beta.56
│  ├─ @babel/helper-plugin-utils@7.0.0-beta.56
│  └─ @babel/plugin-syntax-optional-chaining@7.0.0-beta.56
├─ @babel/plugin-syntax-class-properties@7.0.0-beta.56
│  └─ @babel/helper-plugin-utils@7.0.0-beta.56
├─ @babel/plugin-syntax-dynamic-import@7.0.0-beta.56
│  └─ @babel/helper-plugin-utils@7.0.0-beta.56
├─ @babel/plugin-syntax-flow@7.0.0-beta.56
│  └─ @babel/helper-plugin-utils@7.0.0-beta.56
├─ @babel/plugin-syntax-jsx@7.0.0-beta.56
│  └─ @babel/helper-plugin-utils@7.0.0-beta.56
├─ @babel/plugin-syntax-nullish-coalescing-operator@7.0.0-beta.56
│  └─ @babel/helper-plugin-utils@7.0.0-beta.56
├─ @babel/plugin-syntax-object-rest-spread@7.0.0-beta.56
│  └─ @babel/helper-plugin-utils@7.0.0-beta.56
├─ @babel/plugin-syntax-optional-catch-binding@7.0.0-beta.56
│  └─ @babel/helper-plugin-utils@7.0.0-beta.56
├─ @babel/plugin-syntax-optional-chaining@7.0.0-beta.56
│  └─ @babel/helper-plugin-utils@7.0.0-beta.56
├─ @babel/plugin-syntax-typescript@7.0.0-beta.56
│  └─ @babel/helper-plugin-utils@7.0.0-beta.56
├─ @babel/plugin-transform-arrow-functions@7.0.0-beta.56
│  └─ @babel/helper-plugin-utils@7.0.0-beta.56
├─ @babel/plugin-transform-async-to-generator@7.0.0-beta.56
│  ├─ @babel/helper-module-imports@7.0.0-beta.56
│  ├─ @babel/helper-plugin-utils@7.0.0-beta.56
│  └─ @babel/helper-remap-async-to-generator@7.0.0-beta.56
├─ @babel/plugin-transform-block-scoping@7.0.0-beta.56
│  ├─ @babel/helper-plugin-utils@7.0.0-beta.56
│  └─ lodash@^4.17.10
├─ @babel/plugin-transform-classes@7.0.0-beta.56
│  ├─ @babel/helper-annotate-as-pure@7.0.0-beta.56
│  ├─ @babel/helper-define-map@7.0.0-beta.56
│  ├─ @babel/helper-function-name@7.0.0-beta.56
│  ├─ @babel/helper-optimise-call-expression@7.0.0-beta.56
│  ├─ @babel/helper-plugin-utils@7.0.0-beta.56
│  ├─ @babel/helper-replace-supers@7.0.0-beta.56
│  ├─ @babel/helper-split-export-declaration@7.0.0-beta.56
│  └─ globals@^11.1.0
├─ @babel/plugin-transform-computed-properties@7.0.0-beta.56
│  └─ @babel/helper-plugin-utils@7.0.0-beta.56
├─ @babel/plugin-transform-destructuring@7.0.0-beta.56
│  └─ @babel/helper-plugin-utils@7.0.0-beta.56
├─ @babel/plugin-transform-exponentiation-operator@7.0.0-beta.56
│  ├─ @babel/helper-builder-binary-assignment-operator-visitor@7.0.0-beta.56
│  └─ @babel/helper-plugin-utils@7.0.0-beta.56
├─ @babel/plugin-transform-flow-strip-types@7.0.0-beta.56
│  ├─ @babel/helper-plugin-utils@7.0.0-beta.56
│  └─ @babel/plugin-syntax-flow@7.0.0-beta.56
├─ @babel/plugin-transform-for-of@7.0.0-beta.56
│  └─ @babel/helper-plugin-utils@7.0.0-beta.56
├─ @babel/plugin-transform-function-name@7.0.0-beta.56
│  ├─ @babel/helper-function-name@7.0.0-beta.56
│  └─ @babel/helper-plugin-utils@7.0.0-beta.56
├─ @babel/plugin-transform-literals@7.0.0-beta.56
│  └─ @babel/helper-plugin-utils@7.0.0-beta.56
├─ @babel/plugin-transform-modules-commonjs@7.0.0-beta.56
│  ├─ @babel/helper-module-transforms@7.0.0-beta.56
│  ├─ @babel/helper-plugin-utils@7.0.0-beta.56
│  └─ @babel/helper-simple-access@7.0.0-beta.56
├─ @babel/plugin-transform-object-assign@7.0.0-beta.56
│  └─ @babel/helper-plugin-utils@7.0.0-beta.56
├─ @babel/plugin-transform-parameters@7.0.0-beta.56
│  ├─ @babel/helper-call-delegate@7.0.0-beta.56
│  ├─ @babel/helper-get-function-arity@7.0.0-beta.56
│  └─ @babel/helper-plugin-utils@7.0.0-beta.56
├─ @babel/plugin-transform-react-display-name@7.0.0-beta.56
│  └─ @babel/helper-plugin-utils@7.0.0-beta.56
├─ @babel/plugin-transform-react-jsx-source@7.0.0-beta.56
│  ├─ @babel/helper-plugin-utils@7.0.0-beta.56
│  └─ @babel/plugin-syntax-jsx@7.0.0-beta.56
├─ @babel/plugin-transform-react-jsx@7.0.0-beta.56
│  ├─ @babel/helper-builder-react-jsx@7.0.0-beta.56
│  ├─ @babel/helper-plugin-utils@7.0.0-beta.56
│  └─ @babel/plugin-syntax-jsx@7.0.0-beta.56
├─ @babel/plugin-transform-regenerator@7.0.0-beta.56
│  └─ regenerator-transform@^0.13.3
├─ @babel/plugin-transform-shorthand-properties@7.0.0-beta.56
│  └─ @babel/helper-plugin-utils@7.0.0-beta.56
├─ @babel/plugin-transform-spread@7.0.0-beta.56
│  └─ @babel/helper-plugin-utils@7.0.0-beta.56
├─ @babel/plugin-transform-sticky-regex@7.0.0-beta.56
│  ├─ @babel/helper-plugin-utils@7.0.0-beta.56
│  └─ @babel/helper-regex@7.0.0-beta.56
├─ @babel/plugin-transform-template-literals@7.0.0-beta.56
│  ├─ @babel/helper-annotate-as-pure@7.0.0-beta.56
│  └─ @babel/helper-plugin-utils@7.0.0-beta.56
├─ @babel/plugin-transform-typescript@7.0.0-beta.56
│  ├─ @babel/helper-plugin-utils@7.0.0-beta.56
│  └─ @babel/plugin-syntax-typescript@7.0.0-beta.56
├─ @babel/plugin-transform-unicode-regex@7.0.0-beta.56
│  ├─ @babel/helper-plugin-utils@7.0.0-beta.56
│  ├─ @babel/helper-regex@7.0.0-beta.56
│  └─ regexpu-core@^4.1.3
├─ @babel/register@7.0.0-beta.56
│  ├─ core-js@^2.5.7
│  ├─ find-cache-dir@^1.0.0
│  ├─ home-or-tmp@^3.0.0
│  ├─ home-or-tmp@3.0.0
│  ├─ lodash@^4.17.10
│  ├─ mkdirp@^0.5.1
│  ├─ pirates@^4.0.0
│  └─ source-map-support@^0.4.2
├─ @babel/template@7.0.0-beta.56
│  ├─ @babel/code-frame@7.0.0-beta.56
│  ├─ @babel/parser@7.0.0-beta.56
│  ├─ @babel/types@7.0.0-beta.56
│  └─ lodash@^4.17.10
├─ @babel/traverse@7.0.0-beta.56
│  ├─ @babel/code-frame@7.0.0-beta.56
│  ├─ @babel/generator@7.0.0-beta.56
│  ├─ @babel/helper-function-name@7.0.0-beta.56
│  ├─ @babel/helper-split-export-declaration@7.0.0-beta.56
│  ├─ @babel/parser@7.0.0-beta.56
│  ├─ @babel/types@7.0.0-beta.56
│  ├─ debug@^3.1.0
│  ├─ debug@3.1.0
│  │  └─ ms@2.0.0
│  ├─ globals@^11.1.0
│  └─ lodash@^4.17.10
├─ @babel/types@7.0.0-beta.56
│  ├─ esutils@^2.0.2
│  ├─ lodash@^4.17.10
│  └─ to-fast-properties@^2.0.0
├─ abab@2.0.0
├─ abbrev@1.1.1
├─ absolute-path@0.0.0
├─ accepts@1.3.5
│  ├─ mime-types@~2.1.18
│  └─ negotiator@0.6.1
├─ acorn-globals@4.1.0
│  └─ acorn@^5.0.0
├─ acorn@5.7.2
├─ ajv@5.5.2
│  ├─ co@^4.6.0
│  ├─ fast-deep-equal@^1.0.0
│  ├─ fast-json-stable-stringify@^2.0.0
│  └─ json-schema-traverse@^0.3.0
├─ align-text@0.1.4
│  ├─ kind-of@^3.0.2
│  ├─ longest@^1.0.1
│  └─ repeat-string@^1.5.2
├─ amdefine@1.0.1
├─ ansi-colors@1.1.0
│  └─ ansi-wrap@^0.1.0
├─ ansi-cyan@0.1.1
│  └─ ansi-wrap@0.1.0
├─ ansi-escapes@3.1.0
├─ ansi-gray@0.1.1
│  └─ ansi-wrap@0.1.0
├─ ansi-red@0.1.1
│  └─ ansi-wrap@0.1.0
├─ ansi-regex@2.1.1
├─ ansi-styles@3.2.1
│  └─ color-convert@^1.9.0
├─ ansi-wrap@0.1.0
├─ ansi@0.3.1
├─ anymatch@2.0.0
│  ├─ braces@2.3.2
│  │  ├─ arr-flatten@^1.1.0
│  │  ├─ array-unique@^0.3.2
│  │  ├─ extend-shallow@^2.0.1
│  │  ├─ extend-shallow@2.0.1
│  │  │  └─ is-extendable@^0.1.0
│  │  ├─ fill-range@^4.0.0
│  │  ├─ is-extendable@0.1.1
│  │  ├─ isobject@^3.0.1
│  │  ├─ repeat-element@^1.1.2
│  │  ├─ snapdragon-node@^2.0.1
│  │  ├─ snapdragon@^0.8.1
│  │  ├─ split-string@^3.0.2
│  │  └─ to-regex@^3.0.1
│  ├─ define-property@2.0.2
│  │  ├─ is-descriptor@^1.0.2
│  │  └─ isobject@^3.0.1
│  ├─ expand-brackets@2.1.4
│  │  ├─ debug@^2.3.3
│  │  ├─ define-property@^0.2.5
│  │  ├─ define-property@0.2.5
│  │  │  └─ is-descriptor@^0.1.0
│  │  ├─ extend-shallow@^2.0.1
│  │  ├─ extend-shallow@2.0.1
│  │  │  └─ is-extendable@^0.1.0
│  │  ├─ is-descriptor@0.1.6
│  │  │  ├─ is-accessor-descriptor@^0.1.6
│  │  │  ├─ is-data-descriptor@^0.1.4
│  │  │  └─ kind-of@^5.0.0
│  │  ├─ is-extendable@0.1.1
│  │  ├─ kind-of@5.1.0
│  │  ├─ posix-character-classes@^0.1.0
│  │  ├─ regex-not@^1.0.0
│  │  ├─ snapdragon@^0.8.1
│  │  └─ to-regex@^3.0.1
│  ├─ extend-shallow@3.0.2
│  │  ├─ assign-symbols@^1.0.0
│  │  └─ is-extendable@^1.0.1
│  ├─ extglob@2.0.4
│  │  ├─ array-unique@^0.3.2
│  │  ├─ define-property@^1.0.0
│  │  ├─ define-property@1.0.0
│  │  │  └─ is-descriptor@^1.0.0
│  │  ├─ expand-brackets@^2.1.4
│  │  ├─ extend-shallow@^2.0.1
│  │  ├─ extend-shallow@2.0.1
│  │  │  └─ is-extendable@^0.1.0
│  │  ├─ fragment-cache@^0.2.1
│  │  ├─ is-extendable@0.1.1
│  │  ├─ regex-not@^1.0.0
│  │  ├─ snapdragon@^0.8.1
│  │  └─ to-regex@^3.0.1
│  ├─ fill-range@4.0.0
│  │  ├─ extend-shallow@^2.0.1
│  │  ├─ extend-shallow@2.0.1
│  │  │  └─ is-extendable@^0.1.0
│  │  ├─ is-extendable@0.1.1
│  │  ├─ is-number@^3.0.0
│  │  ├─ repeat-string@^1.6.1
│  │  └─ to-regex-range@^2.1.0
│  ├─ is-accessor-descriptor@0.1.6
│  │  ├─ kind-of@^3.0.2
│  │  └─ kind-of@3.2.2
│  │     └─ is-buffer@^1.1.5
│  ├─ is-data-descriptor@0.1.4
│  │  ├─ kind-of@^3.0.2
│  │  └─ kind-of@3.2.2
│  │     └─ is-buffer@^1.1.5
│  ├─ is-extendable@1.0.1
│  │  └─ is-plain-object@^2.0.4
│  ├─ kind-of@6.0.2
│  ├─ micromatch@^3.1.4
│  ├─ micromatch@3.1.10
│  │  ├─ arr-diff@^4.0.0
│  │  ├─ array-unique@^0.3.2
│  │  ├─ braces@^2.3.1
│  │  ├─ define-property@^2.0.2
│  │  ├─ extend-shallow@^3.0.2
│  │  ├─ extglob@^2.0.4
│  │  ├─ fragment-cache@^0.2.1
│  │  ├─ kind-of@^6.0.2
│  │  ├─ nanomatch@^1.2.9
│  │  ├─ object.pick@^1.3.0
│  │  ├─ regex-not@^1.0.0
│  │  ├─ snapdragon@^0.8.1
│  │  └─ to-regex@^3.0.2
│  └─ normalize-path@^2.1.1
├─ append-transform@1.0.0
│  └─ default-require-extensions@^2.0.0
├─ aproba@1.2.0
├─ are-we-there-yet@1.1.5
│  ├─ delegates@^1.0.0
│  └─ readable-stream@^2.0.6
├─ argparse@1.0.10
│  └─ sprintf-js@~1.0.2
├─ arr-diff@4.0.0
├─ arr-flatten@1.1.0
├─ arr-union@3.1.0
├─ array-equal@1.0.0
├─ array-filter@0.0.1
├─ array-map@0.0.0
├─ array-reduce@0.0.0
├─ array-slice@0.2.3
├─ array-unique@0.3.2
├─ arrify@1.0.1
├─ art@0.10.3
├─ asap@2.0.6
├─ asn1@0.2.4
│  └─ safer-buffer@~2.1.0
├─ assert-plus@1.0.0
├─ assign-symbols@1.0.0
├─ astral-regex@1.0.0
├─ async-limiter@1.0.0
├─ async@2.6.1
│  └─ lodash@^4.17.10
├─ asynckit@0.4.0
├─ atob@2.1.2
├─ aws-sign2@0.7.0
├─ aws4@1.8.0
├─ babel-code-frame@6.26.0
│  ├─ ansi-styles@2.2.1
│  ├─ chalk@^1.1.3
│  ├─ chalk@1.1.3
│  │  ├─ ansi-styles@^2.2.1
│  │  ├─ escape-string-regexp@^1.0.2
│  │  ├─ has-ansi@^2.0.0
│  │  ├─ strip-ansi@^3.0.0
│  │  └─ supports-color@^2.0.0
│  ├─ esutils@^2.0.2
│  ├─ js-tokens@^3.0.2
│  └─ supports-color@2.0.0
├─ babel-core@6.26.3
│  ├─ babel-code-frame@^6.26.0
│  ├─ babel-generator@^6.26.0
│  ├─ babel-helpers@^6.24.1
│  ├─ babel-messages@^6.23.0
│  ├─ babel-register@^6.26.0
│  ├─ babel-runtime@^6.26.0
│  ├─ babel-template@^6.26.0
│  ├─ babel-traverse@^6.26.0
│  ├─ babel-types@^6.26.0
│  ├─ babylon@^6.18.0
│  ├─ convert-source-map@^1.5.1
│  ├─ debug@^2.6.9
│  ├─ json5@^0.5.1
│  ├─ lodash@^4.17.4
│  ├─ minimatch@^3.0.4
│  ├─ path-is-absolute@^1.0.1
│  ├─ private@^0.1.8
│  ├─ slash@^1.0.0
│  └─ source-map@^0.5.7
├─ babel-generator@6.26.1
│  ├─ babel-messages@^6.23.0
│  ├─ babel-runtime@^6.26.0
│  ├─ babel-types@^6.26.0
│  ├─ detect-indent@^4.0.0
│  ├─ jsesc@^1.3.0
│  ├─ jsesc@1.3.0
│  ├─ lodash@^4.17.4
│  ├─ source-map@^0.5.7
│  └─ trim-right@^1.0.1
├─ babel-helper-builder-react-jsx@6.26.0
│  ├─ babel-runtime@^6.26.0
│  ├─ babel-types@^6.26.0
│  └─ esutils@^2.0.2
├─ babel-helper-call-delegate@6.24.1
│  ├─ babel-helper-hoist-variables@^6.24.1
│  ├─ babel-runtime@^6.22.0
│  ├─ babel-traverse@^6.24.1
│  └─ babel-types@^6.24.1
├─ babel-helper-define-map@6.26.0
│  ├─ babel-helper-function-name@^6.24.1
│  ├─ babel-runtime@^6.26.0
│  ├─ babel-types@^6.26.0
│  └─ lodash@^4.17.4
├─ babel-helper-function-name@6.24.1
│  ├─ babel-helper-get-function-arity@^6.24.1
│  ├─ babel-runtime@^6.22.0
│  ├─ babel-template@^6.24.1
│  ├─ babel-traverse@^6.24.1
│  └─ babel-types@^6.24.1
├─ babel-helper-get-function-arity@6.24.1
│  ├─ babel-runtime@^6.22.0
│  └─ babel-types@^6.24.1
├─ babel-helper-hoist-variables@6.24.1
│  ├─ babel-runtime@^6.22.0
│  └─ babel-types@^6.24.1
├─ babel-helper-optimise-call-expression@6.24.1
│  ├─ babel-runtime@^6.22.0
│  └─ babel-types@^6.24.1
├─ babel-helper-regex@6.26.0
│  ├─ babel-runtime@^6.26.0
│  ├─ babel-types@^6.26.0
│  └─ lodash@^4.17.4
├─ babel-helper-replace-supers@6.24.1
│  ├─ babel-helper-optimise-call-expression@^6.24.1
│  ├─ babel-messages@^6.23.0
│  ├─ babel-runtime@^6.22.0
│  ├─ babel-template@^6.24.1
│  ├─ babel-traverse@^6.24.1
│  └─ babel-types@^6.24.1
├─ babel-helpers@6.24.1
│  ├─ babel-runtime@^6.22.0
│  └─ babel-template@^6.24.1
├─ babel-jest@23.4.2
│  ├─ babel-plugin-istanbul@^4.1.6
│  └─ babel-preset-jest@^23.2.0
├─ babel-messages@6.23.0
│  └─ babel-runtime@^6.22.0
├─ babel-plugin-check-es2015-constants@6.22.0
│  └─ babel-runtime@^6.22.0
├─ babel-plugin-istanbul@4.1.6
│  ├─ babel-plugin-syntax-object-rest-spread@^6.13.0
│  ├─ find-up@^2.1.0
│  ├─ istanbul-lib-instrument@^1.10.1
│  └─ test-exclude@^4.2.1
├─ babel-plugin-jest-hoist@23.2.0
├─ babel-plugin-syntax-class-properties@6.13.0
├─ babel-plugin-syntax-flow@6.18.0
├─ babel-plugin-syntax-jsx@6.18.0
├─ babel-plugin-syntax-object-rest-spread@6.13.0
├─ babel-plugin-syntax-trailing-function-commas@6.22.0
├─ babel-plugin-transform-class-properties@6.24.1
│  ├─ babel-helper-function-name@^6.24.1
│  ├─ babel-plugin-syntax-class-properties@^6.8.0
│  ├─ babel-runtime@^6.22.0
│  └─ babel-template@^6.24.1
├─ babel-plugin-transform-es2015-arrow-functions@6.22.0
│  └─ babel-runtime@^6.22.0
├─ babel-plugin-transform-es2015-block-scoped-functions@6.22.0
│  └─ babel-runtime@^6.22.0
├─ babel-plugin-transform-es2015-block-scoping@6.26.0
│  ├─ babel-runtime@^6.26.0
│  ├─ babel-template@^6.26.0
│  ├─ babel-traverse@^6.26.0
│  ├─ babel-types@^6.26.0
│  └─ lodash@^4.17.4
├─ babel-plugin-transform-es2015-classes@6.24.1
│  ├─ babel-helper-define-map@^6.24.1
│  ├─ babel-helper-function-name@^6.24.1
│  ├─ babel-helper-optimise-call-expression@^6.24.1
│  ├─ babel-helper-replace-supers@^6.24.1
│  ├─ babel-messages@^6.23.0
│  ├─ babel-runtime@^6.22.0
│  ├─ babel-template@^6.24.1
│  ├─ babel-traverse@^6.24.1
│  └─ babel-types@^6.24.1
├─ babel-plugin-transform-es2015-computed-properties@6.24.1
│  ├─ babel-runtime@^6.22.0
│  └─ babel-template@^6.24.1
├─ babel-plugin-transform-es2015-destructuring@6.23.0
│  └─ babel-runtime@^6.22.0
├─ babel-plugin-transform-es2015-for-of@6.23.0
│  └─ babel-runtime@^6.22.0
├─ babel-plugin-transform-es2015-function-name@6.24.1
│  ├─ babel-helper-function-name@^6.24.1
│  ├─ babel-runtime@^6.22.0
│  └─ babel-types@^6.24.1
├─ babel-plugin-transform-es2015-literals@6.22.0
│  └─ babel-runtime@^6.22.0
├─ babel-plugin-transform-es2015-modules-commonjs@6.26.2
│  ├─ babel-plugin-transform-strict-mode@^6.24.1
│  ├─ babel-runtime@^6.26.0
│  ├─ babel-template@^6.26.0
│  └─ babel-types@^6.26.0
├─ babel-plugin-transform-es2015-object-super@6.24.1
│  ├─ babel-helper-replace-supers@^6.24.1
│  └─ babel-runtime@^6.22.0
├─ babel-plugin-transform-es2015-parameters@6.24.1
│  ├─ babel-helper-call-delegate@^6.24.1
│  ├─ babel-helper-get-function-arity@^6.24.1
│  ├─ babel-runtime@^6.22.0
│  ├─ babel-template@^6.24.1
│  ├─ babel-traverse@^6.24.1
│  └─ babel-types@^6.24.1
├─ babel-plugin-transform-es2015-shorthand-properties@6.24.1
│  ├─ babel-runtime@^6.22.0
│  └─ babel-types@^6.24.1
├─ babel-plugin-transform-es2015-spread@6.22.0
│  └─ babel-runtime@^6.22.0
├─ babel-plugin-transform-es2015-sticky-regex@6.24.1
│  ├─ babel-helper-regex@^6.24.1
│  ├─ babel-runtime@^6.22.0
│  └─ babel-types@^6.24.1
├─ babel-plugin-transform-es2015-template-literals@6.22.0
│  └─ babel-runtime@^6.22.0
├─ babel-plugin-transform-es2015-unicode-regex@6.24.1
│  ├─ babel-helper-regex@^6.24.1
│  ├─ babel-runtime@^6.22.0
│  ├─ regexpu-core@^2.0.0
│  ├─ regexpu-core@2.0.0
│  │  ├─ regenerate@^1.2.1
│  │  ├─ regjsgen@^0.2.0
│  │  └─ regjsparser@^0.1.4
│  ├─ regjsgen@0.2.0
│  └─ regjsparser@0.1.5
│     └─ jsesc@~0.5.0
├─ babel-plugin-transform-es3-member-expression-literals@6.22.0
│  └─ babel-runtime@^6.22.0
├─ babel-plugin-transform-es3-property-literals@6.22.0
│  └─ babel-runtime@^6.22.0
├─ babel-plugin-transform-flow-strip-types@6.22.0
│  ├─ babel-plugin-syntax-flow@^6.18.0
│  └─ babel-runtime@^6.22.0
├─ babel-plugin-transform-object-rest-spread@6.26.0
│  ├─ babel-plugin-syntax-object-rest-spread@^6.8.0
│  └─ babel-runtime@^6.26.0
├─ babel-plugin-transform-react-display-name@6.25.0
│  └─ babel-runtime@^6.22.0
├─ babel-plugin-transform-react-jsx@6.24.1
│  ├─ babel-helper-builder-react-jsx@^6.24.1
│  ├─ babel-plugin-syntax-jsx@^6.8.0
│  └─ babel-runtime@^6.22.0
├─ babel-plugin-transform-strict-mode@6.24.1
│  ├─ babel-runtime@^6.22.0
│  └─ babel-types@^6.24.1
├─ babel-preset-es2015-node@6.1.1
│  ├─ babel-plugin-transform-es2015-destructuring@6.x
│  ├─ babel-plugin-transform-es2015-function-name@6.x
│  ├─ babel-plugin-transform-es2015-modules-commonjs@6.x
│  ├─ babel-plugin-transform-es2015-parameters@6.x
│  ├─ babel-plugin-transform-es2015-shorthand-properties@6.x
│  ├─ babel-plugin-transform-es2015-spread@6.x
│  ├─ babel-plugin-transform-es2015-sticky-regex@6.x
│  ├─ babel-plugin-transform-es2015-unicode-regex@6.x
│  └─ semver@5.x
├─ babel-preset-fbjs@2.2.0
│  ├─ babel-plugin-check-es2015-constants@^6.8.0
│  ├─ babel-plugin-syntax-class-properties@^6.8.0
│  ├─ babel-plugin-syntax-flow@^6.8.0
│  ├─ babel-plugin-syntax-jsx@^6.8.0
│  ├─ babel-plugin-syntax-object-rest-spread@^6.8.0
│  ├─ babel-plugin-syntax-trailing-function-commas@^6.8.0
│  ├─ babel-plugin-transform-class-properties@^6.8.0
│  ├─ babel-plugin-transform-es2015-arrow-functions@^6.8.0
│  ├─ babel-plugin-transform-es2015-block-scoped-functions@^6.8.0
│  ├─ babel-plugin-transform-es2015-block-scoping@^6.8.0
│  ├─ babel-plugin-transform-es2015-classes@^6.8.0
│  ├─ babel-plugin-transform-es2015-computed-properties@^6.8.0
│  ├─ babel-plugin-transform-es2015-destructuring@^6.8.0
│  ├─ babel-plugin-transform-es2015-for-of@^6.8.0
│  ├─ babel-plugin-transform-es2015-function-name@^6.8.0
│  ├─ babel-plugin-transform-es2015-literals@^6.8.0
│  ├─ babel-plugin-transform-es2015-modules-commonjs@^6.8.0
│  ├─ babel-plugin-transform-es2015-object-super@^6.8.0
│  ├─ babel-plugin-transform-es2015-parameters@^6.8.0
│  ├─ babel-plugin-transform-es2015-shorthand-properties@^6.8.0
│  ├─ babel-plugin-transform-es2015-spread@^6.8.0
│  ├─ babel-plugin-transform-es2015-template-literals@^6.8.0
│  ├─ babel-plugin-transform-es3-member-expression-literals@^6.8.0
│  ├─ babel-plugin-transform-es3-property-literals@^6.8.0
│  ├─ babel-plugin-transform-flow-strip-types@^6.8.0
│  ├─ babel-plugin-transform-object-rest-spread@^6.8.0
│  ├─ babel-plugin-transform-react-display-name@^6.8.0
│  └─ babel-plugin-transform-react-jsx@^6.8.0
├─ babel-preset-jest@23.2.0
│  ├─ babel-plugin-jest-hoist@^23.2.0
│  └─ babel-plugin-syntax-object-rest-spread@^6.13.0
├─ babel-register@6.26.0
│  ├─ babel-core@^6.26.0
│  ├─ babel-runtime@^6.26.0
│  ├─ core-js@^2.5.0
│  ├─ home-or-tmp@^2.0.0
│  ├─ lodash@^4.17.4
│  ├─ mkdirp@^0.5.1
│  └─ source-map-support@^0.4.15
├─ babel-runtime@6.26.0
│  ├─ core-js@^2.4.0
│  └─ regenerator-runtime@^0.11.0
├─ babel-template@6.26.0
│  ├─ babel-runtime@^6.26.0
│  ├─ babel-traverse@^6.26.0
│  ├─ babel-types@^6.26.0
│  ├─ babylon@^6.18.0
│  └─ lodash@^4.17.4
├─ babel-traverse@6.26.0
│  ├─ babel-code-frame@^6.26.0
│  ├─ babel-messages@^6.23.0
│  ├─ babel-runtime@^6.26.0
│  ├─ babel-types@^6.26.0
│  ├─ babylon@^6.18.0
│  ├─ debug@^2.6.8
│  ├─ globals@^9.18.0
│  ├─ globals@9.18.0
│  ├─ invariant@^2.2.2
│  └─ lodash@^4.17.4
├─ babel-types@6.26.0
│  ├─ babel-runtime@^6.26.0
│  ├─ esutils@^2.0.2
│  ├─ lodash@^4.17.4
│  ├─ to-fast-properties@^1.0.3
│  └─ to-fast-properties@1.0.3
├─ babylon@6.18.0
├─ balanced-match@1.0.0
├─ base@0.11.2
│  ├─ cache-base@^1.0.1
│  ├─ class-utils@^0.3.5
│  ├─ component-emitter@^1.2.1
│  ├─ define-property@^1.0.0
│  ├─ define-property@1.0.0
│  │  └─ is-descriptor@^1.0.0
│  ├─ isobject@^3.0.1
│  ├─ mixin-deep@^1.2.0
│  └─ pascalcase@^0.1.1
├─ base64-js@1.3.0
├─ basic-auth@2.0.0
│  ├─ safe-buffer@5.1.1
│  └─ safe-buffer@5.1.1
├─ bcrypt-pbkdf@1.0.2
│  └─ tweetnacl@^0.14.3
├─ big-integer@1.6.34
├─ bplist-creator@0.0.7
│  └─ stream-buffers@~2.2.0
├─ bplist-parser@0.1.1
│  └─ big-integer@^1.6.7
├─ brace-expansion@1.1.11
│  ├─ balanced-match@^1.0.0
│  └─ concat-map@0.0.1
├─ braces@1.8.5
│  ├─ expand-range@^1.8.1
│  ├─ preserve@^0.2.0
│  └─ repeat-element@^1.1.2
├─ browser-process-hrtime@0.1.2
├─ browser-resolve@1.11.3
│  ├─ resolve@1.1.7
│  └─ resolve@1.1.7
├─ bser@2.0.0
│  └─ node-int64@^0.4.0
├─ buffer-from@1.1.1
├─ builtin-modules@1.1.1
├─ bytes@3.0.0
├─ cache-base@1.0.1
│  ├─ collection-visit@^1.0.0
│  ├─ component-emitter@^1.2.1
│  ├─ get-value@^2.0.6
│  ├─ has-value@^1.0.0
│  ├─ isobject@^3.0.1
│  ├─ set-value@^2.0.0
│  ├─ to-object-path@^0.3.0
│  ├─ union-value@^1.0.0
│  └─ unset-value@^1.0.0
├─ callsites@2.0.0
├─ camelcase@4.1.0
├─ capture-exit@1.2.0
│  └─ rsvp@^3.3.3
├─ caseless@0.12.0
├─ center-align@0.1.3
│  ├─ align-text@^0.1.3
│  └─ lazy-cache@^1.0.3
├─ chalk@2.4.1
│  ├─ ansi-styles@^3.2.1
│  ├─ escape-string-regexp@^1.0.5
│  └─ supports-color@^5.3.0
├─ chardet@0.4.2
├─ chownr@1.0.1
├─ ci-info@1.4.0
├─ class-utils@0.3.6
│  ├─ arr-union@^3.1.0
│  ├─ define-property@^0.2.5
│  ├─ isobject@^3.0.0
│  └─ static-extend@^0.1.1
├─ cli-cursor@2.1.0
│  └─ restore-cursor@^2.0.0
├─ cli-width@2.2.0
├─ cliui@4.1.0
│  ├─ ansi-regex@3.0.0
│  ├─ string-width@^2.1.1
│  ├─ strip-ansi@^4.0.0
│  ├─ strip-ansi@4.0.0
│  │  └─ ansi-regex@^3.0.0
│  └─ wrap-ansi@^2.0.0
├─ co@4.6.0
├─ code-point-at@1.1.0
├─ collection-visit@1.0.0
│  ├─ map-visit@^1.0.0
│  └─ object-visit@^1.0.0
├─ color-convert@1.9.2
│  └─ color-name@1.1.1
├─ color-name@1.1.1
├─ color-support@1.1.3
├─ combined-stream@1.0.6
│  └─ delayed-stream@~1.0.0
├─ commander@2.17.1
├─ commondir@1.0.1
├─ compare-versions@3.3.1
├─ component-emitter@1.2.1
├─ compressible@2.0.14
│  └─ mime-db@>= 1.34.0 < 2
├─ compression@1.7.3
│  ├─ accepts@~1.3.5
│  ├─ bytes@3.0.0
│  ├─ compressible@~2.0.14
│  ├─ debug@2.6.9
│  ├─ on-headers@~1.0.1
│  ├─ safe-buffer@5.1.2
│  └─ vary@~1.1.2
├─ concat-map@0.0.1
├─ concat-stream@1.6.2
│  ├─ buffer-from@^1.0.0
│  ├─ inherits@^2.0.3
│  ├─ readable-stream@^2.2.2
│  └─ typedarray@^0.0.6
├─ connect@3.6.6
│  ├─ debug@2.6.9
│  ├─ finalhandler@1.1.0
│  ├─ parseurl@~1.3.2
│  └─ utils-merge@1.0.1
├─ console-control-strings@1.1.0
├─ convert-source-map@1.5.1
├─ copy-descriptor@0.1.1
├─ core-js@2.5.7
├─ core-util-is@1.0.2
├─ cosmiconfig@5.0.6
│  ├─ is-directory@^0.3.1
│  ├─ js-yaml@^3.9.0
│  ├─ parse-json@^4.0.0
│  └─ parse-json@4.0.0
│     ├─ error-ex@^1.3.1
│     └─ json-parse-better-errors@^1.0.1
├─ create-react-class@15.6.3
│  ├─ fbjs@^0.8.9
│  ├─ loose-envify@^1.3.1
│  └─ object-assign@^4.1.1
├─ cross-spawn@5.1.0
│  ├─ lru-cache@^4.0.1
│  ├─ shebang-command@^1.2.0
│  └─ which@^1.2.9
├─ cssom@0.3.4
├─ cssstyle@1.1.1
│  └─ cssom@0.3.x
├─ dashdash@1.14.1
│  └─ assert-plus@^1.0.0
├─ data-urls@1.0.1
│  ├─ abab@^2.0.0
│  ├─ whatwg-mimetype@^2.1.0
│  ├─ whatwg-url@^7.0.0
│  └─ whatwg-url@7.0.0
│     ├─ lodash.sortby@^4.7.0
│     ├─ tr46@^1.0.1
│     └─ webidl-conversions@^4.0.2
├─ debug@2.6.9
│  └─ ms@2.0.0
├─ decamelize@1.2.0
├─ decode-uri-component@0.2.0
├─ deep-extend@0.6.0
├─ deep-is@0.1.3
├─ default-require-extensions@2.0.0
│  └─ strip-bom@^3.0.0
├─ define-properties@1.1.3
│  └─ object-keys@^1.0.12
├─ define-property@0.2.5
│  ├─ is-accessor-descriptor@0.1.6
│  │  ├─ kind-of@^3.0.2
│  │  └─ kind-of@3.2.2
│  │     └─ is-buffer@^1.1.5
│  ├─ is-data-descriptor@0.1.4
│  │  ├─ kind-of@^3.0.2
│  │  └─ kind-of@3.2.2
│  │     └─ is-buffer@^1.1.5
│  ├─ is-descriptor@^0.1.0
│  ├─ is-descriptor@0.1.6
│  │  ├─ is-accessor-descriptor@^0.1.6
│  │  ├─ is-data-descriptor@^0.1.4
│  │  └─ kind-of@^5.0.0
│  └─ kind-of@5.1.0
├─ delayed-stream@1.0.0
├─ delegates@1.0.0
├─ denodeify@1.2.1
├─ depd@1.1.2
├─ destroy@1.0.4
├─ detect-indent@4.0.0
│  └─ repeating@^2.0.0
├─ detect-libc@1.0.3
├─ detect-newline@2.1.0
├─ diff@3.5.0
├─ dom-walk@0.1.1
├─ domexception@1.0.1
│  └─ webidl-conversions@^4.0.2
├─ ecc-jsbn@0.1.2
│  ├─ jsbn@~0.1.0
│  └─ safer-buffer@^2.1.0
├─ ee-first@1.1.1
├─ encodeurl@1.0.2
├─ encoding@0.1.12
│  └─ iconv-lite@~0.4.13
├─ envinfo@5.10.0
├─ error-ex@1.3.2
│  └─ is-arrayish@^0.2.1
├─ errorhandler@1.5.0
│  ├─ accepts@~1.3.3
│  └─ escape-html@~1.0.3
├─ es-abstract@1.12.0
│  ├─ es-to-primitive@^1.1.1
│  ├─ function-bind@^1.1.1
│  ├─ has@^1.0.1
│  ├─ is-callable@^1.1.3
│  └─ is-regex@^1.0.4
├─ es-to-primitive@1.1.1
│  ├─ is-callable@^1.1.1
│  ├─ is-date-object@^1.0.1
│  └─ is-symbol@^1.0.1
├─ escape-html@1.0.3
├─ escape-string-regexp@1.0.5
├─ escodegen@1.11.0
│  ├─ esprima@^3.1.3
│  ├─ esprima@3.1.3
│  ├─ estraverse@^4.2.0
│  ├─ esutils@^2.0.2
│  ├─ optionator@^0.8.1
│  ├─ source-map@~0.6.1
│  └─ source-map@0.6.1
├─ esprima@4.0.1
├─ estraverse@4.2.0
├─ esutils@2.0.2
├─ etag@1.8.1
├─ event-target-shim@1.1.1
├─ eventemitter3@3.1.0
├─ exec-sh@0.2.2
│  └─ merge@^1.2.0
├─ execa@0.7.0
│  ├─ cross-spawn@^5.0.1
│  ├─ get-stream@^3.0.0
│  ├─ is-stream@^1.1.0
│  ├─ npm-run-path@^2.0.0
│  ├─ p-finally@^1.0.0
│  ├─ signal-exit@^3.0.0
│  └─ strip-eof@^1.0.0
├─ exit@0.1.2
├─ expand-brackets@0.1.5
│  └─ is-posix-bracket@^0.1.0
├─ expand-range@1.8.2
│  └─ fill-range@^2.1.0
├─ expect@23.5.0
│  ├─ ansi-styles@^3.2.0
│  ├─ jest-diff@^23.5.0
│  ├─ jest-get-type@^22.1.0
│  ├─ jest-matcher-utils@^23.5.0
│  ├─ jest-message-util@^23.4.0
│  └─ jest-regex-util@^23.3.0
├─ extend-shallow@2.0.1
│  └─ is-extendable@^0.1.0
├─ extend@3.0.2
├─ external-editor@2.2.0
│  ├─ chardet@^0.4.0
│  ├─ iconv-lite@^0.4.17
│  └─ tmp@^0.0.33
├─ extglob@0.3.2
│  └─ is-extglob@^1.0.0
├─ extsprintf@1.3.0
├─ fancy-log@1.3.2
│  ├─ ansi-gray@^0.1.1
│  ├─ color-support@^1.1.3
│  └─ time-stamp@^1.0.0
├─ fast-deep-equal@1.1.0
├─ fast-json-stable-stringify@2.0.0
├─ fast-levenshtein@2.0.6
├─ fb-watchman@2.0.0
│  └─ bser@^2.0.0
├─ fbjs-scripts@0.8.3
│  ├─ ansi-colors@^1.0.1
│  ├─ babel-core@^6.7.2
│  ├─ babel-preset-fbjs@^2.1.2
│  ├─ babel-preset-fbjs@2.3.0
│  │  ├─ babel-plugin-check-es2015-constants@^6.8.0
│  │  ├─ babel-plugin-syntax-class-properties@^6.8.0
│  │  ├─ babel-plugin-syntax-flow@^6.8.0
│  │  ├─ babel-plugin-syntax-jsx@^6.8.0
│  │  ├─ babel-plugin-syntax-object-rest-spread@^6.8.0
│  │  ├─ babel-plugin-syntax-trailing-function-commas@^6.8.0
│  │  ├─ babel-plugin-transform-class-properties@^6.8.0
│  │  ├─ babel-plugin-transform-es2015-arrow-functions@^6.8.0
│  │  ├─ babel-plugin-transform-es2015-block-scoped-functions@^6.8.0
│  │  ├─ babel-plugin-transform-es2015-block-scoping@^6.8.0
│  │  ├─ babel-plugin-transform-es2015-classes@^6.8.0
│  │  ├─ babel-plugin-transform-es2015-computed-properties@^6.8.0
│  │  ├─ babel-plugin-transform-es2015-destructuring@^6.8.0
│  │  ├─ babel-plugin-transform-es2015-for-of@^6.8.0
│  │  ├─ babel-plugin-transform-es2015-function-name@^6.8.0
│  │  ├─ babel-plugin-transform-es2015-literals@^6.8.0
│  │  ├─ babel-plugin-transform-es2015-modules-commonjs@^6.8.0
│  │  ├─ babel-plugin-transform-es2015-object-super@^6.8.0
│  │  ├─ babel-plugin-transform-es2015-parameters@^6.8.0
│  │  ├─ babel-plugin-transform-es2015-shorthand-properties@^6.8.0
│  │  ├─ babel-plugin-transform-es2015-spread@^6.8.0
│  │  ├─ babel-plugin-transform-es2015-template-literals@^6.8.0
│  │  ├─ babel-plugin-transform-es3-member-expression-literals@^6.8.0
│  │  ├─ babel-plugin-transform-es3-property-literals@^6.8.0
│  │  ├─ babel-plugin-transform-flow-strip-types@^6.8.0
│  │  ├─ babel-plugin-transform-object-rest-spread@^6.8.0
│  │  ├─ babel-plugin-transform-react-display-name@^6.8.0
│  │  └─ babel-plugin-transform-react-jsx@^6.8.0
│  ├─ core-js@^2.4.1
│  ├─ cross-spawn@^5.1.0
│  ├─ fancy-log@^1.3.2
│  ├─ object-assign@^4.0.1
│  ├─ plugin-error@^0.1.2
│  ├─ semver@^5.1.0
│  └─ through2@^2.0.0
├─ fbjs@0.8.17
│  ├─ core-js@^1.0.0
│  ├─ core-js@1.2.7
│  ├─ isomorphic-fetch@^2.1.1
│  ├─ loose-envify@^1.0.0
│  ├─ object-assign@^4.1.0
│  ├─ promise@^7.1.1
│  ├─ setimmediate@^1.0.5
│  └─ ua-parser-js@^0.7.18
├─ figures@2.0.0
│  └─ escape-string-regexp@^1.0.5
├─ filename-regex@2.0.1
├─ fileset@2.0.3
│  ├─ glob@^7.0.3
│  └─ minimatch@^3.0.3
├─ fill-range@2.2.4
│  ├─ is-number@^2.1.0
│  ├─ is-number@2.1.0
│  │  └─ kind-of@^3.0.2
│  ├─ isobject@^2.0.0
│  ├─ isobject@2.1.0
│  │  └─ isarray@1.0.0
│  ├─ randomatic@^3.0.0
│  ├─ repeat-element@^1.1.2
│  └─ repeat-string@^1.5.2
├─ finalhandler@1.1.0
│  ├─ debug@2.6.9
│  ├─ encodeurl@~1.0.1
│  ├─ escape-html@~1.0.3
│  ├─ on-finished@~2.3.0
│  ├─ parseurl@~1.3.2
│  ├─ statuses@~1.3.1
│  └─ unpipe@~1.0.0
├─ find-cache-dir@1.0.0
│  ├─ commondir@^1.0.1
│  ├─ make-dir@^1.0.0
│  └─ pkg-dir@^2.0.0
├─ find-up@2.1.0
│  └─ locate-path@^2.0.0
├─ for-in@1.0.2
├─ for-own@0.1.5
│  └─ for-in@^1.0.1
├─ forever-agent@0.6.1
├─ form-data@2.3.2
│  ├─ asynckit@^0.4.0
│  ├─ combined-stream@1.0.6
│  └─ mime-types@^2.1.12
├─ fragment-cache@0.2.1
│  └─ map-cache@^0.2.2
├─ fresh@0.5.2
├─ fs-extra@1.0.0
│  ├─ graceful-fs@^4.1.2
│  ├─ jsonfile@^2.1.0
│  └─ klaw@^1.0.0
├─ fs-minipass@1.2.5
│  └─ minipass@^2.2.1
├─ fs.realpath@1.0.0
├─ fsevents@1.2.4
│  ├─ nan@^2.9.2
│  └─ node-pre-gyp@^0.10.0
├─ function-bind@1.1.1
├─ gauge@1.2.7
│  ├─ ansi@^0.3.0
│  ├─ has-unicode@^2.0.0
│  ├─ lodash.pad@^4.1.0
│  ├─ lodash.padend@^4.1.0
│  └─ lodash.padstart@^4.1.0
├─ get-caller-file@1.0.3
├─ get-stream@3.0.0
├─ get-value@2.0.6
├─ getpass@0.1.7
│  └─ assert-plus@^1.0.0
├─ glob-base@0.3.0
│  ├─ glob-parent@^2.0.0
│  └─ is-glob@^2.0.0
├─ glob-parent@2.0.0
│  └─ is-glob@^2.0.0
├─ glob@7.1.3
│  ├─ fs.realpath@^1.0.0
│  ├─ inflight@^1.0.4
│  ├─ inherits@2
│  ├─ minimatch@^3.0.4
│  ├─ once@^1.3.0
│  └─ path-is-absolute@^1.0.0
├─ global@4.3.2
│  ├─ min-document@^2.19.0
│  └─ process@~0.5.1
├─ globals@11.7.0
├─ graceful-fs@4.1.11
├─ growly@1.3.0
├─ handlebars@4.0.11
│  ├─ async@^1.4.0
│  ├─ async@1.5.2
│  ├─ optimist@^0.6.1
│  ├─ source-map@^0.4.4
│  ├─ source-map@0.4.4
│  │  └─ amdefine@>=0.0.4
│  └─ uglify-js@^2.6
├─ har-schema@2.0.0
├─ har-validator@5.1.0
│  ├─ ajv@^5.3.0
│  └─ har-schema@^2.0.0
├─ has-ansi@2.0.0
│  └─ ansi-regex@^2.0.0
├─ has-flag@3.0.0
├─ has-unicode@2.0.1
├─ has-value@1.0.0
│  ├─ get-value@^2.0.6
│  ├─ has-values@^1.0.0
│  └─ isobject@^3.0.0
├─ has-values@1.0.0
│  ├─ is-number@^3.0.0
│  ├─ kind-of@^4.0.0
│  └─ kind-of@4.0.0
│     └─ is-buffer@^1.1.5
├─ has@1.0.3
│  └─ function-bind@^1.1.1
├─ home-or-tmp@2.0.0
│  ├─ os-homedir@^1.0.0
│  └─ os-tmpdir@^1.0.1
├─ hosted-git-info@2.7.1
├─ html-encoding-sniffer@1.0.2
│  └─ whatwg-encoding@^1.0.1
├─ http-errors@1.6.3
│  ├─ depd@~1.1.2
│  ├─ inherits@2.0.3
│  ├─ setprototypeof@1.1.0
│  ├─ statuses@>= 1.4.0 < 2
│  └─ statuses@1.5.0
├─ http-signature@1.2.0
│  ├─ assert-plus@^1.0.0
│  ├─ jsprim@^1.2.2
│  └─ sshpk@^1.7.0
├─ iconv-lite@0.4.24
│  └─ safer-buffer@>= 2.1.2 < 3
├─ ignore-walk@3.0.1
│  └─ minimatch@^3.0.4
├─ image-size@0.6.3
├─ import-local@1.0.0
│  ├─ pkg-dir@^2.0.0
│  └─ resolve-cwd@^2.0.0
├─ imurmurhash@0.1.4
├─ inflight@1.0.6
│  ├─ once@^1.3.0
│  └─ wrappy@1
├─ inherits@2.0.3
├─ ini@1.3.5
├─ inquirer@3.3.0
│  ├─ ansi-escapes@^3.0.0
│  ├─ ansi-regex@3.0.0
│  ├─ chalk@^2.0.0
│  ├─ cli-cursor@^2.1.0
│  ├─ cli-width@^2.0.0
│  ├─ external-editor@^2.0.4
│  ├─ figures@^2.0.0
│  ├─ lodash@^4.3.0
│  ├─ mute-stream@0.0.7
│  ├─ run-async@^2.2.0
│  ├─ rx-lite-aggregates@^4.0.8
│  ├─ rx-lite@^4.0.8
│  ├─ string-width@^2.1.0
│  ├─ strip-ansi@^4.0.0
│  ├─ strip-ansi@4.0.0
│  │  └─ ansi-regex@^3.0.0
│  └─ through@^2.3.6
├─ invariant@2.2.4
│  └─ loose-envify@^1.0.0
├─ invert-kv@1.0.0
├─ is-accessor-descriptor@1.0.0
│  ├─ kind-of@^6.0.0
│  └─ kind-of@6.0.2
├─ is-arrayish@0.2.1
├─ is-buffer@1.1.6
├─ is-builtin-module@1.0.0
│  └─ builtin-modules@^1.0.0
├─ is-callable@1.1.4
├─ is-ci@1.2.0
│  └─ ci-info@^1.3.0
├─ is-data-descriptor@1.0.0
│  ├─ kind-of@^6.0.0
│  └─ kind-of@6.0.2
├─ is-date-object@1.0.1
├─ is-descriptor@1.0.2
│  ├─ is-accessor-descriptor@^1.0.0
│  ├─ is-data-descriptor@^1.0.0
│  ├─ kind-of@^6.0.2
│  └─ kind-of@6.0.2
├─ is-directory@0.3.1
├─ is-dotfile@1.0.3
├─ is-equal-shallow@0.1.3
│  └─ is-primitive@^2.0.0
├─ is-extendable@0.1.1
├─ is-extglob@1.0.0
├─ is-finite@1.0.2
│  └─ number-is-nan@^1.0.0
├─ is-fullwidth-code-point@2.0.0
├─ is-generator-fn@1.0.0
├─ is-glob@2.0.1
│  └─ is-extglob@^1.0.0
├─ is-number@3.0.0
│  └─ kind-of@^3.0.2
├─ is-plain-object@2.0.4
│  └─ isobject@^3.0.1
├─ is-posix-bracket@0.1.1
├─ is-primitive@2.0.0
├─ is-promise@2.1.0
├─ is-regex@1.0.4
│  └─ has@^1.0.1
├─ is-stream@1.1.0
├─ is-symbol@1.0.1
├─ is-typedarray@1.0.0
├─ is-utf8@0.2.1
├─ is-windows@1.0.2
├─ isarray@1.0.0
├─ isexe@2.0.0
├─ isobject@3.0.1
├─ isomorphic-fetch@2.2.1
│  ├─ node-fetch@^1.0.1
│  ├─ node-fetch@1.7.3
│  │  ├─ encoding@^0.1.11
│  │  └─ is-stream@^1.0.1
│  └─ whatwg-fetch@>=0.10.0
├─ isstream@0.1.2
├─ istanbul-api@1.3.1
│  ├─ async@^2.1.4
│  ├─ compare-versions@^3.1.0
│  ├─ fileset@^2.0.2
│  ├─ istanbul-lib-coverage@^1.2.0
│  ├─ istanbul-lib-hook@^1.2.0
│  ├─ istanbul-lib-instrument@^1.10.1
│  ├─ istanbul-lib-report@^1.1.4
│  ├─ istanbul-lib-source-maps@^1.2.4
│  ├─ istanbul-reports@^1.3.0
│  ├─ js-yaml@^3.7.0
│  ├─ mkdirp@^0.5.1
│  └─ once@^1.4.0
├─ istanbul-lib-coverage@1.2.0
├─ istanbul-lib-hook@1.2.1
│  └─ append-transform@^1.0.0
├─ istanbul-lib-instrument@1.10.1
│  ├─ babel-generator@^6.18.0
│  ├─ babel-template@^6.16.0
│  ├─ babel-traverse@^6.18.0
│  ├─ babel-types@^6.18.0
│  ├─ babylon@^6.18.0
│  ├─ istanbul-lib-coverage@^1.2.0
│  └─ semver@^5.3.0
├─ istanbul-lib-report@1.1.4
│  ├─ has-flag@1.0.0
│  ├─ istanbul-lib-coverage@^1.2.0
│  ├─ mkdirp@^0.5.1
│  ├─ path-parse@^1.0.5
│  ├─ supports-color@^3.1.2
│  └─ supports-color@3.2.3
│     └─ has-flag@^1.0.0
├─ istanbul-lib-source-maps@1.2.5
│  ├─ debug@^3.1.0
│  ├─ debug@3.1.0
│  │  └─ ms@2.0.0
│  ├─ istanbul-lib-coverage@^1.2.0
│  ├─ mkdirp@^0.5.1
│  ├─ rimraf@^2.6.1
│  └─ source-map@^0.5.3
├─ istanbul-reports@1.3.0
│  └─ handlebars@^4.0.3
├─ jest-changed-files@23.4.2
│  └─ throat@^4.0.0
├─ jest-cli@23.5.0
│  ├─ ansi-escapes@^3.0.0
│  ├─ ansi-regex@3.0.0
│  ├─ chalk@^2.0.1
│  ├─ exit@^0.1.2
│  ├─ glob@^7.1.2
│  ├─ graceful-fs@^4.1.11
│  ├─ import-local@^1.0.0
│  ├─ is-ci@^1.0.10
│  ├─ istanbul-api@^1.3.1
│  ├─ istanbul-lib-coverage@^1.2.0
│  ├─ istanbul-lib-instrument@^1.10.1
│  ├─ istanbul-lib-source-maps@^1.2.4
│  ├─ jest-changed-files@^23.4.2
│  ├─ jest-config@^23.5.0
│  ├─ jest-environment-jsdom@^23.4.0
│  ├─ jest-get-type@^22.1.0
│  ├─ jest-haste-map@^23.5.0
│  ├─ jest-message-util@^23.4.0
│  ├─ jest-regex-util@^23.3.0
│  ├─ jest-resolve-dependencies@^23.5.0
│  ├─ jest-runner@^23.5.0
│  ├─ jest-runtime@^23.5.0
│  ├─ jest-snapshot@^23.5.0
│  ├─ jest-util@^23.4.0
│  ├─ jest-validate@^23.5.0
│  ├─ jest-watcher@^23.4.0
│  ├─ jest-worker@^23.2.0
│  ├─ micromatch@^2.3.11
│  ├─ node-notifier@^5.2.1
│  ├─ prompts@^0.1.9
│  ├─ realpath-native@^1.0.0
│  ├─ rimraf@^2.5.4
│  ├─ slash@^1.0.0
│  ├─ string-length@^2.0.0
│  ├─ strip-ansi@^4.0.0
│  ├─ strip-ansi@4.0.0
│  │  └─ ansi-regex@^3.0.0
│  ├─ which@^1.2.12
│  └─ yargs@^11.0.0
├─ jest-config@23.5.0
│  ├─ babel-core@^6.0.0
│  ├─ babel-jest@^23.4.2
│  ├─ chalk@^2.0.1
│  ├─ glob@^7.1.1
│  ├─ jest-environment-jsdom@^23.4.0
│  ├─ jest-environment-node@^23.4.0
│  ├─ jest-get-type@^22.1.0
│  ├─ jest-jasmine2@^23.5.0
│  ├─ jest-regex-util@^23.3.0
│  ├─ jest-resolve@^23.5.0
│  ├─ jest-util@^23.4.0
│  ├─ jest-validate@^23.5.0
│  ├─ micromatch@^2.3.11
│  └─ pretty-format@^23.5.0
├─ jest-diff@23.5.0
│  ├─ chalk@^2.0.1
│  ├─ diff@^3.2.0
│  ├─ jest-get-type@^22.1.0
│  └─ pretty-format@^23.5.0
├─ jest-docblock@23.2.0
│  └─ detect-newline@^2.1.0
├─ jest-each@23.5.0
│  ├─ chalk@^2.0.1
│  └─ pretty-format@^23.5.0
├─ jest-environment-jsdom@23.4.0
│  ├─ jest-mock@^23.2.0
│  ├─ jest-util@^23.4.0
│  └─ jsdom@^11.5.1
├─ jest-environment-node@23.4.0
│  ├─ jest-mock@^23.2.0
│  └─ jest-util@^23.4.0
├─ jest-get-type@22.4.3
├─ jest-haste-map@23.5.0
│  ├─ fb-watchman@^2.0.0
│  ├─ graceful-fs@^4.1.11
│  ├─ invariant@^2.2.4
│  ├─ jest-docblock@^23.2.0
│  ├─ jest-serializer@^23.0.1
│  ├─ jest-worker@^23.2.0
│  ├─ micromatch@^2.3.11
│  └─ sane@^2.0.0
├─ jest-jasmine2@23.5.0
│  ├─ babel-traverse@^6.0.0
│  ├─ chalk@^2.0.1
│  ├─ co@^4.6.0
│  ├─ expect@^23.5.0
│  ├─ is-generator-fn@^1.0.0
│  ├─ jest-diff@^23.5.0
│  ├─ jest-each@^23.5.0
│  ├─ jest-matcher-utils@^23.5.0
│  ├─ jest-message-util@^23.4.0
│  ├─ jest-snapshot@^23.5.0
│  ├─ jest-util@^23.4.0
│  └─ pretty-format@^23.5.0
├─ jest-leak-detector@23.5.0
│  └─ pretty-format@^23.5.0
├─ jest-matcher-utils@23.5.0
│  ├─ chalk@^2.0.1
│  ├─ jest-get-type@^22.1.0
│  └─ pretty-format@^23.5.0
├─ jest-message-util@23.4.0
│  ├─ @babel/code-frame@^7.0.0-beta.35
│  ├─ @babel/code-frame@7.0.0-rc.3
│  │  └─ @babel/highlight@7.0.0-rc.3
│  ├─ @babel/highlight@7.0.0-rc.3
│  │  ├─ chalk@^2.0.0
│  │  ├─ esutils@^2.0.2
│  │  └─ js-tokens@^4.0.0
│  ├─ chalk@^2.0.1
│  ├─ js-tokens@4.0.0
│  ├─ micromatch@^2.3.11
│  ├─ slash@^1.0.0
│  └─ stack-utils@^1.0.1
├─ jest-mock@23.2.0
├─ jest-regex-util@23.3.0
├─ jest-resolve-dependencies@23.5.0
│  ├─ jest-regex-util@^23.3.0
│  └─ jest-snapshot@^23.5.0
├─ jest-resolve@23.5.0
│  ├─ browser-resolve@^1.11.3
│  ├─ chalk@^2.0.1
│  └─ realpath-native@^1.0.0
├─ jest-runner@23.5.0
│  ├─ exit@^0.1.2
│  ├─ graceful-fs@^4.1.11
│  ├─ jest-config@^23.5.0
│  ├─ jest-docblock@^23.2.0
│  ├─ jest-haste-map@^23.5.0
│  ├─ jest-jasmine2@^23.5.0
│  ├─ jest-leak-detector@^23.5.0
│  ├─ jest-message-util@^23.4.0
│  ├─ jest-runtime@^23.5.0
│  ├─ jest-util@^23.4.0
│  ├─ jest-worker@^23.2.0
│  ├─ source-map-support@^0.5.6
│  ├─ source-map-support@0.5.9
│  │  ├─ buffer-from@^1.0.0
│  │  └─ source-map@^0.6.0
│  ├─ source-map@0.6.1
│  └─ throat@^4.0.0
├─ jest-runtime@23.5.0
│  ├─ babel-core@^6.0.0
│  ├─ babel-plugin-istanbul@^4.1.6
│  ├─ chalk@^2.0.1
│  ├─ convert-source-map@^1.4.0
│  ├─ exit@^0.1.2
│  ├─ fast-json-stable-stringify@^2.0.0
│  ├─ graceful-fs@^4.1.11
│  ├─ jest-config@^23.5.0
│  ├─ jest-haste-map@^23.5.0
│  ├─ jest-message-util@^23.4.0
│  ├─ jest-regex-util@^23.3.0
│  ├─ jest-resolve@^23.5.0
│  ├─ jest-snapshot@^23.5.0
│  ├─ jest-util@^23.4.0
│  ├─ jest-validate@^23.5.0
│  ├─ micromatch@^2.3.11
│  ├─ realpath-native@^1.0.0
│  ├─ slash@^1.0.0
│  ├─ strip-bom@3.0.0
│  ├─ write-file-atomic@^2.1.0
│  ├─ write-file-atomic@2.3.0
│  │  ├─ graceful-fs@^4.1.11
│  │  ├─ imurmurhash@^0.1.4
│  │  └─ signal-exit@^3.0.2
│  └─ yargs@^11.0.0
├─ jest-serializer@23.0.1
├─ jest-snapshot@23.5.0
│  ├─ babel-types@^6.0.0
│  ├─ chalk@^2.0.1
│  ├─ jest-diff@^23.5.0
│  ├─ jest-matcher-utils@^23.5.0
│  ├─ jest-message-util@^23.4.0
│  ├─ jest-resolve@^23.5.0
│  ├─ mkdirp@^0.5.1
│  ├─ natural-compare@^1.4.0
│  ├─ pretty-format@^23.5.0
│  └─ semver@^5.5.0
├─ jest-util@23.4.0
│  ├─ callsites@^2.0.0
│  ├─ chalk@^2.0.1
│  ├─ graceful-fs@^4.1.11
│  ├─ is-ci@^1.0.10
│  ├─ jest-message-util@^23.4.0
│  ├─ mkdirp@^0.5.1
│  ├─ slash@^1.0.0
│  ├─ source-map@^0.6.0
│  └─ source-map@0.6.1
├─ jest-validate@23.5.0
│  ├─ chalk@^2.0.1
│  ├─ jest-get-type@^22.1.0
│  ├─ leven@^2.1.0
│  └─ pretty-format@^23.5.0
├─ jest-watcher@23.4.0
│  ├─ ansi-escapes@^3.0.0
│  ├─ chalk@^2.0.1
│  └─ string-length@^2.0.0
├─ jest-worker@23.2.0
│  └─ merge-stream@^1.0.1
├─ jest@23.5.0
│  ├─ import-local@^1.0.0
│  └─ jest-cli@^23.5.0
├─ js-tokens@3.0.2
├─ js-yaml@3.12.0
│  ├─ argparse@^1.0.7
│  └─ esprima@^4.0.0
├─ jsbn@0.1.1
├─ jsdom@11.12.0
│  ├─ abab@^2.0.0
│  ├─ acorn-globals@^4.1.0
│  ├─ acorn@^5.5.3
│  ├─ array-equal@^1.0.0
│  ├─ cssom@>= 0.3.2 < 0.4.0
│  ├─ cssstyle@^1.0.0
│  ├─ data-urls@^1.0.0
│  ├─ domexception@^1.0.1
│  ├─ escodegen@^1.9.1
│  ├─ html-encoding-sniffer@^1.0.2
│  ├─ left-pad@^1.3.0
│  ├─ nwsapi@^2.0.7
│  ├─ parse5@4.0.0
│  ├─ pn@^1.1.0
│  ├─ request-promise-native@^1.0.5
│  ├─ request@^2.87.0
│  ├─ sax@^1.2.4
│  ├─ symbol-tree@^3.2.2
│  ├─ tough-cookie@^2.3.4
│  ├─ w3c-hr-time@^1.0.1
│  ├─ webidl-conversions@^4.0.2
│  ├─ whatwg-encoding@^1.0.3
│  ├─ whatwg-mimetype@^2.1.0
│  ├─ whatwg-url@^6.4.1
│  ├─ ws@^5.2.0
│  ├─ ws@5.2.2
│  │  └─ async-limiter@~1.0.0
│  └─ xml-name-validator@^3.0.0
├─ jsesc@0.5.0
├─ json-parse-better-errors@1.0.2
├─ json-schema-traverse@0.3.1
├─ json-schema@0.2.3
├─ json-stable-stringify@1.0.1
│  └─ jsonify@~0.0.0
├─ json-stringify-safe@5.0.1
├─ json5@0.5.1
├─ jsonfile@2.4.0
│  └─ graceful-fs@^4.1.6
├─ jsonify@0.0.0
├─ jsprim@1.4.1
│  ├─ assert-plus@1.0.0
│  ├─ extsprintf@1.3.0
│  ├─ json-schema@0.2.3
│  └─ verror@1.10.0
├─ kind-of@3.2.2
│  └─ is-buffer@^1.1.5
├─ klaw@1.3.1
│  └─ graceful-fs@^4.1.9
├─ kleur@2.0.1
├─ lazy-cache@1.0.4
├─ lcid@1.0.0
│  └─ invert-kv@^1.0.0
├─ left-pad@1.3.0
├─ leven@2.1.0
├─ levn@0.3.0
│  ├─ prelude-ls@~1.1.2
│  └─ type-check@~0.3.2
├─ load-json-file@2.0.0
│  ├─ graceful-fs@^4.1.2
│  ├─ parse-json@^2.2.0
│  ├─ pify@^2.0.0
│  └─ strip-bom@^3.0.0
├─ locate-path@2.0.0
│  ├─ p-locate@^2.0.0
│  └─ path-exists@^3.0.0
├─ lodash.pad@4.5.1
├─ lodash.padend@4.6.1
├─ lodash.padstart@4.6.1
├─ lodash.sortby@4.7.0
├─ lodash.throttle@4.1.1
├─ lodash@4.17.10
├─ longest@1.0.1
├─ loose-envify@1.4.0
│  ├─ js-tokens@^3.0.0 || ^4.0.0
│  └─ js-tokens@4.0.0
├─ lru-cache@4.1.3
│  ├─ pseudomap@^1.0.2
│  ├─ yallist@^2.1.2
│  └─ yallist@2.1.2
├─ make-dir@1.3.0
│  ├─ pify@^3.0.0
│  └─ pify@3.0.0
├─ makeerror@1.0.11
│  └─ tmpl@1.0.x
├─ map-cache@0.2.2
├─ map-visit@1.0.0
│  └─ object-visit@^1.0.0
├─ math-random@1.0.1
├─ mem@1.1.0
│  └─ mimic-fn@^1.0.0
├─ merge-stream@1.0.1
│  └─ readable-stream@^2.0.1
├─ merge@1.2.0
├─ metro-babel-register@0.43.6
│  ├─ @babel/core@7.0.0-beta.56
│  ├─ @babel/plugin-proposal-class-properties@7.0.0-beta.56
│  ├─ @babel/plugin-proposal-nullish-coalescing-operator@7.0.0-beta.56
│  ├─ @babel/plugin-proposal-object-rest-spread@7.0.0-beta.56
│  ├─ @babel/plugin-proposal-optional-catch-binding@7.0.0-beta.56
│  ├─ @babel/plugin-proposal-optional-chaining@7.0.0-beta.56
│  ├─ @babel/plugin-transform-async-to-generator@7.0.0-beta.56
│  ├─ @babel/plugin-transform-flow-strip-types@7.0.0-beta.56
│  ├─ @babel/plugin-transform-modules-commonjs@7.0.0-beta.56
│  ├─ @babel/register@7.0.0-beta.56
│  ├─ core-js@^2.2.2
│  └─ escape-string-regexp@^1.0.5
├─ metro-babel7-plugin-react-transform@0.43.6
│  └─ @babel/helper-module-imports@7.0.0-beta.56
├─ metro-cache@0.43.6
│  ├─ jest-serializer@23.0.1
│  ├─ metro-core@0.43.6
│  ├─ mkdirp@^0.5.1
│  └─ rimraf@^2.5.4
├─ metro-config@0.43.6
│  ├─ cosmiconfig@^5.0.5
│  ├─ metro-cache@0.43.6
│  ├─ metro-core@0.43.6
│  └─ metro@0.43.6
├─ metro-core@0.43.6
│  ├─ jest-haste-map@23.5.0
│  ├─ lodash.throttle@^4.1.1
│  ├─ metro-resolver@0.43.6
│  └─ wordwrap@^1.0.0
├─ metro-memory-fs@0.43.6
├─ metro-minify-uglify@0.43.6
│  └─ uglify-es@^3.1.9
├─ metro-react-native-babel-preset@0.43.6
│  ├─ @babel/plugin-proposal-class-properties@7.0.0-beta.56
│  ├─ @babel/plugin-proposal-nullish-coalescing-operator@7.0.0-beta.56
│  ├─ @babel/plugin-proposal-object-rest-spread@7.0.0-beta.56
│  ├─ @babel/plugin-proposal-optional-catch-binding@7.0.0-beta.56
│  ├─ @babel/plugin-proposal-optional-chaining@7.0.0-beta.56
│  ├─ @babel/plugin-transform-arrow-functions@7.0.0-beta.56
│  ├─ @babel/plugin-transform-block-scoping@7.0.0-beta.56
│  ├─ @babel/plugin-transform-classes@7.0.0-beta.56
│  ├─ @babel/plugin-transform-computed-properties@7.0.0-beta.56
│  ├─ @babel/plugin-transform-destructuring@7.0.0-beta.56
│  ├─ @babel/plugin-transform-exponentiation-operator@7.0.0-beta.56
│  ├─ @babel/plugin-transform-flow-strip-types@7.0.0-beta.56
│  ├─ @babel/plugin-transform-for-of@7.0.0-beta.56
│  ├─ @babel/plugin-transform-function-name@7.0.0-beta.56
│  ├─ @babel/plugin-transform-literals@7.0.0-beta.56
│  ├─ @babel/plugin-transform-modules-commonjs@7.0.0-beta.56
│  ├─ @babel/plugin-transform-object-assign@7.0.0-beta.56
│  ├─ @babel/plugin-transform-parameters@7.0.0-beta.56
│  ├─ @babel/plugin-transform-react-display-name@7.0.0-beta.56
│  ├─ @babel/plugin-transform-react-jsx-source@7.0.0-beta.56
│  ├─ @babel/plugin-transform-react-jsx@7.0.0-beta.56
│  ├─ @babel/plugin-transform-regenerator@7.0.0-beta.56
│  ├─ @babel/plugin-transform-shorthand-properties@7.0.0-beta.56
│  ├─ @babel/plugin-transform-spread@7.0.0-beta.56
│  ├─ @babel/plugin-transform-sticky-regex@7.0.0-beta.56
│  ├─ @babel/plugin-transform-template-literals@7.0.0-beta.56
│  ├─ @babel/plugin-transform-typescript@7.0.0-beta.56
│  ├─ @babel/plugin-transform-unicode-regex@7.0.0-beta.56
│  ├─ @babel/template@7.0.0-beta.56
│  └─ metro-babel7-plugin-react-transform@0.43.6
├─ metro-resolver@0.43.6
│  └─ absolute-path@^0.0.0
├─ metro-source-map@0.43.6
│  └─ source-map@^0.5.6
├─ metro@0.43.6
│  ├─ @babel/core@7.0.0-beta.56
│  ├─ @babel/generator@7.0.0-beta.56
│  ├─ @babel/helper-remap-async-to-generator@7.0.0-beta.56
│  ├─ @babel/parser@7.0.0-beta.56
│  ├─ @babel/plugin-external-helpers@7.0.0-beta.56
│  ├─ @babel/plugin-proposal-class-properties@7.0.0-beta.56
│  ├─ @babel/plugin-proposal-object-rest-spread@7.0.0-beta.56
│  ├─ @babel/plugin-syntax-dynamic-import@7.0.0-beta.56
│  ├─ @babel/plugin-syntax-nullish-coalescing-operator@7.0.0-beta.56
│  ├─ @babel/plugin-transform-arrow-functions@7.0.0-beta.56
│  ├─ @babel/plugin-transform-async-to-generator@7.0.0-beta.56
│  ├─ @babel/plugin-transform-block-scoping@7.0.0-beta.56
│  ├─ @babel/plugin-transform-classes@7.0.0-beta.56
│  ├─ @babel/plugin-transform-computed-properties@7.0.0-beta.56
│  ├─ @babel/plugin-transform-destructuring@7.0.0-beta.56
│  ├─ @babel/plugin-transform-exponentiation-operator@7.0.0-beta.56
│  ├─ @babel/plugin-transform-flow-strip-types@7.0.0-beta.56
│  ├─ @babel/plugin-transform-for-of@7.0.0-beta.56
│  ├─ @babel/plugin-transform-function-name@7.0.0-beta.56
│  ├─ @babel/plugin-transform-literals@7.0.0-beta.56
│  ├─ @babel/plugin-transform-modules-commonjs@7.0.0-beta.56
│  ├─ @babel/plugin-transform-object-assign@7.0.0-beta.56
│  ├─ @babel/plugin-transform-parameters@7.0.0-beta.56
│  ├─ @babel/plugin-transform-react-display-name@7.0.0-beta.56
│  ├─ @babel/plugin-transform-react-jsx-source@7.0.0-beta.56
│  ├─ @babel/plugin-transform-react-jsx@7.0.0-beta.56
│  ├─ @babel/plugin-transform-regenerator@7.0.0-beta.56
│  ├─ @babel/plugin-transform-shorthand-properties@7.0.0-beta.56
│  ├─ @babel/plugin-transform-spread@7.0.0-beta.56
│  ├─ @babel/plugin-transform-template-literals@7.0.0-beta.56
│  ├─ @babel/plugin-transform-unicode-regex@7.0.0-beta.56
│  ├─ @babel/register@7.0.0-beta.56
│  ├─ @babel/template@7.0.0-beta.56
│  ├─ @babel/traverse@7.0.0-beta.56
│  ├─ @babel/types@7.0.0-beta.56
│  ├─ absolute-path@^0.0.0
│  ├─ ansi-styles@2.2.1
│  ├─ async@^2.4.0
│  ├─ babel-core@^6.24.1
│  ├─ babel-preset-es2015-node@^6.1.1
│  ├─ babel-preset-fbjs@2.2.0
│  ├─ babel-register@^6.24.1
│  ├─ chalk@^1.1.1
│  ├─ chalk@1.1.3
│  │  ├─ ansi-styles@^2.2.1
│  │  ├─ escape-string-regexp@^1.0.2
│  │  ├─ has-ansi@^2.0.0
│  │  ├─ strip-ansi@^3.0.0
│  │  └─ supports-color@^2.0.0
│  ├─ cliui@3.2.0
│  │  ├─ string-width@^1.0.1
│  │  ├─ string-width@1.0.2
│  │  │  ├─ code-point-at@^1.0.0
│  │  │  ├─ is-fullwidth-code-point@^1.0.0
│  │  │  └─ strip-ansi@^3.0.0
│  │  ├─ strip-ansi@^3.0.1
│  │  └─ wrap-ansi@^2.0.0
│  ├─ concat-stream@^1.6.0
│  ├─ connect@^3.6.5
│  ├─ debug@^2.2.0
│  ├─ denodeify@^1.2.1
│  ├─ eventemitter3@^3.0.0
│  ├─ fbjs@0.8.17
│  ├─ fs-extra@^1.0.0
│  ├─ graceful-fs@^4.1.3
│  ├─ image-size@^0.6.0
│  ├─ is-fullwidth-code-point@1.0.0
│  │  └─ number-is-nan@^1.0.0
│  ├─ jest-docblock@23.2.0
│  ├─ jest-haste-map@23.5.0
│  ├─ jest-worker@23.2.0
│  ├─ json-stable-stringify@^1.0.1
│  ├─ json5@^0.4.0
│  ├─ json5@0.4.0
│  ├─ left-pad@^1.1.3
│  ├─ lodash.throttle@^4.1.1
│  ├─ merge-stream@^1.0.1
│  ├─ metro-babel-register@0.43.6
│  ├─ metro-babel7-plugin-react-transform@0.43.6
│  ├─ metro-cache@0.43.6
│  ├─ metro-config@0.43.6
│  ├─ metro-core@0.43.6
│  ├─ metro-minify-uglify@0.43.6
│  ├─ metro-react-native-babel-preset@0.43.6
│  ├─ metro-resolver@0.43.6
│  ├─ metro-source-map@0.43.6
│  ├─ mime-db@1.23.0
│  ├─ mime-types@2.1.11
│  │  └─ mime-db@~1.23.0
│  ├─ mime-types@2.1.11
│  ├─ mkdirp@^0.5.1
│  ├─ node-fetch@^2.2.0
│  ├─ react-transform-hmr@^1.0.4
│  ├─ resolve@^1.5.0
│  ├─ rimraf@^2.5.4
│  ├─ serialize-error@^2.1.0
│  ├─ source-map@^0.5.6
│  ├─ supports-color@2.0.0
│  ├─ temp@0.8.3
│  ├─ throat@^4.1.0
│  ├─ wordwrap@^1.0.0
│  ├─ write-file-atomic@^1.2.0
│  ├─ ws@^1.1.0
│  ├─ xpipe@^1.0.5
│  ├─ yargs-parser@7.0.0
│  │  └─ camelcase@^4.1.0
│  ├─ yargs@^9.0.0
│  └─ yargs@9.0.1
│     ├─ camelcase@^4.1.0
│     ├─ cliui@^3.2.0
│     ├─ decamelize@^1.1.1
│     ├─ get-caller-file@^1.0.1
│     ├─ os-locale@^2.0.0
│     ├─ read-pkg-up@^2.0.0
│     ├─ require-directory@^2.1.1
│     ├─ require-main-filename@^1.0.1
│     ├─ set-blocking@^2.0.0
│     ├─ string-width@^2.0.0
│     ├─ which-module@^2.0.0
│     ├─ y18n@^3.2.1
│     └─ yargs-parser@^7.0.0
├─ micromatch@2.3.11
│  ├─ arr-diff@^2.0.0
│  ├─ arr-diff@2.0.0
│  │  └─ arr-flatten@^1.0.1
│  ├─ array-unique@^0.2.1
│  ├─ array-unique@0.2.1
│  ├─ braces@^1.8.2
│  ├─ expand-brackets@^0.1.4
│  ├─ extglob@^0.3.1
│  ├─ filename-regex@^2.0.0
│  ├─ is-extglob@^1.0.0
│  ├─ is-glob@^2.0.1
│  ├─ kind-of@^3.0.2
│  ├─ normalize-path@^2.0.1
│  ├─ object.omit@^2.0.0
│  ├─ parse-glob@^3.0.4
│  └─ regex-cache@^0.4.2
├─ mime-db@1.36.0
├─ mime-types@2.1.20
│  └─ mime-db@~1.36.0
├─ mime@1.6.0
├─ mimic-fn@1.2.0
├─ min-document@2.19.0
│  └─ dom-walk@^0.1.0
├─ minimatch@3.0.4
│  └─ brace-expansion@^1.1.7
├─ minimist@1.2.0
├─ minipass@2.3.4
│  ├─ safe-buffer@^5.1.2
│  └─ yallist@^3.0.0
├─ minizlib@1.1.0
│  └─ minipass@^2.2.1
├─ mixin-deep@1.3.1
│  ├─ for-in@^1.0.2
│  ├─ is-extendable@^1.0.1
│  └─ is-extendable@1.0.1
│     └─ is-plain-object@^2.0.4
├─ mkdirp@0.5.1
│  ├─ minimist@0.0.8
│  └─ minimist@0.0.8
├─ morgan@1.9.0
│  ├─ basic-auth@~2.0.0
│  ├─ debug@2.6.9
│  ├─ depd@~1.1.1
│  ├─ on-finished@~2.3.0
│  └─ on-headers@~1.0.1
├─ ms@2.0.0
├─ mute-stream@0.0.7
├─ nan@2.11.0
├─ nanomatch@1.2.13
│  ├─ arr-diff@^4.0.0
│  ├─ array-unique@^0.3.2
│  ├─ define-property@^2.0.2
│  ├─ define-property@2.0.2
│  │  ├─ is-descriptor@^1.0.2
│  │  └─ isobject@^3.0.1
│  ├─ extend-shallow@^3.0.2
│  ├─ extend-shallow@3.0.2
│  │  ├─ assign-symbols@^1.0.0
│  │  └─ is-extendable@^1.0.1
│  ├─ fragment-cache@^0.2.1
│  ├─ is-extendable@1.0.1
│  │  └─ is-plain-object@^2.0.4
│  ├─ is-windows@^1.0.2
│  ├─ kind-of@^6.0.2
│  ├─ kind-of@6.0.2
│  ├─ object.pick@^1.3.0
│  ├─ regex-not@^1.0.0
│  ├─ snapdragon@^0.8.1
│  └─ to-regex@^3.0.1
├─ natural-compare@1.4.0
├─ needle@2.2.2
│  ├─ debug@^2.1.2
│  ├─ iconv-lite@^0.4.4
│  └─ sax@^1.2.4
├─ negotiator@0.6.1
├─ node-fetch@2.2.0
├─ node-int64@0.4.0
├─ node-modules-regexp@1.0.0
├─ node-notifier@5.2.1
│  ├─ growly@^1.3.0
│  ├─ semver@^5.4.1
│  ├─ shellwords@^0.1.1
│  └─ which@^1.3.0
├─ node-pre-gyp@0.10.3
│  ├─ detect-libc@^1.0.2
│  ├─ gauge@2.7.4
│  │  ├─ aproba@^1.0.3
│  │  ├─ console-control-strings@^1.0.0
│  │  ├─ has-unicode@^2.0.0
│  │  ├─ object-assign@^4.1.0
│  │  ├─ signal-exit@^3.0.0
│  │  ├─ string-width@^1.0.1
│  │  ├─ strip-ansi@^3.0.1
│  │  └─ wide-align@^1.1.0
│  ├─ is-fullwidth-code-point@1.0.0
│  │  └─ number-is-nan@^1.0.0
│  ├─ mkdirp@^0.5.1
│  ├─ needle@^2.2.1
│  ├─ nopt@^4.0.1
│  ├─ npm-packlist@^1.1.6
│  ├─ npmlog@^4.0.2
│  ├─ npmlog@4.1.2
│  │  ├─ are-we-there-yet@~1.1.2
│  │  ├─ console-control-strings@~1.1.0
│  │  ├─ gauge@~2.7.3
│  │  └─ set-blocking@~2.0.0
│  ├─ rc@^1.2.7
│  ├─ rimraf@^2.6.1
│  ├─ semver@^5.3.0
│  ├─ string-width@1.0.2
│  │  ├─ code-point-at@^1.0.0
│  │  ├─ is-fullwidth-code-point@^1.0.0
│  │  └─ strip-ansi@^3.0.0
│  └─ tar@^4
├─ nopt@4.0.1
│  ├─ abbrev@1
│  └─ osenv@^0.1.4
├─ normalize-package-data@2.4.0
│  ├─ hosted-git-info@^2.1.4
│  ├─ is-builtin-module@^1.0.0
│  ├─ semver@2 || 3 || 4 || 5
│  └─ validate-npm-package-license@^3.0.1
├─ normalize-path@2.1.1
│  └─ remove-trailing-separator@^1.0.1
├─ npm-bundled@1.0.5
├─ npm-packlist@1.1.11
│  ├─ ignore-walk@^3.0.1
│  └─ npm-bundled@^1.0.1
├─ npm-run-path@2.0.2
│  └─ path-key@^2.0.0
├─ npmlog@2.0.4
│  ├─ ansi@~0.3.1
│  ├─ are-we-there-yet@~1.1.2
│  └─ gauge@~1.2.5
├─ number-is-nan@1.0.1
├─ nwsapi@2.0.8
├─ oauth-sign@0.9.0
├─ object-assign@4.1.1
├─ object-copy@0.1.0
│  ├─ copy-descriptor@^0.1.0
│  ├─ define-property@^0.2.5
│  └─ kind-of@^3.0.3
├─ object-keys@1.0.12
├─ object-visit@1.0.1
│  └─ isobject@^3.0.0
├─ object.getownpropertydescriptors@2.0.3
│  ├─ define-properties@^1.1.2
│  └─ es-abstract@^1.5.1
├─ object.omit@2.0.1
│  ├─ for-own@^0.1.4
│  └─ is-extendable@^0.1.1
├─ object.pick@1.3.0
│  └─ isobject@^3.0.1
├─ on-finished@2.3.0
│  └─ ee-first@1.1.1
├─ on-headers@1.0.1
├─ once@1.4.0
│  └─ wrappy@1
├─ onetime@2.0.1
│  └─ mimic-fn@^1.0.0
├─ opn@3.0.3
│  └─ object-assign@^4.0.1
├─ optimist@0.6.1
│  ├─ minimist@~0.0.1
│  ├─ minimist@0.0.10
│  ├─ wordwrap@~0.0.2
│  └─ wordwrap@0.0.3
├─ optionator@0.8.2
│  ├─ deep-is@~0.1.3
│  ├─ fast-levenshtein@~2.0.4
│  ├─ levn@~0.3.0
│  ├─ prelude-ls@~1.1.2
│  ├─ type-check@~0.3.2
│  └─ wordwrap@~1.0.0
├─ options@0.0.6
├─ os-homedir@1.0.2
├─ os-locale@2.1.0
│  ├─ execa@^0.7.0
│  ├─ lcid@^1.0.0
│  └─ mem@^1.1.0
├─ os-tmpdir@1.0.2
├─ osenv@0.1.5
│  ├─ os-homedir@^1.0.0
│  └─ os-tmpdir@^1.0.0
├─ p-finally@1.0.0
├─ p-limit@1.3.0
│  └─ p-try@^1.0.0
├─ p-locate@2.0.0
│  └─ p-limit@^1.1.0
├─ p-try@1.0.0
├─ parse-glob@3.0.4
│  ├─ glob-base@^0.3.0
│  ├─ is-dotfile@^1.0.0
│  ├─ is-extglob@^1.0.0
│  └─ is-glob@^2.0.0
├─ parse-json@2.2.0
│  └─ error-ex@^1.2.0
├─ parse5@4.0.0
├─ parseurl@1.3.2
├─ pascalcase@0.1.1
├─ path-exists@3.0.0
├─ path-is-absolute@1.0.1
├─ path-key@2.0.1
├─ path-parse@1.0.6
├─ path-type@2.0.0
│  └─ pify@^2.0.0
├─ pegjs@0.10.0
├─ performance-now@2.1.0
├─ pify@2.3.0
├─ pinkie-promise@2.0.1
│  └─ pinkie@^2.0.0
├─ pinkie@2.0.4
├─ pirates@4.0.0
│  └─ node-modules-regexp@^1.0.0
├─ pkg-dir@2.0.0
│  └─ find-up@^2.1.0
├─ plist@3.0.1
│  ├─ base64-js@^1.2.3
│  ├─ xmlbuilder@^9.0.7
│  └─ xmldom@0.1.x
├─ plugin-error@0.1.2
│  ├─ ansi-cyan@^0.1.1
│  ├─ ansi-red@^0.1.1
│  ├─ arr-diff@^1.0.1
│  ├─ arr-diff@1.1.0
│  │  ├─ arr-flatten@^1.0.1
│  │  └─ array-slice@^0.2.3
│  ├─ arr-union@^2.0.1
│  ├─ arr-union@2.1.0
│  ├─ extend-shallow@^1.1.2
│  ├─ extend-shallow@1.1.4
│  │  └─ kind-of@^1.1.0
│  └─ kind-of@1.1.0
├─ pn@1.1.0
├─ posix-character-classes@0.1.1
├─ prelude-ls@1.1.2
├─ preserve@0.2.0
├─ pretty-format@23.5.0
│  ├─ ansi-regex@^3.0.0
│  ├─ ansi-regex@3.0.0
│  └─ ansi-styles@^3.2.0
├─ private@0.1.8
├─ process-nextick-args@2.0.0
├─ process@0.5.2
├─ promise@7.3.1
│  └─ asap@~2.0.3
├─ prompts@0.1.14
│  ├─ kleur@^2.0.1
│  └─ sisteransi@^0.1.1
├─ prop-types@15.6.2
│  ├─ loose-envify@^1.3.1
│  └─ object-assign@^4.1.1
├─ pseudomap@1.0.2
├─ psl@1.1.29
├─ punycode@1.4.1
├─ qs@6.5.2
├─ randomatic@3.1.0
│  ├─ is-number@^4.0.0
│  ├─ is-number@4.0.0
│  ├─ kind-of@^6.0.0
│  ├─ kind-of@6.0.2
│  └─ math-random@^1.0.1
├─ range-parser@1.2.0
├─ rc@1.2.8
│  ├─ deep-extend@^0.6.0
│  ├─ ini@~1.3.0
│  ├─ minimist@^1.2.0
│  └─ strip-json-comments@~2.0.1
├─ react-clone-referenced-element@1.0.1
├─ react-deep-force-update@1.1.2
├─ react-devtools-core@3.2.3
│  ├─ shell-quote@^1.6.1
│  ├─ ultron@1.1.1
│  ├─ ws@^3.3.1
│  └─ ws@3.3.3
│     ├─ async-limiter@~1.0.0
│     ├─ safe-buffer@~5.1.0
│     └─ ultron@~1.1.0
├─ react-is@16.4.2
├─ react-native@0.57.0-rc.3
│  ├─ absolute-path@^0.0.0
│  ├─ ansi-styles@2.2.1
│  ├─ art@^0.10.0
│  ├─ base64-js@^1.1.2
│  ├─ chalk@^1.1.1
│  ├─ chalk@1.1.3
│  │  ├─ ansi-styles@^2.2.1
│  │  ├─ escape-string-regexp@^1.0.2
│  │  ├─ has-ansi@^2.0.0
│  │  ├─ strip-ansi@^3.0.0
│  │  └─ supports-color@^2.0.0
│  ├─ cliui@3.2.0
│  │  ├─ string-width@^1.0.1
│  │  ├─ string-width@1.0.2
│  │  │  ├─ code-point-at@^1.0.0
│  │  │  ├─ is-fullwidth-code-point@^1.0.0
│  │  │  └─ strip-ansi@^3.0.0
│  │  ├─ strip-ansi@^3.0.1
│  │  └─ wrap-ansi@^2.0.0
│  ├─ commander@^2.9.0
│  ├─ compression@^1.7.1
│  ├─ connect@^3.6.5
│  ├─ create-react-class@^15.6.3
│  ├─ debug@^2.2.0
│  ├─ denodeify@^1.2.1
│  ├─ envinfo@^5.7.0
│  ├─ errorhandler@^1.5.0
│  ├─ escape-string-regexp@^1.0.5
│  ├─ event-target-shim@^1.0.5
│  ├─ fbjs-scripts@^0.8.1
│  ├─ fbjs@0.8.17
│  ├─ fs-extra@^1.0.0
│  ├─ glob@^7.1.1
│  ├─ graceful-fs@^4.1.3
│  ├─ inquirer@^3.0.6
│  ├─ is-fullwidth-code-point@1.0.0
│  │  └─ number-is-nan@^1.0.0
│  ├─ lodash@^4.17.5
│  ├─ metro-babel-register@^0.43.6
│  ├─ metro-core@^0.43.6
│  ├─ metro-memory-fs@^0.43.6
│  ├─ metro@^0.43.6
│  ├─ mime@^1.3.4
│  ├─ minimist@^1.2.0
│  ├─ mkdirp@^0.5.1
│  ├─ morgan@^1.9.0
│  ├─ node-fetch@^2.2.0
│  ├─ node-notifier@^5.2.1
│  ├─ npmlog@^2.0.4
│  ├─ opn@^3.0.2
│  ├─ optimist@^0.6.1
│  ├─ plist@^3.0.0
│  ├─ pretty-format@^4.2.1
│  ├─ pretty-format@4.3.1
│  ├─ promise@^7.1.1
│  ├─ prop-types@^15.5.8
│  ├─ react-clone-referenced-element@^1.0.1
│  ├─ react-devtools-core@^3.2.2
│  ├─ react-timer-mixin@^0.13.2
│  ├─ regenerator-runtime@^0.11.0
│  ├─ rimraf@^2.5.4
│  ├─ semver@^5.0.3
│  ├─ serve-static@^1.13.1
│  ├─ shell-quote@1.6.1
│  ├─ stacktrace-parser@^0.1.3
│  ├─ supports-color@2.0.0
│  ├─ ws@^1.1.0
│  ├─ xcode@^0.9.1
│  ├─ xmldoc@^0.4.0
│  ├─ yargs-parser@7.0.0
│  │  └─ camelcase@^4.1.0
│  ├─ yargs@^9.0.0
│  └─ yargs@9.0.1
│     ├─ camelcase@^4.1.0
│     ├─ cliui@^3.2.0
│     ├─ decamelize@^1.1.1
│     ├─ get-caller-file@^1.0.1
│     ├─ os-locale@^2.0.0
│     ├─ read-pkg-up@^2.0.0
│     ├─ require-directory@^2.1.1
│     ├─ require-main-filename@^1.0.1
│     ├─ set-blocking@^2.0.0
│     ├─ string-width@^2.0.0
│     ├─ which-module@^2.0.0
│     ├─ y18n@^3.2.1
│     └─ yargs-parser@^7.0.0
├─ react-proxy@1.1.8
│  ├─ lodash@^4.6.1
│  └─ react-deep-force-update@^1.0.0
├─ react-test-renderer@16.4.1
│  ├─ fbjs@^0.8.16
│  ├─ object-assign@^4.1.1
│  ├─ prop-types@^15.6.0
│  └─ react-is@^16.4.1
├─ react-timer-mixin@0.13.4
├─ react-transform-hmr@1.0.4
│  ├─ global@^4.3.0
│  └─ react-proxy@^1.1.7
├─ react@16.4.1
│  ├─ fbjs@^0.8.16
│  ├─ loose-envify@^1.1.0
│  ├─ object-assign@^4.1.1
│  └─ prop-types@^15.6.0
├─ read-pkg-up@2.0.0
│  ├─ find-up@^2.0.0
│  └─ read-pkg@^2.0.0
├─ read-pkg@2.0.0
│  ├─ load-json-file@^2.0.0
│  ├─ normalize-package-data@^2.3.2
│  └─ path-type@^2.0.0
├─ readable-stream@2.3.6
│  ├─ core-util-is@~1.0.0
│  ├─ inherits@~2.0.3
│  ├─ isarray@~1.0.0
│  ├─ process-nextick-args@~2.0.0
│  ├─ safe-buffer@~5.1.1
│  ├─ string_decoder@~1.1.1
│  └─ util-deprecate@~1.0.1
├─ realpath-native@1.0.1
│  └─ util.promisify@^1.0.0
├─ regenerate-unicode-properties@7.0.0
│  └─ regenerate@^1.4.0
├─ regenerate@1.4.0
├─ regenerator-runtime@0.11.1
├─ regenerator-transform@0.13.3
│  └─ private@^0.1.6
├─ regex-cache@0.4.4
│  └─ is-equal-shallow@^0.1.3
├─ regex-not@1.0.2
│  ├─ extend-shallow@^3.0.2
│  ├─ extend-shallow@3.0.2
│  │  ├─ assign-symbols@^1.0.0
│  │  └─ is-extendable@^1.0.1
│  ├─ is-extendable@1.0.1
│  │  └─ is-plain-object@^2.0.4
│  └─ safe-regex@^1.1.0
├─ regexpu-core@4.2.0
│  ├─ regenerate-unicode-properties@^7.0.0
│  ├─ regenerate@^1.4.0
│  ├─ regjsgen@^0.4.0
│  ├─ regjsparser@^0.3.0
│  ├─ unicode-match-property-ecmascript@^1.0.4
│  └─ unicode-match-property-value-ecmascript@^1.0.2
├─ regjsgen@0.4.0
├─ regjsparser@0.3.0
│  └─ jsesc@~0.5.0
├─ remove-trailing-separator@1.1.0
├─ repeat-element@1.1.3
├─ repeat-string@1.6.1
├─ repeating@2.0.1
│  └─ is-finite@^1.0.0
├─ request-promise-core@1.1.1
│  └─ lodash@^4.13.1
├─ request-promise-native@1.0.5
│  ├─ request-promise-core@1.1.1
│  ├─ stealthy-require@^1.1.0
│  └─ tough-cookie@>=2.3.3
├─ request@2.88.0
│  ├─ aws-sign2@~0.7.0
│  ├─ aws4@^1.8.0
│  ├─ caseless@~0.12.0
│  ├─ combined-stream@~1.0.6
│  ├─ extend@~3.0.2
│  ├─ forever-agent@~0.6.1
│  ├─ form-data@~2.3.2
│  ├─ har-validator@~5.1.0
│  ├─ http-signature@~1.2.0
│  ├─ is-typedarray@~1.0.0
│  ├─ isstream@~0.1.2
│  ├─ json-stringify-safe@~5.0.1
│  ├─ mime-types@~2.1.19
│  ├─ oauth-sign@~0.9.0
│  ├─ performance-now@^2.1.0
│  ├─ qs@~6.5.2
│  ├─ safe-buffer@^5.1.2
│  ├─ tough-cookie@~2.4.3
│  ├─ tunnel-agent@^0.6.0
│  ├─ uuid@^3.3.2
│  └─ uuid@3.3.2
├─ require-directory@2.1.1
├─ require-main-filename@1.0.1
├─ resolve-cwd@2.0.0
│  └─ resolve-from@^3.0.0
├─ resolve-from@3.0.0
├─ resolve-url@0.2.1
├─ resolve@1.8.1
│  └─ path-parse@^1.0.5
├─ restore-cursor@2.0.0
│  ├─ onetime@^2.0.0
│  └─ signal-exit@^3.0.2
├─ ret@0.1.15
├─ right-align@0.1.3
│  └─ align-text@^0.1.1
├─ rimraf@2.6.2
│  └─ glob@^7.0.5
├─ rsvp@3.6.2
├─ run-async@2.3.0
│  └─ is-promise@^2.1.0
├─ rx-lite-aggregates@4.0.8
│  └─ rx-lite@*
├─ rx-lite@4.0.8
├─ safe-buffer@5.1.2
├─ safe-regex@1.1.0
│  └─ ret@~0.1.10
├─ safer-buffer@2.1.2
├─ sane@2.5.2
│  ├─ anymatch@^2.0.0
│  ├─ braces@2.3.2
│  │  ├─ arr-flatten@^1.1.0
│  │  ├─ array-unique@^0.3.2
│  │  ├─ extend-shallow@^2.0.1
│  │  ├─ extend-shallow@2.0.1
│  │  │  └─ is-extendable@^0.1.0
│  │  ├─ fill-range@^4.0.0
│  │  ├─ is-extendable@0.1.1
│  │  ├─ isobject@^3.0.1
│  │  ├─ repeat-element@^1.1.2
│  │  ├─ snapdragon-node@^2.0.1
│  │  ├─ snapdragon@^0.8.1
│  │  ├─ split-string@^3.0.2
│  │  └─ to-regex@^3.0.1
│  ├─ capture-exit@^1.2.0
│  ├─ define-property@2.0.2
│  │  ├─ is-descriptor@^1.0.2
│  │  └─ isobject@^3.0.1
│  ├─ exec-sh@^0.2.0
│  ├─ expand-brackets@2.1.4
│  │  ├─ debug@^2.3.3
│  │  ├─ define-property@^0.2.5
│  │  ├─ define-property@0.2.5
│  │  │  └─ is-descriptor@^0.1.0
│  │  ├─ extend-shallow@^2.0.1
│  │  ├─ extend-shallow@2.0.1
│  │  │  └─ is-extendable@^0.1.0
│  │  ├─ is-descriptor@0.1.6
│  │  │  ├─ is-accessor-descriptor@^0.1.6
│  │  │  ├─ is-data-descriptor@^0.1.4
│  │  │  └─ kind-of@^5.0.0
│  │  ├─ is-extendable@0.1.1
│  │  ├─ kind-of@5.1.0
│  │  ├─ posix-character-classes@^0.1.0
│  │  ├─ regex-not@^1.0.0
│  │  ├─ snapdragon@^0.8.1
│  │  └─ to-regex@^3.0.1
│  ├─ extend-shallow@3.0.2
│  │  ├─ assign-symbols@^1.0.0
│  │  └─ is-extendable@^1.0.1
│  ├─ extglob@2.0.4
│  │  ├─ array-unique@^0.3.2
│  │  ├─ define-property@^1.0.0
│  │  ├─ define-property@1.0.0
│  │  │  └─ is-descriptor@^1.0.0
│  │  ├─ expand-brackets@^2.1.4
│  │  ├─ extend-shallow@^2.0.1
│  │  ├─ extend-shallow@2.0.1
│  │  │  └─ is-extendable@^0.1.0
│  │  ├─ fragment-cache@^0.2.1
│  │  ├─ is-extendable@0.1.1
│  │  ├─ regex-not@^1.0.0
│  │  ├─ snapdragon@^0.8.1
│  │  └─ to-regex@^3.0.1
│  ├─ fb-watchman@^2.0.0
│  ├─ fill-range@4.0.0
│  │  ├─ extend-shallow@^2.0.1
│  │  ├─ extend-shallow@2.0.1
│  │  │  └─ is-extendable@^0.1.0
│  │  ├─ is-extendable@0.1.1
│  │  ├─ is-number@^3.0.0
│  │  ├─ repeat-string@^1.6.1
│  │  └─ to-regex-range@^2.1.0
│  ├─ fsevents@^1.2.3
│  ├─ is-accessor-descriptor@0.1.6
│  │  ├─ kind-of@^3.0.2
│  │  └─ kind-of@3.2.2
│  │     └─ is-buffer@^1.1.5
│  ├─ is-data-descriptor@0.1.4
│  │  ├─ kind-of@^3.0.2
│  │  └─ kind-of@3.2.2
│  │     └─ is-buffer@^1.1.5
│  ├─ is-extendable@1.0.1
│  │  └─ is-plain-object@^2.0.4
│  ├─ kind-of@6.0.2
│  ├─ micromatch@^3.1.4
│  ├─ micromatch@3.1.10
│  │  ├─ arr-diff@^4.0.0
│  │  ├─ array-unique@^0.3.2
│  │  ├─ braces@^2.3.1
│  │  ├─ define-property@^2.0.2
│  │  ├─ extend-shallow@^3.0.2
│  │  ├─ extglob@^2.0.4
│  │  ├─ fragment-cache@^0.2.1
│  │  ├─ kind-of@^6.0.2
│  │  ├─ nanomatch@^1.2.9
│  │  ├─ object.pick@^1.3.0
│  │  ├─ regex-not@^1.0.0
│  │  ├─ snapdragon@^0.8.1
│  │  └─ to-regex@^3.0.2
│  ├─ minimist@^1.1.1
│  ├─ walker@~1.0.5
│  └─ watch@~0.18.0
├─ sax@1.2.4
├─ semver@5.5.1
├─ send@0.16.2
│  ├─ debug@2.6.9
│  ├─ depd@~1.1.2
│  ├─ destroy@~1.0.4
│  ├─ encodeurl@~1.0.2
│  ├─ escape-html@~1.0.3
│  ├─ etag@~1.8.1
│  ├─ fresh@0.5.2
│  ├─ http-errors@~1.6.2
│  ├─ mime@1.4.1
│  ├─ mime@1.4.1
│  ├─ ms@2.0.0
│  ├─ on-finished@~2.3.0
│  ├─ range-parser@~1.2.0
│  ├─ statuses@~1.4.0
│  └─ statuses@1.4.0
├─ serialize-error@2.1.0
├─ serve-static@1.13.2
│  ├─ encodeurl@~1.0.2
│  ├─ escape-html@~1.0.3
│  ├─ parseurl@~1.3.2
│  └─ send@0.16.2
├─ set-blocking@2.0.0
├─ set-value@2.0.0
│  ├─ extend-shallow@^2.0.1
│  ├─ is-extendable@^0.1.1
│  ├─ is-plain-object@^2.0.3
│  └─ split-string@^3.0.1
├─ setimmediate@1.0.5
├─ setprototypeof@1.1.0
├─ shebang-command@1.2.0
│  └─ shebang-regex@^1.0.0
├─ shebang-regex@1.0.0
├─ shell-quote@1.6.1
│  ├─ array-filter@~0.0.0
│  ├─ array-map@~0.0.0
│  ├─ array-reduce@~0.0.0
│  └─ jsonify@~0.0.0
├─ shellwords@0.1.1
├─ signal-exit@3.0.2
├─ simple-plist@0.2.1
│  ├─ base64-js@1.1.2
│  ├─ bplist-creator@0.0.7
│  ├─ bplist-parser@0.1.1
│  ├─ plist@2.0.1
│  ├─ plist@2.0.1
│  │  ├─ base64-js@1.1.2
│  │  ├─ xmlbuilder@8.2.2
│  │  └─ xmldom@0.1.x
│  └─ xmlbuilder@8.2.2
├─ sisteransi@0.1.1
├─ slash@1.0.0
├─ slide@1.1.6
├─ snapdragon-node@2.1.1
│  ├─ define-property@^1.0.0
│  ├─ define-property@1.0.0
│  │  └─ is-descriptor@^1.0.0
│  ├─ isobject@^3.0.0
│  └─ snapdragon-util@^3.0.1
├─ snapdragon-util@3.0.1
│  └─ kind-of@^3.2.0
├─ snapdragon@0.8.2
│  ├─ base@^0.11.1
│  ├─ debug@^2.2.0
│  ├─ define-property@^0.2.5
│  ├─ extend-shallow@^2.0.1
│  ├─ map-cache@^0.2.2
│  ├─ source-map-resolve@^0.5.0
│  ├─ source-map@^0.5.6
│  └─ use@^3.1.0
├─ source-map-resolve@0.5.2
│  ├─ atob@^2.1.1
│  ├─ decode-uri-component@^0.2.0
│  ├─ resolve-url@^0.2.1
│  ├─ source-map-url@^0.4.0
│  └─ urix@^0.1.0
├─ source-map-support@0.4.18
│  └─ source-map@^0.5.6
├─ source-map-url@0.4.0
├─ source-map@0.5.7
├─ spdx-correct@3.0.0
│  ├─ spdx-expression-parse@^3.0.0
│  └─ spdx-license-ids@^3.0.0
├─ spdx-exceptions@2.1.0
├─ spdx-expression-parse@3.0.0
│  ├─ spdx-exceptions@^2.1.0
│  └─ spdx-license-ids@^3.0.0
├─ spdx-license-ids@3.0.0
├─ split-string@3.1.0
│  ├─ extend-shallow@^3.0.0
│  ├─ extend-shallow@3.0.2
│  │  ├─ assign-symbols@^1.0.0
│  │  └─ is-extendable@^1.0.1
│  └─ is-extendable@1.0.1
│     └─ is-plain-object@^2.0.4
├─ sprintf-js@1.0.3
├─ sshpk@1.14.2
│  ├─ asn1@~0.2.3
│  ├─ assert-plus@^1.0.0
│  ├─ bcrypt-pbkdf@^1.0.0
│  ├─ dashdash@^1.12.0
│  ├─ ecc-jsbn@~0.1.1
│  ├─ getpass@^0.1.1
│  ├─ jsbn@~0.1.0
│  ├─ safer-buffer@^2.0.2
│  └─ tweetnacl@~0.14.0
├─ stack-utils@1.0.1
├─ stacktrace-parser@0.1.4
├─ static-extend@0.1.2
│  ├─ define-property@^0.2.5
│  └─ object-copy@^0.1.0
├─ statuses@1.3.1
├─ stealthy-require@1.1.1
├─ stream-buffers@2.2.0
├─ string_decoder@1.1.1
│  └─ safe-buffer@~5.1.0
├─ string-length@2.0.0
│  ├─ ansi-regex@3.0.0
│  ├─ astral-regex@^1.0.0
│  ├─ strip-ansi@^4.0.0
│  └─ strip-ansi@4.0.0
│     └─ ansi-regex@^3.0.0
├─ string-width@2.1.1
│  ├─ ansi-regex@3.0.0
│  ├─ is-fullwidth-code-point@^2.0.0
│  ├─ strip-ansi@^4.0.0
│  └─ strip-ansi@4.0.0
│     └─ ansi-regex@^3.0.0
├─ strip-ansi@3.0.1
│  └─ ansi-regex@^2.0.0
├─ strip-bom@3.0.0
├─ strip-eof@1.0.0
├─ strip-json-comments@2.0.1
├─ supports-color@5.5.0
│  └─ has-flag@^3.0.0
├─ symbol-tree@3.2.2
├─ tar@4.4.6
│  ├─ chownr@^1.0.1
│  ├─ fs-minipass@^1.2.5
│  ├─ minipass@^2.3.3
│  ├─ minizlib@^1.1.0
│  ├─ mkdirp@^0.5.0
│  ├─ safe-buffer@^5.1.2
│  └─ yallist@^3.0.2
├─ temp@0.8.3
│  ├─ os-tmpdir@^1.0.0
│  ├─ rimraf@~2.2.6
│  └─ rimraf@2.2.8
├─ test-exclude@4.2.1
│  ├─ arrify@^1.0.1
│  ├─ braces@2.3.2
│  │  ├─ arr-flatten@^1.1.0
│  │  ├─ array-unique@^0.3.2
│  │  ├─ extend-shallow@^2.0.1
│  │  ├─ extend-shallow@2.0.1
│  │  │  └─ is-extendable@^0.1.0
│  │  ├─ fill-range@^4.0.0
│  │  ├─ is-extendable@0.1.1
│  │  ├─ isobject@^3.0.1
│  │  ├─ repeat-element@^1.1.2
│  │  ├─ snapdragon-node@^2.0.1
│  │  ├─ snapdragon@^0.8.1
│  │  ├─ split-string@^3.0.2
│  │  └─ to-regex@^3.0.1
│  ├─ define-property@2.0.2
│  │  ├─ is-descriptor@^1.0.2
│  │  └─ isobject@^3.0.1
│  ├─ expand-brackets@2.1.4
│  │  ├─ debug@^2.3.3
│  │  ├─ define-property@^0.2.5
│  │  ├─ define-property@0.2.5
│  │  │  └─ is-descriptor@^0.1.0
│  │  ├─ extend-shallow@^2.0.1
│  │  ├─ extend-shallow@2.0.1
│  │  │  └─ is-extendable@^0.1.0
│  │  ├─ is-descriptor@0.1.6
│  │  │  ├─ is-accessor-descriptor@^0.1.6
│  │  │  ├─ is-data-descriptor@^0.1.4
│  │  │  └─ kind-of@^5.0.0
│  │  ├─ is-extendable@0.1.1
│  │  ├─ kind-of@5.1.0
│  │  ├─ posix-character-classes@^0.1.0
│  │  ├─ regex-not@^1.0.0
│  │  ├─ snapdragon@^0.8.1
│  │  └─ to-regex@^3.0.1
│  ├─ extend-shallow@3.0.2
│  │  ├─ assign-symbols@^1.0.0
│  │  └─ is-extendable@^1.0.1
│  ├─ extglob@2.0.4
│  │  ├─ array-unique@^0.3.2
│  │  ├─ define-property@^1.0.0
│  │  ├─ define-property@1.0.0
│  │  │  └─ is-descriptor@^1.0.0
│  │  ├─ expand-brackets@^2.1.4
│  │  ├─ extend-shallow@^2.0.1
│  │  ├─ extend-shallow@2.0.1
│  │  │  └─ is-extendable@^0.1.0
│  │  ├─ fragment-cache@^0.2.1
│  │  ├─ is-extendable@0.1.1
│  │  ├─ regex-not@^1.0.0
│  │  ├─ snapdragon@^0.8.1
│  │  └─ to-regex@^3.0.1
│  ├─ fill-range@4.0.0
│  │  ├─ extend-shallow@^2.0.1
│  │  ├─ extend-shallow@2.0.1
│  │  │  └─ is-extendable@^0.1.0
│  │  ├─ is-extendable@0.1.1
│  │  ├─ is-number@^3.0.0
│  │  ├─ repeat-string@^1.6.1
│  │  └─ to-regex-range@^2.1.0
│  ├─ find-up@1.1.2
│  │  ├─ path-exists@^2.0.0
│  │  └─ pinkie-promise@^2.0.0
│  ├─ is-accessor-descriptor@0.1.6
│  │  ├─ kind-of@^3.0.2
│  │  └─ kind-of@3.2.2
│  │     └─ is-buffer@^1.1.5
│  ├─ is-data-descriptor@0.1.4
│  │  ├─ kind-of@^3.0.2
│  │  └─ kind-of@3.2.2
│  │     └─ is-buffer@^1.1.5
│  ├─ is-extendable@1.0.1
│  │  └─ is-plain-object@^2.0.4
│  ├─ kind-of@6.0.2
│  ├─ load-json-file@1.1.0
│  │  ├─ graceful-fs@^4.1.2
│  │  ├─ parse-json@^2.2.0
│  │  ├─ pify@^2.0.0
│  │  ├─ pinkie-promise@^2.0.0
│  │  └─ strip-bom@^2.0.0
│  ├─ micromatch@^3.1.8
│  ├─ micromatch@3.1.10
│  │  ├─ arr-diff@^4.0.0
│  │  ├─ array-unique@^0.3.2
│  │  ├─ braces@^2.3.1
│  │  ├─ define-property@^2.0.2
│  │  ├─ extend-shallow@^3.0.2
│  │  ├─ extglob@^2.0.4
│  │  ├─ fragment-cache@^0.2.1
│  │  ├─ kind-of@^6.0.2
│  │  ├─ nanomatch@^1.2.9
│  │  ├─ object.pick@^1.3.0
│  │  ├─ regex-not@^1.0.0
│  │  ├─ snapdragon@^0.8.1
│  │  └─ to-regex@^3.0.2
│  ├─ object-assign@^4.1.0
│  ├─ path-exists@2.1.0
│  │  └─ pinkie-promise@^2.0.0
│  ├─ path-type@1.1.0
│  │  ├─ graceful-fs@^4.1.2
│  │  ├─ pify@^2.0.0
│  │  └─ pinkie-promise@^2.0.0
│  ├─ read-pkg-up@^1.0.1
│  ├─ read-pkg-up@1.0.1
│  │  ├─ find-up@^1.0.0
│  │  └─ read-pkg@^1.0.0
│  ├─ read-pkg@1.1.0
│  │  ├─ load-json-file@^1.0.0
│  │  ├─ normalize-package-data@^2.3.2
│  │  └─ path-type@^1.0.0
│  ├─ require-main-filename@^1.0.1
│  └─ strip-bom@2.0.0
│     └─ is-utf8@^0.2.0
├─ throat@4.1.0
├─ through@2.3.8
├─ through2@2.0.3
│  ├─ readable-stream@^2.1.5
│  └─ xtend@~4.0.1
├─ time-stamp@1.1.0
├─ tmp@0.0.33
│  └─ os-tmpdir@~1.0.2
├─ tmpl@1.0.4
├─ to-fast-properties@2.0.0
├─ to-object-path@0.3.0
│  └─ kind-of@^3.0.2
├─ to-regex-range@2.1.1
│  ├─ is-number@^3.0.0
│  └─ repeat-string@^1.6.1
├─ to-regex@3.0.2
│  ├─ define-property@^2.0.2
│  ├─ define-property@2.0.2
│  │  ├─ is-descriptor@^1.0.2
│  │  └─ isobject@^3.0.1
│  ├─ extend-shallow@^3.0.2
│  ├─ extend-shallow@3.0.2
│  │  ├─ assign-symbols@^1.0.0
│  │  └─ is-extendable@^1.0.1
│  ├─ is-extendable@1.0.1
│  │  └─ is-plain-object@^2.0.4
│  ├─ regex-not@^1.0.2
│  └─ safe-regex@^1.1.0
├─ tough-cookie@2.4.3
│  ├─ psl@^1.1.24
│  └─ punycode@^1.4.1
├─ tr46@1.0.1
│  ├─ punycode@^2.1.0
│  └─ punycode@2.1.1
├─ trim-right@1.0.1
├─ tunnel-agent@0.6.0
│  └─ safe-buffer@^5.0.1
├─ tweetnacl@0.14.5
├─ type-check@0.3.2
│  └─ prelude-ls@~1.1.2
├─ typedarray@0.0.6
├─ ua-parser-js@0.7.18
├─ uglify-es@3.3.9
│  ├─ commander@~2.13.0
│  ├─ commander@2.13.0
│  ├─ source-map@~0.6.1
│  └─ source-map@0.6.1
├─ uglify-js@2.8.29
│  ├─ camelcase@1.2.1
│  ├─ cliui@2.1.0
│  │  ├─ center-align@^0.1.1
│  │  ├─ right-align@^0.1.1
│  │  └─ wordwrap@0.0.2
│  ├─ source-map@~0.5.1
│  ├─ uglify-to-browserify@~1.0.0
│  ├─ wordwrap@0.0.2
│  ├─ yargs@~3.10.0
│  └─ yargs@3.10.0
│     ├─ camelcase@^1.0.2
│     ├─ cliui@^2.1.0
│     ├─ decamelize@^1.0.0
│     └─ window-size@0.1.0
├─ uglify-to-browserify@1.0.2
├─ ultron@1.0.2
├─ unicode-canonical-property-names-ecmascript@1.0.4
├─ unicode-match-property-ecmascript@1.0.4
│  ├─ unicode-canonical-property-names-ecmascript@^1.0.4
│  └─ unicode-property-aliases-ecmascript@^1.0.4
├─ unicode-match-property-value-ecmascript@1.0.2
├─ unicode-property-aliases-ecmascript@1.0.4
├─ union-value@1.0.0
│  ├─ arr-union@^3.1.0
│  ├─ get-value@^2.0.6
│  ├─ is-extendable@^0.1.1
│  ├─ set-value@^0.4.3
│  └─ set-value@0.4.3
│     ├─ extend-shallow@^2.0.1
│     ├─ is-extendable@^0.1.1
│     ├─ is-plain-object@^2.0.1
│     └─ to-object-path@^0.3.0
├─ unpipe@1.0.0
├─ unset-value@1.0.0
│  ├─ has-value@^0.3.1
│  ├─ has-value@0.3.1
│  │  ├─ get-value@^2.0.3
│  │  ├─ has-values@^0.1.4
│  │  ├─ isobject@^2.0.0
│  │  └─ isobject@2.1.0
│  │     └─ isarray@1.0.0
│  ├─ has-values@0.1.4
│  └─ isobject@^3.0.0
├─ urix@0.1.0
├─ use@3.1.1
├─ util-deprecate@1.0.2
├─ util.promisify@1.0.0
│  ├─ define-properties@^1.1.2
│  └─ object.getownpropertydescriptors@^2.0.3
├─ utils-merge@1.0.1
├─ uuid@3.0.1
├─ validate-npm-package-license@3.0.4
│  ├─ spdx-correct@^3.0.0
│  └─ spdx-expression-parse@^3.0.0
├─ vary@1.1.2
├─ verror@1.10.0
│  ├─ assert-plus@^1.0.0
│  ├─ core-util-is@1.0.2
│  ├─ extsprintf@^1.2.0
│  └─ extsprintf@1.4.0
├─ w3c-hr-time@1.0.1
│  └─ browser-process-hrtime@^0.1.2
├─ walker@1.0.7
│  └─ makeerror@1.0.x
├─ watch@0.18.0
│  ├─ exec-sh@^0.2.0
│  └─ minimist@^1.2.0
├─ webidl-conversions@4.0.2
├─ whatwg-encoding@1.0.4
│  ├─ iconv-lite@0.4.23
│  └─ iconv-lite@0.4.23
│     └─ safer-buffer@>= 2.1.2 < 3
├─ whatwg-fetch@2.0.4
├─ whatwg-mimetype@2.1.0
├─ whatwg-url@6.5.0
│  ├─ lodash.sortby@^4.7.0
│  ├─ tr46@^1.0.1
│  └─ webidl-conversions@^4.0.2
├─ which-module@2.0.0
├─ which@1.3.1
│  └─ isexe@^2.0.0
├─ wide-align@1.1.3
│  └─ string-width@^1.0.2 || 2
├─ window-size@0.1.0
├─ wordwrap@1.0.0
├─ wrap-ansi@2.1.0
│  ├─ is-fullwidth-code-point@1.0.0
│  │  └─ number-is-nan@^1.0.0
│  ├─ string-width@^1.0.1
│  ├─ string-width@1.0.2
│  │  ├─ code-point-at@^1.0.0
│  │  ├─ is-fullwidth-code-point@^1.0.0
│  │  └─ strip-ansi@^3.0.0
│  └─ strip-ansi@^3.0.1
├─ wrappy@1.0.2
├─ write-file-atomic@1.3.4
│  ├─ graceful-fs@^4.1.11
│  ├─ imurmurhash@^0.1.4
│  └─ slide@^1.1.5
├─ ws@1.1.5
│  ├─ options@>=0.0.5
│  └─ ultron@1.0.x
├─ xcode@0.9.3
│  ├─ pegjs@^0.10.0
│  ├─ simple-plist@^0.2.1
│  └─ uuid@3.0.1
├─ xml-name-validator@3.0.0
├─ xmlbuilder@9.0.7
├─ xmldoc@0.4.0
│  ├─ sax@~1.1.1
│  └─ sax@1.1.6
├─ xmldom@0.1.27
├─ xpipe@1.0.5
├─ xtend@4.0.1
├─ y18n@3.2.1
├─ yallist@3.0.2
├─ yargs-parser@9.0.2
│  └─ camelcase@^4.1.0
└─ yargs@11.1.0
   ├─ cliui@^4.0.0
   ├─ decamelize@^1.1.1
   ├─ find-up@^2.1.0
   ├─ get-caller-file@^1.0.1
   ├─ os-locale@^2.0.0
   ├─ require-directory@^2.1.1
   ├─ require-main-filename@^1.0.1
   ├─ set-blocking@^2.0.0
   ├─ string-width@^2.0.0
   ├─ which-module@^2.0.0
   ├─ y18n@^3.2.1
   └─ yargs-parser@^9.0.2
Done in 0.88s.

Based on the yarn list output, I think I’m getting babel-core@6 instead of 7. So I followed the directions on the Jest website to install babel-core and related for Babel 7.

Terminal
$ yarn add --dev babel-jest 'babel-core@^7.0.0-0' @babel/core regenerator-runtime
$ yarn test
yarn run v1.9.4
$ jest
 FAIL  __tests__/Button.test.js
  ● Test suite failed to run

    SyntaxError: /Users/jeremy/dev/rntest/node_modules/react-native/jest/mockComponent.js: Support for the experimental syntax 'classProperties' isn't currently enabled (20:24):

      18 | 
      19 |   const Component = class extends SuperClass {
    > 20 |     static displayName = 'Component';
         |                        ^
      21 | 
      22 |     render() {
      23 |       const name =

    Add @babel/plugin-proposal-class-properties (https://git.io/vb4SL) to the 'plugins' section of your Babel config to enable transformation.

      at Parser.raise (node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:3913:15)
      at Parser.expectPlugin (node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:5247:18)
      at Parser.parseClassProperty (node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8097:12)
      at Parser.pushClassProperty (node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8061:30)
      at Parser.parseClassMemberWithIsStatic (node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7994:14)
      at Parser.parseClassMember (node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7931:10)
      at Parser.parseClassBody (node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7886:12)
      at Parser.parseClass (node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7836:10)
      at Parser.parseExprAtom (node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:6299:21)
      at Parser.parseExprSubscripts (node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:5918:21)

Test Suites: 1 failed, 1 total
Tests:       0 total
Snapshots:   0 total
Time:        0.28s
Ran all test suites.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Further, but now I’m running into an issue which seems to point to missing babel transforms. So I add that npm module, update .babelrc and try again. Still no luck.

Terminal
$ yarn add @babel/plugin-proposal-class-properties
yarn add v1.9.4
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
[4/4] 📃  Building fresh packages...
success Saved lockfile.
success Saved 2 new dependencies.
info Direct dependencies
└─ @babel/plugin-proposal-class-properties@7.0.0-rc.3
info All dependencies
├─ @babel/plugin-proposal-class-properties@7.0.0-rc.3
└─ @babel/plugin-syntax-class-properties@7.0.0-rc.3
✨  Done in 4.17s.
$ vim .babelrc
$ cat .babelrc
{
  "plugins": ["@babel/plugin-proposal-class-properties"],
  "presets": ["module:metro-react-native-babel-preset"]
}
$ yarn test
yarn run v1.9.4
$ jest
 FAIL  __tests__/Button.test.js
  ● Test suite failed to run

    SyntaxError: /Users/jeremy/dev/rntest/node_modules/react-native/jest/mockComponent.js: Support for the experimental syntax 'classProperties' isn't currently enabled (20:24):

      18 | 
      19 |   const Component = class extends SuperClass {
    > 20 |     static displayName = 'Component';
         |                        ^
      21 | 
      22 |     render() {
      23 |       const name =

    Add @babel/plugin-proposal-class-properties (https://git.io/vb4SL) to the 'plugins' section of your Babel config to enable transformation.

      at Parser.raise (node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:3913:15)
      at Parser.expectPlugin (node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:5247:18)
      at Parser.parseClassProperty (node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8097:12)
      at Parser.pushClassProperty (node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8061:30)
      at Parser.parseClassMemberWithIsStatic (node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7994:14)
      at Parser.parseClassMember (node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7931:10)
      at Parser.parseClassBody (node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7886:12)
      at Parser.parseClass (node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7836:10)
      at Parser.parseExprAtom (node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:6299:21)
      at Parser.parseExprSubscripts (node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:5918:21)

Test Suites: 1 failed, 1 total
Tests:       0 total
Snapshots:   0 total
Time:        0.472s
Ran all test suites.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Maybe it’s related to us using .babelrc instead of the new babel.config.js? Let’s try that.

Terminal
$ mv .babelrc babel.config.js
$ vim babel.config.js
$ cat babel.config.js
module.exports = function(api) {
  api.cache(true);

  return {
    "plugins": ["@babel/plugin-proposal-class-properties"],
    "presets": ["module:metro-react-native-babel-preset"]
  }
}
$ yarn test 
yarn run v1.9.4
$ jest
 FAIL  __tests__/Button.test.js
  Button
    ✕ does stuff (6ms)

  ● Button › does stuff

    TypeError: Cannot read property 'bind' of undefined

       5 | 
       6 |     constructor() {
    >  7 |         this._binder = this._binder.bind(this);
         |                                     ^
       8 |     }
       9 | 
      10 |     _binder() {

      at new bind (__tests__/Button.test.js:7:37)
      at Object.<anonymous> (__tests__/Button.test.js:17:19)

Test Suites: 1 failed, 1 total
Tests:       1 failed, 1 total
Snapshots:   0 total
Time:        1.354s, estimated 2s
Ran all test suites.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
$ _ 

Ok, looks like I’m missing @babel/plugin-transform-classes. Let’s add that:

Terminal
yarn add @babel/plugin-transform-classes                                                                  0 < 09:55:41
yarn add v1.9.4
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
[4/4] 📃  Building fresh packages...
success Saved lockfile.
success Saved 2 new dependencies.
info Direct dependencies
└─ @babel/plugin-transform-classes@7.0.0-rc.4
info All dependencies
├─ @babel/helper-define-map@7.0.0-rc.4
└─ @babel/plugin-transform-classes@7.0.0-rc.4
✨  Done in 5.22s.
$ vim babel.config.js
$ cat babel.config.js
module.exports = function(api) {
  api.cache(true);

  return {
    "plugins": ["@babel/plugin-transform-classes", "@babel/plugin-proposal-class-properties"],
    "presets": ["module:metro-react-native-babel-preset"]
  }
}
$ yarn test
yarn run v1.9.4
$ jest
 FAIL  __tests__/Button.test.js
  Button
    ✕ does stuff (6ms)

  ● Button › does stuff

    TypeError: Cannot read property 'bind' of undefined

       5 | 
       6 |     constructor() {
    >  7 |         this._binder = this._binder.bind(this);
         |                                     ^
       8 |     }
       9 | 
      10 |     _binder() {

      at new bind (__tests__/Button.test.js:7:37)
      at Object.<anonymous> (__tests__/Button.test.js:17:19)

Test Suites: 1 failed, 1 total
Tests:       1 failed, 1 total
Snapshots:   0 total
Time:        0.532s, estimated 2s
Ran all test suites.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

It looks like babel isn’t picking up that new plugin when I run jest. 😕

Ok, found this comment and that’s the solution (item number 3!).

Let’s add the transform!

Terminal ```sh $ vim package.json $ cat package.json { "name": "rntest", "version": "0.0.1", "private": true, "scripts": { "start": "node node_modules/react-native/local-cli/cli.js start", "test": "jest" }, "dependencies": { "react": "16.4.1", "react-native": "0.57.0-rc.3" }, "devDependencies": { "@babel/core": "^7.0.0-rc.3", "babel-core": "^7.0.0-0", "babel-jest": "^23.4.2", "jest": "23.5.0", "metro-react-native-babel-preset": "^0.43.5", "react-test-renderer": "16.4.1", "regenerator-runtime": "^0.12.1" }, "jest": { "preset": "react-native", "transform": { "^.+\\.js$": "<rootDir>/node_modules/react-native/jest/preprocessor.js" } } } $ yarn test yarn run v1.9.4 $ jest PASS __tests__/Button.test.js Button ✓ does stuff (1ms)

Test Suites: 1 passed, 1 total Tests: 1 passed, 1 total Snapshots: 0 total Time: 3.462s Ran all test suites. ✨ Done in 5.62s.

</details>

I thought unit testing features were (should be?) supported out of the box.  Would this be something that could make the 0.57 release if I submitted a PR to patch the Hello World template?

## Reproducible Demo

Video: https://asciinema.org/a/qcNt2tKSZfWkxGKchZ53gLkNd
Repo: https://github.com/jeremywiebe/rn-0.57-rc.3-tests

This seems related to https://github.com/facebook/react-native/issues/20327. 

About this issue

  • Original URL
  • State: closed
  • Created 6 years ago
  • Reactions: 15
  • Comments: 27 (4 by maintainers)

Most upvoted comments

Below are minimal package.jsons to make yarn test work for both TS and JS after running react-native init.

These are based on manually copying the __tests__ directory from the HelloWorld template; which for some reason isn’t being copied over correctly for new projects.

JS

// package.json

{
  "name": "JavaScriptApp",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest"
  },
  "dependencies": {
    "react": "16.5.0",
    "react-native": "0.57.0"
  },
  "devDependencies": {
    "babel-jest": "23.6.0",
    "jest": "23.6.0",
    "metro-react-native-babel-preset": "0.45.3",
    "react-test-renderer": "16.5.0"
  },
  "jest": {
    "preset": "react-native",
    "transform": {
      "^.+\\.(js)$": "<rootDir>/node_modules/react-native/jest/preprocessor.js"
    }
  }
}

image


TS

// package.json

{
  "name": "TypeScriptApp",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest"
  },
  "dependencies": {
    "react": "16.5.0",
    "react-native": "0.57.0"
  },
  "devDependencies": {
    "babel-jest": "23.6.0",
    "jest": "23.6.0",
    "metro-react-native-babel-preset": "0.45.3",
    "react-test-renderer": "16.5.0",
    "ts-jest": "^23.1.4",
    "typescript": "^3.0.3"
  },
  "jest": {
    "preset": "react-native",
    "moduleFileExtensions": [
      "ts",
      "tsx",
      "js",
      "jsx",
      "json"
    ],
    "transform": {
      "^.+\\.(js)$": "<rootDir>/node_modules/react-native/jest/preprocessor.js",
      "\\.(ts|ts)x?$": "ts-jest"
    },
    "testRegex": "(/__tests__/.*|(\\.|/)(test|spec))\\.(js|ts)x?$",
    "globals": {
      "ts-jest": {
        "useBabelrc": true
      }
    }
  }
}

image

⚠️ you need to change import React from 'react' to import * as React from 'react' for the .tsx version

As mentioned in https://github.com/facebook/metro/issues/242#issuecomment-422050382, the solution presented above (i.e. using Jest’s preprocessor in the transform property) works to an extent, but doesn’t seem to play well with Jest manual mocks. It’s as though the jest.mock() calls are completely ignored.

In other words, tests involving manual mocks that previously succeeded do not anymore. Here’s an example:

FAIL  ./App.test.js
  ● Test suite failed to run

    TypeError: Cannot read property 'language' of undefined

    > 1 | import RNLanguages from 'react-native-languages';
        |                                                                                          ^
      2 | import i18n from 'i18n-js';
      3 | 
      4 | import frCA from './locales/fr-CA.json';

      at Object.<anonymous> (node_modules/react-native-languages/index.js:27:28)
      at Object.<anonymous> (src/i18n.js:1:191)
      at Object.<anonymous> (src/screens/Home.js:4:48)

Test Suites: 1 failed, 1 total
Tests:       0 total
Snapshots:   0 total
Time:        0.966s
Ran all test suites.

The above happens even though the manual mock defines the language property:

jest.mock('react-native-languages', () => {
  return {
     language: 'en-US',
     addEventListener: jest.fn(),
  };
});

Anyone else seeing this behavior when Jest manual mocks are involved?

I can still experience this on react-native@0.57

As @jeremywiebe said, just add

"transform": {
   "^.+\\.js$": "<RELATIVE_PATH>/preprocessor.js"
}

to your package.json’s "jest" key

I sees lot of solutions that says to add the transform to the jest config. The huge problem with that is the jest.mock stop working afterward.

Without the transform (Before Babel 7 and RN 0.56), mocking a module like that would work fine.

import dumbClient from '../../dumbClient'

jest.mock('../../dumbClient');

  it('is a test', () => {
    dumbClient.testFunction.mockImplementation(() => true)

    const response = dumbClient.testFunction();

    expect(response).toBeTruthy()
});

However, with the transform it fails because testFunction.mockImplementation is not defined. The mock as it should work stopped working.

What would be the other possibility?

Update: If you integrate test with Jest and Enzyme in the new React Version 0.57 and typescript out of the box, they won’t work.

Here are the steps to reproduce.

Create a new react native project: react-native init MyApp -package "com.my.app" --template typescript && node MyApp/setup.js

Install all Jest and Enzyne related packages: npm install --save-dev react-dom enzyme enzyme-react-adapter-16 jest-fetch-mock ts-jest

Add the jest configuration to package.json:

"jest": {
  "preset": "react-native",
  "moduleFileExtensions": [
    "ts",
    "tsx",
    "js"
  ],
  "transform": {
    "^.+\\.(js)$": "<rootDir>/node_modules/babel-jest",
    "\\.(ts|tsx)$": "<rootDir>/node_modules/ts-jest/preprocessor.js"
  },
  "testRegex": "(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js)$",
  "testPathIgnorePatterns": [
    "\\.snap$",
    "<rootDir>/node_modules/"
  ],
  "cacheDirectory": ".jest/cache",
  "setupFiles": [
    "./tests/setup.js"
  ]
}

Add a file tests/setup.js and include the following configuration:

import Enzyme from "enzyme";
import Adapter from "enzyme-adapter-react-16";
import { NativeModules } from "react-native";

global.fetch = require("jest-fetch-mock"); // eslint-disable-line no-undef
jest.mock("react-native-config");
Enzyme.configure({ adapter: new Adapter() });

Last but not least add a basic test (App.test.tsx) to check if Jest and Enzyme work:

import React from "react";
import { shallow } from "enzyme";
import { View } from "react-native";
import App from "./App";

const createTestProps = props => ({
  ...props
});

describe("App", () => {
  describe("rendering", () => {
    let wrapper;
    let props;
    beforeEach(() => {
      props = createTestProps({});
      wrapper = shallow(<App {...props} />);
    });

    it("should render a <View />", () => {
      expect(wrapper.find(View)).toHaveLength(1);
    });
  });
});

If you now try to run the test, the error message you get is:

FAIL  app/App.test.tsx
  ● Test suite failed to run

    Couldn't find preset "module:metro-react-native-babel-preset" relative to directory "<Directory>"

After doing the following:

  • Using the exact same versions as @hanford
  • doing rm -rf node_modules && npm i
  • renaming my .babelrc to babel.config.js (and putting module.exports = at the beginning)
  • and NOT removing the transform bit under jest in my package.json

My mocks came back to life

I solved this days ago. Unfortunately this thread was locked days ago and just got unlocked, which is why I’m only now posting the answer.

I wrote a Medium tutorial on the settings that you need to solve this. Just skip to the step two.

jest.mock() works with these settings, too. I hope this helps.

EDIT: Wow apparently jest.mock() also does not work. I tried doing what @hanford suggested and added "babel-plugin-jest-hoist": "^23.2.0",, but it didn’t help.

Yes @maximevaillancourt - we are having the same issue. If we use the jest preprocessor from RN, the tests “run” but jest.mock() does not work at all so all snapshots etc are failing.

Related issue on the “metro” repository: https://github.com/facebook/metro/issues/242#issuecomment-422050382

I’m experiencing the exact same problem.

I’m facing the same error with typescript:

Here are my devDependencies in package.json:

"devDependencies": {
    "@types/jest": "23.3.2",
    "@types/react": "16.4.14",
    "@types/react-native": "0.56.18",
    "@types/react-native-orientation": "^5.0.1",
    "@types/react-test-renderer": "16.0.2",
    "babel-eslint": "^9.0.0",
    "babel-jest": "23.6.0",
    "enzyme": "^3.6.0",
    "enzyme-adapter-react-16": "^1.5.0",
    "eslint": "^5.6.0",
    "eslint-plugin-react": "^7.11.1",
    "jest": "23.6.0",
    "jest-fetch-mock": "^1.6.6",
    "metro-react-native-babel-preset": "0.45.3",
    "prop-types": "^15.6.2",
    "react-dom": "^16.5.0",
    "react-test-renderer": "16.5.0",
    "ts-jest": "^23.1.4",
    "typescript": "3.0.3"
  },
  "jest": {
    "preset": "react-native",
    "moduleFileExtensions": [
      "ts",
      "tsx",
      "js"
    ],
    "transform": {
      "^.+\\.(js)$": "<rootDir>/node_modules/babel-jest",
      "\\.(ts|tsx)$": "<rootDir>/node_modules/ts-jest/preprocessor.js"
    },
    "testRegex": "(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js)$",
    "testPathIgnorePatterns": [
      "\\.snap$",
      "<rootDir>/node_modules/"
    ],
    "cacheDirectory": ".jest/cache",
    "setupFiles": [
      "./tests/setup.js"
    ]
  }

Closing this since, as you mentioned, it’s a duplicate. That said, we discussed a little bit about “how/if” to have a functional jest support here.

Moreover, there is actually one PR that may fix the issue.