Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

unable to exclude node_modules #953

Closed
ssube opened this issue Dec 23, 2018 · 6 comments
Closed

unable to exclude node_modules #953

ssube opened this issue Dec 23, 2018 · 6 comments

Comments

@ssube
Copy link

ssube commented Dec 23, 2018

Link to bug demonstration repository.

https://github.com/ssube/noicejs/tree/feature/coverage

Expected Behavior

Running npm install && make should report test coverage for code under src/ and test/, somewhere around the 80% mark (+/- recent changes).

Observed Behavior

Tests runs with coverage, but the numbers are well off from where they should be:

=============================== Coverage summary ===============================
Statements   : 29.38% ( 3924/13355 )
Branches     : 13.62% ( 1163/8536 )
Functions    : 26.43% ( 597/2259 )
Lines        : 29.41% ( 3878/13184 )
================================================================================

This seems to be caused by node_modules appearing in the report:
image

Configuring package.json to ignore **/node_modules/** does not seem to help. The report appears to be the same with or without that config, as though it was being ignored. None of the options I'm passing should override that, as far as I can tell.

On a second project with a larger set of dependencies, nyc cannot finish instrumenting node_modules without at least --max-old-space-size=8192 and even then, instrumenting some modules seems to break them.

Forensic Information

Operating System:

OS: Ubuntu 18.04 bionic
Kernel: x86_64 Linux 4.15.0-43-generic

Environment Information:

package versions
[04:44:46] ssube@ssube-cerberus ~/code/noicejs (feature/coverage@f6fdd003) > node --version; npm --version; npm ls
v10.1.0                                                     
5.6.0                    
noicejs@2.3.3 /home/ssube/code/noicejs
├── @types/chai@4.1.7
├─┬ @types/chai-as-promised@7.1.0
│ └── @types/chai@4.1.7 deduped
├── @types/mocha@5.2.5
├── @types/node@10.12.10
├─┬ @types/sinon-chai@3.2.1
│ ├── @types/chai@4.1.7 deduped
│ └── @types/sinon@5.0.7
├─┬ @types/source-map-support@0.4.1
│ └── @types/node@10.12.10 deduped
├── archy@1.0.0 extraneous
├─┬ awesome-typescript-loader@5.2.1
│ ├─┬ chalk@2.4.1
│ │ ├─┬ ansi-styles@3.2.1
│ │ │ └─┬ color-convert@1.9.3
│ │ │   └── color-name@1.1.3
│ │ ├── escape-string-regexp@1.0.5 deduped
│ │ └── supports-color@5.5.0 deduped
│ ├─┬ enhanced-resolve@4.1.0
│ │ ├── graceful-fs@4.1.15
│ │ ├── memory-fs@0.4.1 deduped
│ │ └── tapable@1.1.0 deduped
│ ├─┬ loader-utils@1.1.0
│ │ ├── big.js@3.2.0
│ │ ├── emojis-list@2.1.0
│ │ └── json5@0.5.1
│ ├── lodash@4.17.11
│ ├─┬ micromatch@3.1.10
│ │ ├── arr-diff@4.0.0
│ │ ├── array-unique@0.3.2
│ │ ├─┬ braces@2.3.2
│ │ │ ├── arr-flatten@1.1.0
│ │ │ ├── array-unique@0.3.2 deduped
│ │ │ ├─┬ extend-shallow@2.0.1
│ │ │ │ └── is-extendable@0.1.1
│ │ │ ├─┬ fill-range@4.0.0
│ │ │ │ ├── extend-shallow@2.0.1 deduped
│ │ │ │ ├─┬ is-number@3.0.0
│ │ │ │ │ └─┬ kind-of@3.2.2
│ │ │ │ │   └── is-buffer@1.1.6
│ │ │ │ ├── repeat-string@1.6.1
│ │ │ │ └─┬ to-regex-range@2.1.1
│ │ │ │   ├── is-number@3.0.0 deduped
│ │ │ │   └── repeat-string@1.6.1 deduped
│ │ │ ├── isobject@3.0.1
│ │ │ ├── repeat-element@1.1.3
│ │ │ ├── snapdragon@0.8.2 deduped
│ │ │ ├─┬ snapdragon-node@2.1.1
│ │ │ │ ├─┬ define-property@1.0.0
│ │ │ │ │ └── is-descriptor@1.0.2 deduped
│ │ │ │ ├── isobject@3.0.1 deduped
│ │ │ │ └─┬ snapdragon-util@3.0.1
│ │ │ │   └── kind-of@3.2.2 deduped
│ │ │ ├─┬ split-string@3.1.0
│ │ │ │ └─┬ extend-shallow@3.0.2
│ │ │ │   ├── assign-symbols@1.0.0 deduped
│ │ │ │   └─┬ is-extendable@1.0.1
│ │ │ │     └── is-plain-object@2.0.4 deduped
│ │ │ └── to-regex@3.0.2 deduped
│ │ ├─┬ define-property@2.0.2
│ │ │ ├─┬ is-descriptor@1.0.2
│ │ │ │ ├─┬ is-accessor-descriptor@1.0.0
│ │ │ │ │ └── kind-of@6.0.2
│ │ │ │ ├─┬ is-data-descriptor@1.0.0
│ │ │ │ │ └── kind-of@6.0.2
│ │ │ │ └── kind-of@6.0.2
│ │ │ └── isobject@3.0.1 deduped
│ │ ├─┬ extend-shallow@3.0.2
│ │ │ ├── assign-symbols@1.0.0
│ │ │ └─┬ is-extendable@1.0.1
│ │ │   └─┬ is-plain-object@2.0.4
│ │ │     └── isobject@3.0.1 deduped
│ │ ├─┬ extglob@2.0.4
│ │ │ ├── array-unique@0.3.2 deduped
│ │ │ ├─┬ define-property@1.0.0
│ │ │ │ └── is-descriptor@1.0.2 deduped
│ │ │ ├─┬ expand-brackets@2.1.4
│ │ │ │ ├── debug@2.6.9 deduped
│ │ │ │ ├── define-property@0.2.5 deduped
│ │ │ │ ├── extend-shallow@2.0.1 deduped
│ │ │ │ ├── posix-character-classes@0.1.1
│ │ │ │ ├── regex-not@1.0.2 deduped
│ │ │ │ ├── snapdragon@0.8.2 deduped
│ │ │ │ └── to-regex@3.0.2 deduped
│ │ │ ├── extend-shallow@2.0.1 deduped
│ │ │ ├── fragment-cache@0.2.1 deduped
│ │ │ ├── regex-not@1.0.2 deduped
│ │ │ ├── snapdragon@0.8.2 deduped
│ │ │ └── to-regex@3.0.2 deduped
│ │ ├─┬ fragment-cache@0.2.1
│ │ │ └── map-cache@0.2.2
│ │ ├── kind-of@6.0.2
│ │ ├─┬ nanomatch@1.2.13
│ │ │ ├── arr-diff@4.0.0 deduped
│ │ │ ├── array-unique@0.3.2 deduped
│ │ │ ├─┬ define-property@2.0.2
│ │ │ │ ├── is-descriptor@1.0.2 deduped
│ │ │ │ └── isobject@3.0.1 deduped
│ │ │ ├─┬ extend-shallow@3.0.2
│ │ │ │ ├── assign-symbols@1.0.0 deduped
│ │ │ │ └─┬ is-extendable@1.0.1
│ │ │ │   └── is-plain-object@2.0.4 deduped
│ │ │ ├── fragment-cache@0.2.1 deduped
│ │ │ ├── is-windows@1.0.2
│ │ │ ├── kind-of@6.0.2
│ │ │ ├── object.pick@1.3.0 deduped
│ │ │ ├── regex-not@1.0.2 deduped
│ │ │ ├── snapdragon@0.8.2 deduped
│ │ │ └── to-regex@3.0.2 deduped
│ │ ├─┬ object.pick@1.3.0
│ │ │ └── isobject@3.0.1 deduped
│ │ ├─┬ regex-not@1.0.2
│ │ │ ├─┬ extend-shallow@3.0.2
│ │ │ │ ├── assign-symbols@1.0.0 deduped
│ │ │ │ └─┬ is-extendable@1.0.1
│ │ │ │   └── is-plain-object@2.0.4 deduped
│ │ │ └─┬ safe-regex@1.1.0
│ │ │   └── ret@0.1.15
│ │ ├─┬ snapdragon@0.8.2
│ │ │ ├─┬ base@0.11.2
│ │ │ │ ├─┬ cache-base@1.0.1
│ │ │ │ │ ├─┬ collection-visit@1.0.0
│ │ │ │ │ │ ├─┬ map-visit@1.0.0
│ │ │ │ │ │ │ └── object-visit@1.0.1 deduped
│ │ │ │ │ │ └─┬ object-visit@1.0.1
│ │ │ │ │ │   └── isobject@3.0.1 deduped
│ │ │ │ │ ├── component-emitter@1.2.1 deduped
│ │ │ │ │ ├── get-value@2.0.6
│ │ │ │ │ ├─┬ has-value@1.0.0
│ │ │ │ │ │ ├── get-value@2.0.6 deduped
│ │ │ │ │ │ ├─┬ has-values@1.0.0
│ │ │ │ │ │ │ ├── is-number@3.0.0 deduped
│ │ │ │ │ │ │ └─┬ kind-of@4.0.0
│ │ │ │ │ │ │   └── is-buffer@1.1.6 deduped
│ │ │ │ │ │ └── isobject@3.0.1 deduped
│ │ │ │ │ ├── isobject@3.0.1 deduped
│ │ │ │ │ ├─┬ set-value@2.0.0
│ │ │ │ │ │ ├── extend-shallow@2.0.1 deduped
│ │ │ │ │ │ ├── is-extendable@0.1.1 deduped
│ │ │ │ │ │ ├── is-plain-object@2.0.4 deduped
│ │ │ │ │ │ └── split-string@3.1.0 deduped
│ │ │ │ │ ├─┬ to-object-path@0.3.0
│ │ │ │ │ │ └── kind-of@3.2.2 deduped
│ │ │ │ │ ├─┬ union-value@1.0.0
│ │ │ │ │ │ ├── arr-union@3.1.0 deduped
│ │ │ │ │ │ ├── get-value@2.0.6 deduped
│ │ │ │ │ │ ├── is-extendable@0.1.1 deduped
│ │ │ │ │ │ └─┬ set-value@0.4.3
│ │ │ │ │ │   ├── extend-shallow@2.0.1 deduped
│ │ │ │ │ │   ├── is-extendable@0.1.1 deduped
│ │ │ │ │ │   ├── is-plain-object@2.0.4 deduped
│ │ │ │ │ │   └── to-object-path@0.3.0 deduped
│ │ │ │ │ └─┬ unset-value@1.0.0
│ │ │ │ │   ├─┬ has-value@0.3.1
│ │ │ │ │   │ ├── get-value@2.0.6 deduped
│ │ │ │ │   │ ├── has-values@0.1.4
│ │ │ │ │   │ └─┬ isobject@2.1.0
│ │ │ │ │   │   └── isarray@1.0.0 deduped
│ │ │ │ │   └── isobject@3.0.1 deduped
│ │ │ │ ├─┬ class-utils@0.3.6
│ │ │ │ │ ├── arr-union@3.1.0
│ │ │ │ │ ├── define-property@0.2.5 deduped
│ │ │ │ │ ├── isobject@3.0.1 deduped
│ │ │ │ │ └─┬ static-extend@0.1.2
│ │ │ │ │   ├── define-property@0.2.5 deduped
│ │ │ │ │   └─┬ object-copy@0.1.0
│ │ │ │ │     ├── copy-descriptor@0.1.1
│ │ │ │ │     ├── define-property@0.2.5 deduped
│ │ │ │ │     └── kind-of@3.2.2 deduped
│ │ │ │ ├── component-emitter@1.2.1
│ │ │ │ ├─┬ define-property@1.0.0
│ │ │ │ │ └── is-descriptor@1.0.2 deduped
│ │ │ │ ├── isobject@3.0.1 deduped
│ │ │ │ ├─┬ mixin-deep@1.3.1
│ │ │ │ │ ├── for-in@1.0.2
│ │ │ │ │ └─┬ is-extendable@1.0.1
│ │ │ │ │   └── is-plain-object@2.0.4 deduped
│ │ │ │ └── pascalcase@0.1.1
│ │ │ ├── debug@2.6.9 deduped
│ │ │ ├─┬ define-property@0.2.5
│ │ │ │ └─┬ is-descriptor@0.1.6
│ │ │ │   ├─┬ is-accessor-descriptor@0.1.6
│ │ │ │   │ └─┬ kind-of@3.2.2
│ │ │ │   │   └── is-buffer@1.1.6 deduped
│ │ │ │   ├─┬ is-data-descriptor@0.1.4
│ │ │ │   │ └─┬ kind-of@3.2.2
│ │ │ │   │   └── is-buffer@1.1.6 deduped
│ │ │ │   └── kind-of@5.1.0
│ │ │ ├── extend-shallow@2.0.1 deduped
│ │ │ ├── map-cache@0.2.2 deduped
│ │ │ ├── source-map@0.5.7
│ │ │ ├─┬ source-map-resolve@0.5.2
│ │ │ │ ├── atob@2.1.2
│ │ │ │ ├── decode-uri-component@0.2.0
│ │ │ │ ├── resolve-url@0.2.1
│ │ │ │ ├── source-map-url@0.4.0
│ │ │ │ └── urix@0.1.0
│ │ │ └── use@3.1.1
│ │ └─┬ to-regex@3.0.2
│ │   ├─┬ define-property@2.0.2
│ │   │ ├── is-descriptor@1.0.2 deduped
│ │   │ └── isobject@3.0.1 deduped
│ │   ├─┬ extend-shallow@3.0.2
│ │   │ ├── assign-symbols@1.0.0 deduped
│ │   │ └─┬ is-extendable@1.0.1
│ │   │   └── is-plain-object@2.0.4 deduped
│ │   ├── regex-not@1.0.2 deduped
│ │   └── safe-regex@1.1.0 deduped
│ ├─┬ mkdirp@0.5.1
│ │ └── minimist@0.0.8
│ ├── source-map-support@0.5.9 deduped
│ └─┬ webpack-log@1.2.0
│   ├── chalk@2.4.1 deduped
│   ├─┬ log-symbols@2.2.0
│   │ └── chalk@2.4.1 deduped
│   ├─┬ loglevelnext@1.0.5
│   │ ├─┬ es6-symbol@3.1.1
│   │ │ ├─┬ d@1.0.0
│   │ │ │ └── es5-ext@0.10.46 deduped
│   │ │ └─┬ es5-ext@0.10.46
│   │ │   ├─┬ es6-iterator@2.0.3
│   │ │   │ ├── d@1.0.0 deduped
│   │ │   │ ├── es5-ext@0.10.46 deduped
│   │ │   │ └── es6-symbol@3.1.1 deduped
│   │ │   ├── es6-symbol@3.1.1 deduped
│   │ │   └── next-tick@1.0.0
│   │ └─┬ object.assign@4.1.0
│   │   ├─┬ define-properties@1.1.3
│   │   │ └── object-keys@1.0.12 deduped
│   │   ├── function-bind@1.1.1
│   │   ├── has-symbols@1.0.0
│   │   └── object-keys@1.0.12
│   └── uuid@3.3.2
├── caching-transform@2.0.0 extraneous
├─┬ chai@4.2.0
│ ├── assertion-error@1.1.0
│ ├── check-error@1.0.2
│ ├─┬ deep-eql@3.0.1
│ │ └── type-detect@4.0.8 deduped
│ ├── get-func-name@2.0.0
│ ├── pathval@1.1.0
│ └── type-detect@4.0.8
├─┬ chai-as-promised@7.1.1
│ └── check-error@1.0.2 deduped
├── debug-log@1.0.1 extraneous
├─┬ dts-bundle@0.7.3
│ ├── @types/detect-indent@0.1.30
│ ├─┬ @types/glob@5.0.30
│ │ ├── @types/minimatch@3.0.3 deduped
│ │ └── @types/node@10.12.10 deduped
│ ├── @types/mkdirp@0.3.29
│ ├── @types/node@8.0.0
│ ├── commander@2.19.0
│ ├─┬ detect-indent@0.2.0
│ │ ├── get-stdin@0.1.0
│ │ └── minimist@0.1.0
│ ├─┬ glob@6.0.4
│ │ ├─┬ inflight@1.0.6
│ │ │ ├── once@1.4.0 deduped
│ │ │ └── wrappy@1.0.2
│ │ ├── inherits@2.0.3
│ │ ├── minimatch@3.0.4 deduped
│ │ ├─┬ once@1.4.0
│ │ │ └── wrappy@1.0.2 deduped
│ │ └── path-is-absolute@1.0.1
│ └── mkdirp@0.5.1 deduped
├─┬ dts-generator@2.1.0
│ ├── bluebird@3.3.3
│ ├─┬ glob@7.0.0
│ │ ├── inflight@1.0.6 deduped
│ │ ├── inherits@2.0.3 deduped
│ │ ├── minimatch@3.0.4 deduped
│ │ ├── once@1.4.0 deduped
│ │ └── path-is-absolute@1.0.1 deduped
│ └── mkdirp@0.5.1 deduped
├─┬ dts-generator-webpack-plugin@1.0.0
│ ├── bluebird@3.5.3
│ ├── dts-generator@2.1.0 deduped
│ └─┬ tmp@0.0.33
│   └── os-tmpdir@1.0.2
├── ineeda@0.12.0-alpha.0
├─┬ istanbul-instrumenter-loader@3.0.1
│ ├─┬ convert-source-map@1.6.0
│ │ └── safe-buffer@5.1.2
│ ├─┬ istanbul-lib-instrument@1.10.2
│ │ ├─┬ babel-generator@6.26.1
│ │ │ ├─┬ babel-messages@6.23.0
│ │ │ │ └── babel-runtime@6.26.0 deduped
│ │ │ ├─┬ babel-runtime@6.26.0
│ │ │ │ ├── core-js@2.5.7
│ │ │ │ └── regenerator-runtime@0.11.1
│ │ │ ├── babel-types@6.26.0 deduped
│ │ │ ├─┬ detect-indent@4.0.0
│ │ │ │ └─┬ repeating@2.0.1
│ │ │ │   └─┬ is-finite@1.0.2
│ │ │ │     └── number-is-nan@1.0.1
│ │ │ ├── jsesc@1.3.0
│ │ │ ├── lodash@4.17.11 deduped
│ │ │ ├── source-map@0.5.7
│ │ │ └── trim-right@1.0.1
│ │ ├─┬ babel-template@6.26.0
│ │ │ ├── babel-runtime@6.26.0 deduped
│ │ │ ├── babel-traverse@6.26.0 deduped
│ │ │ ├── babel-types@6.26.0 deduped
│ │ │ ├── babylon@6.18.0 deduped
│ │ │ └── lodash@4.17.11 deduped
│ │ ├─┬ babel-traverse@6.26.0
│ │ │ ├── babel-code-frame@6.26.0 deduped
│ │ │ ├── babel-messages@6.23.0 deduped
│ │ │ ├── babel-runtime@6.26.0 deduped
│ │ │ ├── babel-types@6.26.0 deduped
│ │ │ ├── babylon@6.18.0 deduped
│ │ │ ├── debug@2.6.9 deduped
│ │ │ ├── globals@9.18.0
│ │ │ ├─┬ invariant@2.2.4
│ │ │ │ └─┬ loose-envify@1.4.0
│ │ │ │   └── js-tokens@4.0.0
│ │ │ └── lodash@4.17.11 deduped
│ │ ├─┬ babel-types@6.26.0
│ │ │ ├── babel-runtime@6.26.0 deduped
│ │ │ ├── esutils@2.0.2 deduped
│ │ │ ├── lodash@4.17.11 deduped
│ │ │ └── to-fast-properties@1.0.3
│ │ ├── babylon@6.18.0
│ │ ├── istanbul-lib-coverage@1.2.1
│ │ └── semver@5.6.0 deduped
│ ├── loader-utils@1.1.0 deduped
│ └─┬ schema-utils@0.3.0
│   └─┬ ajv@5.5.2
│     ├── co@4.6.0
│     ├── fast-deep-equal@1.1.0
│     ├── fast-json-stable-stringify@2.0.0 deduped
│     └── json-schema-traverse@0.3.1
├── istanbul-lib-hook@2.0.1 extraneous
├── istanbul-lib-report@2.0.2 extraneous
├── istanbul-lib-source-maps@2.0.1 extraneous
├── istanbul-reports@2.0.1 extraneous
├── merge-source-map@1.1.0 extraneous
├─┬ mocha@5.2.0
│ ├── browser-stdout@1.3.1
│ ├── commander@2.15.1
│ ├─┬ debug@3.1.0
│ │ └── ms@2.0.0
│ ├── diff@3.5.0
│ ├── escape-string-regexp@1.0.5
│ ├─┬ glob@7.1.2
│ │ ├── fs.realpath@1.0.0
│ │ ├── inflight@1.0.6 deduped
│ │ ├── inherits@2.0.3 deduped
│ │ ├── minimatch@3.0.4 deduped
│ │ ├── once@1.4.0 deduped
│ │ └── path-is-absolute@1.0.1 deduped
│ ├── growl@1.10.5
│ ├── he@1.1.1
│ ├─┬ minimatch@3.0.4
│ │ └─┬ brace-expansion@1.1.11
│ │   ├── balanced-match@1.0.0
│ │   └── concat-map@0.0.1
│ ├── mkdirp@0.5.1 deduped
│ └─┬ supports-color@5.4.0
│   └── has-flag@3.0.0
├─┬ nyc@13.1.0
│ ├── archy@1.0.0
│ ├── arrify@1.0.1
│ ├─┬ caching-transform@2.0.0
│ │ ├── make-dir@1.3.0 deduped
│ │ ├─┬ md5-hex@2.0.0
│ │ │ └── md5-o-matic@0.1.1
│ │ ├─┬ package-hash@2.0.0
│ │ │ ├── graceful-fs@4.1.11
│ │ │ ├── lodash.flattendeep@4.4.0
│ │ │ ├── md5-hex@2.0.0 deduped
│ │ │ └─┬ release-zalgo@1.0.0
│ │ │   └── es6-error@4.1.1
│ │ └─┬ write-file-atomic@2.3.0
│ │   ├── graceful-fs@4.1.11 deduped
│ │   ├── imurmurhash@0.1.4
│ │   └── signal-exit@3.0.2 deduped
│ ├─┬ convert-source-map@1.6.0
│ │ └── safe-buffer@5.1.2
│ ├── debug-log@1.0.1
│ ├─┬ find-cache-dir@2.0.0
│ │ ├── commondir@1.0.1
│ │ ├── make-dir@1.3.0 deduped
│ │ └─┬ pkg-dir@3.0.0
│ │   └── find-up@3.0.0 deduped
│ ├─┬ find-up@3.0.0
│ │ └─┬ locate-path@3.0.0
│ │   ├─┬ p-locate@3.0.0
│ │   │ └─┬ p-limit@2.0.0
│ │   │   └── p-try@2.0.0
│ │   └── path-exists@3.0.0
│ ├─┬ foreground-child@1.5.6
│ │ ├─┬ cross-spawn@4.0.2
│ │ │ ├─┬ lru-cache@4.1.3
│ │ │ │ ├── pseudomap@1.0.2
│ │ │ │ └── yallist@2.1.2
│ │ │ └── which@1.3.1 deduped
│ │ └── signal-exit@3.0.2 deduped
│ ├─┬ glob@7.1.3
│ │ ├── fs.realpath@1.0.0
│ │ ├─┬ inflight@1.0.6
│ │ │ ├── once@1.4.0 deduped
│ │ │ └── wrappy@1.0.2
│ │ ├── inherits@2.0.3
│ │ ├─┬ minimatch@3.0.4
│ │ │ └─┬ brace-expansion@1.1.11
│ │ │   ├── balanced-match@1.0.0
│ │ │   └── concat-map@0.0.1
│ │ ├─┬ once@1.4.0
│ │ │ └── wrappy@1.0.2 deduped
│ │ └── path-is-absolute@1.0.1
│ ├── istanbul-lib-coverage@2.0.1
│ ├─┬ istanbul-lib-hook@2.0.1
│ │ └─┬ append-transform@1.0.0
│ │   └─┬ default-require-extensions@2.0.0
│ │     └── strip-bom@3.0.0
│ ├─┬ istanbul-lib-instrument@3.0.0
│ │ ├─┬ @babel/generator@7.1.6
│ │ │ ├── @babel/types@7.1.6 deduped
│ │ │ ├── jsesc@2.5.2
│ │ │ ├── lodash@4.17.11 deduped
│ │ │ ├── source-map@0.5.7
│ │ │ └── trim-right@1.0.1 deduped
│ │ ├── @babel/parser@7.1.6
│ │ ├─┬ @babel/template@7.1.2
│ │ │ ├─┬ @babel/code-frame@7.0.0
│ │ │ │ └─┬ @babel/highlight@7.0.0
│ │ │ │   ├── chalk@2.4.1 deduped
│ │ │ │   ├── esutils@2.0.2 deduped
│ │ │ │   └── js-tokens@4.0.0 deduped
│ │ │ ├── @babel/parser@7.1.6 deduped
│ │ │ └── @babel/types@7.1.6 deduped
│ │ ├─┬ @babel/traverse@7.1.6
│ │ │ ├── @babel/code-frame@7.0.0 deduped
│ │ │ ├── @babel/generator@7.1.6 deduped
│ │ │ ├─┬ @babel/helper-function-name@7.1.0
│ │ │ │ ├─┬ @babel/helper-get-function-arity@7.0.0
│ │ │ │ │ └── @babel/types@7.1.6 deduped
│ │ │ │ ├── @babel/template@7.1.2 deduped
│ │ │ │ └── @babel/types@7.1.6 deduped
│ │ │ ├─┬ @babel/helper-split-export-declaration@7.0.0
│ │ │ │ └── @babel/types@7.1.6 deduped
│ │ │ ├── @babel/parser@7.1.6 deduped
│ │ │ ├── @babel/types@7.1.6 deduped
│ │ │ ├─┬ debug@4.1.0
│ │ │ │ └── ms@2.1.1
│ │ │ ├── globals@11.9.0
│ │ │ └── lodash@4.17.11 deduped
│ │ ├─┬ @babel/types@7.1.6
│ │ │ ├── esutils@2.0.2 deduped
│ │ │ ├── lodash@4.17.11 deduped
│ │ │ └── to-fast-properties@2.0.0
│ │ ├── istanbul-lib-coverage@2.0.1 deduped
│ │ └── semver@5.5.0
│ ├─┬ istanbul-lib-report@2.0.2
│ │ ├── istanbul-lib-coverage@2.0.1 deduped
│ │ ├── make-dir@1.3.0 deduped
│ │ └─┬ supports-color@5.4.0
│ │   └── has-flag@3.0.0
│ ├─┬ istanbul-lib-source-maps@2.0.1
│ │ ├─┬ debug@3.1.0
│ │ │ └── ms@2.0.0
│ │ ├── istanbul-lib-coverage@2.0.1 deduped
│ │ ├── make-dir@1.3.0 deduped
│ │ ├── rimraf@2.6.2 deduped
│ │ └── source-map@0.6.1
│ ├─┬ istanbul-reports@2.0.1
│ │ └─┬ handlebars@4.0.11
│ │   ├── async@1.5.2
│ │   ├─┬ optimist@0.6.1
│ │   │ ├── minimist@0.0.10
│ │   │ └── wordwrap@0.0.3
│ │   ├─┬ source-map@0.4.4
│ │   │ └── amdefine@1.0.1
│ │   └─┬ uglify-js@2.8.29
│ │     ├── source-map@0.5.7
│ │     ├── uglify-to-browserify@1.0.2
│ │     └─┬ yargs@3.10.0
│ │       ├── camelcase@1.2.1
│ │       ├─┬ cliui@2.1.0
│ │       │ ├─┬ center-align@0.1.3
│ │       │ │ ├─┬ align-text@0.1.4
│ │       │ │ │ ├─┬ kind-of@3.2.2
│ │       │ │ │ │ └── is-buffer@1.1.6
│ │       │ │ │ ├── longest@1.0.1
│ │       │ │ │ └── repeat-string@1.6.1
│ │       │ │ └── lazy-cache@1.0.4
│ │       │ ├─┬ right-align@0.1.3
│ │       │ │ └── align-text@0.1.4 deduped
│ │       │ └── wordwrap@0.0.2
│ │       ├── decamelize@1.2.0 deduped
│ │       └── window-size@0.1.0
│ ├─┬ make-dir@1.3.0
│ │ └── pify@3.0.0
│ ├─┬ merge-source-map@1.1.0
│ │ └── source-map@0.6.1
│ ├── resolve-from@4.0.0
│ ├─┬ rimraf@2.6.2
│ │ └── glob@7.1.3 deduped
│ ├── signal-exit@3.0.2
│ ├─┬ spawn-wrap@1.4.2
│ │ ├── foreground-child@1.5.6 deduped
│ │ ├─┬ mkdirp@0.5.1
│ │ │ └── minimist@0.0.8
│ │ ├── os-homedir@1.0.2
│ │ ├── rimraf@2.6.2 deduped
│ │ ├── signal-exit@3.0.2 deduped
│ │ └─┬ which@1.3.1
│ │   └── isexe@2.0.0
│ ├─┬ test-exclude@5.0.0
│ │ ├── arrify@1.0.1 deduped
│ │ ├── minimatch@3.0.4 deduped
│ │ ├─┬ read-pkg-up@4.0.0
│ │ │ ├── find-up@3.0.0 deduped
│ │ │ └─┬ read-pkg@3.0.0
│ │ │   ├─┬ load-json-file@4.0.0
│ │ │   │ ├── graceful-fs@4.1.11 deduped
│ │ │   │ ├─┬ parse-json@4.0.0
│ │ │   │ │ ├─┬ error-ex@1.3.2
│ │ │   │ │ │ └── is-arrayish@0.2.1
│ │ │   │ │ └── json-parse-better-errors@1.0.2
│ │ │   │ ├── pify@3.0.0 deduped
│ │ │   │ └── strip-bom@3.0.0 deduped
│ │ │   ├─┬ normalize-package-data@2.4.0
│ │ │   │ ├── hosted-git-info@2.7.1
│ │ │   │ ├─┬ is-builtin-module@1.0.0
│ │ │   │ │ └── builtin-modules@1.1.1
│ │ │   │ ├── semver@5.5.0 deduped
│ │ │   │ └─┬ validate-npm-package-license@3.0.3
│ │ │   │   ├─┬ spdx-correct@3.0.0
│ │ │   │   │ ├── spdx-expression-parse@3.0.0 deduped
│ │ │   │   │ └── spdx-license-ids@3.0.0
│ │ │   │   └─┬ spdx-expression-parse@3.0.0
│ │ │   │     ├── spdx-exceptions@2.1.0
│ │ │   │     └── spdx-license-ids@3.0.0 deduped
│ │ │   └─┬ path-type@3.0.0
│ │ │     └── pify@3.0.0 deduped
│ │ └── require-main-filename@1.0.1
│ ├── uuid@3.3.2
│ ├─┬ yargs@11.1.0
│ │ ├─┬ cliui@4.1.0
│ │ │ ├── string-width@2.1.1 deduped
│ │ │ ├── strip-ansi@4.0.0 deduped
│ │ │ └─┬ wrap-ansi@2.1.0
│ │ │   ├─┬ string-width@1.0.2
│ │ │   │ ├── code-point-at@1.1.0
│ │ │   │ ├─┬ is-fullwidth-code-point@1.0.0
│ │ │   │ │ └── number-is-nan@1.0.1
│ │ │   │ └── strip-ansi@3.0.1 deduped
│ │ │   └─┬ strip-ansi@3.0.1
│ │ │     └── ansi-regex@2.1.1
│ │ ├── decamelize@1.2.0
│ │ ├─┬ find-up@2.1.0
│ │ │ └─┬ locate-path@2.0.0
│ │ │   ├─┬ p-locate@2.0.0
│ │ │   │ └─┬ p-limit@1.3.0
│ │ │   │   └── p-try@1.0.0
│ │ │   └── path-exists@3.0.0 deduped
│ │ ├── get-caller-file@1.0.3
│ │ ├─┬ os-locale@2.1.0
│ │ │ ├─┬ execa@0.7.0
│ │ │ │ ├─┬ cross-spawn@5.1.0
│ │ │ │ │ ├── lru-cache@4.1.3 deduped
│ │ │ │ │ ├─┬ shebang-command@1.2.0
│ │ │ │ │ │ └── shebang-regex@1.0.0
│ │ │ │ │ └── which@1.3.1 deduped
│ │ │ │ ├── get-stream@3.0.0
│ │ │ │ ├── is-stream@1.1.0
│ │ │ │ ├─┬ npm-run-path@2.0.2
│ │ │ │ │ └── path-key@2.0.1
│ │ │ │ ├── p-finally@1.0.0
│ │ │ │ ├── signal-exit@3.0.2 deduped
│ │ │ │ └── strip-eof@1.0.0
│ │ │ ├─┬ lcid@1.0.0
│ │ │ │ └── invert-kv@1.0.0
│ │ │ └─┬ mem@1.1.0
│ │ │   └── mimic-fn@1.2.0
│ │ ├── require-directory@2.1.1
│ │ ├── require-main-filename@1.0.1 deduped
│ │ ├── set-blocking@2.0.0
│ │ ├─┬ string-width@2.1.1
│ │ │ ├── is-fullwidth-code-point@2.0.0
│ │ │ └─┬ strip-ansi@4.0.0
│ │ │   └── ansi-regex@3.0.0
│ │ ├── which-module@2.0.0
│ │ ├── y18n@3.2.1
│ │ └── yargs-parser@9.0.2 deduped
│ └─┬ yargs-parser@9.0.2
│   └── camelcase@4.1.0
├── resolve-from@4.0.0 extraneous
├─┬ UNMET PEER DEPENDENCY sinon@7.1.1
│ ├─┬ @sinonjs/commons@1.3.0
│ │ └── type-detect@4.0.8 deduped
│ ├─┬ @sinonjs/formatio@3.0.0
│ │ └─┬ @sinonjs/samsam@2.1.0
│ │   └── array-from@2.1.1
│ ├── @sinonjs/samsam@2.1.2
│ ├── diff@3.5.0 deduped
│ ├── lodash.get@4.4.2
│ ├── lolex@3.0.0
│ ├─┬ nise@1.4.6
│ │ ├── @sinonjs/formatio@3.0.0 deduped
│ │ ├── just-extend@3.0.0
│ │ ├── lolex@2.7.5
│ │ ├─┬ path-to-regexp@1.7.0
│ │ │ └── isarray@0.0.1
│ │ └── text-encoding@0.6.4
│ ├─┬ supports-color@5.5.0
│ │ └── has-flag@3.0.0 deduped
│ └── type-detect@4.0.8 deduped
├── sinon-chai@3.2.0
├─┬ source-map-support@0.5.9
│ ├── buffer-from@1.1.1
│ └── source-map@0.6.1
├── spawn-wrap@1.4.2 extraneous
├── test-exclude@5.0.0 extraneous
├─┬ tslint@5.11.0
│ ├─┬ babel-code-frame@6.26.0
│ │ ├─┬ chalk@1.1.3
│ │ │ ├── ansi-styles@2.2.1
│ │ │ ├── escape-string-regexp@1.0.5 deduped
│ │ │ ├─┬ has-ansi@2.0.0
│ │ │ │ └── ansi-regex@2.1.1
│ │ │ ├─┬ strip-ansi@3.0.1
│ │ │ │ └── ansi-regex@2.1.1 deduped
│ │ │ └── supports-color@2.0.0
│ │ ├── esutils@2.0.2
│ │ └── js-tokens@3.0.2
│ ├── builtin-modules@1.1.1
│ ├── chalk@2.4.1 deduped
│ ├── commander@2.19.0 deduped
│ ├── diff@3.5.0 deduped
│ ├─┬ glob@7.1.3
│ │ ├── fs.realpath@1.0.0 deduped
│ │ ├── inflight@1.0.6 deduped
│ │ ├── inherits@2.0.3 deduped
│ │ ├── minimatch@3.0.4 deduped
│ │ ├── once@1.4.0 deduped
│ │ └── path-is-absolute@1.0.1 deduped
│ ├─┬ js-yaml@3.12.0
│ │ ├─┬ argparse@1.0.10
│ │ │ └── sprintf-js@1.0.3
│ │ └── esprima@4.0.1
│ ├── minimatch@3.0.4 deduped
│ ├─┬ resolve@1.8.1
│ │ └── path-parse@1.0.6
│ ├── semver@5.6.0
│ ├── tslib@1.9.3
│ └─┬ tsutils@2.29.0
│   └── tslib@1.9.3 deduped
├─┬ tslint-clean-code@0.2.9
│ ├── memoize-decorator@1.0.2
│ └─┬ tsutils@2.7.1
│   └── tslib@1.9.3 deduped
├─┬ tslint-consistent-codestyle@1.14.1
│ ├─┬ @fimbul/bifrost@0.15.0
│ │ ├─┬ @fimbul/ymir@0.15.0
│ │ │ ├── inversify@5.0.1
│ │ │ ├── reflect-metadata@0.1.12
│ │ │ ├── tslib@1.9.3 deduped
│ │ │ └── tsutils@3.5.2 extraneous
│ │ ├── get-caller-file@2.0.1
│ │ ├── tslib@1.9.3 deduped
│ │ └─┬ UNMET PEER DEPENDENCY tsutils@3.5.2
│ │   └── tslib@1.9.3 deduped
│ ├── tslib@1.9.3 deduped
│ └── tsutils@2.29.0 deduped
├─┬ tslint-loader@3.6.0
│ ├── loader-utils@1.1.0 deduped
│ ├── mkdirp@0.5.1 deduped
│ ├── object-assign@4.1.1
│ ├─┬ rimraf@2.6.2
│ │ └── glob@7.1.3 deduped
│ └── semver@5.6.0 deduped
├─┬ tslint-microsoft-contrib@6.0.0
│ └─┬ tsutils@2.28.0
│   └── tslib@1.9.3 deduped
├─┬ tslint-sonarts@1.8.0
│ └── immutable@3.8.2
├─┬ typedoc@0.13.0
│ ├─┬ @types/fs-extra@5.0.4
│ │ └── @types/node@10.12.10 deduped
│ ├── @types/handlebars@4.0.39
│ ├── @types/highlight.js@9.12.3
│ ├── @types/lodash@4.14.118
│ ├── @types/marked@0.4.2
│ ├── @types/minimatch@3.0.3
│ ├─┬ @types/shelljs@0.8.0
│ │ ├─┬ @types/glob@7.1.1
│ │ │ ├── @types/events@1.2.0
│ │ │ ├── @types/minimatch@3.0.3 deduped
│ │ │ └── @types/node@10.12.10 deduped
│ │ └── @types/node@10.12.10 deduped
│ ├─┬ fs-extra@7.0.1
│ │ ├── graceful-fs@4.1.15 deduped
│ │ ├─┬ jsonfile@4.0.0
│ │ │ └── graceful-fs@4.1.15 deduped
│ │ └── universalify@0.1.2
│ ├─┬ handlebars@4.0.12
│ │ ├─┬ async@2.6.1
│ │ │ └── lodash@4.17.11 deduped
│ │ ├─┬ optimist@0.6.1
│ │ │ ├── minimist@0.0.10
│ │ │ └── wordwrap@0.0.3
│ │ ├── source-map@0.6.1 deduped
│ │ └─┬ uglify-js@3.4.9
│ │   ├── commander@2.17.1
│ │   └── source-map@0.6.1 deduped
│ ├── highlight.js@9.13.1
│ ├── lodash@4.17.11 deduped
│ ├── marked@0.4.0
│ ├── minimatch@3.0.4 deduped
│ ├── progress@2.0.1
│ ├─┬ shelljs@0.8.3
│ │ ├── glob@7.1.3 deduped
│ │ ├── interpret@1.1.0 deduped
│ │ └─┬ rechoir@0.6.2
│ │   └── resolve@1.8.1 deduped
│ ├── typedoc-default-themes@0.5.0
│ └── typescript@3.1.6 deduped
├── typescript@3.1.6
├─┬ UNMET PEER DEPENDENCY webpack@4.26.0
│ ├─┬ @webassemblyjs/ast@1.7.11
│ │ ├── @webassemblyjs/helper-module-context@1.7.11 deduped
│ │ ├── @webassemblyjs/helper-wasm-bytecode@1.7.11
│ │ └─┬ @webassemblyjs/wast-parser@1.7.11
│ │   ├── @webassemblyjs/ast@1.7.11 deduped
│ │   ├── @webassemblyjs/floating-point-hex-parser@1.7.11
│ │   ├── @webassemblyjs/helper-api-error@1.7.11 deduped
│ │   ├─┬ @webassemblyjs/helper-code-frame@1.7.11
│ │   │ └── @webassemblyjs/wast-printer@1.7.11 deduped
│ │   ├── @webassemblyjs/helper-fsm@1.7.11
│ │   └── @xtuc/long@4.2.1
│ ├── @webassemblyjs/helper-module-context@1.7.11
│ ├─┬ @webassemblyjs/wasm-edit@1.7.11
│ │ ├── @webassemblyjs/ast@1.7.11 deduped
│ │ ├── @webassemblyjs/helper-buffer@1.7.11
│ │ ├── @webassemblyjs/helper-wasm-bytecode@1.7.11 deduped
│ │ ├─┬ @webassemblyjs/helper-wasm-section@1.7.11
│ │ │ ├── @webassemblyjs/ast@1.7.11 deduped
│ │ │ ├── @webassemblyjs/helper-buffer@1.7.11 deduped
│ │ │ ├── @webassemblyjs/helper-wasm-bytecode@1.7.11 deduped
│ │ │ └── @webassemblyjs/wasm-gen@1.7.11 deduped
│ │ ├─┬ @webassemblyjs/wasm-gen@1.7.11
│ │ │ ├── @webassemblyjs/ast@1.7.11 deduped
│ │ │ ├── @webassemblyjs/helper-wasm-bytecode@1.7.11 deduped
│ │ │ ├── @webassemblyjs/ieee754@1.7.11 deduped
│ │ │ ├── @webassemblyjs/leb128@1.7.11 deduped
│ │ │ └── @webassemblyjs/utf8@1.7.11 deduped
│ │ ├─┬ @webassemblyjs/wasm-opt@1.7.11
│ │ │ ├── @webassemblyjs/ast@1.7.11 deduped
│ │ │ ├── @webassemblyjs/helper-buffer@1.7.11 deduped
│ │ │ ├── @webassemblyjs/wasm-gen@1.7.11 deduped
│ │ │ └── @webassemblyjs/wasm-parser@1.7.11 deduped
│ │ ├── @webassemblyjs/wasm-parser@1.7.11 deduped
│ │ └─┬ @webassemblyjs/wast-printer@1.7.11
│ │   ├── @webassemblyjs/ast@1.7.11 deduped
│ │   ├── @webassemblyjs/wast-parser@1.7.11 deduped
│ │   └── @xtuc/long@4.2.1 deduped
│ ├─┬ @webassemblyjs/wasm-parser@1.7.11
│ │ ├── @webassemblyjs/ast@1.7.11 deduped
│ │ ├── @webassemblyjs/helper-api-error@1.7.11
│ │ ├── @webassemblyjs/helper-wasm-bytecode@1.7.11 deduped
│ │ ├─┬ @webassemblyjs/ieee754@1.7.11
│ │ │ └── @xtuc/ieee754@1.2.0
│ │ ├─┬ @webassemblyjs/leb128@1.7.11
│ │ │ └── @xtuc/long@4.2.1 deduped
│ │ └── @webassemblyjs/utf8@1.7.11
│ ├── acorn@5.7.3
│ ├─┬ acorn-dynamic-import@3.0.0
│ │ └── acorn@5.7.3 deduped
│ ├─┬ ajv@6.5.5
│ │ ├── fast-deep-equal@2.0.1
│ │ ├── fast-json-stable-stringify@2.0.0
│ │ ├── json-schema-traverse@0.4.1
│ │ └─┬ uri-js@4.2.2
│ │   └── punycode@2.1.1
│ ├── ajv-keywords@3.2.0
│ ├─┬ chrome-trace-event@1.0.0
│ │ └── tslib@1.9.3 deduped
│ ├── enhanced-resolve@4.1.0 deduped
│ ├─┬ eslint-scope@4.0.0
│ │ ├─┬ esrecurse@4.2.1
│ │ │ └── estraverse@4.2.0 deduped
│ │ └── estraverse@4.2.0
│ ├── json-parse-better-errors@1.0.2
│ ├── loader-runner@2.3.1
│ ├── loader-utils@1.1.0 deduped
│ ├─┬ memory-fs@0.4.1
│ │ ├─┬ errno@0.1.7
│ │ │ └── prr@1.0.1
│ │ └─┬ readable-stream@2.3.6
│ │   ├── core-util-is@1.0.2
│ │   ├── inherits@2.0.3 deduped
│ │   ├── isarray@1.0.0
│ │   ├── process-nextick-args@2.0.0
│ │   ├── safe-buffer@5.1.2 deduped
│ │   ├── string_decoder@1.1.1 deduped
│ │   └── util-deprecate@1.0.2
│ ├── micromatch@3.1.10 deduped
│ ├── mkdirp@0.5.1 deduped
│ ├── neo-async@2.6.0
│ ├─┬ node-libs-browser@2.1.0
│ │ ├─┬ assert@1.4.1
│ │ │ └─┬ util@0.10.3
│ │ │   └── inherits@2.0.1
│ │ ├─┬ browserify-zlib@0.2.0
│ │ │ └── pako@1.0.6
│ │ ├─┬ buffer@4.9.1
│ │ │ ├── base64-js@1.3.0
│ │ │ ├── ieee754@1.1.12
│ │ │ └── isarray@1.0.0 deduped
│ │ ├─┬ console-browserify@1.1.0
│ │ │ └── date-now@0.1.4
│ │ ├── constants-browserify@1.0.0
│ │ ├─┬ crypto-browserify@3.12.0
│ │ │ ├─┬ browserify-cipher@1.0.1
│ │ │ │ ├─┬ browserify-aes@1.2.0
│ │ │ │ │ ├── buffer-xor@1.0.3
│ │ │ │ │ ├── cipher-base@1.0.4 deduped
│ │ │ │ │ ├── create-hash@1.2.0 deduped
│ │ │ │ │ ├── evp_bytestokey@1.0.3 deduped
│ │ │ │ │ ├── inherits@2.0.3 deduped
│ │ │ │ │ └── safe-buffer@5.1.2 deduped
│ │ │ │ ├─┬ browserify-des@1.0.2
│ │ │ │ │ ├── cipher-base@1.0.4 deduped
│ │ │ │ │ ├─┬ des.js@1.0.0
│ │ │ │ │ │ ├── inherits@2.0.3 deduped
│ │ │ │ │ │ └── minimalistic-assert@1.0.1 deduped
│ │ │ │ │ ├── inherits@2.0.3 deduped
│ │ │ │ │ └── safe-buffer@5.1.2 deduped
│ │ │ │ └─┬ evp_bytestokey@1.0.3
│ │ │ │   ├── md5.js@1.3.5 deduped
│ │ │ │   └── safe-buffer@5.1.2 deduped
│ │ │ ├─┬ browserify-sign@4.0.4
│ │ │ │ ├── bn.js@4.11.8
│ │ │ │ ├─┬ browserify-rsa@4.0.1
│ │ │ │ │ ├── bn.js@4.11.8 deduped
│ │ │ │ │ └── randombytes@2.0.6 deduped
│ │ │ │ ├── create-hash@1.2.0 deduped
│ │ │ │ ├── create-hmac@1.1.7 deduped
│ │ │ │ ├─┬ elliptic@6.4.1
│ │ │ │ │ ├── bn.js@4.11.8 deduped
│ │ │ │ │ ├── brorand@1.1.0
│ │ │ │ │ ├─┬ hash.js@1.1.5
│ │ │ │ │ │ ├── inherits@2.0.3 deduped
│ │ │ │ │ │ └── minimalistic-assert@1.0.1 deduped
│ │ │ │ │ ├─┬ hmac-drbg@1.0.1
│ │ │ │ │ │ ├── hash.js@1.1.5 deduped
│ │ │ │ │ │ ├── minimalistic-assert@1.0.1 deduped
│ │ │ │ │ │ └── minimalistic-crypto-utils@1.0.1 deduped
│ │ │ │ │ ├── inherits@2.0.3 deduped
│ │ │ │ │ ├── minimalistic-assert@1.0.1
│ │ │ │ │ └── minimalistic-crypto-utils@1.0.1
│ │ │ │ ├── inherits@2.0.3 deduped
│ │ │ │ └─┬ parse-asn1@5.1.1
│ │ │ │   ├─┬ asn1.js@4.10.1
│ │ │ │   │ ├── bn.js@4.11.8 deduped
│ │ │ │   │ ├── inherits@2.0.3 deduped
│ │ │ │   │ └── minimalistic-assert@1.0.1 deduped
│ │ │ │   ├── browserify-aes@1.2.0 deduped
│ │ │ │   ├── create-hash@1.2.0 deduped
│ │ │ │   ├── evp_bytestokey@1.0.3 deduped
│ │ │ │   └── pbkdf2@3.0.17 deduped
│ │ │ ├─┬ create-ecdh@4.0.3
│ │ │ │ ├── bn.js@4.11.8 deduped
│ │ │ │ └── elliptic@6.4.1 deduped
│ │ │ ├─┬ create-hash@1.2.0
│ │ │ │ ├─┬ cipher-base@1.0.4
│ │ │ │ │ ├── inherits@2.0.3 deduped
│ │ │ │ │ └── safe-buffer@5.1.2 deduped
│ │ │ │ ├── inherits@2.0.3 deduped
│ │ │ │ ├─┬ md5.js@1.3.5
│ │ │ │ │ ├─┬ hash-base@3.0.4
│ │ │ │ │ │ ├── inherits@2.0.3 deduped
│ │ │ │ │ │ └── safe-buffer@5.1.2 deduped
│ │ │ │ │ ├── inherits@2.0.3 deduped
│ │ │ │ │ └── safe-buffer@5.1.2 deduped
│ │ │ │ ├─┬ ripemd160@2.0.2
│ │ │ │ │ ├── hash-base@3.0.4 deduped
│ │ │ │ │ └── inherits@2.0.3 deduped
│ │ │ │ └─┬ sha.js@2.4.11
│ │ │ │   ├── inherits@2.0.3 deduped
│ │ │ │   └── safe-buffer@5.1.2 deduped
│ │ │ ├─┬ create-hmac@1.1.7
│ │ │ │ ├── cipher-base@1.0.4 deduped
│ │ │ │ ├── create-hash@1.2.0 deduped
│ │ │ │ ├── inherits@2.0.3 deduped
│ │ │ │ ├── ripemd160@2.0.2 deduped
│ │ │ │ ├── safe-buffer@5.1.2 deduped
│ │ │ │ └── sha.js@2.4.11 deduped
│ │ │ ├─┬ diffie-hellman@5.0.3
│ │ │ │ ├── bn.js@4.11.8 deduped
│ │ │ │ ├─┬ miller-rabin@4.0.1
│ │ │ │ │ ├── bn.js@4.11.8 deduped
│ │ │ │ │ └── brorand@1.1.0 deduped
│ │ │ │ └── randombytes@2.0.6 deduped
│ │ │ ├── inherits@2.0.3 deduped
│ │ │ ├─┬ pbkdf2@3.0.17
│ │ │ │ ├── create-hash@1.2.0 deduped
│ │ │ │ ├── create-hmac@1.1.7 deduped
│ │ │ │ ├── ripemd160@2.0.2 deduped
│ │ │ │ ├── safe-buffer@5.1.2 deduped
│ │ │ │ └── sha.js@2.4.11 deduped
│ │ │ ├─┬ public-encrypt@4.0.3
│ │ │ │ ├── bn.js@4.11.8 deduped
│ │ │ │ ├── browserify-rsa@4.0.1 deduped
│ │ │ │ ├── create-hash@1.2.0 deduped
│ │ │ │ ├── parse-asn1@5.1.1 deduped
│ │ │ │ ├── randombytes@2.0.6 deduped
│ │ │ │ └── safe-buffer@5.1.2 deduped
│ │ │ ├─┬ randombytes@2.0.6
│ │ │ │ └── safe-buffer@5.1.2 deduped
│ │ │ └─┬ randomfill@1.0.4
│ │ │   ├── randombytes@2.0.6 deduped
│ │ │   └── safe-buffer@5.1.2 deduped
│ │ ├── domain-browser@1.2.0
│ │ ├── events@1.1.1
│ │ ├── https-browserify@1.0.0
│ │ ├── os-browserify@0.3.0
│ │ ├── path-browserify@0.0.0
│ │ ├── process@0.11.10
│ │ ├── punycode@1.4.1
│ │ ├── querystring-es3@0.2.1
│ │ ├── readable-stream@2.3.6 deduped
│ │ ├─┬ stream-browserify@2.0.1
│ │ │ ├── inherits@2.0.3 deduped
│ │ │ └── readable-stream@2.3.6 deduped
│ │ ├─┬ stream-http@2.8.3
│ │ │ ├── builtin-status-codes@3.0.0
│ │ │ ├── inherits@2.0.3 deduped
│ │ │ ├── readable-stream@2.3.6 deduped
│ │ │ ├── to-arraybuffer@1.0.1
│ │ │ └── xtend@4.0.1
│ │ ├─┬ string_decoder@1.1.1
│ │ │ └── safe-buffer@5.1.2 deduped
│ │ ├─┬ timers-browserify@2.0.10
│ │ │ └── setimmediate@1.0.5
│ │ ├── tty-browserify@0.0.0
│ │ ├─┬ url@0.11.0
│ │ │ ├── punycode@1.3.2
│ │ │ └── querystring@0.2.0
│ │ ├─┬ util@0.10.4
│ │ │ └── inherits@2.0.3 deduped
│ │ └─┬ vm-browserify@0.0.4
│ │   └── indexof@0.0.1
│ ├─┬ schema-utils@0.4.7
│ │ ├── ajv@6.5.5 deduped
│ │ └── ajv-keywords@3.2.0 deduped
│ ├── tapable@1.1.0
│ ├─┬ terser-webpack-plugin@1.1.0
│ │ ├─┬ cacache@11.3.1
│ │ │ ├── bluebird@3.5.3 deduped
│ │ │ ├── chownr@1.1.1
│ │ │ ├── figgy-pudding@3.5.1
│ │ │ ├── glob@7.1.3 deduped
│ │ │ ├── graceful-fs@4.1.15 deduped
│ │ │ ├─┬ lru-cache@4.1.4
│ │ │ │ ├── pseudomap@1.0.2
│ │ │ │ └── yallist@3.0.3
│ │ │ ├─┬ mississippi@3.0.0
│ │ │ │ ├─┬ concat-stream@1.6.2
│ │ │ │ │ ├── buffer-from@1.1.1 deduped
│ │ │ │ │ ├── inherits@2.0.3 deduped
│ │ │ │ │ ├── readable-stream@2.3.6 deduped
│ │ │ │ │ └── typedarray@0.0.6
│ │ │ │ ├─┬ duplexify@3.6.1
│ │ │ │ │ ├── end-of-stream@1.4.1 deduped
│ │ │ │ │ ├── inherits@2.0.3 deduped
│ │ │ │ │ ├── readable-stream@2.3.6 deduped
│ │ │ │ │ └── stream-shift@1.0.0
│ │ │ │ ├─┬ end-of-stream@1.4.1
│ │ │ │ │ └── once@1.4.0 deduped
│ │ │ │ ├─┬ flush-write-stream@1.0.3
│ │ │ │ │ ├── inherits@2.0.3 deduped
│ │ │ │ │ └── readable-stream@2.3.6 deduped
│ │ │ │ ├─┬ from2@2.3.0
│ │ │ │ │ ├── inherits@2.0.3 deduped
│ │ │ │ │ └── readable-stream@2.3.6 deduped
│ │ │ │ ├─┬ parallel-transform@1.1.0
│ │ │ │ │ ├── cyclist@0.2.2
│ │ │ │ │ ├── inherits@2.0.3 deduped
│ │ │ │ │ └── readable-stream@2.3.6 deduped
│ │ │ │ ├─┬ pump@3.0.0
│ │ │ │ │ ├── end-of-stream@1.4.1 deduped
│ │ │ │ │ └── once@1.4.0 deduped
│ │ │ │ ├─┬ pumpify@1.5.1
│ │ │ │ │ ├── duplexify@3.6.1 deduped
│ │ │ │ │ ├── inherits@2.0.3 deduped
│ │ │ │ │ └─┬ pump@2.0.1
│ │ │ │ │   ├── end-of-stream@1.4.1 deduped
│ │ │ │ │   └── once@1.4.0 deduped
│ │ │ │ ├─┬ stream-each@1.2.3
│ │ │ │ │ ├── end-of-stream@1.4.1 deduped
│ │ │ │ │ └── stream-shift@1.0.0 deduped
│ │ │ │ └─┬ through2@2.0.5
│ │ │ │   ├── readable-stream@2.3.6 deduped
│ │ │ │   └── xtend@4.0.1 deduped
│ │ │ ├── mkdirp@0.5.1 deduped
│ │ │ ├─┬ move-concurrently@1.0.1
│ │ │ │ ├── aproba@1.2.0
│ │ │ │ ├─┬ copy-concurrently@1.0.5
│ │ │ │ │ ├── aproba@1.2.0 deduped
│ │ │ │ │ ├── fs-write-stream-atomic@1.0.10 deduped
│ │ │ │ │ ├── iferr@0.1.5
│ │ │ │ │ ├── mkdirp@0.5.1 deduped
│ │ │ │ │ ├── rimraf@2.6.2 deduped
│ │ │ │ │ └── run-queue@1.0.3 deduped
│ │ │ │ ├─┬ fs-write-stream-atomic@1.0.10
│ │ │ │ │ ├── graceful-fs@4.1.15 deduped
│ │ │ │ │ ├── iferr@0.1.5 deduped
│ │ │ │ │ ├── imurmurhash@0.1.4
│ │ │ │ │ └── readable-stream@2.3.6 deduped
│ │ │ │ ├── mkdirp@0.5.1 deduped
│ │ │ │ ├── rimraf@2.6.2 deduped
│ │ │ │ └─┬ run-queue@1.0.3
│ │ │ │   └── aproba@1.2.0 deduped
│ │ │ ├── promise-inflight@1.0.1
│ │ │ ├── rimraf@2.6.2 deduped
│ │ │ ├─┬ ssri@6.0.1
│ │ │ │ └── figgy-pudding@3.5.1 deduped
│ │ │ ├─┬ unique-filename@1.1.1
│ │ │ │ └─┬ unique-slug@2.0.1
│ │ │ │   └── imurmurhash@0.1.4 deduped
│ │ │ └── y18n@4.0.0 deduped
│ │ ├─┬ find-cache-dir@2.0.0
│ │ │ ├── commondir@1.0.1
│ │ │ ├─┬ make-dir@1.3.0
│ │ │ │ └── pify@3.0.0 deduped
│ │ │ └── pkg-dir@3.0.0 deduped
│ │ ├─┬ schema-utils@1.0.0
│ │ │ ├── ajv@6.5.5 deduped
│ │ │ ├── ajv-errors@1.0.0
│ │ │ └── ajv-keywords@3.2.0 deduped
│ │ ├── serialize-javascript@1.5.0
│ │ ├── source-map@0.6.1 deduped
│ │ ├─┬ terser@3.10.12
│ │ │ ├── commander@2.17.1
│ │ │ ├── source-map@0.6.1 deduped
│ │ │ └── source-map-support@0.5.9 deduped
│ │ ├── webpack-sources@1.3.0 deduped
│ │ └─┬ worker-farm@1.6.0
│ │   └── errno@0.1.7 deduped
│ ├─┬ watchpack@1.6.0
│ │ ├─┬ chokidar@2.0.4
│ │ │ ├─┬ anymatch@2.0.0
│ │ │ │ ├── micromatch@3.1.10 deduped
│ │ │ │ └── normalize-path@2.1.1 deduped
│ │ │ ├── async-each@1.0.1
│ │ │ ├── braces@2.3.2 deduped
│ │ │ ├── UNMET OPTIONAL DEPENDENCY fsevents@^1.2.2
│ │ │ ├─┬ glob-parent@3.1.0
│ │ │ │ ├─┬ is-glob@3.1.0
│ │ │ │ │ └── is-extglob@2.1.1 deduped
│ │ │ │ └── path-dirname@1.0.2
│ │ │ ├── inherits@2.0.3 deduped
│ │ │ ├─┬ is-binary-path@1.0.1
│ │ │ │ └── binary-extensions@1.12.0
│ │ │ ├─┬ is-glob@4.0.0
│ │ │ │ └── is-extglob@2.1.1
│ │ │ ├── lodash.debounce@4.0.8
│ │ │ ├─┬ normalize-path@2.1.1
│ │ │ │ └── remove-trailing-separator@1.1.0
│ │ │ ├── path-is-absolute@1.0.1 deduped
│ │ │ ├─┬ readdirp@2.2.1
│ │ │ │ ├── graceful-fs@4.1.15 deduped
│ │ │ │ ├── micromatch@3.1.10 deduped
│ │ │ │ └── readable-stream@2.3.6 deduped
│ │ │ └── upath@1.1.0
│ │ ├── graceful-fs@4.1.15 deduped
│ │ └── neo-async@2.6.0 deduped
│ └─┬ webpack-sources@1.3.0
│   ├── source-list-map@2.0.1
│   └── source-map@0.6.1 deduped
├─┬ webpack-bundle-analyzer@3.0.3
│ ├── acorn@5.7.3 deduped
│ ├─┬ bfj@6.1.1
│ │ ├── bluebird@3.5.3 deduped
│ │ ├── check-types@7.4.0
│ │ ├── hoopy@0.1.4
│ │ └── tryer@1.0.1
│ ├── chalk@2.4.1 deduped
│ ├── commander@2.19.0 deduped
│ ├── ejs@2.6.1
│ ├─┬ express@4.16.4
│ │ ├─┬ accepts@1.3.5
│ │ │ ├─┬ mime-types@2.1.21
│ │ │ │ └── mime-db@1.37.0
│ │ │ └── negotiator@0.6.1
│ │ ├── array-flatten@1.1.1
│ │ ├─┬ body-parser@1.18.3
│ │ │ ├── bytes@3.0.0
│ │ │ ├── content-type@1.0.4 deduped
│ │ │ ├── debug@2.6.9 deduped
│ │ │ ├── depd@1.1.2 deduped
│ │ │ ├─┬ http-errors@1.6.3
│ │ │ │ ├── depd@1.1.2 deduped
│ │ │ │ ├── inherits@2.0.3 deduped
│ │ │ │ ├── setprototypeof@1.1.0 deduped
│ │ │ │ └── statuses@1.5.0
│ │ │ ├─┬ iconv-lite@0.4.23
│ │ │ │ └── safer-buffer@2.1.2
│ │ │ ├── on-finished@2.3.0 deduped
│ │ │ ├── qs@6.5.2 deduped
│ │ │ ├─┬ raw-body@2.3.3
│ │ │ │ ├── bytes@3.0.0 deduped
│ │ │ │ ├── http-errors@1.6.3 deduped
│ │ │ │ ├── iconv-lite@0.4.23 deduped
│ │ │ │ └── unpipe@1.0.0 deduped
│ │ │ └── type-is@1.6.16 deduped
│ │ ├── content-disposition@0.5.2
│ │ ├── content-type@1.0.4
│ │ ├── cookie@0.3.1
│ │ ├── cookie-signature@1.0.6
│ │ ├─┬ debug@2.6.9
│ │ │ └── ms@2.0.0 deduped
│ │ ├── depd@1.1.2
│ │ ├── encodeurl@1.0.2
│ │ ├── escape-html@1.0.3
│ │ ├── etag@1.8.1
│ │ ├─┬ finalhandler@1.1.1
│ │ │ ├── debug@2.6.9 deduped
│ │ │ ├── encodeurl@1.0.2 deduped
│ │ │ ├── escape-html@1.0.3 deduped
│ │ │ ├── on-finished@2.3.0 deduped
│ │ │ ├── parseurl@1.3.2 deduped
│ │ │ ├── statuses@1.4.0 deduped
│ │ │ └── unpipe@1.0.0
│ │ ├── fresh@0.5.2
│ │ ├── merge-descriptors@1.0.1
│ │ ├── methods@1.1.2
│ │ ├─┬ on-finished@2.3.0
│ │ │ └── ee-first@1.1.1
│ │ ├── parseurl@1.3.2
│ │ ├── path-to-regexp@0.1.7
│ │ ├─┬ proxy-addr@2.0.4
│ │ │ ├── forwarded@0.1.2
│ │ │ └── ipaddr.js@1.8.0
│ │ ├── qs@6.5.2
│ │ ├── range-parser@1.2.0
│ │ ├── safe-buffer@5.1.2 deduped
│ │ ├─┬ send@0.16.2
│ │ │ ├── debug@2.6.9 deduped
│ │ │ ├── depd@1.1.2 deduped
│ │ │ ├── destroy@1.0.4
│ │ │ ├── encodeurl@1.0.2 deduped
│ │ │ ├── escape-html@1.0.3 deduped
│ │ │ ├── etag@1.8.1 deduped
│ │ │ ├── fresh@0.5.2 deduped
│ │ │ ├── http-errors@1.6.3 deduped
│ │ │ ├── mime@1.4.1
│ │ │ ├── ms@2.0.0 deduped
│ │ │ ├── on-finished@2.3.0 deduped
│ │ │ ├── range-parser@1.2.0 deduped
│ │ │ └── statuses@1.4.0 deduped
│ │ ├─┬ serve-static@1.13.2
│ │ │ ├── encodeurl@1.0.2 deduped
│ │ │ ├── escape-html@1.0.3 deduped
│ │ │ ├── parseurl@1.3.2 deduped
│ │ │ └── send@0.16.2 deduped
│ │ ├── setprototypeof@1.1.0
│ │ ├── statuses@1.4.0
│ │ ├─┬ type-is@1.6.16
│ │ │ ├── media-typer@0.3.0
│ │ │ └── mime-types@2.1.21 deduped
│ │ ├── utils-merge@1.0.1
│ │ └── vary@1.1.2
│ ├── filesize@3.6.1
│ ├─┬ gzip-size@5.0.0
│ │ ├── duplexer@0.1.1
│ │ └── pify@3.0.0
│ ├── lodash@4.17.11 deduped
│ ├── mkdirp@0.5.1 deduped
│ ├── opener@1.5.1
│ └─┬ ws@6.1.2
│   └── async-limiter@1.0.0
├─┬ webpack-cli@3.1.2
│ ├── chalk@2.4.1 deduped
│ ├─┬ cross-spawn@6.0.5
│ │ ├── nice-try@1.0.5
│ │ ├── path-key@2.0.1
│ │ ├── semver@5.6.0 deduped
│ │ ├─┬ shebang-command@1.2.0
│ │ │ └── shebang-regex@1.0.0
│ │ └─┬ which@1.3.1
│ │   └── isexe@2.0.0
│ ├── enhanced-resolve@4.1.0 deduped
│ ├── global-modules-path@2.3.0
│ ├─┬ import-local@2.0.0
│ │ ├─┬ pkg-dir@3.0.0
│ │ │ └── find-up@3.0.0 deduped
│ │ └─┬ resolve-cwd@2.0.0
│ │   └── resolve-from@3.0.0
│ ├── interpret@1.1.0
│ ├── loader-utils@1.1.0 deduped
│ ├── supports-color@5.5.0 deduped
│ ├── v8-compile-cache@2.0.2
│ └─┬ yargs@12.0.5
│   ├─┬ cliui@4.1.0
│   │ ├── string-width@2.1.1 deduped
│   │ ├─┬ strip-ansi@4.0.0
│   │ │ └── ansi-regex@3.0.0
│   │ └─┬ wrap-ansi@2.1.0
│   │   ├─┬ string-width@1.0.2
│   │   │ ├── code-point-at@1.1.0
│   │   │ ├─┬ is-fullwidth-code-point@1.0.0
│   │   │ │ └── number-is-nan@1.0.1 deduped
│   │   │ └── strip-ansi@3.0.1 deduped
│   │   └── strip-ansi@3.0.1 deduped
│   ├── decamelize@1.2.0
│   ├─┬ find-up@3.0.0
│   │ └─┬ locate-path@3.0.0
│   │   ├─┬ p-locate@3.0.0
│   │   │ └─┬ p-limit@2.0.0
│   │   │   └── p-try@2.0.0
│   │   └── path-exists@3.0.0
│   ├── get-caller-file@1.0.3
│   ├─┬ os-locale@3.0.1
│   │ ├─┬ execa@0.10.0
│   │ │ ├── cross-spawn@6.0.5 deduped
│   │ │ ├── get-stream@3.0.0
│   │ │ ├── is-stream@1.1.0
│   │ │ ├─┬ npm-run-path@2.0.2
│   │ │ │ └── path-key@2.0.1 deduped
│   │ │ ├── p-finally@1.0.0
│   │ │ ├── signal-exit@3.0.2
│   │ │ └── strip-eof@1.0.0
│   │ ├─┬ lcid@2.0.0
│   │ │ └── invert-kv@2.0.0
│   │ └─┬ mem@4.0.0
│   │   ├─┬ map-age-cleaner@0.1.3
│   │   │ └── p-defer@1.0.0
│   │   ├── mimic-fn@1.2.0
│   │   └── p-is-promise@1.1.0
│   ├── require-directory@2.1.1
│   ├── require-main-filename@1.0.1
│   ├── set-blocking@2.0.0
│   ├─┬ string-width@2.1.1
│   │ ├── is-fullwidth-code-point@2.0.0
│   │ └─┬ strip-ansi@4.0.0
│   │   └── ansi-regex@3.0.0
│   ├── which-module@2.0.0
│   ├── y18n@4.0.0
│   └─┬ yargs-parser@11.1.1
│     ├── camelcase@5.0.0
│     └── decamelize@1.2.0 deduped
├─┬ webpack-dts-bundle@0.0.2
│ ├── @types/dts-bundle@0.0.30
│ ├─┬ @types/webpack@4.4.19
│ │ ├── @types/anymatch@1.3.0
│ │ ├── @types/node@10.12.10 deduped
│ │ ├── @types/tapable@1.0.4
│ │ ├─┬ @types/uglify-js@3.0.4
│ │ │ └── source-map@0.6.1 deduped
│ │ └── source-map@0.6.1 deduped
│ ├── dts-bundle@0.7.3 deduped
│ └── UNMET PEER DEPENDENCY webpack@4.26.0 deduped
└── yargs@11.1.0 extraneous      
@JaKXz
Copy link
Member

JaKXz commented Feb 23, 2019

@ssube can you provide a simpler example? I've been trying with your repo for a few hours now and there are so many steps involved. I've got things to a point where nyc mocha almost runs: ssube/isolex#236 following the https://istanbul.js.org/docs/tutorials/typescript/ using the recently released config package for typescript...

@stale stale bot removed the stale label Feb 23, 2019
@istanbuljs istanbuljs deleted a comment from stale bot Feb 23, 2019
@ssube
Copy link
Author

ssube commented Feb 23, 2019

@JaKXz sure, I can isolate something. I do have two repos using nyc and it looks like your PR is in isolex, the more complicated of the two. The branch of noicejs that I linked at the top (https://github.com/ssube/noicejs/tree/feature/coverage) should work with a git clone ...; yarn; make (that is, it does in CI) and is a much smaller library.

Which part of the build broke? I can try to remove that entirely and maybe reduce it to just webpack. Without webpack involved, the coverage reports do appear to work, so I suspect the interaction between nyc and webpack or the TS loader.

@JaKXz
Copy link
Member

JaKXz commented Feb 24, 2019

@ssube got it! ssube/noicejs#32 it's definitely not perfect though.

Honestly I'm not sure what the source of the issue is... but, my guess is because of the webpack compilation into one big file that includes sourcemaps that point inside node_modules...

I think the same fix should work in isolex, I just can't confirm because I'm seeing test failures because I'm missing ISOLEX_ environment variables

@ssube
Copy link
Author

ssube commented Mar 3, 2019

Your nyc-configuration change definitely fixes the report, with node_modules being excluded as expected. 👍

As you note, the main bundle and the 25-30MB sourcemap comes from webpack, which appears to still be causing the high memory usage. I have a few ideas on ways to preprocess the sourcemap before running nyc/istanbul at all, which might be able to help. Since my goal is to ignore coverage from node_modules entirely, removing them from the map shouldn't have many downsides.

@coreyfarrell
Copy link
Member

@ssube could you please test with #1010? We're supposed to re-filter the coverage data after using source-maps to remap, but unfortunately the current release does this re-filter before processing source-maps.

You can install this test version with

npm i -D git://github.com/coreyfarrell/nyc#exclude-after-remap

Obviously do not merge that change to package.json into a mainline branch, once #1010 is merged the branch on my fork will be deleted.

As for source-maps being huge this is likely due to your sourcemaps directly containing the "sourcesContent" key. It is probably safe to delete this, especially when the "sources" key points to resolvable files. Maybe webpack has an option to omit directly bundling original sources into the .map file, sorry I'm not very familiar with webpack.

@coreyfarrell
Copy link
Member

nyc@14.0.0-alpha.0 has been released to npm to allow easier testing. Please note that additional breaking changes will occur before 14.0.0 final is released. I'm closing this issue as #1010 fixes the issue with excluding files which contributed a bundle. You can monitor release progress at #1051.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants